diff --git a/docs/cpp-object-oriented-modular-refactoring/README.md b/docs/cpp-object-oriented-modular-refactoring/README.md index e58a0c6..08d243c 100644 --- a/docs/cpp-object-oriented-modular-refactoring/README.md +++ b/docs/cpp-object-oriented-modular-refactoring/README.md @@ -179,3 +179,17 @@ integration35개 전체를 다시 실행해 identity35·exit0·failure/error/ski 기능의 물리 승인으로 확대하지 않는다. 사용자 수정 범위의 정리 전 정적 gate는 충족했으므로 다음 단계로 진행할 수 있다. 비정적333개·누락 정식 fine/_02/pressure 비교·열해석 새 reference 부재와 기존 NT11 diagnostic 제한은 미완료로 유지한다. 테스트 정리·최종 병합은 아직 수행하지 않았다. + +### T6 정적 범위 검사 정리 — 삭제 0개 + +[최종 정리 검토](test-cleanup-review.md)에 따라 검사·helper를 모두 보존했다. +실제 본문에서 public/private owner, 실패 뒤 출력·factor 보존, TLS·FP flags·비트 및 +독립 frozen oracle의 경계가 달라 동등 대체를 입증하지 못했다. 폐기 구조만 검사한다고 +확정할 근거도 없었다. 비정적333개와 자료 없는 fine/_02/pressure 관련 검사는 보존한다. +이관표2,876행의 원래12열은 그대로 두고 최종 판정·근거 연결3열만 추가했다. + +검사 source·helper·양쪽 등록 변경이0이므로 문서 전용 정적 검토만 수행했다. +T6 raw `.build/merge-verification/t6-20261018/`는 원셀 보존, 현재964개 body와 선택631개, +Native/CMake 등록·제품274개·T5 실행물/hash 보존을 확인한다. T5 당시 실행 결과를 +새 실행으로 보고하지 않으며 전체964개 PASS도 주장하지 않는다. 최종 정적 검증과 +병합 완료 판정은 T7에 남긴다. diff --git a/docs/cpp-object-oriented-modular-refactoring/merge-manifest.json b/docs/cpp-object-oriented-modular-refactoring/merge-manifest.json index dd40513..3deed31 100644 --- a/docs/cpp-object-oriented-modular-refactoring/merge-manifest.json +++ b/docs/cpp-object-oriented-modular-refactoring/merge-manifest.json @@ -34449,5 +34449,71 @@ "path": "C:\\git\\FESADev\\.dryforge\\worktrees\\worker\\.build\\merge-verification\\t5-20261018-01\\before-prune\\static-only\\run-20261018-01\\hdf-schema-identity-inventory.json", "sha256": "72b672a1cfcde5873552a2a9758981ae0f262f3a944cd71219ac5d7d83f2f3bd" } + }, + "t6_test_cleanup": { + "status": "DONE_WITH_CONCERNS", + "baseline": "26939140dae4fc83746d05d4fcf48085462ef83b", + "scope": "R6 applied only to approved static/common tests; nonstatic tests preserved", + "deleted_tests": 0, + "deleted_helpers": 0, + "replacements": [], + "reason": "Equivalent behavior/failure/numerical coverage or obsolete-only internal structure not sufficiently established; conservative retention required by R6", + "ledger": { + "rows": 2876, + "original_columns_preserved": 12, + "appended_columns": [ + "cleanup_decision", + "cleanup_reason_id", + "cleanup_evidence" + ], + "reason_counts_are_history_rows_not_unique_tests": { + "R-SUPPORT": 785, + "R-DEFER": 631, + "R-STATIC": 923, + "R-COMPARISON": 297, + "R-POLICY": 6, + "R-NUMERIC": 224, + "R-ORACLE": 2, + "R-CAPABILITY": 8 + } + }, + "review": { + "path": "docs/cpp-object-oriented-modular-refactoring/test-cleanup-review.md", + "sha256": "568146a93285181ad0b091458589255e50d708beac8e9d7209fe306aa4f35da9" + }, + "source_or_registration_changes": 0, + "discovery_count_preserved": 964, + "unique_static_common_preserved": 631, + "deferred_nonstatic_preserved": 333, + "registration_sources": { + "fesa_unit_tests": 90, + "fesa_integration_tests": 11, + "fesa_reference_tests": 17 + }, + "products274_refactor_bytes_exact": true, + "source_test_build_execution": "not run: documentation/table only, per AGENTS; T5 execution artifacts inspected and hashes preserved", + "verification": [ + { + "command": "python .build/merge-verification/t6-20261018/audit.py", + "exit": 0, + "path": ".build/merge-verification/t6-20261018/audit.json", + "sha256": "3bebab66024a4804cca618c918c295637c1fc4cb6f8e5ec6f2bf02cd3ad1d2b3" + }, + { + "command": "python .build/merge-verification/t6-20261018/finalize.py", + "exit": 0, + "path": ".build/merge-verification/t6-20261018/t5-xml-static-check.json", + "sha256": "e913ee695a972ecaf4b600548a46e969d43d3f748e24dde6008b5c42ff010053" + } + ], + "raw": ".build/merge-verification/t6-20261018", + "historical_t1_t2_t3_t5_fields_unchanged": true, + "remaining_limits": [ + "333 deferred nonstatic identities are not validated by this cleanup", + "missing fine/_02/pressure canonical data; _02 comparator connection absent", + "ShellNL RF/RM false/review-only; stress mapping undecided", + "thermal new reference missing; NT11 diagnostic limit retained", + "T7 final static verification and final integration remain separate" + ] } } diff --git a/docs/cpp-object-oriented-modular-refactoring/test-cleanup-review.md b/docs/cpp-object-oriented-modular-refactoring/test-cleanup-review.md new file mode 100644 index 0000000..0dbbeca --- /dev/null +++ b/docs/cpp-object-oriented-modular-refactoring/test-cleanup-review.md @@ -0,0 +1,104 @@ +# T6 검사 정리 판정 — 승인된 정적 범위 + +삭제는 **0개**다. 검사 본문·helper·CMake/MSVC 등록을 변경하지 않았다. +같은 행동·실패 경계·수치 조건의 동등 대체 또는 폐기된 내부 구조만 검사한다는 근거가 +충분한 후보를 찾지 못했다. 모든 검사가 서로 독립적이라고 증명했다는 뜻은 아니다. +판정이 불충분한 검사를 보존한다는 R6 계약을 적용했다. + +[이관표](test-migration.tsv)의 기존 2,876행·12열·identity·assertion 셀은 보존하고 +`cleanup_decision`, `cleanup_reason_id`, `cleanup_evidence` 3열만 덧붙였다. +Dev/Refactor의 같은 최종 검사로 연결되는 두 행은 출처 이력이며 실행 중복이 아니다. +삭제가 없으므로 대체 identity도 없다. 아래 identity는 **대체 지정이 아닌 비교 검토 대상**이다. +`disposition`, `final_sha256` 등 옛 셀과 T3 manifest는 당시 이력으로 그대로 둔다. + +## R-DEFER + +HHT·dynamic·eigen/frequency·transient thermal 실제 수치 검증 333개를 유예 상태로 +보존한다. 선택 밖이라는 이유로 삭제하지 않는다. 같은 파일의 공통/helper 구간도 보존한다. +전체 body hash의 유일한 반복 묶음은 +`FixedStations/ThermalSlab.ActualMeshesMatchCertifiedP2AndSeparateFourierError/0`부터 +`/11`까지다. 같은 `TEST_P` 본문을 서로 다른 parameter로 실행하는 12개 identity이고 +비정적 범위이므로 중복 삭제 후보로 채택하지 않았다. + +## R-POLICY + +`tests/test_cpp_policy_contract.py`의 두 검사를 유지한다. +`test_p_style_001_cpp_style_and_doxygen_tooling_contract`는 clang 형식·명명 규약, +Doxyfile의 입력/제외/경고와 optional `fesa_docs` 계약을 검사한다. +`test_p_style_002_msvc_targets_enable_standard_exception_unwinding`는 CMake의 +solver/CLI `/EHsc`, 직접 MSVC의 shared props `Sync`, 다섯 프로젝트의 import와 +override를 검사한다. Refactor에 파일이 없다는 사실은 폐기 근거가 아니다. + +## R-ORACLE + +`tests/unit/math/high_low_arithmetic_original.h`를 유지한다. include consumer는 +`high_low_arithmetic_test.cpp`와 `hex8_high_low_test.cpp` 두 개다. +`HighLowArithmetic.OptimizedArithmeticMatchesFrozenOriginalBits`는 원본 연산으로 raw +pair를 정규화한 뒤 high/low 비트를 비교한다. 제품 predicate를 oracle로 쓰지 않는다. +`BitExponentMatchesFrozenOracleAcrossEveryExponent`는 normal exponent·trailing bit와 +subnormal 경계를 검사한다. Hex8의 `FrozenMaterialPacket`·`FrozenGeometryPacket`도 +이 helper의 원본 연산 순서로 독립 expected를 만든다. 제품 helper로 치환하면 독립성이 사라진다. + +## R-NUMERIC + +다음은 이름/행동이 비슷해도 전체 계약의 동등 대체가 입증되지 않은 실제 본문 비교다. + +| 비교 대상 | 유지 근거 | +| --- | --- | +| `DenseMath.RowMajorMatrixMatchesKnownGemvGemm`, `MatrixProductKeepsShapeAndFiniteValidationOrder`와 private `DenseBlasInternal.RawProductsPreserveDestinationOnNonfiniteInput` | Public Matrix는 storage copy/move·차원 예외와 shape-before-finite 진단 순서를 소유한다. Private raw adapter는 caller 출력 buffer 보존을 검사한다. 공개 wrapper 성공만으로 private 실패 경계가 검증되지 않는다. | +| `DenseFactor.CholeskySolvesAndWhiteningRetainsScaleAndOrientation`와 `DenseBlasInternal.CholeskyAndInverseMatchKnownFactorsAndKeepFailedOutput` | 전자는 좌우·전치·직사각 RHS와 scaled whitening Gram을 검사한다. 후자는 identity RHS로 lower inverse의 명시적 `.5,-.25,.5` 값과 실패 뒤 기존 lower/inverse·factor 재사용을 검사한다. 일부 값의 중첩만으로 양쪽 전체 조건을 대체할 수 없다. | +| `DenseFactor.OwnsSnapshotAndFailedCandidatesPreserveReusableFactor`, `EmptyAndInfinityConditionBoundaryAreExplicit` | 입력 변경 후 snapshot, shape/NaN/pivot 실패·overflow solve 후 재사용, 빈 좌우 RHS 및 `2^-32` 양측/포함 경계가 있다. 낡은 lower/inverse 명칭이 남아 있어도 본문은 현재 factor 계약을 검사한다. | +| `MklPardisoSolver.SingleEquationScopeTransitionsBetweenRetainedSizes`와 `TangentSolver.SingleEquationScopeTransitionsBetweenRetainedSizes` | SPD `Factorize/Solve`와 비대칭 `FactorizeFresh/SolveCorrection` owner가 다르며 후자는 `{2,1,0,3}` 행렬을 쓴다. `ReusesRhsButFreshValuesAndFailureCannotReuseStaleState`는 fresh 실패 후 `solver-not-factorized`와 correction 보존도 검사한다. TLS 공통화만으로 각 owner 호출 경계가 없어지지 않는다. | +| `HighLowArithmetic.PacketDispatchRetainsComponentsAndInstructionGates`와 `Hex8HighLow.PacketVectorGuardsPreserveScalarFlagsAndBits`, `PacketDoesNotClearPriorMaskedStickyFlags`, `ConcurrentFirstLinearTrialsAcrossCopiesAndMoveKeepBits` | dispatch ISA/OS·FTZ 복원과 scalar/packet 선택, SIMD lane의 RN64/status·FP sticky flag·비트, copy/move/concurrent cache 결정론은 다른 경계다. 단순 scalar 성공/값 비교가 flags와 결정론을 대체하지 않는다. | + +이 범주의 나머지 행도 본래 assertion/oracle와 identity를 유지한다. 전체 쌍에 대한 +의미적 동등성을 주장하지 않으며, 추가 증명 없이 시험을 합치거나 helper를 제거하지 않았다. + +## R-CAPABILITY + +`tests/unit/elements/element_capabilities_test.cpp`는 adapter 경계를 소유한다. +`ShellTrialPreservesCompleteDirectionalResponseAndFailure` 본문은 kernel과 capability의 +force/tangent/recovery·drilling 고차 directional 응답을 비트로 비교하고 direction 입력을 +보존한다. 잘못된 trial의 structured status와 이후 정상 재사용까지 비교한다. +`BoundViewsSurviveOwnerVectorMovesAndRejectOtherFamilies`는 borrowed view 수명·다른 family +거부를 검사한다. Kernel 수식 검사만으로 adapter 전달·소유 경계가 검증되지 않는다. +Inertia/thermal 전용 identity는 R-DEFER로 분류하며 삭제하지 않았다. + +## R-COMPARISON + +C++ reference policy와 Python comparator는 같은 5%/1% 기준을 구현해도 별도 consumer다. +`ReferenceTolerancePolicy.AppliesRelativeAndNearZeroThresholdsAtTheirInclusiveBoundaries`는 +C++ family row branch·threshold·relative applicability를 검사하고, +`test_inclusive_row_and_rms_boundaries_are_independent`는 Python 결과의 독립 row/RMS +경계를 검사한다. Python `test_report_is_deterministic_and_keeps_family_boundaries`는 +보고서 JSON과 U/RF/S family·reference hash를 검사한다. Header collision·identity-before-NaN· +dtype/shape·없는 자료의 not-run도 solver 실제 실행과 다른 합성 계약이다. +정식 fine/_02/pressure 자료 부재·`_02` comparator 연결 부재는 여전히 미완료이며 +유일 검사를 지우는 근거로 삼지 않았다. 비정적 이름의 합성 정책 검사를 실제 동해석 통과로 세지 않는다. + +## R-STATIC + +현재 정적·공통 선택 identity는 유지한다. T5의 source body/행/hash와 현재 본문을 +대조하고 이관표의 최종 macro identity에 연결했다. 완전한 대체의 행동·실패 경계·수치 +조건을 입증하지 못했으므로 기존 assertion과 독립 oracle를 보존한다. 실행 성공·장시간· +과거 제외 여부를 삭제 근거로 사용하지 않았다. + +## R-SUPPORT + +파일 record·helper/oracle/fixture/include/static assertion·등록/정책 문서 행이다. +같은 최종 파일을 가리키는 역사 행을 제거하지 않았다. 제품/검사를 삭제하지 않아 이번 +변경이 만든 orphan은 없다. 기존 helper의 모든 간접 참조를 의미적으로 입증했다고 +주장하지 않으며, 참조 없는 폐기 구조라고 확정할 근거가 부족한 항목도 보존한다. + +## 정적 검증과 인계 + +T6 raw는 `.build/merge-verification/t6-20261018/`다. `audit.py`는 솔버/테스트를 실행하지 +않고 TSV 원셀·전체 최종 행 분류, T5 964개 body 및 631/333 선택, 양쪽 source 등록, +제품274개 Refactor bytes, T5 실행물·기준자료·원본 manifest 보존을 검사한다. +구체 명령·exit·hash·검사 수는 `audit.json`과 manifest의 `t6_test_cleanup`에 기록한다. +검사 source·등록 변화가 0이므로 AGENTS의 문서 전용 규칙에 따라 build/test를 재실행하지 않았다. + +T5 Native/CMake/CTest 각631·Python145, 정식 정적5모델의 기존 실행 근거를 그대로 +인계한다. T6 정적 검토를 새 solver 실행·전체964개 PASS로 보고하지 않는다. +비정적333·fine/_02/pressure·thermal 새 reference와 NT11 제한, ShellNL RF/RM +false/review-only와 stress mapping 미판정은 유지한다. T7 최종 정적 검증은 별도 작업이다. diff --git a/docs/cpp-object-oriented-modular-refactoring/test-migration.tsv b/docs/cpp-object-oriented-modular-refactoring/test-migration.tsv index 790c596..841bb54 100644 --- a/docs/cpp-object-oriented-modular-refactoring/test-migration.tsv +++ b/docs/cpp-object-oriented-modular-refactoring/test-migration.tsv @@ -1,2877 +1,2877 @@ -source original_path original_identity verification_behavior final_path final_identity disposition reason original_sha256 final_sha256 original_assertions final_assertions -Dev tests/AGENTS.md file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/AGENTS.md file 유지 Dev의 현재 검사 정책을 유지한다. Refactor의 과거 실행별 지시는 이번 승인 범위를 대체하지 않는다. c2413bbcde33dad56ffd227536b79b9b9c707a5eb4a7874f0bc840824c4abfd5 c2413bbcde33dad56ffd227536b79b9b9c707a5eb4a7874f0bc840824c4abfd5 해당 없음 해당 없음 -Dev tests/AGENTS.md support@1-16 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/AGENTS.md file-support 유지 Dev의 현재 검사 정책을 유지한다. Refactor의 과거 실행별 지시는 이번 승인 범위를 대체하지 않는다. 18aee7c622327cc5dd22beb5916532fd73567e42d03bae4e020fe07bc3a523f8 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/CMakeLists.txt file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/CMakeLists.txt file 이관 Refactor capability source 등록을 유지한다. 실제 native/CMake source 목록이 세 target 모두 일치하므로 본문 복원에 따른 translation unit 추가는 없다. 53cb1f15138a3e271131ffca6a73425ee886feaa14733c9655642fa15e278ba6 8c8c0b8343ada0c1ea259c017a5332bfa0e0a313adbfaabe84406327bc9dc8c9 해당 없음 해당 없음 -Dev tests/CMakeLists.txt support@1-257 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/CMakeLists.txt file-support 이관 Refactor capability source 등록을 유지한다. 실제 native/CMake source 목록이 세 target 모두 일치하므로 본문 복원에 따른 translation unit 추가는 없다. 7faf0664f1caccc190d801c85a4403211f3bb60ae7c94d19d6620ae3189faf0a 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/linear_frequency_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/integration/analysis/linear_frequency_procedure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 73da42092ea16d533f8a1725f6e925338fb4d8ff6901c5a462004aef3cacc770 73da42092ea16d533f8a1725f6e925338fb4d8ff6901c5a462004aef3cacc770 해당 없음 해당 없음 -Dev tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.RejectsDomainWithoutFrequencyStep LinearFrequencyProcedureExecutor.RejectsDomainWithoutFrequencyStep; assertion 5개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.RejectsDomainWithoutFrequencyStep 유지 원문 검사 body 및 assertion 동일. e35f98ccd120a34e369c9100a4b68bc5f2bd57a79f0516fe8aace490a6157623 e35f98ccd120a34e369c9100a4b68bc5f2bd57a79f0516fe8aace490a6157623 "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-frequency-procedure"")" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-frequency-procedure"")" -Dev tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.MatchesPartialBoundaryPencilAndFullResidualCovariance LinearFrequencyProcedureExecutor.MatchesPartialBoundaryPencilAndFullResidualCovariance; assertion 25개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.MatchesPartialBoundaryPencilAndFullResidualCovariance 유지 원문 검사 body 및 assertion 동일. 8112af69b3ed3bf699174664e3f50bc7fe4927aa4d8a1e3841e3c840ed29bbbe 8112af69b3ed3bf699174664e3f50bc7fe4927aa4d8a1e3841e3c840ed29bbbe ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(state.modes.size(), 1U) | EXPECT_EQ(state.mass_null_dimension, 0U) | EXPECT_EQ(state.finite_dimension, 1U) | EXPECT_NEAR(state.modes[0].eigenvalue, 10369.0 / 450.0, 1e-10) | EXPECT_EQ(state.modes[0].classification, 1U) | EXPECT_EQ(state.vectors.Rows(), 1U) | EXPECT_EQ(state.vectors.Columns(), 24U) | EXPECT_NEAR(state.vectors(0U, 5U), std::sqrt(50.0 / 3.0), 1e-12) | EXPECT_EQ(state.vectors(0U, dof), 0.0) | ASSERT_EQ(state.eigenpair_checks.size(), 1U) | EXPECT_NEAR(state.eigenpair_checks[0].modal_mass, 1.0, 1e-12) | EXPECT_LE(state.eigenpair_checks[0].eta_r, 1e-10) | EXPECT_LE(state.eigenpair_checks[0].eta_energy, 1e-10) | EXPECT_LE(state.eigenpair_checks[0].rho_b, 1e-10) | EXPECT_EQ(state.backend.eigenvectors.Rows(), 0U) | ASSERT_TRUE(static_domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_NEAR(kff, 10369.0 / 7500.0, 1e-12) | EXPECT_NEAR(displacement[5U], 7500.0 / 10369.0, 1e-12) | EXPECT_NEAR(residual[5U], 0.0, 1e-12) | EXPECT_NEAR(residual[i], expected, 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(state.modes.size(), 1U) | EXPECT_EQ(state.mass_null_dimension, 0U) | EXPECT_EQ(state.finite_dimension, 1U) | EXPECT_NEAR(state.modes[0].eigenvalue, 10369.0 / 450.0, 1e-10) | EXPECT_EQ(state.modes[0].classification, 1U) | EXPECT_EQ(state.vectors.Rows(), 1U) | EXPECT_EQ(state.vectors.Columns(), 24U) | EXPECT_NEAR(state.vectors(0U, 5U), std::sqrt(50.0 / 3.0), 1e-12) | EXPECT_EQ(state.vectors(0U, dof), 0.0) | ASSERT_EQ(state.eigenpair_checks.size(), 1U) | EXPECT_NEAR(state.eigenpair_checks[0].modal_mass, 1.0, 1e-12) | EXPECT_LE(state.eigenpair_checks[0].eta_r, 1e-10) | EXPECT_LE(state.eigenpair_checks[0].eta_energy, 1e-10) | EXPECT_LE(state.eigenpair_checks[0].rho_b, 1e-10) | EXPECT_EQ(state.backend.eigenvectors.Rows(), 0U) | ASSERT_TRUE(static_domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_NEAR(kff, 10369.0 / 7500.0, 1e-12) | EXPECT_NEAR(displacement[5U], 7500.0 / 10369.0, 1e-12) | EXPECT_NEAR(residual[5U], 0.0, 1e-12) | EXPECT_NEAR(residual[i], expected, 1e-12) -Dev tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.PartialBoundaryStaticRejectsUnbalancedDrillingMoment LinearFrequencyProcedureExecutor.PartialBoundaryStaticRejectsUnbalancedDrillingMoment; assertion 3개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.PartialBoundaryStaticRejectsUnbalancedDrillingMoment 유지 원문 검사 body 및 assertion 동일. 3257ad730d16550e25ba4286cfa165f6b4e84d2a54d3cc6b5d8163feea05465d 3257ad730d16550e25ba4286cfa165f6b4e84d2a54d3cc6b5d8163feea05465d "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_NE(StatusText(result.GetStatus()) .find(""global-equilibrium-tolerance-failure""), std::string::npos)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_NE(StatusText(result.GetStatus()) .find(""global-equilibrium-tolerance-failure""), std::string::npos)" -Dev tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.FreePanelRetainsSixRigidModesAndAllComputedEvidence LinearFrequencyProcedureExecutor.FreePanelRetainsSixRigidModesAndAllComputedEvidence; assertion 15개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.FreePanelRetainsSixRigidModesAndAllComputedEvidence 유지 원문 검사 body 및 assertion 동일. 9606266d6f08472c9d911615beddbfed51886ef04a943c708901bb30e245a992 9606266d6f08472c9d911615beddbfed51886ef04a943c708901bb30e245a992 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(state.mass_null_dimension, 4U) | EXPECT_EQ(state.finite_dimension, 20U) | ASSERT_EQ(state.modes.size(), 6U) | EXPECT_GE(state.eigenpair_checks.size(), 6U) | EXPECT_EQ(mode.classification, 0U) | EXPECT_EQ(mode.cluster_id, 1U) | EXPECT_LE(state.eta_gram, 1e-10) | EXPECT_LE(state.max_eta_orth, 1e-10) | EXPECT_LE(state.eta_mz, 1e-12) | EXPECT_LE(state.eta_kz, 1e-12) | EXPECT_LE(check.eta_r, 1e-10) | EXPECT_LE(check.eta_norm, 1e-10) | EXPECT_LE(check.eta_energy, 1e-10) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(state.mass_null_dimension, 4U) | EXPECT_EQ(state.finite_dimension, 20U) | ASSERT_EQ(state.modes.size(), 6U) | EXPECT_GE(state.eigenpair_checks.size(), 6U) | EXPECT_EQ(mode.classification, 0U) | EXPECT_EQ(mode.cluster_id, 1U) | EXPECT_LE(state.eta_gram, 1e-10) | EXPECT_LE(state.max_eta_orth, 1e-10) | EXPECT_LE(state.eta_mz, 1e-12) | EXPECT_LE(state.eta_kz, 1e-12) | EXPECT_LE(check.eta_r, 1e-10) | EXPECT_LE(check.eta_norm, 1e-10) | EXPECT_LE(check.eta_energy, 1e-10) -Dev tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.ExcessRequestedModesFailsWithSourceContext LinearFrequencyProcedureExecutor.ExcessRequestedModesFailsWithSourceContext; assertion 6개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.ExcessRequestedModesFailsWithSourceContext 유지 원문 검사 body 및 assertion 동일. a384ea179cd4b72a4bedea2b8a465ff0e824a37858da50dfe0702d96c91b6c55 a384ea179cd4b72a4bedea2b8a465ff0e824a37858da50dfe0702d96c91b6c55 "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""insufficient-finite-modes"") | EXPECT_GT(result.GetStatus().Diagnostics()[0].location.line, 0U)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""insufficient-finite-modes"") | EXPECT_GT(result.GetStatus().Diagnostics()[0].location.line, 0U)" -Dev tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.PreservesDensityAndPhysicalUnitScaling LinearFrequencyProcedureExecutor.PreservesDensityAndPhysicalUnitScaling; assertion 12개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.PreservesDensityAndPhysicalUnitScaling 유지 원문 검사 body 및 assertion 동일. 54d62ee92fd5f41120fda65ddaeb341ba1f3bd0390e7cdf03c81b5f13b9f4fcd 54d62ee92fd5f41120fda65ddaeb341ba1f3bd0390e7cdf03c81b5f13b9f4fcd ASSERT_TRUE(baseline_domain.HasValue()) | ASSERT_TRUE(dense_domain.HasValue()) | ASSERT_TRUE(units_domain.HasValue()) | ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(dense.HasValue()) | ASSERT_TRUE(units.HasValue()) | EXPECT_NEAR( dense.Value().modes[0].eigenvalue / baseline.Value().modes[0].eigenvalue, 0.25, 1e-12) | EXPECT_NEAR(dense.Value().vectors(0U, 5U) / baseline.Value().vectors(0U, 5U), 0.5, 1e-12) | EXPECT_NEAR( units.Value().modes[0].eigenvalue / baseline.Value().modes[0].eigenvalue, 1.0, 1e-12) | EXPECT_NEAR( units.Value().vectors(0U, 5U) * length / baseline.Value().vectors(0U, 5U), 1.0, 1e-12) | EXPECT_LE(units.Value().eigenpair_checks[0].eta_r, 1e-10) | EXPECT_LE(units.Value().eigenpair_checks[0].eta_energy, 1e-10) ASSERT_TRUE(baseline_domain.HasValue()) | ASSERT_TRUE(dense_domain.HasValue()) | ASSERT_TRUE(units_domain.HasValue()) | ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(dense.HasValue()) | ASSERT_TRUE(units.HasValue()) | EXPECT_NEAR( dense.Value().modes[0].eigenvalue / baseline.Value().modes[0].eigenvalue, 0.25, 1e-12) | EXPECT_NEAR(dense.Value().vectors(0U, 5U) / baseline.Value().vectors(0U, 5U), 0.5, 1e-12) | EXPECT_NEAR( units.Value().modes[0].eigenvalue / baseline.Value().modes[0].eigenvalue, 1.0, 1e-12) | EXPECT_NEAR( units.Value().vectors(0U, 5U) * length / baseline.Value().vectors(0U, 5U), 1.0, 1e-12) | EXPECT_LE(units.Value().eigenpair_checks[0].eta_r, 1e-10) | EXPECT_LE(units.Value().eigenpair_checks[0].eta_energy, 1e-10) -Dev tests/integration/analysis/linear_frequency_procedure_test.cpp support@1-25 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_frequency_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a51e24264f3ae36759924761dd98817a3de835465648e49acff3d7c0b74e8f7c 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/linear_frequency_procedure_test.cpp support@42-124 helper/oracle/fixture/include/static assertion 구간: StatusText, PanelDomain, if tests/integration/analysis/linear_frequency_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d9beda2ab213d77168db3de7088b66badb8266554add0a1df0249a3f53e814b2 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/linear_frequency_procedure_test.cpp support@191-193 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_frequency_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d7ebb4e7a53ff4630e82b0c32bb66fd1bae66f119405d224a134d6256734b442 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/linear_static_analysis_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/integration/analysis/linear_static_analysis_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c796815b0cdc8b655da47ddab48bb3df2ef5d7334d949c9ede355e046b12294b c796815b0cdc8b655da47ddab48bb3df2ef5d7334d949c9ede355e046b12294b 해당 없음 해당 없음 -Dev tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.FactorizesBeforeLoadAndSolvesWithoutRefactorization LinearStaticCli.FactorizesBeforeLoadAndSolvesWithoutRefactorization; assertion 5개 tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.FactorizesBeforeLoadAndSolvesWithoutRefactorization 유지 원문 검사 body 및 assertion 동일. 6da58cc645e25d2814d2622f68d964c8320625f00110b2e16ba19e5b1522ccc2 6da58cc645e25d2814d2622f68d964c8320625f00110b2e16ba19e5b1522ccc2 "ASSERT_TRUE(analysis->Run({input, output}).IsOk()) | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 1) | EXPECT_EQ(writer.WriteCalls(), 1) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize"", ""solver-solve"", ""writer-write""}))" "ASSERT_TRUE(analysis->Run({input, output}).IsOk()) | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 1) | EXPECT_EQ(writer.WriteCalls(), 1) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize"", ""solver-solve"", ""writer-write""}))" -Dev tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.FactorizesBeforeRejectingAnInvalidLoad LinearStaticCli.FactorizesBeforeRejectingAnInvalidLoad; assertion 8개 tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.FactorizesBeforeRejectingAnInvalidLoad 유지 원문 검사 body 및 assertion 동일. 65404a724a1ea299f6ceec1870dfa2b75eff091a7e83809aa589613be7e4e2fc 65404a724a1ea299f6ceec1870dfa2b75eff091a7e83809aa589613be7e4e2fc "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""unsupported-drilling-load"") | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 0) | EXPECT_EQ(writer.WriteCalls(), 0) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize""}))" "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""unsupported-drilling-load"") | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 0) | EXPECT_EQ(writer.WriteCalls(), 0) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize""}))" -Dev tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.RealPipelineHandlesAnalyticalAndNonzeroPrescription LinearStaticCli.RealPipelineHandlesAnalyticalAndNonzeroPrescription; assertion 17개 tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.RealPipelineHandlesAnalyticalAndNonzeroPrescription 유지 원문 검사 body 및 assertion 동일. 34f491015c713169674ef652f3e235e52cff78d9c55158b3dfa94614562c2a94 34f491015c713169674ef652f3e235e52cff78d9c55158b3dfa94614562c2a94 "ASSERT_TRUE(status.IsOk()) | EXPECT_EQ(writer.OutputPath(), output) | EXPECT_EQ(writer.NodeCount(), 2U) | EXPECT_TRUE(writer.Diagnostics().empty()) | ASSERT_EQ(state.Displacement().Size(), 12U) | EXPECT_EQ(state.Identity().step_name, ""Step-1"") | EXPECT_EQ(state.Identity().frame_index, 0U) | EXPECT_NEAR(state.Displacement()[0U], 0.1, 1.0e-12) | EXPECT_NEAR(state.Displacement()[6U], 0.2, 2.0e-10) | EXPECT_NEAR(state.ExternalForce()[6U], 10.0, 1.0e-12) | EXPECT_NEAR(state.InternalForce()[0U], -10.0, 1.0e-9) | EXPECT_NEAR(state.InternalForce()[6U], 10.0, 1.0e-9) | EXPECT_NEAR(state.Reaction()[0U], -10.0, 1.0e-9) | EXPECT_NEAR(state.Residual()[6U], 0.0, 1.0e-9) | EXPECT_EQ(state.EndpointResults().size(), 2U) | EXPECT_EQ(state.GaussResults().size(), 2U) | EXPECT_EQ(state.StressResults().size(), 2U)" "ASSERT_TRUE(status.IsOk()) | EXPECT_EQ(writer.OutputPath(), output) | EXPECT_EQ(writer.NodeCount(), 2U) | EXPECT_TRUE(writer.Diagnostics().empty()) | ASSERT_EQ(state.Displacement().Size(), 12U) | EXPECT_EQ(state.Identity().step_name, ""Step-1"") | EXPECT_EQ(state.Identity().frame_index, 0U) | EXPECT_NEAR(state.Displacement()[0U], 0.1, 1.0e-12) | EXPECT_NEAR(state.Displacement()[6U], 0.2, 2.0e-10) | EXPECT_NEAR(state.ExternalForce()[6U], 10.0, 1.0e-12) | EXPECT_NEAR(state.InternalForce()[0U], -10.0, 1.0e-9) | EXPECT_NEAR(state.InternalForce()[6U], 10.0, 1.0e-9) | EXPECT_NEAR(state.Reaction()[0U], -10.0, 1.0e-9) | EXPECT_NEAR(state.Residual()[6U], 0.0, 1.0e-9) | EXPECT_EQ(state.EndpointResults().size(), 2U) | EXPECT_EQ(state.GaussResults().size(), 2U) | EXPECT_EQ(state.StressResults().size(), 2U)" -Dev tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.UsesExistingLifecycleAndExactlyOneFactorization Mitc4ShellCli.UsesExistingLifecycleAndExactlyOneFactorization; assertion 5개 tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.UsesExistingLifecycleAndExactlyOneFactorization 유지 원문 검사 body 및 assertion 동일. 1dea412548e1077c66d10536f0f8640b34a5b0eadc19bb0cebbf47878b4c0b9b 1dea412548e1077c66d10536f0f8640b34a5b0eadc19bb0cebbf47878b4c0b9b "ASSERT_TRUE(analysis->Run({input, output}).IsOk()) | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 1) | EXPECT_EQ(writer.WriteCalls(), 1) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize"", ""solver-solve"", ""writer-write""}))" "ASSERT_TRUE(analysis->Run({input, output}).IsOk()) | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 1) | EXPECT_EQ(writer.WriteCalls(), 1) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize"", ""solver-solve"", ""writer-write""}))" -Dev tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.AppliesKfcForNonzeroPrescribedDisplacement Mitc4ShellCli.AppliesKfcForNonzeroPrescribedDisplacement; assertion 17개 tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.AppliesKfcForNonzeroPrescribedDisplacement 유지 원문 검사 body 및 assertion 동일. 221c877473ceb9bc29a9ba1386ab2485083b7474572a5ba936ae3b9524c1e15a 221c877473ceb9bc29a9ba1386ab2485083b7474572a5ba936ae3b9524c1e15a EXPECT_TRUE(status.IsOk()) | ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(solver.FactorizeCalls(), 1) | ASSERT_EQ(solver.SolveCalls(), 1) | ASSERT_EQ(solver.FactorizedDimension(), 1U) | ASSERT_EQ(solver.Rhs().size(), 1U) | EXPECT_NEAR(solver.ScalarStiffness(), 440.0 / 9.0, 1.0e-12) | EXPECT_NEAR(solver.Rhs()[0U], -4.0 / 9.0, 1.0e-12) | EXPECT_EQ(writer.OutputPath(), output) | EXPECT_EQ(writer.NodeCount(), 4U) | EXPECT_EQ(writer.ShellElementCount(), 1U) | 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) | EXPECT_EQ(state.ShellResults().size(), 4U) | EXPECT_GT(state.PhysicalStrainEnergy(), 0.0) EXPECT_TRUE(status.IsOk()) | ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(solver.FactorizeCalls(), 1) | ASSERT_EQ(solver.SolveCalls(), 1) | ASSERT_EQ(solver.FactorizedDimension(), 1U) | ASSERT_EQ(solver.Rhs().size(), 1U) | EXPECT_NEAR(solver.ScalarStiffness(), 440.0 / 9.0, 1.0e-12) | EXPECT_NEAR(solver.Rhs()[0U], -4.0 / 9.0, 1.0e-12) | EXPECT_EQ(writer.OutputPath(), output) | EXPECT_EQ(writer.NodeCount(), 4U) | EXPECT_EQ(writer.ShellElementCount(), 1U) | 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) | EXPECT_EQ(state.ShellResults().size(), 4U) | EXPECT_GT(state.PhysicalStrainEnergy(), 0.0) -Dev tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.RejectsSingularAndAcceptsZeroByZeroFreeSystem Mitc4ShellCli.RejectsSingularAndAcceptsZeroByZeroFreeSystem; assertion 9개 tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.RejectsSingularAndAcceptsZeroByZeroFreeSystem 유지 원문 검사 body 및 assertion 동일. 9bc841e0fc20cccf0cec07e025f03be672a5123d4c9fa5fcf23f9d0072fd34d6 9bc841e0fc20cccf0cec07e025f03be672a5123d4c9fa5fcf23f9d0072fd34d6 ASSERT_FALSE(singular.IsOk()) | EXPECT_EQ(singular.Category(), fesa::FailureCategory::kSolver) | EXPECT_EQ(singular_writer.WriteCalls(), 0) | ASSERT_TRUE(constrained.IsOk()) | EXPECT_EQ(constrained_solver.FactorizeCalls(), 1) | EXPECT_EQ(constrained_solver.FactorizedDimension(), 0U) | EXPECT_EQ(constrained_solver.SolveCalls(), 1) | EXPECT_TRUE(constrained_solver.Rhs().empty()) | EXPECT_EQ(constrained_writer.State().ShellResults().size(), 4U) ASSERT_FALSE(singular.IsOk()) | EXPECT_EQ(singular.Category(), fesa::FailureCategory::kSolver) | EXPECT_EQ(singular_writer.WriteCalls(), 0) | ASSERT_TRUE(constrained.IsOk()) | EXPECT_EQ(constrained_solver.FactorizeCalls(), 1) | EXPECT_EQ(constrained_solver.FactorizedDimension(), 0U) | EXPECT_EQ(constrained_solver.SolveCalls(), 1) | EXPECT_TRUE(constrained_solver.Rhs().empty()) | EXPECT_EQ(constrained_writer.State().ShellResults().size(), 4U) -Dev tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.DoesNotWriteAnInvalidRecoveryCandidate Mitc4ShellCli.DoesNotWriteAnInvalidRecoveryCandidate; assertion 6개 tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.DoesNotWriteAnInvalidRecoveryCandidate 유지 원문 검사 body 및 assertion 동일. 8c9ed32ac29d2ce92de257c1fe16ae692ff037e47ae1e267ceb47d2e14fb3999 8c9ed32ac29d2ce92de257c1fe16ae692ff037e47ae1e267ceb47d2e14fb3999 "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(adapter_events.empty())" "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(adapter_events.empty())" -Dev tests/integration/analysis/linear_static_analysis_test.cpp support@1-306 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, WriteText, AxialDeck, AllConstrainedShellDeck, PrescribedShellDeck, SpyLinearSolver, RecordingMklSolver, NonfiniteLinearSolver, SpyResultsWriter, CapturingResultsWriter, State tests/integration/analysis/linear_static_analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 09f71dbb33b22661eb43b04ddd7730f00b09cf63202093cb5008f37fe51a59f2 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/linear_static_analysis_test.cpp support@388-389 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_static_analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 36bbca6d939f00341c98ba573a4fdc3cfc85b6ef660852c5b0a862bfcfc0fd6c 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/linear_static_analysis_test.cpp support@411-412 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_static_analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 58066e545facf79db27e598db7e91f24ed93b6771efa3ca779ecfe4df76a7344 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/linear_static_analysis_test.cpp support@449-450 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_static_analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. dd0e363915792cde8bf2d8793ddaec5a8c40204888921d46f70f1f507387ac4a 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/linear_static_analysis_test.cpp support@485-486 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_static_analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 83bce9b68552044428c9e22ca488475bf399b515887403c179e0f49d9230a028 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/nonlinear_static_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/integration/analysis/nonlinear_static_procedure_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1e061b20491b18339e35610d48168180a3a8dc329fd09565e392268dbce7011c 88175e6ca8c6905e7706f40141e85676d7ce3c1763b49e2ebfb7beecd6d9feab 해당 없음 해당 없음 -Dev tests/integration/analysis/nonlinear_static_procedure_test.cpp NonlinearStaticProcedure.AllConstrainedNlgeomRunWritesSchemaV1AfterAcceptedFrames NonlinearStaticProcedure.AllConstrainedNlgeomRunWritesSchemaV1AfterAcceptedFrames; assertion 6개 tests/integration/analysis/nonlinear_static_procedure_test.cpp NonlinearStaticProcedure.AllConstrainedNlgeomRunWritesSchemaV1AfterAcceptedFrames 유지 원문 검사 body 및 assertion 동일. f26bd90fa30e1fa68296b58bf1a76cc5630c88cda15c0ef729d651d3395c74ec f26bd90fa30e1fa68296b58bf1a76cc5630c88cda15c0ef729d651d3395c74ec "ASSERT_EQ(exit_code, 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(metadata, 0) | EXPECT_EQ(ReadStringAttribute(metadata, ""feature_id""), ""nonlinear-static-newton-raphson"") | EXPECT_GT(H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0)" "ASSERT_EQ(exit_code, 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(metadata, 0) | EXPECT_EQ(ReadStringAttribute(metadata, ""feature_id""), ""nonlinear-static-newton-raphson"") | EXPECT_GT(H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0)" -Dev tests/integration/analysis/nonlinear_static_procedure_test.cpp NonlinearStaticProcedure.NonzeroPrescribedMotionWritesCurrentArmSpatialAppliedPlusReactionBalance NonlinearStaticProcedure.NonzeroPrescribedMotionWritesCurrentArmSpatialAppliedPlusReactionBalance; assertion 4개 tests/integration/analysis/nonlinear_static_procedure_test.cpp NonlinearStaticProcedure.NonzeroPrescribedMotionWritesCurrentArmSpatialAppliedPlusReactionBalance 유지 원문 검사 body 및 assertion 동일. 9ff42852bb00d02f437a4da95165fdf5d26e6b838001a0d5ab14a85a04317640 9ff42852bb00d02f437a4da95165fdf5d26e6b838001a0d5ab14a85a04317640 ASSERT_EQ(exit_code, 0) | ASSERT_GE(dataset, 0) | ASSERT_GE(H5Dread(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, actual.data()), 0) | EXPECT_NEAR(actual[component], expected[component], 1.0e-10) ASSERT_EQ(exit_code, 0) | ASSERT_GE(dataset, 0) | ASSERT_GE(H5Dread(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, actual.data()), 0) | EXPECT_NEAR(actual[component], expected[component], 1.0e-10) -Dev tests/integration/analysis/nonlinear_static_procedure_test.cpp support@1-292 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, WriteText, AllConstrainedNonlinearShellDeck, NonzeroPrescribedNonlinearShellDeck, Hdf5File, ReadStringAttribute, ReadNodalDataset, ReadConstraintMask, SpatialMoment, ReconstructGlobalBalance tests/integration/analysis/nonlinear_static_procedure_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 28bacfe1a5c4b6f4da94867bd5ac79b2b4e93a6f5fecfb0c4ab146dc9b324eef 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/nonlinear_static_procedure_test.cpp support@316-317 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/nonlinear_static_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 185679e57938f51bc52ac8004de60266decc8599baf2c9e6aac91a3cec7811be 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/nonlinear_static_procedure_test.cpp support@345-346 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/nonlinear_static_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/shell_surface_pressure_linear_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f160a13c739276bb27b6b769f4b5d7fc53ab6bbe0e4917b1388aa171313f834e f160a13c739276bb27b6b769f4b5d7fc53ab6bbe0e4917b1388aa171313f834e 해당 없음 해당 없음 -Dev tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.UsesReferenceNormalAndAreaAfterPrescribedDisplacement LinearShellSurfacePressure.UsesReferenceNormalAndAreaAfterPrescribedDisplacement; assertion 2개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.UsesReferenceNormalAndAreaAfterPrescribedDisplacement 유지 원문 검사 body 및 assertion 동일. e721439d9254d983e65489ab2bbc4fb02e07d31658fc561f5401bfbd83abaa10 e721439d9254d983e65489ab2bbc4fb02e07d31658fc561f5401bfbd83abaa10 EXPECT_DOUBLE_EQ(state.Displacement()[8U], 5.0) | EXPECT_EQ(SumTranslation(state.ExternalForce()), (std::array{0.0, 0.0, -4.0})) EXPECT_DOUBLE_EQ(state.Displacement()[8U], 5.0) | EXPECT_EQ(SumTranslation(state.ExternalForce()), (std::array{0.0, 0.0, -4.0})) -Dev tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.AssemblesBeforeProjectionAndIncludesConstrainedReaction LinearShellSurfacePressure.AssemblesBeforeProjectionAndIncludesConstrainedReaction; assertion 2개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.AssemblesBeforeProjectionAndIncludesConstrainedReaction 유지 원문 검사 body 및 assertion 동일. ba222e9848a5e378bcf9c71a3c33243ac8771e3fac0c5822851e2102ed967c4d ba222e9848a5e378bcf9c71a3c33243ac8771e3fac0c5822851e2102ed967c4d EXPECT_EQ(SumTranslation(state.ExternalForce()), (std::array{0.0, 0.0, -4.0})) | EXPECT_EQ(SumTranslation(state.Reaction()), (std::array{0.0, 0.0, 4.0})) EXPECT_EQ(SumTranslation(state.ExternalForce()), (std::array{0.0, 0.0, -4.0})) | EXPECT_EQ(SumTranslation(state.Reaction()), (std::array{0.0, 0.0, 4.0})) -Dev tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.SatisfiesFreeResidualGlobalResultantAndMoment LinearShellSurfacePressure.SatisfiesFreeResidualGlobalResultantAndMoment; assertion 2개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.SatisfiesFreeResidualGlobalResultantAndMoment 유지 원문 검사 body 및 assertion 동일. 171514cf20d839500b5919fd98671a3c0f805d8552929fcc111886400eb35cb3 171514cf20d839500b5919fd98671a3c0f805d8552929fcc111886400eb35cb3 EXPECT_NEAR(value, 0.0, 1.0e-8) | EXPECT_NEAR(state.VerificationMetrics()[0U], 0.0, 1.0e-10) EXPECT_NEAR(value, 0.0, 1.0e-8) | EXPECT_NEAR(state.VerificationMetrics()[0U], 0.0, 1.0e-10) -Dev tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.PreservesS4S4rMeshAndCyclicOrderInvariance LinearShellSurfacePressure.PreservesS4S4rMeshAndCyclicOrderInvariance; assertion 6개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.PreservesS4S4rMeshAndCyclicOrderInvariance 유지 원문 검사 body 및 assertion 동일. 1439f391357b0fe3f6dd44f5b7ce79f74d7ed2df71d6eb5a3b1f4c7081cf4237 1439f391357b0fe3f6dd44f5b7ce79f74d7ed2df71d6eb5a3b1f4c7081cf4237 ASSERT_EQ(s4.ExternalForce().Size(), s4r.ExternalForce().Size()) | ASSERT_EQ(s4.ExternalForce().Size(), cyclic.ExternalForce().Size()) | EXPECT_DOUBLE_EQ(s4.ExternalForce()[index], s4r.ExternalForce()[index]) | EXPECT_DOUBLE_EQ(s4.ExternalForce()[index], cyclic.ExternalForce()[index]) | EXPECT_DOUBLE_EQ(s4.Reaction()[index], s4r.Reaction()[index]) | EXPECT_DOUBLE_EQ(s4.Reaction()[index], cyclic.Reaction()[index]) ASSERT_EQ(s4.ExternalForce().Size(), s4r.ExternalForce().Size()) | ASSERT_EQ(s4.ExternalForce().Size(), cyclic.ExternalForce().Size()) | EXPECT_DOUBLE_EQ(s4.ExternalForce()[index], s4r.ExternalForce()[index]) | EXPECT_DOUBLE_EQ(s4.ExternalForce()[index], cyclic.ExternalForce()[index]) | EXPECT_DOUBLE_EQ(s4.Reaction()[index], s4r.Reaction()[index]) | EXPECT_DOUBLE_EQ(s4.Reaction()[index], cyclic.Reaction()[index]) -Dev tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.WritesSchemaZeroWithoutPressureDataset LinearShellSurfacePressure.WritesSchemaZeroWithoutPressureDataset; assertion 12개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.WritesSchemaZeroWithoutPressureDataset 유지 원문 검사 body 및 assertion 동일. a1753dcd30b46c5386bcb0198661ae6982efcbbce8c4b8deb2ab12729c7cd5c0 a1753dcd30b46c5386bcb0198661ae6982efcbbce8c4b8deb2ab12729c7cd5c0 "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | ASSERT_GE(metadata, 0) | ASSERT_GE(schema, 0) | ASSERT_GE(H5Aread(schema, H5T_NATIVE_UINT64, &schema_version), 0) | EXPECT_EQ(schema_version, 0U) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Aclose(schema), 0) | EXPECT_GE(H5Gclose(metadata), 0) | EXPECT_GE(H5Fclose(file), 0)" "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | ASSERT_GE(metadata, 0) | ASSERT_GE(schema, 0) | ASSERT_GE(H5Aread(schema, H5T_NATIVE_UINT64, &schema_version), 0) | EXPECT_EQ(schema_version, 0U) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Aclose(schema), 0) | EXPECT_GE(H5Gclose(metadata), 0) | EXPECT_GE(H5Fclose(file), 0)" -Dev tests/integration/analysis/shell_surface_pressure_linear_test.cpp support@1-176 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, WriteText, ShellDeck, CapturingResultsWriter, State, RunLinear, SumTranslation tests/integration/analysis/shell_surface_pressure_linear_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e57c8ba9f74968a8c7ca06c327d4bae2312eb212b552414c2365975b785c1ef3 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 10개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 76f0d621c519f1ca1cb68fafd700bca52c94c69ac975a274eac995298ff77df3 76f0d621c519f1ca1cb68fafd700bca52c94c69ac975a274eac995298ff77df3 해당 없음 해당 없음 -Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.AssemblesFollowerForceFromCurrentTrialGeometry NonlinearShellSurfacePressure.AssemblesFollowerForceFromCurrentTrialGeometry; assertion 1개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.AssemblesFollowerForceFromCurrentTrialGeometry 유지 원문 검사 body 및 assertion 동일. 275b59b0a99ff5bcb4936eac0dd4373eb3fb04e88d56a47ff1aff8a27b2c86f9 275b59b0a99ff5bcb4936eac0dd4373eb3fb04e88d56a47ff1aff8a27b2c86f9 EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) -Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.FormsResidualAndTangentWithApprovedExternalSigns NonlinearShellSurfacePressure.FormsResidualAndTangentWithApprovedExternalSigns; assertion 2개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.FormsResidualAndTangentWithApprovedExternalSigns 유지 원문 검사 body 및 assertion 동일. 0a6136e7ba03b60316d311f5f6b42f16252978acda71b7d0b56f16eb12b209ba 0a6136e7ba03b60316d311f5f6b42f16252978acda71b7d0b56f16eb12b209ba EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_NEAR(SumTranslation(residual, 2U), 6.0, 1.0e-12) EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_NEAR(SumTranslation(residual, 2U), 6.0, 1.0e-12) -Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.AppliesIncrementFactorExactlyOnce NonlinearShellSurfacePressure.AppliesIncrementFactorExactlyOnce; assertion 1개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.AppliesIncrementFactorExactlyOnce 유지 원문 검사 body 및 assertion 동일. fd422711071867040b064e56df5df62d50a20128bb59e934095f3657cf85f95e fd422711071867040b064e56df5df62d50a20128bb59e934095f3657cf85f95e EXPECT_NEAR(SumTranslation(external, 2U), -0.42, 1.0e-12) EXPECT_NEAR(SumTranslation(external, 2U), -0.42, 1.0e-12) -Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.UsesFullUnsymmetricTangentSolverPath NonlinearShellSurfacePressure.UsesFullUnsymmetricTangentSolverPath; assertion 7개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.UsesFullUnsymmetricTangentSolverPath 유지 원문 검사 body 및 assertion 동일. 63a34f032cb16dd83f579b4dd4b484e3c326615ba25fa1133eee16013843c11f 63a34f032cb16dd83f579b4dd4b484e3c326615ba25fa1133eee16013843c11f EXPECT_NE(SumTranslation(external, 2U), 0.0) | EXPECT_NE(SumTranslation(residual, 2U), 0.0) | ASSERT_TRUE(central.HasValue()) | ASSERT_TRUE(forward.HasValue()) | ASSERT_TRUE(backward.HasValue()) | EXPECT_NEAR(finite_difference, central.Value().external_tangent[row * 24U + 12U], 1.0e-8) | EXPECT_TRUE(has_antisymmetric_entry) EXPECT_NE(SumTranslation(external, 2U), 0.0) | EXPECT_NE(SumTranslation(residual, 2U), 0.0) | ASSERT_TRUE(central.HasValue()) | ASSERT_TRUE(forward.HasValue()) | ASSERT_TRUE(backward.HasValue()) | EXPECT_NEAR(finite_difference, central.Value().external_tangent[row * 24U + 12U], 1.0e-8) | EXPECT_TRUE(has_antisymmetric_entry) -Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.ConvergesOpenPatchAndPreservesAntisymmetricEvidence NonlinearShellSurfacePressure.ConvergesOpenPatchAndPreservesAntisymmetricEvidence; assertion 2개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.ConvergesOpenPatchAndPreservesAntisymmetricEvidence 유지 원문 검사 body 및 assertion 동일. 04b9fe95ba4947d608fc9a7ec79b1740e70ecfbbcd3a01e2e16606d5243818ae 04b9fe95ba4947d608fc9a7ec79b1740e70ecfbbcd3a01e2e16606d5243818ae "EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_GT(H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0)" "EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_GT(H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0)" -Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.SatisfiesAcceptedFreeResidualAndFactorOneGlobalBalance NonlinearShellSurfacePressure.SatisfiesAcceptedFreeResidualAndFactorOneGlobalBalance; assertion 1개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.SatisfiesAcceptedFreeResidualAndFactorOneGlobalBalance 유지 원문 검사 body 및 assertion 동일. 57b26b0b13a3b8aeb13983659e70fa74ee28ce08b9657ee48534d4357dec6986 57b26b0b13a3b8aeb13983659e70fa74ee28ce08b9657ee48534d4357dec6986 EXPECT_LE(MaximumAbs(equilibrium), 1.0e-8) EXPECT_LE(MaximumAbs(equilibrium), 1.0e-8) -Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.IsObjectiveUnderRigidMotionAndTracksCurrentArea NonlinearShellSurfacePressure.IsObjectiveUnderRigidMotionAndTracksCurrentArea; assertion 4개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.IsObjectiveUnderRigidMotionAndTracksCurrentArea 유지 원문 검사 body 및 assertion 동일. bf38184a7460af3225ecdfb1d17c748cb2827953f7ab20cb0d09aa512b765102 bf38184a7460af3225ecdfb1d17c748cb2827953f7ab20cb0d09aa512b765102 ASSERT_TRUE(contribution.HasValue()) | EXPECT_NEAR(force_x, 0.0, 1.0e-12) | EXPECT_NEAR(force_y, 4.0, 1.0e-12) | EXPECT_NEAR(force_z, 0.0, 1.0e-12) ASSERT_TRUE(contribution.HasValue()) | EXPECT_NEAR(force_x, 0.0, 1.0e-12) | EXPECT_NEAR(force_y, 4.0, 1.0e-12) | EXPECT_NEAR(force_z, 0.0, 1.0e-12) -Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.ReducesSerialAndParallelContributionsDeterministically NonlinearShellSurfacePressure.ReducesSerialAndParallelContributionsDeterministically; assertion 2개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.ReducesSerialAndParallelContributionsDeterministically 유지 원문 검사 body 및 assertion 동일. 7221071e8ff084a8b909b3820cf880025e76e8d17c003c07e58ce9bac6e812b5 7221071e8ff084a8b909b3820cf880025e76e8d17c003c07e58ce9bac6e812b5 EXPECT_EQ(first_force, second_force) | EXPECT_NE(SumTranslation(first_force, 2U), 0.0) EXPECT_EQ(first_force, second_force) | EXPECT_NE(SumTranslation(first_force, 2U), 0.0) -Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.InvalidTrialRollsBackCommittedFrameAndFinalOutput NonlinearShellSurfacePressure.InvalidTrialRollsBackCommittedFrameAndFinalOutput; assertion 2개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.InvalidTrialRollsBackCommittedFrameAndFinalOutput 유지 원문 검사 body 및 assertion 동일. 36e810eaf381a43605bffdffe6997ad85e7b0ed2e01de1c00989cbbb49d0f80d 36e810eaf381a43605bffdffe6997ad85e7b0ed2e01de1c00989cbbb49d0f80d EXPECT_NE(exit_code, 0) | EXPECT_EQ(ReadBytes(output), previous) EXPECT_NE(exit_code, 0) | EXPECT_EQ(ReadBytes(output), previous) -Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.WritesSchemaOneExternalInternalResidualReactionAndEquilibrium NonlinearShellSurfacePressure.WritesSchemaOneExternalInternalResidualReactionAndEquilibrium; assertion 3개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.WritesSchemaOneExternalInternalResidualReactionAndEquilibrium 유지 원문 검사 body 및 assertion 동일. 43eabc099c0167988e47483e5a56b5be6f7af1257dc4992ee64c812b925d6ad9 43eabc099c0167988e47483e5a56b5be6f7af1257dc4992ee64c812b925d6ad9 "EXPECT_GT(H5Lexists(file.Get(), (root + suffix).c_str(), H5P_DEFAULT), 0) | EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_EQ(H5Lexists(file.Get(), ""/surface_pressure"", H5P_DEFAULT), 0)" "EXPECT_GT(H5Lexists(file.Get(), (root + suffix).c_str(), H5P_DEFAULT), 0) | EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_EQ(H5Lexists(file.Get(), ""/surface_pressure"", H5P_DEFAULT), 0)" -Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp support@1-224 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, Hdf5File, WriteText, ReadBytes, NonlinearPressureDeck, ReadFrameDataset, ReadEquilibrium, SumTranslation, MaximumAbs, for, CurrentPressureInput, RunNonlinearPressure tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ef95b2da7f58bff98fb85e60df3206dec9935f7f1af799fca4fade510af8a9aa 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/thermal_gauss_oracle.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/integration/analysis/thermal_gauss_oracle.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d788dbffcaedabfd16337b9683fd30803efb69cee2e64da08c09c4ccff29d12f d788dbffcaedabfd16337b9683fd30803efb69cee2e64da08c09c4ccff29d12f 해당 없음 해당 없음 -Dev tests/integration/analysis/thermal_gauss_oracle.h support@1-70 helper/oracle/fixture/include/static assertion 구간: thermal_oracle, GaussPoint tests/integration/analysis/thermal_gauss_oracle.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eefed1217413733d2b6f2c59534a7501f9a2256dddd8140f1b6fc970af8bcec6 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/thermal_oracle_generator.py file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/integration/analysis/thermal_oracle_generator.py file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9c7d218fb43f93b77f0b84d158fcdc32033931a63f67b46e0e8adbac48b678dd 9c7d218fb43f93b77f0b84d158fcdc32033931a63f67b46e0e8adbac48b678dd 해당 없음 해당 없음 -Dev tests/integration/analysis/thermal_oracle_generator.py add fixture/oracle/helper add tests/integration/analysis/thermal_oracle_generator.py add 유지 원문 검사 body 및 assertion 동일. 23e1150085d3fe1a5d74d2299831c98dd48f86eb9930a91b18600fc30d590845 23e1150085d3fe1a5d74d2299831c98dd48f86eb9930a91b18600fc30d590845 해당 없음 해당 없음 -Dev tests/integration/analysis/thermal_oracle_generator.py neg fixture/oracle/helper neg tests/integration/analysis/thermal_oracle_generator.py neg 유지 원문 검사 body 및 assertion 동일. 7f7c8cb6ea41ea38bda49db120a6d2cd2848779150281160c8d32c61b566b46e 7f7c8cb6ea41ea38bda49db120a6d2cd2848779150281160c8d32c61b566b46e 해당 없음 해당 없음 -Dev tests/integration/analysis/thermal_oracle_generator.py mul fixture/oracle/helper mul tests/integration/analysis/thermal_oracle_generator.py mul 유지 원문 검사 body 및 assertion 동일. 8be987139da7dda1626167aab28c0cff97553f2597f44e6e365ceab74df9bf11 8be987139da7dda1626167aab28c0cff97553f2597f44e6e365ceab74df9bf11 해당 없음 해당 없음 -Dev tests/integration/analysis/thermal_oracle_generator.py div fixture/oracle/helper div tests/integration/analysis/thermal_oracle_generator.py div 유지 원문 검사 body 및 assertion 동일. f88c22b7ecdac33d93b72af346a9809c1076dff336d7fe05e45a8ea0ce5cda98 f88c22b7ecdac33d93b72af346a9809c1076dff336d7fe05e45a8ea0ce5cda98 assert b[0] > 0 or b[1] < 0 assert b[0] > 0 or b[1] < 0 -Dev tests/integration/analysis/thermal_oracle_generator.py scale fixture/oracle/helper scale tests/integration/analysis/thermal_oracle_generator.py scale 유지 원문 검사 body 및 assertion 동일. b2d4e44e7198bea03d4b8e9aa478db99139a37e2df97553ad90c222e6c2d363e b2d4e44e7198bea03d4b8e9aa478db99139a37e2df97553ad90c222e6c2d363e 해당 없음 해당 없음 -Dev tests/integration/analysis/thermal_oracle_generator.py legendre fixture/oracle/helper legendre tests/integration/analysis/thermal_oracle_generator.py legendre 유지 원문 검사 body 및 assertion 동일. ac998c8e064d80b57bf76d7a32e7414ee2a98bc41f5bf66df11460e2a866ded5 ac998c8e064d80b57bf76d7a32e7414ee2a98bc41f5bf66df11460e2a866ded5 해당 없음 해당 없음 -Dev tests/integration/analysis/thermal_oracle_generator.py bracket fixture/oracle/helper bracket tests/integration/analysis/thermal_oracle_generator.py bracket 유지 원문 검사 body 및 assertion 동일. 6547b8bc55d38c8fc5108617a4b670ec13e1a35ff637dc4c2b49d4a89a27d47a 6547b8bc55d38c8fc5108617a4b670ec13e1a35ff637dc4c2b49d4a89a27d47a 해당 없음 해당 없음 -Dev tests/integration/analysis/thermal_oracle_generator.py rule fixture/oracle/helper rule tests/integration/analysis/thermal_oracle_generator.py rule 유지 원문 검사 body 및 assertion 동일. 66e3896608075721c4941eace553b6bd6dfb46f4035079736663145c9fe97998 66e3896608075721c4941eace553b6bd6dfb46f4035079736663145c9fe97998 assert pl * ph < 0 | assert all(a[1] < b[0] for a, b in zip(result, result[1:])) | assert sum(F(r[2]) for r in result) < 2 < sum(F(r[3]) for r in result) assert pl * ph < 0 | assert all(a[1] < b[0] for a, b in zip(result, result[1:])) | assert sum(F(r[2]) for r in result) < 2 < sum(F(r[3]) for r in result) -Dev tests/integration/analysis/thermal_oracle_generator.py slab_fixtures fixture/oracle/helper slab_fixtures tests/integration/analysis/thermal_oracle_generator.py slab_fixtures 유지 원문 검사 body 및 assertion 동일. 975f511ac674e3b180991c3f72b487234ce8712cb424a85094be969c99361561 975f511ac674e3b180991c3f72b487234ce8712cb424a85094be969c99361561 해당 없음 해당 없음 -Dev tests/integration/analysis/thermal_oracle_generator.py support@1-14 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/thermal_oracle_generator.py file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a3be554d66397807817915492b0f6e5d20acf5873a97c99032017cd6cc6d01a5 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/thermal_oracle_generator.py support@215-244 helper/oracle/fixture/include/static assertion 구간: thermal_oracle, GaussPoint, Bracket, SlabCase tests/integration/analysis/thermal_oracle_generator.py file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5d91b01795d7cc5fbaa1b6c701fdd468978526c523b9a5d14136b3d82b5e9279 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/thermal_physics_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/integration/analysis/thermal_physics_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 76b826d9162c196c136134c48c4c5116b8b95d0dee90f65fa7a8359f97d26894 fd272656d0a4bfda4a8cf075b0064a27ac6f493cb32d73c32f7e308844148c81 해당 없음 해당 없음 -Dev tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.InsulatedUniformAndZeroRetainAllFramesWithConservation ThermalPhysics.InsulatedUniformAndZeroRetainAllFramesWithConservation; assertion 5개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.InsulatedUniformAndZeroRetainAllFramesWithConservation 유지 원문 검사 body 및 assertion 동일. edf0f539db5122e88db306402c100c973d9367d15826ff41df5831b9874050c7 edf0f539db5122e88db306402c100c973d9367d15826ff41df5831b9874050c7 EXPECT_LE(std::abs(frame.temperature[i] - temperature), bound) | EXPECT_EQ(metrics.capacity_budget, 0) | EXPECT_EQ(metrics.energy_defect, 0) | EXPECT_EQ(metrics.dissipation_defect, 0) | EXPECT_EQ(metrics.flux_values, 8U * 4U * 72U) EXPECT_LE(std::abs(frame.temperature[i] - temperature), bound) | EXPECT_EQ(metrics.capacity_budget, 0) | EXPECT_EQ(metrics.energy_defect, 0) | EXPECT_EQ(metrics.dissipation_defect, 0) | EXPECT_EQ(metrics.flux_values, 8U * 4U * 72U) -Dev tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.DiscreteEigenmodeHasFirstOrderTimeConvergence ThermalPhysics.DiscreteEigenmodeHasFirstOrderTimeConvergence; assertion 4개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.DiscreteEigenmodeHasFirstOrderTimeConvergence 유지 원문 검사 body 및 assertion 동일. 1d52f524f76f2684bb44a8432cd192d154ee2cc3246fbea4cbe564c74132a60d 1d52f524f76f2684bb44a8432cd192d154ee2cc3246fbea4cbe564c74132a60d EXPECT_LE(agreement.hi, total_budget.hi) | EXPECT_LE((total_budget / mode_norm).hi, error_norm.lo / 1000) | EXPECT_GE(order, .97) | EXPECT_LE(order, 1.02) EXPECT_LE(agreement.hi, total_budget.hi) | EXPECT_LE((total_budget / mode_norm).hi, error_norm.lo / 1000) | EXPECT_GE(order, .97) | EXPECT_LE(order, 1.02) -Dev tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.SignedOverlappingAndConstrainedPowerBalanceByComponent ThermalPhysics.SignedOverlappingAndConstrainedPowerBalanceByComponent; assertion 6개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.SignedOverlappingAndConstrainedPowerBalanceByComponent 유지 원문 검사 body 및 assertion 동일. 2d2c5cc010b1987f2ab8df39ea5a39746869dd7c226da2fdfe5f0337a2adbe16 2d2c5cc010b1987f2ab8df39ea5a39746869dd7c226da2fdfe5f0337a2adbe16 EXPECT_EQ(p.assembly.HeatInput()[20], 5) | EXPECT_EQ(p.assembly.HeatInput()[34], -5) | EXPECT_DOUBLE_EQ(frame.temperature[i], other_frame.temperature[i]) | EXPECT_LE(first.Abs(), metrics.steps[step - 1].energy_bound) | EXPECT_LE(energy[1].Abs(), metrics.steps[step - 1].energy_bound) | EXPECT_LE(reaction_shift.Abs(), subtraction.hi) EXPECT_EQ(p.assembly.HeatInput()[20], 5) | EXPECT_EQ(p.assembly.HeatInput()[34], -5) | EXPECT_DOUBLE_EQ(frame.temperature[i], other_frame.temperature[i]) | EXPECT_LE(first.Abs(), metrics.steps[step - 1].energy_bound) | EXPECT_LE(energy[1].Abs(), metrics.steps[step - 1].energy_bound) | EXPECT_LE(reaction_shift.Abs(), subtraction.hi) -Dev tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.PrivateFullEndStripRespectsThicknessMaterialJumpAndFoldResistance ThermalPhysics.PrivateFullEndStripRespectsThicknessMaterialJumpAndFoldResistance; assertion 7개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.PrivateFullEndStripRespectsThicknessMaterialJumpAndFoldResistance 유지 원문 검사 body 및 assertion 동일. 98716955c3d594ac8083ae9a474374c5888912c98ba4d073f991296e2b65c1ae 98716955c3d594ac8083ae9a474374c5888912c98ba4d073f991296e2b65c1ae ASSERT_GT(denominator.lo, 0) | EXPECT_LE((I{result.temperature[i]} - mid).Abs(), bound.hi + (mid - I{mid.Mid()}).Abs()) | EXPECT_LE((right - mid).Abs(), reaction_budget.hi) | EXPECT_LE((left + mid).Abs(), reaction_budget.hi) | EXPECT_LE((left + right).Abs(), result.evidence.energy_bound) | EXPECT_LE((I{q.X()} + mid).Abs(), 24 * bound.hi + Gamma(2048).hi * 24) | EXPECT_LE((I{component} + I{5} / I{3}).Abs(), 400 * bound.hi + Gamma(2048).hi * 400) ASSERT_GT(denominator.lo, 0) | EXPECT_LE((I{result.temperature[i]} - mid).Abs(), bound.hi + (mid - I{mid.Mid()}).Abs()) | EXPECT_LE((right - mid).Abs(), reaction_budget.hi) | EXPECT_LE((left + mid).Abs(), reaction_budget.hi) | EXPECT_LE((left + right).Abs(), result.evidence.energy_bound) | EXPECT_LE((I{q.X()} + mid).Abs(), 24 * bound.hi + Gamma(2048).hi * 24) | EXPECT_LE((I{component} + I{5} / I{3}).Abs(), 400 * bound.hi + Gamma(2048).hi * 400) -Dev tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.PrivateAffineFieldRotationNormalAndUnaveragedMidplaneTraces ThermalPhysics.PrivateAffineFieldRotationNormalAndUnaveragedMidplaneTraces; assertion 7개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.PrivateAffineFieldRotationNormalAndUnaveragedMidplaneTraces 유지 원문 검사 body 및 assertion 동일. 0149790ce0000a7f3bfa36e529afff49efc9d2cd79b3a2fa2038d5eaf5765773 0149790ce0000a7f3bfa36e529afff49efc9d2cd79b3a2fa2038d5eaf5765773 EXPECT_FALSE(cache.matrix.has_value()) | EXPECT_LE((dot - I{static_cast(a == b)}).Abs(), (Gamma(2048) * absolute).hi) | EXPECT_GT(r[0].Cross(r[1]).Dot(r[2]), 0) | EXPECT_LE(std::abs(q[c] - expected[c]), budget) | EXPECT_LE((actual_local - expected_local).Abs(), budget + Gamma(16).hi * k * (8 + 16 / h) * scale) | EXPECT_EQ(traces[0][6 * point + 2].Dot(normal), 0) | EXPECT_LE( std::abs(traces[0][6 * point + 3].Dot(normal) + 4 * k / h), (Gamma(2048) * I{2 * k * (8 + 16 / h)}).hi) EXPECT_FALSE(cache.matrix.has_value()) | EXPECT_LE((dot - I{static_cast(a == b)}).Abs(), (Gamma(2048) * absolute).hi) | EXPECT_GT(r[0].Cross(r[1]).Dot(r[2]), 0) | EXPECT_LE(std::abs(q[c] - expected[c]), budget) | EXPECT_LE((actual_local - expected_local).Abs(), budget + Gamma(16).hi * k * (8 + 16 / h) * scale) | EXPECT_EQ(traces[0][6 * point + 2].Dot(normal), 0) | EXPECT_LE( std::abs(traces[0][6 * point + 3].Dot(normal) + 4 * k / h), (Gamma(2048) * I{2 * k * (8 + 16 / h)}).hi) -Dev tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.FullTwoDimensionalMeshesHaveSecondOrderTemperatureAndFirstOrderGradient ThermalPhysics.FullTwoDimensionalMeshesHaveSecondOrderTemperatureAndFirstOrderGradient; assertion 11개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.FullTwoDimensionalMeshesHaveSecondOrderTemperatureAndFirstOrderGradient 유지 원문 검사 body 및 assertion 동일. 0ceca38a5febc9b2b1dd637a6fdc3c6bade908c088a878422dd93f60377d48e4 0ceca38a5febc9b2b1dd637a6fdc3c6bade908c088a878422dd93f60377d48e4 EXPECT_LE((twelve.temperature - sixteen.temperature).Abs(), sixteen.temperature.lo * 1e-8) | EXPECT_LE((twelve.gradient - sixteen.gradient).Abs(), sixteen.gradient.lo * 1e-8) | EXPECT_LE(agreement.hi, forward.hi) | EXPECT_LE(forward.hi, sixteen.temperature.lo / 1000) | EXPECT_LE((Sqrt(I{24. * n * n + 1280}) * forward).hi, sixteen.gradient.lo / 1000) | EXPECT_LE(temporal.hi, spatial_error.temperature.lo / 32) | EXPECT_GE(temperature_order, 1.95) | EXPECT_LE(temperature_order, 2.05) | EXPECT_GE(gradient_order, .98) | EXPECT_LE(gradient_order, 1.03) | EXPECT_EQ(8 * (metrics.temperature_values + metrics.flux_values), 81074472U) EXPECT_LE((twelve.temperature - sixteen.temperature).Abs(), sixteen.temperature.lo * 1e-8) | EXPECT_LE((twelve.gradient - sixteen.gradient).Abs(), sixteen.gradient.lo * 1e-8) | EXPECT_LE(agreement.hi, forward.hi) | EXPECT_LE(forward.hi, sixteen.temperature.lo / 1000) | EXPECT_LE((Sqrt(I{24. * n * n + 1280}) * forward).hi, sixteen.gradient.lo / 1000) | EXPECT_LE(temporal.hi, spatial_error.temperature.lo / 32) | EXPECT_GE(temperature_order, 1.95) | EXPECT_LE(temperature_order, 2.05) | EXPECT_GE(gradient_order, .98) | EXPECT_LE(gradient_order, 1.03) | EXPECT_EQ(8 * (metrics.temperature_values + metrics.flux_values), 81074472U) -Dev tests/integration/analysis/thermal_physics_test.cpp ThermalSlab.ActualMeshesMatchCertifiedP2AndSeparateFourierError ThermalSlab.ActualMeshesMatchCertifiedP2AndSeparateFourierError; assertion 10개 tests/integration/analysis/thermal_physics_test.cpp ThermalSlab.ActualMeshesMatchCertifiedP2AndSeparateFourierError 유지 원문 검사 body 및 assertion 동일. 35d85f768c1c0df7ccdf1dcfe80c2a8294bffdfc09fc9f32bef7e529eaa29491 35d85f768c1c0df7ccdf1dcfe80c2a8294bffdfc09fc9f32bef7e529eaa29491 EXPECT_EQ(p.state.CommittedState().temperature[row], 0) | ASSERT_GT(inverse_denominator.lo, 0) | EXPECT_LE(std::abs(element[sample][0]), flux_budget.hi) | EXPECT_LE(std::abs(element[sample][1]), flux_budget.hi) | EXPECT_LE((samples[quantity] - first_mesh[quantity]).Abs(), (I{first_budget[group]} + I{solver_budget[group]}).hi) | EXPECT_LE(roundoff.hi, oracle.space[group] / 1000) | EXPECT_LE(agreement[group], roundoff.hi) | EXPECT_LE(physical[group], (I{oracle.space[group]} + I{time_error[group]} + roundoff).hi) | EXPECT_LE((I{physical[group]} - I{space_error[group]}).Abs(), (I{time_error[group]} + roundoff).hi) | EXPECT_TRUE(plateau) EXPECT_EQ(p.state.CommittedState().temperature[row], 0) | ASSERT_GT(inverse_denominator.lo, 0) | EXPECT_LE(std::abs(element[sample][0]), flux_budget.hi) | EXPECT_LE(std::abs(element[sample][1]), flux_budget.hi) | EXPECT_LE((samples[quantity] - first_mesh[quantity]).Abs(), (I{first_budget[group]} + I{solver_budget[group]}).hi) | EXPECT_LE(roundoff.hi, oracle.space[group] / 1000) | EXPECT_LE(agreement[group], roundoff.hi) | EXPECT_LE(physical[group], (I{oracle.space[group]} + I{time_error[group]} + roundoff).hi) | EXPECT_LE((I{physical[group]} - I{space_error[group]}).Abs(), (I{time_error[group]} + roundoff).hi) | EXPECT_TRUE(plateau) -Dev tests/integration/analysis/thermal_physics_test.cpp support@1-335 helper/oracle/fixture/include/static assertion 구간: ti, Down, Up, I, Mid, Abs, Sqrt, Square, Gamma, Pi, Cos, if, ExpNegative, while, Power, T, Take, Checked, Mesh, Prepared, RunMetrics, Advance, for, Print, CapacityNorm tests/integration/analysis/thermal_physics_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e22ee5f0f8df809604139d7a6e4a6ee465534fa0dca5e807d128683d4dba9edf 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/thermal_physics_test.cpp support@355-429 helper/oracle/fixture/include/static assertion 구간: VerifyDiscreteEigenmode tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 302213d4b2826eec0d855386a82aa934f7517ca58b5a648eee7d7312b379e6a7 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/thermal_physics_test.cpp support@537-600 helper/oracle/fixture/include/static assertion 구간: ZeroLike, CertifiedInverse, if tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ed80a8f1fe0a8a5a570f4eee10c069f506b9a07b7e1187cae5bd9481521fb22a 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/thermal_physics_test.cpp support@797-868 helper/oracle/fixture/include/static assertion 구간: ThicknessMass, ThicknessGradient, SpatialError, IntegrateSpatialError, for tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6fe84510f8e89a0b45ac65e8b403973d1a9f3333b13d9c73deaf7076f9ca12ee 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/thermal_physics_test.cpp support@957-959 helper/oracle/fixture/include/static assertion 구간: Bracket, ThermalSlab tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 132c3f6724f847d2eb1cb70298ba8cbba9a8d0a5f070b51734e71be7e07e0616 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/thermal_physics_test.cpp support@1131-1139 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e43aa8e23b2faf52e75adc8f5647bf291d27a232530b2c49b1bb17df2d2e329e 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/analysis/thermal_slab_oracle.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/integration/analysis/thermal_slab_oracle.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2d4d4f58df2a9f08b25f850c59617100f2a8af10ba7bdebb7ee80e15b079ad27 2d4d4f58df2a9f08b25f850c59617100f2a8af10ba7bdebb7ee80e15b079ad27 해당 없음 해당 없음 -Dev tests/integration/analysis/thermal_slab_oracle.h support@1-359 helper/oracle/fixture/include/static assertion 구간: thermal_oracle, Bracket, SlabCase tests/integration/analysis/thermal_slab_oracle.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3dfe0819fc272857692d3de89c30080b4f509c425b6169550bba89114be56c1f 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/app/eigen_application_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/integration/app/eigen_application_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7632397db2daf06eb0ff79a311f4f61832f415ebee4aebe334c8bf5d97e83772 7632397db2daf06eb0ff79a311f4f61832f415ebee4aebe334c8bf5d97e83772 해당 없음 해당 없음 -Dev tests/integration/app/eigen_application_test.cpp EigenApplicationTest.DispatchesFrequencyAndWritesModalSibling EigenApplicationTest.DispatchesFrequencyAndWritesModalSibling; assertion 9개 tests/integration/app/eigen_application_test.cpp EigenApplicationTest.DispatchesFrequencyAndWritesModalSibling 유지 원문 검사 body 및 assertion 동일. 68264a89e2eea378557e983ac8734ba58b464af83c2ac2b3628f1f1fafa70ee3 68264a89e2eea378557e983ac8734ba58b464af83c2ac2b3628f1f1fafa70ee3 "ASSERT_EQ(fesa::FesaApplication{}.Run({input_.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output_)) | ASSERT_TRUE(std::filesystem::exists(log_)) | EXPECT_EQ(std::filesystem::file_size(log_), 0U) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/modes"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/vectors"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" "ASSERT_EQ(fesa::FesaApplication{}.Run({input_.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output_)) | ASSERT_TRUE(std::filesystem::exists(log_)) | EXPECT_EQ(std::filesystem::file_size(log_), 0U) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/modes"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/vectors"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" -Dev tests/integration/app/eigen_application_test.cpp EigenApplicationTest.EmptyPencilPreservesPreviousFinalAndEmptyLog EigenApplicationTest.EmptyPencilPreservesPreviousFinalAndEmptyLog; assertion 3개 tests/integration/app/eigen_application_test.cpp EigenApplicationTest.EmptyPencilPreservesPreviousFinalAndEmptyLog 유지 원문 검사 body 및 assertion 동일. c919926a783cca5aacef016773b325fbad92557b269875233aa77feb5f4cf253 c919926a783cca5aacef016773b325fbad92557b269875233aa77feb5f4cf253 EXPECT_EQ(fesa::FesaApplication{}.Run({input_.string()}), 4) | EXPECT_TRUE(std::string(std::istreambuf_iterator{previous}, {}) == original) | EXPECT_EQ(std::filesystem::file_size(log_), 0U) EXPECT_EQ(fesa::FesaApplication{}.Run({input_.string()}), 4) | EXPECT_TRUE(std::string(std::istreambuf_iterator{previous}, {}) == original) | EXPECT_EQ(std::filesystem::file_size(log_), 0U) -Dev tests/integration/app/eigen_application_test.cpp support@1-81 helper/oracle/fixture/include/static assertion 구간: EigenApplicationTest, WriteDeck tests/integration/app/eigen_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 34d85c877e290ff9094967418cedc08e2751fe6074e5f3007b0b1dd16a22e861 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/app/eigen_application_test.cpp support@110-111 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/eigen_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/app/fesa_application_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/integration/app/fesa_application_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 07d63eb93467254f069d6ae86e2af022287e1ff0dba8272dbb08e830709a9ff0 07d63eb93467254f069d6ae86e2af022287e1ff0dba8272dbb08e830709a9ff0 해당 없음 해당 없음 -Dev tests/integration/app/fesa_application_test.cpp LinearStaticCli.DefaultOutputUsesInputSiblingDerivedName LinearStaticCli.DefaultOutputUsesInputSiblingDerivedName; assertion 2개 tests/integration/app/fesa_application_test.cpp LinearStaticCli.DefaultOutputUsesInputSiblingDerivedName 유지 원문 검사 body 및 assertion 동일. 32a254e96576eb69d5fa023125fa0bf941cf0d2a73be539df402feb8687b097f 32a254e96576eb69d5fa023125fa0bf941cf0d2a73be539df402feb8687b097f "ASSERT_EQ(result.exit_code, 0) | EXPECT_FALSE(std::filesystem::exists(directory.Path() / ""results.h5""))" "ASSERT_EQ(result.exit_code, 0) | EXPECT_FALSE(std::filesystem::exists(directory.Path() / ""results.h5""))" -Dev tests/integration/app/fesa_application_test.cpp FesaApplication.OpensDerivedLogBeforeInputMapping FesaApplication.OpensDerivedLogBeforeInputMapping; assertion 3개 tests/integration/app/fesa_application_test.cpp FesaApplication.OpensDerivedLogBeforeInputMapping 유지 원문 검사 body 및 assertion 동일. 0ff45e4e3ddc200c86c04a2c7aeafc773da2345f78afda2eadc06eddd4d6d006 0ff45e4e3ddc200c86c04a2c7aeafc773da2345f78afda2eadc06eddd4d6d006 EXPECT_EQ(result.exit_code, 3) | ASSERT_TRUE(std::filesystem::exists(log)) | EXPECT_EQ(std::filesystem::file_size(log), 0U) EXPECT_EQ(result.exit_code, 3) | ASSERT_TRUE(std::filesystem::exists(log)) | EXPECT_EQ(std::filesystem::file_size(log), 0U) -Dev tests/integration/app/fesa_application_test.cpp LinearStaticCli.ReturnsEveryExactExitCodeAndOrderedDiagnostic LinearStaticCli.ReturnsEveryExactExitCodeAndOrderedDiagnostic; assertion 9개 tests/integration/app/fesa_application_test.cpp LinearStaticCli.ReturnsEveryExactExitCodeAndOrderedDiagnostic 유지 원문 검사 body 및 assertion 동일. 466456fe6183443de50011587199f89bcfe4345da298f5ffcb6fb3bf21b27f83 466456fe6183443de50011587199f89bcfe4345da298f5ffcb6fb3bf21b27f83 "EXPECT_EQ(success.exit_code, 0) | EXPECT_EQ(usage.exit_code, 2) | EXPECT_EQ(input.exit_code, 3) | EXPECT_EQ(model.exit_code, 4) | EXPECT_EQ(solver.exit_code, 5) | EXPECT_EQ(repeated_output.exit_code, 2) | EXPECT_NE(repeated_output.standard_error.find(""code=cli-usage""), std::string::npos) | EXPECT_EQ(unknown_output_option.exit_code, 2) | EXPECT_NE(unknown_output_option.standard_error.find(""code=cli-usage""), std::string::npos)" "EXPECT_EQ(success.exit_code, 0) | EXPECT_EQ(usage.exit_code, 2) | EXPECT_EQ(input.exit_code, 3) | EXPECT_EQ(model.exit_code, 4) | EXPECT_EQ(solver.exit_code, 5) | EXPECT_EQ(repeated_output.exit_code, 2) | EXPECT_NE(repeated_output.standard_error.find(""code=cli-usage""), std::string::npos) | EXPECT_EQ(unknown_output_option.exit_code, 2) | EXPECT_NE(unknown_output_option.standard_error.find(""code=cli-usage""), std::string::npos)" -Dev tests/integration/app/fesa_application_test.cpp LinearStaticCli.OutputSubstringRejectionLeavesDerivedFilesUnchanged LinearStaticCli.OutputSubstringRejectionLeavesDerivedFilesUnchanged; assertion 7개 tests/integration/app/fesa_application_test.cpp LinearStaticCli.OutputSubstringRejectionLeavesDerivedFilesUnchanged 유지 원문 검사 body 및 assertion 동일. 15e900377c4aa714bb7d75ea9dcefa8e379107ec7b3aae46f27c39781c4d73e4 15e900377c4aa714bb7d75ea9dcefa8e379107ec7b3aae46f27c39781c4d73e4 "EXPECT_EQ(result.exit_code, 2) | EXPECT_EQ( std::count(result.standard_error.begin(), result.standard_error.end(), '\n'), 1U) | EXPECT_NE(result.standard_error.find(""code=cli-usage""), std::string::npos) | EXPECT_EQ(SnapshotFile(results).contents, previous_results.contents) | EXPECT_EQ(SnapshotFile(results).write_time, previous_results.write_time) | EXPECT_EQ(SnapshotFile(log).contents, previous_log.contents) | EXPECT_EQ(SnapshotFile(log).write_time, previous_log.write_time)" "EXPECT_EQ(result.exit_code, 2) | EXPECT_EQ( std::count(result.standard_error.begin(), result.standard_error.end(), '\n'), 1U) | EXPECT_NE(result.standard_error.find(""code=cli-usage""), std::string::npos) | EXPECT_EQ(SnapshotFile(results).contents, previous_results.contents) | EXPECT_EQ(SnapshotFile(results).write_time, previous_results.write_time) | EXPECT_EQ(SnapshotFile(log).contents, previous_log.contents) | EXPECT_EQ(SnapshotFile(log).write_time, previous_log.write_time)" -Dev tests/integration/app/fesa_application_test.cpp LinearStaticCli.BusyOutputLeaseLeavesDerivedFilesUnchanged LinearStaticCli.BusyOutputLeaseLeavesDerivedFilesUnchanged; assertion 7개 tests/integration/app/fesa_application_test.cpp LinearStaticCli.BusyOutputLeaseLeavesDerivedFilesUnchanged 유지 원문 검사 body 및 assertion 동일. 28fec91071cedec614407118354e3d04c18bccaf67210f5351846382380f4def 28fec91071cedec614407118354e3d04c18bccaf67210f5351846382380f4def "ASSERT_TRUE(lease.HasValue()) | EXPECT_EQ(result.exit_code, 6) | EXPECT_NE(result.standard_error.find(""code=output-busy""), std::string::npos) | EXPECT_EQ(SnapshotFile(results).contents, previous_results.contents) | EXPECT_EQ(SnapshotFile(results).write_time, previous_results.write_time) | EXPECT_EQ(SnapshotFile(log).contents, previous_log.contents) | EXPECT_EQ(SnapshotFile(log).write_time, previous_log.write_time)" "ASSERT_TRUE(lease.HasValue()) | EXPECT_EQ(result.exit_code, 6) | EXPECT_NE(result.standard_error.find(""code=output-busy""), std::string::npos) | EXPECT_EQ(SnapshotFile(results).contents, previous_results.contents) | EXPECT_EQ(SnapshotFile(results).write_time, previous_results.write_time) | EXPECT_EQ(SnapshotFile(log).contents, previous_log.contents) | EXPECT_EQ(SnapshotFile(log).write_time, previous_log.write_time)" -Dev tests/integration/app/fesa_application_test.cpp LinearStaticCli.OutputRequestsDoNotFilterMandatoryResults LinearStaticCli.OutputRequestsDoNotFilterMandatoryResults; assertion 6개 tests/integration/app/fesa_application_test.cpp LinearStaticCli.OutputRequestsDoNotFilterMandatoryResults 유지 원문 검사 body 및 assertion 동일. 36ab47846953b9f89467d79516155a88696bf76e752f34933d9dc6169a28f6a3 36ab47846953b9f89467d79516155a88696bf76e752f34933d9dc6169a28f6a3 "ASSERT_EQ(plain.exit_code, 0) | ASSERT_EQ(requested.exit_code, 0) | EXPECT_EQ(ReadDoubleDataset(requested_file.Get(), path), ReadDoubleDataset(plain_file.Get(), path)) | EXPECT_EQ(DatasetDimensions(plain_file.Get(), ""/diagnostics""), std::vector({0U})) | ASSERT_EQ(requested_diagnostics.size(), 1U) | EXPECT_GT(requested_diagnostics[0U], 0U)" "ASSERT_EQ(plain.exit_code, 0) | ASSERT_EQ(requested.exit_code, 0) | EXPECT_EQ(ReadDoubleDataset(requested_file.Get(), path), ReadDoubleDataset(plain_file.Get(), path)) | EXPECT_EQ(DatasetDimensions(plain_file.Get(), ""/diagnostics""), std::vector({0U})) | ASSERT_EQ(requested_diagnostics.size(), 1U) | EXPECT_GT(requested_diagnostics[0U], 0U)" -Dev tests/integration/app/fesa_application_test.cpp Mitc4ShellCli.WritesShellHdf5ThroughTheExistingApplicationRoute Mitc4ShellCli.WritesShellHdf5ThroughTheExistingApplicationRoute; assertion 1개 tests/integration/app/fesa_application_test.cpp Mitc4ShellCli.WritesShellHdf5ThroughTheExistingApplicationRoute 유지 원문 검사 body 및 assertion 동일. f437d9ab3ce6cc9db9242318e612bb8e0f5acdf70ce8ca47910c24a6e2fefbf9 f437d9ab3ce6cc9db9242318e612bb8e0f5acdf70ce8ca47910c24a6e2fefbf9 ASSERT_EQ(result.exit_code, 0) ASSERT_EQ(result.exit_code, 0) -Dev tests/integration/app/fesa_application_test.cpp support@1-355 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, CurrentDirectoryGuard, Hdf5Handle, WriteText, AxialDeck, AllConstrainedShellDeck, OpenFile, OpenDataset, DatasetDimensions, ReadDoubleDataset, for, ReadStringAttribute, ExpectMandatoryInventory, ExpectFesaHdf5Identity, ExpectShellHdf5Identity, AppRun, RunApplication, catch, ExpectDiagnosticFieldOrder, FileSnapshot, SnapshotFile tests/integration/app/fesa_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 86ad01a4a2d9c96621b43860360f5db1b874f41c64a92f5331a7d2c5f7a090b2 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/app/fesa_application_test.cpp support@370-371 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/fesa_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0d9a57af3a9392fe92e3468c81957fece71dccadbc9c5c1d2ae25abcdcfcbf96 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/app/fesa_application_test.cpp support@424-426 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/fesa_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2e743f1bbe2074a4e496d4e18d5f0fb1d01581db88662ac2b7000cbbf3235f48 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/app/fesa_application_test.cpp support@454-456 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/fesa_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 485a5a091491fa984b66ae21431bff2ac7e5bd7b5981645f350c41c4c4d1ceff 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/app/fesa_application_test.cpp support@517-518 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/fesa_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7210dc43217ee6c97222f26b3a7441a44ac19ae603a5360e08ac32b4c466f12d 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/app/shell_surface_pressure_application_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/integration/app/shell_surface_pressure_application_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 369cc07b69791c67f80fefdfebd3b3986bdd7ec3ddae0fc20cc7f9f01f1e4d07 369cc07b69791c67f80fefdfebd3b3986bdd7ec3ddae0fc20cc7f9f01f1e4d07 해당 없음 해당 없음 -Dev tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.LinearFailurePreservesExistingFinalAndNoCandidate ShellSurfacePressureApplication.LinearFailurePreservesExistingFinalAndNoCandidate; assertion 2개 tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.LinearFailurePreservesExistingFinalAndNoCandidate 유지 원문 검사 body 및 assertion 동일. 4352e654ee0cbb33ae714e1d066609c2a6e2daf28d16df65df2da019d8af4e50 4352e654ee0cbb33ae714e1d066609c2a6e2daf28d16df65df2da019d8af4e50 EXPECT_NE(exit_code, 0) | EXPECT_EQ(ReadBytes(output), previous) EXPECT_NE(exit_code, 0) | EXPECT_EQ(ReadBytes(output), previous) -Dev tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingLinearBehavior ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingLinearBehavior; assertion 7개 tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingLinearBehavior 유지 원문 검사 body 및 assertion 동일. 53128674e01206097130820f16e2df3d01c24e0961f07bad72972d923ed96683 53128674e01206097130820f16e2df3d01c24e0961f07bad72972d923ed96683 "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/frames/0/nodal/displacement"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/frames/0/nodal/displacement"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" -Dev tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingNonlinearBehavior ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingNonlinearBehavior; assertion 7개 tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingNonlinearBehavior 유지 원문 검사 body 및 assertion 동일. a92cd868028262e66a83bd771b9a654819e00285b03907d87f49c87ae6ceb5fe a92cd868028262e66a83bd771b9a654819e00285b03907d87f49c87ae6ceb5fe "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" -Dev tests/integration/app/shell_surface_pressure_application_test.cpp support@1-137 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, WriteText, ReadBytes, ShellDeck, NonlinearShellDeck tests/integration/app/shell_surface_pressure_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 018b3c3f47b9ffbf3ee6fc438e63618a745aef6195e249c4b5acf8cbfd00ac04 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/app/solid_application_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/integration/app/solid_application_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4fe3fa020951bd776343af5d26def36392794dd74c5e19ca3d57427c489c6831 4fe3fa020951bd776343af5d26def36392794dd74c5e19ca3d57427c489c6831 해당 없음 해당 없음 -Dev tests/integration/app/solid_application_test.cpp SolidApplication.AllFiveActualProceduresWriteOfficialSolidSchema SolidApplication.AllFiveActualProceduresWriteOfficialSolidSchema; assertion 6개 tests/integration/app/solid_application_test.cpp SolidApplication.AllFiveActualProceduresWriteOfficialSolidSchema 유지 원문 검사 body 및 assertion 동일. 0cddac0e04be42a231c5f6677e088fd87072a425b750a23aab5690b0ed8c84bd 0cddac0e04be42a231c5f6677e088fd87072a425b750a23aab5690b0ed8c84bd ASSERT_EQ(fesa::FesaApplication{}.Run({files.input.string()}), 0) | ASSERT_GE(f, 0) | ASSERT_GE(g, 0) | ASSERT_GE(a, 0) | ASSERT_GE(H5Aread(a, t, &value), 0) | EXPECT_STREQ(value, solid_output_test::Procedure(p)) ASSERT_EQ(fesa::FesaApplication{}.Run({files.input.string()}), 0) | ASSERT_GE(f, 0) | ASSERT_GE(g, 0) | ASSERT_GE(a, 0) | ASSERT_GE(H5Aread(a, t, &value), 0) | EXPECT_STREQ(value, solid_output_test::Procedure(p)) -Dev tests/integration/app/solid_application_test.cpp SolidApplication.NativeExecutableRunsAllFiveAndKeepsWarningsAndTypedLogs SolidApplication.NativeExecutableRunsAllFiveAndKeepsWarningsAndTypedLogs; assertion 20개 tests/integration/app/solid_application_test.cpp SolidApplication.NativeExecutableRunsAllFiveAndKeepsWarningsAndTypedLogs 유지 원문 검사 body 및 assertion 동일. 6fa687c0d3ddc09ca8dfdbe276e14156ffb4b98874acb4e66b2a3a815956eb96 6fa687c0d3ddc09ca8dfdbe276e14156ffb4b98874acb4e66b2a3a815956eb96 "ASSERT_GT(length, 0u) | ASSERT_LT(length, module.size()) | ASSERT_TRUE(std::filesystem::exists(executable)) | ASSERT_EQ(fesa::FesaApplication{}.Run({files.input.string()}), 0) | ASSERT_TRUE(CreateProcessW(executable.c_str(), command.data(), nullptr, nullptr, FALSE, CREATE_NO_WINDOW, nullptr, nullptr, &startup, &process)) | EXPECT_TRUE(GetExitCodeProcess(process.hProcess, &exit)) | ASSERT_EQ(wait, WAIT_OBJECT_0) | ASSERT_EQ(exit, 0u) | EXPECT_GT(H5Fis_hdf5(files.output.string().c_str()), 0) | EXPECT_EQ(NumericSnapshot(files.output, p), expected) | EXPECT_EQ(log.find(""correction_rotation""), std::string::npos) | EXPECT_EQ(log.find(""residual_moment""), std::string::npos) | EXPECT_NE(log.find(""schema=solid-static-log-v1""), std::string::npos) | EXPECT_NE(log.find(""schema=solid-hht-log-v1""), std::string::npos) | EXPECT_NE(log.find(""h2_physical_da_over_L=""), std::string::npos) | EXPECT_NE(log.find(""h2_algorithmic_dA_over_L=""), std::string::npos) | EXPECT_NE(log.find(""normalized-high-low-physical-state;RN64-observables""), std::string::npos) | ASSERT_GE(file, 0) | ASSERT_GE(diagnostics, 0) | EXPECT_GT(rows, 0u)" "ASSERT_GT(length, 0u) | ASSERT_LT(length, module.size()) | ASSERT_TRUE(std::filesystem::exists(executable)) | ASSERT_EQ(fesa::FesaApplication{}.Run({files.input.string()}), 0) | ASSERT_TRUE(CreateProcessW(executable.c_str(), command.data(), nullptr, nullptr, FALSE, CREATE_NO_WINDOW, nullptr, nullptr, &startup, &process)) | EXPECT_TRUE(GetExitCodeProcess(process.hProcess, &exit)) | ASSERT_EQ(wait, WAIT_OBJECT_0) | ASSERT_EQ(exit, 0u) | EXPECT_GT(H5Fis_hdf5(files.output.string().c_str()), 0) | EXPECT_EQ(NumericSnapshot(files.output, p), expected) | EXPECT_EQ(log.find(""correction_rotation""), std::string::npos) | EXPECT_EQ(log.find(""residual_moment""), std::string::npos) | EXPECT_NE(log.find(""schema=solid-static-log-v1""), std::string::npos) | EXPECT_NE(log.find(""schema=solid-hht-log-v1""), std::string::npos) | EXPECT_NE(log.find(""h2_physical_da_over_L=""), std::string::npos) | EXPECT_NE(log.find(""h2_algorithmic_dA_over_L=""), std::string::npos) | EXPECT_NE(log.find(""normalized-high-low-physical-state;RN64-observables""), std::string::npos) | ASSERT_GE(file, 0) | ASSERT_GE(diagnostics, 0) | EXPECT_GT(rows, 0u)" -Dev tests/integration/app/solid_application_test.cpp SolidApplication.SuccessfulWarningsRetainSourceLocationAndTarget SolidApplication.SuccessfulWarningsRetainSourceLocationAndTarget; assertion 5개 tests/integration/app/solid_application_test.cpp SolidApplication.SuccessfulWarningsRetainSourceLocationAndTarget 유지 원문 검사 body 및 assertion 동일. cb7efd965f709cfc1e66b1751aaaf1c95e875fafa95a45ce6b96ab5f92a47918 cb7efd965f709cfc1e66b1751aaaf1c95e875fafa95a45ce6b96ab5f92a47918 "ASSERT_EQ(exit, 0) | EXPECT_NE(diagnostics.find(""code=inactive-solid-rotation-boundary""), std::string::npos) | EXPECT_NE(diagnostics.find(""entity_identity=Fixed""), std::string::npos) | EXPECT_NE(diagnostics.find(""line=30""), std::string::npos) | EXPECT_NE(diagnostics.find(files.input.generic_u8string()), std::string::npos)" "ASSERT_EQ(exit, 0) | EXPECT_NE(diagnostics.find(""code=inactive-solid-rotation-boundary""), std::string::npos) | EXPECT_NE(diagnostics.find(""entity_identity=Fixed""), std::string::npos) | EXPECT_NE(diagnostics.find(""line=30""), std::string::npos) | EXPECT_NE(diagnostics.find(files.input.generic_u8string()), std::string::npos)" -Dev tests/integration/app/solid_application_test.cpp support@1-73 helper/oracle/fixture/include/static assertion 구간: NumericSnapshot, for, if tests/integration/app/solid_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fae87db4332db2d58466c577879e346b24a315f8b02442f98f89f063011d1cdf 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/app/solid_application_test.cpp support@174-174 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/solid_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/app/thermal_application_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/integration/app/thermal_application_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 671f8895de95c3883587d1766671fc911af679e0ee1104ba90d6f260e2bb7ed4 921d9686ce735dc7e44d0e9bd61580838f969ce08e3f858550a099c9fc98cbef 해당 없음 해당 없음 -Dev tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.ExecutesThermalInputThroughAtomicOutput ThermalApplicationTest.ExecutesThermalInputThroughAtomicOutput; assertion 27개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.ExecutesThermalInputThroughAtomicOutput 유지 원문 검사 body 및 assertion 동일. f6df36c87719748f81960dad63fa6e838d8bc71a7814c36d0d7cb28449bed204 f6df36c87719748f81960dad63fa6e838d8bc71a7814c36d0d7cb28449bed204 "ASSERT_EQ(run.exit_code, 0) | EXPECT_GT(H5Fis_hdf5(Path(""Heat.Model_results.h5"").string().c_str()), 0) | EXPECT_EQ(std::filesystem::file_size(Path(""Heat.Model_log.txt"")), 0U) | EXPECT_EQ(StringAttribute(metadata.Get(), ""source_step_name""), ""Raw Heat"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""feature_id""), ""shell-transient-heat-transfer"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""analysis_procedure""), ""uncoupled-transient-heat-transfer"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""source_input_identity"") .find(""path="" + Path(""Heat.Model.INP"").generic_u8string() + "";content_identity=""), 0U) | ASSERT_EQ(frames.size(), 4U) | EXPECT_EQ(frame.frame_index, index) | EXPECT_EQ(frame.increment_index, index) | EXPECT_EQ(frame.is_initial, index == 0 ? 1 : 0) | EXPECT_DOUBLE_EQ(frame.time, index == 3 ? .7 : static_cast(index) * .3) | EXPECT_DOUBLE_EQ(frame.time_increment, index == 0 ? 0 : index == 3 ? std::fma(-2., .3, .7) : .3) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/temperature""), (std::vector{4, 5})) | EXPECT_TRUE(std::isfinite(value)) | EXPECT_LT(value, 0.) | EXPECT_DOUBLE_EQ(value, -2.) | EXPECT_EQ( H5Lexists(file.Get(), (root + ""/nodal/reaction_heat_rate"").c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), (root + ""/element"").c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/reaction_heat_rate""), (std::vector{0})) | EXPECT_EQ(Shape(file.Get(), root + ""/element/heat_flux""), (std::vector{1, 4, 6, 3})) | EXPECT_EQ(Shape(file.Get(), ""/diagnostics""), (std::vector{1})) | ASSERT_GE(H5Tset_size(string_type.Get(), H5T_VARIABLE), 0) | ASSERT_GE(H5Tset_cset(string_type.Get(), H5T_CSET_UTF8), 0) | ASSERT_GE(H5Tinsert(row_type.Get(), ""code"", 0, string_type.Get()), 0) | ASSERT_GE(H5Dread(diagnostics.Get(), row_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &code), 0) | EXPECT_STREQ(code, ""ignored-input-keyword"")" "ASSERT_EQ(run.exit_code, 0) | EXPECT_GT(H5Fis_hdf5(Path(""Heat.Model_results.h5"").string().c_str()), 0) | EXPECT_EQ(std::filesystem::file_size(Path(""Heat.Model_log.txt"")), 0U) | EXPECT_EQ(StringAttribute(metadata.Get(), ""source_step_name""), ""Raw Heat"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""feature_id""), ""shell-transient-heat-transfer"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""analysis_procedure""), ""uncoupled-transient-heat-transfer"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""source_input_identity"") .find(""path="" + Path(""Heat.Model.INP"").generic_u8string() + "";content_identity=""), 0U) | ASSERT_EQ(frames.size(), 4U) | EXPECT_EQ(frame.frame_index, index) | EXPECT_EQ(frame.increment_index, index) | EXPECT_EQ(frame.is_initial, index == 0 ? 1 : 0) | EXPECT_DOUBLE_EQ(frame.time, index == 3 ? .7 : static_cast(index) * .3) | EXPECT_DOUBLE_EQ(frame.time_increment, index == 0 ? 0 : index == 3 ? std::fma(-2., .3, .7) : .3) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/temperature""), (std::vector{4, 5})) | EXPECT_TRUE(std::isfinite(value)) | EXPECT_LT(value, 0.) | EXPECT_DOUBLE_EQ(value, -2.) | EXPECT_EQ( H5Lexists(file.Get(), (root + ""/nodal/reaction_heat_rate"").c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), (root + ""/element"").c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/reaction_heat_rate""), (std::vector{0})) | EXPECT_EQ(Shape(file.Get(), root + ""/element/heat_flux""), (std::vector{1, 4, 6, 3})) | EXPECT_EQ(Shape(file.Get(), ""/diagnostics""), (std::vector{1})) | ASSERT_GE(H5Tset_size(string_type.Get(), H5T_VARIABLE), 0) | ASSERT_GE(H5Tset_cset(string_type.Get(), H5T_CSET_UTF8), 0) | ASSERT_GE(H5Tinsert(row_type.Get(), ""code"", 0, string_type.Get()), 0) | ASSERT_GE(H5Dread(diagnostics.Get(), row_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &code), 0) | EXPECT_STREQ(code, ""ignored-input-keyword"")" -Dev tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.EndpointCloseUsesActualDeltaAndLargeIncrementUsesPeriod ThermalApplicationTest.EndpointCloseUsesActualDeltaAndLargeIncrementUsesPeriod; assertion 8개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.EndpointCloseUsesActualDeltaAndLargeIncrementUsesPeriod 유지 원문 검사 body 및 assertion 동일. ad5bd959038bf1bc1167ca2796d5badbb5ec663f87fe89df335c5b8acb760992 ad5bd959038bf1bc1167ca2796d5badbb5ec663f87fe89df335c5b8acb760992 ASSERT_EQ(run.exit_code, 0) | ASSERT_EQ(frames.size(), 4U) | EXPECT_DOUBLE_EQ(frames.back().time, .9) | EXPECT_DOUBLE_EQ(frames.back().time_increment, .3) | EXPECT_NE(frames.back().time_increment, frames[3].time - frames[2].time) | ASSERT_EQ(frames.size(), 2U) | EXPECT_DOUBLE_EQ(frames.back().time, .7) | EXPECT_DOUBLE_EQ(frames.back().time_increment, .7) ASSERT_EQ(run.exit_code, 0) | ASSERT_EQ(frames.size(), 4U) | EXPECT_DOUBLE_EQ(frames.back().time, .9) | EXPECT_DOUBLE_EQ(frames.back().time_increment, .3) | EXPECT_NE(frames.back().time_increment, frames[3].time - frames[2].time) | ASSERT_EQ(frames.size(), 2U) | EXPECT_DOUBLE_EQ(frames.back().time, .7) | EXPECT_DOUBLE_EQ(frames.back().time_increment, .7) -Dev tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.RawInitialPrecedesPrescribedBoundaryProjection ThermalApplicationTest.RawInitialPrecedesPrescribedBoundaryProjection; assertion 5개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.RawInitialPrecedesPrescribedBoundaryProjection 유지 원문 검사 body 및 assertion 동일. 28ecc20ef5539e10837bbd26888c6c4700394e032a556a72b3732e7322abaad7 28ecc20ef5539e10837bbd26888c6c4700394e032a556a72b3732e7322abaad7 "ASSERT_EQ(run.exit_code, 0) | EXPECT_DOUBLE_EQ(value, -2) | EXPECT_DOUBLE_EQ(temperature[5 * node], 1) | EXPECT_DOUBLE_EQ(temperature[5 * node + 4], 1) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/reaction_heat_rate""), (std::vector{8}))" "ASSERT_EQ(run.exit_code, 0) | EXPECT_DOUBLE_EQ(value, -2) | EXPECT_DOUBLE_EQ(temperature[5 * node], 1) | EXPECT_DOUBLE_EQ(temperature[5 * node + 4], 1) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/reaction_heat_rate""), (std::vector{8}))" -Dev tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.InputAndSolverFailuresPreservePreviousFinal ThermalApplicationTest.InputAndSolverFailuresPreservePreviousFinal; assertion 4개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.InputAndSolverFailuresPreservePreviousFinal 유지 원문 검사 body 및 assertion 동일. cfe5e9a34c0cbd33635c6d35935173a280c1378f0735dfc9e5a5777696c1bc7b cfe5e9a34c0cbd33635c6d35935173a280c1378f0735dfc9e5a5777696c1bc7b "EXPECT_EQ(run.exit_code, test.second) | EXPECT_FALSE(run.error.empty()) | EXPECT_EQ(ReadBytes(Path(""model_results.h5"")), previous) | EXPECT_EQ(std::filesystem::file_size(Path(""model_log.txt"")), 0U)" "EXPECT_EQ(run.exit_code, test.second) | EXPECT_FALSE(run.error.empty()) | EXPECT_EQ(ReadBytes(Path(""model_results.h5"")), previous) | EXPECT_EQ(std::filesystem::file_size(Path(""model_log.txt"")), 0U)" -Dev tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.BusyLeasePrecedesParsingAndPreservesBothOutputs ThermalApplicationTest.BusyLeasePrecedesParsingAndPreservesBothOutputs; assertion 5개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.BusyLeasePrecedesParsingAndPreservesBothOutputs 유지 원문 검사 body 및 assertion 동일. be71949b43487d6eed86586a4994ed0d9fd08e1263cb47f5d13b7c995aaf01a0 be71949b43487d6eed86586a4994ed0d9fd08e1263cb47f5d13b7c995aaf01a0 "ASSERT_TRUE(lease.HasValue()) | EXPECT_EQ(run.exit_code, 6) | EXPECT_NE(run.error.find(""code=output-busy""), std::string::npos) | EXPECT_EQ(ReadBytes(paths.results_path), ""previous final"") | EXPECT_EQ(ReadBytes(paths.log_path), ""previous log"")" "ASSERT_TRUE(lease.HasValue()) | EXPECT_EQ(run.exit_code, 6) | EXPECT_NE(run.error.find(""code=output-busy""), std::string::npos) | EXPECT_EQ(ReadBytes(paths.results_path), ""previous final"") | EXPECT_EQ(ReadBytes(paths.log_path), ""previous log"")" -Dev tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.RealFinalizeFailurePreservesFinalAndRemovesCandidate ThermalApplicationTest.RealFinalizeFailurePreservesFinalAndRemovesCandidate; assertion 6개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.RealFinalizeFailurePreservesFinalAndRemovesCandidate 유지 원문 검사 body 및 assertion 동일. 5f48d5b0464432fadf5f0f9522ae62bb204c588633cc77c86517b58a81667be0 5f48d5b0464432fadf5f0f9522ae62bb204c588633cc77c86517b58a81667be0 "ASSERT_NE(locked, INVALID_HANDLE_VALUE) | EXPECT_TRUE(CloseHandle(locked)) | EXPECT_EQ(run.exit_code, 6) | EXPECT_EQ(ReadBytes(Path(""model_results.h5"")), ""previous final"") | EXPECT_EQ(std::filesystem::file_size(Path(""model_log.txt"")), 0U) | EXPECT_EQ(entry.path().filename().string().find("".tmp.""), std::string::npos)" "ASSERT_NE(locked, INVALID_HANDLE_VALUE) | EXPECT_TRUE(CloseHandle(locked)) | EXPECT_EQ(run.exit_code, 6) | EXPECT_EQ(ReadBytes(Path(""model_results.h5"")), ""previous final"") | EXPECT_EQ(std::filesystem::file_size(Path(""model_log.txt"")), 0U) | EXPECT_EQ(entry.path().filename().string().find("".tmp.""), std::string::npos)" -Dev tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.MissingAdaptersHaveSpecificFailureCategories ThermalApplicationTest.MissingAdaptersHaveSpecificFailureCategories; assertion 14개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.MissingAdaptersHaveSpecificFailureCategories 유지 원문 검사 body 및 assertion 동일. 96329adf31d0773e0ed5ee9335cb9c21be7908e2179d2c8abb4a74f7a5ba71c1 96329adf31d0773e0ed5ee9335cb9c21be7908e2179d2c8abb4a74f7a5ba71c1 "ASSERT_TRUE(prepared.HasValue()) | ASSERT_EQ(prepared.Value().domain.Steps().Size(), 0U) | ASSERT_TRUE(log.Open(Path(""model_log.txt"")).IsOk()) | ASSERT_FALSE(missing.HasValue()) | EXPECT_EQ(missing.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(missing.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].code, ""missing-thermal-executor"") | ASSERT_TRUE(outcome.HasValue()) | ASSERT_TRUE( std::holds_alternative(outcome.Value())) | ASSERT_TRUE(log.Close().IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0].code, ""missing-thermal-writer"") | EXPECT_EQ(ReadBytes(paths.results_path), ""previous final"")" "ASSERT_TRUE(prepared.HasValue()) | ASSERT_EQ(prepared.Value().domain.Steps().Size(), 0U) | ASSERT_TRUE(log.Open(Path(""model_log.txt"")).IsOk()) | ASSERT_FALSE(missing.HasValue()) | EXPECT_EQ(missing.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(missing.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].code, ""missing-thermal-executor"") | ASSERT_TRUE(outcome.HasValue()) | ASSERT_TRUE( std::holds_alternative(outcome.Value())) | ASSERT_TRUE(log.Close().IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0].code, ""missing-thermal-writer"") | EXPECT_EQ(ReadBytes(paths.results_path), ""previous final"")" -Dev tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.ExistingStructuralStaticNonlinearAndHhtRoutesRemainAvailable ThermalApplicationTest.ExistingStructuralStaticNonlinearAndHhtRoutesRemainAvailable; assertion 2개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.ExistingStructuralStaticNonlinearAndHhtRoutesRemainAvailable 유지 원문 검사 body 및 assertion 동일. b103892efb098072fe2035f37dbc8731fa5d2819279d54cc1cc3a7e0dfc3b29d b103892efb098072fe2035f37dbc8731fa5d2819279d54cc1cc3a7e0dfc3b29d "ASSERT_EQ(run.exit_code, 0) | EXPECT_GT(H5Fis_hdf5(Path(""model_results.h5"").string().c_str()), 0)" "ASSERT_EQ(run.exit_code, 0) | EXPECT_GT(H5Fis_hdf5(Path(""model_results.h5"").string().c_str()), 0)" -Dev tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.NativeExecutableAcceptsThermalInputAndRejectsInteriorBoundary ThermalApplicationTest.NativeExecutableAcceptsThermalInputAndRejectsInteriorBoundary; assertion 9개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.NativeExecutableAcceptsThermalInputAndRejectsInteriorBoundary 유지 원문 검사 body 및 assertion 동일. 24830ff7dc3c76bc4465be558297597f8626d2f17796512e86b1853983bb48da 24830ff7dc3c76bc4465be558297597f8626d2f17796512e86b1853983bb48da "ASSERT_GT(length, 0U) | ASSERT_LT(length, module.size()) | ASSERT_TRUE(std::filesystem::exists(executable)) | ASSERT_TRUE(CreateProcessW(executable.c_str(), command.data(), nullptr, nullptr, FALSE, CREATE_NO_WINDOW, nullptr, nullptr, &startup, &process)) | EXPECT_TRUE(GetExitCodeProcess(process.hProcess, &exit)) | ASSERT_EQ(wait, WAIT_OBJECT_0) | EXPECT_EQ(exit, valid ? 0U : 3U) | EXPECT_GT(H5Fis_hdf5(Path(""native_results.h5"").string().c_str()), 0) | EXPECT_EQ(ReadBytes(Path(""native_results.h5"")), previous)" "ASSERT_GT(length, 0U) | ASSERT_LT(length, module.size()) | ASSERT_TRUE(std::filesystem::exists(executable)) | ASSERT_TRUE(CreateProcessW(executable.c_str(), command.data(), nullptr, nullptr, FALSE, CREATE_NO_WINDOW, nullptr, nullptr, &startup, &process)) | EXPECT_TRUE(GetExitCodeProcess(process.hProcess, &exit)) | ASSERT_EQ(wait, WAIT_OBJECT_0) | EXPECT_EQ(exit, valid ? 0U : 3U) | EXPECT_GT(H5Fis_hdf5(Path(""native_results.h5"").string().c_str()), 0) | EXPECT_EQ(ReadBytes(Path(""native_results.h5"")), previous)" -Dev tests/integration/app/thermal_application_test.cpp support@1-208 helper/oracle/fixture/include/static assertion 구간: HdfHandle, Get, Shape, Doubles, StringAttribute, FrameRow, Frames, ReadBytes, Replace, AppRun, RunApplication, ThermalApplicationTest, Path, Write, Deck tests/integration/app/thermal_application_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 41bdb373a6e9bad882ced3ad466906c1fd0524cc64b6f6824100f7ead487b3cf 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/integration/app/thermal_application_test.cpp support@490-491 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/thermal_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/b33_reference_comparison_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/reference/b33_reference_comparison_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8de80a54713f644fb3f7e0d4a1f2d633cf05973b3fcb71ad23bb9e3b318b5296 8de80a54713f644fb3f7e0d4a1f2d633cf05973b3fcb71ad23bb9e3b318b5296 해당 없음 해당 없음 -Dev tests/reference/b33_reference_comparison_test.cpp B33ReferenceComparison.GeneratesAuthoritativeHdf5AndComparisonEvidence B33ReferenceComparison.GeneratesAuthoritativeHdf5AndComparisonEvidence; assertion 35개 tests/reference/b33_reference_comparison_test.cpp B33ReferenceComparison.GeneratesAuthoritativeHdf5AndComparisonEvidence 유지 원문 검사 body 및 assertion 동일. 082a94dba1c41737c5aad55d0f5f0c0e94a339a24de29e3dfba6d70ddf48f0ea 082a94dba1c41737c5aad55d0f5f0c0e94a339a24de29e3dfba6d70ddf48f0ea "ASSERT_TRUE(std::filesystem::create_directories(output_directory, error)) | ASSERT_FALSE(error) | ASSERT_EQ(reference_before.size(), 4U) | EXPECT_EQ(reference_before[0U].relative_path, std::filesystem::path{""cantilever beam displacements.csv""}) | EXPECT_EQ(reference_before[1U].relative_path, std::filesystem::path{""cantilever beam elemental forces.csv""}) | EXPECT_EQ(reference_before[2U].relative_path, std::filesystem::path{""cantilever beam reactions.csv""}) | EXPECT_EQ(reference_before[3U].relative_path, std::filesystem::path{""cantilever beam.inp""}) | ASSERT_TRUE(std::filesystem::copy_file(input, execution_input, error)) | ASSERT_FALSE(error) | ASSERT_EQ(application.Run({execution_input.string()}), 0) | ASSERT_TRUE(std::filesystem::is_regular_file(results)) | ASSERT_GT(H5Fis_hdf5(results.string().c_str()), 0) | EXPECT_GT(StressRowCount(results), 0U) | ASSERT_TRUE(comparison_result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.rows.size(), kExpectedRowCount) | ASSERT_EQ(report.metrics.size(), kExpectedMetricCount) | EXPECT_TRUE(std::all_of( report.rows.begin(), report.rows.end(), [](const fesa::test::RowDecision& row) { return row.passed && std::isfinite(row.absolute_error) && std::isfinite(row.tolerance) && row.tolerance >= 0.0 && std::isfinite(row.reference_scale) && std::isfinite(row.near_zero_band) && std::isfinite(row.relative_error) && row.fesa.model_id == ""cantilever-beam-b33"" && row.reference.model_id == ""cantilever-beam-b33"" && row.fesa.step_name == ""Step-1"" && row.reference.step_name == ""Step-1"" && row.fesa.frame_index == 0U && row.reference.frame_index == 0U && row.fesa.instance_name == ""PART-1_1-1"" && row.reference.instance_name == ""PART-1_1-1"" && !row.fesa.hdf5_dataset_path.empty(); })) | EXPECT_TRUE( std::all_of(report.metrics.begin(), report.metrics.end(), [](const fesa::test::ComponentMetrics& metric) { return std::isfinite(metric.reference_scale) && std::isfinite(metric.near_zero_band) && std::isfinite(metric.maximum_absolute_error) && std::isfinite(metric.relative_rms) && metric.rms_passed && metric.passed && metric.row_count > 0U && !metric.components.empty(); })) | EXPECT_FALSE(report.stress_comparison_applicable) | EXPECT_NE(report.stress_comparison_reason.find(""N/A""), std::string::npos) | EXPECT_NE(report.stress_comparison_reason.find(""HDF5""), std::string::npos) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | EXPECT_TRUE(std::isfinite(report.physics_evidence.free_residual_norm)) | EXPECT_LE(report.physics_evidence.free_residual_norm, 1.0e-3) | EXPECT_LE(Norm(Sum(report.physics_evidence.applied_force, report.physics_evidence.reaction_force)), 1.0e-3) | EXPECT_LE(Norm(Sum(report.physics_evidence.applied_moment_about_origin, report.physics_evidence.reaction_moment_about_origin)), 1.0e-2) | ASSERT_TRUE(fesa::test::ReferenceComparison::WriteDeterministicJson( report, comparison) .IsOk()) | ASSERT_TRUE(std::filesystem::is_regular_file(comparison)) | EXPECT_NE(json.find(""\""stress_comparison_applicable\"":false""), std::string::npos) | EXPECT_NE(json.find(""\""physics_evidence\""""), std::string::npos) | EXPECT_NE(json.find(""\""source_element_label\""""), std::string::npos) | EXPECT_NE(json.find(""\""family_identity\""""), std::string::npos) | EXPECT_NE(json.find(""\""row_count\""""), std::string::npos) | EXPECT_EQ(generated_names, (std::vector{""cantilever beam.inp"", ""cantilever beam_log.txt"", ""cantilever beam_results.h5"", ""comparison.json""}))" "ASSERT_TRUE(std::filesystem::create_directories(output_directory, error)) | ASSERT_FALSE(error) | ASSERT_EQ(reference_before.size(), 4U) | EXPECT_EQ(reference_before[0U].relative_path, std::filesystem::path{""cantilever beam displacements.csv""}) | EXPECT_EQ(reference_before[1U].relative_path, std::filesystem::path{""cantilever beam elemental forces.csv""}) | EXPECT_EQ(reference_before[2U].relative_path, std::filesystem::path{""cantilever beam reactions.csv""}) | EXPECT_EQ(reference_before[3U].relative_path, std::filesystem::path{""cantilever beam.inp""}) | ASSERT_TRUE(std::filesystem::copy_file(input, execution_input, error)) | ASSERT_FALSE(error) | ASSERT_EQ(application.Run({execution_input.string()}), 0) | ASSERT_TRUE(std::filesystem::is_regular_file(results)) | ASSERT_GT(H5Fis_hdf5(results.string().c_str()), 0) | EXPECT_GT(StressRowCount(results), 0U) | ASSERT_TRUE(comparison_result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.rows.size(), kExpectedRowCount) | ASSERT_EQ(report.metrics.size(), kExpectedMetricCount) | EXPECT_TRUE(std::all_of( report.rows.begin(), report.rows.end(), [](const fesa::test::RowDecision& row) { return row.passed && std::isfinite(row.absolute_error) && std::isfinite(row.tolerance) && row.tolerance >= 0.0 && std::isfinite(row.reference_scale) && std::isfinite(row.near_zero_band) && std::isfinite(row.relative_error) && row.fesa.model_id == ""cantilever-beam-b33"" && row.reference.model_id == ""cantilever-beam-b33"" && row.fesa.step_name == ""Step-1"" && row.reference.step_name == ""Step-1"" && row.fesa.frame_index == 0U && row.reference.frame_index == 0U && row.fesa.instance_name == ""PART-1_1-1"" && row.reference.instance_name == ""PART-1_1-1"" && !row.fesa.hdf5_dataset_path.empty(); })) | EXPECT_TRUE( std::all_of(report.metrics.begin(), report.metrics.end(), [](const fesa::test::ComponentMetrics& metric) { return std::isfinite(metric.reference_scale) && std::isfinite(metric.near_zero_band) && std::isfinite(metric.maximum_absolute_error) && std::isfinite(metric.relative_rms) && metric.rms_passed && metric.passed && metric.row_count > 0U && !metric.components.empty(); })) | EXPECT_FALSE(report.stress_comparison_applicable) | EXPECT_NE(report.stress_comparison_reason.find(""N/A""), std::string::npos) | EXPECT_NE(report.stress_comparison_reason.find(""HDF5""), std::string::npos) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | EXPECT_TRUE(std::isfinite(report.physics_evidence.free_residual_norm)) | EXPECT_LE(report.physics_evidence.free_residual_norm, 1.0e-3) | EXPECT_LE(Norm(Sum(report.physics_evidence.applied_force, report.physics_evidence.reaction_force)), 1.0e-3) | EXPECT_LE(Norm(Sum(report.physics_evidence.applied_moment_about_origin, report.physics_evidence.reaction_moment_about_origin)), 1.0e-2) | ASSERT_TRUE(fesa::test::ReferenceComparison::WriteDeterministicJson( report, comparison) .IsOk()) | ASSERT_TRUE(std::filesystem::is_regular_file(comparison)) | EXPECT_NE(json.find(""\""stress_comparison_applicable\"":false""), std::string::npos) | EXPECT_NE(json.find(""\""physics_evidence\""""), std::string::npos) | EXPECT_NE(json.find(""\""source_element_label\""""), std::string::npos) | EXPECT_NE(json.find(""\""family_identity\""""), std::string::npos) | EXPECT_NE(json.find(""\""row_count\""""), std::string::npos) | EXPECT_EQ(generated_names, (std::vector{""cantilever beam.inp"", ""cantilever beam_log.txt"", ""cantilever beam_results.h5"", ""comparison.json""}))" -Dev tests/reference/b33_reference_comparison_test.cpp support@1-147 helper/oracle/fixture/include/static assertion 구간: Hdf5Handle, if, ReferenceSnapshotEntry, ReadBytes, SnapshotTree, sort, ExpectTreeUnchanged, Norm, Sum, StressRowCount tests/reference/b33_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 08f0770f5aeb24b1560b8da3f35b583cbf85abfbf36dded9d21e96dfb54c38c3 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/eigen_reference_cases_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/reference/eigen_reference_cases_test.cpp file 이관 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 modal identity·수치 기준은 유지한다. f91504b627d58c1ea91174e4d32575067afd8ad6f6e8e9ca79b0bce519a4e661 4890fe18f1ff259890fbc9baf6f4f1c39fabd3bc0a42b8059581dfff7604aeb6 해당 없음 해당 없음 -Dev tests/reference/eigen_reference_cases_test.cpp EigenReference.RunsOriginalInputAndComparesAllModalFrameIdentities EigenReference.RunsOriginalInputAndComparesAllModalFrameIdentities; assertion 16개 tests/reference/eigen_reference_cases_test.cpp EigenReference.RunsOriginalInputAndComparesAllModalFrameIdentities 이관 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 modal identity·수치 기준은 유지한다. fa57f3fdb447c190ddefaab2218f9e44265ca1eaf577b3c5b28dd587f66ad32c e4f451acf146ec42a498f137080e48e956b4c57c5dbbbaff1a880d95123d254c "EXPECT_EQ(ReadBytes(input), input_before) | EXPECT_EQ(ReadBytes(text), text_before) | ASSERT_EQ(exit_code, 0) | ASSERT_TRUE(std::filesystem::is_regular_file(results)) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().passed) | EXPECT_EQ(comparison.Value().source_step_name, ""Step-2"") | EXPECT_EQ(comparison.Value().requested_mode_count, 10U) | ASSERT_EQ(comparison.Value().rows.size(), 10U) | ASSERT_EQ(comparison.Value().families.size(), 10U) | EXPECT_EQ(comparison.Value().rows[index].mode_id, index + 1U) | EXPECT_EQ(comparison.Value().rows[index].component, ""Value"") | EXPECT_EQ(comparison.Value().families[index].row_count, 1U) | EXPECT_TRUE(comparison.Value().families[index].passed) | EXPECT_EQ(ReadBytes(input), input_before) | EXPECT_EQ(ReadBytes(text), text_before)" "EXPECT_EQ(ReadBytes(input), input_before) | EXPECT_EQ(ReadBytes(text), text_before) | ASSERT_EQ(exit_code, 0) | ASSERT_TRUE(std::filesystem::is_regular_file(results)) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().passed) | EXPECT_EQ(comparison.Value().source_step_name, ""Step-2"") | EXPECT_EQ(comparison.Value().requested_mode_count, 10U) | ASSERT_EQ(comparison.Value().rows.size(), 10U) | ASSERT_EQ(comparison.Value().families.size(), 10U) | EXPECT_EQ(comparison.Value().rows[index].mode_id, index + 1U) | EXPECT_EQ(comparison.Value().rows[index].component, ""Value"") | EXPECT_EQ(comparison.Value().families[index].row_count, 1U) | EXPECT_TRUE(comparison.Value().families[index].passed) | EXPECT_EQ(ReadBytes(input), input_before) | EXPECT_EQ(ReadBytes(text), text_before)" -Dev tests/reference/eigen_reference_cases_test.cpp support@1-31 helper/oracle/fixture/include/static assertion 구간: ReadBytes, if tests/reference/eigen_reference_cases_test.cpp file-support 유지 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 modal identity·수치 기준은 유지한다. e6d5ed00a9bcbd734a958a0c92005773d61527a1f2fdad5e04571e08bb892da2 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/eigen_reference_cases_test.cpp support@69-70 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/eigen_reference_cases_test.cpp file-support 유지 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 modal identity·수치 기준은 유지한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/eigen_reference_comparison.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/eigen_reference_comparison.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b46d4b18fcbf3bbcba3547c41cdecc3f206eb6ed6d2df44b7de4f3a8c2c86000 b46d4b18fcbf3bbcba3547c41cdecc3f206eb6ed6d2df44b7de4f3a8c2c86000 해당 없음 해당 없음 -Dev tests/reference/eigen_reference_comparison.cpp support@1-436 helper/oracle/fixture/include/static assertion 구간: fesa, ComparisonFailure, Fail, FailureStatus, Hdf5Handle, if, RequireId, RequireHdf, ReadUtf8Attribute, ReadUint64Attribute, Hdf5Mode, ReadModes, ParseFiniteNumber, data, RequireNumberSyntax, ReadReferenceText, while, Result, Compare, for, catch tests/reference/eigen_reference_comparison.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f8341d7432300658ef47c07672af81668f135597ea1bad54b73a9c9000e3c51b 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/eigen_reference_comparison.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/eigen_reference_comparison.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 96423b9a6c85e87752a28c38eed575c834c724caad6692122523f49888391a15 96423b9a6c85e87752a28c38eed575c834c724caad6692122523f49888391a15 해당 없음 해당 없음 -Dev tests/reference/eigen_reference_comparison.h support@1-51 helper/oracle/fixture/include/static assertion 구간: fesa, EigenReferenceCase, EigenReferenceRowDecision, EigenReferenceComparisonReport, EigenReferenceComparison tests/reference/eigen_reference_comparison.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c66c08bae4956e9e12aa43fd98fcb70678b043ac7046cd085f1662494f61f0e0 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/eigen_reference_comparison_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/reference/eigen_reference_comparison_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f71ba9da827ff4740ce536149fef0f03dcd226f6c61f72a721973cae2b159e2a f71ba9da827ff4740ce536149fef0f03dcd226f6c61f72a721973cae2b159e2a 해당 없음 해당 없음 -Dev tests/reference/eigen_reference_comparison_test.cpp EigenReferenceComparison.DirectSchemaFixtureAcceptsRepeatedReorderedModes EigenReferenceComparison.DirectSchemaFixtureAcceptsRepeatedReorderedModes; assertion 14개 tests/reference/eigen_reference_comparison_test.cpp EigenReferenceComparison.DirectSchemaFixtureAcceptsRepeatedReorderedModes 유지 원문 검사 body 및 assertion 동일. c756a589e4eb9b1be73380851a5bf8e12dae19900777b023aa6929938a0f7db5 c756a589e4eb9b1be73380851a5bf8e12dae19900777b023aa6929938a0f7db5 "ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(ok.HasValue()) | EXPECT_EQ(ok.Value().policy_id, ""mitc4-eigen-first-implementation"") | EXPECT_DOUBLE_EQ(ok.Value().relative_rms_tolerance, 0.05) | EXPECT_EQ(ok.Value().families.size(), 2U) | ASSERT_GE(H5Dwrite(ds, t, H5S_ALL, H5S_ALL, H5P_DEFAULT, v), 0) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_EQ(comparison.Value().passed, sample.second) | EXPECT_EQ(comparison.Value().families[0].rms_passed, sample.second) | EXPECT_TRUE(comparison.Value().families[1].passed) | ASSERT_FALSE(comparison.HasValue()) | ASSERT_EQ(comparison.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(comparison.GetStatus().Diagnostics()[0U].code, invalid_text.expected_code) | EXPECT_FALSE( fesa::test::EigenReferenceComparison::Compare(reference_case).HasValue())" "ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(ok.HasValue()) | EXPECT_EQ(ok.Value().policy_id, ""mitc4-eigen-first-implementation"") | EXPECT_DOUBLE_EQ(ok.Value().relative_rms_tolerance, 0.05) | EXPECT_EQ(ok.Value().families.size(), 2U) | ASSERT_GE(H5Dwrite(ds, t, H5S_ALL, H5S_ALL, H5P_DEFAULT, v), 0) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_EQ(comparison.Value().passed, sample.second) | EXPECT_EQ(comparison.Value().families[0].rms_passed, sample.second) | EXPECT_TRUE(comparison.Value().families[1].passed) | ASSERT_FALSE(comparison.HasValue()) | ASSERT_EQ(comparison.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(comparison.GetStatus().Diagnostics()[0U].code, invalid_text.expected_code) | EXPECT_FALSE( fesa::test::EigenReferenceComparison::Compare(reference_case).HasValue())" -Dev tests/reference/eigen_reference_comparison_test.cpp support@1-54 helper/oracle/fixture/include/static assertion 구간: UniqueFixtureDirectory, Mode, Str, U tests/reference/eigen_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c8f66a74f9a84a0ee73ed94a47674bcef6637bcbda68daa9b9cac52cd0715989 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/eigen_reference_comparison_test.cpp support@193-193 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/eigen_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/mitc4_reference_cases_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/reference/mitc4_reference_cases_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 60c30a9f9b735df4571ef7bc262710fc3c1e84fb98b86b2d25611ff1406cb745 60c30a9f9b735df4571ef7bc262710fc3c1e84fb98b86b2d25611ff1406cb745 해당 없음 해당 없음 -Dev tests/reference/mitc4_reference_cases_test.cpp Mitc4S4Reference.PreservesS4AndWritesCommonMitc4Metadata Mitc4S4Reference.PreservesS4AndWritesCommonMitc4Metadata; assertion 0개 tests/reference/mitc4_reference_cases_test.cpp Mitc4S4Reference.PreservesS4AndWritesCommonMitc4Metadata 유지 원문 검사 body 및 assertion 동일. 0a439f95ff0f8ff6baf1784c2b8286af7c5e9abe4027f6ab711e7cfd274dd297 0a439f95ff0f8ff6baf1784c2b8286af7c5e9abe4027f6ab711e7cfd274dd297 해당 없음 해당 없음 -Dev tests/reference/mitc4_reference_cases_test.cpp Mitc4S4Reference.PassesBlockingUAndReportsEveryUrRow Mitc4S4Reference.PassesBlockingUAndReportsEveryUrRow; assertion 0개 tests/reference/mitc4_reference_cases_test.cpp Mitc4S4Reference.PassesBlockingUAndReportsEveryUrRow 유지 원문 검사 body 및 assertion 동일. 4305a332a97418a4548f580e4efd059145ba1f826292cc21d959bbeb55443add 4305a332a97418a4548f580e4efd059145ba1f826292cc21d959bbeb55443add 해당 없음 해당 없음 -Dev tests/reference/mitc4_reference_cases_test.cpp support@1-177 helper/oracle/fixture/include/static assertion 구간: ReadBytes, if, ArtifactSnapshot, Snapshot, ExpectUnchanged, CaseEvidence, RunCase, for, ExpectCommonMetadata, ExpectComparisonCoverage, count_if, EXPECT_TRUE, find_if tests/reference/mitc4_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 00c52267b127eef3d2cd68d7bf6171119e37f97b63bd848ff0448f70687590f3 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/mitc4_reference_cases_test.cpp support@186-187 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 60b4486538263f1db4cc916d19cd7fe382e843507683db5da9f99168f7336722 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/mitc4_reference_cases_test.cpp support@197-198 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/mitc4_reference_comparison.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/mitc4_reference_comparison.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 58ffb13b5dff2e34b3e57df1376627be96d8d0cd8691ca1f77568d5991f8a191 1e23f52e7a9ff7172bf67f5f9c3e460a05b86089b4df1f91566e502b3f7a3c69 해당 없음 해당 없음 -Dev tests/reference/mitc4_reference_comparison.cpp support@1-984 helper/oracle/fixture/include/static assertion 구간: fesa, ComparisonFailure, Fail, FailureStatus, Trim, find_if_not, SplitCsvLine, while, if, ParsePositiveLabel, ParseFiniteDouble, UppercaseAscii, transform, IdentityKey, WideRow, ReadReferenceCsv, Hdf5Handle, Hdf5ErrorSilencer, Hdf5VlenReclaimer, Reclaim, RequireId, RequireHdf, MakeUtf8StringType, OpenDataset, Dimensions, ReadStringAttribute, ReadUint64Attribute, RequireStringAttribute, RequireExactCompoundMembers, NodeReadRow, ReadNodes, ElementIdentityReadRow, RequireElementIdentity, for, ReadDisplacement, Hdf5Projection, ReadHdf5, RequireArtifacts, FiniteText, BranchName, switch, JsonEscape, WriteJsonStrings, Result, Compare, catch, WriteDeterministicJson tests/reference/mitc4_reference_comparison.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ba7f7e025e2dad0fa22b02dc44d600c2edb732f2bec5f89856fb2dab648b0958 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/mitc4_reference_comparison.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/mitc4_reference_comparison.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8bd6a36cb25ac102569f733fb560433f5352ddeb7788182e6bbd561da49e846c 51c8b78b44583986eeb175a839fd72a11ca5f3405bf016432da9563878c8f1f6 해당 없음 해당 없음 -Dev tests/reference/mitc4_reference_comparison.h support@1-93 helper/oracle/fixture/include/static assertion 구간: fesa, Mitc4ReferenceCase, Mitc4RowDecision, Mitc4ComponentMetrics, Mitc4VectorMetrics, Mitc4Warning, Mitc4ComparisonReport, Mitc4ReferenceComparison tests/reference/mitc4_reference_comparison.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 66926b7d72ccfcf4d1a0a42bfa456a43a8b71eac6b7dea8b91f381aff620cb5f 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/mitc4_reference_comparison_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/reference/mitc4_reference_comparison_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84620741c644b7ae7ae1cfc527b6effa1fe32d47175b1755be6f337f8d20aa45 b886b3cf9a6d3569e73f6792ce8ff0a84052c81eb21d78a31245fc74033bf370 해당 없음 해당 없음 -Dev tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.MapsTrimmedHeaderAndSixComponentsBySourceIdentity Mitc4ReferenceComparison.MapsTrimmedHeaderAndSixComponentsBySourceIdentity; assertion 11개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.MapsTrimmedHeaderAndSixComponentsBySourceIdentity 유지 원문 검사 body 및 assertion 동일. 44461d859079ddd35dd95bcca00277017ed16033e7164b9e62d27f9d98e54836 44461d859079ddd35dd95bcca00277017ed16033e7164b9e62d27f9d98e54836 "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.rows.size(), 12U) | EXPECT_EQ(report.rows[0U].source_node_label, 1) | EXPECT_EQ(report.rows[0U].component, ""U1"") | EXPECT_EQ(report.rows[5U].component, ""UR3"") | EXPECT_EQ(report.rows[6U].source_node_label, 2) | ASSERT_EQ(report.metrics.size(), 2U) | EXPECT_EQ(report.metrics[0U].row_count, 6U) | EXPECT_EQ(report.metrics[1U].row_count, 6U) | EXPECT_TRUE(std::all_of(report.rows.begin(), report.rows.end(), [](const fesa::test::Mitc4RowDecision& row) { return row.case_id == ""shell-contract"" && row.instance_name == kInstanceName && row.within_tolerance; }))" "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.rows.size(), 12U) | EXPECT_EQ(report.rows[0U].source_node_label, 1) | EXPECT_EQ(report.rows[0U].component, ""U1"") | EXPECT_EQ(report.rows[5U].component, ""UR3"") | EXPECT_EQ(report.rows[6U].source_node_label, 2) | ASSERT_EQ(report.metrics.size(), 2U) | EXPECT_EQ(report.metrics[0U].row_count, 6U) | EXPECT_EQ(report.metrics[1U].row_count, 6U) | EXPECT_TRUE(std::all_of(report.rows.begin(), report.rows.end(), [](const fesa::test::Mitc4RowDecision& row) { return row.case_id == ""shell-contract"" && row.instance_name == kInstanceName && row.within_tolerance; }))" -Dev tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RejectsInvalidInventoryBeforeNumericComparison Mitc4ReferenceComparison.RejectsInvalidInventoryBeforeNumericComparison; assertion 1개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RejectsInvalidInventoryBeforeNumericComparison 유지 원문 검사 body 및 assertion 동일. d4d1ef19df229bad1f14847b9c437910e324f55f638cb91dbec9ec9815681c09 d4d1ef19df229bad1f14847b9c437910e324f55f638cb91dbec9ec9815681c09 ASSERT_TRUE(std::filesystem::remove(fixture.Input())) ASSERT_TRUE(std::filesystem::remove(fixture.Input())) -Dev tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.SharesTranslationScaleAcrossUComponentsAndUsesNearZeroBranches Mitc4ReferenceComparison.SharesTranslationScaleAcrossUComponentsAndUsesNearZeroBranches; assertion 19개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.SharesTranslationScaleAcrossUComponentsAndUsesNearZeroBranches 유지 원문 검사 body 및 assertion 동일. 3dbbc317c15107ab849cb8e39ca1a7f85c3a111c899a6074f98efcda9b6b5311 3dbbc317c15107ab849cb8e39ca1a7f85c3a111c899a6074f98efcda9b6b5311 "ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(report.passed) | ASSERT_NE(u1_zero, nullptr) | ASSERT_NE(u1_scaled, nullptr) | ASSERT_NE(u2_near, nullptr) | ASSERT_NE(u2_over, nullptr) | EXPECT_DOUBLE_EQ(u1_zero->tolerance, 8.0e-2) | EXPECT_TRUE(u1_zero->within_tolerance) | EXPECT_FALSE(u1_zero->relative_error_applicable) | EXPECT_FALSE(u1_scaled->within_tolerance) | EXPECT_NEAR(u1_scaled->normalized_error, 0.05005, 1.0e-12) | EXPECT_DOUBLE_EQ(u2_near->tolerance, 8.0e-2) | EXPECT_TRUE(u2_near->within_tolerance) | EXPECT_FALSE(u2_near->relative_error_applicable) | EXPECT_FALSE(u2_over->within_tolerance) | EXPECT_DOUBLE_EQ(u2_over->tolerance, 8.0e-2) | ASSERT_NE(translation, nullptr) | EXPECT_DOUBLE_EQ(translation->reference_scale, 8.0) | EXPECT_EQ(translation->components, (std::vector{""U1"", ""U2"", ""U3""}))" "ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(report.passed) | ASSERT_NE(u1_zero, nullptr) | ASSERT_NE(u1_scaled, nullptr) | ASSERT_NE(u2_near, nullptr) | ASSERT_NE(u2_over, nullptr) | EXPECT_DOUBLE_EQ(u1_zero->tolerance, 8.0e-2) | EXPECT_TRUE(u1_zero->within_tolerance) | EXPECT_FALSE(u1_zero->relative_error_applicable) | EXPECT_FALSE(u1_scaled->within_tolerance) | EXPECT_NEAR(u1_scaled->normalized_error, 0.05005, 1.0e-12) | EXPECT_DOUBLE_EQ(u2_near->tolerance, 8.0e-2) | EXPECT_TRUE(u2_near->within_tolerance) | EXPECT_FALSE(u2_near->relative_error_applicable) | EXPECT_FALSE(u2_over->within_tolerance) | EXPECT_DOUBLE_EQ(u2_over->tolerance, 8.0e-2) | ASSERT_NE(translation, nullptr) | EXPECT_DOUBLE_EQ(translation->reference_scale, 8.0) | EXPECT_EQ(translation->components, (std::vector{""U1"", ""U2"", ""U3""}))" -Dev tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationExceedanceWarnsWithoutBlockingTranslationVerdict Mitc4ReferenceComparison.RotationExceedanceWarnsWithoutBlockingTranslationVerdict; assertion 11개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationExceedanceWarnsWithoutBlockingTranslationVerdict 유지 원문 검사 body 및 assertion 동일. 0a685f2a0ea27dcdc95dc89c981067220e0418afd2c3cc242569d38d86212613 0a685f2a0ea27dcdc95dc89c981067220e0418afd2c3cc242569d38d86212613 "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 2U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-exceedance"") | EXPECT_EQ(report.warnings[1U].code, ""rotation-reference-rms-exceedance"") | ASSERT_NE(row, nullptr) | EXPECT_FALSE(row->blocking) | EXPECT_FALSE(row->within_tolerance) | EXPECT_EQ(report.warnings[0U].row, static_cast(row - report.rows.data())) | EXPECT_NE(report.warnings[0U].message.find(""shell-contract""), std::string::npos) | EXPECT_NE(report.warnings[0U].message.find(""UR1""), std::string::npos)" "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 2U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-exceedance"") | EXPECT_EQ(report.warnings[1U].code, ""rotation-reference-rms-exceedance"") | ASSERT_NE(row, nullptr) | EXPECT_FALSE(row->blocking) | EXPECT_FALSE(row->within_tolerance) | EXPECT_EQ(report.warnings[0U].row, static_cast(row - report.rows.data())) | EXPECT_NE(report.warnings[0U].message.find(""shell-contract""), std::string::npos) | EXPECT_NE(report.warnings[0U].message.find(""UR1""), std::string::npos)" -Dev tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationRmsExceedanceWarnsWhenEveryRotationRowPasses Mitc4ReferenceComparison.RotationRmsExceedanceWarnsWhenEveryRotationRowPasses; assertion 5개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationRmsExceedanceWarnsWhenEveryRotationRowPasses 유지 원문 검사 body 및 assertion 동일. b300a3ed2c250fb7fe702e7abdc96b7f2d90a9231c2f09107719e9be524a4521 b300a3ed2c250fb7fe702e7abdc96b7f2d90a9231c2f09107719e9be524a4521 "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 1U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-rms-exceedance"") | EXPECT_TRUE(std::all_of(report.rows.begin(), report.rows.end(), [](const fesa::test::Mitc4RowDecision& row) { return row.within_tolerance; }))" "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 1U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-rms-exceedance"") | EXPECT_TRUE(std::all_of(report.rows.begin(), report.rows.end(), [](const fesa::test::Mitc4RowDecision& row) { return row.within_tolerance; }))" -Dev tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationRowAndRmsExceedancesProduceSeparateWarnings Mitc4ReferenceComparison.RotationRowAndRmsExceedancesProduceSeparateWarnings; assertion 7개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationRowAndRmsExceedancesProduceSeparateWarnings 유지 원문 검사 body 및 assertion 동일. deca37dbcad9f79f872439a23d198ead553f7e589eddb78d69f9c74acd722c39 deca37dbcad9f79f872439a23d198ead553f7e589eddb78d69f9c74acd722c39 "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 2U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-exceedance"") | EXPECT_EQ(report.warnings[1U].code, ""rotation-reference-rms-exceedance"") | EXPECT_LT(report.warnings[0U].row, report.rows.size()) | EXPECT_LT(report.warnings[1U].row, report.rows.size())" "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 2U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-exceedance"") | EXPECT_EQ(report.warnings[1U].code, ""rotation-reference-rms-exceedance"") | EXPECT_LT(report.warnings[0U].row, report.rows.size()) | EXPECT_LT(report.warnings[1U].row, report.rows.size())" -Dev tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.ReportsMetricsVectorsWorstRowAndJsonDeterministically Mitc4ReferenceComparison.ReportsMetricsVectorsWorstRowAndJsonDeterministically; assertion 18개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.ReportsMetricsVectorsWorstRowAndJsonDeterministically 유지 원문 검사 body 및 assertion 동일. cff2c517222a6a1e2b7e9aba2c8336edfcb6740cb671e64b4a0ab0cb9c1172c6 cff2c517222a6a1e2b7e9aba2c8336edfcb6740cb671e64b4a0ab0cb9c1172c6 "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.metrics.size(), 2U) | ASSERT_EQ(report.vector_metrics.size(), 2U) | EXPECT_NEAR(report.vector_metrics[0U].displacement_norm_error, std::sqrt(0.3125) * 1.0e-9, 1.0e-21) | EXPECT_DOUBLE_EQ(report.vector_metrics[0U].rotation_norm_error, 0.75e-9) | ASSERT_LT(report.worst_row, report.rows.size()) | EXPECT_EQ(report.rows[report.worst_row].component, ""UR1"") | EXPECT_TRUE(std::isfinite(metric.reference_scale)) | EXPECT_TRUE(std::isfinite(metric.near_zero_band)) | EXPECT_TRUE(std::isfinite(metric.maximum_absolute_error)) | EXPECT_TRUE(std::isfinite(metric.relative_rms)) | EXPECT_FALSE(metric.components.empty()) | EXPECT_LT(metric.worst_row, report.rows.size()) | ASSERT_TRUE(fesa::test::Mitc4ReferenceComparison::WriteDeterministicJson( report, json_a) .IsOk()) | ASSERT_TRUE(fesa::test::Mitc4ReferenceComparison::WriteDeterministicJson( report, json_b) .IsOk()) | EXPECT_EQ(first, ReadBytes(json_b)) | EXPECT_NE(first.find(key), std::string::npos)" "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.metrics.size(), 2U) | ASSERT_EQ(report.vector_metrics.size(), 2U) | EXPECT_NEAR(report.vector_metrics[0U].displacement_norm_error, std::sqrt(0.3125) * 1.0e-9, 1.0e-21) | EXPECT_DOUBLE_EQ(report.vector_metrics[0U].rotation_norm_error, 0.75e-9) | ASSERT_LT(report.worst_row, report.rows.size()) | EXPECT_EQ(report.rows[report.worst_row].component, ""UR1"") | EXPECT_TRUE(std::isfinite(metric.reference_scale)) | EXPECT_TRUE(std::isfinite(metric.near_zero_band)) | EXPECT_TRUE(std::isfinite(metric.maximum_absolute_error)) | EXPECT_TRUE(std::isfinite(metric.relative_rms)) | EXPECT_FALSE(metric.components.empty()) | EXPECT_LT(metric.worst_row, report.rows.size()) | ASSERT_TRUE(fesa::test::Mitc4ReferenceComparison::WriteDeterministicJson( report, json_a) .IsOk()) | ASSERT_TRUE(fesa::test::Mitc4ReferenceComparison::WriteDeterministicJson( report, json_b) .IsOk()) | EXPECT_EQ(first, ReadBytes(json_b)) | EXPECT_NE(first.find(key), std::string::npos)" -Dev tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RequiresOnlyDeclaredInputCsvAndHdf5 Mitc4ReferenceComparison.RequiresOnlyDeclaredInputCsvAndHdf5; assertion 3개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RequiresOnlyDeclaredInputCsvAndHdf5 유지 원문 검사 body 및 assertion 동일. 5e8e14898d5f4d7dc448a30743686c8627513240f85ab704fe3dc6e23c603a55 5e8e14898d5f4d7dc448a30743686c8627513240f85ab704fe3dc6e23c603a55 "EXPECT_EQ(names, (std::vector{""case.inp"", ""displacements.csv"", ""results.h5""})) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().passed)" "EXPECT_EQ(names, (std::vector{""case.inp"", ""displacements.csv"", ""results.h5""})) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().passed)" -Dev tests/reference/mitc4_reference_comparison_test.cpp support@1-476 helper/oracle/fixture/include/static assertion 구간: Hdf5Handle, if, RequireId, RequireHdf, MakeUtf8StringType, WriteStringAttribute, WriteUint64Attribute, CreateGroup, ComparisonValueRow, DefaultRows, Hdf5Options, NodeWriteRow, ElementWriteRow, WriteNodes, for, WriteElements, WriteDisplacement, WriteCsv, ContractFixture, ReferenceCase, ExpectFailureCode, FindRow, find_if, FindMetric, ReadBytes tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 37402c89c01cf3d2cc2e8ab77859308b01ab38311dacae197ad4bc1c5b5ab9f9 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/mitc4_reference_comparison_test.cpp support@509-510 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0395266b04005731c3a8af3c854de2e8675b475916ea8b790258cd372ba59d80 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/mitc4_reference_comparison_test.cpp support@591-592 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bbe05c4478ba04dae1068ff83f56d7e512486c768824cd8b6645449c28f0076c 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/mitc4_reference_comparison_test.cpp support@638-639 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ee84c2fb6946961d9421c461d0c0de38916103a6aa11929f0b95ecb0bae198a2 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/mitc4_reference_comparison_test.cpp support@706-707 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 54b3ad86c7b60c18d9bd032f8ba2e7e827c96c6da35e0194fb82dc04afcbae8e 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/mitc4_reference_comparison_test.cpp support@755-756 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b1f4e55b34b476926e1cf7fe2ada3941a66cdc5cd6e79bd7e94ad257167f6dcc 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/mitc4_reference_comparison_test.cpp support@772-773 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/nonlinear_static_reference_cases_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/reference/nonlinear_static_reference_cases_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d50d0cc07497cb23b71c50e59b5eba6896d601f76c57a416cb5d8fe2f950b269 d50d0cc07497cb23b71c50e59b5eba6896d601f76c57a416cb5d8fe2f950b269 해당 없음 해당 없음 -Dev tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.AuditsEveryDeclaredArtifactBeforeExecution NonlinearStaticReference.AuditsEveryDeclaredArtifactBeforeExecution; assertion 8개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.AuditsEveryDeclaredArtifactBeforeExecution 유지 원문 검사 body 및 assertion 동일. 188bdb8763fbe96d17021a85b71a95d57a69789bc2d7a07ca0d86dbceb1d6c70 188bdb8763fbe96d17021a85b71a95d57a69789bc2d7a07ca0d86dbceb1d6c70 "ASSERT_TRUE(nonlinear_artifacts.HasValue()) | ASSERT_EQ(nonlinear_artifacts.Value().size(), 4U) | EXPECT_EQ(nonlinear_artifacts.Value()[0U].sha256, ""4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2"") | EXPECT_EQ(nonlinear_artifacts.Value()[3U].sha256, ""5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F"") | ASSERT_TRUE(linear_artifacts.HasValue()) | ASSERT_EQ(linear_artifacts.Value().size(), 4U) | EXPECT_EQ(linear_artifacts.Value()[0U].sha256, ""4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF"") | EXPECT_EQ(linear_artifacts.Value()[3U].sha256, ""2B75A5B0DEB045A283C9BB7E9B1153B79F7537FF487214BF4A23316B59B660A7"")" "ASSERT_TRUE(nonlinear_artifacts.HasValue()) | ASSERT_EQ(nonlinear_artifacts.Value().size(), 4U) | EXPECT_EQ(nonlinear_artifacts.Value()[0U].sha256, ""4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2"") | EXPECT_EQ(nonlinear_artifacts.Value()[3U].sha256, ""5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F"") | ASSERT_TRUE(linear_artifacts.HasValue()) | ASSERT_EQ(linear_artifacts.Value().size(), 4U) | EXPECT_EQ(linear_artifacts.Value()[0U].sha256, ""4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF"") | EXPECT_EQ(linear_artifacts.Value()[3U].sha256, ""2B75A5B0DEB045A283C9BB7E9B1153B79F7537FF487214BF4A23316B59B660A7"")" -Dev tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.CopiesRunsComparesAndPreservesTheReadOnlyReferenceInventory NonlinearStaticReference.CopiesRunsComparesAndPreservesTheReadOnlyReferenceInventory; assertion 16개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.CopiesRunsComparesAndPreservesTheReadOnlyReferenceInventory 유지 원문 검사 body 및 assertion 동일. 2eede76606712cf98bc621846084840a3172005b4d3d556415eeb01cef3e286a 2eede76606712cf98bc621846084840a3172005b4d3d556415eeb01cef3e286a "ASSERT_TRUE(before.HasValue()) | ASSERT_TRUE(copied.HasValue()) | EXPECT_NE(copied.Value().parent_path(), reference_case.original_input_path.parent_path()) | EXPECT_EQ(ReadBytes(copied.Value()), ReadBytes(reference_case.original_input_path)) | ASSERT_TRUE(generated.HasValue()) | EXPECT_EQ(generated.Value().copied_input_path, copied.Value()) | EXPECT_TRUE(std::filesystem::is_regular_file( generated.Value().generated_results_hdf5)) | EXPECT_TRUE( std::filesystem::is_regular_file(generated.Value().generated_log_path)) | EXPECT_EQ(generated.Value().generated_results_hdf5.filename(), case_id == ""shellnl-s4-final"" ? ""shellNL_results.h5"" : ""shell_results.h5"") | EXPECT_EQ( generated.Value().generated_log_path.filename(), case_id == ""shellnl-s4-final"" ? ""shellNL_log.txt"" : ""shell_log.txt"") | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().blocking_passed) | EXPECT_EQ(comparison.Value().copied_input_path, copied.Value()) | EXPECT_EQ(comparison.Value().generated_log_path, generated.Value().generated_log_path) | EXPECT_EQ(FindFamily(comparison.Value(), ""RM3""), nullptr) | ASSERT_TRUE(after.HasValue())" "ASSERT_TRUE(before.HasValue()) | ASSERT_TRUE(copied.HasValue()) | EXPECT_NE(copied.Value().parent_path(), reference_case.original_input_path.parent_path()) | EXPECT_EQ(ReadBytes(copied.Value()), ReadBytes(reference_case.original_input_path)) | ASSERT_TRUE(generated.HasValue()) | EXPECT_EQ(generated.Value().copied_input_path, copied.Value()) | EXPECT_TRUE(std::filesystem::is_regular_file( generated.Value().generated_results_hdf5)) | EXPECT_TRUE( std::filesystem::is_regular_file(generated.Value().generated_log_path)) | EXPECT_EQ(generated.Value().generated_results_hdf5.filename(), case_id == ""shellnl-s4-final"" ? ""shellNL_results.h5"" : ""shell_results.h5"") | EXPECT_EQ( generated.Value().generated_log_path.filename(), case_id == ""shellnl-s4-final"" ? ""shellNL_log.txt"" : ""shell_log.txt"") | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().blocking_passed) | EXPECT_EQ(comparison.Value().copied_input_path, copied.Value()) | EXPECT_EQ(comparison.Value().generated_log_path, generated.Value().generated_log_path) | EXPECT_EQ(FindFamily(comparison.Value(), ""RM3""), nullptr) | ASSERT_TRUE(after.HasValue())" -Dev tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.RejectsInvalidHdf5BeforeToleranceAndKeepsWarningOnlyClassification NonlinearStaticReference.RejectsInvalidHdf5BeforeToleranceAndKeepsWarningOnlyClassification; assertion 4개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.RejectsInvalidHdf5BeforeToleranceAndKeepsWarningOnlyClassification 유지 원문 검사 body 및 assertion 동일. c212189f32ba963e3f1464a12d8527079d439ef8c08cf77fa6186ab4c701cf1d c212189f32ba963e3f1464a12d8527079d439ef8c08cf77fa6186ab4c701cf1d ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | EXPECT_FALSE( fesa::test::CompareHdf5ToReferenceCsv(reference_case, invalid_hdf5) .HasValue()) | EXPECT_EQ( fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kWarningOnlyDifferences) ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | EXPECT_FALSE( fesa::test::CompareHdf5ToReferenceCsv(reference_case, invalid_hdf5) .HasValue()) | EXPECT_EQ( fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kWarningOnlyDifferences) -Dev tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.AuditsRetainedStaticArtifacts NonlinearStaticReference.AuditsRetainedStaticArtifacts; assertion 7개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.AuditsRetainedStaticArtifacts 유지 원문 검사 body 및 assertion 동일. d8455237b6913bfc17eb366ce869732b1034a695dbc6da8104f52942fa5fa6fb d8455237b6913bfc17eb366ce869732b1034a695dbc6da8104f52942fa5fa6fb ASSERT_TRUE(before.HasValue()) | ASSERT_EQ(before.Value().size(), 4U) | ASSERT_TRUE(copied.HasValue()) | EXPECT_NE(copied.Value().parent_path(), reference_case.original_input_path.parent_path()) | ASSERT_TRUE(generated.HasValue()) | EXPECT_TRUE(std::filesystem::is_regular_file( generated.Value().generated_results_hdf5)) | ASSERT_TRUE(after.HasValue()) ASSERT_TRUE(before.HasValue()) | ASSERT_EQ(before.Value().size(), 4U) | ASSERT_TRUE(copied.HasValue()) | EXPECT_NE(copied.Value().parent_path(), reference_case.original_input_path.parent_path()) | ASSERT_TRUE(generated.HasValue()) | EXPECT_TRUE(std::filesystem::is_regular_file( generated.Value().generated_results_hdf5)) | ASSERT_TRUE(after.HasValue()) -Dev tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.ReviewOnlyLocalReactionsCannotChangeBlockingVerdict NonlinearStaticReference.ReviewOnlyLocalReactionsCannotChangeBlockingVerdict; assertion 4개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.ReviewOnlyLocalReactionsCannotChangeBlockingVerdict 유지 원문 검사 body 및 assertion 동일. 65b04d41c62639181a36905c13090411b957dc30b224c524136459e7b051deb4 65b04d41c62639181a36905c13090411b957dc30b224c524136459e7b051deb4 ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().external_blocking_passed) ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().external_blocking_passed) -Dev tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.BlocksOnGlobalBalanceAndAcceptedFreeResidual NonlinearStaticReference.BlocksOnGlobalBalanceAndAcceptedFreeResidual; assertion 7개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.BlocksOnGlobalBalanceAndAcceptedFreeResidual 유지 원문 검사 body 및 assertion 동일. 007fcebce090b5bf09d568e58cd17470b556ad70894f09e2dc2703f4cec41e51 007fcebce090b5bf09d568e58cd17470b556ad70894f09e2dc2703f4cec41e51 ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | ASSERT_TRUE(comparison.HasValue()) | ASSERT_NE(found, comparison.Value().internal_equilibrium.end()) | EXPECT_TRUE(found->passed) | EXPECT_TRUE(comparison.Value().internal_blocking_passed) | EXPECT_NE(comparison.Value().constrained_reaction_resultant.force, zero_resultant) ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | ASSERT_TRUE(comparison.HasValue()) | ASSERT_NE(found, comparison.Value().internal_equilibrium.end()) | EXPECT_TRUE(found->passed) | EXPECT_TRUE(comparison.Value().internal_blocking_passed) | EXPECT_NE(comparison.Value().constrained_reaction_resultant.force, zero_resultant) -Dev tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.RejectsMissingExtraDuplicateAndNonfiniteRowsBeforeToleranceAndRecordsReviewOnlyFindings NonlinearStaticReference.RejectsMissingExtraDuplicateAndNonfiniteRowsBeforeToleranceAndRecordsReviewOnlyFindings; assertion 3개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.RejectsMissingExtraDuplicateAndNonfiniteRowsBeforeToleranceAndRecordsReviewOnlyFindings 유지 원문 검사 body 및 assertion 동일. f98dddaed34ee9b825986ce96db9d50e870ce4a58ceaa9e262995c448f58d601 f98dddaed34ee9b825986ce96db9d50e870ce4a58ceaa9e262995c448f58d601 "EXPECT_EQ(fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kFailed) | EXPECT_EQ(report.precheck_findings[1U].diagnostic_code, ""duplicate-row"") | EXPECT_EQ(report.precheck_findings[2U].diagnostic_code, ""nonfinite-row"")" "EXPECT_EQ(fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kFailed) | EXPECT_EQ(report.precheck_findings[1U].diagnostic_code, ""duplicate-row"") | EXPECT_EQ(report.precheck_findings[2U].diagnostic_code, ""nonfinite-row"")" -Dev tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.GlobalForceAndMomentBalanceUseApprovedInclusiveOneEighthGate NonlinearStaticReference.GlobalForceAndMomentBalanceUseApprovedInclusiveOneEighthGate; assertion 9개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.GlobalForceAndMomentBalanceUseApprovedInclusiveOneEighthGate 유지 원문 검사 body 및 assertion 동일. 37b6f0097c7fdc4525f9c98325a913cc1c66be9a852f7ec7ea8d6dbe8e973336 37b6f0097c7fdc4525f9c98325a913cc1c66be9a852f7ec7ea8d6dbe8e973336 EXPECT_TRUE(below.passed) | ASSERT_TRUE(below.normalized_metric.has_value()) | EXPECT_EQ(*below.normalized_metric, 5.0e-9) | EXPECT_TRUE(boundary.passed) | ASSERT_TRUE(boundary.normalized_metric.has_value()) | EXPECT_EQ(*boundary.normalized_metric, 1.0e-8) | EXPECT_FALSE(above.passed) | ASSERT_TRUE(above.normalized_metric.has_value()) | EXPECT_GT(*above.normalized_metric, 1.0e-8) EXPECT_TRUE(below.passed) | ASSERT_TRUE(below.normalized_metric.has_value()) | EXPECT_EQ(*below.normalized_metric, 5.0e-9) | EXPECT_TRUE(boundary.passed) | ASSERT_TRUE(boundary.normalized_metric.has_value()) | EXPECT_EQ(*boundary.normalized_metric, 1.0e-8) | EXPECT_FALSE(above.passed) | ASSERT_TRUE(above.normalized_metric.has_value()) | EXPECT_GT(*above.normalized_metric, 1.0e-8) -Dev tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.GlobalForceAndMomentExactZeroScaleRequiresExactZeroBalance NonlinearStaticReference.GlobalForceAndMomentExactZeroScaleRequiresExactZeroBalance; assertion 6개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.GlobalForceAndMomentExactZeroScaleRequiresExactZeroBalance 유지 원문 검사 body 및 assertion 동일. 04cc9d2dc3f468c5abd9317787db0c7dea8bb935021cf0bc51375c2e8a90d1bc 04cc9d2dc3f468c5abd9317787db0c7dea8bb935021cf0bc51375c2e8a90d1bc EXPECT_TRUE(exact_zero.passed) | EXPECT_EQ(exact_zero.scale, 0.0) | EXPECT_FALSE(exact_zero.normalized_metric.has_value()) | EXPECT_FALSE(nonzero.passed) | EXPECT_EQ(nonzero.scale, 0.0) | EXPECT_FALSE(nonzero.normalized_metric.has_value()) EXPECT_TRUE(exact_zero.passed) | EXPECT_EQ(exact_zero.scale, 0.0) | EXPECT_FALSE(exact_zero.normalized_metric.has_value()) | EXPECT_FALSE(nonzero.passed) | EXPECT_EQ(nonzero.scale, 0.0) | EXPECT_FALSE(nonzero.normalized_metric.has_value()) -Dev tests/reference/nonlinear_static_reference_cases_test.cpp support@1-113 helper/oracle/fixture/include/static assertion 구간: ReadBytes, if, MakeCase, ExpectSnapshotsEqual, FindFamily, find_if, ExpectFamily, ExpectBlockingFamiliesPassed, for, ExpectInternalFamiliesPassed tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 287a99d8f479a4d4ed54bfe04a80c303dd3ef8d3b6dd67665ce65ec0404d6d3b 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/nonlinear_static_reference_cases_test.cpp support@134-135 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 90e14ecb07fccdcf231e83a52c8f744d9319ba16ae7f04c27256c406a6429dac 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/nonlinear_static_reference_cases_test.cpp support@202-203 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 87ef91571b7fcd7d7161bb8b385c8e0bfdc90da3dc29f8a77c0e4592e5be6f83 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/nonlinear_static_reference_cases_test.cpp support@246-247 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 75ed650921b2a719d01db3b9a8699b87ebb403589335c0dab3766f91a93dd189 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/nonlinear_static_reference_cases_test.cpp support@273-274 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3989248f6a5e57cdd68d8ef2bf85830b385196f16f2e293b504208192705563c 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/nonlinear_static_reference_cases_test.cpp support@295-296 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f580803fc945d7c5cc37b9dcda1e262d1c4026b9a5b6544073525786b07f48be 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/nonlinear_static_reference_cases_test.cpp support@338-339 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a7955cbfd2f91685d3d922391e61a1c415c6daed4cf7b2eddc4407e3fe715bc0 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/nonlinear_static_reference_cases_test.cpp support@366-367 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3e9b6724351d2c4044c018875a3878cef2b85ee06c40f3ad50c76fe5acc6c8fb 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/nonlinear_static_reference_cases_test.cpp support@393-394 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d365ebad227c3cdf28bfb737c8976d06bc3484e90b5556e13a91605a5367aabe 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/nonlinear_static_reference_comparison.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/nonlinear_static_reference_comparison.cpp file 이관 SpatialMoment helper는 production inverse API 제거에 따라 독립 closed-form oracle로 이관한다. 비교 family·global balance·RF/RM review-only·finite 사전 gate는 유지한다. e71f156cb5bede1369b6b2e0999d21c5e89e8af5516f74ced906811a3eca55f5 64d9fa7d7067830bedd7316e66d68c32839c7e701fa8f6a49421cbbcce3938a2 해당 없음 해당 없음 -Dev tests/reference/nonlinear_static_reference_comparison.cpp support@1-1722 helper/oracle/fixture/include/static assertion 구간: fesa, CaseContract, ContractFor, if, ComparisonFailure, Fail, FailureStatus, Normalized, IsDescendantOf, GenericPath, Trim, find_if_not, UppercaseAscii, transform, ReadBytes, RotateRight, Sha256, for, while, Fnv1a64, DeclaredArtifact, DeclaredArtifacts, Snapshot, SplitCsv, ParsePositiveLabel, ParseFiniteDouble, CsvWideRow, ReadCsvWideRows, Hdf5Handle, Hdf5ErrorSilencer, Hdf5VlenReclaimer, Reclaim, RequireId, RequireHdf, OpenDataset, Dimensions, MakeUtf8StringType, ReadStringAttribute, ReadUint64Attribute, RequireStringAttribute, NodeReadRow, Hdf5Node, ReadNodes, AcceptedFrameReadRow, ReadFactorOneFrame, ReadNodalDataset, ReadConstraintMask, Hdf5Projection, CopiedInputPathFor, ReadGlobalBalance, ReadNonlinearHdf5, RequireExactNodeLabels, RequirePressureInstance, Key, IsSelected, ProjectCsv, ProjectHdf5, EvaluateFamily, AppendFamily, ExpectedConstrainedLabels, RequiredConstrainedLabels, VectorAt, SpatialMoment, MaskedResidual, InfinityNorm, FreeRowCount, AppendInternal, AppendFreeResidual, AppendGlobalBalance, AppendInternalEquilibrium, DerivedLogPath, DerivedResultsPath, MakeReport, CompareLinearCase, CompareNonlinearCase, ComparePressureCase, NonlinearInternalEquilibriumReport, EvaluateGlobalBalance, ArtifactCheck, catch, CopyInputToExecutionDirectory, RunFesaApplicationOnCopiedInput, CompareHdf5ToReferenceCsv, ClassifyReferenceComparison, any_of, BuildReferenceComparisonReport tests/reference/nonlinear_static_reference_comparison.cpp file-support 이관 SpatialMoment helper는 production inverse API 제거에 따라 독립 closed-form oracle로 이관한다. 비교 family·global balance·RF/RM review-only·finite 사전 gate는 유지한다. 8d82015808ca837c0f643c5999afb602674fcf02f51c7f60ac8c0347bddee582 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/nonlinear_static_reference_comparison.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/nonlinear_static_reference_comparison.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6f3832cec9b2ab5770948480045b2e454a5d0bc8fd2b6c38f0e134fbaf2983be 6f3832cec9b2ab5770948480045b2e454a5d0bc8fd2b6c38f0e134fbaf2983be 해당 없음 해당 없음 -Dev tests/reference/nonlinear_static_reference_comparison.h support@1-143 helper/oracle/fixture/include/static assertion 구간: fesa, NonlinearReferenceArtifactDisposition, NonlinearReferenceCase, ArtifactSnapshot, NonlinearReferenceDisposition, NonlinearReferenceRowKey, NonlinearReferenceFamilyReport, NonlinearReferencePrecheckFinding, NonlinearInternalEquilibriumReport, ConstrainedReactionResultantReport, GeneratedRunArtifacts, NonlinearReferenceComparisonReport, NonlinearReferenceClassification tests/reference/nonlinear_static_reference_comparison.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e61520b0bf03ec971e428abd42887d86bd74ee157eb174f0da25be3ca00d20ae 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/reference_comparison.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/reference_comparison.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9680d6dd2deef156b5c8d000167cd6d3f6e29fe1b1fecc5a0f9cd6ebc0fa1602 9680d6dd2deef156b5c8d000167cd6d3f6e29fe1b1fecc5a0f9cd6ebc0fa1602 해당 없음 해당 없음 -Dev tests/reference/reference_comparison.cpp support@1-1519 helper/oracle/fixture/include/static assertion 구간: fesa, ComparisonFailure, Fail, ComparisonFailureStatus, Trim, find_if_not, CollapseWhitespace, for, if, AsciiLower, transform, SplitCsvLine, while, ParsePositiveLabel, ParseFiniteDouble, WideReferenceRow, ReferenceTable, SectionReferenceRow, SectionReferenceTable, ReadReferenceCsv, find_if, ReadSectionReferenceCsv, RequireExactArtifactInventory, increment, ReadApprovedDomain, Hdf5Handle, Hdf5ErrorSilencer, Hdf5VlenReclaimer, RequireId, RequireHdf, OpenDataset, DatasetDimensions, ReadStringAttribute, ReadUint64Attribute, RequireStringAttribute, RequireResultAttributes, ReadDoubleDataset, RequireCompoundMembers, MakeVariableStringType, NodeMemoryRow, ElementMemoryRow, HdfNode, HdfElement, ReadNodeRows, ReadElementRows, RequireFiniteStress, StressValue, ExpectedLocalAxes, HdfProjection, ReadHdfProjection, OrderedRows, OrderedSectionRows, CanonicalRow, AppendNodalRows, AppendSectionRows, BranchName, switch, EvaluateFamily, MakePhysicsEvidence, QuantityName, WriteJsonString, WriteCanonicalRow, WriteArray, WriteStrings, FiniteReport, all_of, Result, Compare, catch, WriteDeterministicJson tests/reference/reference_comparison.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4f6eadb9f7705f35da852e0f4cf63f1af16a1f951faf90b6895841a4a7b12380 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/reference_comparison.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/reference_comparison.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1ca9383ffed095fdb372fe7d16ec3d9c6fbace46c7a103e94c27220fc99b56b0 1ca9383ffed095fdb372fe7d16ec3d9c6fbace46c7a103e94c27220fc99b56b0 해당 없음 해당 없음 -Dev tests/reference/reference_comparison.h support@1-102 helper/oracle/fixture/include/static assertion 구간: fesa, ComparisonQuantity, CanonicalComparisonRow, RowDecision, ComponentMetrics, PhysicsEvidence, ComparisonReport, ReferenceComparison tests/reference/reference_comparison.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1f39624e67c37926b656243337baed8a87b43b96547388e0d41dd6a25db0e37e 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/reference_comparison_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/reference/reference_comparison_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2dca374a67a3c55239c2402d4cd9541444283ec49ffb685037f90dad09c0e82f e39732a6cb8747725a43f7fc6341fd4688d04cd3f9f936ec33cbc79b232886af 해당 없음 해당 없음 -Dev tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.PrecheckRejectsMissingSchemaDuplicateAndNonfiniteRows ReferenceComparisonContract.PrecheckRejectsMissingSchemaDuplicateAndNonfiniteRows; assertion 7개 tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.PrecheckRejectsMissingSchemaDuplicateAndNonfiniteRows 유지 원문 검사 body 및 assertion 동일. 810238882b3a881527ffba11344288d641d606f3538f88d2f5e55adba4409905 810238882b3a881527ffba11344288d641d606f3538f88d2f5e55adba4409905 ASSERT_TRUE(std::filesystem::remove(fixture.Legacy() / kDisplacementName)) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_GT(lines.size(), 2U) ASSERT_TRUE(std::filesystem::remove(fixture.Legacy() / kDisplacementName)) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_GT(lines.size(), 2U) -Dev tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.AppliesSharedFamilyScaleAndNearZeroBranchesWithoutAnAbsoluteGate ReferenceComparisonContract.AppliesSharedFamilyScaleAndNearZeroBranchesWithoutAnAbsoluteGate; assertion 28개 tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.AppliesSharedFamilyScaleAndNearZeroBranchesWithoutAnAbsoluteGate 유지 원문 검사 body 및 assertion 동일. f6ca0c5aae73df95b70d24611a1948a63e24dc842bc9da29f03f7182f05ad9fd f6ca0c5aae73df95b70d24611a1948a63e24dc842bc9da29f03f7182f05ad9fd "ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(report.passed) | EXPECT_EQ(report.rows.size(), kExpectedRowCount) | EXPECT_EQ(report.metrics.size(), kExpectedMetricCount) | ASSERT_NE(zero, nullptr) | ASSERT_NE(near_zero, nullptr) | ASSERT_NE(deliberate_failure, nullptr) | EXPECT_DOUBLE_EQ(zero->reference.value, 0.0) | EXPECT_DOUBLE_EQ(zero->fesa.value, 0.0) | EXPECT_DOUBLE_EQ(zero->tolerance, near_zero_band) | EXPECT_TRUE(zero->passed) | EXPECT_TRUE(near_zero->passed) | EXPECT_FALSE(deliberate_failure->passed) | EXPECT_EQ(near_zero->tolerance_branch, ""near-zero"") | EXPECT_FALSE(near_zero->relative_error_applicable) | ASSERT_NE(my_metric, nullptr) | EXPECT_DOUBLE_EQ(my_metric->reference_scale, 1.0e7) | EXPECT_EQ(my_metric->components, (std::vector{""T"", ""My"", ""Mz""})) | ASSERT_NE(scaled, nullptr) | ASSERT_NE(residue, nullptr) | EXPECT_DOUBLE_EQ(scaled->tolerance, 5.0e5) | EXPECT_DOUBLE_EQ(scaled->absolute_error, 4.999e5) | EXPECT_TRUE(scaled->passed) | EXPECT_DOUBLE_EQ(residue->reference.value, -1.5625e-2) | EXPECT_DOUBLE_EQ(residue->fesa.value, 0.0) | EXPECT_DOUBLE_EQ(residue->absolute_error, 1.5625e-2) | EXPECT_DOUBLE_EQ(residue->tolerance, 1.0e5) | EXPECT_TRUE(residue->passed)" "ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(report.passed) | EXPECT_EQ(report.rows.size(), kExpectedRowCount) | EXPECT_EQ(report.metrics.size(), kExpectedMetricCount) | ASSERT_NE(zero, nullptr) | ASSERT_NE(near_zero, nullptr) | ASSERT_NE(deliberate_failure, nullptr) | EXPECT_DOUBLE_EQ(zero->reference.value, 0.0) | EXPECT_DOUBLE_EQ(zero->fesa.value, 0.0) | EXPECT_DOUBLE_EQ(zero->tolerance, near_zero_band) | EXPECT_TRUE(zero->passed) | EXPECT_TRUE(near_zero->passed) | EXPECT_FALSE(deliberate_failure->passed) | EXPECT_EQ(near_zero->tolerance_branch, ""near-zero"") | EXPECT_FALSE(near_zero->relative_error_applicable) | ASSERT_NE(my_metric, nullptr) | EXPECT_DOUBLE_EQ(my_metric->reference_scale, 1.0e7) | EXPECT_EQ(my_metric->components, (std::vector{""T"", ""My"", ""Mz""})) | ASSERT_NE(scaled, nullptr) | ASSERT_NE(residue, nullptr) | EXPECT_DOUBLE_EQ(scaled->tolerance, 5.0e5) | EXPECT_DOUBLE_EQ(scaled->absolute_error, 4.999e5) | EXPECT_TRUE(scaled->passed) | EXPECT_DOUBLE_EQ(residue->reference.value, -1.5625e-2) | EXPECT_DOUBLE_EQ(residue->fesa.value, 0.0) | EXPECT_DOUBLE_EQ(residue->absolute_error, 1.5625e-2) | EXPECT_DOUBLE_EQ(residue->tolerance, 1.0e5) | EXPECT_TRUE(residue->passed)" -Dev tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.ReportsEveryRowAndAggregateMetricDeterministically ReferenceComparisonContract.ReportsEveryRowAndAggregateMetricDeterministically; assertion 24개 tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.ReportsEveryRowAndAggregateMetricDeterministically 유지 원문 검사 body 및 assertion 동일. 3aeb231f836acf51af5432b7c06df1e786278ff6fceeb3a53d50a9377653df3c 3aeb231f836acf51af5432b7c06df1e786278ff6fceeb3a53d50a9377653df3c "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.metrics.size(), kExpectedMetricCount) | EXPECT_TRUE(std::all_of( report.rows.begin(), report.rows.end(), [](const fesa::test::RowDecision& row) { return row.passed; })) | ASSERT_NE(metric, nullptr) | ASSERT_NE(worst, nullptr) | EXPECT_EQ(metric->row_count, kNodeCount * 3U) | EXPECT_DOUBLE_EQ(metric->reference_scale, 1.90476272e-2) | EXPECT_DOUBLE_EQ(metric->maximum_absolute_error, 1.0e-9) | EXPECT_NEAR(metric->relative_rms, std::sqrt(1.25 / static_cast(kNodeCount * 3U)) * 1.0e-9 / metric->reference_scale, 1.0e-21) | EXPECT_EQ(metric->worst_row, static_cast(worst - report.rows.data())) | EXPECT_FALSE(report.stress_comparison_applicable) | EXPECT_NE(report.stress_comparison_reason.find(""N/A""), std::string::npos) | EXPECT_NE(report.stress_comparison_reason.find(""HDF5""), std::string::npos) | EXPECT_DOUBLE_EQ(report.physics_evidence.free_residual_norm, 0.0) | EXPECT_EQ(report.physics_evidence.applied_force, (std::array{0.0, 0.0, -1.0e6})) | EXPECT_EQ(report.physics_evidence.reaction_force, (std::array{0.0, 0.0, 1.0e6})) | EXPECT_EQ(report.physics_evidence.applied_moment_about_origin, (std::array{0.0, 1.0e7, 0.0})) | EXPECT_EQ(report.physics_evidence.reaction_moment_about_origin, (std::array{0.0, -1.0e7, 0.0})) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | ASSERT_TRUE( fesa::test::ReferenceComparison::WriteDeterministicJson(report, json_a) .IsOk()) | ASSERT_TRUE( fesa::test::ReferenceComparison::WriteDeterministicJson(report, json_b) .IsOk()) | EXPECT_EQ(first, ReadBytes(json_b)) | EXPECT_NE(first.find(required), std::string::npos)" "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.metrics.size(), kExpectedMetricCount) | EXPECT_TRUE(std::all_of( report.rows.begin(), report.rows.end(), [](const fesa::test::RowDecision& row) { return row.passed; })) | ASSERT_NE(metric, nullptr) | ASSERT_NE(worst, nullptr) | EXPECT_EQ(metric->row_count, kNodeCount * 3U) | EXPECT_DOUBLE_EQ(metric->reference_scale, 1.90476272e-2) | EXPECT_DOUBLE_EQ(metric->maximum_absolute_error, 1.0e-9) | EXPECT_NEAR(metric->relative_rms, std::sqrt(1.25 / static_cast(kNodeCount * 3U)) * 1.0e-9 / metric->reference_scale, 1.0e-21) | EXPECT_EQ(metric->worst_row, static_cast(worst - report.rows.data())) | EXPECT_FALSE(report.stress_comparison_applicable) | EXPECT_NE(report.stress_comparison_reason.find(""N/A""), std::string::npos) | EXPECT_NE(report.stress_comparison_reason.find(""HDF5""), std::string::npos) | EXPECT_DOUBLE_EQ(report.physics_evidence.free_residual_norm, 0.0) | EXPECT_EQ(report.physics_evidence.applied_force, (std::array{0.0, 0.0, -1.0e6})) | EXPECT_EQ(report.physics_evidence.reaction_force, (std::array{0.0, 0.0, 1.0e6})) | EXPECT_EQ(report.physics_evidence.applied_moment_about_origin, (std::array{0.0, 1.0e7, 0.0})) | EXPECT_EQ(report.physics_evidence.reaction_moment_about_origin, (std::array{0.0, -1.0e7, 0.0})) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | ASSERT_TRUE( fesa::test::ReferenceComparison::WriteDeterministicJson(report, json_a) .IsOk()) | ASSERT_TRUE( fesa::test::ReferenceComparison::WriteDeterministicJson(report, json_b) .IsOk()) | EXPECT_EQ(first, ReadBytes(json_b)) | EXPECT_NE(first.find(required), std::string::npos)" -Dev tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.PreservesSectionEndpointIdentityWithoutStationNormalization ReferenceComparisonContract.PreservesSectionEndpointIdentityWithoutStationNormalization; assertion 10개 tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.PreservesSectionEndpointIdentityWithoutStationNormalization 유지 원문 검사 body 및 assertion 동일. 35b078826866908199d78ce70bc394087ad8ad257cc7db971e29412a67ab19d2 35b078826866908199d78ce70bc394087ad8ad257cc7db971e29412a67ab19d2 ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | ASSERT_NE(interior, nullptr) | EXPECT_DOUBLE_EQ(interior->fesa.value, 9.0e6 - 5.0) | EXPECT_DOUBLE_EQ(interior->reference.value, 9.0e6) | EXPECT_DOUBLE_EQ(interior->absolute_error, 5.0) | ASSERT_NE(adjacent, nullptr) | EXPECT_DOUBLE_EQ(adjacent->fesa.value, 9.0e6) | EXPECT_DOUBLE_EQ(adjacent->reference.value, 9.0e6) ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | ASSERT_NE(interior, nullptr) | EXPECT_DOUBLE_EQ(interior->fesa.value, 9.0e6 - 5.0) | EXPECT_DOUBLE_EQ(interior->reference.value, 9.0e6) | EXPECT_DOUBLE_EQ(interior->absolute_error, 5.0) | ASSERT_NE(adjacent, nullptr) | EXPECT_DOUBLE_EQ(adjacent->fesa.value, 9.0e6) | EXPECT_DOUBLE_EQ(adjacent->reference.value, 9.0e6) -Dev tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.MapsEachSectionCsvComponentToItsDirectEndpointResultant ReferenceComparisonContract.MapsEachSectionCsvComponentToItsDirectEndpointResultant; assertion 15개 tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.MapsEachSectionCsvComponentToItsDirectEndpointResultant 유지 원문 검사 body 및 assertion 동일. cb0ba7caae79f4c0d6d33c2fe7d29658710974c27d49edc9d208987cd21dcb73 cb0ba7caae79f4c0d6d33c2fe7d29658710974c27d49edc9d208987cd21dcb73 ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_NE(n, nullptr) | ASSERT_NE(t, nullptr) | ASSERT_NE(my, nullptr) | ASSERT_NE(mz, nullptr) | EXPECT_DOUBLE_EQ(n->reference.value, 11.0) | EXPECT_DOUBLE_EQ(t->reference.value, 22.0) | EXPECT_DOUBLE_EQ(my->reference.value, 33.0) | EXPECT_DOUBLE_EQ(mz->reference.value, 44.0) | EXPECT_DOUBLE_EQ(n->fesa.value, 11.0) | EXPECT_DOUBLE_EQ(t->fesa.value, 22.0) | EXPECT_DOUBLE_EQ(my->fesa.value, 33.0) | EXPECT_DOUBLE_EQ(mz->fesa.value, 44.0) ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_NE(n, nullptr) | ASSERT_NE(t, nullptr) | ASSERT_NE(my, nullptr) | ASSERT_NE(mz, nullptr) | EXPECT_DOUBLE_EQ(n->reference.value, 11.0) | EXPECT_DOUBLE_EQ(t->reference.value, 22.0) | EXPECT_DOUBLE_EQ(my->reference.value, 33.0) | EXPECT_DOUBLE_EQ(mz->reference.value, 44.0) | EXPECT_DOUBLE_EQ(n->fesa.value, 11.0) | EXPECT_DOUBLE_EQ(t->fesa.value, 22.0) | EXPECT_DOUBLE_EQ(my->fesa.value, 33.0) | EXPECT_DOUBLE_EQ(mz->fesa.value, 44.0) -Dev tests/reference/reference_comparison_test.cpp support@1-424 helper/oracle/fixture/include/static assertion 구간: ComparisonValues, SourceRoot, BinaryRoot, ReadBytes, if, WriteBytes, ReadLines, WriteLines, for, ReplaceFirst, ReferenceValues, MakeDefinition, WriteResultsFixture, ContractFixture, ExpectFailureCode, FindRow, find_if, FindMetric, FindSectionRow, ExpectExactRowInventory tests/reference/reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 26a9f2cdd31fc7384d94d10efdfe1ab22d82b8c620ee16874094069b4671958b 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/reference_tolerance_policy.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/reference_tolerance_policy.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b2e6065df0d673be20fb10fbf0ef58705fc04c1788b5e52d1faaf7ebda33274f b2e6065df0d673be20fb10fbf0ef58705fc04c1788b5e52d1faaf7ebda33274f 해당 없음 해당 없음 -Dev tests/reference/reference_tolerance_policy.cpp support@1-138 helper/oracle/fixture/include/static assertion 구간: fesa, IsFiniteFamily, if, all_of, EvaluateFamilies, for, ReferenceToleranceEvaluation, Evaluate, EvaluateMitc4EigenFirstImplementation tests/reference/reference_tolerance_policy.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 27b71db22073ee923ba13a8c32bff7ea14ab488d80c2ceefb7767747b68d52f0 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/reference_tolerance_policy.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/reference_tolerance_policy.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9918e9b43e9b777dae620fc552badccc5570bb246a6499756df83b1c207f9e24 9918e9b43e9b777dae620fc552badccc5570bb246a6499756df83b1c207f9e24 해당 없음 해당 없음 -Dev tests/reference/reference_tolerance_policy.h support@1-80 helper/oracle/fixture/include/static assertion 구간: fesa, ReferenceToleranceBranch, ReferenceToleranceRow, ReferenceToleranceFamily, ReferenceToleranceRowDecision, ReferenceToleranceFamilyDecision, ReferenceToleranceEvaluation, ReferenceTolerancePolicy tests/reference/reference_tolerance_policy.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. de2c46296fb2b5947a46c739ae21ad66802622b97ee4845543d3cd2a50ba03ac 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/reference_tolerance_policy_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/reference/reference_tolerance_policy_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. be4a8896f4847dec26c07578c91d97f23f132c8a97c2507e5614011f70aa600f be4a8896f4847dec26c07578c91d97f23f132c8a97c2507e5614011f70aa600f 해당 없음 해당 없음 -Dev tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.AppliesRelativeAndNearZeroThresholdsAtTheirInclusiveBoundaries ReferenceTolerancePolicy.AppliesRelativeAndNearZeroThresholdsAtTheirInclusiveBoundaries; assertion 19개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.AppliesRelativeAndNearZeroThresholdsAtTheirInclusiveBoundaries 유지 원문 검사 body 및 assertion 동일. 0796acda78954b1bf9b52659b043f23a0435245c7198961ebd96d84b241c9265 0796acda78954b1bf9b52659b043f23a0435245c7198961ebd96d84b241c9265 ASSERT_TRUE(evaluation.valid) | ASSERT_EQ(evaluation.families.size(), 1U) | EXPECT_EQ(family.row_count, 4U) | EXPECT_DOUBLE_EQ(family.reference_scale, 100.0) | EXPECT_DOUBLE_EQ(family.near_zero_band, 1.0) | EXPECT_EQ(family.near_zero_count, 2U) | EXPECT_FALSE(family.passed) | ASSERT_EQ(family.rows.size(), 4U) | EXPECT_EQ(family.rows[0U].branch, ReferenceToleranceBranch::kRelative) | EXPECT_TRUE(family.rows[0U].relative_error_applicable) | EXPECT_DOUBLE_EQ(family.rows[0U].relative_error, 0.05) | EXPECT_DOUBLE_EQ(family.rows[0U].threshold, 5.0) | EXPECT_TRUE(family.rows[0U].passed) | EXPECT_FALSE(family.rows[1U].passed) | EXPECT_EQ(family.rows[2U].branch, ReferenceToleranceBranch::kNearZero) | EXPECT_FALSE(family.rows[2U].relative_error_applicable) | EXPECT_DOUBLE_EQ(family.rows[2U].threshold, 1.0) | EXPECT_TRUE(family.rows[2U].passed) | EXPECT_FALSE(family.rows[3U].passed) ASSERT_TRUE(evaluation.valid) | ASSERT_EQ(evaluation.families.size(), 1U) | EXPECT_EQ(family.row_count, 4U) | EXPECT_DOUBLE_EQ(family.reference_scale, 100.0) | EXPECT_DOUBLE_EQ(family.near_zero_band, 1.0) | EXPECT_EQ(family.near_zero_count, 2U) | EXPECT_FALSE(family.passed) | ASSERT_EQ(family.rows.size(), 4U) | EXPECT_EQ(family.rows[0U].branch, ReferenceToleranceBranch::kRelative) | EXPECT_TRUE(family.rows[0U].relative_error_applicable) | EXPECT_DOUBLE_EQ(family.rows[0U].relative_error, 0.05) | EXPECT_DOUBLE_EQ(family.rows[0U].threshold, 5.0) | EXPECT_TRUE(family.rows[0U].passed) | EXPECT_FALSE(family.rows[1U].passed) | EXPECT_EQ(family.rows[2U].branch, ReferenceToleranceBranch::kNearZero) | EXPECT_FALSE(family.rows[2U].relative_error_applicable) | EXPECT_DOUBLE_EQ(family.rows[2U].threshold, 1.0) | EXPECT_TRUE(family.rows[2U].passed) | EXPECT_FALSE(family.rows[3U].passed) -Dev tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.RejectsFamiliesWhoseScaleRelativeRmsExceedsOnePercent ReferenceTolerancePolicy.RejectsFamiliesWhoseScaleRelativeRmsExceedsOnePercent; assertion 7개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.RejectsFamiliesWhoseScaleRelativeRmsExceedsOnePercent 유지 원문 검사 body 및 assertion 동일. c92918fb5b5c06da814ac1213a2b80b8af1ffd52bd0f11339468ab1ff87eed5f c92918fb5b5c06da814ac1213a2b80b8af1ffd52bd0f11339468ab1ff87eed5f ASSERT_TRUE(evaluation.valid) | EXPECT_EQ(family.row_count, 4U) | EXPECT_TRUE(std::all_of(family.rows.begin(), family.rows.end(), [](const auto& row) { return row.passed; })) | EXPECT_NEAR(family.relative_rms, 0.011, 1.0e-15) | EXPECT_FALSE(family.rms_passed) | EXPECT_FALSE(family.passed) | EXPECT_FALSE(evaluation.passed) ASSERT_TRUE(evaluation.valid) | EXPECT_EQ(family.row_count, 4U) | EXPECT_TRUE(std::all_of(family.rows.begin(), family.rows.end(), [](const auto& row) { return row.passed; })) | EXPECT_NEAR(family.relative_rms, 0.011, 1.0e-15) | EXPECT_FALSE(family.rms_passed) | EXPECT_FALSE(family.passed) | EXPECT_FALSE(evaluation.passed) -Dev tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.FailsClosedForZeroScaleNonzeroErrorWithoutNonfiniteMetrics ReferenceTolerancePolicy.FailsClosedForZeroScaleNonzeroErrorWithoutNonfiniteMetrics; assertion 14개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.FailsClosedForZeroScaleNonzeroErrorWithoutNonfiniteMetrics 유지 원문 검사 body 및 assertion 동일. 38ca8bda67fdaa127b1694bc937e3ca56f701ea313ab767da299fc747b33c7de 38ca8bda67fdaa127b1694bc937e3ca56f701ea313ab767da299fc747b33c7de "ASSERT_TRUE(evaluation.valid) | EXPECT_EQ(family.row_count, 2U) | EXPECT_DOUBLE_EQ(family.reference_scale, 0.0) | EXPECT_DOUBLE_EQ(family.near_zero_band, 0.0) | EXPECT_EQ(family.near_zero_count, 2U) | EXPECT_EQ(family.diagnostic_code, ""zero-reference-scale-nonzero-error"") | EXPECT_EQ(family.rows[0U].branch, ReferenceToleranceBranch::kZeroScaleExact) | EXPECT_TRUE(family.rows[0U].passed) | EXPECT_FALSE(family.rows[1U].passed) | EXPECT_FALSE(family.rows[1U].relative_error_applicable) | EXPECT_TRUE(std::isfinite(family.relative_rms)) | EXPECT_DOUBLE_EQ(family.relative_rms, 0.0) | EXPECT_FALSE(family.rms_passed) | EXPECT_FALSE(family.passed)" "ASSERT_TRUE(evaluation.valid) | EXPECT_EQ(family.row_count, 2U) | EXPECT_DOUBLE_EQ(family.reference_scale, 0.0) | EXPECT_DOUBLE_EQ(family.near_zero_band, 0.0) | EXPECT_EQ(family.near_zero_count, 2U) | EXPECT_EQ(family.diagnostic_code, ""zero-reference-scale-nonzero-error"") | EXPECT_EQ(family.rows[0U].branch, ReferenceToleranceBranch::kZeroScaleExact) | EXPECT_TRUE(family.rows[0U].passed) | EXPECT_FALSE(family.rows[1U].passed) | EXPECT_FALSE(family.rows[1U].relative_error_applicable) | EXPECT_TRUE(std::isfinite(family.relative_rms)) | EXPECT_DOUBLE_EQ(family.relative_rms, 0.0) | EXPECT_FALSE(family.rms_passed) | EXPECT_FALSE(family.passed)" -Dev tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.KeepsWarningOnlyFamilyExceedanceOutOfBlockingVerdict ReferenceTolerancePolicy.KeepsWarningOnlyFamilyExceedanceOutOfBlockingVerdict; assertion 5개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.KeepsWarningOnlyFamilyExceedanceOutOfBlockingVerdict 유지 원문 검사 body 및 assertion 동일. ea07bf7d6def7cbd89bc911f979f710846ad558b1711613f3abcc97e14be0b8a ea07bf7d6def7cbd89bc911f979f710846ad558b1711613f3abcc97e14be0b8a ASSERT_TRUE(evaluation.valid) | ASSERT_EQ(evaluation.families.size(), 2U) | EXPECT_TRUE(evaluation.families[0U].passed) | EXPECT_FALSE(evaluation.families[1U].passed) | EXPECT_TRUE(evaluation.passed) ASSERT_TRUE(evaluation.valid) | ASSERT_EQ(evaluation.families.size(), 2U) | EXPECT_TRUE(evaluation.families[0U].passed) | EXPECT_FALSE(evaluation.families[1U].passed) | EXPECT_TRUE(evaluation.passed) -Dev tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.RejectsNonfiniteInputsBeforeToleranceEvaluation ReferenceTolerancePolicy.RejectsNonfiniteInputsBeforeToleranceEvaluation; assertion 3개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.RejectsNonfiniteInputsBeforeToleranceEvaluation 유지 원문 검사 body 및 assertion 동일. 42628fe515d6debce07e8553911bb1a6b74e316265a0702267056258db827b45 42628fe515d6debce07e8553911bb1a6b74e316265a0702267056258db827b45 "EXPECT_FALSE(evaluation.valid) | EXPECT_EQ(evaluation.diagnostic_code, ""nonfinite-comparison-value"") | EXPECT_TRUE(evaluation.families.empty())" "EXPECT_FALSE(evaluation.valid) | EXPECT_EQ(evaluation.diagnostic_code, ""nonfinite-comparison-value"") | EXPECT_TRUE(evaluation.families.empty())" -Dev tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationDoesNotRelaxCommonPolicy ReferenceTolerancePolicy.EigenFirstImplementationDoesNotRelaxCommonPolicy; assertion 6개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationDoesNotRelaxCommonPolicy 유지 원문 검사 body 및 assertion 동일. d4090ddd26b57509606e7f1dfdbfd22996f95d19c5d761d6368b6c07a467aca2 d4090ddd26b57509606e7f1dfdbfd22996f95d19c5d761d6368b6c07a467aca2 ASSERT_TRUE(common.valid) | ASSERT_TRUE(eigen.valid) | EXPECT_FALSE(common.passed) | EXPECT_TRUE(eigen.passed) | EXPECT_DOUBLE_EQ(eigen.families[0].relative_rms, 0.05) | EXPECT_DOUBLE_EQ(common.families[0].relative_rms, eigen.families[0].relative_rms) ASSERT_TRUE(common.valid) | ASSERT_TRUE(eigen.valid) | EXPECT_FALSE(common.passed) | EXPECT_TRUE(eigen.passed) | EXPECT_DOUBLE_EQ(eigen.families[0].relative_rms, 0.05) | EXPECT_DOUBLE_EQ(common.families[0].relative_rms, eigen.families[0].relative_rms) -Dev tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationPreservesZeroAndFiniteChecks ReferenceTolerancePolicy.EigenFirstImplementationPreservesZeroAndFiniteChecks; assertion 5개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationPreservesZeroAndFiniteChecks 유지 원문 검사 body 및 assertion 동일. 463cda2ec4b8c4b83cc64d2b655af56b24f310add1ee6bc486c3f319e6ad076a 463cda2ec4b8c4b83cc64d2b655af56b24f310add1ee6bc486c3f319e6ad076a "EXPECT_FALSE(result.valid) | EXPECT_FALSE(result.passed) | ASSERT_TRUE(result.valid) | EXPECT_EQ(result.passed, row.fesa_value == 0.0) | EXPECT_EQ(result.families[0].diagnostic_code, ""zero-reference-scale-nonzero-error"")" "EXPECT_FALSE(result.valid) | EXPECT_FALSE(result.passed) | ASSERT_TRUE(result.valid) | EXPECT_EQ(result.passed, row.fesa_value == 0.0) | EXPECT_EQ(result.families[0].diagnostic_code, ""zero-reference-scale-nonzero-error"")" -Dev tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationRejectsNonmodalFamilies ReferenceTolerancePolicy.EigenFirstImplementationRejectsNonmodalFamilies; assertion 3개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationRejectsNonmodalFamilies 유지 원문 검사 body 및 assertion 동일. cacd7f2e9c5bdc6c907786187817305395ce12155fa51e4e10ce01d364df2741 cacd7f2e9c5bdc6c907786187817305395ce12155fa51e4e10ce01d364df2741 "EXPECT_FALSE(result.valid) | EXPECT_FALSE(result.passed) | EXPECT_EQ(result.diagnostic_code, ""invalid-eigen-tolerance-family"")" "EXPECT_FALSE(result.valid) | EXPECT_FALSE(result.passed) | EXPECT_EQ(result.diagnostic_code, ""invalid-eigen-tolerance-family"")" -Dev tests/reference/reference_tolerance_policy_test.cpp support@1-26 helper/oracle/fixture/include/static assertion 구간: MakeFamily tests/reference/reference_tolerance_policy_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9c2d3b770c78989b0bbe4bf618d87e318a4ddd8322aa0debfffe7cc932d3f028 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/reference_tolerance_policy_test.cpp support@172-173 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/reference_tolerance_policy_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 804f89fc0ec98c9824183e795d3edd19e930f7bc471f9012aa3d503be2f8974b 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/shell_surface_pressure_reference_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/reference/shell_surface_pressure_reference_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 45a004e6e7ab3dba315796d54e1347b54fca3e1cad3b637a2dda6884ab846d7d 45a004e6e7ab3dba315796d54e1347b54fca3e1cad3b637a2dda6884ab846d7d 해당 없음 해당 없음 -Dev tests/reference/shell_surface_pressure_reference_test.cpp ShellSurfacePressureReference.ClassifiesTranslationBlockingAndRotationWarningOnly ShellSurfacePressureReference.ClassifiesTranslationBlockingAndRotationWarningOnly; assertion 1개 tests/reference/shell_surface_pressure_reference_test.cpp ShellSurfacePressureReference.ClassifiesTranslationBlockingAndRotationWarningOnly 유지 원문 검사 body 및 assertion 동일. ed6f0cea1655c6b579fecd966c3c2b1b62812f1e69475b98610c093cd4229455 ed6f0cea1655c6b579fecd966c3c2b1b62812f1e69475b98610c093cd4229455 EXPECT_EQ( fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kWarningOnlyDifferences) EXPECT_EQ( fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kWarningOnlyDifferences) -Dev tests/reference/shell_surface_pressure_reference_test.cpp support@1-12 helper/oracle/fixture/include/static assertion 구간: MakeTolerance tests/reference/shell_surface_pressure_reference_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8d9d1942187a363e8bc49004c4b7df1b110071843d5cdf55dccc741ee6066ea7 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/shell_surface_pressure_reference_test.cpp support@31-32 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/shell_surface_pressure_reference_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/thermal_reference_cases_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/reference/thermal_reference_cases_test.cpp file 이관 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 기존 diagnostic/nonblocking 판정은 유지한다. f796b0d84b1289f58caa791fe2c380e1b28b4322030ed505476f39c788f0db86 8b340c31cb028e1cf8e676f35869cb74d923c7e3f05d5ed8d3cc428722b4aed3 해당 없음 해당 없음 -Dev tests/reference/thermal_reference_cases_test.cpp ThermalReference.OriginalAbaqusNt11RemainsAnExplicitFailingDiagnostic ThermalReference.OriginalAbaqusNt11RemainsAnExplicitFailingDiagnostic; assertion 16개 tests/reference/thermal_reference_cases_test.cpp ThermalReference.OriginalAbaqusNt11RemainsAnExplicitFailingDiagnostic 이관 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 기존 diagnostic/nonblocking 판정은 유지한다. 552d85894324a70ebef68ce1b260bc7310dc32cc8f2e91bd12749b9883ab0f1c 86884d662acf255866202f5682b4e95db4785ee4a0da1ae2e83fc410f36a4290 ASSERT_FALSE(before_input.empty()) | ASSERT_FALSE(before_csv.empty()) | EXPECT_EQ(Bytes(input), before_input) | EXPECT_EQ(Bytes(csv), before_csv) | ASSERT_EQ(exit, 0) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(r.rows.size(), 729U) | ASSERT_TRUE(rows.good()) | EXPECT_EQ(r.family.reference_scale, 1000) | EXPECT_EQ(r.family.near_zero_band, 10) | EXPECT_FALSE(r.family.blocking) | EXPECT_FALSE(r.passed) | EXPECT_FALSE(r.family.rms_passed) | EXPECT_EQ(failed, 87U) | EXPECT_GT(r.family.relative_rms, fesa::test::ReferenceTolerancePolicy::kRelativeRmsTolerance) | EXPECT_GT(r.family.maximum_absolute_error, r.family.near_zero_band) ASSERT_FALSE(before_input.empty()) | ASSERT_FALSE(before_csv.empty()) | EXPECT_EQ(Bytes(input), before_input) | EXPECT_EQ(Bytes(csv), before_csv) | ASSERT_EQ(exit, 0) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(r.rows.size(), 729U) | ASSERT_TRUE(rows.good()) | EXPECT_EQ(r.family.reference_scale, 1000) | EXPECT_EQ(r.family.near_zero_band, 10) | EXPECT_FALSE(r.family.blocking) | EXPECT_FALSE(r.passed) | EXPECT_FALSE(r.family.rms_passed) | EXPECT_EQ(failed, 87U) | EXPECT_GT(r.family.relative_rms, fesa::test::ReferenceTolerancePolicy::kRelativeRmsTolerance) | EXPECT_GT(r.family.maximum_absolute_error, r.family.near_zero_band) -Dev tests/reference/thermal_reference_cases_test.cpp support@1-15 helper/oracle/fixture/include/static assertion 구간: Bytes tests/reference/thermal_reference_cases_test.cpp file-support 유지 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 기존 diagnostic/nonblocking 판정은 유지한다. d748735499aeda58e97d6652289f5ba2fb3a8b1143f03a04e6159b38f93dbf0b 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/thermal_reference_cases_test.cpp support@68-68 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/thermal_reference_cases_test.cpp file-support 유지 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 기존 diagnostic/nonblocking 판정은 유지한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/thermal_reference_comparison.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/thermal_reference_comparison.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0cb4c1b8595a16219808d6fe661571b59f7b7f2e100749d83baf2506dc0a61a0 0cb4c1b8595a16219808d6fe661571b59f7b7f2e100749d83baf2506dc0a61a0 해당 없음 해당 없음 -Dev tests/reference/thermal_reference_comparison.cpp support@1-417 helper/oracle/fixture/include/static assertion 구간: fesa, Failure, Require, H, Id, Shape, Attr, if, T, Scalar, Primitive, Field, Label, Trim, Result, CompareThermalSnapshots, for, catch, ReadThermalReferenceCsv, while, ReadThermalReferenceHdf5, NodeRow, Frame, CompareThermalReferenceFiles tests/reference/thermal_reference_comparison.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 56b6cc4aad9b0122c1a0d266048c889280113757493d372501e163005bab9e1f 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/thermal_reference_comparison.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/thermal_reference_comparison.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c0e30c7bdd6ef3fad7e0d69159888a15e35a096adbd77c8481913063d703a9e0 c0e30c7bdd6ef3fad7e0d69159888a15e35a096adbd77c8481913063d703a9e0 해당 없음 해당 없음 -Dev tests/reference/thermal_reference_comparison.h support@1-57 helper/oracle/fixture/include/static assertion 구간: fesa, ThermalReferenceRow, ThermalReferenceSnapshot, ThermalReferenceRowDecision, ThermalReferenceReport tests/reference/thermal_reference_comparison.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c1ecc31681e11d2a2b9a7f64773dc821acd8b3678d77c6063044b481a7f2409d 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/thermal_reference_comparison_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/reference/thermal_reference_comparison_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d98e4228c027b4cedd45cc97c75fbd56694f91ecff32c875e32da384faa9a19e d98e4228c027b4cedd45cc97c75fbd56694f91ecff32c875e32da384faa9a19e 해당 없음 해당 없음 -Dev tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.HdfSchemaMappingRejectsMalformedStationFrameAndNodeData ThermalReferenceComparison.HdfSchemaMappingRejectsMalformedStationFrameAndNodeData; assertion 4개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.HdfSchemaMappingRejectsMalformedStationFrameAndNodeData 유지 원문 검사 body 및 assertion 동일. b5991ec2a055de6dd67134f1cbf7445a7cfe8618f7089e1fe9968a22b3df1aaa b5991ec2a055de6dd67134f1cbf7445a7cfe8618f7089e1fe9968a22b3df1aaa ASSERT_TRUE(read.HasValue()) | EXPECT_EQ(result.HasValue(), defect == 0) | EXPECT_TRUE(result.Value().passed) | EXPECT_FALSE(read.HasValue()) ASSERT_TRUE(read.HasValue()) | EXPECT_EQ(result.HasValue(), defect == 0) | EXPECT_TRUE(result.Value().passed) | EXPECT_FALSE(read.HasValue()) -Dev tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.MapsSourceLabelsWithoutRowOrderAndPreservesSignedValues ThermalReferenceComparison.MapsSourceLabelsWithoutRowOrderAndPreservesSignedValues; assertion 9개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.MapsSourceLabelsWithoutRowOrderAndPreservesSignedValues 유지 원문 검사 body 및 assertion 동일. 9fbe3d06c90283b2e1b9473474b689354f9dbd1bd2eca8c120e10127bfc472b9 9fbe3d06c90283b2e1b9473474b689354f9dbd1bd2eca8c120e10127bfc472b9 ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().passed) | ASSERT_EQ(result.Value().rows.size(), 3U) | EXPECT_EQ(result.Value().rows[1].label, 7U) | EXPECT_EQ(result.Value().rows[1].reference, -15.5742216) | EXPECT_EQ(result.Value().rows[1].tolerance.branch, fesa::test::ReferenceToleranceBranch::kRelative) | EXPECT_EQ(result.Value().family.reference_scale, 1000) | EXPECT_EQ(result.Value().family.near_zero_band, 10) | EXPECT_FALSE(result.Value().family.blocking) ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().passed) | ASSERT_EQ(result.Value().rows.size(), 3U) | EXPECT_EQ(result.Value().rows[1].label, 7U) | EXPECT_EQ(result.Value().rows[1].reference, -15.5742216) | EXPECT_EQ(result.Value().rows[1].tolerance.branch, fesa::test::ReferenceToleranceBranch::kRelative) | EXPECT_EQ(result.Value().family.reference_scale, 1000) | EXPECT_EQ(result.Value().family.near_zero_band, 10) | EXPECT_FALSE(result.Value().family.blocking) -Dev tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.RejectsMissingExtraDuplicateAndNonfiniteBeforeTolerance ThermalReferenceComparison.RejectsMissingExtraDuplicateAndNonfiniteBeforeTolerance; assertion 1개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.RejectsMissingExtraDuplicateAndNonfiniteBeforeTolerance 유지 원문 검사 body 및 assertion 동일. bb8b648993b9f4ae838901f9566db7ca32f22e6bdbd6018213d68e1ff48dfc46 bb8b648993b9f4ae838901f9566db7ca32f22e6bdbd6018213d68e1ff48dfc46 "EXPECT_FALSE(fesa::test::CompareThermalSnapshots(actual, reference, {3, 7, 20}, ""Part-1-1"") .HasValue())" "EXPECT_FALSE(fesa::test::CompareThermalSnapshots(actual, reference, {3, 7, 20}, ""Part-1-1"") .HasValue())" -Dev tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.RejectsWrongStepTimeIncrementInstanceAndStation ThermalReferenceComparison.RejectsWrongStepTimeIncrementInstanceAndStation; assertion 1개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.RejectsWrongStepTimeIncrementInstanceAndStation 유지 원문 검사 body 및 assertion 동일. e9b3d7890b38b8ac9d7124ef7b38cea8037bd5f2977145231c47928af3112462 e9b3d7890b38b8ac9d7124ef7b38cea8037bd5f2977145231c47928af3112462 "EXPECT_FALSE(fesa::test::CompareThermalSnapshots(actual, reference, {3, 7, 20}, ""Part-1-1"") .HasValue())" "EXPECT_FALSE(fesa::test::CompareThermalSnapshots(actual, reference, {3, 7, 20}, ""Part-1-1"") .HasValue())" -Dev tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.UsesUnmodifiedFivePercentOnePercentAndExactZeroPolicy ThermalReferenceComparison.UsesUnmodifiedFivePercentOnePercentAndExactZeroPolicy; assertion 5개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.UsesUnmodifiedFivePercentOnePercentAndExactZeroPolicy 유지 원문 검사 body 및 assertion 동일. 6fa4b28f03af7accaa46980c8de1e428a784bed83de862984ec5c1fed45ea9db 6fa4b28f03af7accaa46980c8de1e428a784bed83de862984ec5c1fed45ea9db ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(result.Value().passed) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(result.Value().passed) | EXPECT_EQ(result.Value().family.reference_scale, 0) ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(result.Value().passed) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(result.Value().passed) | EXPECT_EQ(result.Value().family.reference_scale, 0) -Dev tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.CsvRequiresExactHeaderFrameFiniteValuesAndSoleInstance ThermalReferenceComparison.CsvRequiresExactHeaderFrameFiniteValuesAndSoleInstance; assertion 2개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.CsvRequiresExactHeaderFrameFiniteValuesAndSoleInstance 유지 원문 검사 body 및 assertion 동일. 6a725850decb91c07895b0f8e6513e95e866004b4885a6f9cd0959b79b3d05f8 6a725850decb91c07895b0f8e6513e95e866004b4885a6f9cd0959b79b3d05f8 "EXPECT_EQ(result.HasValue(), text == header + valid) | EXPECT_FALSE(fesa::test::ReadThermalReferenceCsv(path, """").HasValue())" "EXPECT_EQ(result.HasValue(), text == header + valid) | EXPECT_FALSE(fesa::test::ReadThermalReferenceCsv(path, """").HasValue())" -Dev tests/reference/thermal_reference_comparison_test.cpp support@1-170 helper/oracle/fixture/include/static assertion 구간: TemporaryFolder, Handle, StringAttribute, T, ScalarAttribute, Dataset, comparator, Node, Frame tests/reference/thermal_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8fe742ff0a0ff661b374df3df48724fad479ad1702325197a6ff058cd08f3942 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/thermal_reference_comparison_test.cpp support@196-204 helper/oracle/fixture/include/static assertion 구간: Snapshot tests/reference/thermal_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 32bf1858c73c1cbf1f65ee1adc11e7230a993eb21b972a8b16916a5fe4eb2d21 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/reference/thermal_reference_comparison_test.cpp support@330-330 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/thermal_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/test_cpp_policy_contract.py file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/test_cpp_policy_contract.py file 이관 Dev 정책과 Doxygen 선택성 검사를 유지한다. native 공통 property sheet와 다섯 consumer도 standard exception unwinding을 요구하도록 확장한다. 7f97a7758e483ca293caa39713202bd0c29097ce9983776c7b67c759a53513fc 48e7c3be9bfc735e239a5b023867fdd336e271fe44bcecb30cdebedc356a41c9 해당 없음 해당 없음 -Dev tests/test_cpp_policy_contract.py read fixture/oracle/helper read tests/test_cpp_policy_contract.py read 유지 원문 검사 body 및 assertion 동일. 6850e04b82047b75e3cb9aaad4ff0ca00023108c96bdaeae20465eb8a0b1de51 6850e04b82047b75e3cb9aaad4ff0ca00023108c96bdaeae20465eb8a0b1de51 해당 없음 해당 없음 -Dev tests/test_cpp_policy_contract.py doxygen_assignments fixture/oracle/helper doxygen_assignments tests/test_cpp_policy_contract.py doxygen_assignments 유지 원문 검사 body 및 assertion 동일. 109a90d7e1c2575992749ca28402bb0a2ebf9f35d2928a019c1de315108baa70 109a90d7e1c2575992749ca28402bb0a2ebf9f35d2928a019c1de315108baa70 해당 없음 해당 없음 -Dev tests/test_cpp_policy_contract.py test_p_style_001_cpp_style_and_doxygen_tooling_contract test_p_style_001_cpp_style_and_doxygen_tooling_contract; assertion 0개 tests/test_cpp_policy_contract.py test_p_style_001_cpp_style_and_doxygen_tooling_contract 유지 원문 검사 body 및 assertion 동일. d9c1cca6221f3430bdf4d46bc51bbe14c3afe01a88948d1464ee406791e97524 d9c1cca6221f3430bdf4d46bc51bbe14c3afe01a88948d1464ee406791e97524 "assert not missing_paths, f""missing C++ policy files: {missing_paths}"" | assert setting in clang_format | assert setting in clang_tidy | assert doxyfile[""INPUT""].split() == [""include"", ""src""] | assert doxyfile[""EXCLUDE""].split() == [""tests""] | assert doxyfile[""WARN_AS_ERROR""] == ""YES"" | assert doxyfile[""OUTPUT_DIRECTORY""] == ""build/doxygen"" | assert doxyfile[""HTML_OUTPUT""] == ""html"" | assert ""build/"" in gitignore_lines | assert ""find_package(Doxygen QUIET)"" in cmake | assert doxygen_block is not None | assert ""add_custom_target(fesa_docs"" in doxygen_block.group(""body"") | assert ""Doxyfile"" in doxygen_block.group(""body"") | assert re.search(r""add_custom_target\(fesa_docs\s+ALL\b"", cmake) is None" "assert not missing_paths, f""missing C++ policy files: {missing_paths}"" | assert setting in clang_format | assert setting in clang_tidy | assert doxyfile[""INPUT""].split() == [""include"", ""src""] | assert doxyfile[""EXCLUDE""].split() == [""tests""] | assert doxyfile[""WARN_AS_ERROR""] == ""YES"" | assert doxyfile[""OUTPUT_DIRECTORY""] == ""build/doxygen"" | assert doxyfile[""HTML_OUTPUT""] == ""html"" | assert ""build/"" in gitignore_lines | assert ""find_package(Doxygen QUIET)"" in cmake | assert doxygen_block is not None | assert ""add_custom_target(fesa_docs"" in doxygen_block.group(""body"") | assert ""Doxyfile"" in doxygen_block.group(""body"") | assert re.search(r""add_custom_target\(fesa_docs\s+ALL\b"", cmake) is None" -Dev tests/test_cpp_policy_contract.py test_p_style_002_msvc_targets_enable_standard_exception_unwinding test_p_style_002_msvc_targets_enable_standard_exception_unwinding; assertion 0개 tests/test_cpp_policy_contract.py test_p_style_002_msvc_targets_enable_standard_exception_unwinding 이관 Dev 정책과 Doxygen 선택성 검사를 유지한다. native 공통 property sheet와 다섯 consumer도 standard exception unwinding을 요구하도록 확장한다. e01149ce11e343bcbf48355921b911803d9ea98bdd18c12d781e47dd7f56d853 f4b84302b1f5e2b2720c51c01f8a577b7f2716a19fb641b2d2c12d26cf5aa33e "assert compile_options is not None, f""missing compile options for {target}"" | assert ""/EHsc"" in compile_options.group(""body""), (" "assert compile_options is not None, f""missing compile options for {target}"" | assert ""/EHsc"" in compile_options.group(""body""), ( | assert props.findtext("".//m:ExceptionHandling"", namespaces=ns) == ""Sync"" | assert ""Fesa.Common.props"" in imports, target | assert all(item.text == ""Sync"" for item in overrides), target" -Dev tests/test_cpp_policy_contract.py support@1-7 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/test_cpp_policy_contract.py file-support 유지 Dev 정책과 Doxygen 선택성 검사를 유지한다. native 공통 property sheet와 다섯 consumer도 standard exception unwinding을 요구하도록 확장한다. cf93027038b44959a49c21bfaa3400d9cf59d302de2fff8fd023629ba7bb65f8 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/analysis_model_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/analysis/analysis_model_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 008c38d245f54595a9a057575e264b408f235df5e9ff4fad3ef342ab6ff4301a 008c38d245f54595a9a057575e264b408f235df5e9ff4fad3ef342ab6ff4301a 해당 없음 해당 없음 -Dev tests/unit/analysis/analysis_model_test.cpp AnalysisModel.ClassifiesActiveEntitiesInStableOrder AnalysisModel.ClassifiesActiveEntitiesInStableOrder; assertion 9개 tests/unit/analysis/analysis_model_test.cpp AnalysisModel.ClassifiesActiveEntitiesInStableOrder 유지 원문 검사 body 및 assertion 동일. a295d00387546de59b989c3ac1abc3835489a6a9cc331a2b564b4ab6f5b76497 a295d00387546de59b989c3ac1abc3835489a6a9cc331a2b564b4ab6f5b76497 ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(model.ActiveElements(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(model.ActiveMaterials(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveSections(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveBoundaryConditions(), (std::vector{0U, 1U, 2U, 3U, 4U, 5U})) | EXPECT_EQ(model.ActiveLoads(), (std::vector{0U, 1U, 2U})) | ASSERT_EQ(model.Step().Loads().size(), 3U) | EXPECT_EQ(&model.Step().Loads()[0U].get(), &domain_result.Value().Steps()[0U].Loads()[0U].get()) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(model.ActiveElements(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(model.ActiveMaterials(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveSections(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveBoundaryConditions(), (std::vector{0U, 1U, 2U, 3U, 4U, 5U})) | EXPECT_EQ(model.ActiveLoads(), (std::vector{0U, 1U, 2U})) | ASSERT_EQ(model.Step().Loads().size(), 3U) | EXPECT_EQ(&model.Step().Loads()[0U].get(), &domain_result.Value().Steps()[0U].Loads()[0U].get()) -Dev tests/unit/analysis/analysis_model_test.cpp AnalysisModel.ReferencesWithoutCopyingOrMutatingDomain AnalysisModel.ReferencesWithoutCopyingOrMutatingDomain; assertion 12개 tests/unit/analysis/analysis_model_test.cpp AnalysisModel.ReferencesWithoutCopyingOrMutatingDomain 유지 원문 검사 body 및 assertion 동일. f48acbdd2020c7f7dcf6795c0bcb2efd01e531fca508a98469183cadaa6af312 f48acbdd2020c7f7dcf6795c0bcb2efd01e531fca508a98469183cadaa6af312 ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(&model.GetDomain(), &domain) | EXPECT_EQ(&model.Step(), &domain.Steps()[0]) | EXPECT_EQ(&model.GetDomain().Elements()[0U], element_address) | EXPECT_EQ(&model.GetDomain().Materials()[0U], material_address) | EXPECT_EQ(&model.GetDomain().Sections()[0U], section_address) | EXPECT_EQ(&model.GetDomain().Elements()[model.ActiveElements()[1]], &domain.Elements()[1]) | EXPECT_EQ(&model.GetDomain().Materials()[model.ActiveMaterials()[2]], &domain.Materials()[2]) | EXPECT_EQ(&model.GetDomain().Sections()[model.ActiveSections()[1]], &domain.Sections()[1]) | EXPECT_EQ(domain.Steps()[0].Name(), step_name) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[0U], first_load_magnitude) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(&model.GetDomain(), &domain) | EXPECT_EQ(&model.Step(), &domain.Steps()[0]) | EXPECT_EQ(&model.GetDomain().Elements()[0U], element_address) | EXPECT_EQ(&model.GetDomain().Materials()[0U], material_address) | EXPECT_EQ(&model.GetDomain().Sections()[0U], section_address) | EXPECT_EQ(&model.GetDomain().Elements()[model.ActiveElements()[1]], &domain.Elements()[1]) | EXPECT_EQ(&model.GetDomain().Materials()[model.ActiveMaterials()[2]], &domain.Materials()[2]) | EXPECT_EQ(&model.GetDomain().Sections()[model.ActiveSections()[1]], &domain.Sections()[1]) | EXPECT_EQ(domain.Steps()[0].Name(), step_name) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[0U], first_load_magnitude) -Dev tests/unit/analysis/analysis_model_test.cpp AnalysisModel.KeepsNonOwningMixedDefinitionAndPropertyIndices AnalysisModel.KeepsNonOwningMixedDefinitionAndPropertyIndices; assertion 9개 tests/unit/analysis/analysis_model_test.cpp AnalysisModel.KeepsNonOwningMixedDefinitionAndPropertyIndices 유지 원문 검사 body 및 assertion 동일. 36df6ff3f545836b79af2c8987b7bc0042b748e43cc1a2a8a83f2679904abb16 36df6ff3f545836b79af2c8987b7bc0042b748e43cc1a2a8a83f2679904abb16 ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(&model.GetDomain(), &domain) | EXPECT_EQ(model.ActiveElements(), (std::vector{0U, 1U, 2U, 3U, 4U})) | EXPECT_EQ(model.ActiveMaterials(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveProperties(), (std::vector{0U, 1U, 2U, 4U})) | EXPECT_EQ(&model.GetDomain().Elements()[model.ActiveElements()[4U]], &domain.Elements()[4U]) | EXPECT_EQ(&model.GetDomain().Materials()[model.ActiveMaterials()[1U]], &domain.Materials()[1U]) | EXPECT_EQ(&model.GetDomain().Properties()[model.ActiveProperties()[3U]], &domain.Properties()[4U]) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(&model.GetDomain(), &domain) | EXPECT_EQ(model.ActiveElements(), (std::vector{0U, 1U, 2U, 3U, 4U})) | EXPECT_EQ(model.ActiveMaterials(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveProperties(), (std::vector{0U, 1U, 2U, 4U})) | EXPECT_EQ(&model.GetDomain().Elements()[model.ActiveElements()[4U]], &domain.Elements()[4U]) | EXPECT_EQ(&model.GetDomain().Materials()[model.ActiveMaterials()[1U]], &domain.Materials()[1U]) | EXPECT_EQ(&model.GetDomain().Properties()[model.ActiveProperties()[3U]], &domain.Properties()[4U]) -Dev tests/unit/analysis/analysis_model_test.cpp AnalysisModel.RejectsMissingOrMultipleStep AnalysisModel.RejectsMissingOrMultipleStep; assertion 15개 tests/unit/analysis/analysis_model_test.cpp AnalysisModel.RejectsMissingOrMultipleStep 유지 원문 검사 body 및 assertion 동일. 0815824dc498c89c2c43b00880b4458ce2b620a55e337c0a65de481074bb5318 0815824dc498c89c2c43b00880b4458ce2b620a55e337c0a65de481074bb5318 "ASSERT_TRUE(missing_domain.HasValue()) | ASSERT_FALSE(missing.HasValue()) | EXPECT_EQ(missing.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(missing.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].code, ""invalid-model-cardinality"") | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].keyword, ""STEP"") | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].entity_identity, ""0"") | ASSERT_TRUE(multiple_domain.HasValue()) | ASSERT_FALSE(multiple.HasValue()) | EXPECT_EQ(multiple.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(multiple.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].code, ""unsupported-multiple-step"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].keyword, ""STEP"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].entity_identity, ""Step-2"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].location.line, 60U)" "ASSERT_TRUE(missing_domain.HasValue()) | ASSERT_FALSE(missing.HasValue()) | EXPECT_EQ(missing.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(missing.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].code, ""invalid-model-cardinality"") | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].keyword, ""STEP"") | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].entity_identity, ""0"") | ASSERT_TRUE(multiple_domain.HasValue()) | ASSERT_FALSE(multiple.HasValue()) | EXPECT_EQ(multiple.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(multiple.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].code, ""unsupported-multiple-step"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].keyword, ""STEP"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].entity_identity, ""Step-2"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].location.line, 60U)" -Dev tests/unit/analysis/analysis_model_test.cpp support@1-94 helper/oracle/fixture/include/static assertion 구간: MakeDefinition, MakeMixedDefinition tests/unit/analysis/analysis_model_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 06aad822bf2ade2c6877393bd23043babd0680f2b0dd2fb85a7f4cda1d5a6287 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/analysis_model_test.cpp support@148-149 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/analysis_model_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c4948f64c25c201003b0122f19efe90f365b9e8c9e4aeb1f21a6cffa974d706a 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/analysis_state_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/analysis/analysis_state_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fc1756cf35f167a555753a2b8ae5c3be3dec48e851ffb2d1a02003088024dbb1 cc752a188e4daa7862e6602271a728de64f67de407ab7e573e9f87380d2b5bbb 해당 없음 해당 없음 -Dev tests/unit/analysis/analysis_state_test.cpp AnalysisState.AllocatesOnlyV0FullVectors AnalysisState.AllocatesOnlyV0FullVectors; assertion 14개 tests/unit/analysis/analysis_state_test.cpp AnalysisState.AllocatesOnlyV0FullVectors 유지 원문 검사 body 및 assertion 동일. 42f5f3563e7bf05df3559cd1173b200e4625be35cbe6ebf91140bb4275cc7961 42f5f3563e7bf05df3559cd1173b200e4625be35cbe6ebf91140bb4275cc7961 ASSERT_EQ(dofs.FullDofCount(), 12U) | ASSERT_EQ(dofs.ConstrainedDofCount(), 6U) | EXPECT_EQ(vector->Size(), dofs.FullDofCount()) | EXPECT_NE(vectors[left]->Data(), vectors[right]->Data()) | EXPECT_DOUBLE_EQ(state.Displacement()[0], 4.0) | EXPECT_DOUBLE_EQ(state.Reaction()[11], -9.0) | EXPECT_DOUBLE_EQ(state.ExternalForce()[0], 0.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[0], 0.0) | EXPECT_DOUBLE_EQ(state.Residual()[0], 0.0) | EXPECT_FALSE(HasVelocity::value) | EXPECT_FALSE(HasAcceleration::value) | EXPECT_FALSE(HasTemperature::value) | EXPECT_FALSE(HasIterationHistory::value) | EXPECT_FALSE(HasNonlinearState::value) ASSERT_EQ(dofs.FullDofCount(), 12U) | ASSERT_EQ(dofs.ConstrainedDofCount(), 6U) | EXPECT_EQ(vector->Size(), dofs.FullDofCount()) | EXPECT_NE(vectors[left]->Data(), vectors[right]->Data()) | EXPECT_DOUBLE_EQ(state.Displacement()[0], 4.0) | EXPECT_DOUBLE_EQ(state.Reaction()[11], -9.0) | EXPECT_DOUBLE_EQ(state.ExternalForce()[0], 0.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[0], 0.0) | EXPECT_DOUBLE_EQ(state.Residual()[0], 0.0) | EXPECT_FALSE(HasVelocity::value) | EXPECT_FALSE(HasAcceleration::value) | EXPECT_FALSE(HasTemperature::value) | EXPECT_FALSE(HasIterationHistory::value) | EXPECT_FALSE(HasNonlinearState::value) -Dev tests/unit/analysis/analysis_state_test.cpp AnalysisState.CopiesOrMovesWithoutAliasing AnalysisState.CopiesOrMovesWithoutAliasing; assertion 17개 tests/unit/analysis/analysis_state_test.cpp AnalysisState.CopiesOrMovesWithoutAliasing 유지 원문 검사 body 및 assertion 동일. 20bcbe30286b42f64657a68599fd57793c882e3a0a1e6eab8a654ad6909dc75b 20bcbe30286b42f64657a68599fd57793c882e3a0a1e6eab8a654ad6909dc75b "EXPECT_NE(copied.Displacement().Data(), original.Displacement().Data()) | EXPECT_NE(copied.Reaction().Data(), original.Reaction().Data()) | EXPECT_NE(copied.EndpointResults().data(), original.EndpointResults().data()) | EXPECT_NE(copied.GaussResults().data(), original.GaussResults().data()) | EXPECT_NE(copied.StressResults().data(), original.StressResults().data()) | EXPECT_DOUBLE_EQ(original.Displacement()[0], 3.0) | EXPECT_DOUBLE_EQ(original.EndpointResults()[0].end_action[0], 1.0) | EXPECT_EQ(moved.Identity().step_name, ""Step-1"") | EXPECT_DOUBLE_EQ(moved.Displacement()[0], 30.0) | EXPECT_DOUBLE_EQ(moved.EndpointResults()[0].end_action[0], 20.0) | EXPECT_NE(moved.Displacement().Data(), original.Displacement().Data()) | EXPECT_NE(moved.EndpointResults().data(), original.EndpointResults().data()) | EXPECT_DOUBLE_EQ(original.Reaction()[11], -2.0) | EXPECT_EQ(copy_assigned.Identity().step_name, ""Step-1"") | EXPECT_EQ(move_assigned.Identity().step_name, ""Step-1"") | EXPECT_DOUBLE_EQ(move_assigned.Reaction()[11], -20.0) | EXPECT_NE(move_assigned.Reaction().Data(), original.Reaction().Data())" "EXPECT_NE(copied.Displacement().Data(), original.Displacement().Data()) | EXPECT_NE(copied.Reaction().Data(), original.Reaction().Data()) | EXPECT_NE(copied.EndpointResults().data(), original.EndpointResults().data()) | EXPECT_NE(copied.GaussResults().data(), original.GaussResults().data()) | EXPECT_NE(copied.StressResults().data(), original.StressResults().data()) | EXPECT_DOUBLE_EQ(original.Displacement()[0], 3.0) | EXPECT_DOUBLE_EQ(original.EndpointResults()[0].end_action[0], 1.0) | EXPECT_EQ(moved.Identity().step_name, ""Step-1"") | EXPECT_DOUBLE_EQ(moved.Displacement()[0], 30.0) | EXPECT_DOUBLE_EQ(moved.EndpointResults()[0].end_action[0], 20.0) | EXPECT_NE(moved.Displacement().Data(), original.Displacement().Data()) | EXPECT_NE(moved.EndpointResults().data(), original.EndpointResults().data()) | EXPECT_DOUBLE_EQ(original.Reaction()[11], -2.0) | EXPECT_EQ(copy_assigned.Identity().step_name, ""Step-1"") | EXPECT_EQ(move_assigned.Identity().step_name, ""Step-1"") | EXPECT_DOUBLE_EQ(move_assigned.Reaction()[11], -20.0) | EXPECT_NE(move_assigned.Reaction().Data(), original.Reaction().Data())" -Dev tests/unit/analysis/analysis_state_test.cpp support@1-83 helper/oracle/fixture/include/static assertion 구간: T, HasVelocity, HasAcceleration, HasTemperature, HasIterationHistory, HasNonlinearState, MakeDofs, ExpectAllZero tests/unit/analysis/analysis_state_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d26e13e59ba23688906ac1371820260a0ced12f4b89c06c777da7435bda0ebbd 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/analysis_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/analysis/analysis_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5ee75fcbd1bc5a9a634d16239720a814a8fee06b04acb0893a617d557fe8cda7 7fa4c3708ec692f95b5c230c7d7c36f1ef665363228d1d26eea41fe5560eedfd 해당 없음 해당 없음 -Dev tests/unit/analysis/analysis_test.cpp Analysis.PropagatesStatusAndDestroysThroughMinimalAnalysis Analysis.PropagatesStatusAndDestroysThroughMinimalAnalysis; assertion 7개 tests/unit/analysis/analysis_test.cpp Analysis.PropagatesStatusAndDestroysThroughMinimalAnalysis 유지 원문 검사 body 및 assertion 동일. 946fa72dea150d4bb8404a904b626c9d3037ae9eb3b765a68e288560e7b21975 946fa72dea150d4bb8404a904b626c9d3037ae9eb3b765a68e288560e7b21975 "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""analysis-test-failure"") | EXPECT_EQ(concrete_observer->Request().input_path, request.input_path) | EXPECT_EQ(concrete_observer->Request().output_path, request.output_path) | EXPECT_TRUE(destroyed)" "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""analysis-test-failure"") | EXPECT_EQ(concrete_observer->Request().input_path, request.input_path) | EXPECT_EQ(concrete_observer->Request().output_path, request.output_path) | EXPECT_TRUE(destroyed)" -Dev tests/unit/analysis/analysis_test.cpp support@1-40 helper/oracle/fixture/include/static assertion 구간: StatusAnalysis tests/unit/analysis/analysis_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5bebc48a355bf5e3306b1308047561d64e68a810108a4e8848f96ea0e1b97cd2 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/dynamic_analysis_state_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/analysis/dynamic_analysis_state_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cef74dec5c670c9ebe42f481a7a2ed4dfe3b3eecd14e28451e9433cb86c29a07 25e30b540c37be5c7699132ddf7c5da319a4a1bf3fb8988b054c8e9941ca594f 해당 없음 해당 없음 -Dev tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsUnknownOrChangingIntegrationFormulation DynamicAnalysisState.RejectsUnknownOrChangingIntegrationFormulation; assertion 6개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsUnknownOrChangingIntegrationFormulation 유지 원문 검사 body 및 assertion 동일. b299952d9c0f3e19395a6d489944cf36625188d909376ec71022cdfc3c04478e b299952d9c0f3e19395a6d489944cf36625188d909376ec71022cdfc3c04478e EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_TRUE(fixture.state.AcceptedFrames().empty()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(next).IsOk()) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), 1U) | EXPECT_TRUE(fixture.state.CommitAcceptedFrame(next).IsOk()) EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_TRUE(fixture.state.AcceptedFrames().empty()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(next).IsOk()) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), 1U) | EXPECT_TRUE(fixture.state.CommitAcceptedFrame(next).IsOk()) -Dev tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.DefaultStateRejectsTrialAndCommit DynamicAnalysisState.DefaultStateRejectsTrialAndCommit; assertion 7개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.DefaultStateRejectsTrialAndCommit 유지 원문 검사 body 및 assertion 동일. b4737286e2144fd021d33353dc82bdd2e178140858c8f7abd06756e0ce44a186 b4737286e2144fd021d33353dc82bdd2e178140858c8f7abd06756e0ce44a186 "EXPECT_FALSE(state.IsInitialized()) | EXPECT_TRUE(state.AcceptedFrames().empty()) | EXPECT_FALSE(state.BeginTrialFromCommitted().HasValue()) | EXPECT_THROW((void)state.CommittedState(), std::logic_error) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-invalid-state"")" "EXPECT_FALSE(state.IsInitialized()) | EXPECT_TRUE(state.AcceptedFrames().empty()) | EXPECT_FALSE(state.BeginTrialFromCommitted().HasValue()) | EXPECT_THROW((void)state.CommittedState(), std::logic_error) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-invalid-state"")" -Dev tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.CommitsCompleteZeroCorrectionHistoryAndCopiesTrials DynamicAnalysisState.CommitsCompleteZeroCorrectionHistoryAndCopiesTrials; assertion 11개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.CommitsCompleteZeroCorrectionHistoryAndCopiesTrials 유지 원문 검사 body 및 assertion 동일. 6724599255887b6bf6c6e95acb67cf1a050081f3bbb2af3617e3abd7d2c2f4be 6724599255887b6bf6c6e95acb67cf1a050081f3bbb2af3617e3abd7d2c2f4be EXPECT_TRUE(fixture.state.IsInitialized()) | EXPECT_FALSE(fixture.state.BeginTrialFromCommitted().HasValue()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().reaction[2U], -4.0) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), index + 1U) | ASSERT_TRUE(trial.HasValue()) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().generalized_coordinates[0U], 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState() .shell_results[0U] .stress[0U] .components[0U], 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().time, 0.5) | EXPECT_FALSE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 3U)).IsOk()) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), 3U) EXPECT_TRUE(fixture.state.IsInitialized()) | EXPECT_FALSE(fixture.state.BeginTrialFromCommitted().HasValue()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().reaction[2U], -4.0) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), index + 1U) | ASSERT_TRUE(trial.HasValue()) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().generalized_coordinates[0U], 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState() .shell_results[0U] .stress[0U] .components[0U], 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().time, 0.5) | EXPECT_FALSE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 3U)).IsOk()) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), 3U) -Dev tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsMalformedInventoryScheduleAndPreservesEndpoint DynamicAnalysisState.RejectsMalformedInventoryScheduleAndPreservesEndpoint; assertion 8개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsMalformedInventoryScheduleAndPreservesEndpoint 유지 원문 검사 body 및 assertion 동일. ebf23f327fb58c09d0aa92da9d41f6059c31e1ff89f221511925e93e12b65922 ebf23f327fb58c09d0aa92da9d41f6059c31e1ff89f221511925e93e12b65922 "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-invalid-state"") | ASSERT_EQ(fixture.state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().time, 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().reaction[2U], -4.0) | EXPECT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 1U)).IsOk())" "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-invalid-state"") | ASSERT_EQ(fixture.state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().time, 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().reaction[2U], -4.0) | EXPECT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 1U)).IsOk())" -Dev tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsInvalidInitialStateAndFreeReaction DynamicAnalysisState.RejectsInvalidInitialStateAndFreeReaction; assertion 6개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsInvalidInitialStateAndFreeReaction 유지 원문 검사 body 및 assertion 동일. 7651255fed1f126aeef752981e055c05207296c59c2ea57c8ece5b759bf5050e 7651255fed1f126aeef752981e055c05207296c59c2ea57c8ece5b759bf5050e EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_TRUE(fixture.state.AcceptedFrames().empty()) | EXPECT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_TRUE(fixture.state.AcceptedFrames().empty()) | EXPECT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) -Dev tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.CreateRejectsInvalidScheduleAndNonzeroBoundary DynamicAnalysisState.CreateRejectsInvalidScheduleAndNonzeroBoundary; assertion 4개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.CreateRejectsInvalidScheduleAndNonzeroBoundary 유지 원문 검사 body 및 assertion 동일. bbfb29c502216154504e82bbab6dc0df768128bc6ce0543958c4637ea1f32ef6 bbfb29c502216154504e82bbab6dc0df768128bc6ce0543958c4637ea1f32ef6 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_FALSE( fesa::DynamicAnalysisState::Create(domain.Value(), dofs.Value()) .HasValue()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_FALSE( fesa::DynamicAnalysisState::Create(domain.Value(), dofs.Value()) .HasValue()) -Dev tests/unit/analysis/dynamic_analysis_state_test.cpp support@1-142 helper/oracle/fixture/include/static assertion 구간: MakeDefinition, if, Fixture, MakeFixture, MakeFrame tests/unit/analysis/dynamic_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7a11e3f45e7410305d59981204ce69f453199fac55bfeaf62d2a5c8e6c409fa2 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/dynamic_analysis_state_test.cpp support@321-322 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/dynamic_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/eigen_mass_assembly_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/analysis/eigen_mass_assembly_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8489602024286b7c66c26750ecbf627d361b893fa9083c7d2dd97d34bbe3c25e 8489602024286b7c66c26750ecbf627d361b893fa9083c7d2dd97d34bbe3c25e 해당 없음 해당 없음 -Dev tests/unit/analysis/eigen_mass_assembly_test.cpp EigenMassAssembly.ScattersHeterogeneousSharedNodeMassInSourceOrder EigenMassAssembly.ScattersHeterogeneousSharedNodeMassInSourceOrder; assertion 9개 tests/unit/analysis/eigen_mass_assembly_test.cpp EigenMassAssembly.ScattersHeterogeneousSharedNodeMassInSourceOrder 유지 원문 검사 body 및 assertion 동일. 6d9e4d731b921c8e3a160847675ebe72b28977b65f3abdee8fc959a4a183b62f 6d9e4d731b921c8e3a160847675ebe72b28977b65f3abdee8fc959a4a183b62f ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(expected.HasValue()) | EXPECT_LE(std::abs(expected.Value().mass - analytic_shared_rotary_mass) / analytic_shared_rotary_mass, 1e-12) | ASSERT_TRUE(state.HasValue()) | ASSERT_EQ(state.Value().free_dof_count, 1U) | ASSERT_EQ(state.Value().modes.size(), 1U) | EXPECT_LE(std::abs(state.Value().modes[0U].eigenvalue - expected_eigenvalue) / (std::abs(state.Value().modes[0U].eigenvalue) + std::abs(expected_eigenvalue)), 1e-12) | EXPECT_LE(std::abs(amplitude * amplitude * analytic_shared_rotary_mass - 1.0), 1e-12) | EXPECT_NEAR(eigenvalues[0U], eigenvalues[1U], 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(expected.HasValue()) | EXPECT_LE(std::abs(expected.Value().mass - analytic_shared_rotary_mass) / analytic_shared_rotary_mass, 1e-12) | ASSERT_TRUE(state.HasValue()) | ASSERT_EQ(state.Value().free_dof_count, 1U) | ASSERT_EQ(state.Value().modes.size(), 1U) | EXPECT_LE(std::abs(state.Value().modes[0U].eigenvalue - expected_eigenvalue) / (std::abs(state.Value().modes[0U].eigenvalue) + std::abs(expected_eigenvalue)), 1e-12) | EXPECT_LE(std::abs(amplitude * amplitude * analytic_shared_rotary_mass - 1.0), 1e-12) | EXPECT_NEAR(eigenvalues[0U], eigenvalues[1U], 1e-12) -Dev tests/unit/analysis/eigen_mass_assembly_test.cpp support@1-148 helper/oracle/fixture/include/static assertion 구간: StatusText, SharedNodeDomain, SharedDofPencil, DirectSharedDofPencil tests/unit/analysis/eigen_mass_assembly_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 53cc183efe17e5050e7ea520df0757fe7dfdc9eba5668b6a1a2bcb51ae107667 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/eigen_mass_assembly_test.cpp support@179-180 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/eigen_mass_assembly_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/eigen_reduction_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/analysis/eigen_reduction_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8b9ae7711b40d67884aa28e863e458d968ae4d5c717e00034405aced6bddc9bb deeb284988187961964b2a213d19e3b2655f399294debdc175e43be75dada796 해당 없음 해당 없음 -Dev tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.KeepsPositivePartialGlobalRotationAndOriginalPencil EigenReduction.KeepsPositivePartialGlobalRotationAndOriginalPencil; assertion 6개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.KeepsPositivePartialGlobalRotationAndOriginalPencil 유지 원문 검사 body 및 assertion 동일. 399fa920a441080dca52e78288f339ef61c0a5a2ffd35eac3374a02d2732c42a 399fa920a441080dca52e78288f339ef61c0a5a2ffd35eac3374a02d2732c42a ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 0U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 1U) | EXPECT_NEAR(result.Value().whitened_operator.Values()[0], 10369.0 / 450.0, 1e-12) | EXPECT_DOUBLE_EQ(y[i], 0.0) | EXPECT_NEAR(y[5U] * y[5U] * (3.0 / 50.0), 1.0, 1e-12) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 0U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 1U) | EXPECT_NEAR(result.Value().whitened_operator.Values()[0], 10369.0 / 450.0, 1e-12) | EXPECT_DOUBLE_EQ(y[i], 0.0) | EXPECT_NEAR(y[5U] * y[5U] * (3.0 / 50.0), 1.0, 1e-12) -Dev tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.RemovesOnlyActualFreeDirectorNull EigenReduction.RemovesOnlyActualFreeDirectorNull; assertion 7개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.RemovesOnlyActualFreeDirectorNull 유지 원문 검사 body 및 assertion 동일. 471fdf9ca8aeae5af42703e726987365971308fc83bc8104410a6a1840e1082a 471fdf9ca8aeae5af42703e726987365971308fc83bc8104410a6a1840e1082a ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().free_count, 6U) | EXPECT_EQ(result.Value().null_count, 1U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 5U) | EXPECT_NEAR(action[i], 7.0, 1e-12) | EXPECT_LE(result.Value().eta_kz, 1e-12) | EXPECT_FALSE(fesa::eigen_internal::BuildEigenReduction( Sparse(stiffness), {mass}, {frame}, std::vector(6U, 0U), {0.25}, 2.0) .HasValue()) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().free_count, 6U) | EXPECT_EQ(result.Value().null_count, 1U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 5U) | EXPECT_NEAR(action[i], 7.0, 1e-12) | EXPECT_LE(result.Value().eta_kz, 1e-12) | EXPECT_FALSE(fesa::eigen_internal::BuildEigenReduction( Sparse(stiffness), {mass}, {frame}, std::vector(6U, 0U), {0.25}, 2.0) .HasValue()) -Dev tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.RejectsNonfiniteUsedBasisAndPreservesPriorCandidate EigenReduction.RejectsNonfiniteUsedBasisAndPreservesPriorCandidate; assertion 7개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.RejectsNonfiniteUsedBasisAndPreservesPriorCandidate 유지 원문 검사 body 및 assertion 동일. 17b15f6df7d9d73d6c12f13f053f2e1efa72c49bfff52c6f4dcbbfbcdc2c45c7 17b15f6df7d9d73d6c12f13f053f2e1efa72c49bfff52c6f4dcbbfbcdc2c45c7 "ASSERT_TRUE(prior.HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Category(), fesa::FailureCategory::kSolver) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].code, ""invalid-eigen-mass-space"") | EXPECT_EQ(prior.Value().whitened_operator.Values(), prior_values) | ASSERT_TRUE(rerun.HasValue()) | EXPECT_EQ(rerun.Value().whitened_operator.Values(), prior_values)" "ASSERT_TRUE(prior.HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Category(), fesa::FailureCategory::kSolver) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].code, ""invalid-eigen-mass-space"") | EXPECT_EQ(prior.Value().whitened_operator.Values(), prior_values) | ASSERT_TRUE(rerun.HasValue()) | EXPECT_EQ(rerun.Value().whitened_operator.Values(), prior_values)" -Dev tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.RejectsPositiveButUnresolvableMassWithoutDeletingDofs EigenReduction.RejectsPositiveButUnresolvableMassWithoutDeletingDofs; assertion 2개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.RejectsPositiveButUnresolvableMassWithoutDeletingDofs 유지 원문 검사 body 및 assertion 동일. f6d11adf25938f2049286ead08de4b4714864ca4b1322e18bf3633bcf7854c31 f6d11adf25938f2049286ead08de4b4714864ca4b1322e18bf3633bcf7854c31 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""eigen-mass-conditioning"")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""eigen-mass-conditioning"")" -Dev tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.WhitensOffDiagonalMassAndRestoresOriginalPencil EigenReduction.WhitensOffDiagonalMassAndRestoresOriginalPencil; assertion 7개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.WhitensOffDiagonalMassAndRestoresOriginalPencil 유지 원문 검사 body 및 assertion 동일. b5a7c3d712f378cd6568ccd879c6c7390686b963b0528af91c9a20bf8353e277 b5a7c3d712f378cd6568ccd879c6c7390686b963b0528af91c9a20bf8353e277 ASSERT_TRUE(reduction.HasValue()) | ASSERT_TRUE(eigen.HasValue()) | ASSERT_EQ(eigen.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(eigen.Value().eigenvalues[0], 2.0, 1e-12) | EXPECT_NEAR(eigen.Value().eigenvalues[1], 10.0 / 3.0, 1e-12) | EXPECT_NEAR(q.Dot(mq), 1.0, 1e-12) | EXPECT_LE(residual.Norm(), 1e-12) ASSERT_TRUE(reduction.HasValue()) | ASSERT_TRUE(eigen.HasValue()) | ASSERT_EQ(eigen.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(eigen.Value().eigenvalues[0], 2.0, 1e-12) | EXPECT_NEAR(eigen.Value().eigenvalues[1], 10.0 / 3.0, 1e-12) | EXPECT_NEAR(q.Dot(mq), 1.0, 1e-12) | EXPECT_LE(residual.Norm(), 1e-12) -Dev tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.PreservesSmallResolvablePositivePartialRotationMass EigenReduction.PreservesSmallResolvablePositivePartialRotationMass; assertion 4개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.PreservesSmallResolvablePositivePartialRotationMass 유지 원문 검사 body 및 assertion 동일. aff919e78c5664fb5231773c44978a9d7cbf02ee6f62c4a2a94d2abb33948434 aff919e78c5664fb5231773c44978a9d7cbf02ee6f62c4a2a94d2abb33948434 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 0U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 5U) | EXPECT_GE(result.Value().nodes[0].record.rcond_inf, 0x1p-32) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 0U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 5U) | EXPECT_GE(result.Value().nodes[0].record.rcond_inf, 0x1p-32) -Dev tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.HandlesTwoFreeRotationsAndRejectsEmptyFiniteSpace EigenReduction.HandlesTwoFreeRotationsAndRejectsEmptyFiniteSpace; assertion 7개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.HandlesTwoFreeRotationsAndRejectsEmptyFiniteSpace 유지 원문 검사 body 및 assertion 동일. 9291ee1eebaa0910609397a4c53ac7f706ee44b9c19994ed2c1976a7c0e8befe 9291ee1eebaa0910609397a4c53ac7f706ee44b9c19994ed2c1976a7c0e8befe "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 1U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 1U) | EXPECT_FALSE(fesa::eigen_internal::BuildEigenReduction( Sparse(stiffness), {mass}, {frame}, mask, {0.25}, 1.0) .HasValue()) | ASSERT_FALSE(empty.HasValue()) | EXPECT_EQ(empty.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_EQ(empty.GetStatus().Diagnostics()[0].code, ""empty-eigenproblem"")" "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 1U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 1U) | EXPECT_FALSE(fesa::eigen_internal::BuildEigenReduction( Sparse(stiffness), {mass}, {frame}, mask, {0.25}, 1.0) .HasValue()) | ASSERT_FALSE(empty.HasValue()) | EXPECT_EQ(empty.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_EQ(empty.GetStatus().Diagnostics()[0].code, ""empty-eigenproblem"")" -Dev tests/unit/analysis/eigen_reduction_test.cpp support@1-51 helper/oracle/fixture/include/static assertion 구간: Sparse, NodalMass, TiltedFrame tests/unit/analysis/eigen_reduction_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f10d759cbbc50f34e2d035e0f584c041ad24aa29fd15de0651681519ec5258b5 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 20개 tests/unit/analysis/hht_dynamic_algebra_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. dc1a43a08e360283baf9701bf5a2839a21d561397d4ad732c921b31a10cf570e e926831b44741880a7a729c57266c668eeeccc9130be07eacdb97c5330338ad2 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidPredictorPreservesRatesFixedDofsAndOldState HhtNewtonStart.ValidPredictorPreservesRatesFixedDofsAndOldState; assertion 16개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidPredictorPreservesRatesFixedDofsAndOldState 유지 원문 검사 body 및 assertion 동일. 83ff51b06a72feea0d70aa1de3e1d8fa07f7128d4c4194861b5bb148ba8813f9 83ff51b06a72feea0d70aa1de3e1d8fa07f7128d4c4194861b5bb148ba8813f9 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_GT(frame.generalized_coordinates[2U], 0.0) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], predictor.coordinates[i]) | EXPECT_DOUBLE_EQ(frame.velocity[i], predictor.velocity[i]) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], parameters.alpha * old.acceleration[i] / (1.0 + parameters.alpha)) | EXPECT_DOUBLE_EQ(old.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.velocity[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(old.velocity[2U], 0.2) | EXPECT_DOUBLE_EQ(old.acceleration[2U], 0.3) | EXPECT_EQ(old.iteration_count, 7U) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_GT(frame.generalized_coordinates[2U], 0.0) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], predictor.coordinates[i]) | EXPECT_DOUBLE_EQ(frame.velocity[i], predictor.velocity[i]) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], parameters.alpha * old.acceleration[i] / (1.0 + parameters.alpha)) | EXPECT_DOUBLE_EQ(old.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.velocity[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(old.velocity[2U], 0.2) | EXPECT_DOUBLE_EQ(old.acceleration[2U], 0.3) | EXPECT_EQ(old.iteration_count, 7U) -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.InvalidPredictorGeometryUsesUnchangedAcceptedCoordinates HhtNewtonStart.InvalidPredictorGeometryUsesUnchangedAcceptedCoordinates; assertion 6개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.InvalidPredictorGeometryUsesUnchangedAcceptedCoordinates 유지 원문 검사 body 및 assertion 동일. 7f1ecc04486786cb084db0832cdaf162e71ddcf7e8ad02c3193dbb36d5d195f3 7f1ecc04486786cb084db0832cdaf162e71ddcf7e8ad02c3193dbb36d5d195f3 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(old.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(start.Value().frame.algorithmic_acceleration[i], auxiliary) | EXPECT_DOUBLE_EQ(start.Value().frame.acceleration[i], auxiliary / (1.0 + parameters.alpha)) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(old.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(start.Value().frame.algorithmic_acceleration[i], auxiliary) | EXPECT_DOUBLE_EQ(start.Value().frame.acceleration[i], auxiliary / (1.0 + parameters.alpha)) -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidChartRateOverflowIsNotReplacedByAcceptedGeometry HhtNewtonStart.ValidChartRateOverflowIsNotReplacedByAcceptedGeometry; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidChartRateOverflowIsNotReplacedByAcceptedGeometry 유지 원문 검사 body 및 assertion 동일. 52556a58a35b9a39362efc3fd2fff266da52dea44cfdea0e89c4c1c288705fee 52556a58a35b9a39362efc3fd2fff266da52dea44cfdea0e89c4c1c288705fee "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-dynamic-rotation"")" "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-dynamic-rotation"")" -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.LaterOutsideChartNodeDoesNotHideEarlierRateOverflow HhtNewtonStart.LaterOutsideChartNodeDoesNotHideEarlierRateOverflow; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.LaterOutsideChartNodeDoesNotHideEarlierRateOverflow 유지 원문 검사 body 및 assertion 동일. 30d8bdf6512795f74fb1e1322a2a7266e83e2545f10f4cc95ecde8c83530594e 30d8bdf6512795f74fb1e1322a2a7266e83e2545f10f4cc95ecde8c83530594e "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-dynamic-rotation"")" "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-dynamic-rotation"")" -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.UsesTheExistingPrincipalChartMarginForInitialSelection HhtNewtonStart.UsesTheExistingPrincipalChartMarginForInitialSelection; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.UsesTheExistingPrincipalChartMarginForInitialSelection 유지 원문 검사 body 및 assertion 동일. aad0befacc29ae3638004bedd9fcd0c4a0be3dcd89ec1c4a5f2b4ff45d505b57 aad0befacc29ae3638004bedd9fcd0c4a0be3dcd89ec1c4a5f2b4ff45d505b57 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], inside ? predictor.coordinates[5U] : 0.0) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], inside ? predictor.coordinates[5U] : 0.0) -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.CommonEnergyScalingSelectsTheSmallerFreeResidual HhtNewtonStart.CommonEnergyScalingSelectsTheSmallerFreeResidual; assertion 5개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.CommonEnergyScalingSelectsTheSmallerFreeResidual 유지 원문 검사 body 및 assertion 동일. c81160bc3e25344f04144572f3efb18f086dfca03dab2442ab766da8e00fbb69 c81160bc3e25344f04144572f3efb18f086dfca03dab2442ab766da8e00fbb69 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(evaluated.HasValue()) | ASSERT_GT(drill_residual, 0.0) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], 0.25) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(evaluated.HasValue()) | ASSERT_GT(drill_residual, 0.0) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], 0.25) -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ConstrainedReactionDoesNotChangeNontrivialFreeResidualTie HhtNewtonStart.ConstrainedReactionDoesNotChangeNontrivialFreeResidualTie; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ConstrainedReactionDoesNotChangeNontrivialFreeResidualTie 유지 원문 검사 body 및 assertion 동일. 82af7082c22c2e465b2b74e21b3fab82eebce0a797ce924fb0e62a7a6e4b8977 82af7082c22c2e465b2b74e21b3fab82eebce0a797ce924fb0e62a7a6e4b8977 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(evaluated.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], 0.25) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(evaluated.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], 0.25) -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ScaledResidualOverflowRemainsAFailure HhtNewtonStart.ScaledResidualOverflowRemainsAFailure; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ScaledResidualOverflowRemainsAFailure 유지 원문 검사 body 및 assertion 동일. db53879667603238b22caad54b437d6e9355b60a01d62fcc5895c0ea29bd2206 db53879667603238b22caad54b437d6e9355b60a01d62fcc5895c0ea29bd2206 "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.AcceptedStartArithmeticFailureIsNotIgnoredDuringComparison HhtNewtonStart.AcceptedStartArithmeticFailureIsNotIgnoredDuringComparison; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.AcceptedStartArithmeticFailureIsNotIgnoredDuringComparison 유지 원문 검사 body 및 assertion 동일. ae45e703f39d5173207289f5bac55b10d4912d7faaeb7e31b0828c6c3d84bd59 ae45e703f39d5173207289f5bac55b10d4912d7faaeb7e31b0828c6c3d84bd59 "ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(valid_predictor.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" "ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(valid_predictor.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.RejectedPredictorDoesNotHideInvalidAcceptedStartRates HhtNewtonStart.RejectedPredictorDoesNotHideInvalidAcceptedStartRates; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.RejectedPredictorDoesNotHideInvalidAcceptedStartRates 유지 원문 검사 body 및 assertion 동일. 87af7acedf54a8bacd7dc709d4cf98bab2e8dd55c6033d7decfc9edf545cd69e 87af7acedf54a8bacd7dc709d4cf98bab2e8dd55c6033d7decfc9edf545cd69e "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"") | EXPECT_DOUBLE_EQ(old.generalized_coordinates[5U], 0.0)" "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"") | EXPECT_DOUBLE_EQ(old.generalized_coordinates[5U], 0.0)" -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidGeometryStressOverflowRemainsARecoveryFailure HhtNewtonStart.ValidGeometryStressOverflowRemainsARecoveryFailure; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidGeometryStressOverflowRemainsARecoveryFailure 유지 원문 검사 body 및 assertion 동일. 608c3757178a373edae163916eb616d060f80ed87e569f1a747ef533fba5e841 608c3757178a373edae163916eb616d060f80ed87e569f1a747ef533fba5e841 "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-nonlinear-shell-recovery"")" "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-nonlinear-shell-recovery"")" -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.InitializesCoupledMasslessAccelerationFromHiddenEquation HhtDynamicAlgebra.InitializesCoupledMasslessAccelerationFromHiddenEquation; assertion 10개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.InitializesCoupledMasslessAccelerationFromHiddenEquation 유지 원문 검사 body 및 assertion 동일. dca81e4f5956f5fd2a869a3a5b03c9e15df863b98e40c9cf8489678b3d516a02 dca81e4f5956f5fd2a869a3a5b03c9e15df863b98e40c9cf8489678b3d516a02 ASSERT_TRUE(acceleration.HasValue()) | EXPECT_NEAR(acceleration.Value()[0], 1.0, 1.0e-12) | EXPECT_NEAR(acceleration.Value()[5], 0.7, 1.0e-12) | EXPECT_EQ(acceleration.Value()[full], 0.0) | ASSERT_EQ(nodes, std::vector{0U}) | EXPECT_TRUE(fesa::hht_internal::CompleteConstraintEvidence( *fixture.domain, fixture.dofs, assembly, 2.0, nodes, positive, tangent, &frame) .IsOk()) | ASSERT_EQ(frame.hidden_acceleration_defect.Size(), 1U) | EXPECT_NEAR(frame.hidden_acceleration_defect[0], 0.0, 1.0e-12) | EXPECT_GT(frame.hidden_acceleration_defect_scale[0], 0.0) | EXPECT_FALSE(pseudoinverse.IsOk()) ASSERT_TRUE(acceleration.HasValue()) | EXPECT_NEAR(acceleration.Value()[0], 1.0, 1.0e-12) | EXPECT_NEAR(acceleration.Value()[5], 0.7, 1.0e-12) | EXPECT_EQ(acceleration.Value()[full], 0.0) | ASSERT_EQ(nodes, std::vector{0U}) | EXPECT_TRUE(fesa::hht_internal::CompleteConstraintEvidence( *fixture.domain, fixture.dofs, assembly, 2.0, nodes, positive, tangent, &frame) .IsOk()) | ASSERT_EQ(frame.hidden_acceleration_defect.Size(), 1U) | EXPECT_NEAR(frame.hidden_acceleration_defect[0], 0.0, 1.0e-12) | EXPECT_GT(frame.hidden_acceleration_defect_scale[0], 0.0) | EXPECT_FALSE(pseudoinverse.IsOk()) -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsMissingCanonicalHiddenGradient HhtDynamicAlgebra.RejectsMissingCanonicalHiddenGradient; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsMissingCanonicalHiddenGradient 유지 원문 검사 body 및 assertion 동일. 74a7c54d874d6dc0045725cdb30a80de28ba7e3bfb9624462ed9234575436bbd 74a7c54d874d6dc0045725cdb30a80de28ba7e3bfb9624462ed9234575436bbd "ASSERT_FALSE(acceleration.HasValue()) | ASSERT_FALSE(acceleration.GetStatus().Diagnostics().empty()) | EXPECT_EQ(acceleration.GetStatus().Diagnostics().front().code, ""dynamic-algebraic-gradient"")" "ASSERT_FALSE(acceleration.HasValue()) | ASSERT_FALSE(acceleration.GetStatus().Diagnostics().empty()) | EXPECT_EQ(acceleration.GetStatus().Diagnostics().front().code, ""dynamic-algebraic-gradient"")" -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.ChecksInitialConstraintAndVelocityWithoutRepair HhtDynamicAlgebra.ChecksInitialConstraintAndVelocityWithoutRepair; assertion 2개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.ChecksInitialConstraintAndVelocityWithoutRepair 유지 원문 검사 body 및 assertion 동일. 1f8d68dac0766ed6cfd75b6e55633612751022e7d9c6e8f77d67c06a694973a4 1f8d68dac0766ed6cfd75b6e55633612751022e7d9c6e8f77d67c06a694973a4 EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, inconsistent, 2.0, positive, tangent) .HasValue()) | EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, inconsistent, 2.0, positive, tangent) .HasValue()) EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, inconsistent, 2.0, positive, tangent) .HasValue()) | EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, inconsistent, 2.0, positive, tangent) .HasValue()) -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.KeepsAcceptedHiddenRateDefectsAsDiagnostics HhtDynamicAlgebra.KeepsAcceptedHiddenRateDefectsAsDiagnostics; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.KeepsAcceptedHiddenRateDefectsAsDiagnostics 유지 원문 검사 body 및 assertion 동일. b6656cadbd8eff4fe59cb6e649da8b73f332d6371a24e089e51a502fd701812a b6656cadbd8eff4fe59cb6e649da8b73f332d6371a24e089e51a502fd701812a ASSERT_TRUE(result.IsOk()) | EXPECT_NEAR(frame.hidden_velocity_defect[0], 0.3, 1.0e-12) | EXPECT_NEAR(frame.hidden_acceleration_defect[0], -0.6, 1.0e-12) ASSERT_TRUE(result.IsOk()) | EXPECT_NEAR(frame.hidden_velocity_defect[0], 0.3, 1.0e-12) | EXPECT_NEAR(frame.hidden_acceleration_defect[0], -0.6, 1.0e-12) -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsNegativePhysicalMassAndAlgebraicRankLoss HhtDynamicAlgebra.RejectsNegativePhysicalMassAndAlgebraicRankLoss; assertion 2개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsNegativePhysicalMassAndAlgebraicRankLoss 유지 원문 검사 body 및 assertion 동일. 78d8a27b28858536af53be59122d7afd794a448f30eee56de369e82b20ecb0a8 78d8a27b28858536af53be59122d7afd794a448f30eee56de369e82b20ecb0a8 EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, negative, 2.0, positive, tangent) .HasValue()) | EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, singular, 2.0, positive, tangent) .HasValue()) EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, negative, 2.0, positive, tangent) .HasValue()) | EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, singular, 2.0, positive, tangent) .HasValue()) -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.AppliesTheExactRegularityConditionBoundary HhtDynamicAlgebra.AppliesTheExactRegularityConditionBoundary; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.AppliesTheExactRegularityConditionBoundary 유지 원문 검사 body 및 assertion 동일. 6c6023800e47f2dee4b1e70509312f6286db2bb011b24117d285dca77fb219e3 6c6023800e47f2dee4b1e70509312f6286db2bb011b24117d285dca77fb219e3 "EXPECT_EQ(result.HasValue(), exponent <= 32) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""dynamic-algebraic-conditioning"")" "EXPECT_EQ(result.HasValue(), exponent <= 32) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""dynamic-algebraic-conditioning"")" -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.AllFixedModelHasAnEmptyValidAccelerationSolve HhtDynamicAlgebra.AllFixedModelHasAnEmptyValidAccelerationSolve; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.AllFixedModelHasAnEmptyValidAccelerationSolve 유지 원문 검사 body 및 assertion 동일. b46d03f9802058ea1af7e6fb69903168a20526878111f1e1994389b609273c36 b46d03f9802058ea1af7e6fb69903168a20526878111f1e1994389b609273c36 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().Norm(), 0.0) | EXPECT_TRUE(fesa::hht_internal::CompleteConstraintEvidence( *fixture.domain, fixture.dofs, assembly, 2.0, {}, positive, tangent, &frame) .IsOk()) | EXPECT_EQ(frame.hidden_constraint.Size(), 0U) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().Norm(), 0.0) | EXPECT_TRUE(fesa::hht_internal::CompleteConstraintEvidence( *fixture.domain, fixture.dofs, assembly, 2.0, {}, positive, tangent, &frame) .IsOk()) | EXPECT_EQ(frame.hidden_constraint.Size(), 0U) -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.PartialBoundaryRetainsEveryNonzeroPhysicalDirection HhtDynamicAlgebra.PartialBoundaryRetainsEveryNonzeroPhysicalDirection; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.PartialBoundaryRetainsEveryNonzeroPhysicalDirection 유지 원문 검사 body 및 assertion 동일. 7d72f765cafbf817a9f26d9f8abd9d654664b17589b1824d0bdc885f35ffd953 7d72f765cafbf817a9f26d9f8abd9d654664b17589b1824d0bdc885f35ffd953 "EXPECT_EQ(nodes.size(), p == 0.0 ? 1U : 0U) | EXPECT_EQ(result.HasValue(), expected) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""dynamic-positive-mass-conditioning"")" "EXPECT_EQ(nodes.size(), p == 0.0 ? 1U : 0U) | EXPECT_EQ(result.HasValue(), expected) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""dynamic-positive-mass-conditioning"")" -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsAdmissibleNullRankChangeBeforeAcceptingFrame HhtDynamicAlgebra.RejectsAdmissibleNullRankChangeBeforeAcceptingFrame; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsAdmissibleNullRankChangeBeforeAcceptingFrame 유지 원문 검사 body 및 assertion 동일. 614b49ef2166dc30907a57a85d9ecada764ca8a1864a6c55562c7e645b410611 614b49ef2166dc30907a57a85d9ecada764ca8a1864a6c55562c7e645b410611 "ASSERT_EQ(initial_nodes.size(), 1U) | ASSERT_FALSE(result.IsOk()) | EXPECT_EQ(result.Diagnostics()[0].code, ""dynamic-mass-null-rank-change"") | EXPECT_EQ(frame.hidden_constraint[0], 23.0)" "ASSERT_EQ(initial_nodes.size(), 1U) | ASSERT_FALSE(result.IsOk()) | EXPECT_EQ(result.Diagnostics()[0].code, ""dynamic-mass-null-rank-change"") | EXPECT_EQ(frame.hidden_constraint[0], 23.0)" -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp support@1-161 helper/oracle/fixture/include/static assertion 구간: Fixture, MakeFixture, if, Sparse, Assembly, EmptyTrial tests/unit/analysis/hht_dynamic_algebra_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b54e2c2f814694abbd26a1b4accdd404cb99fbcdb05093dd7f89602ee20ba702 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp support@671-672 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_dynamic_algebra_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_dynamic_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/analysis/hht_dynamic_procedure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c6f5b9faf1cca0ae80f587dc0b07dde9513b35303ee69d7bbb126583df98423b 7b16fff8a3edd6482b56b0c6ac02cbac5b292aecb05c82d51ac460f691befd3a 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.ClampedStepLoadHasPhysicalReactionAndZeroMotion HhtDynamicProcedure.ClampedStepLoadHasPhysicalReactionAndZeroMotion; assertion 13개 tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.ClampedStepLoadHasPhysicalReactionAndZeroMotion 유지 원문 검사 body 및 assertion 동일. af10ef2634dd693ac1345389ffd20c559b5cab842c16135d6ee600f40b749c52 af10ef2634dd693ac1345389ffd20c559b5cab842c16135d6ee600f40b749c52 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 3U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.reaction[2U], -4.0) | EXPECT_DOUBLE_EQ(frame.external_force[2U], 4.0) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.energy_defect, 0.0) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0.0) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 3U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.reaction[2U], -4.0) | EXPECT_DOUBLE_EQ(frame.external_force[2U], 4.0) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.energy_defect, 0.0) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0.0) -Dev tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.UnloadedFreeChannelsRemainExactlyAtRest HhtDynamicProcedure.UnloadedFreeChannelsRemainExactlyAtRest; assertion 13개 tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.UnloadedFreeChannelsRemainExactlyAtRest 유지 원문 검사 body 및 assertion 동일. 16d814c3946a314c5b19636f0dda7cbe9d6c7702feaf70a007d2e9546e81ab56 16d814c3946a314c5b19636f0dda7cbe9d6c7702feaf70a007d2e9546e81ab56 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 3U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ((*values)[i], 0.0) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.drilling_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.energy_defect, 0.0) | EXPECT_DOUBLE_EQ(metric, 0.0) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 3U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ((*values)[i], 0.0) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.drilling_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.energy_defect, 0.0) | EXPECT_DOUBLE_EQ(metric, 0.0) -Dev tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.LargeDirectStepStartsFromAcceptedGeometry HhtDynamicProcedure.LargeDirectStepStartsFromAcceptedGeometry; assertion 10개 tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.LargeDirectStepStartsFromAcceptedGeometry 유지 원문 검사 body 및 assertion 동일. 03acc1280ba57f65c34c10dcee9d444861d413107a82328c271e8affa1349c9e 03acc1280ba57f65c34c10dcee9d444861d413107a82328c271e8affa1349c9e ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GT( std::abs(result.Value().state.AcceptedFrames()[0U].acceleration[14U]), 1e5) | EXPECT_LT(result.Value().state.CommittedState().generalized_coordinates[14U], 0.0) | EXPECT_LE(metric, 1e-10) | EXPECT_GT(result.Value().state.CommittedState().iteration_count, 0U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[dof], (1.0 + alpha) * frame.acceleration[dof] - alpha * frames[frame_index - 1U].acceleration[dof]) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GT( std::abs(result.Value().state.AcceptedFrames()[0U].acceleration[14U]), 1e5) | EXPECT_LT(result.Value().state.CommittedState().generalized_coordinates[14U], 0.0) | EXPECT_LE(metric, 1e-10) | EXPECT_GT(result.Value().state.CommittedState().iteration_count, 0U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[dof], (1.0 + alpha) * frame.acceleration[dof] - alpha * frames[frame_index - 1U].acceleration[dof]) -Dev tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.PreservesBackendCauseAndAddsInitialFailureContext HhtDynamicProcedure.PreservesBackendCauseAndAddsInitialFailureContext; assertion 13개 tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.PreservesBackendCauseAndAddsInitialFailureContext 유지 원문 검사 body 및 assertion 동일. b869904675bfc24f3eff1a042534df660eca2c47b484a361461060c349de2e1f b869904675bfc24f3eff1a042534df660eca2c47b484a361461060c349de2e1f "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics().front().code, ""injected-tangent-backend"") | ASSERT_NE(found, result.GetStatus().Diagnostics().end()) | EXPECT_EQ(found->location.file, std::filesystem::path{""dynamic-state.inp""}) | EXPECT_EQ(found->location.line, 13U) | EXPECT_EQ(found->entity_identity, ""Transient Load"") | EXPECT_NE(found->message.find(""stage=initial""), std::string::npos) | EXPECT_NE(found->message.find(""increment=0""), std::string::npos) | EXPECT_NE(found->message.find(""time=0""), std::string::npos)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics().front().code, ""injected-tangent-backend"") | ASSERT_NE(found, result.GetStatus().Diagnostics().end()) | EXPECT_EQ(found->location.file, std::filesystem::path{""dynamic-state.inp""}) | EXPECT_EQ(found->location.line, 13U) | EXPECT_EQ(found->entity_identity, ""Transient Load"") | EXPECT_NE(found->message.find(""stage=initial""), std::string::npos) | EXPECT_NE(found->message.find(""increment=0""), std::string::npos) | EXPECT_NE(found->message.find(""time=0""), std::string::npos)" -Dev tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.UniformTranslationHasNoShellStrainAndIsDeterministicAcrossPartitions HhtDynamicProcedure.UniformTranslationHasNoShellStrainAndIsDeterministicAcrossPartitions; assertion 15개 tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.UniformTranslationHasNoShellStrainAndIsDeterministicAcrossPartitions 유지 원문 검사 body 및 assertion 동일. b0478c8b2a601459afa174f5b801ee5cfd08d11a8a971e979ef7ba8cde76dc28 b0478c8b2a601459afa174f5b801ee5cfd08d11a8a971e979ef7ba8cde76dc28 ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(partitioned.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(finite_rotation.HasValue()) | ASSERT_TRUE(rotated_finite_rotation.HasValue()) | ASSERT_EQ(frames.size(), 3U) | EXPECT_LE(std::abs(frame.physical_strain_energy) / kReferenceEnergy, 1e-10) | EXPECT_LE(std::abs(frame.drilling_energy) / kReferenceEnergy, 1e-10) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node] - frame.generalized_coordinates[0U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + 1U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + 2U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + rotation]), 1e-12) | EXPECT_GT(frames.back().generalized_coordinates[0U], 0.0) | EXPECT_GT(maximum_rotation, 0.0) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(partitioned.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(finite_rotation.HasValue()) | ASSERT_TRUE(rotated_finite_rotation.HasValue()) | ASSERT_EQ(frames.size(), 3U) | EXPECT_LE(std::abs(frame.physical_strain_energy) / kReferenceEnergy, 1e-10) | EXPECT_LE(std::abs(frame.drilling_energy) / kReferenceEnergy, 1e-10) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node] - frame.generalized_coordinates[0U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + 1U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + 2U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + rotation]), 1e-12) | EXPECT_GT(frames.back().generalized_coordinates[0U], 0.0) | EXPECT_GT(maximum_rotation, 0.0) -Dev tests/unit/analysis/hht_dynamic_procedure_test.cpp support@1-330 helper/oracle/fixture/include/static assertion 구간: InjectedTangentFailure, FailingTangent, FailureText, for, MakeRigidTranslationDefinition, RotateGlobal, MakeRotatedRigidTranslationDefinition, MakeFiniteRotationDefinition, MakeRotatedFiniteRotationDefinition, RigidTranslationRun, ExpectSameSourceIds, RunRigidTranslation, ExpectSameDynamicHistory, ExpectRotatedDofVector, ExpectCovariantDynamicHistory, MakeDefinition, if tests/unit/analysis/hht_dynamic_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 678fa0e4df0f56e62f9a30783ffbf7e564661fc06a0fbc9bbf69bd6e25c8123c 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_dynamic_procedure_test.cpp support@570-571 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_dynamic_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_energy_verification_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/analysis/hht_energy_verification_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9d0c672737a65b301b38b949aef26d0099451719a7fd98ffa7c5d1171e97a885 9d0c672737a65b301b38b949aef26d0099451719a7fd98ffa7c5d1171e97a885 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07AlphaZeroConservesLinearOscillatorEnergy HhtEnergyVerification.C07AlphaZeroConservesLinearOscillatorEnergy; assertion 2개 tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07AlphaZeroConservesLinearOscillatorEnergy 유지 원문 검사 body 및 assertion 동일. c212f946ce9196b35236724d344066dbfcb8d3df5910b001c265f1f5e8ef53b3 c212f946ce9196b35236724d344066dbfcb8d3df5910b001c265f1f5e8ef53b3 ASSERT_TRUE(parameters.HasValue()) | EXPECT_LE(maximum, 1.0e-10) ASSERT_TRUE(parameters.HasValue()) | EXPECT_LE(maximum, 1.0e-10) -Dev tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07DefaultAlphaReportsEnergyAndPhaseChanges HhtEnergyVerification.C07DefaultAlphaReportsEnergyAndPhaseChanges; assertion 3개 tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07DefaultAlphaReportsEnergyAndPhaseChanges 유지 원문 검사 body 및 assertion 동일. 683b5ca010185dc76cd3ecf37078c479637fd0a00c07ed5a1a80a5a116c14933 683b5ca010185dc76cd3ecf37078c479637fd0a00c07ed5a1a80a5a116c14933 ASSERT_TRUE(parameters.HasValue()) | EXPECT_TRUE(std::isfinite(energy)) | EXPECT_LT(energy, 2.0) ASSERT_TRUE(parameters.HasValue()) | EXPECT_TRUE(std::isfinite(energy)) | EXPECT_LT(energy, 2.0) -Dev tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07IndependentAmplificationHasThePrescribedSpectrum HhtEnergyVerification.C07IndependentAmplificationHasThePrescribedSpectrum; assertion 4개 tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07IndependentAmplificationHasThePrescribedSpectrum 유지 원문 검사 body 및 assertion 동일. a96cd1993dfff2d5f5c40fdaf6139af7e5f6aa82dfc5cc784de896f1df437bca a96cd1993dfff2d5f5c40fdaf6139af7e5f6aa82dfc5cc784de896f1df437bca EXPECT_NEAR(std::abs(roots[1]), 1.0, 1.0e-10) | EXPECT_NEAR(std::abs(roots[2]), 1.0, 1.0e-10) | EXPECT_LE(radius, 1.0 + 1.0e-10) | EXPECT_LT(error, previous_limit_error) EXPECT_NEAR(std::abs(roots[1]), 1.0, 1.0e-10) | EXPECT_NEAR(std::abs(roots[2]), 1.0, 1.0e-10) | EXPECT_LE(radius, 1.0 + 1.0e-10) | EXPECT_LT(error, previous_limit_error) -Dev tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07SupportReactionUsesPhysicalAccelerationAndCoupling HhtEnergyVerification.C07SupportReactionUsesPhysicalAccelerationAndCoupling; assertion 4개 tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07SupportReactionUsesPhysicalAccelerationAndCoupling 유지 원문 검사 body 및 assertion 동일. 3462a480370c4e1ef1adba61c8cecbd490c5a188b1c0f71c8f381a648f7717f7 3462a480370c4e1ef1adba61c8cecbd490c5a188b1c0f71c8f381a648f7717f7 ASSERT_TRUE(parameters.HasValue()) | EXPECT_EQ(reaction, 0.5 * state.a[0]) | EXPECT_LE(std::abs(balance) / scale, 1.0e-10) | EXPECT_GT(mutation_difference, 1.0e-6) ASSERT_TRUE(parameters.HasValue()) | EXPECT_EQ(reaction, 0.5 * state.a[0]) | EXPECT_LE(std::abs(balance) / scale, 1.0e-10) | EXPECT_GT(mutation_difference, 1.0e-6) -Dev tests/unit/analysis/hht_energy_verification_test.cpp support@1-119 helper/oracle/fixture/include/static assertion 구간: Oscillator, Advance, Amplification, Eigenvalues, if, for tests/unit/analysis/hht_energy_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 85df404875102d22dc4c86031757dd24174a652f4dc39cf7ce0f561c59a977b4 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_energy_verification_test.cpp support@222-223 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_energy_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_reduced_shell_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 25개 tests/unit/analysis/hht_reduced_shell_test.cpp file 이관 Dev trial cache·context 변경·copy/move 소유권·실패 우선순위·left-association 검사를 복원한다. 같은 trial의 독립 local 평가만 ShellTrialElement::EvaluateTrial 호출로 이관한다. d715219a60c73ce9803f2c386be3843221c48b1f90882c224ad714db3ea6c785 243fb1edd3dfd485e824cf11291087e0e6daf469a9c8d0f2ed04ce893e385129 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.SelectsCanonicalPivotAndLiftsCoordinates HhtReducedChart.SelectsCanonicalPivotAndLiftsCoordinates; assertion 7개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.SelectsCanonicalPivotAndLiftsCoordinates 유지 원문 검사 body 및 assertion 동일. 9be1e26c0f12a99552fa2c7e2a706eb69bf9829d16cea9fda53f6d60ed62dd86 9be1e26c0f12a99552fa2c7e2a706eb69bf9829d16cea9fda53f6d60ed62dd86 ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(chart.Value().null_nodes.size(), 4U) | EXPECT_EQ(chart.Value().pivot_components[node], 2U) | EXPECT_EQ(chart.Value().z_dofs[node], 6U * node + 5U) | ASSERT_TRUE(full.HasValue()) | EXPECT_DOUBLE_EQ(full.Value()[chart.Value().p_dofs[i]], p[i]) | EXPECT_DOUBLE_EQ(full.Value()[chart.Value().z_dofs[i]], z[i]) ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(chart.Value().null_nodes.size(), 4U) | EXPECT_EQ(chart.Value().pivot_components[node], 2U) | EXPECT_EQ(chart.Value().z_dofs[node], 6U * node + 5U) | ASSERT_TRUE(full.HasValue()) | EXPECT_DOUBLE_EQ(full.Value()[chart.Value().p_dofs[i]], p[i]) | EXPECT_DOUBLE_EQ(full.Value()[chart.Value().z_dofs[i]], z[i]) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.RetainsNodeWhenItsPartialBoundaryCutsTheNull HhtReducedChart.RetainsNodeWhenItsPartialBoundaryCutsTheNull; assertion 9개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.RetainsNodeWhenItsPartialBoundaryCutsTheNull 유지 원문 검사 body 및 assertion 동일. 6233920d1de0cb982482e84f4acac2853c5d4b5f8b76431c4e52cc215134cc89 6233920d1de0cb982482e84f4acac2853c5d4b5f8b76431c4e52cc215134cc89 ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(chart.Value().null_nodes.size(), 3U) | EXPECT_TRUE(std::find(chart.Value().null_nodes.begin(), chart.Value().null_nodes.end(), 0U) == chart.Value().null_nodes.end()) | EXPECT_TRUE(std::find(chart.Value().p_dofs.begin(), chart.Value().p_dofs.end(), 3U) != chart.Value().p_dofs.end()) | EXPECT_TRUE(std::find(chart.Value().p_dofs.begin(), chart.Value().p_dofs.end(), 4U) != chart.Value().p_dofs.end()) | ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(operators.HasValue()) | EXPECT_EQ(operators.Value().rows.size(), 3U) ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(chart.Value().null_nodes.size(), 3U) | EXPECT_TRUE(std::find(chart.Value().null_nodes.begin(), chart.Value().null_nodes.end(), 0U) == chart.Value().null_nodes.end()) | EXPECT_TRUE(std::find(chart.Value().p_dofs.begin(), chart.Value().p_dofs.end(), 3U) != chart.Value().p_dofs.end()) | EXPECT_TRUE(std::find(chart.Value().p_dofs.begin(), chart.Value().p_dofs.end(), 4U) != chart.Value().p_dofs.end()) | ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(operators.HasValue()) | EXPECT_EQ(operators.Value().rows.size(), 3U) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.UsesActualFiniteInitialNullAndPreservesTransposeActions HhtReducedChart.UsesActualFiniteInitialNullAndPreservesTransposeActions; assertion 13개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.UsesActualFiniteInitialNullAndPreservesTransposeActions 유지 원문 검사 body 및 assertion 동일. 3a0cce3ce539ccc6181768741375eed175e179b4e875a97b2369e6bd7f6a4c2f 3a0cce3ce539ccc6181768741375eed175e179b4e875a97b2369e6bd7f6a4c2f ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(built.HasValue()) | EXPECT_EQ(chart.minimum_axes.front(), axis) | ASSERT_EQ(chart.z_columns.front().support.size(), 3U) | EXPECT_NEAR(column.support[i].value, raw[i] / norm, 1e-15) | EXPECT_TRUE(std::isfinite(column.support_radii[i])) | EXPECT_GE(column.support_radii[i], 0.0) | EXPECT_GT(std::abs(chart.z_columns.front().support[0U].value), 0.01) | ASSERT_TRUE(full.HasValue()) | ASSERT_TRUE(projected_p.HasValue()) | ASSERT_TRUE(projected_z.HasValue()) | EXPECT_NEAR(projected_p.Value()[i], p[i], 1e-15) | EXPECT_NEAR(projected_z.Value()[i], z[i], 1e-15) ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(built.HasValue()) | EXPECT_EQ(chart.minimum_axes.front(), axis) | ASSERT_EQ(chart.z_columns.front().support.size(), 3U) | EXPECT_NEAR(column.support[i].value, raw[i] / norm, 1e-15) | EXPECT_TRUE(std::isfinite(column.support_radii[i])) | EXPECT_GE(column.support_radii[i], 0.0) | EXPECT_GT(std::abs(chart.z_columns.front().support[0U].value), 0.01) | ASSERT_TRUE(full.HasValue()) | ASSERT_TRUE(projected_p.HasValue()) | ASSERT_TRUE(projected_z.HasValue()) | EXPECT_NEAR(projected_p.Value()[i], p[i], 1e-15) | EXPECT_NEAR(projected_z.Value()[i], z[i], 1e-15) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.MinimumAxisTieAndPartialBoundaryRetainExactZeros HhtReducedChart.MinimumAxisTieAndPartialBoundaryRetainExactZeros; assertion 5개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.MinimumAxisTieAndPartialBoundaryRetainExactZeros 유지 원문 검사 body 및 assertion 동일. 199055f0e67f5c20880dc18741e1294140016db419e6a95628c00e1cb1277f8b 199055f0e67f5c20880dc18741e1294140016db419e6a95628c00e1cb1277f8b ASSERT_TRUE(chart.HasValue()) | EXPECT_EQ(axis, 0U) | ASSERT_TRUE(full.HasValue()) | EXPECT_DOUBLE_EQ(full.Value()[5U], 0.0) | EXPECT_FALSE(column.fixed_plane) ASSERT_TRUE(chart.HasValue()) | EXPECT_EQ(axis, 0U) | ASSERT_TRUE(full.HasValue()) | EXPECT_DOUBLE_EQ(full.Value()[5U], 0.0) | EXPECT_FALSE(column.fixed_plane) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.ProperRotationRelatesRetainedPlanesByConstantOrthogonalMap HhtReducedChart.ProperRotationRelatesRetainedPlanesByConstantOrthogonalMap; assertion 8개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.ProperRotationRelatesRetainedPlanesByConstantOrthogonalMap 유지 원문 검사 body 및 assertion 동일. 0a3d19b8bfc9be9ba9e6f6d45bf817a8cde05698c75a9ae3355fb4c74ac52e62 0a3d19b8bfc9be9ba9e6f6d45bf817a8cde05698c75a9ae3355fb4c74ac52e62 ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(transformed.HasValue()) | ASSERT_TRUE(source.HasValue()) | ASSERT_TRUE(target.HasValue()) | ASSERT_EQ(si, 2U) | ASSERT_EQ(ti, 2U) | EXPECT_NEAR(target_plane[0U][k] * t[0U][j] + target_plane[1U][k] * t[1U][j], rotated[k], 1e-14) | EXPECT_NEAR(t[0U][i] * t[0U][j] + t[1U][i] * t[1U][j], i == j ? 1.0 : 0.0, 1e-14) ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(transformed.HasValue()) | ASSERT_TRUE(source.HasValue()) | ASSERT_TRUE(target.HasValue()) | ASSERT_EQ(si, 2U) | ASSERT_EQ(ti, 2U) | EXPECT_NEAR(target_plane[0U][k] * t[0U][j] + target_plane[1U][k] * t[1U][j], rotated[k], 1e-14) | EXPECT_NEAR(t[0U][i] * t[0U][j] + t[1U][i] * t[1U][j], i == j ? 1.0 : 0.0, 1e-14) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.RejectsSubnormalNormWithoutAValidCoefficientCertificate HhtReducedChart.RejectsSubnormalNormWithoutAValidCoefficientCertificate; assertion 1개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.RejectsSubnormalNormWithoutAValidCoefficientCertificate 유지 원문 검사 body 및 assertion 동일. c8389950eef75e9147da8658be67e71bb4c52c46db7991d0488a4937ac82c439 c8389950eef75e9147da8658be67e71bb4c52c46db7991d0488a4937ac82c439 EXPECT_FALSE(fesa::hht_reduced_internal::BuildFixedChart(fixture.dofs, rotations).HasValue()) EXPECT_FALSE(fesa::hht_reduced_internal::BuildFixedChart(fixture.dofs, rotations).HasValue()) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.NativeCoefficientRadiiExportFixedInputReplay HhtReducedChart.NativeCoefficientRadiiExportFixedInputReplay; assertion 7개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.NativeCoefficientRadiiExportFixedInputReplay 유지 원문 검사 body 및 assertion 동일. 9c220fc2bc4ffd53650d9c3af693560d6beeaf06b5631d766ae082ff5ec3e8fb 9c220fc2bc4ffd53650d9c3af693560d6beeaf06b5631d766ae082ff5ec3e8fb ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(column, 2U) | ASSERT_EQ(p->support.size(), 3U) | EXPECT_TRUE(std::isfinite(radius)) | EXPECT_GE(radius, 0.0) | EXPECT_FALSE(fesa::hht_reduced_internal::BuildFixedChart(fixture.dofs, invalid).HasValue()) ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(column, 2U) | ASSERT_EQ(p->support.size(), 3U) | EXPECT_TRUE(std::isfinite(radius)) | EXPECT_GE(radius, 0.0) | EXPECT_FALSE(fesa::hht_reduced_internal::BuildFixedChart(fixture.dofs, invalid).HasValue()) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.InvertibleGraphDoesNotCertifySelectorTransversality HhtReducedChart.InvertibleGraphDoesNotCertifySelectorTransversality; assertion 6개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.InvertibleGraphDoesNotCertifySelectorTransversality 유지 원문 검사 body 및 assertion 동일. 23c5ac02ecae6f1ee4b38528c74d1fe93200138fd51a2ab0d23b694c7e04abbe 23c5ac02ecae6f1ee4b38528c74d1fe93200138fd51a2ab0d23b694c7e04abbe ASSERT_TRUE(chart.HasValue()) | EXPECT_TRUE(fesa::hht_reduced_internal::SolveGraphSystem( fesa::hht_reduced_internal::GraphJacobian(operators, chart.Value()), fesa::Vector(4U, 1.0), solver).HasValue()) | ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::CheckSelectorTransversality( assembly, chart.Value(), solver).HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::CheckSelectorTransversality( assembly, chart.Value(), solver).HasValue()) ASSERT_TRUE(chart.HasValue()) | EXPECT_TRUE(fesa::hht_reduced_internal::SolveGraphSystem( fesa::hht_reduced_internal::GraphJacobian(operators, chart.Value()), fesa::Vector(4U, 1.0), solver).HasValue()) | ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::CheckSelectorTransversality( assembly, chart.Value(), solver).HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::CheckSelectorTransversality( assembly, chart.Value(), solver).HasValue()) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.CompleteTrialConstraintDataMatchesFreshAndOwnsCopies HhtReducedOperators.CompleteTrialConstraintDataMatchesFreshAndOwnsCopies; assertion 16개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.CompleteTrialConstraintDataMatchesFreshAndOwnsCopies 이관 Dev trial cache·context 변경·copy/move 소유권·실패 우선순위·left-association 검사를 복원한다. 같은 trial의 독립 local 평가만 ShellTrialElement::EvaluateTrial 호출로 이관한다. c2550db2c3c2e988d3d7a1555cd933c9a2371d66d7e30d05aec89e026e8c1f28 8d91faae89582464d44dbe22e850c9d57ef109d3e474e000e43bce1cd93266c5 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(assembled.Value().trial_constraints.has_value()) | ASSERT_EQ(assembled.Value().trial_constraints->shells.size(), shells.Value().size()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(saved.directional_internal) | ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(reference.HasValue()) | ASSERT_TRUE(reused.HasValue()) | ASSERT_TRUE(marker.HasValue()) | EXPECT_NE(marker.Value().rows[0U].value, reused.Value().rows[0U].value) | EXPECT_NE( copy.trial_constraints->shells[0U].drilling_constraint[0U], assembled.Value().trial_constraints->shells[0U].drilling_constraint[0U]) | ASSERT_TRUE(moved_result.HasValue()) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(tbb_result.HasValue()) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(assembled.Value().trial_constraints.has_value()) | ASSERT_EQ(assembled.Value().trial_constraints->shells.size(), shells.Value().size()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(saved.directional_internal) | ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(reference.HasValue()) | ASSERT_TRUE(reused.HasValue()) | ASSERT_TRUE(marker.HasValue()) | EXPECT_NE(marker.Value().rows[0U].value, reused.Value().rows[0U].value) | EXPECT_NE( copy.trial_constraints->shells[0U].drilling_constraint[0U], assembled.Value().trial_constraints->shells[0U].drilling_constraint[0U]) | ASSERT_TRUE(moved_result.HasValue()) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(tbb_result.HasValue()) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.ChangedTrialConstraintContextFallsBackInOriginalPosition HhtReducedOperators.ChangedTrialConstraintContextFallsBackInOriginalPosition; assertion 19개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.ChangedTrialConstraintContextFallsBackInOriginalPosition 유지 원문 검사 body 및 assertion 동일. c9c5b148483d6a734246aa230aa71782a630877d3309f2849b78b1abb6a32042 c9c5b148483d6a734246aa230aa71782a630877d3309f2849b78b1abb6a32042 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(assembled.Value().trial_constraints.has_value()) | ASSERT_TRUE( assembled.Value().trial_constraints->shells[0U].directional_internal) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(reference.HasValue()) | ASSERT_TRUE(actual.HasValue()) | ASSERT_TRUE(reference.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_EQ(mkl_set_num_threads_local(0), 2) | ASSERT_TRUE(reference.HasValue()) | ASSERT_TRUE(actual.HasValue()) | ASSERT_FALSE(failed.HasValue()) | ASSERT_FALSE(original.HasValue()) | ASSERT_EQ(failed.GetStatus().Diagnostics().size(), original.GetStatus().Diagnostics().size()) | EXPECT_EQ(failed.GetStatus().Diagnostics()[0U].code, original.GetStatus().Diagnostics()[0U].code) | EXPECT_EQ(failed.GetStatus().Diagnostics()[0U].message, original.GetStatus().Diagnostics()[0U].message) | ASSERT_TRUE(rerun.HasValue()) | ASSERT_TRUE(reference.HasValue()) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(assembled.Value().trial_constraints.has_value()) | ASSERT_TRUE( assembled.Value().trial_constraints->shells[0U].directional_internal) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(reference.HasValue()) | ASSERT_TRUE(actual.HasValue()) | ASSERT_TRUE(reference.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_EQ(mkl_set_num_threads_local(0), 2) | ASSERT_TRUE(reference.HasValue()) | ASSERT_TRUE(actual.HasValue()) | ASSERT_FALSE(failed.HasValue()) | ASSERT_FALSE(original.HasValue()) | ASSERT_EQ(failed.GetStatus().Diagnostics().size(), original.GetStatus().Diagnostics().size()) | EXPECT_EQ(failed.GetStatus().Diagnostics()[0U].code, original.GetStatus().Diagnostics()[0U].code) | EXPECT_EQ(failed.GetStatus().Diagnostics()[0U].message, original.GetStatus().Diagnostics()[0U].message) | ASSERT_TRUE(rerun.HasValue()) | ASSERT_TRUE(reference.HasValue()) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.TrialContextControlsAndInitialFalseFailureLifetime HhtReducedOperators.TrialContextControlsAndInitialFalseFailureLifetime; assertion 25개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.TrialContextControlsAndInitialFalseFailureLifetime 유지 원문 검사 body 및 assertion 동일. 67b5b1519ea7f824e562dd9e5ecc22d093d8ccb9a5daefffe7ae7eea7e1c60db 67b5b1519ea7f824e562dd9e5ecc22d093d8ccb9a5daefffe7ae7eea7e1c60db ASSERT_TRUE(fesa::hht_internal::ReusableTrialContext(context, context)) | EXPECT_FALSE(fesa::hht_internal::ReusableTrialContext(context, changed)) | EXPECT_FALSE(fesa::hht_internal::ReusableTrialContext(unmasked, unmasked)) | EXPECT_FALSE(fesa::hht_internal::ReusableTrialContext(positive, positive)) | EXPECT_EQ(mkl_set_num_threads_local(0), 2) | EXPECT_FALSE(fesa::hht_internal::ReusableTrialContext(dynamic, dynamic)) | ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(position.HasValue()) | EXPECT_FALSE(position.Value().trial_constraints.has_value()) | ASSERT_TRUE(dynamic_trial.HasValue()) | ASSERT_TRUE(dynamic_trial.Value().trial_constraints.has_value()) | EXPECT_FALSE( dynamic_trial.Value().trial_constraints->shells[0U].directional_internal) | EXPECT_EQ(mkl_set_num_threads_local(0), 2) | ASSERT_TRUE(positive_trial.HasValue()) | ASSERT_TRUE(positive_trial.Value().trial_constraints.has_value()) | EXPECT_FALSE(positive_trial.Value() .trial_constraints->shells[0U] .directional_internal) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(initial.HasValue()) | EXPECT_FALSE(initial.Value().trial_constraints.has_value()) | EXPECT_FALSE(failure.HasValue()) | ASSERT_TRUE(current.HasValue()) | ASSERT_TRUE(next.HasValue()) | ASSERT_EQ(current.Value().trial_constraints->shells.size(), shells.Value().size()) | ASSERT_EQ(next.Value().trial_constraints->shells.size(), shells.Value().size()) | EXPECT_NE(¤t.Value().trial_constraints->shells[0U], &next.Value().trial_constraints->shells[0U]) ASSERT_TRUE(fesa::hht_internal::ReusableTrialContext(context, context)) | EXPECT_FALSE(fesa::hht_internal::ReusableTrialContext(context, changed)) | EXPECT_FALSE(fesa::hht_internal::ReusableTrialContext(unmasked, unmasked)) | EXPECT_FALSE(fesa::hht_internal::ReusableTrialContext(positive, positive)) | EXPECT_EQ(mkl_set_num_threads_local(0), 2) | EXPECT_FALSE(fesa::hht_internal::ReusableTrialContext(dynamic, dynamic)) | ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(position.HasValue()) | EXPECT_FALSE(position.Value().trial_constraints.has_value()) | ASSERT_TRUE(dynamic_trial.HasValue()) | ASSERT_TRUE(dynamic_trial.Value().trial_constraints.has_value()) | EXPECT_FALSE( dynamic_trial.Value().trial_constraints->shells[0U].directional_internal) | EXPECT_EQ(mkl_set_num_threads_local(0), 2) | ASSERT_TRUE(positive_trial.HasValue()) | ASSERT_TRUE(positive_trial.Value().trial_constraints.has_value()) | EXPECT_FALSE(positive_trial.Value() .trial_constraints->shells[0U] .directional_internal) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(initial.HasValue()) | EXPECT_FALSE(initial.Value().trial_constraints.has_value()) | EXPECT_FALSE(failure.HasValue()) | ASSERT_TRUE(current.HasValue()) | ASSERT_TRUE(next.HasValue()) | ASSERT_EQ(current.Value().trial_constraints->shells.size(), shells.Value().size()) | ASSERT_EQ(next.Value().trial_constraints->shells.size(), shells.Value().size()) | EXPECT_NE(¤t.Value().trial_constraints->shells[0U], &next.Value().trial_constraints->shells[0U]) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.NonfiniteMatchingTrialKeysPreserveOriginalFailure HhtReducedOperators.NonfiniteMatchingTrialKeysPreserveOriginalFailure; assertion 16개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.NonfiniteMatchingTrialKeysPreserveOriginalFailure 유지 원문 검사 body 및 assertion 동일. a0ae08eb280056ac6d02aef7595237997364b0fb7b5a8665e86687b24983559d a0ae08eb280056ac6d02aef7595237997364b0fb7b5a8665e86687b24983559d ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(assembled.Value().trial_constraints.has_value()) | ASSERT_TRUE( assembled.Value().trial_constraints->shells[0U].directional_internal) | ASSERT_TRUE(chart.HasValue()) | ASSERT_FALSE(original.HasValue()) | ASSERT_FALSE(actual.HasValue()) | EXPECT_EQ(actual.GetStatus().Category(), original.GetStatus().Category()) | ASSERT_EQ(a.size(), b.size()) | EXPECT_EQ(a[j].severity, b[j].severity) | EXPECT_EQ(a[j].code, b[j].code) | EXPECT_EQ(a[j].location.file, b[j].location.file) | EXPECT_EQ(a[j].location.line, b[j].location.line) | EXPECT_EQ(a[j].keyword, b[j].keyword) | EXPECT_EQ(a[j].entity_identity, b[j].entity_identity) | EXPECT_EQ(a[j].message, b[j].message) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(assembled.Value().trial_constraints.has_value()) | ASSERT_TRUE( assembled.Value().trial_constraints->shells[0U].directional_internal) | ASSERT_TRUE(chart.HasValue()) | ASSERT_FALSE(original.HasValue()) | ASSERT_FALSE(actual.HasValue()) | EXPECT_EQ(actual.GetStatus().Category(), original.GetStatus().Category()) | ASSERT_EQ(a.size(), b.size()) | EXPECT_EQ(a[j].severity, b[j].severity) | EXPECT_EQ(a[j].code, b[j].code) | EXPECT_EQ(a[j].location.file, b[j].location.file) | EXPECT_EQ(a[j].location.line, b[j].location.line) | EXPECT_EQ(a[j].keyword, b[j].keyword) | EXPECT_EQ(a[j].entity_identity, b[j].entity_identity) | EXPECT_EQ(a[j].message, b[j].message) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.NonfiniteMatchingTimeKeyMissPreservesFreshSuccess HhtReducedOperators.NonfiniteMatchingTimeKeyMissPreservesFreshSuccess; assertion 10개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.NonfiniteMatchingTimeKeyMissPreservesFreshSuccess 유지 원문 검사 body 및 assertion 동일. 06af6ebcbfae999adf35c836f87c4f1fd38e57c385028adec4ca457d2f798fd2 06af6ebcbfae999adf35c836f87c4f1fd38e57c385028adec4ca457d2f798fd2 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(assembled.Value().trial_constraints.has_value()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(reference.HasValue()) | ASSERT_TRUE(actual.HasValue()) | ASSERT_TRUE(producer.HasValue()) | EXPECT_FALSE(producer.Value().trial_constraints.has_value()) | ASSERT_TRUE(producer_result.HasValue()) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(assembled.Value().trial_constraints.has_value()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(reference.HasValue()) | ASSERT_TRUE(actual.HasValue()) | ASSERT_TRUE(producer.HasValue()) | EXPECT_FALSE(producer.Value().trial_constraints.has_value()) | ASSERT_TRUE(producer_result.HasValue()) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.ScatterShellDerivativesByConstraintRow HhtReducedOperators.ScatterShellDerivativesByConstraintRow; assertion 15개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.ScatterShellDerivativesByConstraintRow 유지 원문 검사 body 및 assertion 동일. b57a6ce0864234af355f619fb8be4a19898393df437f5b314c8f1e2ee79dc0bd b57a6ce0864234af355f619fb8be4a19898393df437f5b314c8f1e2ee79dc0bd ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(operators.HasValue()) | ASSERT_EQ(operators.Value().rows.size(), 4U) | ASSERT_TRUE(graph_condition.HasValue()) | EXPECT_GE(graph_condition.Value(), std::ldexp(1.0, -32)) | EXPECT_DOUBLE_EQ(row.value, 0.0) | EXPECT_DOUBLE_EQ(row.value_scale, expected_scale) | EXPECT_FALSE(row.gradient.empty()) | EXPECT_FALSE(row.hessian.empty()) | EXPECT_LT(row.gradient.size(), fixture.dofs.FullDofCount()) | EXPECT_LT(entry.row, fixture.dofs.FullDofCount()) | EXPECT_LT(entry.column, fixture.dofs.FullDofCount()) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(operators.HasValue()) | ASSERT_EQ(operators.Value().rows.size(), 4U) | ASSERT_TRUE(graph_condition.HasValue()) | EXPECT_GE(graph_condition.Value(), std::ldexp(1.0, -32)) | EXPECT_DOUBLE_EQ(row.value, 0.0) | EXPECT_DOUBLE_EQ(row.value_scale, expected_scale) | EXPECT_FALSE(row.gradient.empty()) | EXPECT_FALSE(row.hessian.empty()) | EXPECT_LT(row.gradient.size(), fixture.dofs.FullDofCount()) | EXPECT_LT(entry.row, fixture.dofs.FullDofCount()) | EXPECT_LT(entry.column, fixture.dofs.FullDofCount()) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.RejectsNonfiniteGraphResidualBeforeAcceptance HhtReducedEmbedding.RejectsNonfiniteGraphResidualBeforeAcceptance; assertion 4개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.RejectsNonfiniteGraphResidualBeforeAcceptance 유지 원문 검사 body 및 assertion 동일. aba990268187a0cee9fe762ab5acefe258144c3a8bcaf27245174b8cc87d6ac6 aba990268187a0cee9fe762ab5acefe258144c3a8bcaf27245174b8cc87d6ac6 "ASSERT_TRUE(chart.HasValue()) | ASSERT_FALSE(root.HasValue()) | ASSERT_FALSE(root.GetStatus().Diagnostics().empty()) | EXPECT_EQ(root.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" "ASSERT_TRUE(chart.HasValue()) | ASSERT_FALSE(root.HasValue()) | ASSERT_FALSE(root.GetStatus().Diagnostics().empty()) | EXPECT_EQ(root.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReturnsExactTwoCycleForFullHiddenCertification HhtReducedEmbedding.ReturnsExactTwoCycleForFullHiddenCertification; assertion 4개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReturnsExactTwoCycleForFullHiddenCertification 유지 원문 검사 body 및 assertion 동일. 1c20656897f7812ce5cf1b2993fc07ba03b3b4c04bcc5d9b8111bffb775607ab 1c20656897f7812ce5cf1b2993fc07ba03b3b4c04bcc5d9b8111bffb775607ab ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], -1.0) | EXPECT_DOUBLE_EQ(root.Value().q[0U], -1.0) | EXPECT_DOUBLE_EQ(root.Value().operators.rows[0U].value, -2.0) ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], -1.0) | EXPECT_DOUBLE_EQ(root.Value().q[0U], -1.0) | EXPECT_DOUBLE_EQ(root.Value().operators.rows[0U].value, -2.0) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReturnsEvaluatedTrialWhenLiftAbsorbsAChangedPrivateRoot HhtReducedEmbedding.ReturnsEvaluatedTrialWhenLiftAbsorbsAChangedPrivateRoot; assertion 12개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReturnsEvaluatedTrialWhenLiftAbsorbsAChangedPrivateRoot 유지 원문 검사 body 및 assertion 동일. 72f50cedc425b3beda1ad7a34363c76203e2792acbf3eff5bfdc4c3dee43c148 72f50cedc425b3beda1ad7a34363c76203e2792acbf3eff5bfdc4c3dee43c148 ASSERT_TRUE(built.HasValue()) | ASSERT_EQ(angular, 2U) | ASSERT_TRUE(original.HasValue()) | EXPECT_NE(changed[0U], seed[0U]) | ASSERT_TRUE(absorbed.HasValue()) | EXPECT_EQ(original.Value()[i], absorbed.Value()[i]) | ASSERT_TRUE(root.HasValue()) | EXPECT_EQ(root.Value().z[0U], seed[0U]) | EXPECT_NE(root.Value().operators.rows[0U].value, 0.0) | EXPECT_GT(root.Value().graph_residual_relative, 1e-10) | EXPECT_EQ(root.Value().graph_iteration_count, 0U) | EXPECT_EQ(root.Value().q[i], original.Value()[i]) ASSERT_TRUE(built.HasValue()) | ASSERT_EQ(angular, 2U) | ASSERT_TRUE(original.HasValue()) | EXPECT_NE(changed[0U], seed[0U]) | ASSERT_TRUE(absorbed.HasValue()) | EXPECT_EQ(original.Value()[i], absorbed.Value()[i]) | ASSERT_TRUE(root.HasValue()) | EXPECT_EQ(root.Value().z[0U], seed[0U]) | EXPECT_NE(root.Value().operators.rows[0U].value, 0.0) | EXPECT_GT(root.Value().graph_residual_relative, 1e-10) | EXPECT_EQ(root.Value().graph_iteration_count, 0U) | EXPECT_EQ(root.Value().q[i], original.Value()[i]) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.StopsAtExistingScaledPositionCertificate HhtReducedEmbedding.StopsAtExistingScaledPositionCertificate; assertion 5개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.StopsAtExistingScaledPositionCertificate 유지 원문 검사 body 및 assertion 동일. 40399a56a3e5ee5dd124159d271c7c833a7fb9bf4de311a17d44b0752fe90716 40399a56a3e5ee5dd124159d271c7c833a7fb9bf4de311a17d44b0752fe90716 ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], 0.0) | EXPECT_DOUBLE_EQ(root.Value().graph_residual_infinity, 5.0e-11) | EXPECT_DOUBLE_EQ(root.Value().graph_residual_relative, 5.0e-11) | EXPECT_DOUBLE_EQ(root.Value().graph_correction_infinity, 0.0) ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], 0.0) | EXPECT_DOUBLE_EQ(root.Value().graph_residual_infinity, 5.0e-11) | EXPECT_DOUBLE_EQ(root.Value().graph_residual_relative, 5.0e-11) | EXPECT_DOUBLE_EQ(root.Value().graph_correction_infinity, 0.0) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.RequiresExactZeroWhenPositionScaleIsZero HhtReducedEmbedding.RequiresExactZeroWhenPositionScaleIsZero; assertion 3개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.RequiresExactZeroWhenPositionScaleIsZero 유지 원문 검사 body 및 assertion 동일. 781274b693d154f790a5b856ea36ce7faf58048779d75a99636edfed40153d2d 781274b693d154f790a5b856ea36ce7faf58048779d75a99636edfed40153d2d ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], 0.0) | EXPECT_DOUBLE_EQ(root.Value().operators.rows[0U].value, 0.0) ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], 0.0) | EXPECT_DOUBLE_EQ(root.Value().operators.rows[0U].value, 0.0) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReconstructsRatesAcrossSelectedPartitionCancellation HhtReducedEmbedding.ReconstructsRatesAcrossSelectedPartitionCancellation; assertion 11개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReconstructsRatesAcrossSelectedPartitionCancellation 유지 원문 검사 body 및 assertion 동일. 99f396cb603db35827fd7516d26285d29dfd1fc5149f7f1ae100caf12b3c027f 99f396cb603db35827fd7516d26285d29dfd1fc5149f7f1ae100caf12b3c027f EXPECT_DOUBLE_EQ(plain_velocity_rhs, 0.0) | EXPECT_DOUBLE_EQ(plain_acceleration_rhs, 0.0) | ASSERT_TRUE(rates.HasValue()) | EXPECT_DOUBLE_EQ(rates.Value().velocity[0U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().velocity[1U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().velocity[2U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[0U], 0.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[1U], 0.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[2U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().z_velocity[0U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().z_acceleration[0U], 1.0) EXPECT_DOUBLE_EQ(plain_velocity_rhs, 0.0) | EXPECT_DOUBLE_EQ(plain_acceleration_rhs, 0.0) | ASSERT_TRUE(rates.HasValue()) | EXPECT_DOUBLE_EQ(rates.Value().velocity[0U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().velocity[1U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().velocity[2U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[0U], 0.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[1U], 0.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[2U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().z_velocity[0U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().z_acceleration[0U], 1.0) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReconstructsActualShellRatesWithMixedTimeLoad HhtReducedEmbedding.ReconstructsActualShellRatesWithMixedTimeLoad; assertion 53개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReconstructsActualShellRatesWithMixedTimeLoad 유지 원문 검사 body 및 assertion 동일. d7e9c115b48ed36f68722faa84b348585d6fd80567b49019bbac78cde25cd8b9 d7e9c115b48ed36f68722faa84b348585d6fd80567b49019bbac78cde25cd8b9 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(initial.HasValue()) | ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().q[2U], 0.01) | ASSERT_TRUE(rates.HasValue()) | ASSERT_TRUE(actual.HasValue()) | ASSERT_TRUE(operators.HasValue()) | EXPECT_NEAR(hidden[0U], 0.0, 1.0e-9) | EXPECT_NEAR(hidden[1U], 0.0, 1.0e-9) | EXPECT_NEAR(hidden[2U], 0.0, 1.0e-8) | EXPECT_TRUE(saw_time_term) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(reference_length.HasValue()) | ASSERT_TRUE(system.HasValue()) | ASSERT_EQ(system.Value().physical_count, chart.Value().p_dofs.size()) | ASSERT_EQ(system.Value().algebraic_count, chart.Value().z_dofs.size()) | ASSERT_TRUE(mapped.HasValue()) | EXPECT_DOUBLE_EQ(mapped.Value().coordinate[0U], 0.004) | EXPECT_DOUBLE_EQ(mapped.Value().velocity[0U], cv * 0.004) | EXPECT_DOUBLE_EQ(mapped.Value().acceleration[0U], ca * 0.004) | EXPECT_NEAR(mapped.Value().coordinate[entry.dof], -0.003 * entry.value, 1e-17) | EXPECT_NEAR(mapped.Value().velocity[entry.dof], 0.002 * entry.value, 1e-17) | EXPECT_NEAR(mapped.Value().acceleration[entry.dof], -0.001 * entry.value, 1e-17) | ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(projected_base.HasValue()) | EXPECT_NEAR(base.Value()[i], system.Value().row_scale[i] * projected_base.Value()[i], 1e-13 * system.Value().row_scale[i] * uncancelled) | ASSERT_GT(direction_norm, 0.0) | ASSERT_TRUE(mapped_direction.HasValue()) | ASSERT_GT(tangent_frobenius, 0.0) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_EQ(consecutive, expected_pass) | ASSERT_TRUE(no_force_actual.HasValue()) | ASSERT_TRUE(no_force_operators.HasValue()) | ASSERT_EQ(omitted_external_gradient.rows.size(), no_force_operators.Value().rows.size()) | ASSERT_EQ(omitted.size(), no_force.size()) | ASSERT_EQ(omitted[entry].dof, no_force[entry].dof) | ASSERT_TRUE(saw_external_position_gradient) | ASSERT_TRUE(omitted_external_gradient_system.HasValue()) | ASSERT_TRUE(ha_actual.HasValue()) | ASSERT_TRUE(ha_operators.HasValue()) | ASSERT_TRUE(ha_system.HasValue()) | ASSERT_TRUE(omitted_ha_system.HasValue()) | ASSERT_TRUE(hw_actual.HasValue()) | ASSERT_TRUE(hw_operators.HasValue()) | ASSERT_TRUE(hw_system.HasValue()) | ASSERT_TRUE(omitted_hw_system.HasValue()) | ASSERT_TRUE(third_system.HasValue()) | ASSERT_TRUE(mixed_time_system.HasValue()) | ASSERT_TRUE(omitted_second_time_rates.HasValue()) | EXPECT_GT(omitted_second_time_hidden, 1.0e-8) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(initial.HasValue()) | ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().q[2U], 0.01) | ASSERT_TRUE(rates.HasValue()) | ASSERT_TRUE(actual.HasValue()) | ASSERT_TRUE(operators.HasValue()) | EXPECT_NEAR(hidden[0U], 0.0, 1.0e-9) | EXPECT_NEAR(hidden[1U], 0.0, 1.0e-9) | EXPECT_NEAR(hidden[2U], 0.0, 1.0e-8) | EXPECT_TRUE(saw_time_term) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(reference_length.HasValue()) | ASSERT_TRUE(system.HasValue()) | ASSERT_EQ(system.Value().physical_count, chart.Value().p_dofs.size()) | ASSERT_EQ(system.Value().algebraic_count, chart.Value().z_dofs.size()) | ASSERT_TRUE(mapped.HasValue()) | EXPECT_DOUBLE_EQ(mapped.Value().coordinate[0U], 0.004) | EXPECT_DOUBLE_EQ(mapped.Value().velocity[0U], cv * 0.004) | EXPECT_DOUBLE_EQ(mapped.Value().acceleration[0U], ca * 0.004) | EXPECT_NEAR(mapped.Value().coordinate[entry.dof], -0.003 * entry.value, 1e-17) | EXPECT_NEAR(mapped.Value().velocity[entry.dof], 0.002 * entry.value, 1e-17) | EXPECT_NEAR(mapped.Value().acceleration[entry.dof], -0.001 * entry.value, 1e-17) | ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(projected_base.HasValue()) | EXPECT_NEAR(base.Value()[i], system.Value().row_scale[i] * projected_base.Value()[i], 1e-13 * system.Value().row_scale[i] * uncancelled) | ASSERT_GT(direction_norm, 0.0) | ASSERT_TRUE(mapped_direction.HasValue()) | ASSERT_GT(tangent_frobenius, 0.0) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_EQ(consecutive, expected_pass) | ASSERT_TRUE(no_force_actual.HasValue()) | ASSERT_TRUE(no_force_operators.HasValue()) | ASSERT_EQ(omitted_external_gradient.rows.size(), no_force_operators.Value().rows.size()) | ASSERT_EQ(omitted.size(), no_force.size()) | ASSERT_EQ(omitted[entry].dof, no_force[entry].dof) | ASSERT_TRUE(saw_external_position_gradient) | ASSERT_TRUE(omitted_external_gradient_system.HasValue()) | ASSERT_TRUE(ha_actual.HasValue()) | ASSERT_TRUE(ha_operators.HasValue()) | ASSERT_TRUE(ha_system.HasValue()) | ASSERT_TRUE(omitted_ha_system.HasValue()) | ASSERT_TRUE(hw_actual.HasValue()) | ASSERT_TRUE(hw_operators.HasValue()) | ASSERT_TRUE(hw_system.HasValue()) | ASSERT_TRUE(omitted_hw_system.HasValue()) | ASSERT_TRUE(third_system.HasValue()) | ASSERT_TRUE(mixed_time_system.HasValue()) | ASSERT_TRUE(omitted_second_time_rates.HasValue()) | EXPECT_GT(omitted_second_time_hidden, 1.0e-8) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RequiresEveryTranslationGateAndThaws HhtReducedChannelNewton.RequiresEveryTranslationGateAndThaws; assertion 10개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RequiresEveryTranslationGateAndThaws 유지 원문 검사 body 및 assertion 동일. 635a7b5bdebdb547e60223694971085c31ae50c328a17ee943f24d0f968e86b3 635a7b5bdebdb547e60223694971085c31ae50c328a17ee943f24d0f968e86b3 EXPECT_TRUE(refine({1e-10, 2e-10}, zero)) | EXPECT_FALSE(refine({2e-10, 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, 1e-10}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero, false)) | EXPECT_FALSE(refine({0.0, 2e-10}, correction)) | EXPECT_FALSE(refine({0.0, 2e-10}, correction)) | EXPECT_FALSE(refine({std::numeric_limits::infinity(), 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, std::numeric_limits::quiet_NaN()}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero)) EXPECT_TRUE(refine({1e-10, 2e-10}, zero)) | EXPECT_FALSE(refine({2e-10, 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, 1e-10}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero, false)) | EXPECT_FALSE(refine({0.0, 2e-10}, correction)) | EXPECT_FALSE(refine({0.0, 2e-10}, correction)) | EXPECT_FALSE(refine({std::numeric_limits::infinity(), 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, std::numeric_limits::quiet_NaN()}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero)) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RetainsAllAuxiliaryBlocksAndFullModelDefect HhtReducedChannelNewton.RetainsAllAuxiliaryBlocksAndFullModelDefect; assertion 22개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RetainsAllAuxiliaryBlocksAndFullModelDefect 유지 원문 검사 body 및 assertion 동일. e1aa1e05ebaeb7f832033a6db8283163510c5d3266ee5a5863a445694b12e3d7 e1aa1e05ebaeb7f832033a6db8283163510c5d3266ee5a5863a445694b12e3d7 ASSERT_TRUE(tangent.HasValue()) | ASSERT_TRUE(selected.HasValue()) | EXPECT_EQ(selected.Value().full_indices, (std::vector{1U, 2U, 3U, 4U, 5U})) | ASSERT_TRUE(solver.FactorizeFresh(selected.Value().tangent).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(selected.Value().rhs, step).IsOk()) | EXPECT_TRUE(fesa::hht_internal::CheckLinearSolve( selected.Value().tangent, selected.Value().rhs, step).IsOk()) | ASSERT_TRUE(embedded.HasValue()) | EXPECT_DOUBLE_EQ(embedded.Value()[0U], 0.0) | EXPECT_NEAR(embedded.Value()[i], expected[i], 1e-14) | EXPECT_FALSE(fesa::hht_internal::CheckLinearSolve( full.tangent, full.rhs, embedded.Value()).IsOk()) | ASSERT_TRUE(mapped.HasValue()) | EXPECT_DOUBLE_EQ(mapped.Value().coordinate[0U], 0.0) | EXPECT_DOUBLE_EQ(mapped.Value().velocity[0U], 0.0) | EXPECT_DOUBLE_EQ(mapped.Value().acceleration[0U], 0.0) | EXPECT_NEAR(mapped.Value().coordinate[5U], 0.4, 1e-14) | EXPECT_NEAR(mapped.Value().velocity[5U], 0.2, 1e-14) | EXPECT_NEAR(mapped.Value().acceleration[5U], -0.3, 1e-14) | ASSERT_TRUE(thawed.HasValue()) | EXPECT_EQ(thawed.Value().full_indices.size(), 6U) | EXPECT_DOUBLE_EQ(thawed.Value().rhs[0U], rhs[0U]) | EXPECT_FALSE(fesa::hht_reduced_internal::SelectAugmentedSolve( invalid, chart, true).HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::EmbedAugmentedSolution( selected.Value(), step, 6U).HasValue()) ASSERT_TRUE(tangent.HasValue()) | ASSERT_TRUE(selected.HasValue()) | EXPECT_EQ(selected.Value().full_indices, (std::vector{1U, 2U, 3U, 4U, 5U})) | ASSERT_TRUE(solver.FactorizeFresh(selected.Value().tangent).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(selected.Value().rhs, step).IsOk()) | EXPECT_TRUE(fesa::hht_internal::CheckLinearSolve( selected.Value().tangent, selected.Value().rhs, step).IsOk()) | ASSERT_TRUE(embedded.HasValue()) | EXPECT_DOUBLE_EQ(embedded.Value()[0U], 0.0) | EXPECT_NEAR(embedded.Value()[i], expected[i], 1e-14) | EXPECT_FALSE(fesa::hht_internal::CheckLinearSolve( full.tangent, full.rhs, embedded.Value()).IsOk()) | ASSERT_TRUE(mapped.HasValue()) | EXPECT_DOUBLE_EQ(mapped.Value().coordinate[0U], 0.0) | EXPECT_DOUBLE_EQ(mapped.Value().velocity[0U], 0.0) | EXPECT_DOUBLE_EQ(mapped.Value().acceleration[0U], 0.0) | EXPECT_NEAR(mapped.Value().coordinate[5U], 0.4, 1e-14) | EXPECT_NEAR(mapped.Value().velocity[5U], 0.2, 1e-14) | EXPECT_NEAR(mapped.Value().acceleration[5U], -0.3, 1e-14) | ASSERT_TRUE(thawed.HasValue()) | EXPECT_EQ(thawed.Value().full_indices.size(), 6U) | EXPECT_DOUBLE_EQ(thawed.Value().rhs[0U], rhs[0U]) | EXPECT_FALSE(fesa::hht_reduced_internal::SelectAugmentedSolve( invalid, chart, true).HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::EmbedAugmentedSolution( selected.Value(), step, 6U).HasValue()) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RestrictedSingularityIsNotFullInvertibility HhtReducedChannelNewton.RestrictedSingularityIsNotFullInvertibility; assertion 4개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RestrictedSingularityIsNotFullInvertibility 유지 원문 검사 body 및 assertion 동일. 929b1e67526d7ea5095985c949c85d901e3f90db028afcd2bdd3826dba226d7b 929b1e67526d7ea5095985c949c85d901e3f90db028afcd2bdd3826dba226d7b ASSERT_TRUE(matrix.HasValue()) | ASSERT_TRUE(restricted.HasValue()) | ASSERT_TRUE(solver.FactorizeFresh(full.tangent).IsOk()) | EXPECT_FALSE(solver.FactorizeFresh(restricted.Value().tangent).IsOk()) ASSERT_TRUE(matrix.HasValue()) | ASSERT_TRUE(restricted.HasValue()) | ASSERT_TRUE(solver.FactorizeFresh(full.tangent).IsOk()) | EXPECT_FALSE(solver.FactorizeFresh(restricted.Value().tangent).IsOk()) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.NullMetricKeepsFiniteLeftAssociatedProducts HhtReducedOperators.NullMetricKeepsFiniteLeftAssociatedProducts; assertion 9개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.NullMetricKeepsFiniteLeftAssociatedProducts 유지 원문 검사 body 및 assertion 동일. 4998c48dc3585979cd5e3480513dd96d58f984516945f1cadc4f32557ea92960 4998c48dc3585979cd5e3480513dd96d58f984516945f1cadc4f32557ea92960 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(std::isfinite(original_metric)) | ASSERT_GT(original_metric, 0.0) | ASSERT_FALSE(std::isfinite(block[1U] * n[1U] + block[2U] * n[2U])) | ASSERT_TRUE(metric.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(checked.HasValue()) | EXPECT_GE(checked.Value(), std::ldexp(1.0, -32)) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(std::isfinite(original_metric)) | ASSERT_GT(original_metric, 0.0) | ASSERT_FALSE(std::isfinite(block[1U] * n[1U] + block[2U] * n[2U])) | ASSERT_TRUE(metric.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(checked.HasValue()) | EXPECT_GE(checked.Value(), std::ldexp(1.0, -32)) -Dev tests/unit/analysis/hht_reduced_shell_test.cpp support@1-222 helper/oracle/fixture/include/static assertion 구간: RestoreTrialEnvironment, ExpectSameBits, ExpectSameOperators, Fixture, MakeFixture, if, Rotations, Assemble, SetComponentColumns, PIndex, Hidden, for tests/unit/analysis/hht_reduced_shell_test.cpp file-support 유지 Dev trial cache·context 변경·copy/move 소유권·실패 우선순위·left-association 검사를 복원한다. 같은 trial의 독립 local 평가만 ShellTrialElement::EvaluateTrial 호출로 이관한다. 4d9a4a9a4013ce8095a53b150b5202796b635ea1771c1143571453afa1f6bd63 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_reduced_shell_test.cpp support@1739-1740 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_reduced_shell_test.cpp file-support 유지 Dev trial cache·context 변경·copy/move 소유권·실패 우선순위·left-association 검사를 복원한다. 같은 trial의 독립 local 평가만 ShellTrialElement::EvaluateTrial 호출로 이관한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_shell_physics_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 27개 tests/unit/analysis/hht_shell_physics_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b8a2dbd416d53e6807dba075bb2f98ee88c0331d5398840569823997248412c4 029bc0a2ece9780b1c904e966bf71a2a43741317000b7bd1ea3544c2d07968a1 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.NodalRigidForceRatesMatchIndependentTimeDifferences HhtShellPhysics.NodalRigidForceRatesMatchIndependentTimeDifferences; assertion 2개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.NodalRigidForceRatesMatchIndependentTimeDifferences 유지 원문 검사 body 및 assertion 동일. 8e7bbb65a70d3694839108bc430e01ae3292d6b4ab980922f7c9577af3185f6c 8e7bbb65a70d3694839108bc430e01ae3292d6b4ab980922f7c9577af3185f6c ASSERT_GT(scale, 0.0) | EXPECT_LE(error / scale, 1.0e-6) ASSERT_GT(scale, 0.0) | EXPECT_LE(error / scale, 1.0e-6) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ExternalDrillingHessianBalancesGradientAcceleration HhtShellPhysics.ExternalDrillingHessianBalancesGradientAcceleration; assertion 8개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ExternalDrillingHessianBalancesGradientAcceleration 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e83c3c64a41a332d6dea5ac10002e9e4ff3915552778b2396731397294b40b0a 9456fd3f90ad9a3f30a93fd5e5d513eb2798f88ae63df197d1c0db7471c84a53 ASSERT_TRUE(external.HasValue()) | EXPECT_NEAR(external.Value().directional_second, -1.0 / 6.0, 1.0e-14) | EXPECT_NEAR(gradient_acceleration, 1.0 / 6.0, 1.0e-14) | EXPECT_NEAR(external.Value().directional_second + gradient_acceleration, 0.0, 1.0e-14) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(middle.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_NEAR(finite_difference, external.Value().directional_second, 1.0e-8) ASSERT_TRUE(external.HasValue()) | EXPECT_NEAR(external.Value().directional_second, -1.0 / 6.0, 1.0e-14) | EXPECT_NEAR(gradient_acceleration, 1.0 / 6.0, 1.0e-14) | EXPECT_NEAR(external.Value().directional_second + gradient_acceleration, 0.0, 1.0e-14) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(middle.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_NEAR(finite_difference, external.Value().directional_second, 1.0e-8) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ManufacturedHiddenCountsExternalHessianOnce HhtShellPhysics.ManufacturedHiddenCountsExternalHessianOnce; assertion 2개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ManufacturedHiddenCountsExternalHessianOnce 유지 원문 검사 body 및 assertion 동일. 66c7a72b17bea62b6f47d56a3ad1c08c66eec8169ebaaa0adcdc71e7b85a892c 66c7a72b17bea62b6f47d56a3ad1c08c66eec8169ebaaa0adcdc71e7b85a892c ASSERT_GT(scale, 0.0) | EXPECT_LE(std::abs(balance.hidden_acceleration_defect[node] - expected) / scale, 1.0e-12) ASSERT_GT(scale, 0.0) | EXPECT_LE(std::abs(balance.hidden_acceleration_defect[node] - expected) / scale, 1.0e-12) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08aRigidOrbitMatchesIndependentVolumeForcePowerAndMomentum HhtShellPhysics.C08aRigidOrbitMatchesIndependentVolumeForcePowerAndMomentum; assertion 14개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08aRigidOrbitMatchesIndependentVolumeForcePowerAndMomentum 유지 원문 검사 body 및 assertion 동일. fcb752c10cea7eb76dfcbb5e2035bb3eb8392589fafa6e8673656dd5ecfe934f fcb752c10cea7eb76dfcbb5e2035bb3eb8392589fafa6e8673656dd5ecfe934f EXPECT_LE(difference.Norm() / oracle.force.Norm(), 1.0e-12) | EXPECT_LE(std::abs(assembly.frame.kinetic_energy - static_cast(oracle.kinetic)) / static_cast(oracle.kinetic), 1.0e-12) | EXPECT_LE(std::abs(oracle.force.Dot(exact.velocity) - static_cast(oracle.power)) / static_cast(oracle.power_scale), 1.0e-10) | EXPECT_LE(assembly.frame.physical_strain_energy / 800.0, 1.0e-10) | EXPECT_LE(assembly.frame.drilling_energy / 800.0, 1.0e-10) | EXPECT_DOUBLE_EQ(scaled_force.Norm(), 0.0) | EXPECT_LE(scaled_force.Norm() / force_scale, 1.0e-10) | EXPECT_LE(momentum_error / static_cast(oracle.momentum_scale), 1.0e-12) | EXPECT_LE( angular_error / static_cast(oracle.angular_momentum_scale), 1.0e-12) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_LE(value / scale, 1.0e-10) | EXPECT_TRUE(fesa::hht_internal::CompleteEquilibrium( *fixture.domain, fixture.dofs, assembly, &balance) .IsOk()) | EXPECT_LE(assembly.mass.Multiply(null).Norm() / mass_norm, 1.0e-12) | EXPECT_GT(maximum_rotation, 0.5) EXPECT_LE(difference.Norm() / oracle.force.Norm(), 1.0e-12) | EXPECT_LE(std::abs(assembly.frame.kinetic_energy - static_cast(oracle.kinetic)) / static_cast(oracle.kinetic), 1.0e-12) | EXPECT_LE(std::abs(oracle.force.Dot(exact.velocity) - static_cast(oracle.power)) / static_cast(oracle.power_scale), 1.0e-10) | EXPECT_LE(assembly.frame.physical_strain_energy / 800.0, 1.0e-10) | EXPECT_LE(assembly.frame.drilling_energy / 800.0, 1.0e-10) | EXPECT_DOUBLE_EQ(scaled_force.Norm(), 0.0) | EXPECT_LE(scaled_force.Norm() / force_scale, 1.0e-10) | EXPECT_LE(momentum_error / static_cast(oracle.momentum_scale), 1.0e-12) | EXPECT_LE( angular_error / static_cast(oracle.angular_momentum_scale), 1.0e-12) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_LE(value / scale, 1.0e-10) | EXPECT_TRUE(fesa::hht_internal::CompleteEquilibrium( *fixture.domain, fixture.dofs, assembly, &balance) .IsOk()) | EXPECT_LE(assembly.mass.Multiply(null).Norm() / mass_norm, 1.0e-12) | EXPECT_GT(maximum_rotation, 0.5) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisCoefficientRadiusSurvivesSparseProjectionAndLift HhtShellPhysics.BasisCoefficientRadiusSurvivesSparseProjectionAndLift; assertion 4개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisCoefficientRadiusSurvivesSparseProjectionAndLift 유지 원문 검사 body 및 assertion 동일. 28a447ddb306564c9364deaf08aacaeeb7189e3b604a6c594230eae915501a84 28a447ddb306564c9364deaf08aacaeeb7189e3b604a6c594230eae915501a84 EXPECT_GT(lifted[3U], 0.0) | EXPECT_GE(lifted[4U], 4.0 * 0x1p-53) | EXPECT_GE(lifted[5U], 4.0 * 0x1p-53) | EXPECT_GT(projected[0U], 2.0 * 0x1p-53) EXPECT_GT(lifted[3U], 0.0) | EXPECT_GE(lifted[4U], 4.0 * 0x1p-53) | EXPECT_GE(lifted[5U], 4.0 * 0x1p-53) | EXPECT_GT(projected[0U], 2.0 * 0x1p-53) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisRadiusReplayMatchesCompensatedProjectionAndCombinedLift HhtShellPhysics.BasisRadiusReplayMatchesCompensatedProjectionAndCombinedLift; assertion 11개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisRadiusReplayMatchesCompensatedProjectionAndCombinedLift 유지 원문 검사 body 및 assertion 동일. 31474d755fe7fa0af870a6fbb2bbba642858fd2250d3d8c7e01158e109379958 31474d755fe7fa0af870a6fbb2bbba642858fd2250d3d8c7e01158e109379958 EXPECT_DOUBLE_EQ(projected[0U], 1.0) | EXPECT_DOUBLE_EQ(projection_center[0U], projected[0U]) | EXPECT_GT(projection_radius[0U], 0.0) | EXPECT_DOUBLE_EQ(lifted[0U], 1.0) | EXPECT_DOUBLE_EQ(replay.center[0U], lifted[0U]) | EXPECT_DOUBLE_EQ(plain, 0.0) | EXPECT_GE(target_radius, 0.25) | EXPECT_DOUBLE_EQ(small_replay.center[0U], small_lifted[0U]) | EXPECT_DOUBLE_EQ(small_replay.center[0U], 1.0) | ASSERT_LT(small_replay.radius[0U], 0.25) | EXPECT_GE(small_target_radius, 0.25) EXPECT_DOUBLE_EQ(projected[0U], 1.0) | EXPECT_DOUBLE_EQ(projection_center[0U], projected[0U]) | EXPECT_GT(projection_radius[0U], 0.0) | EXPECT_DOUBLE_EQ(lifted[0U], 1.0) | EXPECT_DOUBLE_EQ(replay.center[0U], lifted[0U]) | EXPECT_DOUBLE_EQ(plain, 0.0) | EXPECT_GE(target_radius, 0.25) | EXPECT_DOUBLE_EQ(small_replay.center[0U], small_lifted[0U]) | EXPECT_DOUBLE_EQ(small_replay.center[0U], 1.0) | ASSERT_LT(small_replay.radius[0U], 0.25) | EXPECT_GE(small_target_radius, 0.25) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisLiftedAlgorithmicCorrectionUsesHhtFilterFactor HhtShellPhysics.BasisLiftedAlgorithmicCorrectionUsesHhtFilterFactor; assertion 3개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisLiftedAlgorithmicCorrectionUsesHhtFilterFactor 유지 원문 검사 body 및 assertion 동일. 1135c210293ec3de4a84aed758353386e122ef4db703182ee03e2b48fca4340c 1135c210293ec3de4a84aed758353386e122ef4db703182ee03e2b48fca4340c EXPECT_NEAR(projected[0U], delta_ar, 1.0e-15) | ASSERT_GT(omission_scale, 0.0) | EXPECT_GT(std::abs(omitted[0U] - delta_ar) / omission_scale, 1.0e-12) EXPECT_NEAR(projected[0U], delta_ar, 1.0e-15) | ASSERT_GT(omission_scale, 0.0) | EXPECT_GT(std::abs(omitted[0U] - delta_ar) / omission_scale, 1.0e-12) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.CarriedArRadiiIncludeAbsorbedUpdatesAndInputHistory HhtShellPhysics.CarriedArRadiiIncludeAbsorbedUpdatesAndInputHistory; assertion 10개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.CarriedArRadiiIncludeAbsorbedUpdatesAndInputHistory 유지 원문 검사 body 및 assertion 동일. b6ca11dc0cf68db6fc9d0a966480453e8c85dff9d3588962557189cb91cf455b b6ca11dc0cf68db6fc9d0a966480453e8c85dff9d3588962557189cb91cf455b ASSERT_EQ(std::fegetround(), FE_TONEAREST) | ASSERT_DOUBLE_EQ(doubled, 2.0 * std::numeric_limits::denorm_min()) | ASSERT_DOUBLE_EQ(rounded, 1.0) | EXPECT_GE(first, tiny) | EXPECT_GT(second, first) | EXPECT_GE(second, 2.0 * tiny) | EXPECT_GE(ProductRadius(2.0, tiny, 4.0, tiny), 6.0 * tiny) | EXPECT_GE(QuotientRadius(1.0, tiny, 2.0, 0.0), 0.5 * tiny) | EXPECT_THROW(QuotientRadius(1.0, 0.0, 1.0, 1.0), std::runtime_error) | EXPECT_TRUE(std::isinf(AddRadius(std::numeric_limits::max(), std::numeric_limits::max(), 0.0))) ASSERT_EQ(std::fegetround(), FE_TONEAREST) | ASSERT_DOUBLE_EQ(doubled, 2.0 * std::numeric_limits::denorm_min()) | ASSERT_DOUBLE_EQ(rounded, 1.0) | EXPECT_GE(first, tiny) | EXPECT_GT(second, first) | EXPECT_GE(second, 2.0 * tiny) | EXPECT_GE(ProductRadius(2.0, tiny, 4.0, tiny), 6.0 * tiny) | EXPECT_GE(QuotientRadius(1.0, tiny, 2.0, 0.0), 0.5 * tiny) | EXPECT_THROW(QuotientRadius(1.0, 0.0, 1.0, 1.0), std::runtime_error) | EXPECT_TRUE(std::isinf(AddRadius(std::numeric_limits::max(), std::numeric_limits::max(), 0.0))) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.PrimaryCoordinateRetainsCorrectionAbsorbedByCarriedAr HhtShellPhysics.PrimaryCoordinateRetainsCorrectionAbsorbedByCarriedAr; assertion 6개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.PrimaryCoordinateRetainsCorrectionAbsorbedByCarriedAr 유지 원문 검사 body 및 assertion 동일. 4b84aaf12146380cfb61eeebe617e119bce3a1155aa3ea45d9c020bda2c1cb42 4b84aaf12146380cfb61eeebe617e119bce3a1155aa3ea45d9c020bda2c1cb42 EXPECT_DOUBLE_EQ(pp + factor * next_ar, initial_p) | EXPECT_GT(next_p, initial_p) | EXPECT_DOUBLE_EQ(next_p - initial_p, delta_p) | EXPECT_LE(std::abs(next_p - (pp + factor * next_ar)) / scale, 1.0e-12) | EXPECT_GT(first_radius, inherited_radius) | EXPECT_GT(AddRadius(next_p + delta_p, first_radius, 0.0), first_radius) EXPECT_DOUBLE_EQ(pp + factor * next_ar, initial_p) | EXPECT_GT(next_p, initial_p) | EXPECT_DOUBLE_EQ(next_p - initial_p, delta_p) | EXPECT_LE(std::abs(next_p - (pp + factor * next_ar)) / scale, 1.0e-12) | EXPECT_GT(first_radius, inherited_radius) | EXPECT_GT(AddRadius(next_p + delta_p, first_radius, 0.0), first_radius) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.CompensatedCoordinateRetainsAbsorbedNewtonCorrections HhtShellPhysics.CompensatedCoordinateRetainsAbsorbedNewtonCorrections; assertion 12개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.CompensatedCoordinateRetainsAbsorbedNewtonCorrections 유지 원문 검사 body 및 assertion 동일. f9679eaf06ac657dba93fb8d8bcd5d4b9942deb7d677c1fe4ffe86fc6f7fd072 f9679eaf06ac657dba93fb8d8bcd5d4b9942deb7d677c1fe4ffe86fc6f7fd072 EXPECT_DOUBLE_EQ(high, 1.0) | EXPECT_DOUBLE_EQ(low, delta) | EXPECT_DOUBLE_EQ(high, 1.0 + std::ldexp(1.0, -52)) | EXPECT_DOUBLE_EQ(low, 0.0) | EXPECT_GT(radius, inherited_radius) | EXPECT_GE(UpSum(radius, std::abs(low)), inherited_radius) | EXPECT_DOUBLE_EQ(high, 1.0 + std::ldexp(1.0, -52)) | EXPECT_DOUBLE_EQ(low, -delta) | EXPECT_DOUBLE_EQ(high, 2.0 * std::numeric_limits::denorm_min()) | EXPECT_DOUBLE_EQ(low, 0.0) | EXPECT_FALSE(std::isfinite(high)) | EXPECT_FALSE(std::isfinite(radius)) EXPECT_DOUBLE_EQ(high, 1.0) | EXPECT_DOUBLE_EQ(low, delta) | EXPECT_DOUBLE_EQ(high, 1.0 + std::ldexp(1.0, -52)) | EXPECT_DOUBLE_EQ(low, 0.0) | EXPECT_GT(radius, inherited_radius) | EXPECT_GE(UpSum(radius, std::abs(low)), inherited_radius) | EXPECT_DOUBLE_EQ(high, 1.0 + std::ldexp(1.0, -52)) | EXPECT_DOUBLE_EQ(low, -delta) | EXPECT_DOUBLE_EQ(high, 2.0 * std::numeric_limits::denorm_min()) | EXPECT_DOUBLE_EQ(low, 0.0) | EXPECT_FALSE(std::isfinite(high)) | EXPECT_FALSE(std::isfinite(radius)) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.FrozenGraphIndicatorIncludesCoordinateAndRateCurvature HhtShellPhysics.FrozenGraphIndicatorIncludesCoordinateAndRateCurvature; assertion 8개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.FrozenGraphIndicatorIncludesCoordinateAndRateCurvature 유지 원문 검사 body 및 assertion 동일. 5f98ecd78623006a570c8acf4c252ad547abf5c9d490d0888e9ec4ccb39baa08 5f98ecd78623006a570c8acf4c252ad547abf5c9d490d0888e9ec4ccb39baa08 EXPECT_GE(indicator.coordinates[1U], 2.0e-6) | EXPECT_GE(indicator.velocity[1U], 2.0e-6 + 2.0e-7) | EXPECT_GE(indicator.acceleration[1U], 4.0e-6 + 4.0e-7 + 2.0e-8) | EXPECT_TRUE(std::isfinite(indicator.acceleration[1U])) | EXPECT_GE(indicator.algorithmic_acceleration[1U], (1.0 + parameters.alpha) * indicator.acceleration[1U]) | EXPECT_TRUE(std::isinf(unresolved.coordinates[1U])) | EXPECT_TRUE(std::isinf(unresolved.velocity[1U])) | EXPECT_TRUE(std::isinf(unresolved.acceleration[1U])) EXPECT_GE(indicator.coordinates[1U], 2.0e-6) | EXPECT_GE(indicator.velocity[1U], 2.0e-6 + 2.0e-7) | EXPECT_GE(indicator.acceleration[1U], 4.0e-6 + 4.0e-7 + 2.0e-8) | EXPECT_TRUE(std::isfinite(indicator.acceleration[1U])) | EXPECT_GE(indicator.algorithmic_acceleration[1U], (1.0 + parameters.alpha) * indicator.acceleration[1U]) | EXPECT_TRUE(std::isinf(unresolved.coordinates[1U])) | EXPECT_TRUE(std::isinf(unresolved.velocity[1U])) | EXPECT_TRUE(std::isinf(unresolved.acceleration[1U])) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.GraphBasisCertificateBoundsMatrixAndRhsPerturbations HhtShellPhysics.GraphBasisCertificateBoundsMatrixAndRhsPerturbations; assertion 13개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.GraphBasisCertificateBoundsMatrixAndRhsPerturbations 유지 원문 검사 body 및 assertion 동일. d620963924f330ab1f029380440d739230f3c3341475bcdbf97a3453f7fe5339 d620963924f330ab1f029380440d739230f3c3341475bcdbf97a3453f7fe5339 ASSERT_TRUE(inverse.complete) | EXPECT_LE(std::abs(actual[0U] - center[0U]), bound[0U]) | EXPECT_GT(bound[0U], 0.0) | EXPECT_GE(centered[0U], std::ldexp(1.0, -30)) | EXPECT_EQ(UpProduct(0.0, std::numeric_limits::infinity()), 0.0) | EXPECT_TRUE(std::isinf(UpProduct(0.0, std::numeric_limits::quiet_NaN()))) | EXPECT_FALSE(CertifyGraphInverse(products, &solver).complete) | EXPECT_THROW(BoundGraphSolution(products, inverse, rhs, fesa::Vector(1U), center), std::runtime_error) | ASSERT_TRUE(inverse.complete) | EXPECT_LE(std::abs(actual[i] - center[i]), bound[i]) | EXPECT_GT(bound[i], 9.0) | ASSERT_TRUE(invalid_inverse.complete) | EXPECT_THROW(BoundGraphSolution(products, invalid_inverse, rhs, fesa::Vector(4U), center), std::runtime_error) ASSERT_TRUE(inverse.complete) | EXPECT_LE(std::abs(actual[0U] - center[0U]), bound[0U]) | EXPECT_GT(bound[0U], 0.0) | EXPECT_GE(centered[0U], std::ldexp(1.0, -30)) | EXPECT_EQ(UpProduct(0.0, std::numeric_limits::infinity()), 0.0) | EXPECT_TRUE(std::isinf(UpProduct(0.0, std::numeric_limits::quiet_NaN()))) | EXPECT_FALSE(CertifyGraphInverse(products, &solver).complete) | EXPECT_THROW(BoundGraphSolution(products, inverse, rhs, fesa::Vector(1U), center), std::runtime_error) | ASSERT_TRUE(inverse.complete) | EXPECT_LE(std::abs(actual[i] - center[i]), bound[i]) | EXPECT_GT(bound[i], 9.0) | ASSERT_TRUE(invalid_inverse.complete) | EXPECT_THROW(BoundGraphSolution(products, invalid_inverse, rhs, fesa::Vector(4U), center), std::runtime_error) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.RestrictedLastSolvePreservesOmittedTranslationDefect HhtShellPhysics.RestrictedLastSolvePreservesOmittedTranslationDefect; assertion 10개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.RestrictedLastSolvePreservesOmittedTranslationDefect 유지 원문 검사 body 및 assertion 동일. c779af538471833c822bd7697c9114c63dcca6dbaa3ba7953dd8abadf7c306f2 c779af538471833c822bd7697c9114c63dcca6dbaa3ba7953dd8abadf7c306f2 ASSERT_TRUE(reduced::ShouldRefineAngular(chart, {0.0, 1.0}, {0.0, 0.0, 0.0, 0.0}, true)) | ASSERT_TRUE(selected.angular_only) | ASSERT_EQ(selected.full_indices, std::vector({1U})) | EXPECT_EQ(embedded[0U], 0.0) | EXPECT_EQ(embedded[1U], 1.0) | EXPECT_EQ(selected_residual[0U] - selected.rhs[0U], 0.0) | EXPECT_EQ(full_defect[0U], -2.0) | EXPECT_EQ(full_defect[1U], 0.0) | EXPECT_GT(std::abs(full_model[0U]), 0.0) | EXPECT_GT(std::abs(full_model[1U]), 0.0) ASSERT_TRUE(reduced::ShouldRefineAngular(chart, {0.0, 1.0}, {0.0, 0.0, 0.0, 0.0}, true)) | ASSERT_TRUE(selected.angular_only) | ASSERT_EQ(selected.full_indices, std::vector({1U})) | EXPECT_EQ(embedded[0U], 0.0) | EXPECT_EQ(embedded[1U], 1.0) | EXPECT_EQ(selected_residual[0U] - selected.rhs[0U], 0.0) | EXPECT_EQ(full_defect[0U], -2.0) | EXPECT_EQ(full_defect[1U], 0.0) | EXPECT_GT(std::abs(full_model[0U]), 0.0) | EXPECT_GT(std::abs(full_model[1U]), 0.0) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.RestrictedRecordNoiseIncludesFullModelOmittedUDefect HhtShellPhysics.RestrictedRecordNoiseIncludesFullModelOmittedUDefect; assertion 6개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.RestrictedRecordNoiseIncludesFullModelOmittedUDefect 유지 원문 검사 body 및 assertion 동일. 2deecf4d898da2c40d311b18173e7ae7a11f75f87024cc2f64e1cf63d0caedd1 2deecf4d898da2c40d311b18173e7ae7a11f75f87024cc2f64e1cf63d0caedd1 ASSERT_LT(u, chart.p_columns.size()) | ASSERT_LT(angular, chart.p_columns.size()) | ASSERT_EQ(restricted_selected.full_indices, baseline_selected.full_indices) | ASSERT_NE(full_defect[u], 0.0) | EXPECT_GT(mapped_model.coordinate.Norm(), 0.0) | EXPECT_GT(restricted_noise, baseline_noise) ASSERT_LT(u, chart.p_columns.size()) | ASSERT_LT(angular, chart.p_columns.size()) | ASSERT_EQ(restricted_selected.full_indices, baseline_selected.full_indices) | ASSERT_NE(full_defect[u], 0.0) | EXPECT_GT(mapped_model.coordinate.Norm(), 0.0) | EXPECT_GT(restricted_noise, baseline_noise) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ReducedManufacturedControllerKeepsExactInitialOrbit HhtShellPhysics.ReducedManufacturedControllerKeepsExactInitialOrbit; assertion 16개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ReducedManufacturedControllerKeepsExactInitialOrbit 유지 원문 검사 body 및 assertion 동일. 9bc51b902d77a1dbb6f75c292ca75f05e1bf8beb71bc73aef1176005d73804fd 9bc51b902d77a1dbb6f75c292ca75f05e1bf8beb71bc73aef1176005d73804fd ASSERT_EQ(grid.history.size(), 65U) | EXPECT_DOUBLE_EQ(grid.history.front().generalized_coordinates[i], exact.generalized_coordinates[i]) | EXPECT_DOUBLE_EQ(grid.history.front().velocity[i], exact.velocity[i]) | EXPECT_DOUBLE_EQ(grid.history.front().acceleration[i], exact.acceleration[i]) | EXPECT_DOUBLE_EQ(grid.history.front().algorithmic_acceleration[i], exact.acceleration[i]) | EXPECT_DOUBLE_EQ(frame.time, static_cast(index) / 64.0) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.generalized_coordinates.Size(), fixture.dofs.FullDofCount()) | EXPECT_EQ(frame.velocity.Size(), fixture.dofs.FullDofCount()) | EXPECT_EQ(frame.acceleration.Size(), fixture.dofs.FullDofCount()) | EXPECT_TRUE(std::isfinite((*channel)[i])) | EXPECT_LE(residual, 1.0e-10) | EXPECT_TRUE(std::isfinite((*defect)[i])) | EXPECT_EQ(grid.history.back().time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_DOUBLE_EQ(grid.history.back().time, 1.0) | EXPECT_GT(grid.maximum_rotation, 0.5) ASSERT_EQ(grid.history.size(), 65U) | EXPECT_DOUBLE_EQ(grid.history.front().generalized_coordinates[i], exact.generalized_coordinates[i]) | EXPECT_DOUBLE_EQ(grid.history.front().velocity[i], exact.velocity[i]) | EXPECT_DOUBLE_EQ(grid.history.front().acceleration[i], exact.acceleration[i]) | EXPECT_DOUBLE_EQ(grid.history.front().algorithmic_acceleration[i], exact.acceleration[i]) | EXPECT_DOUBLE_EQ(frame.time, static_cast(index) / 64.0) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.generalized_coordinates.Size(), fixture.dofs.FullDofCount()) | EXPECT_EQ(frame.velocity.Size(), fixture.dofs.FullDofCount()) | EXPECT_EQ(frame.acceleration.Size(), fixture.dofs.FullDofCount()) | EXPECT_TRUE(std::isfinite((*channel)[i])) | EXPECT_LE(residual, 1.0e-10) | EXPECT_TRUE(std::isfinite((*defect)[i])) | EXPECT_EQ(grid.history.back().time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_DOUBLE_EQ(grid.history.back().time, 1.0) | EXPECT_GT(grid.maximum_rotation, 0.5) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08aRigidManufacturedOrbitReducedCoordinateTimeConvergence HhtShellPhysics.C08aRigidManufacturedOrbitReducedCoordinateTimeConvergence; assertion 15개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08aRigidManufacturedOrbitReducedCoordinateTimeConvergence 유지 원문 검사 body 및 assertion 동일. 19dc62f139091fea4190eb7e7034119c9b725c4e46570f8acb6af9d590471c22 19dc62f139091fea4190eb7e7034119c9b725c4e46570f8acb6af9d590471c22 EXPECT_GT(grid.maximum_rotation, 0.5) | ASSERT_EQ(frame.hidden_velocity_defect.Size(), fixture.domain->Nodes().size()) | ASSERT_EQ(frame.hidden_velocity_defect_scale.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_EQ(frame.hidden_acceleration_defect.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_EQ(frame.hidden_acceleration_defect_scale.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_TRUE(std::isfinite(values.first)) | ASSERT_TRUE(std::isfinite(values.second)) | ASSERT_GE(values.second, 0.0) | EXPECT_DOUBLE_EQ(values.first, 0.0) | EXPECT_LE(std::abs(values.first) / values.second, 1.0e-10) | EXPECT_LE(errors.back()[channel], 1.0e-4) | ASSERT_GT(errors[grid][channel], 0.0) | ASSERT_GT(errors[grid + 1U][channel], 0.0) | EXPECT_GE(std::log2(errors[grid][channel] / errors[grid + 1U][channel]), 1.8) | EXPECT_GT(errors[grid][channel], 100.0 * std::max(grids[grid].solve_noise[channel], grids[grid].arithmetic_noise[channel])) EXPECT_GT(grid.maximum_rotation, 0.5) | ASSERT_EQ(frame.hidden_velocity_defect.Size(), fixture.domain->Nodes().size()) | ASSERT_EQ(frame.hidden_velocity_defect_scale.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_EQ(frame.hidden_acceleration_defect.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_EQ(frame.hidden_acceleration_defect_scale.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_TRUE(std::isfinite(values.first)) | ASSERT_TRUE(std::isfinite(values.second)) | ASSERT_GE(values.second, 0.0) | EXPECT_DOUBLE_EQ(values.first, 0.0) | EXPECT_LE(std::abs(values.first) / values.second, 1.0e-10) | EXPECT_LE(errors.back()[channel], 1.0e-4) | ASSERT_GT(errors[grid][channel], 0.0) | ASSERT_GT(errors[grid + 1U][channel], 0.0) | EXPECT_GE(std::log2(errors[grid][channel] / errors[grid + 1U][channel]), 1.8) | EXPECT_GT(errors[grid][channel], 100.0 * std::max(grids[grid].solve_noise[channel], grids[grid].arithmetic_noise[channel])) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08bInitialPhysicalSpectrumProbe HhtShellPhysics.C08bInitialPhysicalSpectrumProbe; assertion 4개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08bInitialPhysicalSpectrumProbe 유지 원문 검사 body 및 assertion 동일. 7673da377048ad5e617480ff75b5ef812d216306aa82ee6bd55e576582ea3551 7673da377048ad5e617480ff75b5ef812d216306aa82ee6bd55e576582ea3551 ASSERT_EQ(matrix.Rows(), 54U) | ASSERT_EQ(matrix.Columns(), 54U) | ASSERT_EQ(matrix.RowOffsets().size(), 55U) | ASSERT_LT(column, values.size()) ASSERT_EQ(matrix.Rows(), 54U) | ASSERT_EQ(matrix.Columns(), 54U) | ASSERT_EQ(matrix.RowOffsets().size(), 55U) | ASSERT_LT(column, values.size()) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.PredictorStartCompletesPreviouslyFailingLumpedFreePlateGrid HhtShellPhysics.PredictorStartCompletesPreviouslyFailingLumpedFreePlateGrid; assertion 4개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.PredictorStartCompletesPreviouslyFailingLumpedFreePlateGrid 유지 원문 검사 body 및 assertion 동일. 874c85b16464eb1986a4f6579949282d69aec903ef832d63d9212c6eb545d4f0 874c85b16464eb1986a4f6579949282d69aec903ef832d63d9212c6eb545d4f0 ASSERT_EQ(evidence.history.size(), 65U) | EXPECT_DOUBLE_EQ(evidence.history.back().time, kEndTime) | EXPECT_GE(evidence.maximum_rotation, 0.2) | EXPECT_LT(evidence.maximum_rotation, std::acos(-1.0)) ASSERT_EQ(evidence.history.size(), 65U) | EXPECT_DOUBLE_EQ(evidence.history.back().time, kEndTime) | EXPECT_GE(evidence.maximum_rotation, 0.2) | EXPECT_LT(evidence.maximum_rotation, std::acos(-1.0)) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08bFreeFiniteRotationPlateSelfConvergenceAndPhysicalInvariants HhtShellPhysics.C08bFreeFiniteRotationPlateSelfConvergenceAndPhysicalInvariants; assertion 11개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08bFreeFiniteRotationPlateSelfConvergenceAndPhysicalInvariants 유지 원문 검사 body 및 assertion 동일. 33dea1e6e2f44f6945fb386065b0319493f3658f049437474babe90c53736d20 33dea1e6e2f44f6945fb386065b0319493f3658f049437474babe90c53736d20 EXPECT_GE(grids.back().maximum_rotation, 0.2) | EXPECT_LE(differences.back()[channel], 1.0e-4) | ASSERT_GT(first, 0.0) | ASSERT_GT(second, 0.0) | EXPECT_GE(first / second, threshold) | EXPECT_GT(differences[pair][channel], 100.0 * noise) | EXPECT_LT(grids[final - 1U].*member, grids[final - 2U].*member) | EXPECT_LT(grids[final].*member, grids[final - 1U].*member) | EXPECT_LE(grids[final].*member, 0.6 * (grids[final - 1U].*member)) | EXPECT_LE(grids[final].*member, 1.0e-3) | EXPECT_LE(grids.back().momentum_error, 1.0e-3) EXPECT_GE(grids.back().maximum_rotation, 0.2) | EXPECT_LE(differences.back()[channel], 1.0e-4) | ASSERT_GT(first, 0.0) | ASSERT_GT(second, 0.0) | EXPECT_GE(first / second, threshold) | EXPECT_GT(differences[pair][channel], 100.0 * noise) | EXPECT_LT(grids[final - 1U].*member, grids[final - 2U].*member) | EXPECT_LT(grids[final].*member, grids[final - 1U].*member) | EXPECT_LE(grids[final].*member, 0.6 * (grids[final - 1U].*member)) | EXPECT_LE(grids[final].*member, 1.0e-3) | EXPECT_LE(grids.back().momentum_error, 1.0e-3) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.FrozenNearestCoordinatesPassPairArithmeticWithoutChangingHigh HhtReducedIncrement.FrozenNearestCoordinatesPassPairArithmeticWithoutChangingHigh; assertion 7개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.FrozenNearestCoordinatesPassPairArithmeticWithoutChangingHigh 유지 원문 검사 body 및 assertion 동일. ba5a3f724636ab75d38249cfc9c5583f72f8a08b3c0d67109c843892031a85d2 ba5a3f724636ab75d38249cfc9c5583f72f8a08b3c0d67109c843892031a85d2 EXPECT_TRUE(first.storage_pass) | EXPECT_TRUE(first.arithmetic_pass) | EXPECT_EQ(first.defect, 0.0) | EXPECT_TRUE(worst.storage_pass) | EXPECT_TRUE(worst.arithmetic_pass) | EXPECT_EQ(worst.defect, 0.0) | EXPECT_FALSE(missing_low.arithmetic_pass) EXPECT_TRUE(first.storage_pass) | EXPECT_TRUE(first.arithmetic_pass) | EXPECT_EQ(first.defect, 0.0) | EXPECT_TRUE(worst.storage_pass) | EXPECT_TRUE(worst.arithmetic_pass) | EXPECT_EQ(worst.defect, 0.0) | EXPECT_FALSE(missing_low.arithmetic_pass) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.StorageRequiresNearestEvenIncludingBothMidpointDirections HhtReducedIncrement.StorageRequiresNearestEvenIncludingBothMidpointDirections; assertion 8개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.StorageRequiresNearestEvenIncludingBothMidpointDirections 유지 원문 검사 body 및 assertion 동일. 01ead07c8dcec86cc541b6c45ad646cb7c1d2dd4d9eef28ba89436d7082a2954 01ead07c8dcec86cc541b6c45ad646cb7c1d2dd4d9eef28ba89436d7082a2954 EXPECT_TRUE(reduced::CheckPairIncrement(1.0, half_upper_spacing, 1.0, {half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(reduced::CheckPairIncrement(1.0, -std::ldexp(1.0, -54), 1.0, {-std::ldexp(1.0, -54)}, std::ldexp(1.0, -54)).storage_pass) | EXPECT_TRUE(reduced::CheckPairIncrement(-1.0, -half_upper_spacing, -1.0, {-half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(odd_tie.arithmetic_pass) | EXPECT_FALSE(odd_tie.storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(-odd, half_upper_spacing, -1.0, {-half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(misplaced_high.arithmetic_pass) | EXPECT_FALSE(misplaced_high.storage_pass) EXPECT_TRUE(reduced::CheckPairIncrement(1.0, half_upper_spacing, 1.0, {half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(reduced::CheckPairIncrement(1.0, -std::ldexp(1.0, -54), 1.0, {-std::ldexp(1.0, -54)}, std::ldexp(1.0, -54)).storage_pass) | EXPECT_TRUE(reduced::CheckPairIncrement(-1.0, -half_upper_spacing, -1.0, {-half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(odd_tie.arithmetic_pass) | EXPECT_FALSE(odd_tie.storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(-odd, half_upper_spacing, -1.0, {-half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(misplaced_high.arithmetic_pass) | EXPECT_FALSE(misplaced_high.storage_pass) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.WholeUpdateAndIndependentTraceRejectMissingCorrection HhtReducedIncrement.WholeUpdateAndIndependentTraceRejectMissingCorrection; assertion 5개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.WholeUpdateAndIndependentTraceRejectMissingCorrection 유지 원문 검사 body 및 assertion 동일. 262933302f3210cf4380812f75addf653e952d4ba8595c66d7d3b5772c59b6b5 262933302f3210cf4380812f75addf653e952d4ba8595c66d7d3b5772c59b6b5 EXPECT_TRUE(valid_whole.arithmetic_pass && valid_whole.storage_pass) | EXPECT_TRUE(valid_trace.arithmetic_pass && valid_trace.storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, correction, 1.0, {correction, 0.0, correction}, 2.0 * correction).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, correction, 1.0, {2.0 * correction, 0.0}, 2.0 * correction).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, -2.0 * correction, 1.0, {2.0 * correction, 0.0}, 2.0 * correction).arithmetic_pass) EXPECT_TRUE(valid_whole.arithmetic_pass && valid_whole.storage_pass) | EXPECT_TRUE(valid_trace.arithmetic_pass && valid_trace.storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, correction, 1.0, {correction, 0.0, correction}, 2.0 * correction).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, correction, 1.0, {2.0 * correction, 0.0}, 2.0 * correction).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, -2.0 * correction, 1.0, {2.0 * correction, 0.0}, 2.0 * correction).arithmetic_pass) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.ExactThresholdRejectsTailHiddenByRoundedRatio HhtReducedIncrement.ExactThresholdRejectsTailHiddenByRoundedRatio; assertion 8개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.ExactThresholdRejectsTailHiddenByRoundedRatio 유지 원문 검사 body 및 assertion 동일. a91408b59790f93c59b20fc737d66f81ae8f8cfe1e8502b13836b5ad0efbb24e a91408b59790f93c59b20fc737d66f81ae8f8cfe1e8502b13836b5ad0efbb24e EXPECT_TRUE(equality.arithmetic_pass) | EXPECT_EQ(above.ratio, threshold) | EXPECT_FALSE(above.arithmetic_pass) | EXPECT_EQ(above_decimal.ratio, threshold) | EXPECT_FALSE(above_decimal.arithmetic_pass) | EXPECT_TRUE(below.arithmetic_pass) | EXPECT_TRUE(maximum.arithmetic_pass) | EXPECT_FALSE(unsupported.arithmetic_pass) EXPECT_TRUE(equality.arithmetic_pass) | EXPECT_EQ(above.ratio, threshold) | EXPECT_FALSE(above.arithmetic_pass) | EXPECT_EQ(above_decimal.ratio, threshold) | EXPECT_FALSE(above_decimal.arithmetic_pass) | EXPECT_TRUE(below.arithmetic_pass) | EXPECT_TRUE(maximum.arithmetic_pass) | EXPECT_FALSE(unsupported.arithmetic_pass) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.ZeroScaleAndSubnormalArithmeticRemainExact HhtReducedIncrement.ZeroScaleAndSubnormalArithmeticRemainExact; assertion 8개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.ZeroScaleAndSubnormalArithmeticRemainExact 유지 원문 검사 body 및 assertion 동일. 6c6c8a54ef0f513faca05e189ae080d712597fbe859edf9c0df7169058d7086d 6c6c8a54ef0f513faca05e189ae080d712597fbe859edf9c0df7169058d7086d EXPECT_TRUE(zero.arithmetic_pass && zero.storage_pass) | EXPECT_TRUE(fixed_zero.arithmetic_pass && fixed_zero.storage_pass) | EXPECT_TRUE(tiny_valid.arithmetic_pass && tiny_valid.storage_pass) | EXPECT_EQ(tiny_valid.defect, 0.0) | EXPECT_TRUE(tiny_nonzero.storage_pass) | EXPECT_FALSE(tiny_nonzero.arithmetic_pass) | EXPECT_EQ(tiny_nonzero.defect, tiny) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, tiny, 0.0, {tiny}, tiny).storage_pass) EXPECT_TRUE(zero.arithmetic_pass && zero.storage_pass) | EXPECT_TRUE(fixed_zero.arithmetic_pass && fixed_zero.storage_pass) | EXPECT_TRUE(tiny_valid.arithmetic_pass && tiny_valid.storage_pass) | EXPECT_EQ(tiny_valid.defect, 0.0) | EXPECT_TRUE(tiny_nonzero.storage_pass) | EXPECT_FALSE(tiny_nonzero.arithmetic_pass) | EXPECT_EQ(tiny_nonzero.defect, tiny) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, tiny, 0.0, {tiny}, tiny).storage_pass) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.NonfiniteAndOverflowFailBeforeAcceptance HhtReducedIncrement.NonfiniteAndOverflowFailBeforeAcceptance; assertion 9개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.NonfiniteAndOverflowFailBeforeAcceptance 유지 원문 검사 body 및 assertion 동일. fb5fe44c1510d94b22e68a48f545271af54787ba6f38e7d57105f584b02eda1f fb5fe44c1510d94b22e68a48f545271af54787ba6f38e7d57105f584b02eda1f EXPECT_FALSE(reduced::CheckPairIncrement(invalid, 0.0, 0.0, {0.0}, 0.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, invalid, 0.0, {0.0}, 0.0).storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, invalid, {0.0}, 0.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, 0.0, {invalid}, 1.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, 0.0, {0.0}, invalid).arithmetic_pass) | EXPECT_FALSE(overflow.arithmetic_pass) | EXPECT_FALSE(overflow.storage_pass) | EXPECT_FALSE(unsupported.arithmetic_pass) | EXPECT_FALSE(unsupported.storage_pass) EXPECT_FALSE(reduced::CheckPairIncrement(invalid, 0.0, 0.0, {0.0}, 0.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, invalid, 0.0, {0.0}, 0.0).storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, invalid, {0.0}, 0.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, 0.0, {invalid}, 1.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, 0.0, {0.0}, invalid).arithmetic_pass) | EXPECT_FALSE(overflow.arithmetic_pass) | EXPECT_FALSE(overflow.storage_pass) | EXPECT_FALSE(unsupported.arithmetic_pass) | EXPECT_FALSE(unsupported.storage_pass) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedLifecycle.AllowsEvaluationAfterCorrection100ButNeverCorrection101 HhtReducedLifecycle.AllowsEvaluationAfterCorrection100ButNeverCorrection101; assertion 7개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedLifecycle.AllowsEvaluationAfterCorrection100ButNeverCorrection101 유지 원문 검사 body 및 assertion 동일. 60a86b1cfb0b9cc5f37aec09bacc49496468028cdff28ddf5010a1f482add364 60a86b1cfb0b9cc5f37aec09bacc49496468028cdff28ddf5010a1f482add364 EXPECT_TRUE(CanApplyOuterCorrection(0U)) | EXPECT_TRUE(CanApplyOuterCorrection(99U)) | EXPECT_FALSE(CanApplyOuterCorrection(100U)) | EXPECT_FALSE(CanApplyOuterCorrection(101U)) | EXPECT_EQ(corrections, 100U) | EXPECT_EQ(last_evaluation, 100U) | EXPECT_EQ(accepted, accept_at_100) EXPECT_TRUE(CanApplyOuterCorrection(0U)) | EXPECT_TRUE(CanApplyOuterCorrection(99U)) | EXPECT_FALSE(CanApplyOuterCorrection(100U)) | EXPECT_FALSE(CanApplyOuterCorrection(101U)) | EXPECT_EQ(corrections, 100U) | EXPECT_EQ(last_evaluation, 100U) | EXPECT_EQ(accepted, accept_at_100) -Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedLifecycle.FailedExecutionDoesNotPublishCandidateOrContaminateRetry HhtReducedLifecycle.FailedExecutionDoesNotPublishCandidateOrContaminateRetry; assertion 18개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedLifecycle.FailedExecutionDoesNotPublishCandidateOrContaminateRetry 유지 원문 검사 body 및 assertion 동일. 200703a9b2cc195cf471123955a0f052d0732809a02789d894ab9df46002879a 200703a9b2cc195cf471123955a0f052d0732809a02789d894ab9df46002879a "ASSERT_TRUE(baseline.HasValue()) | ASSERT_EQ(baseline.Value().state.AcceptedFrames().size(), 3U) | EXPECT_GT(baseline.Value().state.AcceptedFrames()[1U].generalized_coordinates[0U], 0.0) | ASSERT_FALSE(failed.HasValue()) | EXPECT_EQ(failing.failures, 1U) | EXPECT_EQ(failed.GetStatus().Diagnostics().front().code, ""c10-injected-backend"") | EXPECT_NE(partial_log.find(""\tincrement=2\t""), std::string::npos) | EXPECT_NE(partial_log.find(""\toutcome=failed""), std::string::npos) | EXPECT_NE(ReadLifecycleLog(baseline_path).find(line + '\n'), std::string::npos) | EXPECT_EQ(line.find(""\tincrement=2\t""), std::string::npos) | ASSERT_TRUE(retry.HasValue()) | ASSERT_EQ(actual.size(), expected.size()) | EXPECT_EQ(actual[frame].frame_index, expected[frame].frame_index) | EXPECT_EQ(actual[frame].iteration_count, expected[frame].iteration_count) | EXPECT_EQ(actual[frame].time, expected[frame].time) | ASSERT_EQ(left.Size(), right.Size()) | EXPECT_EQ(left[i], right[i]) | EXPECT_EQ(ReadLifecycleLog(retry_path), ReadLifecycleLog(baseline_path))" "ASSERT_TRUE(baseline.HasValue()) | ASSERT_EQ(baseline.Value().state.AcceptedFrames().size(), 3U) | EXPECT_GT(baseline.Value().state.AcceptedFrames()[1U].generalized_coordinates[0U], 0.0) | ASSERT_FALSE(failed.HasValue()) | EXPECT_EQ(failing.failures, 1U) | EXPECT_EQ(failed.GetStatus().Diagnostics().front().code, ""c10-injected-backend"") | EXPECT_NE(partial_log.find(""\tincrement=2\t""), std::string::npos) | EXPECT_NE(partial_log.find(""\toutcome=failed""), std::string::npos) | EXPECT_NE(ReadLifecycleLog(baseline_path).find(line + '\n'), std::string::npos) | EXPECT_EQ(line.find(""\tincrement=2\t""), std::string::npos) | ASSERT_TRUE(retry.HasValue()) | ASSERT_EQ(actual.size(), expected.size()) | EXPECT_EQ(actual[frame].frame_index, expected[frame].frame_index) | EXPECT_EQ(actual[frame].iteration_count, expected[frame].iteration_count) | EXPECT_EQ(actual[frame].time, expected[frame].time) | ASSERT_EQ(left.Size(), right.Size()) | EXPECT_EQ(left[i], right[i]) | EXPECT_EQ(ReadLifecycleLog(retry_path), ReadLifecycleLog(baseline_path))" -Dev tests/unit/analysis/hht_shell_physics_test.cpp support@1-528 helper/oracle/fixture/include/static assertion 구간: Message, Require, Add, Scale, Cross, Dot, Norm, Triple, Coordinates, Store, Fixture, MakeFixture, if, EmptyFrame, Evaluate, VolumeOracle, Integrate, OrbitChart, RigidOrbit, OrbitPhysicalRates, RigidForceRates, SparseNorm, ManufacturedHidden, CompleteManufacturedConstraints tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bff094dc63055b397162f08ce704ce39f346436a57378522c8c80557b71d9529 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_shell_physics_test.cpp support@738-987 helper/oracle/fixture/include/static assertion 구간: InitializeNullVelocity, GridEvidence, RecoveredAcceleration, ArithmeticRadii, Up, UpSum, UpProduct, RoundoffRadius, AddRadius, ProductRadius, RateSumRadius, Add, Value, Radius, QuotientRadius, reduced, ProjectBasisRadii, AccumulateLiftBasisRadii, BasisLiftReplay, ReplayLiftBasisRadii, LiftBasisRadii tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 13a1ff8e33d6400d5bdcf494a3a6abe02fdbf33582c3f5de2ef4f71bf5bd18d7 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_shell_physics_test.cpp support@1137-1157 helper/oracle/fixture/include/static assertion 구간: AdditionLowPart, AdvanceCoordinate tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 61ed0abe9524b8e3099608f9f117ed4ed88fb40aa98039f13024486c80f3d640 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_shell_physics_test.cpp support@1189-1673 helper/oracle/fixture/include/static assertion 구간: HhtCoordinateFactorRadius, RadiusNorm, GraphBasisProducts, GraphInverseCertificate, ContractGraphBasis, for, SparseFromDense, UpperRowSum, FiniteMatrix, FiniteNonnegativeMatrix, FiniteVector, FiniteNonnegativeVector, HasInfiniteRadius, FillInfinite, CertifyGraphInverse, AddPhysicalContractionRadius, BoundGraphSolution, GraphArithmeticIndicator, if tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b2e045bbe0fa0615cde9321d1f050fb0e003242df9c3c54c8ad5fa110caf906a 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_shell_physics_test.cpp support@1799-1929 helper/oracle/fixture/include/static assertion 구간: LastSolve, RecordNoise, for tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6b9392a417c11f51d48a97f27a0dc0542c4f005b1063414cb4b9403d1550a5e3 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_shell_physics_test.cpp support@2059-3079 helper/oracle/fixture/include/static assertion 구간: RecoverAcceleration, if, CompleteOriginalConstraints, RunPlate, for, Require, Trial, UpdateTrace, Differences, FrameError, RecoveredFrameError, RecoveredDifferences, AccelerationSplit tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 82a60a9bab9a1165f469ca2106a81e8e004ec8c859ea5301ab896f1da9329e8e 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_shell_physics_test.cpp support@3565-3600 helper/oracle/fixture/include/static assertion 구간: ReadLifecycleLog, FailAfterAcceptedIncrement, while, if tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fdaacc9c5e36ed4d024ff28652880353526b01b1ea8bb6ab1fb4b1a86e0279f5 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_shell_physics_test.cpp support@3669-3670 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_temporal_verification_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/analysis/hht_temporal_verification_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 03565773d95b6bad350d360bb1b2b2489c81b19c5877a5c7bcc6362c951fb013 03565773d95b6bad350d360bb1b2b2489c81b19c5877a5c7bcc6362c951fb013 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C01MatchesConstantMassRecurrenceAndSecondOrder HhtTemporalVerification.C01MatchesConstantMassRecurrenceAndSecondOrder; assertion 1개 tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C01MatchesConstantMassRecurrenceAndSecondOrder 유지 원문 검사 body 및 assertion 동일. 17fe998913063fd19bb6401c48b979bf998384569d88bb14e42ce753c13ca7e6 17fe998913063fd19bb6401c48b979bf998384569d88bb14e42ce753c13ca7e6 EXPECT_LE(error.constant_mass_recurrence_difference, 1.0e-12) EXPECT_LE(error.constant_mass_recurrence_difference, 1.0e-12) -Dev tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C03VariableMassIsSecondOrderAndNaiveWeightingIsNot HhtTemporalVerification.C03VariableMassIsSecondOrderAndNaiveWeightingIsNot; assertion 2개 tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C03VariableMassIsSecondOrderAndNaiveWeightingIsNot 유지 원문 검사 body 및 assertion 동일. c1215c7361ecf522a71c80084595558d3433a6afa624d162f76e2d3535f641f7 c1215c7361ecf522a71c80084595558d3433a6afa624d162f76e2d3535f641f7 EXPECT_GT(errors.back().auxiliary_difference, 0.0) | EXPECT_LT(order, 1.5) EXPECT_GT(errors.back().auxiliary_difference, 0.0) | EXPECT_LT(order, 1.5) -Dev tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04aCoupledMasslessCoordinatesHaveSecondOrder HhtTemporalVerification.C04aCoupledMasslessCoordinatesHaveSecondOrder; assertion 2개 tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04aCoupledMasslessCoordinatesHaveSecondOrder 유지 원문 검사 body 및 assertion 동일. 3b88debb5cff0df98f0085bd9f58e4fc847d99251be567cee3fb1e277d42e2c0 3b88debb5cff0df98f0085bd9f58e4fc847d99251be567cee3fb1e277d42e2c0 EXPECT_LE(errors[grid].constant_mass_recurrence_difference, 1.0e-12) | EXPECT_LE(errors[grid].reduced_difference, 1.0e-10) EXPECT_LE(errors[grid].constant_mass_recurrence_difference, 1.0e-12) | EXPECT_LE(errors[grid].reduced_difference, 1.0e-10) -Dev tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04aFinestReductionComparisonIsNumericallyResolved HhtTemporalVerification.C04aFinestReductionComparisonIsNumericallyResolved; assertion 1개 tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04aFinestReductionComparisonIsNumericallyResolved 유지 원문 검사 body 및 assertion 동일. 29e3b4fcb4310f058433aebe1547c1b5df41000e2e29b6cae9506c8dc4960555 29e3b4fcb4310f058433aebe1547c1b5df41000e2e29b6cae9506c8dc4960555 EXPECT_LE(error.reduced_difference, 1.0e-10) EXPECT_LE(error.reduced_difference, 1.0e-10) -Dev tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04bFullCartesianMovingNullConverges HhtTemporalVerification.C04bFullCartesianMovingNullConverges; assertion 5개 tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04bFullCartesianMovingNullConverges 유지 원문 검사 body 및 assertion 동일. d6e5f3a57a0983661a209be99ff249fae0ce28d7343f1a2d0e74de29a2ccfc95 d6e5f3a57a0983661a209be99ff249fae0ce28d7343f1a2d0e74de29a2ccfc95 EXPECT_LE(error.position_constraint, 1.0e-10) | EXPECT_LT(errors[grid].hidden_velocity, errors[grid - 1U].hidden_velocity) | EXPECT_LT(errors[grid].hidden_acceleration, errors[grid - 1U].hidden_acceleration) | EXPECT_LE(errors.back().hidden_velocity, 1.0e-6) | EXPECT_LE(errors.back().hidden_acceleration, 1.0e-4) EXPECT_LE(error.position_constraint, 1.0e-10) | EXPECT_LT(errors[grid].hidden_velocity, errors[grid - 1U].hidden_velocity) | EXPECT_LT(errors[grid].hidden_acceleration, errors[grid - 1U].hidden_acceleration) | EXPECT_LE(errors.back().hidden_velocity, 1.0e-6) | EXPECT_LE(errors.back().hidden_acceleration, 1.0e-4) -Dev tests/unit/analysis/hht_temporal_verification_test.cpp support@1-451 helper/oracle/fixture/include/static assertion 구간: Case, ExactState, Dimension, Exact, if, Amplitudes, Equation, Evaluate, Multiply, Solve, Effective, Errors, Integrate, Sweep tests/unit/analysis/hht_temporal_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c427466b945f2d0b9cbfec1a629323a8f2d81fd7574c29f611baa1e6c07860ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_temporal_verification_test.cpp support@506-507 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_temporal_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_time_integration_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/analysis/hht_time_integration_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 068a7d057ec10b7f70a883d56ad54bb12f20873028b3bd7c34a1eb5c29adce20 068a7d057ec10b7f70a883d56ad54bb12f20873028b3bd7c34a1eb5c29adce20 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.KeepsPhysicalAndAlgorithmicAccelerationDistinct HhtTimeIntegrationTest.KeepsPhysicalAndAlgorithmicAccelerationDistinct; assertion 6개 tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.KeepsPhysicalAndAlgorithmicAccelerationDistinct 유지 원문 검사 body 및 assertion 동일. bc5623fd45c2fb228f48298ee47d4f1c5a287a1d18591f8e4f618814f7ffd9b8 bc5623fd45c2fb228f48298ee47d4f1c5a287a1d18591f8e4f618814f7ffd9b8 ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_NEAR(rates.Value().algorithmic_acceleration[0U], 2.0, 1e-14) | EXPECT_NEAR(rates.Value().acceleration[0U], 1.95 / 0.95, 1e-14) | EXPECT_NEAR(rates.Value().velocity[0U], 0.155, 1e-14) ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_NEAR(rates.Value().algorithmic_acceleration[0U], 2.0, 1e-14) | EXPECT_NEAR(rates.Value().acceleration[0U], 1.95 / 0.95, 1e-14) | EXPECT_NEAR(rates.Value().velocity[0U], 0.155, 1e-14) -Dev tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.RejectsInvalidParametersAndTime HhtTimeIntegrationTest.RejectsInvalidParametersAndTime; assertion 7개 tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.RejectsInvalidParametersAndTime 유지 원문 검사 body 및 assertion 동일. 8f052b7f1a3b8fb822dc564e2365883b6827c3e9f566e2fd07dc2a67c9246816 8f052b7f1a3b8fb822dc564e2365883b6827c3e9f566e2fd07dc2a67c9246816 EXPECT_FALSE(MakeHhtParameters(0.01).HasValue()) | EXPECT_FALSE(MakeHhtParameters(-0.34).HasValue()) | ASSERT_TRUE(MakeHhtParameters(-1.0 / 3.0).HasValue()) | ASSERT_TRUE(parameters.HasValue()) | EXPECT_EQ(parameters.Value().beta, 0.25) | EXPECT_EQ(parameters.Value().gamma, 0.5) | EXPECT_FALSE(PredictHht(zero, zero, zero, 0.0, parameters.Value()).HasValue()) EXPECT_FALSE(MakeHhtParameters(0.01).HasValue()) | EXPECT_FALSE(MakeHhtParameters(-0.34).HasValue()) | ASSERT_TRUE(MakeHhtParameters(-1.0 / 3.0).HasValue()) | ASSERT_TRUE(parameters.HasValue()) | EXPECT_EQ(parameters.Value().beta, 0.25) | EXPECT_EQ(parameters.Value().gamma, 0.5) | EXPECT_FALSE(PredictHht(zero, zero, zero, 0.0, parameters.Value()).HasValue()) -Dev tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.StepOscillatorHasSecondOrderMaximumError HhtTimeIntegrationTest.StepOscillatorHasSecondOrderMaximumError; assertion 9개 tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.StepOscillatorHasSecondOrderMaximumError 유지 원문 검사 body 및 assertion 동일. 75ff32c40233ae10ed77f6cd3ffb13361d13d1c6a0acb05720d450f0d5f4d053 75ff32c40233ae10ed77f6cd3ffb13361d13d1c6a0acb05720d450f0d5f4d053 ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_GE(std::log2(previous_q / error_q), 1.8) | EXPECT_GE(std::log2(previous_v / error_v), 1.8) | EXPECT_GE(std::log2(previous_a / error_a), 1.8) | EXPECT_LT(error_q, 1e-4) | EXPECT_LT(error_v, 1e-4) | EXPECT_LT(error_a, 1e-4) ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_GE(std::log2(previous_q / error_q), 1.8) | EXPECT_GE(std::log2(previous_v / error_v), 1.8) | EXPECT_GE(std::log2(previous_a / error_a), 1.8) | EXPECT_LT(error_q, 1e-4) | EXPECT_LT(error_v, 1e-4) | EXPECT_LT(error_a, 1e-4) -Dev tests/unit/analysis/hht_time_integration_test.cpp support@1-9 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/analysis/hht_time_integration_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ae92a1fab37e019e61be13e7179238f0a1920b5d84bd46e196d22971dc9f979d 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_time_integration_test.cpp support@40-41 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_time_integration_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5f00a39140d4b7cac4217349f6c92160b11694234e9665516332598cd78d2637 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/hht_time_integration_test.cpp support@95-97 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/analysis/hht_time_integration_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/newton_iteration_log_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 11개 tests/unit/analysis/newton_iteration_log_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d3101c094646165ee241aa223245bcbf7d58accb1a8f018d2c83fed3f484b9dc d3101c094646165ee241aa223245bcbf7d58accb1a8f018d2c83fed3f484b9dc 해당 없음 해당 없음 -Dev tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.WritesOneLfTerminated39FieldRecordInApprovedOrder NewtonIterationLog.WritesOneLfTerminated39FieldRecordInApprovedOrder; assertion 4개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.WritesOneLfTerminated39FieldRecordInApprovedOrder 유지 원문 검사 body 및 assertion 동일. 478006c691de24dd68fd00fb670f08f3df30134ddab9b8d2c1300bcb3bbf9b9b 478006c691de24dd68fd00fb670f08f3df30134ddab9b8d2c1300bcb3bbf9b9b "ASSERT_EQ(fields.size(), labels.size()) | EXPECT_EQ(fields[index].substr(0U, fields[index].find('=')), labels[index]) | EXPECT_EQ(FieldValue(fields, ""record""), ""record=newton-iteration"") | EXPECT_EQ(FieldValue(fields, ""schema""), ""schema=nsnr-log-v1"")" "ASSERT_EQ(fields.size(), labels.size()) | EXPECT_EQ(fields[index].substr(0U, fields[index].find('=')), labels[index]) | EXPECT_EQ(FieldValue(fields, ""record""), ""record=newton-iteration"") | EXPECT_EQ(FieldValue(fields, ""schema""), ""schema=nsnr-log-v1"")" -Dev tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.FormatsFiniteNumbersForLocaleIndependentRoundTrip NewtonIterationLog.FormatsFiniteNumbersForLocaleIndependentRoundTrip; assertion 5개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.FormatsFiniteNumbersForLocaleIndependentRoundTrip 유지 원문 검사 body 및 assertion 동일. af49c065bc4263fecd936356c425497319528bab0b5bbf04bcc82a252eac4ed0 af49c065bc4263fecd936356c425497319528bab0b5bbf04bcc82a252eac4ed0 EXPECT_EQ(result.ec, std::errc{}) | EXPECT_EQ(result.ptr, value.data() + value.size()) | EXPECT_DOUBLE_EQ(parsed, 0.12345678901234567) | EXPECT_NE(value.find('.'), std::string::npos) | EXPECT_EQ(value.find(','), std::string::npos) EXPECT_EQ(result.ec, std::errc{}) | EXPECT_EQ(result.ptr, value.data() + value.size()) | EXPECT_DOUBLE_EQ(parsed, 0.12345678901234567) | EXPECT_NE(value.find('.'), std::string::npos) | EXPECT_EQ(value.find(','), std::string::npos) -Dev tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesChannelDecisionsAndExplicitOutcomeFields NewtonIterationLog.SerializesChannelDecisionsAndExplicitOutcomeFields; assertion 13개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesChannelDecisionsAndExplicitOutcomeFields 유지 원문 검사 body 및 assertion 동일. a72dbdfb59417fdad8806c162889401a17f516cfe5f527c4b08d6bfd1c12d076 a72dbdfb59417fdad8806c162889401a17f516cfe5f527c4b08d6bfd1c12d076 "EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_channel""), std::string{prefix} + ""_channel="" + std::string{prefix}) | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_numerator_norm""), std::string{prefix} + ""_numerator_norm=0.0012345678901234567"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_denominator_scale""), std::string{prefix} + ""_denominator_scale=1.2345678901234567"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_branch""), std::string{prefix} + ""_branch=relative"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold""), std::string{prefix} + ""_threshold=0.01"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold_unit""), std::string{prefix} + ""_threshold_unit=1"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_pass""), std::string{prefix} + ""_pass=1"") | EXPECT_EQ(FieldValue(fields, ""last_completed_stage""), ""last_completed_stage=convergence-gates"") | EXPECT_EQ(FieldValue(fields, ""failing_stage""), ""failing_stage=none"") | EXPECT_EQ(FieldValue(fields, ""combined_pass""), ""combined_pass=1"") | EXPECT_EQ(FieldValue(fields, ""transition""), ""transition=accept"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=accepted"") | EXPECT_EQ(FieldValue(fields, ""diagnostic_code""), ""diagnostic_code=none"")" "EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_channel""), std::string{prefix} + ""_channel="" + std::string{prefix}) | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_numerator_norm""), std::string{prefix} + ""_numerator_norm=0.0012345678901234567"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_denominator_scale""), std::string{prefix} + ""_denominator_scale=1.2345678901234567"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_branch""), std::string{prefix} + ""_branch=relative"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold""), std::string{prefix} + ""_threshold=0.01"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold_unit""), std::string{prefix} + ""_threshold_unit=1"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_pass""), std::string{prefix} + ""_pass=1"") | EXPECT_EQ(FieldValue(fields, ""last_completed_stage""), ""last_completed_stage=convergence-gates"") | EXPECT_EQ(FieldValue(fields, ""failing_stage""), ""failing_stage=none"") | EXPECT_EQ(FieldValue(fields, ""combined_pass""), ""combined_pass=1"") | EXPECT_EQ(FieldValue(fields, ""transition""), ""transition=accept"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=accepted"") | EXPECT_EQ(FieldValue(fields, ""diagnostic_code""), ""diagnostic_code=none"")" -Dev tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesEmptyChannelsAsTypedZeroScaleDecisions NewtonIterationLog.SerializesEmptyChannelsAsTypedZeroScaleDecisions; assertion 8개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesEmptyChannelsAsTypedZeroScaleDecisions 유지 원문 검사 body 및 assertion 동일. 52595116ab45dfc4a15efc3027ebda7ed94578e61ba5516a49952da4787b3aea 52595116ab45dfc4a15efc3027ebda7ed94578e61ba5516a49952da4787b3aea "EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_numerator_norm""), std::string{prefix} + ""_numerator_norm=0"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_denominator_scale""), std::string{prefix} + ""_denominator_scale=0"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_branch""), std::string{prefix} + ""_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold""), std::string{prefix} + ""_threshold=0.001"") | EXPECT_EQ(FieldValue(fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=force"") | EXPECT_EQ(FieldValue(fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=force*length"") | EXPECT_EQ(FieldValue(fields, ""correction_translation_threshold_unit""), ""correction_translation_threshold_unit=length"") | EXPECT_EQ(FieldValue(fields, ""correction_rotation_threshold_unit""), ""correction_rotation_threshold_unit=1"")" "EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_numerator_norm""), std::string{prefix} + ""_numerator_norm=0"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_denominator_scale""), std::string{prefix} + ""_denominator_scale=0"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_branch""), std::string{prefix} + ""_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold""), std::string{prefix} + ""_threshold=0.001"") | EXPECT_EQ(FieldValue(fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=force"") | EXPECT_EQ(FieldValue(fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=force*length"") | EXPECT_EQ(FieldValue(fields, ""correction_translation_threshold_unit""), ""correction_translation_threshold_unit=length"") | EXPECT_EQ(FieldValue(fields, ""correction_rotation_threshold_unit""), ""correction_rotation_threshold_unit=1"")" -Dev tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.EscapesStringsAndOmitsUnevaluatedFailureFields NewtonIterationLog.EscapesStringsAndOmitsUnevaluatedFailureFields; assertion 5개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.EscapesStringsAndOmitsUnevaluatedFailureFields 유지 원문 검사 body 및 assertion 동일. 2f3470b4d8bf9aacf7f50890f7b53816dfe990193f8af3a6d0cc066b88f7037d 2f3470b4d8bf9aacf7f50890f7b53816dfe990193f8af3a6d0cc066b88f7037d "EXPECT_EQ(ValueAfterEquals(fields[index]), not_evaluated) | EXPECT_EQ(FieldValue(fields, ""failing_stage""), ""failing_stage=load-boundary"") | EXPECT_EQ(FieldValue(fields, ""transition""), ""transition=fail\\ttransition"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=failed\\nrecord"") | EXPECT_EQ(FieldValue(fields, ""diagnostic_code""), ""diagnostic_code=external\\\\load\\r\\0"")" "EXPECT_EQ(ValueAfterEquals(fields[index]), not_evaluated) | EXPECT_EQ(FieldValue(fields, ""failing_stage""), ""failing_stage=load-boundary"") | EXPECT_EQ(FieldValue(fields, ""transition""), ""transition=fail\\ttransition"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=failed\\nrecord"") | EXPECT_EQ(FieldValue(fields, ""diagnostic_code""), ""diagnostic_code=external\\\\load\\r\\0"")" -Dev tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.ReportsWriteFlushAndCloseStateFailures NewtonIterationLog.ReportsWriteFlushAndCloseStateFailures; assertion 2개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.ReportsWriteFlushAndCloseStateFailures 유지 원문 검사 body 및 assertion 동일. af4d515b9dc0ca7b6af0fa1cfae5d26577b3efc5ab172f3ee816db7044509e96 af4d515b9dc0ca7b6af0fa1cfae5d26577b3efc5ab172f3ee816db7044509e96 ASSERT_TRUE(closed_writer.Open(path).IsOk()) | ASSERT_TRUE(closed_writer.Close().IsOk()) ASSERT_TRUE(closed_writer.Open(path).IsOk()) | ASSERT_TRUE(closed_writer.Close().IsOk()) -Dev tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.LeavesZeroByteLogForNonNewtonControlledFailurePath NewtonIterationLog.LeavesZeroByteLogForNonNewtonControlledFailurePath; assertion 4개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.LeavesZeroByteLogForNonNewtonControlledFailurePath 유지 원문 검사 body 및 assertion 동일. 6e9b83153024bcd0b3e29402a533faf17fa26d708db7bc574ee13b8a1ffa9902 6e9b83153024bcd0b3e29402a533faf17fa26d708db7bc574ee13b8a1ffa9902 ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | EXPECT_TRUE(std::filesystem::exists(path)) | EXPECT_EQ(std::filesystem::file_size(path), 0U) ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | EXPECT_TRUE(std::filesystem::exists(path)) | EXPECT_EQ(std::filesystem::file_size(path), 0U) -Dev tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesEvaluatorProducedExternalScaleResidualDecisions NewtonIterationLog.SerializesEvaluatorProducedExternalScaleResidualDecisions; assertion 19개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesEvaluatorProducedExternalScaleResidualDecisions 유지 원문 검사 body 및 assertion 동일. 883a7d046a0275863ab3ba8717420a46120cd4730070a07ebf692cad2fdc6b1c 883a7d046a0275863ab3ba8717420a46120cd4730070a07ebf692cad2fdc6b1c "ASSERT_EQ(zero_fields.size(), 39U) | EXPECT_EQ(FieldValue(zero_fields, ""schema""), ""schema=nsnr-log-v1"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_denominator_scale""), ""residual_force_denominator_scale=0"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_denominator_scale""), ""residual_moment_denominator_scale=0"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_branch""), ""residual_force_branch=zero-scale"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_branch""), ""residual_moment_branch=zero-scale"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_threshold""), ""residual_force_threshold=0.001"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_threshold""), ""residual_moment_threshold=0.001"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=force"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=force*length"") | ASSERT_EQ(relative_fields.size(), 39U) | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_denominator_scale""), ""residual_force_denominator_scale=2"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_denominator_scale""), ""residual_moment_denominator_scale=2"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_branch""), ""residual_force_branch=relative"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_branch""), ""residual_moment_branch=relative"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_threshold""), ""residual_force_threshold=0.01"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_threshold""), ""residual_moment_threshold=0.01"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=1"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=1"")" "ASSERT_EQ(zero_fields.size(), 39U) | EXPECT_EQ(FieldValue(zero_fields, ""schema""), ""schema=nsnr-log-v1"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_denominator_scale""), ""residual_force_denominator_scale=0"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_denominator_scale""), ""residual_moment_denominator_scale=0"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_branch""), ""residual_force_branch=zero-scale"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_branch""), ""residual_moment_branch=zero-scale"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_threshold""), ""residual_force_threshold=0.001"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_threshold""), ""residual_moment_threshold=0.001"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=force"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=force*length"") | ASSERT_EQ(relative_fields.size(), 39U) | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_denominator_scale""), ""residual_force_denominator_scale=2"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_denominator_scale""), ""residual_moment_denominator_scale=2"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_branch""), ""residual_force_branch=relative"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_branch""), ""residual_moment_branch=relative"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_threshold""), ""residual_force_threshold=0.01"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_threshold""), ""residual_moment_threshold=0.01"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=1"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=1"")" -Dev tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.WritesTimeAndAllTwoChannelMetrics DynamicNewtonIterationLog.WritesTimeAndAllTwoChannelMetrics; assertion 24개 tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.WritesTimeAndAllTwoChannelMetrics 유지 원문 검사 body 및 assertion 동일. 21230f3c31871e11f03f9fb62d0be2dc01e29447bf22847af4e642acd48094d0 21230f3c31871e11f03f9fb62d0be2dc01e29447bf22847af4e642acd48094d0 "ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(record).IsOk()) | ASSERT_TRUE(writer.Flush().IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | ASSERT_FALSE(bytes.empty()) | EXPECT_EQ(bytes.back(), '\n') | EXPECT_EQ(std::count(bytes.begin(), bytes.end(), '\n'), 1) | EXPECT_EQ(bytes.find('\r'), std::string::npos) | EXPECT_EQ(bytes.find(""target_factor""), std::string::npos) | EXPECT_EQ(bytes.find(""nsnr-log-v1""), std::string::npos) | EXPECT_EQ(fields.size(), 24U) | EXPECT_EQ(FieldValue(fields, ""record""), ""record=dynamic-newton-iteration"") | EXPECT_EQ(FieldValue(fields, ""schema""), ""schema=hht-log-v1"") | EXPECT_EQ(FieldValue(fields, ""increment""), ""increment=2"") | EXPECT_EQ(FieldValue(fields, ""iteration""), ""iteration=3"") | EXPECT_EQ(FieldValue(fields, ""time""), ""time=0.25"") | EXPECT_EQ(FieldValue(fields, ""stage""), ""stage=convergence"") | EXPECT_EQ(FieldValue(fields, ""residual_u_branch""), ""residual_u_branch=relative"") | EXPECT_EQ(FieldValue(fields, ""residual_phi_branch""), ""residual_phi_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, ""residual_pass""), ""residual_pass=1"") | EXPECT_EQ(FieldValue(fields, ""correction_pass""), ""correction_pass=1"") | EXPECT_EQ(parsed.ec, std::errc{}) | EXPECT_EQ(parsed.ptr, text.data() + text.size()) | EXPECT_DOUBLE_EQ(value, metric.second)" "ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(record).IsOk()) | ASSERT_TRUE(writer.Flush().IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | ASSERT_FALSE(bytes.empty()) | EXPECT_EQ(bytes.back(), '\n') | EXPECT_EQ(std::count(bytes.begin(), bytes.end(), '\n'), 1) | EXPECT_EQ(bytes.find('\r'), std::string::npos) | EXPECT_EQ(bytes.find(""target_factor""), std::string::npos) | EXPECT_EQ(bytes.find(""nsnr-log-v1""), std::string::npos) | EXPECT_EQ(fields.size(), 24U) | EXPECT_EQ(FieldValue(fields, ""record""), ""record=dynamic-newton-iteration"") | EXPECT_EQ(FieldValue(fields, ""schema""), ""schema=hht-log-v1"") | EXPECT_EQ(FieldValue(fields, ""increment""), ""increment=2"") | EXPECT_EQ(FieldValue(fields, ""iteration""), ""iteration=3"") | EXPECT_EQ(FieldValue(fields, ""time""), ""time=0.25"") | EXPECT_EQ(FieldValue(fields, ""stage""), ""stage=convergence"") | EXPECT_EQ(FieldValue(fields, ""residual_u_branch""), ""residual_u_branch=relative"") | EXPECT_EQ(FieldValue(fields, ""residual_phi_branch""), ""residual_phi_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, ""residual_pass""), ""residual_pass=1"") | EXPECT_EQ(FieldValue(fields, ""correction_pass""), ""correction_pass=1"") | EXPECT_EQ(parsed.ec, std::errc{}) | EXPECT_EQ(parsed.ptr, text.data() + text.size()) | EXPECT_DOUBLE_EQ(value, metric.second)" -Dev tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.EscapesFailureContextAndKeepsZeroScaleFailure DynamicNewtonIterationLog.EscapesFailureContextAndKeepsZeroScaleFailure; assertion 11개 tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.EscapesFailureContextAndKeepsZeroScaleFailure 유지 원문 검사 body 및 assertion 동일. 0f65cd37830b1416f99088775f625be1000782b62f4d62110c4c68d39859d164 0f65cd37830b1416f99088775f625be1000782b62f4d62110c4c68d39859d164 "ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(record).IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | EXPECT_EQ(std::count(bytes.begin(), bytes.end(), '\n'), 1) | EXPECT_EQ(FieldValue(fields, ""stage""), ""stage=mass\\tcheck"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=failed\\ntrial"") | EXPECT_EQ(FieldValue(fields, ""failure_code""), ""failure_code=dynamic\\\\mass\\rregularity"") | EXPECT_EQ(FieldValue(fields, ""residual_u_numerator""), ""residual_u_numerator=1"") | EXPECT_EQ(FieldValue(fields, ""residual_u_scale""), ""residual_u_scale=0"") | EXPECT_EQ(FieldValue(fields, ""residual_u_branch""), ""residual_u_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, ""residual_pass""), ""residual_pass=0"")" "ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(record).IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | EXPECT_EQ(std::count(bytes.begin(), bytes.end(), '\n'), 1) | EXPECT_EQ(FieldValue(fields, ""stage""), ""stage=mass\\tcheck"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=failed\\ntrial"") | EXPECT_EQ(FieldValue(fields, ""failure_code""), ""failure_code=dynamic\\\\mass\\rregularity"") | EXPECT_EQ(FieldValue(fields, ""residual_u_numerator""), ""residual_u_numerator=1"") | EXPECT_EQ(FieldValue(fields, ""residual_u_scale""), ""residual_u_scale=0"") | EXPECT_EQ(FieldValue(fields, ""residual_u_branch""), ""residual_u_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, ""residual_pass""), ""residual_pass=0"")" -Dev tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.InvalidEvidencePreservesFlushedPrefixAndFailsLifecycle DynamicNewtonIterationLog.InvalidEvidencePreservesFlushedPrefixAndFailsLifecycle; assertion 4개 tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.InvalidEvidencePreservesFlushedPrefixAndFailsLifecycle 유지 원문 검사 body 및 assertion 동일. 6b1f341aed7b1b9de8b7a2a0f6a8da67a51219a45b3cd7d50ed8535e224165bc 6b1f341aed7b1b9de8b7a2a0f6a8da67a51219a45b3cd7d50ed8535e224165bc ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(CompleteDynamicRecord()).IsOk()) | ASSERT_TRUE(writer.Flush().IsOk()) | EXPECT_EQ(ReadLogBytes(path), prefix) ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(CompleteDynamicRecord()).IsOk()) | ASSERT_TRUE(writer.Flush().IsOk()) | EXPECT_EQ(ReadLogBytes(path), prefix) -Dev tests/unit/analysis/newton_iteration_log_test.cpp support@1-148 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, ExpectLogOutputFailure, SplitTabs, while, FieldValue, for, ValueAfterEquals, VectorFrom, MakeDecision, CompleteRecord, WriteAndRead tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3f36093d9eeb5955577586d7074fcf8e441c479b923ff29b85d93f9fa0a014db 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/newton_iteration_log_test.cpp support@181-182 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 19386ea2961b53078a1506ac96caf435499c2ce389a6c4bc8b1d1334e3450291 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/newton_iteration_log_test.cpp support@198-199 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f968f62ecd764a93d0aebdeb90b34d4f95aea19862f1025a8f99eeaa0f513e90 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/newton_iteration_log_test.cpp support@233-234 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 66bb75d8fde94c7f7e4f4ae4f2d8b281f4bd149a8cda9b86613f7499da6a8973 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/newton_iteration_log_test.cpp support@275-276 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 71ce16e6c3d23ad2f7d4620ddc39c24e95471753e20be5b664c828f13cb2ebb1 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/newton_iteration_log_test.cpp support@303-304 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2289d04b1dccb850b21a2112940a26b854cfb47de6032c0404ffd2a9a1257809 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/newton_iteration_log_test.cpp support@324-325 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ed7ec9f2fea8c0942706f056482e9ebbdd7f1c498b5b8ba0a274bdb7a0e1705b 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/newton_iteration_log_test.cpp support@336-337 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 611c87e9e2a44fb7f16bfcb907f0ca1acf1ffc4101a78393551ee362850e63bf 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/newton_iteration_log_test.cpp support@416-439 helper/oracle/fixture/include/static assertion 구간: CompleteDynamicRecord, ReadLogBytes tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9f652c12fbac5b067b0d88e3ec7dcfe31f9bb9bdad34b6a378d15c84ae567c39 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/newton_iteration_log_test.cpp support@564-565 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/analysis/nonlinear_analysis_state_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 71de713d652861fd086471944762c2ce289442e6e2ba2e259db76fad20e63db1 71de713d652861fd086471944762c2ce289442e6e2ba2e259db76fad20e63db1 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.CreatesFactorZeroBaselineInStableIdentityOrder NonlinearAnalysisState.CreatesFactorZeroBaselineInStableIdentityOrder; assertion 10개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.CreatesFactorZeroBaselineInStableIdentityOrder 유지 원문 검사 body 및 assertion 동일. e055bd3a2aa163dedf599de37840273eb34bd74e59a8a94225360994929673f3 e055bd3a2aa163dedf599de37840273eb34bd74e59a8a94225360994929673f3 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(committed.increment_index, 0U) | EXPECT_DOUBLE_EQ(committed.load_factor, 0.0) | EXPECT_TRUE(committed.is_factor_zero_baseline) | EXPECT_TRUE(result.Value().AcceptedFrames().empty()) | ASSERT_EQ(committed.nodal_internal_order.size(), fixture.domain->Nodes().size()) | ASSERT_EQ(committed.nodal_source_ids.size(), fixture.domain->Nodes().size()) | EXPECT_EQ(committed.nodal_internal_order[node], node) | ASSERT_EQ(vector->Size(), fixture.dofs->FullDofCount()) | EXPECT_DOUBLE_EQ((*vector)[index], 0.0) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(committed.increment_index, 0U) | EXPECT_DOUBLE_EQ(committed.load_factor, 0.0) | EXPECT_TRUE(committed.is_factor_zero_baseline) | EXPECT_TRUE(result.Value().AcceptedFrames().empty()) | ASSERT_EQ(committed.nodal_internal_order.size(), fixture.domain->Nodes().size()) | ASSERT_EQ(committed.nodal_source_ids.size(), fixture.domain->Nodes().size()) | EXPECT_EQ(committed.nodal_internal_order[node], node) | ASSERT_EQ(vector->Size(), fixture.dofs->FullDofCount()) | EXPECT_DOUBLE_EQ((*vector)[index], 0.0) -Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.RejectsInvalidBaselineInventoryBeforeStateCreation NonlinearAnalysisState.RejectsInvalidBaselineInventoryBeforeStateCreation; assertion 1개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.RejectsInvalidBaselineInventoryBeforeStateCreation 유지 원문 검사 body 및 assertion 동일. 4ec9496b06d3904c913dea2c3ce00de01fbb8f56585ffc969b4c3ef52fcd464d 4ec9496b06d3904c913dea2c3ce00de01fbb8f56585ffc969b4c3ef52fcd464d EXPECT_FALSE(result.HasValue()) EXPECT_FALSE(result.HasValue()) -Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.RejectsNonfiniteBaselineAndDofMismatch NonlinearAnalysisState.RejectsNonfiniteBaselineAndDofMismatch; assertion 4개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.RejectsNonfiniteBaselineAndDofMismatch 유지 원문 검사 body 및 assertion 동일. 3ba1563177a1cb2640413807396826918fd0e25aa71517fdf1ec53fb5054735a 3ba1563177a1cb2640413807396826918fd0e25aa71517fdf1ec53fb5054735a EXPECT_FALSE(fesa::NonlinearAnalysisState::Create( *fixture.domain, *fixture.dofs, nonfinite_triad) .HasValue()) | EXPECT_FALSE(fesa::NonlinearAnalysisState::Create( *fixture.domain, *fixture.dofs, nonfinite_director) .HasValue()) | ASSERT_TRUE(empty_domain_result.HasValue()) | EXPECT_FALSE(dof_mismatch.HasValue()) EXPECT_FALSE(fesa::NonlinearAnalysisState::Create( *fixture.domain, *fixture.dofs, nonfinite_triad) .HasValue()) | EXPECT_FALSE(fesa::NonlinearAnalysisState::Create( *fixture.domain, *fixture.dofs, nonfinite_director) .HasValue()) | ASSERT_TRUE(empty_domain_result.HasValue()) | EXPECT_FALSE(dof_mismatch.HasValue()) -Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.PreservesDuplicateLabelsWhenInstancesDiffer NonlinearAnalysisState.PreservesDuplicateLabelsWhenInstancesDiffer; assertion 7개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.PreservesDuplicateLabelsWhenInstancesDiffer 유지 원문 검사 body 및 assertion 동일. e5a32acb933b1e65d2b1efef48bdee5223bd4276460d245229bf10410bfbf59b e5a32acb933b1e65d2b1efef48bdee5223bd4276460d245229bf10410bfbf59b ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | ASSERT_TRUE(dofs_result.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().CommittedState().nodal_source_ids.size(), 2U) | EXPECT_EQ(result.Value().CommittedState().nodal_source_ids[0U].source_label, result.Value().CommittedState().nodal_source_ids[1U].source_label) | EXPECT_NE(result.Value().CommittedState().nodal_source_ids[0U].instance_name, result.Value().CommittedState().nodal_source_ids[1U].instance_name) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | ASSERT_TRUE(dofs_result.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().CommittedState().nodal_source_ids.size(), 2U) | EXPECT_EQ(result.Value().CommittedState().nodal_source_ids[0U].source_label, result.Value().CommittedState().nodal_source_ids[1U].source_label) | EXPECT_NE(result.Value().CommittedState().nodal_source_ids[0U].instance_name, result.Value().CommittedState().nodal_source_ids[1U].instance_name) -Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.StartsIndependentTrialAndDiscardPreservesCommit NonlinearAnalysisState.StartsIndependentTrialAndDiscardPreservesCommit; assertion 3개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.StartsIndependentTrialAndDiscardPreservesCommit 유지 원문 검사 body 및 assertion 동일. c8246ffc811a47dcc57b704918eb2f14188fef66dd65d0f63ce0892482986949 c8246ffc811a47dcc57b704918eb2f14188fef66dd65d0f63ce0892482986949 ASSERT_TRUE(trial.HasValue()) | EXPECT_NE(trial.Value().displacement.Data(), state.CommittedState().displacement.Data()) | EXPECT_DOUBLE_EQ(state.CommittedState().nodal_director[0U][2U], 1.0) ASSERT_TRUE(trial.HasValue()) | EXPECT_NE(trial.Value().displacement.Data(), state.CommittedState().displacement.Data()) | EXPECT_DOUBLE_EQ(state.CommittedState().nodal_director[0U][2U], 1.0) -Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.CommitsOnlyStableCompleteAcceptedFrames NonlinearAnalysisState.CommitsOnlyStableCompleteAcceptedFrames; assertion 16개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.CommitsOnlyStableCompleteAcceptedFrames 유지 원문 검사 body 및 assertion 동일. c2c798a56a4a0a3e7e44c9a7208e608f5244ce3ba8f2e2204f03adf4dafdbac9 c2c798a56a4a0a3e7e44c9a7208e608f5244ce3ba8f2e2204f03adf4dafdbac9 ASSERT_TRUE(state.CommitAcceptedFrame(first).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_EQ(state.AcceptedFrames()[0U].frame_index, 0U) | EXPECT_EQ(state.AcceptedFrames()[0U].increment_index, 1U) | EXPECT_FALSE(state.AcceptedFrames()[0U].is_factor_one) | EXPECT_EQ(state.CommittedState().increment_index, 1U) | EXPECT_FALSE(state.CommittedState().is_factor_zero_baseline) | EXPECT_DOUBLE_EQ(state.CommittedState().residual[0U], 5.0) | EXPECT_DOUBLE_EQ(state.CommittedState().reaction[0U], 5.0) | ASSERT_EQ(state.CommittedState().shell_results.size(), 4U) | EXPECT_EQ(state.CommittedState().shell_results[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(state.CommittedState().shell_results[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | ASSERT_TRUE(state.CommitAcceptedFrame(final_frame).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 2U) | EXPECT_EQ(state.AcceptedFrames()[1U].frame_index, 1U) | EXPECT_TRUE(state.AcceptedFrames()[1U].is_factor_one) ASSERT_TRUE(state.CommitAcceptedFrame(first).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_EQ(state.AcceptedFrames()[0U].frame_index, 0U) | EXPECT_EQ(state.AcceptedFrames()[0U].increment_index, 1U) | EXPECT_FALSE(state.AcceptedFrames()[0U].is_factor_one) | EXPECT_EQ(state.CommittedState().increment_index, 1U) | EXPECT_FALSE(state.CommittedState().is_factor_zero_baseline) | EXPECT_DOUBLE_EQ(state.CommittedState().residual[0U], 5.0) | EXPECT_DOUBLE_EQ(state.CommittedState().reaction[0U], 5.0) | ASSERT_EQ(state.CommittedState().shell_results.size(), 4U) | EXPECT_EQ(state.CommittedState().shell_results[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(state.CommittedState().shell_results[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | ASSERT_TRUE(state.CommitAcceptedFrame(final_frame).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 2U) | EXPECT_EQ(state.AcceptedFrames()[1U].frame_index, 1U) | EXPECT_TRUE(state.AcceptedFrames()[1U].is_factor_one) -Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.AtomicallyRejectsMalformedAcceptedFrames NonlinearAnalysisState.AtomicallyRejectsMalformedAcceptedFrames; assertion 7개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.AtomicallyRejectsMalformedAcceptedFrames 유지 원문 검사 body 및 assertion 동일. c5236c5ae93e09ba72c3ae4a4deefec8eff58282d70ec1a3125f9895785189f5 c5236c5ae93e09ba72c3ae4a4deefec8eff58282d70ec1a3125f9895785189f5 "ASSERT_TRUE(state.CommitAcceptedFrame(first).IsOk()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-accepted-state"") | EXPECT_EQ(state.AcceptedFrames().size(), frame_count) | EXPECT_EQ(state.CommittedState().increment_index, before.increment_index) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, before.load_factor)" "ASSERT_TRUE(state.CommitAcceptedFrame(first).IsOk()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-accepted-state"") | EXPECT_EQ(state.AcceptedFrames().size(), frame_count) | EXPECT_EQ(state.CommittedState().increment_index, before.increment_index) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, before.load_factor)" -Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.AtomicallyRejectsNonfiniteAcceptedFrame NonlinearAnalysisState.AtomicallyRejectsNonfiniteAcceptedFrame; assertion 6개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.AtomicallyRejectsNonfiniteAcceptedFrame 유지 원문 검사 body 및 assertion 동일. cc5e4a6773c3318499122f00929c214489dbb84190929c6eb5997ced2860c51c cc5e4a6773c3318499122f00929c214489dbb84190929c6eb5997ced2860c51c "ASSERT_TRUE(state.CommitAcceptedFrame(valid).IsOk()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-accepted-state"") | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, before.load_factor)" "ASSERT_TRUE(state.CommitAcceptedFrame(valid).IsOk()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-accepted-state"") | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, before.load_factor)" -Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.StoresNoUnapprovedVerificationMetrics NonlinearAnalysisState.StoresNoUnapprovedVerificationMetrics; assertion 2개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.StoresNoUnapprovedVerificationMetrics 유지 원문 검사 body 및 assertion 동일. b69ab505986f7c4e96d680112f051eb4ad264b5a4b0d00534017599fbcec886d b69ab505986f7c4e96d680112f051eb4ad264b5a4b0d00534017599fbcec886d EXPECT_FALSE((HasVerificationMetrics::value)) | EXPECT_FALSE((HasVerificationMetrics::value)) EXPECT_FALSE((HasVerificationMetrics::value)) | EXPECT_FALSE((HasVerificationMetrics::value)) -Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp support@1-184 helper/oracle/fixture/include/static assertion 구간: Fixture, MakeFixture, if, MakeBaseline, MakeState, MakeShellRow, MakeShellRows, MakeFrame, T, HasVerificationMetrics, ExpectSourceIdEqual, ExpectVectorEqual tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2e56a14c0097a3200d0e43093dd79e3af9fbde80419d3561620f97d79996642e 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp support@215-216 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bd37a239145c5cebe3e142065918acfbe17a8b4a9038df01ef0c3dc0653dd7a6 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp support@251-252 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8fe7a38902e0f0554e724e21bd6626055452ad1f94713ee1115cc0415d753fb2 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp support@276-277 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 284e6386154a0d7de7b977bffbccc58a0cccdd9f7d48f388d64f6bedeab4288e 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp support@318-319 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 00e2be860cc981a9ca4aa4ec18c34ff5e6071b8d9df6a4e02a2b41acdfb1cb7c 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp support@336-338 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7926abaabd465ec5f2df8c1281d0d9f682d634e296091035784916bea8ca5ed0 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp support@369-370 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 15735dfe66660b9315679d163a8e4573eb57893a4db8bf85e7542c4cf8cc664b 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp support@431-432 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 44e172af12e1ad94ad0079a1ed7dcc3e57c9ad141594f6626542163024522747 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp support@451-452 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5064d5792cabc37a1beb0d4085f57716fdb52851fdf8bff86383f061be0fd2ae 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_static_control_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 13개 tests/unit/analysis/nonlinear_static_control_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d12853400861a54e112f715d41be7470bf32caff38740282301f452c636a668c d12853400861a54e112f715d41be7470bf32caff38740282301f452c636a668c 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearStaticControl.BuildsFixedFactorSequenceWithExactEndpoint NonlinearStaticControl.BuildsFixedFactorSequenceWithExactEndpoint; assertion 10개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearStaticControl.BuildsFixedFactorSequenceWithExactEndpoint 유지 원문 검사 body 및 assertion 동일. 03cf5328984955e5bd0957b26938892dbadee29219434b903c919e1c159bfc6f 03cf5328984955e5bd0957b26938892dbadee29219434b903c919e1c159bfc6f ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().size(), 10U) | EXPECT_EQ(increment.increment_index, static_cast(index + 1U)) | EXPECT_DOUBLE_EQ(increment.load_factor, static_cast(index + 1U) * 0.1) | EXPECT_EQ(increment.is_factor_one, index + 1U == result.Value().size()) | EXPECT_DOUBLE_EQ(result.Value().back().load_factor, 1.0) | ASSERT_TRUE(one_hundred_result.HasValue()) | ASSERT_EQ(one_hundred_result.Value().size(), 100U) | EXPECT_EQ(one_hundred_result.Value().back().increment_index, 100U) | EXPECT_TRUE(one_hundred_result.Value().back().is_factor_one) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().size(), 10U) | EXPECT_EQ(increment.increment_index, static_cast(index + 1U)) | EXPECT_DOUBLE_EQ(increment.load_factor, static_cast(index + 1U) * 0.1) | EXPECT_EQ(increment.is_factor_one, index + 1U == result.Value().size()) | EXPECT_DOUBLE_EQ(result.Value().back().load_factor, 1.0) | ASSERT_TRUE(one_hundred_result.HasValue()) | ASSERT_EQ(one_hundred_result.Value().size(), 100U) | EXPECT_EQ(one_hundred_result.Value().back().increment_index, 100U) | EXPECT_TRUE(one_hundred_result.Value().back().is_factor_one) -Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearStaticControl.IgnoresPositiveMinimumAndMaximumDuringStepping NonlinearStaticControl.IgnoresPositiveMinimumAndMaximumDuringStepping; assertion 5개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearStaticControl.IgnoresPositiveMinimumAndMaximumDuringStepping 유지 원문 검사 body 및 assertion 동일. 99470076262ba5d8b53bbdc942349594b403bf7b4c1ffbb01e172701fb11f882 99470076262ba5d8b53bbdc942349594b403bf7b4c1ffbb01e172701fb11f882 ASSERT_TRUE(first_result.HasValue()) | ASSERT_TRUE(second_result.HasValue()) | ASSERT_EQ(first_result.Value().size(), second_result.Value().size()) | EXPECT_DOUBLE_EQ(first_result.Value()[index].load_factor, second_result.Value()[index].load_factor) | EXPECT_EQ(first_result.Value()[index].increment_index, second_result.Value()[index].increment_index) ASSERT_TRUE(first_result.HasValue()) | ASSERT_TRUE(second_result.HasValue()) | ASSERT_EQ(first_result.Value().size(), second_result.Value().size()) | EXPECT_DOUBLE_EQ(first_result.Value()[index].load_factor, second_result.Value()[index].load_factor) | EXPECT_EQ(first_result.Value()[index].increment_index, second_result.Value()[index].increment_index) -Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.AppliesAbsoluteBoundaryTargetsWithoutCorrection NonlinearLoadBoundary.AppliesAbsoluteBoundaryTargetsWithoutCorrection; assertion 5개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.AppliesAbsoluteBoundaryTargetsWithoutCorrection 유지 원문 검사 body 및 assertion 동일. 5e3b97613fd46bce571853e5787057d6cae4c99e6b8114c00823878a5a43e764 5e3b97613fd46bce571853e5787057d6cae4c99e6b8114c00823878a5a43e764 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 2U) | EXPECT_DOUBLE_EQ(result.Value()[0U], 1.0) | EXPECT_DOUBLE_EQ(result.Value()[1U], -0.125) | EXPECT_EQ(TrialCoordinates(fixture)[constrained], 0.0) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 2U) | EXPECT_DOUBLE_EQ(result.Value()[0U], 1.0) | EXPECT_DOUBLE_EQ(result.Value()[1U], -0.125) | EXPECT_EQ(TrialCoordinates(fixture)[constrained], 0.0) -Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.AssemblesEverySharedNodeLoadOnceInFixedGlobalAxes NonlinearLoadBoundary.AssemblesEverySharedNodeLoadOnceInFixedGlobalAxes; assertion 7개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.AssemblesEverySharedNodeLoadOnceInFixedGlobalAxes 유지 원문 검사 body 및 assertion 동일. f9fd946c0c146cac052d1f2ce57c48e989e1700b61bc00e546bd78376a8707ba f9fd946c0c146cac052d1f2ce57c48e989e1700b61bc00e546bd78376a8707ba ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().generalized_external_force.Size(), fixture.dofs->FullDofCount()) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[0U], 2.0) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[1U], -1.0) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[3U], 0.5) | EXPECT_DOUBLE_EQ(fixture.domain->Steps()[0U] .ConcentratedLoads()[0U] .GlobalComponents()[0U], 8.0) | EXPECT_DOUBLE_EQ(fixture.domain->Steps()[0U] .ConcentratedLoads()[2U] .GlobalComponents()[3U], 2.0) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().generalized_external_force.Size(), fixture.dofs->FullDofCount()) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[0U], 2.0) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[1U], -1.0) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[3U], 0.5) | EXPECT_DOUBLE_EQ(fixture.domain->Steps()[0U] .ConcentratedLoads()[0U] .GlobalComponents()[0U], 8.0) | EXPECT_DOUBLE_EQ(fixture.domain->Steps()[0U] .ConcentratedLoads()[2U] .GlobalComponents()[3U], 2.0) -Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.RejectsDirectorAlignedMomentAboveTheExactBand NonlinearLoadBoundary.RejectsDirectorAlignedMomentAboveTheExactBand; assertion 4개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.RejectsDirectorAlignedMomentAboveTheExactBand 유지 원문 검사 body 및 assertion 동일. 6fd8c584b65e4594d07dee3e89a681ebbf4990173da1ace05bde715753ca71f3 6fd8c584b65e4594d07dee3e89a681ebbf4990173da1ace05bde715753ca71f3 "EXPECT_TRUE( fesa::CheckMomentAdmissibility(director, {1.0, 0.0, 1.0e-12}).IsOk()) | EXPECT_FALSE(rejected.IsOk()) | ASSERT_EQ(rejected.Diagnostics().size(), 1U) | EXPECT_EQ(rejected.Diagnostics()[0U].code, ""unsupported-drilling-load"")" "EXPECT_TRUE( fesa::CheckMomentAdmissibility(director, {1.0, 0.0, 1.0e-12}).IsOk()) | EXPECT_FALSE(rejected.IsOk()) | ASSERT_EQ(rejected.Diagnostics().size(), 1U) | EXPECT_EQ(rejected.Diagnostics()[0U].code, ""unsupported-drilling-load"")" -Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.PreservesSourceOrderDuringGlobalAccumulation NonlinearLoadBoundary.PreservesSourceOrderDuringGlobalAccumulation; assertion 6개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.PreservesSourceOrderDuringGlobalAccumulation 유지 원문 검사 body 및 assertion 동일. c3bb30245b6f1676ea97c2d939256da763d500b601a670f86968efa43d87b75a c3bb30245b6f1676ea97c2d939256da763d500b601a670f86968efa43d87b75a ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().generalized_external_force[0U], 1.0) | EXPECT_EQ(first.Value().generalized_external_tangent.RowOffsets(), second.Value().generalized_external_tangent.RowOffsets()) | EXPECT_EQ(first.Value().generalized_external_tangent.ColumnIndices(), second.Value().generalized_external_tangent.ColumnIndices()) | EXPECT_EQ(first.Value().generalized_external_tangent.Values(), second.Value().generalized_external_tangent.Values()) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().generalized_external_force[0U], 1.0) | EXPECT_EQ(first.Value().generalized_external_tangent.RowOffsets(), second.Value().generalized_external_tangent.RowOffsets()) | EXPECT_EQ(first.Value().generalized_external_tangent.ColumnIndices(), second.Value().generalized_external_tangent.ColumnIndices()) | EXPECT_EQ(first.Value().generalized_external_tangent.Values(), second.Value().generalized_external_tangent.Values()) -Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.DifferentiatesOneFixedSpatialMomentAndUsesSubtraction NonlinearLoadBoundary.DifferentiatesOneFixedSpatialMomentAndUsesSubtraction; assertion 6개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.DifferentiatesOneFixedSpatialMomentAndUsesSubtraction 유지 원문 검사 body 및 assertion 동일. e3040db107a7fc1174faf58c76c4c5915e3a021adbdc44927ec95bf2dbf7877b e3040db107a7fc1174faf58c76c4c5915e3a021adbdc44927ec95bf2dbf7877b ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_LE(MaximumAbsoluteDifference(derivative, tangent_action), 1.0e-8) | EXPECT_DOUBLE_EQ(residual[3U], 5.0 - result.Value().generalized_external_force[3U]) | EXPECT_DOUBLE_EQ( -tangent_action[3U], -result.Value().generalized_external_tangent.Multiply(direction)[3U]) ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_LE(MaximumAbsoluteDifference(derivative, tangent_action), 1.0e-8) | EXPECT_DOUBLE_EQ(residual[3U], 5.0 - result.Value().generalized_external_force[3U]) | EXPECT_DOUBLE_EQ( -tangent_action[3U], -result.Value().generalized_external_tangent.Multiply(direction)[3U]) -Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.UsesOwnedRelativeThresholdsForEveryChannel NonlinearConvergence.UsesOwnedRelativeThresholdsForEveryChannel; assertion 8개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.UsesOwnedRelativeThresholdsForEveryChannel 유지 원문 검사 body 및 assertion 동일. 6cfe9ea574efccc73afb0318189186da892593dc1ca54dcecc940c9f96d4b6ae 6cfe9ea574efccc73afb0318189186da892593dc1ca54dcecc940c9f96d4b6ae EXPECT_TRUE(result.combined_passed) | EXPECT_FALSE(decision.identity.empty()) | EXPECT_DOUBLE_EQ(decision.numerator_norm, 1.0e-2) | EXPECT_DOUBLE_EQ(decision.denominator_scale, 1.0) | EXPECT_EQ(decision.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(decision.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(decision.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(decision.passed) EXPECT_TRUE(result.combined_passed) | EXPECT_FALSE(decision.identity.empty()) | EXPECT_DOUBLE_EQ(decision.numerator_norm, 1.0e-2) | EXPECT_DOUBLE_EQ(decision.denominator_scale, 1.0) | EXPECT_EQ(decision.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(decision.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(decision.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(decision.passed) -Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.AppliesTypedZeroScaleGatesToEmptyChannels NonlinearConvergence.AppliesTypedZeroScaleGatesToEmptyChannels; assertion 7개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.AppliesTypedZeroScaleGatesToEmptyChannels 유지 원문 검사 body 및 assertion 동일. 6dae4244b6d4b6af487b476312174ee8d379aae3416c77f5833eeb43b1ac0a2f 6dae4244b6d4b6af487b476312174ee8d379aae3416c77f5833eeb43b1ac0a2f EXPECT_TRUE(result.combined_passed) | EXPECT_DOUBLE_EQ(decisions[index].numerator_norm, 0.0) | EXPECT_DOUBLE_EQ(decisions[index].denominator_scale, 0.0) | EXPECT_EQ(decisions[index].branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(decisions[index].threshold, fesa::kNewtonZeroScaleThreshold) | EXPECT_EQ(decisions[index].threshold_unit, units[index]) | EXPECT_TRUE(decisions[index].passed) EXPECT_TRUE(result.combined_passed) | EXPECT_DOUBLE_EQ(decisions[index].numerator_norm, 0.0) | EXPECT_DOUBLE_EQ(decisions[index].denominator_scale, 0.0) | EXPECT_EQ(decisions[index].branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(decisions[index].threshold, fesa::kNewtonZeroScaleThreshold) | EXPECT_EQ(decisions[index].threshold_unit, units[index]) | EXPECT_TRUE(decisions[index].passed) -Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.SelectsTypedZeroScaleFromExactZeroExternalResidualChannels NonlinearConvergence.SelectsTypedZeroScaleFromExactZeroExternalResidualChannels; assertion 10개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.SelectsTypedZeroScaleFromExactZeroExternalResidualChannels 유지 원문 검사 body 및 assertion 동일. 83f1b0cae81f3d8f7b93fe76c1857758f18b6e9d9c97b091cb9e101fb23f1f3e 83f1b0cae81f3d8f7b93fe76c1857758f18b6e9d9c97b091cb9e101fb23f1f3e EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(decisions[index].denominator_scale, 0.0) | EXPECT_EQ(decisions[index].branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(decisions[index].threshold, fesa::kNewtonZeroScaleThreshold) | EXPECT_EQ(decisions[index].threshold_unit, units[index]) | EXPECT_TRUE(decisions[index].passed) | EXPECT_FALSE(force_rejected.force_residual.passed) | EXPECT_FALSE(force_rejected.combined_passed) | EXPECT_FALSE(moment_rejected.moment_residual.passed) | EXPECT_FALSE(moment_rejected.combined_passed) EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(decisions[index].denominator_scale, 0.0) | EXPECT_EQ(decisions[index].branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(decisions[index].threshold, fesa::kNewtonZeroScaleThreshold) | EXPECT_EQ(decisions[index].threshold_unit, units[index]) | EXPECT_TRUE(decisions[index].passed) | EXPECT_FALSE(force_rejected.force_residual.passed) | EXPECT_FALSE(force_rejected.combined_passed) | EXPECT_FALSE(moment_rejected.moment_residual.passed) | EXPECT_FALSE(moment_rejected.combined_passed) -Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.UsesRelativeResidualScaleOnlyWhenMatchingExternalScaleIsNonzero NonlinearConvergence.UsesRelativeResidualScaleOnlyWhenMatchingExternalScaleIsNonzero; assertion 10개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.UsesRelativeResidualScaleOnlyWhenMatchingExternalScaleIsNonzero 유지 원문 검사 body 및 assertion 동일. 6d42f6c27a543b480e86044b3b77d0943d8cb2d2482dd1aba56d30e16a39058c 6d42f6c27a543b480e86044b3b77d0943d8cb2d2482dd1aba56d30e16a39058c EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(decision.denominator_scale, 2.0) | EXPECT_EQ(decision.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(decision.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(decision.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(decision.passed) | EXPECT_FALSE(fesa::EvaluateNewtonConvergence(input).force_residual.passed) | EXPECT_FALSE(fesa::EvaluateNewtonConvergence(input).moment_residual.passed) | EXPECT_FALSE(relative_rejected.force_residual.passed) | EXPECT_FALSE(relative_rejected.combined_passed) EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(decision.denominator_scale, 2.0) | EXPECT_EQ(decision.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(decision.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(decision.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(decision.passed) | EXPECT_FALSE(fesa::EvaluateNewtonConvergence(input).force_residual.passed) | EXPECT_FALSE(fesa::EvaluateNewtonConvergence(input).moment_residual.passed) | EXPECT_FALSE(relative_rejected.force_residual.passed) | EXPECT_FALSE(relative_rejected.combined_passed) -Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.RejectsNonfiniteResidualInputsBeforeSelectingOrAcceptingAChannel NonlinearConvergence.RejectsNonfiniteResidualInputsBeforeSelectingOrAcceptingAChannel; assertion 7개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.RejectsNonfiniteResidualInputsBeforeSelectingOrAcceptingAChannel 유지 원문 검사 body 및 assertion 동일. df264b5cae771cdeb5f4ea6aa1ca08c5353da8a51e88409b08509e598dd6e79e df264b5cae771cdeb5f4ea6aa1ca08c5353da8a51e88409b08509e598dd6e79e EXPECT_FALSE(decision.passed) | EXPECT_FALSE(result.combined_passed) | EXPECT_TRUE(relative.force_residual.passed) | EXPECT_DOUBLE_EQ(relative.force_residual.denominator_scale, smallest_external) | EXPECT_EQ(relative.force_residual.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(relative.force_residual.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(relative.force_residual.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) EXPECT_FALSE(decision.passed) | EXPECT_FALSE(result.combined_passed) | EXPECT_TRUE(relative.force_residual.passed) | EXPECT_DOUBLE_EQ(relative.force_residual.denominator_scale, smallest_external) | EXPECT_EQ(relative.force_residual.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(relative.force_residual.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(relative.force_residual.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) -Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.RequiresEveryResidualAndCorrectionChannelToPass NonlinearConvergence.RequiresEveryResidualAndCorrectionChannelToPass; assertion 8개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.RequiresEveryResidualAndCorrectionChannelToPass 유지 원문 검사 body 및 assertion 동일. a832011e0feb435ce0aa354c482a5af20cdcc12a5b3ee069a6805fa2760daa0f a832011e0feb435ce0aa354c482a5af20cdcc12a5b3ee069a6805fa2760daa0f EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(accepted.translation_correction.denominator_scale, 1.0) | EXPECT_DOUBLE_EQ(accepted.rotation_correction.denominator_scale, 1.0) | EXPECT_DOUBLE_EQ(accepted.translation_correction.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_DOUBLE_EQ(accepted.rotation_correction.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(accepted.translation_correction.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_EQ(accepted.rotation_correction.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_FALSE(result.combined_passed) EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(accepted.translation_correction.denominator_scale, 1.0) | EXPECT_DOUBLE_EQ(accepted.rotation_correction.denominator_scale, 1.0) | EXPECT_DOUBLE_EQ(accepted.translation_correction.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_DOUBLE_EQ(accepted.rotation_correction.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(accepted.translation_correction.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_EQ(accepted.rotation_correction.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_FALSE(result.combined_passed) -Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@1-158 helper/oracle/fixture/include/static assertion 구간: VectorFrom, Fixture, if, TrialCoordinates, AddScaled, MaximumAbsoluteDifference, RelativeConvergenceInput, ExactZeroExternalResidualInput tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6a0d6117066d7bc0244668abef8eff3eb3f09fefb66e56d8ff7dae4978b297e2 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@184-185 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a728c5ddd282acb272a289129b2beaaf82361231a53854f9678579e963ca7bf5 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@204-205 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5d5d51f179b49fab4320bca3fb1a67c9514c031c6eb4146cd06e0fd67d94e32b 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@221-222 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b88abcc3396bee3d80864ac6e5b5d69fd7a65489104a60fee981bfb1f80dcf66 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@250-251 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6d84fb8f223d3d49be0a8b3f94cc76dc49eb532f98b45a89eaf3f6b7c0d9d928 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@262-263 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 891df0432d2d49bd73ab72565c58f1833e37588e6e1f011e9622f474b2164e52 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@285-286 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. de1e68c7ef81aa7e6db55005224ab3b7051d71f20a74f0a005cadc3d2950055f 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@324-325 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 577d29344a758ac62f396a9e34591982aab171dd34082649c877701cf8834124 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@346-347 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 66b90623292bf823c4ec82313343514c4d6118d131a2112173300ffc87582cc6 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@376-377 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0413b1a93aa4812b4c92ab8aeba36ae964d35ffceb3ae14bde002cc02b4a128a 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@414-415 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c2e9bb7f999bfecdf11b504b8f331912407fc2aace0ed3334b7095b7686f5f8a 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@454-455 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. dc36777ce188869f3f1f91b7963b011739df7f02cac290f3dfac4efbe4bf15bf 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@500-501 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d661490b198257d4473dc5b81ce890e2389d53e281ec635145449812542abe98 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@533-534 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/solid_frequency_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/unit/analysis/solid_frequency_procedure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 80a7a0dd4e765af6155d0ca9e52edc3c13f00e2082a4fcb60601e1ec20a23c56 afb4cc6cb6b1b6913bcfd0d473260ab060c91b66835e5570073472e3bc7f3dd5 해당 없음 해당 없음 -Dev tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.FreeBrickRetainsSixRigidModes SolidFrequencyProcedure.FreeBrickRetainsSixRigidModes; assertion 6개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.FreeBrickRetainsSixRigidModes 유지 원문 검사 body 및 assertion 동일. cce9667bb3dd958f4277c3c2cea2cd1c9d7a29bbc73e03edfe674518cb099309 cce9667bb3dd958f4277c3c2cea2cd1c9d7a29bbc73e03edfe674518cb099309 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().modes.size(), 6U) | EXPECT_EQ(mode.classification, 0U) | EXPECT_EQ(result.Value().vectors.Rows(), 6U) | EXPECT_EQ(result.Value().vectors.Columns(), 24U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().modes.size(), 6U) | EXPECT_EQ(mode.classification, 0U) | EXPECT_EQ(result.Value().vectors.Rows(), 6U) | EXPECT_EQ(result.Value().vectors.Columns(), 24U) -Dev tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.RowSumLumpedPencilMatchesIndependentDenseOracle SolidFrequencyProcedure.RowSumLumpedPencilMatchesIndependentDenseOracle; assertion 22개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.RowSumLumpedPencilMatchesIndependentDenseOracle 유지 원문 검사 body 및 assertion 동일. 4c97e6d2016b331fe2696c558e569c93fce6a5040249a4fa536634b8617ae5fb 4c97e6d2016b331fe2696c558e569c93fce6a5040249a4fa536634b8617ae5fb "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(state.modes.size(), oracle.size()) | ASSERT_EQ(state.eigenpair_checks.size(), oracle.size()) | EXPECT_NEAR(state.modes[c].eigenvalue, oracle[c], 1e-10 * state.classification_scale) | EXPECT_EQ(state.modes[c].mode_id, c + 1) | EXPECT_EQ(state.eigenpair_checks[c].sorted_rank, c + 1) | EXPECT_LE(state.eigenpair_checks[c].eta_r, 1e-10) | EXPECT_LE(state.eigenpair_checks[c].eta_energy, 1e-10) | EXPECT_LE(state.eigenpair_checks[c].eta_norm, 1e-10) | EXPECT_NEAR(state.eigenpair_checks[c].modal_mass, 1.0, 1e-10) | EXPECT_EQ(state.vectors(c, row), 0.0) | EXPECT_GT(state.vectors(c, pivot), 0.0) | EXPECT_LE(state.eta_gram, 1e-10) | EXPECT_LE(state.max_eta_orth, 1e-10) | EXPECT_NEAR(state.mass_ideal_lower_bound, 12.0 / 27.0, 1e-13) | EXPECT_GT(state.mass_lower_bound, 0.0) | EXPECT_LT(state.mass_lower_bound, state.mass_ideal_lower_bound) | EXPECT_GT(state.mass_roundoff_guard, 0.0) | EXPECT_EQ(state.backend.integer_abi, ""ILP64"") | EXPECT_EQ(state.backend.eigenvectors.Rows(), 0U) | EXPECT_EQ(state.backend.backend_calls.front().kind, ""mass-spd"")" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(state.modes.size(), oracle.size()) | ASSERT_EQ(state.eigenpair_checks.size(), oracle.size()) | EXPECT_NEAR(state.modes[c].eigenvalue, oracle[c], 1e-10 * state.classification_scale) | EXPECT_EQ(state.modes[c].mode_id, c + 1) | EXPECT_EQ(state.eigenpair_checks[c].sorted_rank, c + 1) | EXPECT_LE(state.eigenpair_checks[c].eta_r, 1e-10) | EXPECT_LE(state.eigenpair_checks[c].eta_energy, 1e-10) | EXPECT_LE(state.eigenpair_checks[c].eta_norm, 1e-10) | EXPECT_NEAR(state.eigenpair_checks[c].modal_mass, 1.0, 1e-10) | EXPECT_EQ(state.vectors(c, row), 0.0) | EXPECT_GT(state.vectors(c, pivot), 0.0) | EXPECT_LE(state.eta_gram, 1e-10) | EXPECT_LE(state.max_eta_orth, 1e-10) | EXPECT_NEAR(state.mass_ideal_lower_bound, 12.0 / 27.0, 1e-13) | EXPECT_GT(state.mass_lower_bound, 0.0) | EXPECT_LT(state.mass_lower_bound, state.mass_ideal_lower_bound) | EXPECT_GT(state.mass_roundoff_guard, 0.0) | EXPECT_EQ(state.backend.integer_abi, ""ILP64"") | EXPECT_EQ(state.backend.eigenvectors.Rows(), 0U) | EXPECT_EQ(state.backend.backend_calls.front().kind, ""mass-spd"")" -Dev tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.DensityLengthAndMaterialScaling SolidFrequencyProcedure.DensityLengthAndMaterialScaling; assertion 5개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.DensityLengthAndMaterialScaling 유지 원문 검사 body 및 assertion 동일. cdee8e33c911874556fd0de7f4206dabb00b6323ffc6dc258ea2775cd9d4203c cdee8e33c911874556fd0de7f4206dabb00b6323ffc6dc258ea2775cd9d4203c ASSERT_TRUE(base_domain.HasValue()) | ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(result.Value().modes[c].eigenvalue, base.Value().modes[c].eigenvalue * parameters[3], 1e-10 * result.Value().classification_scale) ASSERT_TRUE(base_domain.HasValue()) | ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(result.Value().modes[c].eigenvalue, base.Value().modes[c].eigenvalue * parameters[3], 1e-10 * result.Value().classification_scale) -Dev tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.OneFreeDofAndAllConstrainedAndExcessRequest SolidFrequencyProcedure.OneFreeDofAndAllConstrainedAndExcessRequest; assertion 5개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.OneFreeDofAndAllConstrainedAndExcessRequest 유지 원문 검사 body 및 assertion 동일. c873c04a035270f6496bcb1e0d60a1558b2eccd3043729a891bc459cd0f18927 c873c04a035270f6496bcb1e0d60a1558b2eccd3043729a891bc459cd0f18927 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(result.Value().modes[0].eigenvalue, DenseOracle({2U})[0], 1e-11) | ASSERT_TRUE(invalid.HasValue()) | EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(invalid.Value()) .HasValue()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(result.Value().modes[0].eigenvalue, DenseOracle({2U})[0], 1e-11) | ASSERT_TRUE(invalid.HasValue()) | EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(invalid.Value()) .HasValue()) -Dev tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.MissingDensityAndFailedBackendPreservePriorCandidate SolidFrequencyProcedure.MissingDensityAndFailedBackendPreservePriorCandidate; assertion 7개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.MissingDensityAndFailedBackendPreservePriorCandidate 유지 원문 검사 body 및 assertion 동일. 3f418707dfaaffaae21da5242f50881cd3b4e2d1049377e14af02ad858f84b9c 3f418707dfaaffaae21da5242f50881cd3b4e2d1049377e14af02ad858f84b9c EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(missing.Value()) .HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(good.HasValue()) | EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(domain.Value()) .HasValue()) | EXPECT_EQ(good.Value().modes[0].eigenvalue, previous) | ASSERT_TRUE(again.HasValue()) | EXPECT_NEAR(again.Value().modes[0].eigenvalue, previous, 1e-12) EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(missing.Value()) .HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(good.HasValue()) | EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(domain.Value()) .HasValue()) | EXPECT_EQ(good.Value().modes[0].eigenvalue, previous) | ASSERT_TRUE(again.HasValue()) | EXPECT_NEAR(again.Value().modes[0].eigenvalue, previous, 1e-12) -Dev tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.NearZeroNegativeRemainsRawWithoutFrequency SolidFrequencyProcedure.NearZeroNegativeRemainsRawWithoutFrequency; assertion 6개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.NearZeroNegativeRemainsRawWithoutFrequency 유지 원문 검사 body 및 assertion 동일. 5c7466461ae588cfbd0a9a9bdd24664d5d7cf8f721ecf9fa68b53fa3041f35eb 5c7466461ae588cfbd0a9a9bdd24664d5d7cf8f721ecf9fa68b53fa3041f35eb ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_LT(result.Value().modes[0].eigenvalue, 0.0) | EXPECT_EQ(result.Value().modes[0].classification, 0U) | EXPECT_FALSE(result.Value().modes[0].frequency.has_value()) | EXPECT_EQ(mode.cluster_id, 1U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_LT(result.Value().modes[0].eigenvalue, 0.0) | EXPECT_EQ(result.Value().modes[0].classification, 0U) | EXPECT_FALSE(result.Value().modes[0].frequency.has_value()) | EXPECT_EQ(mode.cluster_id, 1U) -Dev tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.SuppliedFrequencyInputHasIndependentNumericalEvidence SolidFrequencyProcedure.SuppliedFrequencyInputHasIndependentNumericalEvidence; assertion 10개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.SuppliedFrequencyInputHasIndependentNumericalEvidence 유지 원문 검사 body 및 assertion 동일. 0287bfd4fea7a6dcac7e9ad689ef6fde57e28ebbe300516a82f71d32366695b0 0287bfd4fea7a6dcac7e9ad689ef6fde57e28ebbe300516a82f71d32366695b0 ASSERT_FALSE(root.empty()) | ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().modes.size(), 10U) | EXPECT_EQ(result.Value().vectors.Columns(), 3U * 442U) | EXPECT_GE(result.Value().eigenpair_checks.size(), 10U) | EXPECT_GT(result.Value().mass_lower_bound, 0.0) | EXPECT_LE(result.Value().eta_gram, 1e-10) | EXPECT_LE(result.Value().max_eta_orth, 1e-10) ASSERT_FALSE(root.empty()) | ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().modes.size(), 10U) | EXPECT_EQ(result.Value().vectors.Columns(), 3U * 442U) | EXPECT_GE(result.Value().eigenpair_checks.size(), 10U) | EXPECT_GT(result.Value().mass_lower_bound, 0.0) | EXPECT_LE(result.Value().eta_gram, 1e-10) | EXPECT_LE(result.Value().max_eta_orth, 1e-10) -Dev tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.RejectsOverflowingOriginalPencilValidationScale SolidFrequencyProcedure.RejectsOverflowingOriginalPencilValidationScale; assertion 5개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.RejectsOverflowingOriginalPencilValidationScale 유지 원문 검사 body 및 assertion 동일. 23de9158e3984de0b4196abe914a4980b20b59e595d0f6de100b63c0608b4e5c 23de9158e3984de0b4196abe914a4980b20b59e595d0f6de100b63c0608b4e5c "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""solid-eigenpair-validation-failed"") | EXPECT_NE(result.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""solid-eigenpair-validation-failed"") | EXPECT_NE(result.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos)" -Dev tests/unit/analysis/solid_frequency_procedure_test.cpp support@1-64 helper/oracle/fixture/include/static assertion 구간: StatusText, Brick tests/unit/analysis/solid_frequency_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 338ba214915b6614a5178292ab8ca1c8409f79c52bfdae155360a152c9033cc2 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/solid_frequency_procedure_test.cpp support@77-136 helper/oracle/fixture/include/static assertion 구간: GradientIntegral, DenseOracle, FaceFree tests/unit/analysis/solid_frequency_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ce1a07c50cc327f05d6a67dcefec86324ec510e7189bc09589a7347b3ebac1a1 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 30개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1c1936b269135cad28f1bc2608001f50c8992fbca8c9e29c713f28439ffd7eda 8d90de51b606957522feabd9c9e063a463a91ecf2065fc63a21c893aed45276d 해당 없음 해당 없음 -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.InitialLowPartsSurviveTrialCopyAndRejectedCommit SolidHhtPairedState.InitialLowPartsSurviveTrialCopyAndRejectedCommit; assertion 13개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.InitialLowPartsSurviveTrialCopyAndRejectedCommit 유지 원문 검사 body 및 assertion 동일. 825c8f0dad20f8717e1ea0b6b8603fd2644a8f3994ac000270d5f9e4327983e2 825c8f0dad20f8717e1ea0b6b8603fd2644a8f3994ac000270d5f9e4327983e2 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.Value().CommitAcceptedFrame(initial).IsOk()) | ASSERT_TRUE(trial.HasValue()) | EXPECT_EQ(trial.Value().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_EQ(trial.Value().low.residual_scale[0], std::ldexp(1.0, -61)) | EXPECT_EQ(trial.Value().low.linear_momentum_rate[0], std::ldexp(1.0, -59)) | EXPECT_EQ(trial.Value().low.angular_momentum_rate[1], std::ldexp(1.0, -60)) | EXPECT_EQ(state.Value().CommittedState().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_EQ(state.Value().CommittedState().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_EQ(state.Value().CommittedState().low.inertia_force[0], std::ldexp(1.0, -62)) | EXPECT_EQ(state.Value().CommittedState().low.angular_momentum_rate[2], -std::ldexp(1.0, -60)) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.Value().CommitAcceptedFrame(initial).IsOk()) | ASSERT_TRUE(trial.HasValue()) | EXPECT_EQ(trial.Value().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_EQ(trial.Value().low.residual_scale[0], std::ldexp(1.0, -61)) | EXPECT_EQ(trial.Value().low.linear_momentum_rate[0], std::ldexp(1.0, -59)) | EXPECT_EQ(trial.Value().low.angular_momentum_rate[1], std::ldexp(1.0, -60)) | EXPECT_EQ(state.Value().CommittedState().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_EQ(state.Value().CommittedState().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_EQ(state.Value().CommittedState().low.inertia_force[0], std::ldexp(1.0, -62)) | EXPECT_EQ(state.Value().CommittedState().low.angular_momentum_rate[2], -std::ldexp(1.0, -60)) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.InvalidLowShapeFiniteNormalizationAndIdentitiesFail SolidHhtPairedState.InvalidLowShapeFiniteNormalizationAndIdentitiesFail; assertion 4개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.InvalidLowShapeFiniteNormalizationAndIdentitiesFail 유지 원문 검사 body 및 assertion 동일. 2b78c719a88df0067bb2b21166b8c312c308d89d1c1983c1c771809eb499d299 2b78c719a88df0067bb2b21166b8c312c308d89d1c1983c1c771809eb499d299 ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue()) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue()) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.SubUlpPhysicalDisplacementRecoversNonzeroRates SolidHhtPairedKinematics.SubUlpPhysicalDisplacementRecoversNonzeroRates; assertion 13개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.SubUlpPhysicalDisplacementRecoversNonzeroRates 유지 원문 검사 body 및 assertion 동일. 1f4fe6c56fb73d89e0ad67e5ff0f7f140cbcf1ec8e26da6ea909fe446d6f19c3 1f4fe6c56fb73d89e0ad67e5ff0f7f140cbcf1ec8e26da6ea909fe446d6f19c3 ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | EXPECT_EQ(predictor.Value().displacement[0], 1) | EXPECT_EQ(predictor.Value().displacement_low[0], epsilon) | ASSERT_TRUE(rates.HasValue()) | EXPECT_EQ(rates.Value().algorithmic_acceleration[0], 4 * epsilon) | EXPECT_EQ(rates.Value().acceleration[0], 4 * epsilon) | EXPECT_EQ(rates.Value().velocity[0], 2 * epsilon) | EXPECT_EQ(rates.Value().algorithmic_acceleration_low[0], 0) | EXPECT_EQ(rates.Value().acceleration_low[0], 0) | EXPECT_EQ(rates.Value().velocity_low[0], 0) | ASSERT_TRUE(rounded_rates.HasValue()) | EXPECT_EQ(rounded_rates.Value().acceleration[0], 0) ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | EXPECT_EQ(predictor.Value().displacement[0], 1) | EXPECT_EQ(predictor.Value().displacement_low[0], epsilon) | ASSERT_TRUE(rates.HasValue()) | EXPECT_EQ(rates.Value().algorithmic_acceleration[0], 4 * epsilon) | EXPECT_EQ(rates.Value().acceleration[0], 4 * epsilon) | EXPECT_EQ(rates.Value().velocity[0], 2 * epsilon) | EXPECT_EQ(rates.Value().algorithmic_acceleration_low[0], 0) | EXPECT_EQ(rates.Value().acceleration_low[0], 0) | EXPECT_EQ(rates.Value().velocity_low[0], 0) | ASSERT_TRUE(rounded_rates.HasValue()) | EXPECT_EQ(rounded_rates.Value().acceleration[0], 0) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.PhysicalAndAuxiliaryRatesKeepOldPhysicalTerm SolidHhtPairedKinematics.PhysicalAndAuxiliaryRatesKeepOldPhysicalTerm; assertion 5개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.PhysicalAndAuxiliaryRatesKeepOldPhysicalTerm 유지 원문 검사 body 및 assertion 동일. 50303350d2b5f81d3838936cc4b1c4aefb9d23acffa5f1db16b392d59eadbc49 50303350d2b5f81d3838936cc4b1c4aefb9d23acffa5f1db16b392d59eadbc49 ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_EQ(rates.Value().algorithmic_acceleration[0], epsilon) | EXPECT_EQ(rates.Value().acceleration[0], 0) | EXPECT_EQ(rates.Value().velocity[0], 6 * epsilon) ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_EQ(rates.Value().algorithmic_acceleration[0], epsilon) | EXPECT_EQ(rates.Value().acceleration[0], 0) | EXPECT_EQ(rates.Value().velocity[0], 6 * epsilon) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.InvalidLowInputsFailWithoutChangingPredictor SolidHhtPairedKinematics.InvalidLowInputsFailWithoutChangingPredictor; assertion 6개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.InvalidLowInputsFailWithoutChangingPredictor 유지 원문 검사 body 및 assertion 동일. 42be154d7316bf84811c30432c01f348e2cd4964c15a9ca2a8542b3a4d099a72 42be154d7316bf84811c30432c01f348e2cd4964c15a9ca2a8542b3a4d099a72 ASSERT_TRUE(p.HasValue()) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(1, low), predictor, fesa::Vector(1), fesa::Vector(1), 1, p.Value()) .HasValue()) | EXPECT_EQ(predictor.displacement[0], 1) | EXPECT_EQ(predictor.displacement_low[0], 0) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(0), predictor, fesa::Vector(1), fesa::Vector(1), 1, p.Value()) .HasValue()) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(1), predictor, fesa::Vector(1), fesa::Vector(1), 1, invalid_parameters) .HasValue()) ASSERT_TRUE(p.HasValue()) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(1, low), predictor, fesa::Vector(1), fesa::Vector(1), 1, p.Value()) .HasValue()) | EXPECT_EQ(predictor.displacement[0], 1) | EXPECT_EQ(predictor.displacement_low[0], 0) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(0), predictor, fesa::Vector(1), fesa::Vector(1), 1, p.Value()) .HasValue()) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(1), predictor, fesa::Vector(1), fesa::Vector(1), 1, invalid_parameters) .HasValue()) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.MassMultiplyKeepsSubUlpActionAndCancellation SolidHhtPairedKinematics.MassMultiplyKeepsSubUlpActionAndCancellation; assertion 7개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.MassMultiplyKeepsSubUlpActionAndCancellation 유지 원문 검사 body 및 assertion 동일. ef6f15688746af81bfd5dd21af5158228a986336d03b3619f12ec626edb65ebb ef6f15688746af81bfd5dd21af5158228a986336d03b3619f12ec626edb65ebb ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().high[0], 3 * epsilon) | EXPECT_EQ(result.Value().low[0], 0) | EXPECT_EQ(result.Value().high[1], -3) | EXPECT_EQ(result.Value().low[1], 3 * epsilon) | EXPECT_EQ(mass.Value().Multiply(high)[0], 0) ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().high[0], 3 * epsilon) | EXPECT_EQ(result.Value().low[0], 0) | EXPECT_EQ(result.Value().high[1], -3) | EXPECT_EQ(result.Value().low[1], 3 * epsilon) | EXPECT_EQ(mass.Value().Multiply(high)[0], 0) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.WeightedIdentityPreservesNonzeroOldResidualLow SolidHhtPairedKinematics.WeightedIdentityPreservesNonzeroOldResidualLow; assertion 11개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.WeightedIdentityPreservesNonzeroOldResidualLow 유지 원문 검사 body 및 assertion 동일. 7bbac5223481362748fa1ff73b62f4b7a0758b25cbf6c9128cf1eeb983846480 7bbac5223481362748fa1ff73b62f4b7a0758b25cbf6c9128cf1eeb983846480 ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(fesa::detail::EvaluateSolidHhtHighLowForceIdentity( mass.Value(), 0, fesa::math_internal::HighLow(epsilon), next, old, -.25, &result)) | EXPECT_EQ(result.original.high, 3.25) | EXPECT_EQ(result.original.low, epsilon) | EXPECT_EQ(result.solved.high, 3.25) | EXPECT_EQ(result.solved.low, epsilon) | EXPECT_EQ(result.defect.high, 0) | EXPECT_EQ(result.metric.high, 0) | ASSERT_TRUE(fesa::detail::EvaluateSolidHhtHighLowForceIdentity( mass.Value(), 0, fesa::math_internal::HighLow(epsilon), next, old, -.25, &result)) | EXPECT_EQ(result.solved.low, 0) | EXPECT_EQ(result.defect.high, epsilon) ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(fesa::detail::EvaluateSolidHhtHighLowForceIdentity( mass.Value(), 0, fesa::math_internal::HighLow(epsilon), next, old, -.25, &result)) | EXPECT_EQ(result.original.high, 3.25) | EXPECT_EQ(result.original.low, epsilon) | EXPECT_EQ(result.solved.high, 3.25) | EXPECT_EQ(result.solved.low, epsilon) | EXPECT_EQ(result.defect.high, 0) | EXPECT_EQ(result.metric.high, 0) | ASSERT_TRUE(fesa::detail::EvaluateSolidHhtHighLowForceIdentity( mass.Value(), 0, fesa::math_internal::HighLow(epsilon), next, old, -.25, &result)) | EXPECT_EQ(result.solved.low, 0) | EXPECT_EQ(result.defect.high, epsilon) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.BackendEnvironmentMutationFailsAndPreservesPairs SolidHhtPairedState.BackendEnvironmentMutationFailsAndPreservesPairs; assertion 14개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.BackendEnvironmentMutationFailsAndPreservesPairs 유지 원문 검사 body 및 assertion 동일. 3f256cc73e3837028a0a56cde57bac0f445e407b546e0ec820c96be62645c8de 3f256cc73e3837028a0a56cde57bac0f445e407b546e0ec820c96be62645c8de "ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(fesa::math_internal::ArithmeticEnvironmentSupported()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_EQ(status.Diagnostics().front().code, ""solid-dynamic-arithmetic-environment"") | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(actual.displacement[0], expected.displacement[0]) | EXPECT_EQ(actual.low.displacement[0], expected.low.displacement[0]) | EXPECT_EQ(actual.acceleration[0], expected.acceleration[0]) | EXPECT_EQ(actual.low.acceleration[0], expected.low.acceleration[0]) | EXPECT_EQ(actual.external_work, expected.external_work) | EXPECT_EQ(actual.low.external_work, expected.low.external_work)" "ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(fesa::math_internal::ArithmeticEnvironmentSupported()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_EQ(status.Diagnostics().front().code, ""solid-dynamic-arithmetic-environment"") | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(actual.displacement[0], expected.displacement[0]) | EXPECT_EQ(actual.low.displacement[0], expected.low.displacement[0]) | EXPECT_EQ(actual.acceleration[0], expected.acceleration[0]) | EXPECT_EQ(actual.low.acceleration[0], expected.low.acceleration[0]) | EXPECT_EQ(actual.external_work, expected.external_work) | EXPECT_EQ(actual.low.external_work, expected.low.external_work)" -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AllConstrainedRetainsPhysicalReactionAndEightPoints SolidHhtDynamics.AllConstrainedRetainsPhysicalReactionAndEightPoints; assertion 9개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AllConstrainedRetainsPhysicalReactionAndEightPoints 유지 원문 검사 body 및 assertion 동일. 9aae6cd617d88f7c8d407f069a1bb691963a5b920d9c6ade7953aac765a05542 9aae6cd617d88f7c8d407f069a1bb691963a5b920d9c6ade7953aac765a05542 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 21U) | EXPECT_EQ(f.displacement.Size(), 24U) | EXPECT_EQ(f.solid_results.size(), 8U) | EXPECT_DOUBLE_EQ(f.reaction[1], -7) | EXPECT_DOUBLE_EQ(f.acceleration[1], 0) | EXPECT_DOUBLE_EQ(f.external_work, 0) | EXPECT_EQ(f.iteration_count, 0U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 21U) | EXPECT_EQ(f.displacement.Size(), 24U) | EXPECT_EQ(f.solid_results.size(), 8U) | EXPECT_DOUBLE_EQ(f.reaction[1], -7) | EXPECT_DOUBLE_EQ(f.acceleration[1], 0) | EXPECT_DOUBLE_EQ(f.external_work, 0) | EXPECT_EQ(f.iteration_count, 0U) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.ActualEndpointsUseDifferentCurvesKnotsInteriorsAndHolds SolidHhtDynamics.ActualEndpointsUseDifferentCurvesKnotsInteriorsAndHolds; assertion 5개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.ActualEndpointsUseDifferentCurvesKnotsInteriorsAndHolds 유지 원문 검사 body 및 assertion 동일. c5e559e653ca89a7bb7004a700e7f2eeff2550e6ceb1f76318567165f97bed7a c5e559e653ca89a7bb7004a700e7f2eeff2550e6ceb1f76318567165f97bed7a ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(f.external_force[0], 2 * a + 3 * b, 1e-14) | EXPECT_DOUBLE_EQ(f.reaction[0], -f.external_force[0]) | EXPECT_DOUBLE_EQ(f.external_force[5], 7) | EXPECT_DOUBLE_EQ(f.time, static_cast(f.increment_index) * .125) ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(f.external_force[0], 2 * a + 3 * b, 1e-14) | EXPECT_DOUBLE_EQ(f.reaction[0], -f.external_force[0]) | EXPECT_DOUBLE_EQ(f.external_force[5], 7) | EXPECT_DOUBLE_EQ(f.time, static_cast(f.increment_index) * .125) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.RampStartsAtZeroAndAuxiliaryAccelerationIsDistinct SolidHhtDynamics.RampStartsAtZeroAndAuxiliaryAccelerationIsDistinct; assertion 10개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.RampStartsAtZeroAndAuxiliaryAccelerationIsDistinct 유지 원문 검사 body 및 assertion 동일. 8806b0f8147101e938132724b2e9fdc8f4a536db7c7d0c03962e17393a021ec9 8806b0f8147101e938132724b2e9fdc8f4a536db7c7d0c03962e17393a021ec9 ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frames.front().acceleration[0], 0) | EXPECT_GT(std::abs(frames[1].acceleration[0] - frames[1].algorithmic_acceleration[0]), 1e-5) | EXPECT_NEAR(f.algorithmic_acceleration[0], .95 * f.acceleration[0] + .05 * old.acceleration[0], 1e-14) | EXPECT_LT(f.iterations.back().update_metric, 1e-12) | EXPECT_LE(f.iterations.back().residual_metric, 1e-10) | EXPECT_DOUBLE_EQ(f.displacement[i], 0) | EXPECT_DOUBLE_EQ(f.velocity[i], 0) | EXPECT_DOUBLE_EQ(f.acceleration[i], 0) | EXPECT_DOUBLE_EQ(f.algorithmic_acceleration[i], 0) ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frames.front().acceleration[0], 0) | EXPECT_GT(std::abs(frames[1].acceleration[0] - frames[1].algorithmic_acceleration[0]), 1e-5) | EXPECT_NEAR(f.algorithmic_acceleration[0], .95 * f.acceleration[0] + .05 * old.acceleration[0], 1e-14) | EXPECT_LT(f.iterations.back().update_metric, 1e-12) | EXPECT_LE(f.iterations.back().residual_metric, 1e-10) | EXPECT_DOUBLE_EQ(f.displacement[i], 0) | EXPECT_DOUBLE_EQ(f.velocity[i], 0) | EXPECT_DOUBLE_EQ(f.acceleration[i], 0) | EXPECT_DOUBLE_EQ(f.algorithmic_acceleration[i], 0) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.OneFreeTranslationHasAnalyticLumpedInertialSupportReactions SolidHhtDynamics.OneFreeTranslationHasAnalyticLumpedInertialSupportReactions; assertion 4개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.OneFreeTranslationHasAnalyticLumpedInertialSupportReactions 유지 원문 검사 body 및 assertion 동일. 1c002e47b63b342b26d3651c49bb19e06ac80d6f2744f2f435c9190103f3d797 1c002e47b63b342b26d3651c49bb19e06ac80d6f2744f2f435c9190103f3d797 ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(f.reaction[3 * b + c], reaction, roundoff * scale) | EXPECT_NEAR(weighted, endpoint_identity, roundoff * scale) | EXPECT_NEAR(f.iterations.back().weighted_residual_numerator, std::abs(weighted), roundoff * scale) ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(f.reaction[3 * b + c], reaction, roundoff * scale) | EXPECT_NEAR(weighted, endpoint_identity, roundoff * scale) | EXPECT_NEAR(f.iterations.back().weighted_residual_numerator, std::abs(weighted), roundoff * scale) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.BackendNanNonconvergenceAndInversionPreserveAcceptedInitial SolidHhtDynamics.BackendNanNonconvergenceAndInversionPreserveAcceptedInitial; assertion 21개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.BackendNanNonconvergenceAndInversionPreserveAcceptedInitial 유지 원문 검사 body 및 assertion 동일. 994315fd5e36287233e88949fa06cdd1a82a3df567118949362421a330549049 994315fd5e36287233e88949fa06cdd1a82a3df567118949362421a330549049 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_EQ(state.Value().CommittedState().increment_index, 0U) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], 0) | EXPECT_NEAR(state.Value().CommittedState().acceleration[0], .01 / .25, 1e-14) | ASSERT_FALSE(state.Value().IterationRecords().empty()) | EXPECT_EQ(state.Value().IterationRecords().back().stage, ""failed"") | EXPECT_FALSE(state.Value().IterationRecords().back().failure_code.empty()) | EXPECT_EQ(failed.evidence.iteration_index, 100U) | EXPECT_EQ(failed.failure_code, ""solid-dynamic-nonconvergence"") | EXPECT_FALSE(failed.failure_force_sum.has_value()) | EXPECT_NEAR(failed.evidence.worst_force_terms[1], expected_inertia, 32 * std::numeric_limits::epsilon() * std::abs(expected_inertia)) | EXPECT_DOUBLE_EQ(failed.evidence.worst_force_terms[2], 0) | EXPECT_DOUBLE_EQ(failed.evidence.worst_force_terms[3], .01) | EXPECT_FALSE(failed.evidence.residual_pass) | EXPECT_TRUE(failed.evidence.update_pass) | EXPECT_TRUE(failed.evidence.correction_pass) | EXPECT_TRUE(std::isfinite(value)) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().low.displacement[i], 0)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_EQ(state.Value().CommittedState().increment_index, 0U) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], 0) | EXPECT_NEAR(state.Value().CommittedState().acceleration[0], .01 / .25, 1e-14) | ASSERT_FALSE(state.Value().IterationRecords().empty()) | EXPECT_EQ(state.Value().IterationRecords().back().stage, ""failed"") | EXPECT_FALSE(state.Value().IterationRecords().back().failure_code.empty()) | EXPECT_EQ(failed.evidence.iteration_index, 100U) | EXPECT_EQ(failed.failure_code, ""solid-dynamic-nonconvergence"") | EXPECT_FALSE(failed.failure_force_sum.has_value()) | EXPECT_NEAR(failed.evidence.worst_force_terms[1], expected_inertia, 32 * std::numeric_limits::epsilon() * std::abs(expected_inertia)) | EXPECT_DOUBLE_EQ(failed.evidence.worst_force_terms[2], 0) | EXPECT_DOUBLE_EQ(failed.evidence.worst_force_terms[3], .01) | EXPECT_FALSE(failed.evidence.residual_pass) | EXPECT_TRUE(failed.evidence.update_pass) | EXPECT_TRUE(failed.evidence.correction_pass) | EXPECT_TRUE(std::isfinite(value)) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().low.displacement[i], 0)" -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.LateBackendFailurePreservesActualCommittedMotionAndHistory SolidHhtDynamics.LateBackendFailurePreservesActualCommittedMotionAndHistory; assertion 11개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.LateBackendFailurePreservesActualCommittedMotionAndHistory 유지 원문 검사 body 및 assertion 동일. 0e04bfa810734cd17fe3ed9b0ce99f803e24ecf3224cfee93f44df7f79d2f3b9 0e04bfa810734cd17fe3ed9b0ce99f803e24ecf3224cfee93f44df7f79d2f3b9 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(state.Value().CommittedState().increment_index, 1U) | EXPECT_GT(state.Value().CommittedState().displacement[0], 0) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], committed.displacement[0]) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().strain_energy, committed.strain_energy) | EXPECT_EQ(state.Value().CommittedState().solid_results[0].cauchy_stress, committed.solid_results[0].cauchy_stress) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(state.Value().CommittedState().increment_index, 1U) | EXPECT_GT(state.Value().CommittedState().displacement[0], 0) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], committed.displacement[0]) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().strain_energy, committed.strain_energy) | EXPECT_EQ(state.Value().CommittedState().solid_results[0].cauchy_stress, committed.solid_results[0].cauchy_stress) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.NonfiniteWeightedEvidenceCannotContaminateAcceptedHistory SolidHhtDynamics.NonfiniteWeightedEvidenceCannotContaminateAcceptedHistory; assertion 7개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.NonfiniteWeightedEvidenceCannotContaminateAcceptedHistory 유지 원문 검사 body 및 assertion 동일. 6e0271bb8ebda6f0a0c5a3a7a2287c385827fd8d17d18652b2208b204bf6ab8e 6e0271bb8ebda6f0a0c5a3a7a2287c385827fd8d17d18652b2208b204bf6ab8e ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(fesa::SolidHhtDynamicProcedureExecutor(parallel, mass, tangent) .ExecuteInto(domain.Value(), state.Value()) .IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(state.Value().CommittedState().solid_results[0].cauchy_stress, committed.solid_results[0].cauchy_stress) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], committed.displacement[0]) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(fesa::SolidHhtDynamicProcedureExecutor(parallel, mass, tangent) .ExecuteInto(domain.Value(), state.Value()) .IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(state.Value().CommittedState().solid_results[0].cauchy_stress, committed.solid_results[0].cauchy_stress) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], committed.displacement[0]) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AlphaZeroLinearUnforcedTailConservesEnergyAndTrapezoidWork SolidHhtDynamics.AlphaZeroLinearUnforcedTailConservesEnergyAndTrapezoidWork; assertion 6개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AlphaZeroLinearUnforcedTailConservesEnergyAndTrapezoidWork 유지 원문 검사 body 및 assertion 동일. dd866c138e709fdc9aa58b3b2e87b3781004ecb72d2991144c208d93d71b1ea8 dd866c138e709fdc9aa58b3b2e87b3781004ecb72d2991144c208d93d71b1ea8 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(status.IsOk()) | ASSERT_GT(tail, 1e-7) | EXPECT_NEAR(frames[n].external_work, work, 1e-16) | EXPECT_NEAR(frames[n].energy_balance_error, 0, 2e-12 * tail) | EXPECT_NEAR(frames[n].kinetic_energy + frames[n].strain_energy, tail, 2e-12 * tail) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(status.IsOk()) | ASSERT_GT(tail, 1e-7) | EXPECT_NEAR(frames[n].external_work, work, 1e-16) | EXPECT_NEAR(frames[n].energy_balance_error, 0, 2e-12 * tail) | EXPECT_NEAR(frames[n].kinetic_energy + frames[n].strain_energy, tail, 2e-12 * tail) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.InitialMassBackendFailuresPreserveEmptyHistory SolidHhtDynamics.InitialMassBackendFailuresPreserveEmptyHistory; assertion 12개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.InitialMassBackendFailuresPreserveEmptyHistory 유지 원문 검사 body 및 assertion 동일. e05bf94288c50cbcb48e82d010333756d3468e53ca60fd91f161a749ed0f1ffc e05bf94288c50cbcb48e82d010333756d3468e53ca60fd91f161a749ed0f1ffc "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue()) | ASSERT_EQ(records.size(), factorization ? 1U : 2U) | EXPECT_EQ(records.front().stage, ""initial-mass"") | EXPECT_EQ(records.front().outcome, ""residual-refinement"") | EXPECT_EQ(records.front().evidence.iteration_index, 0U) | EXPECT_FALSE(records.front().evidence.residual_pass) | EXPECT_EQ(records.back().stage, ""failed"") | EXPECT_EQ(records.back().failure_code, ""injected-backend"")" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue()) | ASSERT_EQ(records.size(), factorization ? 1U : 2U) | EXPECT_EQ(records.front().stage, ""initial-mass"") | EXPECT_EQ(records.front().outcome, ""residual-refinement"") | EXPECT_EQ(records.front().evidence.iteration_index, 0U) | EXPECT_FALSE(records.front().evidence.residual_pass) | EXPECT_EQ(records.back().stage, ""failed"") | EXPECT_EQ(records.back().failure_code, ""injected-backend"")" -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AllFreeNoForceIsExactlyAtRestForLinearAndTl SolidHhtDynamics.AllFreeNoForceIsExactlyAtRestForLinearAndTl; assertion 10개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AllFreeNoForceIsExactlyAtRestForLinearAndTl 유지 원문 검사 body 및 assertion 동일. d09d84966fea765d732e231ff5dde9c2e8a649cbd91c3a946e2020274e398ddd d09d84966fea765d732e231ff5dde9c2e8a649cbd91c3a946e2020274e398ddd ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0) | EXPECT_DOUBLE_EQ(frame.strain_energy, 0) | EXPECT_DOUBLE_EQ(frame.displacement[i], 0) | EXPECT_DOUBLE_EQ(frame.velocity[i], 0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0) | EXPECT_DOUBLE_EQ(frame.residual[i], 0) | EXPECT_DOUBLE_EQ(frame.reaction[i], 0) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0) | EXPECT_DOUBLE_EQ(frame.strain_energy, 0) | EXPECT_DOUBLE_EQ(frame.displacement[i], 0) | EXPECT_DOUBLE_EQ(frame.velocity[i], 0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0) | EXPECT_DOUBLE_EQ(frame.residual[i], 0) | EXPECT_DOUBLE_EQ(frame.reaction[i], 0) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtSourceSmoke.ReadOnlyOriginalLinearAcceptsAll101Endpoints SolidHhtSourceSmoke.ReadOnlyOriginalLinearAcceptsAll101Endpoints; assertion 0개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtSourceSmoke.ReadOnlyOriginalLinearAcceptsAll101Endpoints 유지 원문 검사 body 및 assertion 동일. 5391fef4221914378a7f90aee66f4b5dfdce359f6f20a5206103e3df7bc40d95 5391fef4221914378a7f90aee66f4b5dfdce359f6f20a5206103e3df7bc40d95 해당 없음 해당 없음 -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtSourceSmoke.ReadOnlyOriginalNonlinearAcceptsAll101Endpoints SolidHhtSourceSmoke.ReadOnlyOriginalNonlinearAcceptsAll101Endpoints; assertion 0개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtSourceSmoke.ReadOnlyOriginalNonlinearAcceptsAll101Endpoints 유지 원문 검사 body 및 assertion 동일. 24b67b4ab019d0f53319e5523d3aa2893debf73e13edf2dab5f27889e9547dfd 24b67b4ab019d0f53319e5523d3aa2893debf73e13edf2dab5f27889e9547dfd 해당 없음 해당 없음 -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.WeightedIdentityRetainsNonzeroOldResidualAndEffectiveTangent SolidHhtDynamics.WeightedIdentityRetainsNonzeroOldResidualAndEffectiveTangent; assertion 8개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.WeightedIdentityRetainsNonzeroOldResidualAndEffectiveTangent 유지 원문 검사 body 및 assertion 동일. f7634aeb2f9bf5b13387abd6ef3e10c9f2f0024741dbc34a156e27668892ce91 f7634aeb2f9bf5b13387abd6ef3e10c9f2f0024741dbc34a156e27668892ce91 ASSERT_TRUE(mass.HasValue()) | ASSERT_NE(old.residual[0], 0) | ASSERT_NE(old.residual[1], 0) | EXPECT_TRUE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), i, MA[i], next, old, alpha, &identities[i])) | EXPECT_LE(identities[i].metric, 1e-12) | EXPECT_NEAR( identities[i].original, identities[i].solved, 512 * std::numeric_limits::epsilon() * identities[i].scale) | EXPECT_GT( std::abs(identities[i].solved - (1 + alpha) * next.residual[i]), .01) | EXPECT_NEAR((right[i].solved - left[i].solved) / (2 * epsilon), tangent_direction[i], 1e-9 * std::abs(tangent_direction[i])) ASSERT_TRUE(mass.HasValue()) | ASSERT_NE(old.residual[0], 0) | ASSERT_NE(old.residual[1], 0) | EXPECT_TRUE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), i, MA[i], next, old, alpha, &identities[i])) | EXPECT_LE(identities[i].metric, 1e-12) | EXPECT_NEAR( identities[i].original, identities[i].solved, 512 * std::numeric_limits::epsilon() * identities[i].scale) | EXPECT_GT( std::abs(identities[i].solved - (1 + alpha) * next.residual[i]), .01) | EXPECT_NEAR((right[i].solved - left[i].solved) / (2 * epsilon), tangent_direction[i], 1e-9 * std::abs(tangent_direction[i])) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.WeightedIdentityRejectsNonfiniteAndOverflowBeforeNormReduction SolidHhtDynamics.WeightedIdentityRejectsNonfiniteAndOverflowBeforeNormReduction; assertion 8개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.WeightedIdentityRejectsNonfiniteAndOverflowBeforeNormReduction 유지 원문 검사 body 및 assertion 동일. 21767e2f26a9783ef8b3ea4897f8543314f9353f4d55800634852db6ca5e9b2a 21767e2f26a9783ef8b3ea4897f8543314f9353f4d55800634852db6ca5e9b2a ASSERT_TRUE(mass.HasValue()) | EXPECT_TRUE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) | EXPECT_EQ(identity.scale, 0) | EXPECT_EQ(identity.metric, 0) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, invalid, next, old, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, bad, previous, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) ASSERT_TRUE(mass.HasValue()) | EXPECT_TRUE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) | EXPECT_EQ(identity.scale, 0) | EXPECT_EQ(identity.metric, 0) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, invalid, next, old, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, bad, previous, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.FullFreeNewtonRecoversAllComponentsAfterCoupledTrialPerturbation SolidHhtDynamics.FullFreeNewtonRecoversAllComponentsAfterCoupledTrialPerturbation; assertion 8개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.FullFreeNewtonRecoversAllComponentsAfterCoupledTrialPerturbation 유지 원문 검사 body 및 assertion 동일. 9e1a1f350b3a8da815127d3678f269e8701013a5e689bab8a5a1c4dc5e965a41 9e1a1f350b3a8da815127d3678f269e8701013a5e689bab8a5a1c4dc5e965a41 ASSERT_TRUE(domain.HasValue()) | EXPECT_TRUE(tangent.kicked) | EXPECT_TRUE(tangent.full_size_all_calls) | EXPECT_TRUE(tangent.solved_after_kick) | ASSERT_TRUE(status.IsOk()) | EXPECT_LE(frame.iterations.back().residual_metric, 1e-10) | EXPECT_LE(frame.iterations.back().update_metric, 1e-12) | EXPECT_NEAR(frame.displacement[3 * n], .5 * frame.time * frame.time, roundoff * .5 * frame.time * frame.time) ASSERT_TRUE(domain.HasValue()) | EXPECT_TRUE(tangent.kicked) | EXPECT_TRUE(tangent.full_size_all_calls) | EXPECT_TRUE(tangent.solved_after_kick) | ASSERT_TRUE(status.IsOk()) | EXPECT_LE(frame.iterations.back().residual_metric, 1e-10) | EXPECT_LE(frame.iterations.back().update_metric, 1e-12) | EXPECT_NEAR(frame.displacement[3 * n], .5 * frame.time * frame.time, roundoff * .5 * frame.time * frame.time) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.RepresentableNeighborUsesHeldCouplingAndOriginalFullForceMetric SolidHhtFloat64History.RepresentableNeighborUsesHeldCouplingAndOriginalFullForceMetric; assertion 24개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.RepresentableNeighborUsesHeldCouplingAndOriginalFullForceMetric 유지 원문 검사 body 및 assertion 동일. edbbaae61828136237c20662167cca044b5992c324f9989e801d85b6ae72343a edbbaae61828136237c20662167cca044b5992c324f9989e801d85b6ae72343a ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(tangent.HasValue()) | ASSERT_GT(initial, 1e-10) | ASSERT_EQ(frame.residual[1], 0) | ASSERT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0, 1}, frame, 1, -.05, .275625, &selected)) | ASSERT_TRUE(selected.found) | EXPECT_EQ(selected.full_dof, 1U) | EXPECT_EQ(selected.displacement, std::nextafter(.5, -std::numeric_limits::infinity())) | EXPECT_EQ(selected.delta, selected.displacement - frame.displacement[1]) | EXPECT_LT(selected.predicted_metric, initial) | EXPECT_LE(selected.predicted_metric, 1e-10) | EXPECT_EQ(selected.predicted_metric, exact_metric) | ASSERT_TRUE(alternative_tangent.HasValue()) | ASSERT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), alternative_tangent.Value(), {0, 1}, frame, 1, -.05, .275625, &selected, &ranked)) | ASSERT_EQ(ranked.size(), 2U) | EXPECT_EQ(ranked[0].full_dof, 0U) | EXPECT_EQ(ranked[1].full_dof, 1U) | EXPECT_LT(ranked[0].predicted_metric, ranked[1].predicted_metric) | EXPECT_LT(ranked[1].predicted_metric, initial) | ASSERT_TRUE(accepted.HasValue()) | EXPECT_TRUE(accepted.Value()) | EXPECT_EQ(tried, (std::vector{0, 1})) | EXPECT_FALSE(invalid.HasValue()) | EXPECT_EQ(tried, (std::vector{0})) ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(tangent.HasValue()) | ASSERT_GT(initial, 1e-10) | ASSERT_EQ(frame.residual[1], 0) | ASSERT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0, 1}, frame, 1, -.05, .275625, &selected)) | ASSERT_TRUE(selected.found) | EXPECT_EQ(selected.full_dof, 1U) | EXPECT_EQ(selected.displacement, std::nextafter(.5, -std::numeric_limits::infinity())) | EXPECT_EQ(selected.delta, selected.displacement - frame.displacement[1]) | EXPECT_LT(selected.predicted_metric, initial) | EXPECT_LE(selected.predicted_metric, 1e-10) | EXPECT_EQ(selected.predicted_metric, exact_metric) | ASSERT_TRUE(alternative_tangent.HasValue()) | ASSERT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), alternative_tangent.Value(), {0, 1}, frame, 1, -.05, .275625, &selected, &ranked)) | ASSERT_EQ(ranked.size(), 2U) | EXPECT_EQ(ranked[0].full_dof, 0U) | EXPECT_EQ(ranked[1].full_dof, 1U) | EXPECT_LT(ranked[0].predicted_metric, ranked[1].predicted_metric) | EXPECT_LT(ranked[1].predicted_metric, initial) | ASSERT_TRUE(accepted.HasValue()) | EXPECT_TRUE(accepted.Value()) | EXPECT_EQ(tried, (std::vector{0, 1})) | EXPECT_FALSE(invalid.HasValue()) | EXPECT_EQ(tried, (std::vector{0})) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.RepresentableNeighborKeepsExactZeroAndRejectsInvalidArithmetic SolidHhtDynamics.RepresentableNeighborKeepsExactZeroAndRejectsInvalidArithmetic; assertion 6개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.RepresentableNeighborKeepsExactZeroAndRejectsInvalidArithmetic 유지 원문 검사 body 및 assertion 동일. d9613a73dba9cc37e8a8f2190ca794fcacc17920cf0fba558508b576429d4d31 d9613a73dba9cc37e8a8f2190ca794fcacc17920cf0fba558508b576429d4d31 ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(tangent.HasValue()) | EXPECT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, frame, .1, -.05, .275625, &selected)) | EXPECT_FALSE(selected.found) | EXPECT_FALSE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, bad, .1, -.05, .275625, &selected)) | EXPECT_FALSE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, frame, 0, -.05, .275625, &selected)) ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(tangent.HasValue()) | EXPECT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, frame, .1, -.05, .275625, &selected)) | EXPECT_FALSE(selected.found) | EXPECT_FALSE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, bad, .1, -.05, .275625, &selected)) | EXPECT_FALSE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, frame, 0, -.05, .275625, &selected)) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.ActualNewtonStallAtLowHalfOfTwoCycleTriesFallback SolidHhtFloat64History.ActualNewtonStallAtLowHalfOfTwoCycleTriesFallback; assertion 10개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.ActualNewtonStallAtLowHalfOfTwoCycleTriesFallback 유지 원문 검사 body 및 assertion 동일. 704d7a705643dd225528629f4b721162a3c853dd1a41efd579935737b8adeb80 704d7a705643dd225528629f4b721162a3c853dd1a41efd579935737b8adeb80 "ASSERT_LT(current_metric, previous_metric) | ASSERT_TRUE(history.Capture(previous, mask, metrics, 0, false)) | ASSERT_TRUE(history.Capture(current, mask, metrics, 1, false)) | EXPECT_TRUE(history.Match(previous, mask, metrics, false, &repeat)) | ASSERT_TRUE(selected.HasValue()) | EXPECT_TRUE(selected.Value()) | EXPECT_EQ(evaluated, (std::vector{""complete-newton"", ""actual-neighbor""})) | ASSERT_TRUE(productive.HasValue()) | EXPECT_FALSE(productive.Value()) | EXPECT_EQ(evaluated, (std::vector{""complete-newton""}))" "ASSERT_LT(current_metric, previous_metric) | ASSERT_TRUE(history.Capture(previous, mask, metrics, 0, false)) | ASSERT_TRUE(history.Capture(current, mask, metrics, 1, false)) | EXPECT_TRUE(history.Match(previous, mask, metrics, false, &repeat)) | ASSERT_TRUE(selected.HasValue()) | EXPECT_TRUE(selected.Value()) | EXPECT_EQ(evaluated, (std::vector{""complete-newton"", ""actual-neighbor""})) | ASSERT_TRUE(productive.HasValue()) | EXPECT_FALSE(productive.Value()) | EXPECT_EQ(evaluated, (std::vector{""complete-newton""}))" -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.ExactNewtonLoopHistoryDetectsThreeStateRecurrence SolidHhtFloat64History.ExactNewtonLoopHistoryDetectsThreeStateRecurrence; assertion 28개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.ExactNewtonLoopHistoryDetectsThreeStateRecurrence 유지 원문 검사 body 및 assertion 동일. 0d255c9f25e86d515bd140a91ed3a0af1f996156162df0c81c8e8cb340b2cd78 0d255c9f25e86d515bd140a91ed3a0af1f996156162df0c81c8e8cb340b2cd78 ASSERT_TRUE(history.Capture(first, first_mask, first_metrics, 4, false)) | ASSERT_TRUE(history.Capture(second, second_mask, second_metrics, 5, false)) | ASSERT_TRUE(history.Capture(third, first_mask, second_metrics, 6, false)) | EXPECT_EQ(history.Size(), 3U) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_TRUE(e.repeat) | EXPECT_EQ(e.matched_entry_iteration, 4U) | EXPECT_EQ(e.history_entry_count, 3U) | EXPECT_EQ(e.changed_translations, 0U) | EXPECT_EQ(e.changed_holding_mask, 0U) | EXPECT_EQ(e.changed_correction_metrics, 0U) | ASSERT_TRUE(history.Match(first, second_mask, first_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, different_metrics, false, &e)) | EXPECT_TRUE( e.repeat) | EXPECT_EQ(e.changed_correction_metrics, 1U) | ASSERT_TRUE(history.Match(first, first_mask, failing_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, true, &e)) | EXPECT_FALSE(e.repeat) | EXPECT_FALSE( history.Match(fesa::Vector(2), first_mask, first_metrics, false, &e)) | EXPECT_FALSE(history.Match(first, {false}, first_metrics, false, &e)) | EXPECT_FALSE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_FALSE(history.Capture(first, first_mask, first_metrics, 7, false)) | EXPECT_FALSE(history.Match(first, first_mask, bad_metrics, false, &e)) | EXPECT_FALSE(history.Capture(first, first_mask, bad_metrics, 7, false)) ASSERT_TRUE(history.Capture(first, first_mask, first_metrics, 4, false)) | ASSERT_TRUE(history.Capture(second, second_mask, second_metrics, 5, false)) | ASSERT_TRUE(history.Capture(third, first_mask, second_metrics, 6, false)) | EXPECT_EQ(history.Size(), 3U) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_TRUE(e.repeat) | EXPECT_EQ(e.matched_entry_iteration, 4U) | EXPECT_EQ(e.history_entry_count, 3U) | EXPECT_EQ(e.changed_translations, 0U) | EXPECT_EQ(e.changed_holding_mask, 0U) | EXPECT_EQ(e.changed_correction_metrics, 0U) | ASSERT_TRUE(history.Match(first, second_mask, first_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, different_metrics, false, &e)) | EXPECT_TRUE( e.repeat) | EXPECT_EQ(e.changed_correction_metrics, 1U) | ASSERT_TRUE(history.Match(first, first_mask, failing_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, true, &e)) | EXPECT_FALSE(e.repeat) | EXPECT_FALSE( history.Match(fesa::Vector(2), first_mask, first_metrics, false, &e)) | EXPECT_FALSE(history.Match(first, {false}, first_metrics, false, &e)) | EXPECT_FALSE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_FALSE(history.Capture(first, first_mask, first_metrics, 7, false)) | EXPECT_FALSE(history.Match(first, first_mask, bad_metrics, false, &e)) | EXPECT_FALSE(history.Capture(first, first_mask, bad_metrics, 7, false)) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.EquivalentFailedNewtonEntrySurvivesRepresentableMove SolidHhtFloat64History.EquivalentFailedNewtonEntrySurvivesRepresentableMove; assertion 21개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.EquivalentFailedNewtonEntrySurvivesRepresentableMove 유지 원문 검사 body 및 assertion 동일. 6b2aeb48d13d507d18a5dd85677f1fbc3204be7f109d4237fb3cae32ca59e4e1 6b2aeb48d13d507d18a5dd85677f1fbc3204be7f109d4237fb3cae32ca59e4e1 "ASSERT_TRUE(history.Capture(failed, mask, correction, 23, true)) | EXPECT_EQ(history.Size(), 0U) | ASSERT_TRUE(history.Capture(failed, mask, large, 23, false)) | EXPECT_EQ(history.Size(), 0U) | ASSERT_TRUE(history.Capture(failed, mask, correction, 23, false)) | EXPECT_TRUE(history.Match(failed, mask, correction, false, &e)) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(first.Value()) | EXPECT_NE(actual[0], failed[0]) | EXPECT_TRUE(history.Match(failed, mask, new_metrics, false, &e)) | EXPECT_TRUE(e.repeat) | EXPECT_EQ(e.matched_entry_iteration, 23U) | ASSERT_TRUE(second.HasValue()) | EXPECT_TRUE(second.Value()) | EXPECT_EQ(applied, (std::vector{""accepted-ulp"", ""returning-newton-evaluated"", ""another-accepted-ulp""})) | ASSERT_TRUE(history.Match(fresh, mask, new_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(failed, {true, false}, new_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(failed, mask, new_metrics, true, &e)) | EXPECT_FALSE(e.repeat)" "ASSERT_TRUE(history.Capture(failed, mask, correction, 23, true)) | EXPECT_EQ(history.Size(), 0U) | ASSERT_TRUE(history.Capture(failed, mask, large, 23, false)) | EXPECT_EQ(history.Size(), 0U) | ASSERT_TRUE(history.Capture(failed, mask, correction, 23, false)) | EXPECT_TRUE(history.Match(failed, mask, correction, false, &e)) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(first.Value()) | EXPECT_NE(actual[0], failed[0]) | EXPECT_TRUE(history.Match(failed, mask, new_metrics, false, &e)) | EXPECT_TRUE(e.repeat) | EXPECT_EQ(e.matched_entry_iteration, 23U) | ASSERT_TRUE(second.HasValue()) | EXPECT_TRUE(second.Value()) | EXPECT_EQ(applied, (std::vector{""accepted-ulp"", ""returning-newton-evaluated"", ""another-accepted-ulp""})) | ASSERT_TRUE(history.Match(fresh, mask, new_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(failed, {true, false}, new_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(failed, mask, new_metrics, true, &e)) | EXPECT_FALSE(e.repeat)" -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.UnsupportedPairedProductsPreserveEmptyHistory SolidHhtDynamics.UnsupportedPairedProductsPreserveEmptyHistory; assertion 9개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.UnsupportedPairedProductsPreserveEmptyHistory 유지 원문 검사 body 및 assertion 동일. ee1b43798dba3932ce708b5da15e9939ca00a2600a213127e00db3b0a0fdfd03 ee1b43798dba3932ce708b5da15e9939ca00a2600a213127e00db3b0a0fdfd03 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_NE(status.Diagnostics().front().message.find(""supported""), std::string::npos) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue())" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_NE(status.Diagnostics().front().message.find(""supported""), std::string::npos) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue())" -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.FailureShadowRecoversCancellationAndRejectsOverflow SolidHhtDynamics.FailureShadowRecoversCancellationAndRejectsOverflow; assertion 8개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.FailureShadowRecoversCancellationAndRejectsOverflow 유지 원문 검사 body 및 assertion 동일. e0a5f34b9c1b33e66905824b7b4c1a4a0987200be7dc62c0e9f98a1ff767e22b e0a5f34b9c1b33e66905824b7b4c1a4a0987200be7dc62c0e9f98a1ff767e22b ASSERT_TRUE(fesa::detail::AccumulateSolidHhtForceShadow( term, 0, &sum, &correction, &absolute_sum)) | EXPECT_EQ(sum, 0) | EXPECT_EQ(sum + correction, 1) | ASSERT_TRUE(fesa::detail::AccumulateSolidHhtForceShadow( 1e308, 0, &sum, &correction, &absolute_sum)) | EXPECT_FALSE(fesa::detail::AccumulateSolidHhtForceShadow( -1e308, 0, &sum, &correction, &absolute_sum)) | EXPECT_EQ(sum, 1e308) | EXPECT_EQ(absolute_sum, 1e308) | EXPECT_FALSE(fesa::detail::AccumulateSolidHhtForceShadow( 0, std::numeric_limits::quiet_NaN(), &sum, &correction, &absolute_sum)) ASSERT_TRUE(fesa::detail::AccumulateSolidHhtForceShadow( term, 0, &sum, &correction, &absolute_sum)) | EXPECT_EQ(sum, 0) | EXPECT_EQ(sum + correction, 1) | ASSERT_TRUE(fesa::detail::AccumulateSolidHhtForceShadow( 1e308, 0, &sum, &correction, &absolute_sum)) | EXPECT_FALSE(fesa::detail::AccumulateSolidHhtForceShadow( -1e308, 0, &sum, &correction, &absolute_sum)) | EXPECT_EQ(sum, 1e308) | EXPECT_EQ(absolute_sum, 1e308) | EXPECT_FALSE(fesa::detail::AccumulateSolidHhtForceShadow( 0, std::numeric_limits::quiet_NaN(), &sum, &correction, &absolute_sum)) -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp support@1-151 helper/oracle/fixture/include/static assertion 구간: RunDynamics, Injected, ControlledTangent, FailedMass, OneFree, namespace, PairedUniformInitial tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e167ec455207cb5017c17c0b7637acff39128fa39f59e11d3c25f2701f98c2ff 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp support@375-444 helper/oracle/fixture/include/static assertion 구간: RestoreArithmeticEnvironment, MutateArithmeticEnvironment, defined, EnvironmentMass, EnvironmentTangent tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b2d00fc08e11c3ce43e06b98f3dae891caf968c4b4fa6bd29a53bdab50fb2004 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp support@854-975 helper/oracle/fixture/include/static assertion 구간: CheckOriginalSourceDeck, if, for tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3246a745bf72b60f32cde913fdf1d843b9baa70e5c6d6a3887a9d41f9bbbdf45 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f741d023883fd91114346b233a5a1b14c9bc760085fe9830079643d4eea06f84 2973549ac31485ce1ab52ad5dc69ca0e8790f437361cf696f53e4bac0b9c627c 해당 없음 해당 없음 -Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.PairedSerialAndTbbPreserveEveryLowComponent SolidHhtTemporal.PairedSerialAndTbbPreserveEveryLowComponent; assertion 0개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.PairedSerialAndTbbPreserveEveryLowComponent 유지 원문 검사 body 및 assertion 동일. 925f400f0ca59d4e2137357ae92f2a0dd2d7509f13b020d8976c51c5aca4650c 925f400f0ca59d4e2137357ae92f2a0dd2d7509f13b020d8976c51c5aca4650c 해당 없음 해당 없음 -Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.FreeConstantForceHasAnalyticalInitialAcceleration SolidHhtTemporal.FreeConstantForceHasAnalyticalInitialAcceleration; assertion 4개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.FreeConstantForceHasAnalyticalInitialAcceleration 유지 원문 검사 body 및 assertion 동일. cb0a64053e82c3ccc5536f4e9436ad00984a15283b69f2f32cad33eb3f89713f cb0a64053e82c3ccc5536f4e9436ad00984a15283b69f2f32cad33eb3f89713f ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(initial.acceleration[3 * node], 1, 1e-13) | EXPECT_DOUBLE_EQ(initial.displacement[3 * node], 0) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(initial.acceleration[3 * node], 1, 1e-13) | EXPECT_DOUBLE_EQ(initial.displacement[3 * node], 0) -Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.AllFreeUniformForceRetainsExactRigidTranslationBehavior SolidHhtTemporal.AllFreeUniformForceRetainsExactRigidTranslationBehavior; assertion 9개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.AllFreeUniformForceRetainsExactRigidTranslationBehavior 유지 원문 검사 body 및 assertion 동일. 8f852ae83f87b923ddb98e6b8def6326dadb54b8a8e7f239ca53f21cb5740be0 8f852ae83f87b923ddb98e6b8def6326dadb54b8a8e7f239ca53f21cb5740be0 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(std::any_of( state.Value().IterationRecords().begin(), state.Value().IterationRecords().end(), [](const auto& record) { return record.outcome == ""paired-candidate""; })) | EXPECT_NEAR(f.displacement[3 * n], .5 * f.time * f.time, roundoff * .5 * f.time * f.time) | EXPECT_NEAR(f.velocity[3 * n], f.time, roundoff * f.time) | EXPECT_NEAR(f.acceleration[3 * n], 1, roundoff) | EXPECT_NEAR(f.displacement[3 * n + c], 0, roundoff * .5 * f.time * f.time) | EXPECT_NEAR(f.velocity[3 * n + c], 0, roundoff * f.time) | EXPECT_NEAR(f.acceleration[3 * n + c], 0, roundoff)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(std::any_of( state.Value().IterationRecords().begin(), state.Value().IterationRecords().end(), [](const auto& record) { return record.outcome == ""paired-candidate""; })) | EXPECT_NEAR(f.displacement[3 * n], .5 * f.time * f.time, roundoff * .5 * f.time * f.time) | EXPECT_NEAR(f.velocity[3 * n], f.time, roundoff * f.time) | EXPECT_NEAR(f.acceleration[3 * n], 1, roundoff) | EXPECT_NEAR(f.displacement[3 * n + c], 0, roundoff * .5 * f.time * f.time) | EXPECT_NEAR(f.velocity[3 * n + c], 0, roundoff * f.time) | EXPECT_NEAR(f.acceleration[3 * n + c], 0, roundoff)" -Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.PairedNewtonKeepsAllOriginalComponentsAcrossAxesAndScales SolidHhtTemporal.PairedNewtonKeepsAllOriginalComponentsAcrossAxesAndScales; assertion 10개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.PairedNewtonKeepsAllOriginalComponentsAcrossAxesAndScales 유지 원문 검사 body 및 assertion 동일. 7652c6a7c34e2a7cb0a270e47e8f0e15059187b39635ba1980ddbfac049e0764 7652c6a7c34e2a7cb0a270e47e8f0e15059187b39635ba1980ddbfac049e0764 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(status.IsOk()) | EXPECT_LE(frame.iterations.back().residual_metric, 1e-10) | EXPECT_LE(frame.iterations.back().update_metric, 1e-12) | EXPECT_NEAR(frame.displacement[3 * node + c], .5 * a * frame.time * frame.time, roundoff * .5 * acceleration * frame.time * frame.time) | EXPECT_NEAR(frame.velocity[3 * node + c], a * frame.time, roundoff * acceleration * frame.time) | EXPECT_NEAR(frame.acceleration[3 * node + c], a, roundoff * acceleration) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(status.IsOk()) | EXPECT_LE(frame.iterations.back().residual_metric, 1e-10) | EXPECT_LE(frame.iterations.back().update_metric, 1e-12) | EXPECT_NEAR(frame.displacement[3 * node + c], .5 * a * frame.time * frame.time, roundoff * .5 * acceleration * frame.time * frame.time) | EXPECT_NEAR(frame.velocity[3 * node + c], a * frame.time, roundoff * acceleration * frame.time) | EXPECT_NEAR(frame.acceleration[3 * node + c], a, roundoff * acceleration) -Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.ActualTwoBrickLinearAndRotatingSmallStrainTlAreSecondOrder SolidHhtTemporal.ActualTwoBrickLinearAndRotatingSmallStrainTlAreSecondOrder; assertion 4개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.ActualTwoBrickLinearAndRotatingSmallStrainTlAreSecondOrder 유지 원문 검사 body 및 assertion 동일. e27884c416eb70f27d47e3985209f13751955e5c30a689ad6d938474f41ca416 e27884c416eb70f27d47e3985209f13751955e5c30a689ad6d938474f41ca416 EXPECT_GT(fine[j], 1e-8) | EXPECT_LT(coarse[j], .1) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) EXPECT_GT(fine[j], 1e-8) | EXPECT_LT(coarse[j], .1) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) -Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.IndependentThreeDofBrickOscillatorHasSecondOrderUVA SolidHhtTemporal.IndependentThreeDofBrickOscillatorHasSecondOrderUVA; assertion 5개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.IndependentThreeDofBrickOscillatorHasSecondOrderUVA 유지 원문 검사 body 및 assertion 동일. a3cc00aa843d56fb0d6354682dccb6ddb98a61b624f57e2337a37499cc7e3efa a3cc00aa843d56fb0d6354682dccb6ddb98a61b624f57e2337a37499cc7e3efa ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) | EXPECT_GT(errors[2][j], 1e-15) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) | EXPECT_GT(errors[2][j], 1e-15) -Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.IndependentScalarBrickOscillatorHasSecondOrderUVA SolidHhtTemporal.IndependentScalarBrickOscillatorHasSecondOrderUVA; assertion 7개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.IndependentScalarBrickOscillatorHasSecondOrderUVA 유지 원문 검사 body 및 assertion 동일. 8cd02e0db682a2480cd82a7ce3bb9d235ada6080f491eb79a280b4fd3469633f 8cd02e0db682a2480cd82a7ce3bb9d235ada6080f491eb79a280b4fd3469633f ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR( f.kinetic_energy, .5 * m * f.velocity[0] * f.velocity[0], 512 * std::numeric_limits::epsilon() * f.kinetic_energy) | EXPECT_NEAR(f.strain_energy, .5 * k * f.displacement[0] * f.displacement[0], 512 * std::numeric_limits::epsilon() * f.strain_energy) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) | EXPECT_GT(errors[2][j], 1e-8) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR( f.kinetic_energy, .5 * m * f.velocity[0] * f.velocity[0], 512 * std::numeric_limits::epsilon() * f.kinetic_energy) | EXPECT_NEAR(f.strain_energy, .5 * k * f.displacement[0] * f.displacement[0], 512 * std::numeric_limits::epsilon() * f.strain_energy) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) | EXPECT_GT(errors[2][j], 1e-8) -Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.FixedThicknessBendingRetainsDiscreteBulkBias SolidHhtTemporal.FixedThicknessBendingRetainsDiscreteBulkBias; assertion 3개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.FixedThicknessBendingRetainsDiscreteBulkBias 유지 원문 검사 body 및 assertion 동일. e9210764d5fd451d439b84dfd39db8695cac0f2bb2e9aefc1913caaa132185f4 e9210764d5fd451d439b84dfd39db8695cac0f2bb2e9aefc1913caaa132185f4 EXPECT_NEAR(energy[0] / continuum, limit + parasitic, 2e-11) | EXPECT_NEAR(energy[2] / continuum, 0, 2e-13) | EXPECT_NEAR(previous_parasitic / parasitic, 4, 1e-13) EXPECT_NEAR(energy[0] / continuum, limit + parasitic, 2e-11) | EXPECT_NEAR(energy[2] / continuum, 0, 2e-13) | EXPECT_NEAR(previous_parasitic / parasitic, 4, 1e-13) -Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.BendingMeshRefinementQuantifiesFullIntegrationShearLocking SolidHhtTemporal.BendingMeshRefinementQuantifiesFullIntegrationShearLocking; assertion 4개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.BendingMeshRefinementQuantifiesFullIntegrationShearLocking 유지 원문 검사 body 및 assertion 동일. f2d9632408ddbfd1de879876b41c4dbed627801d1bc3b1454cedd7b77345ce1d f2d9632408ddbfd1de879876b41c4dbed627801d1bc3b1454cedd7b77345ce1d EXPECT_NEAR(error, shear - missing_bulk, 2e-11) | EXPECT_NEAR(energy[1] / continuum, 4 * mu / (3 * axial) + shear, 2e-11) | EXPECT_NEAR(energy[2] / continuum, bulk / axial - missing_bulk, 2e-11) | EXPECT_NEAR(previous_error / error, 4, 1e-10) EXPECT_NEAR(error, shear - missing_bulk, 2e-11) | EXPECT_NEAR(energy[1] / continuum, 4 * mu / (3 * axial) + shear, 2e-11) | EXPECT_NEAR(energy[2] / continuum, bulk / axial - missing_bulk, 2e-11) | EXPECT_NEAR(previous_error / error, 4, 1e-10) -Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp support@1-332 helper/oracle/fixture/include/static assertion 구간: AffineMotion, Motion, if, Apply, TwoBricks, ExactForce, ExactMassProduct, AddCross, ManufacturedRun, for tests/unit/analysis/solid_hht_temporal_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4c8ee89aab5bd9798906f93ce66756ce94ef4d24fd91379106f91fb317702361 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp support@602-649 helper/oracle/fixture/include/static assertion 구간: BendingEnergy tests/unit/analysis/solid_hht_temporal_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5ea1a45d3745809343ba4a3358aaafeb00f60c830f663189069687af8a684b7f 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/solid_hht_test_fixture.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/unit/analysis/solid_hht_test_fixture.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e2621f72b12715391a06e51ec23a320063679e90af74443afd5237197194b962 2ffd1ec89405f926f038cb58fc612604ff8e17853c134caf7cb127c32685cefd 해당 없음 해당 없음 -Dev tests/unit/analysis/solid_hht_test_fixture.h support@1-52 helper/oracle/fixture/include/static assertion 구간: solid_hht_test, Brick, Message tests/unit/analysis/solid_hht_test_fixture.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e2621f72b12715391a06e51ec23a320063679e90af74443afd5237197194b962 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/solid_static_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 22개 tests/unit/analysis/solid_static_procedure_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 34391f18bae6f8ff3abe2d99d252ab74cbdd481fd066ba1594419eb2f1da5ab1 8253b2e91a4db4d52cc039a5084ddfb93f7b0ffd1d10b1680e0e79439eabcb04 해당 없음 해당 없음 -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LinearForceNonzeroSupportAndCompleteRecovery SolidStaticProcedure.LinearForceNonzeroSupportAndCompleteRecovery; assertion 17개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LinearForceNonzeroSupportAndCompleteRecovery 유지 원문 검사 body 및 assertion 동일. 0661804c27dc3d473e445fb06a9874f92a9e56b90ad2f77cafcd5eda24a801ed 0661804c27dc3d473e445fb06a9874f92a9e56b90ad2f77cafcd5eda24a801ed ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 1U) | EXPECT_EQ(frame.frame_index, 0U) | EXPECT_DOUBLE_EQ(frame.load_factor, 1.0) | ASSERT_EQ(frame.displacement.Size(), 24U) | ASSERT_EQ(frame.solid_results.size(), 8U) | EXPECT_NEAR(frame.displacement[3 * a], 0.02 + 0.01 * kX[a][0], 1e-13) | EXPECT_NEAR(frame.displacement[3 * a + 1], -0.0025 * kX[a][1], 1e-13) | EXPECT_NEAR(frame.displacement[3 * a + 2], -0.0025 * kX[a][2], 1e-13) | EXPECT_DOUBLE_EQ(frame.reaction[3 * a], 0.0) | EXPECT_NEAR(frame.reaction[3 * a], -0.3, 1e-13) | EXPECT_NEAR(frame.physical_strain_energy, 0.006, 1e-13) | EXPECT_NEAR(point.cauchy_stress[0], 1.2, 1e-12) | EXPECT_NEAR(point.cauchy_stress[1], 0.0, 1e-12) | EXPECT_NEAR(point.strain[0], 0.01, 1e-13) | EXPECT_NEAR(value, 0.0, 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 1U) | EXPECT_EQ(frame.frame_index, 0U) | EXPECT_DOUBLE_EQ(frame.load_factor, 1.0) | ASSERT_EQ(frame.displacement.Size(), 24U) | ASSERT_EQ(frame.solid_results.size(), 8U) | EXPECT_NEAR(frame.displacement[3 * a], 0.02 + 0.01 * kX[a][0], 1e-13) | EXPECT_NEAR(frame.displacement[3 * a + 1], -0.0025 * kX[a][1], 1e-13) | EXPECT_NEAR(frame.displacement[3 * a + 2], -0.0025 * kX[a][2], 1e-13) | EXPECT_DOUBLE_EQ(frame.reaction[3 * a], 0.0) | EXPECT_NEAR(frame.reaction[3 * a], -0.3, 1e-13) | EXPECT_NEAR(frame.physical_strain_energy, 0.006, 1e-13) | EXPECT_NEAR(point.cauchy_stress[0], 1.2, 1e-12) | EXPECT_NEAR(point.cauchy_stress[1], 0.0, 1e-12) | EXPECT_NEAR(point.strain[0], 0.01, 1e-13) | EXPECT_NEAR(value, 0.0, 1e-12) -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.AllConstrainedShearHasTensorStrainAndLinearMomentEvidence SolidStaticProcedure.AllConstrainedShearHasTensorStrainAndLinearMomentEvidence; assertion 8개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.AllConstrainedShearHasTensorStrainAndLinearMomentEvidence 유지 원문 검사 body 및 assertion 동일. e2c2aaea106d7f59e5ac8f4e9b545fe99ced00b92c0113d4e36fd40d305a972b e2c2aaea106d7f59e5ac8f4e9b545fe99ced00b92c0113d4e36fd40d305a972b ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(point.strain[3], 0.015, 1e-13) | EXPECT_NEAR(point.cauchy_stress[3], 1.44, 1e-12) | EXPECT_NEAR(frame.physical_strain_energy, 0.0504, 1e-13) | EXPECT_GT(std::abs(frame.balance.current_internal_moment[2]), 1e-5) | EXPECT_NEAR(frame.balance.current_internal_moment[2], frame.balance.linearization_moment[2], 1e-12) | EXPECT_NEAR(frame.balance.reference_internal_moment[2], 0.0, 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(point.strain[3], 0.015, 1e-13) | EXPECT_NEAR(point.cauchy_stress[3], 1.44, 1e-12) | EXPECT_NEAR(frame.physical_strain_energy, 0.0504, 1e-13) | EXPECT_GT(std::abs(frame.balance.current_internal_moment[2]), 1e-5) | EXPECT_NEAR(frame.balance.current_internal_moment[2], frame.balance.linearization_moment[2], 1e-12) | EXPECT_NEAR(frame.balance.reference_internal_moment[2], 0.0, 1e-12) -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.NonlinearDirectScheduleScalesForceAndAbsoluteTargets SolidStaticProcedure.NonlinearDirectScheduleScalesForceAndAbsoluteTargets; assertion 13개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.NonlinearDirectScheduleScalesForceAndAbsoluteTargets 유지 원문 검사 body 및 assertion 동일. d9e5db680ab7cfefe0bb0adc600921ea6a1ce60566317367656d013931bfebf6 d9e5db680ab7cfefe0bb0adc600921ea6a1ce60566317367656d013931bfebf6 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 4U) | EXPECT_EQ(frame.frame_index, n) | EXPECT_EQ(frame.increment_index, n + 1U) | EXPECT_DOUBLE_EQ(frame.load_factor, 0.25 * (n + 1)) | EXPECT_DOUBLE_EQ(frame.displacement[0], 0.02 * frame.load_factor) | EXPECT_DOUBLE_EQ(frame.external_force[3], 0.3 * frame.load_factor) | EXPECT_GT(frame.iteration_count, 1U) | EXPECT_EQ(frame.is_factor_one, n == 3) | EXPECT_NEAR(value, 0.0, 1e-12) | ASSERT_FALSE(result.Value().state.IterationRecords().empty()) | EXPECT_TRUE(result.Value().state.IterationRecords().back().accepted) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 4U) | EXPECT_EQ(frame.frame_index, n) | EXPECT_EQ(frame.increment_index, n + 1U) | EXPECT_DOUBLE_EQ(frame.load_factor, 0.25 * (n + 1)) | EXPECT_DOUBLE_EQ(frame.displacement[0], 0.02 * frame.load_factor) | EXPECT_DOUBLE_EQ(frame.external_force[3], 0.3 * frame.load_factor) | EXPECT_GT(frame.iteration_count, 1U) | EXPECT_EQ(frame.is_factor_one, n == 3) | EXPECT_NEAR(value, 0.0, 1e-12) | ASSERT_FALSE(result.Value().state.IterationRecords().empty()) | EXPECT_TRUE(result.Value().state.IterationRecords().back().accepted) -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PurePrescribedNonlinearAndSmallLoadLinearLimit SolidStaticProcedure.PurePrescribedNonlinearAndSmallLoadLinearLimit; assertion 9개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PurePrescribedNonlinearAndSmallLoadLinearLimit 유지 원문 검사 body 및 assertion 동일. 45b82b45c2f4ba29abb9e5f78b83dea26d453f512441f7bb2d79443d02ab4f92 45b82b45c2f4ba29abb9e5f78b83dea26d453f512441f7bb2d79443d02ab4f92 ASSERT_TRUE(pure.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(record.force_residual.branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(record.force_residual.denominator_scale, 0.0) | ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(l.HasValue()) | ASSERT_TRUE(n.HasValue()) | EXPECT_NEAR(l.Value().state.CommittedState().displacement[i], n.Value().state.CommittedState().displacement[i], 2e-13) ASSERT_TRUE(pure.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(record.force_residual.branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(record.force_residual.denominator_scale, 0.0) | ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(l.HasValue()) | ASSERT_TRUE(n.HasValue()) | EXPECT_NEAR(l.Value().state.CommittedState().displacement[i], n.Value().state.CommittedState().displacement[i], 2e-13) -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.StrainedThenRotatedTLCauchyAndEnergyOracle SolidStaticProcedure.StrainedThenRotatedTLCauchyAndEnergyOracle; assertion 7개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.StrainedThenRotatedTLCauchyAndEnergyOracle 유지 원문 검사 body 및 assertion 동일. ae7f274dc580d801db003d380539c0153f30638e98a1aef9ddb9bed86a5cf421 ae7f274dc580d801db003d380539c0153f30638e98a1aef9ddb9bed86a5cf421 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(point.strain[0], green, 1e-13) | EXPECT_NEAR( point.cauchy_stress[0], std::pow(std::cos(angle), 2) * s0 + std::pow(std::sin(angle), 2) * s1, 1e-11) | EXPECT_NEAR(point.cauchy_stress[3], std::sin(angle) * std::cos(angle) * (s0 - s1), 1e-11) | EXPECT_NEAR(frame.physical_strain_energy, 72 * green * green, 1e-12) | EXPECT_NEAR(value, 0.0, 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(point.strain[0], green, 1e-13) | EXPECT_NEAR( point.cauchy_stress[0], std::pow(std::cos(angle), 2) * s0 + std::pow(std::sin(angle), 2) * s1, 1e-11) | EXPECT_NEAR(point.cauchy_stress[3], std::sin(angle) * std::cos(angle) * (s0 - s1), 1e-11) | EXPECT_NEAR(frame.physical_strain_energy, 72 * green * green, 1e-12) | EXPECT_NEAR(value, 0.0, 1e-12) -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.FailedBackendKeepsActualAcceptedHistory SolidStaticProcedure.FailedBackendKeepsActualAcceptedHistory; assertion 11개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.FailedBackendKeepsActualAcceptedHistory 유지 원문 검사 body 및 assertion 동일. 8fcbb8d30b751700e685c57cf7f932779ef1105776f8c5cde20834df611a5075 8fcbb8d30b751700e685c57cf7f932779ef1105776f8c5cde20834df611a5075 "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.25) | EXPECT_EQ(state.CommittedState().displacement.Size(), 24U) | EXPECT_EQ(state.CommittedState().solid_results.size(), 8U) | EXPECT_EQ(state.IterationRecords().back().diagnostic_code, ""injected-backend"") | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | EXPECT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.25)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.25) | EXPECT_EQ(state.CommittedState().displacement.Size(), 24U) | EXPECT_EQ(state.CommittedState().solid_results.size(), 8U) | EXPECT_EQ(state.IterationRecords().back().diagnostic_code, ""injected-backend"") | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | EXPECT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.25)" -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.GeometryIterationAndNonfiniteFailuresPreserveBaseline SolidStaticProcedure.GeometryIterationAndNonfiniteFailuresPreserveBaseline; assertion 10개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.GeometryIterationAndNonfiniteFailuresPreserveBaseline 유지 원문 검사 body 및 assertion 동일. d01826c155aeded9026db515baedaf45ea10080a9ac6c9e5604e3e8f05b46770 d01826c155aeded9026db515baedaf45ea10080a9ac6c9e5604e3e8f05b46770 ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(state.AcceptedFrames().empty()) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.0) | ASSERT_EQ(state.CommittedState().displacement.Size(), 24U) | EXPECT_DOUBLE_EQ(state.CommittedState().displacement[i], 0.0) | ASSERT_FALSE(state.IterationRecords().empty()) | EXPECT_FALSE(state.IterationRecords().back().accepted) | EXPECT_FALSE(state.IterationRecords().back().diagnostic_code.empty()) | EXPECT_EQ(state.IterationRecords().back().iteration, 100U) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(state.AcceptedFrames().empty()) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.0) | ASSERT_EQ(state.CommittedState().displacement.Size(), 24U) | EXPECT_DOUBLE_EQ(state.CommittedState().displacement[i], 0.0) | ASSERT_FALSE(state.IterationRecords().empty()) | EXPECT_FALSE(state.IterationRecords().back().accepted) | EXPECT_FALSE(state.IterationRecords().back().diagnostic_code.empty()) | EXPECT_EQ(state.IterationRecords().back().iteration, 100U) -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.UnconstrainedSolidFailsWithoutRegularization SolidStaticProcedure.UnconstrainedSolidFailsWithoutRegularization; assertion 2개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.UnconstrainedSolidFailsWithoutRegularization 유지 원문 검사 body 및 assertion 동일. 26a02bf428c8b4d8684b66f3b75d4fc83e96c18d6497d81dba18879b19b2c81f 26a02bf428c8b4d8684b66f3b75d4fc83e96c18d6497d81dba18879b19b2c81f ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(result.HasValue()) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(result.HasValue()) -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.EightElementAffinePatchHasSolvedInteriorAndStableRows SolidStaticProcedure.EightElementAffinePatchHasSolvedInteriorAndStableRows; assertion 18개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.EightElementAffinePatchHasSolvedInteriorAndStableRows 유지 원문 검사 body 및 assertion 동일. db9abadb927e8b0a0bb434ae43107b27275e65355b74fbba89d72cfad8c88d91 db9abadb927e8b0a0bb434ae43107b27275e65355b74fbba89d72cfad8c88d91 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(frame.solid_results.size(), 64U) | EXPECT_NEAR(frame.displacement[3 * 13], 0.05, 1e-13) | EXPECT_NEAR(frame.displacement[3 * 13 + 1], 0.0, 1e-13) | EXPECT_NEAR(frame.displacement[3 * 13 + 2], 0.0, 1e-13) | EXPECT_NEAR(frame.physical_strain_energy, 8 * 0.0504, 1e-12) | EXPECT_EQ(frame.solid_results[g].element, g / 8) | EXPECT_EQ(frame.solid_results[g].integration_point, static_cast(g % 8 + 1)) | EXPECT_NEAR(frame.solid_results[g].cauchy_stress[0], 2.88, 1e-12) | EXPECT_NEAR(frame.solid_results[g].cauchy_stress[3], 1.44, 1e-12) | ASSERT_TRUE(parallel_result.HasValue()) | EXPECT_DOUBLE_EQ(parallel_frame.physical_strain_energy, frame.physical_strain_energy) | EXPECT_DOUBLE_EQ(parallel_frame.displacement[i], frame.displacement[i]) | EXPECT_DOUBLE_EQ(parallel_frame.internal_force[i], frame.internal_force[i]) | EXPECT_DOUBLE_EQ(parallel_frame.residual[i], frame.residual[i]) | EXPECT_EQ(parallel_frame.solid_results[g].cauchy_stress, frame.solid_results[g].cauchy_stress) | EXPECT_EQ(parallel_frame.solid_results[g].strain, frame.solid_results[g].strain) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(frame.solid_results.size(), 64U) | EXPECT_NEAR(frame.displacement[3 * 13], 0.05, 1e-13) | EXPECT_NEAR(frame.displacement[3 * 13 + 1], 0.0, 1e-13) | EXPECT_NEAR(frame.displacement[3 * 13 + 2], 0.0, 1e-13) | EXPECT_NEAR(frame.physical_strain_energy, 8 * 0.0504, 1e-12) | EXPECT_EQ(frame.solid_results[g].element, g / 8) | EXPECT_EQ(frame.solid_results[g].integration_point, static_cast(g % 8 + 1)) | EXPECT_NEAR(frame.solid_results[g].cauchy_stress[0], 2.88, 1e-12) | EXPECT_NEAR(frame.solid_results[g].cauchy_stress[3], 1.44, 1e-12) | ASSERT_TRUE(parallel_result.HasValue()) | EXPECT_DOUBLE_EQ(parallel_frame.physical_strain_energy, frame.physical_strain_energy) | EXPECT_DOUBLE_EQ(parallel_frame.displacement[i], frame.displacement[i]) | EXPECT_DOUBLE_EQ(parallel_frame.internal_force[i], frame.internal_force[i]) | EXPECT_DOUBLE_EQ(parallel_frame.residual[i], frame.residual[i]) | EXPECT_EQ(parallel_frame.solid_results[g].cauchy_stress, frame.solid_results[g].cauchy_stress) | EXPECT_EQ(parallel_frame.solid_results[g].strain, frame.solid_results[g].strain) -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LaterInvertedPrescribedTrialPreservesThreeAcceptedFrames SolidStaticProcedure.LaterInvertedPrescribedTrialPreservesThreeAcceptedFrames; assertion 8개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LaterInvertedPrescribedTrialPreservesThreeAcceptedFrames 유지 원문 검사 body 및 assertion 동일. aa4fc98ea93ac0cf4107c008482a044d58aa6fe24db7d22ac1f070603a8cd04c aa4fc98ea93ac0cf4107c008482a044d58aa6fe24db7d22ac1f070603a8cd04c ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 3U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.75) | EXPECT_NEAR(state.CommittedState().displacement[3], -0.9, 1e-15) | ASSERT_EQ(state.CommittedState().solid_results.size(), 8U) | EXPECT_EQ(state.IterationRecords().back().increment_index, 4U) | EXPECT_FALSE(state.IterationRecords().back().accepted) ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 3U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.75) | EXPECT_NEAR(state.CommittedState().displacement[3], -0.9, 1e-15) | ASSERT_EQ(state.CommittedState().solid_results.size(), 8U) | EXPECT_EQ(state.IterationRecords().back().increment_index, 4U) | EXPECT_FALSE(state.IterationRecords().back().accepted) -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PartiallySupportedRigidMechanismAlsoFailsUnloaded SolidStaticProcedure.PartiallySupportedRigidMechanismAlsoFailsUnloaded; assertion 3개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PartiallySupportedRigidMechanismAlsoFailsUnloaded 유지 원문 검사 body 및 assertion 동일. 7f3830b55f5ac74af77b283eb5c3bc1c1e747a146c92b19de6d45f417141e9c5 7f3830b55f5ac74af77b283eb5c3bc1c1e747a146c92b19de6d45f417141e9c5 ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.SerialAndTbbFramesAndFailureEvidenceAreIdentical SolidStaticProcedure.SerialAndTbbFramesAndFailureEvidenceAreIdentical; assertion 18개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.SerialAndTbbFramesAndFailureEvidenceAreIdentical 유지 원문 검사 body 및 assertion 동일. 2204b6d824ccabcf85805a5c154e72abfcd625aa56a832f3814e99a3e0e70a47 2204b6d824ccabcf85805a5c154e72abfcd625aa56a832f3814e99a3e0e70a47 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(a.HasValue()) | ASSERT_TRUE(b.HasValue()) | ASSERT_EQ(a.Value().state.AcceptedFrames().size(), b.Value().state.AcceptedFrames().size()) | EXPECT_DOUBLE_EQ(af.physical_strain_energy, bf.physical_strain_energy) | EXPECT_EQ(af.global_equilibrium, bf.global_equilibrium) | EXPECT_DOUBLE_EQ(af.displacement[i], bf.displacement[i]) | EXPECT_DOUBLE_EQ(af.residual[i], bf.residual[i]) | EXPECT_DOUBLE_EQ(af.reaction[i], bf.reaction[i]) | EXPECT_EQ(af.solid_results[g].cauchy_stress, bf.solid_results[g].cauchy_stress) | EXPECT_EQ(af.solid_results[g].strain, bf.solid_results[g].strain) | ASSERT_TRUE(invalid.HasValue()) | ASSERT_FALSE(as.IsOk()) | ASSERT_FALSE(bs.IsOk()) | EXPECT_EQ(as.Diagnostics()[0].code, bs.Diagnostics()[0].code) | EXPECT_EQ(sa.AcceptedFrames().size(), sb.AcceptedFrames().size()) | EXPECT_EQ(sa.IterationRecords().back().stage, sb.IterationRecords().back().stage) | EXPECT_DOUBLE_EQ(sa.CommittedState().physical_strain_energy, sb.CommittedState().physical_strain_energy) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(a.HasValue()) | ASSERT_TRUE(b.HasValue()) | ASSERT_EQ(a.Value().state.AcceptedFrames().size(), b.Value().state.AcceptedFrames().size()) | EXPECT_DOUBLE_EQ(af.physical_strain_energy, bf.physical_strain_energy) | EXPECT_EQ(af.global_equilibrium, bf.global_equilibrium) | EXPECT_DOUBLE_EQ(af.displacement[i], bf.displacement[i]) | EXPECT_DOUBLE_EQ(af.residual[i], bf.residual[i]) | EXPECT_DOUBLE_EQ(af.reaction[i], bf.reaction[i]) | EXPECT_EQ(af.solid_results[g].cauchy_stress, bf.solid_results[g].cauchy_stress) | EXPECT_EQ(af.solid_results[g].strain, bf.solid_results[g].strain) | ASSERT_TRUE(invalid.HasValue()) | ASSERT_FALSE(as.IsOk()) | ASSERT_FALSE(bs.IsOk()) | EXPECT_EQ(as.Diagnostics()[0].code, bs.Diagnostics()[0].code) | EXPECT_EQ(sa.AcceptedFrames().size(), sb.AcceptedFrames().size()) | EXPECT_EQ(sa.IterationRecords().back().stage, sb.IterationRecords().back().stage) | EXPECT_DOUBLE_EQ(sa.CommittedState().physical_strain_energy, sb.CommittedState().physical_strain_energy) -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.InvalidRecoveryAndRepeatedExecutionKeepAcceptedFrame SolidStaticProcedure.InvalidRecoveryAndRepeatedExecutionKeepAcceptedFrame; assertion 9개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.InvalidRecoveryAndRepeatedExecutionKeepAcceptedFrame 유지 원문 검사 body 및 assertion 동일. c7dfc371a7b67a1c78981dc4d1deb65f7122dcff6108ae6c7ec65caf7448d811 c7dfc371a7b67a1c78981dc4d1deb65f7122dcff6108ae6c7ec65caf7448d811 ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(fesa::SolidStaticProcedureExecutor(serial, linear, tangent) .ExecuteInto(domain.Value(), state) .IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().physical_strain_energy, valid.physical_strain_energy) | EXPECT_EQ(state.CommittedState().solid_results[0].cauchy_stress, valid.solid_results[0].cauchy_stress) | EXPECT_FALSE(fesa::SolidStaticProcedureExecutor(serial, linear, tangent) .ExecuteInto(domain.Value(), state) .IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(fesa::SolidStaticProcedureExecutor(serial, linear, tangent) .ExecuteInto(domain.Value(), state) .IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().physical_strain_energy, valid.physical_strain_energy) | EXPECT_EQ(state.CommittedState().solid_results[0].cauchy_stress, valid.solid_results[0].cauchy_stress) | EXPECT_FALSE(fesa::SolidStaticProcedureExecutor(serial, linear, tangent) .ExecuteInto(domain.Value(), state) .IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.StressedIndefiniteFreeTangentUsesCapableBackend SolidStaticProcedure.StressedIndefiniteFreeTangentUsesCapableBackend; assertion 6개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.StressedIndefiniteFreeTangentUsesCapableBackend 유지 원문 검사 body 및 assertion 동일. b812d55397294e1477756f267282142cdab4613da0d6ba78c49161e44a4bb757 b812d55397294e1477756f267282142cdab4613da0d6ba78c49161e44a4bb757 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(tangent.rayleigh_sum, -21.12, 1e-12) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 1U) | EXPECT_NEAR(frame.displacement[3 * a + 1], 0.0, 1e-13) | EXPECT_NEAR(frame.solid_results[0].strain[0], -.48, 1e-13) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(tangent.rayleigh_sum, -21.12, 1e-12) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 1U) | EXPECT_NEAR(frame.displacement[3 * a + 1], 0.0, 1e-13) | EXPECT_NEAR(frame.solid_results[0].strain[0], -.48, 1e-13) -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.FullyConstrainedZeroDisplacementRetainsSupportLoadResidual SolidStaticProcedure.FullyConstrainedZeroDisplacementRetainsSupportLoadResidual; assertion 8개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.FullyConstrainedZeroDisplacementRetainsSupportLoadResidual 유지 원문 검사 body 및 assertion 동일. 956d6dd86eb3526eb262dd5e38e7b4245a5a0dda8fba51effed01c553a14f29f 956d6dd86eb3526eb262dd5e38e7b4245a5a0dda8fba51effed01c553a14f29f ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frame.internal_force[0], 0.0) | EXPECT_DOUBLE_EQ(frame.residual[0], -7.0) | EXPECT_DOUBLE_EQ(frame.reaction[0], -7.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | ASSERT_EQ(frame.solid_results.size(), 8U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frame.internal_force[0], 0.0) | EXPECT_DOUBLE_EQ(frame.residual[0], -7.0) | EXPECT_DOUBLE_EQ(frame.reaction[0], -7.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | ASSERT_EQ(frame.solid_results.size(), 8U) -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.UniformPrescribedTranslationHasExactlyZeroRecovery SolidStaticProcedure.UniformPrescribedTranslationHasExactlyZeroRecovery; assertion 11개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.UniformPrescribedTranslationHasExactlyZeroRecovery 유지 원문 검사 body 및 assertion 동일. 283e16609b747830674f685910884882be83a270558850725c06370227b2ff47 283e16609b747830674f685910884882be83a270558850725c06370227b2ff47 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(frame.displacement.Size(), 24U) | EXPECT_DOUBLE_EQ(frame.displacement[i], translation[i % 3U]) | EXPECT_DOUBLE_EQ(frame.internal_force[i], 0.0) | EXPECT_DOUBLE_EQ(frame.residual[i], 0.0) | EXPECT_DOUBLE_EQ(frame.reaction[i], 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | ASSERT_EQ(frame.solid_results.size(), 8U) | EXPECT_DOUBLE_EQ(strain, 0.0) | EXPECT_DOUBLE_EQ(stress, 0.0) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(frame.displacement.Size(), 24U) | EXPECT_DOUBLE_EQ(frame.displacement[i], translation[i % 3U]) | EXPECT_DOUBLE_EQ(frame.internal_force[i], 0.0) | EXPECT_DOUBLE_EQ(frame.residual[i], 0.0) | EXPECT_DOUBLE_EQ(frame.reaction[i], 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | ASSERT_EQ(frame.solid_results.size(), 8U) | EXPECT_DOUBLE_EQ(strain, 0.0) | EXPECT_DOUBLE_EQ(stress, 0.0) -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.MixedStrainAndTranslationPreserveAnalyticRecovery SolidStaticProcedure.MixedStrainAndTranslationPreserveAnalyticRecovery; assertion 16개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.MixedStrainAndTranslationPreserveAnalyticRecovery 유지 원문 검사 body 및 assertion 동일. d39c4b7c1d12b2e0b05fc9b5df66b9d0a184eee9e1f297b5fb4ea583f8655f8d d39c4b7c1d12b2e0b05fc9b5df66b9d0a184eee9e1f297b5fb4ea583f8655f8d ASSERT_TRUE(original_domain.HasValue()) | ASSERT_TRUE(translated_domain.HasValue()) | ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(translated.HasValue()) | EXPECT_NEAR(frame->physical_strain_energy, 0.1640625, 1e-13) | EXPECT_NEAR(point.strain[0], 1.0 / 32, 1e-15) | EXPECT_NEAR(point.strain[3], 1.0 / 32, 1e-15) | EXPECT_NEAR(point.cauchy_stress[c], stress[c], 1e-13) | EXPECT_NEAR(frame->internal_force[3 * node + c], exact_force[c], 1e-13) | EXPECT_NEAR(frame->reaction[3 * node + c], exact_force[c], 1e-13) | EXPECT_DOUBLE_EQ(a.physical_strain_energy, b.physical_strain_energy) | EXPECT_DOUBLE_EQ(a.internal_force[i], b.internal_force[i]) | EXPECT_DOUBLE_EQ(a.reaction[i], b.reaction[i]) | EXPECT_DOUBLE_EQ(a.residual[i], b.residual[i]) | EXPECT_EQ(a.solid_results[g].strain, b.solid_results[g].strain) | EXPECT_EQ(a.solid_results[g].cauchy_stress, b.solid_results[g].cauchy_stress) ASSERT_TRUE(original_domain.HasValue()) | ASSERT_TRUE(translated_domain.HasValue()) | ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(translated.HasValue()) | EXPECT_NEAR(frame->physical_strain_energy, 0.1640625, 1e-13) | EXPECT_NEAR(point.strain[0], 1.0 / 32, 1e-15) | EXPECT_NEAR(point.strain[3], 1.0 / 32, 1e-15) | EXPECT_NEAR(point.cauchy_stress[c], stress[c], 1e-13) | EXPECT_NEAR(frame->internal_force[3 * node + c], exact_force[c], 1e-13) | EXPECT_NEAR(frame->reaction[3 * node + c], exact_force[c], 1e-13) | EXPECT_DOUBLE_EQ(a.physical_strain_energy, b.physical_strain_energy) | EXPECT_DOUBLE_EQ(a.internal_force[i], b.internal_force[i]) | EXPECT_DOUBLE_EQ(a.reaction[i], b.reaction[i]) | EXPECT_DOUBLE_EQ(a.residual[i], b.residual[i]) | EXPECT_EQ(a.solid_results[g].strain, b.solid_results[g].strain) | EXPECT_EQ(a.solid_results[g].cauchy_stress, b.solid_results[g].cauchy_stress) -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PureLargeRigidRotationEndsAtZeroStrainEnergy SolidStaticProcedure.PureLargeRigidRotationEndsAtZeroStrainEnergy; assertion 5개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PureLargeRigidRotationEndsAtZeroStrainEnergy 유지 원문 검사 body 및 assertion 동일. 4fe6729cebd103240b949a646d1071d16c80aa9b748edec55cac4187a571090d 4fe6729cebd103240b949a646d1071d16c80aa9b748edec55cac4187a571090d ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(frame.physical_strain_energy, 0.0, 1e-25) | EXPECT_NEAR(value, 0.0, 1e-14) | EXPECT_NEAR(value, 0.0, 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(frame.physical_strain_energy, 0.0, 1e-25) | EXPECT_NEAR(value, 0.0, 1e-14) | EXPECT_NEAR(value, 0.0, 1e-12) -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.OrdinaryStaticKeepsExistingFinalShortFactorPath SolidStaticProcedure.OrdinaryStaticKeepsExistingFinalShortFactorPath; assertion 6개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.OrdinaryStaticKeepsExistingFinalShortFactorPath 유지 원문 검사 body 및 assertion 동일. f89b10887a1fc24fed122505ce929cd71894836076dc926635924d209419eb98 f89b10887a1fc24fed122505ce929cd71894836076dc926635924d209419eb98 ASSERT_NE(position, std::string::npos) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 4U) | EXPECT_NEAR(result.Value().state.AcceptedFrames()[i].load_factor, factors[i], 1e-15) | EXPECT_DOUBLE_EQ(result.Value().state.CommittedState().load_factor, 1.0) ASSERT_NE(position, std::string::npos) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 4U) | EXPECT_NEAR(result.Value().state.AcceptedFrames()[i].load_factor, factors[i], 1e-15) | EXPECT_DOUBLE_EQ(result.Value().state.CommittedState().load_factor, 1.0) -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.BoundedSpatialRefinementReportsFullIntegrationLocking SolidStaticProcedure.BoundedSpatialRefinementReportsFullIntegrationLocking; assertion 6개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.BoundedSpatialRefinementReportsFullIntegrationLocking 유지 원문 검사 body 및 assertion 동일. 0be527378cf6b99c5d21b37fae3756fcf90b3baf550974c57e04fc9f1f828875 0be527378cf6b99c5d21b37fae3756fcf90b3baf550974c57e04fc9f1f828875 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GT(tip, previous[material]) | EXPECT_LT(tip, 1.05 * beam_limit) | EXPECT_LT(final[1], final[0]) | EXPECT_GT(std::abs(final[1] - beam_limit), std::abs(final[0] - beam_limit)) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GT(tip, previous[material]) | EXPECT_LT(tip, 1.05 * beam_limit) | EXPECT_LT(final[1], final[0]) | EXPECT_GT(std::abs(final[1] - beam_limit), std::abs(final[0] - beam_limit)) -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LaterIterationNonfiniteAndGeometryFailureKeepEveryAcceptedQuantity SolidStaticProcedure.LaterIterationNonfiniteAndGeometryFailureKeepEveryAcceptedQuantity; assertion 16개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LaterIterationNonfiniteAndGeometryFailureKeepEveryAcceptedQuantity 유지 원문 검사 body 및 assertion 동일. d625f760d2aab29539cf34d792d6540f1c67c9e627fe2e17ec186ddc74df2f36 d625f760d2aab29539cf34d792d6540f1c67c9e627fe2e17ec186ddc74df2f36 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(successful.HasValue()) | ASSERT_EQ(expected.iteration_count, 2U) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_EQ(actual.global_equilibrium, expected.global_equilibrium) | EXPECT_DOUBLE_EQ(actual.physical_strain_energy, expected.physical_strain_energy) | EXPECT_DOUBLE_EQ(actual.displacement[i], expected.displacement[i]) | EXPECT_DOUBLE_EQ(actual.internal_force[i], expected.internal_force[i]) | EXPECT_DOUBLE_EQ(actual.external_force[i], expected.external_force[i]) | EXPECT_DOUBLE_EQ(actual.residual[i], expected.residual[i]) | EXPECT_DOUBLE_EQ(actual.reaction[i], expected.reaction[i]) | EXPECT_EQ(actual.solid_results[g].strain, expected.solid_results[g].strain) | EXPECT_EQ(actual.solid_results[g].cauchy_stress, expected.solid_results[g].cauchy_stress) | EXPECT_EQ(state.IterationRecords().back().increment_index, 2U) | EXPECT_FALSE(state.IterationRecords().back().accepted) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(successful.HasValue()) | ASSERT_EQ(expected.iteration_count, 2U) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_EQ(actual.global_equilibrium, expected.global_equilibrium) | EXPECT_DOUBLE_EQ(actual.physical_strain_energy, expected.physical_strain_energy) | EXPECT_DOUBLE_EQ(actual.displacement[i], expected.displacement[i]) | EXPECT_DOUBLE_EQ(actual.internal_force[i], expected.internal_force[i]) | EXPECT_DOUBLE_EQ(actual.external_force[i], expected.external_force[i]) | EXPECT_DOUBLE_EQ(actual.residual[i], expected.residual[i]) | EXPECT_DOUBLE_EQ(actual.reaction[i], expected.reaction[i]) | EXPECT_EQ(actual.solid_results[g].strain, expected.solid_results[g].strain) | EXPECT_EQ(actual.solid_results[g].cauchy_stress, expected.solid_results[g].cauchy_stress) | EXPECT_EQ(state.IterationRecords().back().increment_index, 2U) | EXPECT_FALSE(state.IterationRecords().back().accepted) -Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.ExecutesBothUnmodifiedStaticSourceDecksThroughDirectApi SolidStaticProcedure.ExecutesBothUnmodifiedStaticSourceDecksThroughDirectApi; assertion 8개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.ExecutesBothUnmodifiedStaticSourceDecksThroughDirectApi 유지 원문 검사 body 및 assertion 동일. d3a90f93d9d9490f75afc00c665defc23cf55c13bfbca813fa2fed3140416ce3 d3a90f93d9d9490f75afc00c665defc23cf55c13bfbca813fa2fed3140416ce3 ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frame.load_factor, 1.0) | EXPECT_EQ(frame.increment_index, 10U) | EXPECT_EQ(frame.displacement.Size(), 442U * 3U) | EXPECT_EQ(frame.solid_results.size(), 300U * 8U) | EXPECT_EQ(state.AcceptedFrames().size(), domain.Value().Steps()[0].IsNonlinearStatic() ? 10U : 1U) ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frame.load_factor, 1.0) | EXPECT_EQ(frame.increment_index, 10U) | EXPECT_EQ(frame.displacement.Size(), 442U * 3U) | EXPECT_EQ(frame.solid_results.size(), 300U * 8U) | EXPECT_EQ(state.AcceptedFrames().size(), domain.Value().Steps()[0].IsNonlinearStatic() ? 10U : 1U) -Dev tests/unit/analysis/solid_static_procedure_test.cpp support@1-151 helper/oracle/fixture/include/static assertion 구간: Deck, Map, Message, ExecuteSolid, Supports, Tension, AffineBoundary, FailedTangent, Mode, ObservedIndefiniteTangent tests/unit/analysis/solid_static_procedure_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e4768526452793c2de88bf64c053e12858ebb196ae6e2088db2b57174f836c7a 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/solid_static_procedure_test.cpp support@687-728 helper/oracle/fixture/include/static assertion 구간: Cantilever tests/unit/analysis/solid_static_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 18b6fff6c45d794f77ce9044335c69313a256236f3b9cee759f0d5d8a33ca76e 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/solid_static_state_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/analysis/solid_static_state_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1693abc34bf1b4346ff3a17979cb8a763cb16950fee6b5a5471e402d4faf621d 1693abc34bf1b4346ff3a17979cb8a763cb16950fee6b5a5471e402d4faf621d 해당 없음 해당 없음 -Dev tests/unit/analysis/solid_static_state_test.cpp SolidStaticControls.PurePrescribedUsesAbsoluteForceAndOnlyTwoChannels SolidStaticControls.PurePrescribedUsesAbsoluteForceAndOnlyTwoChannels; assertion 8개 tests/unit/analysis/solid_static_state_test.cpp SolidStaticControls.PurePrescribedUsesAbsoluteForceAndOnlyTwoChannels 유지 원문 검사 body 및 assertion 동일. 64090bf859cad1c1f823058b375f44107bd69be3ea8a455abc6f1eb059ba2578 64090bf859cad1c1f823058b375f44107bd69be3ea8a455abc6f1eb059ba2578 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().force_residual.branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(result.Value().force_residual.denominator_scale, 0.0) | EXPECT_EQ(result.Value().force_residual.threshold_unit, fesa::NewtonChannelUnit::kForce) | EXPECT_EQ(result.Value().translation_correction.threshold_unit, fesa::NewtonChannelUnit::kLength) | EXPECT_TRUE(result.Value().force_residual.passed) | EXPECT_TRUE(result.Value().translation_correction.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence( residual, internal, external, correction, increment) .Value() .force_residual.passed) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().force_residual.branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(result.Value().force_residual.denominator_scale, 0.0) | EXPECT_EQ(result.Value().force_residual.threshold_unit, fesa::NewtonChannelUnit::kForce) | EXPECT_EQ(result.Value().translation_correction.threshold_unit, fesa::NewtonChannelUnit::kLength) | EXPECT_TRUE(result.Value().force_residual.passed) | EXPECT_TRUE(result.Value().translation_correction.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence( residual, internal, external, correction, increment) .Value() .force_residual.passed) -Dev tests/unit/analysis/solid_static_state_test.cpp SolidStaticControls.RelativeLimitsRawNormsAndNonfiniteFailure SolidStaticControls.RelativeLimitsRawNormsAndNonfiniteFailure; assertion 10개 tests/unit/analysis/solid_static_state_test.cpp SolidStaticControls.RelativeLimitsRawNormsAndNonfiniteFailure 유지 원문 검사 body 및 assertion 동일. 9ced91c636ffa144e3fe1bd9748589a2a38f7afe41bd79eb1a71a7d0336144a8 9ced91c636ffa144e3fe1bd9748589a2a38f7afe41bd79eb1a71a7d0336144a8 ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().force_residual.numerator_norm, 1.0) | EXPECT_DOUBLE_EQ(result.Value().force_residual.denominator_scale, 100.0) | EXPECT_EQ(result.Value().force_residual.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_EQ(result.Value().force_residual.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(result.Value().force_residual.passed) | EXPECT_TRUE(result.Value().translation_correction.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence(r, f, p, du, u) .Value() .force_residual.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence(r, f, p, du, u).HasValue()) | EXPECT_FALSE( fesa::EvaluateSolidStaticConvergence(r, f, fesa::Vector{2U}, du, u) .HasValue()) ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().force_residual.numerator_norm, 1.0) | EXPECT_DOUBLE_EQ(result.Value().force_residual.denominator_scale, 100.0) | EXPECT_EQ(result.Value().force_residual.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_EQ(result.Value().force_residual.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(result.Value().force_residual.passed) | EXPECT_TRUE(result.Value().translation_correction.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence(r, f, p, du, u) .Value() .force_residual.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence(r, f, p, du, u).HasValue()) | EXPECT_FALSE( fesa::EvaluateSolidStaticConvergence(r, f, fesa::Vector{2U}, du, u) .HasValue()) -Dev tests/unit/analysis/solid_static_state_test.cpp support@1-6 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/solid_static_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e53402f8f5992b27b6c5a2443adf6251c74adbe566e295fba59e1621404883ca 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/thermal_analysis_state_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/analysis/thermal_analysis_state_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a6d89b30f8bb178f16912e6f1fca3bed6b31c6b4b3439095542d51ae5eef5b60 505bda8adef4e2255a4ce1d76d08c96b5806da8652e397048a0b49e5fb364557 해당 없음 해당 없음 -Dev tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.OwnsRawInitialInventoryAfterDomainAndAssemblyDestruction ThermalAnalysisState.OwnsRawInitialInventoryAfterDomainAndAssemblyDestruction; assertion 24개 tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.OwnsRawInitialInventoryAfterDomainAndAssemblyDestruction 유지 원문 검사 body 및 assertion 동일. 29995b83f8751fc439725b0f3a266b7237c909a921280e02a60ef86b340ba760 29995b83f8751fc439725b0f3a266b7237c909a921280e02a60ef86b340ba760 "ASSERT_TRUE(state.HasValue()) | EXPECT_EQ(state.Value().NodeOrder(), (std::vector{1, 2, 3, 4})) | EXPECT_EQ(state.Value().NodeSourceIds()[0].source_label_text, ""0007"") | EXPECT_EQ(state.Value().ElementSourceIds()[0].source_label_text, ""0013"") | EXPECT_EQ(state.Value().ElementOrder(), (std::vector{0})) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_TRUE(initial.is_initial) | EXPECT_FALSE(initial.completed.has_value()) | EXPECT_EQ(initial.time, 0) | EXPECT_EQ(initial.time_increment, 0) | EXPECT_EQ(initial.temperature[a], -20.) | EXPECT_EQ(initial.temperature[5 + a], 0.) | EXPECT_EQ(initial.temperature[10 + a], 0.) | EXPECT_EQ(initial.temperature[15 + a], 7.125) | ASSERT_EQ(state.Value().ReactionDofs().size(), 2U) | EXPECT_EQ(state.Value().ReactionDofs()[0].node, 1U) | EXPECT_EQ(state.Value().ReactionDofs()[0].source_dof, 11) | EXPECT_EQ(state.Value().ReactionDofs()[1].node, 4U) | EXPECT_EQ(state.Value().ReactionDofs()[1].source_dof, 15) | EXPECT_EQ(state.Value().ConstraintMask()[row][a], ((row == 0 && a == 0) || (row == 3 && a == 4)) ? 1 : 0) | ASSERT_EQ(state.Value().FluxLocalFrames().size(), 1U) | EXPECT_EQ(frame[0], (fesa::Vector3{1, 0, 0})) | EXPECT_EQ(frame[1], (fesa::Vector3{0, 1, 0})) | EXPECT_EQ(frame[2], (fesa::Vector3{0, 0, 1}))" "ASSERT_TRUE(state.HasValue()) | EXPECT_EQ(state.Value().NodeOrder(), (std::vector{1, 2, 3, 4})) | EXPECT_EQ(state.Value().NodeSourceIds()[0].source_label_text, ""0007"") | EXPECT_EQ(state.Value().ElementSourceIds()[0].source_label_text, ""0013"") | EXPECT_EQ(state.Value().ElementOrder(), (std::vector{0})) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_TRUE(initial.is_initial) | EXPECT_FALSE(initial.completed.has_value()) | EXPECT_EQ(initial.time, 0) | EXPECT_EQ(initial.time_increment, 0) | EXPECT_EQ(initial.temperature[a], -20.) | EXPECT_EQ(initial.temperature[5 + a], 0.) | EXPECT_EQ(initial.temperature[10 + a], 0.) | EXPECT_EQ(initial.temperature[15 + a], 7.125) | ASSERT_EQ(state.Value().ReactionDofs().size(), 2U) | EXPECT_EQ(state.Value().ReactionDofs()[0].node, 1U) | EXPECT_EQ(state.Value().ReactionDofs()[0].source_dof, 11) | EXPECT_EQ(state.Value().ReactionDofs()[1].node, 4U) | EXPECT_EQ(state.Value().ReactionDofs()[1].source_dof, 15) | EXPECT_EQ(state.Value().ConstraintMask()[row][a], ((row == 0 && a == 0) || (row == 3 && a == 4)) ? 1 : 0) | ASSERT_EQ(state.Value().FluxLocalFrames().size(), 1U) | EXPECT_EQ(frame[0], (fesa::Vector3{1, 0, 0})) | EXPECT_EQ(frame[1], (fesa::Vector3{0, 1, 0})) | EXPECT_EQ(frame[2], (fesa::Vector3{0, 0, 1}))" -Dev tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.CompletedZeroReactionPayloadAndExactActualDelta ThermalAnalysisState.CompletedZeroReactionPayloadAndExactActualDelta; assertion 20개 tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.CompletedZeroReactionPayloadAndExactActualDelta 유지 원문 검사 body 및 assertion 동일. faed8c798f105f506facfa91da0c77b9b7b74944851a63a32542901d8887197f faed8c798f105f506facfa91da0c77b9b7b74944851a63a32542901d8887197f ASSERT_TRUE(state.HasValue()) | EXPECT_TRUE(state.Value().ReactionDofs().empty()) | EXPECT_FALSE(state.Value().IsComplete()) | ASSERT_TRUE(frame.HasValue()) | ASSERT_TRUE(frame.Value().completed.has_value()) | EXPECT_EQ(frame.Value().completed->reaction_heat_rate.Size(), 0U) | EXPECT_EQ(frame.Value().time_increment, .3) | ASSERT_TRUE(state.Value().CommitAcceptedFrame(frame.Value()).IsOk()) | EXPECT_TRUE(state.Value().IsComplete()) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 4U) | EXPECT_EQ(state.Value().CommittedState().time, .9) | EXPECT_EQ(state.Value().CommittedState().time_increment, .3) | EXPECT_NE(state.Value().CommittedState().time - state.Value().AcceptedFrames()[2].time, .3) | EXPECT_EQ(state.Value().NominalTimeIncrement(), .3) | EXPECT_EQ(state.Value().TimePeriod(), .9) | EXPECT_FALSE( state.Value().CommitAcceptedFrame(state.Value().CommittedState()).IsOk()) | ASSERT_TRUE(short_state.HasValue()) | ASSERT_TRUE(last.HasValue()) | EXPECT_EQ(last.Value().time, 10.) | EXPECT_EQ(last.Value().time_increment, 1.) ASSERT_TRUE(state.HasValue()) | EXPECT_TRUE(state.Value().ReactionDofs().empty()) | EXPECT_FALSE(state.Value().IsComplete()) | ASSERT_TRUE(frame.HasValue()) | ASSERT_TRUE(frame.Value().completed.has_value()) | EXPECT_EQ(frame.Value().completed->reaction_heat_rate.Size(), 0U) | EXPECT_EQ(frame.Value().time_increment, .3) | ASSERT_TRUE(state.Value().CommitAcceptedFrame(frame.Value()).IsOk()) | EXPECT_TRUE(state.Value().IsComplete()) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 4U) | EXPECT_EQ(state.Value().CommittedState().time, .9) | EXPECT_EQ(state.Value().CommittedState().time_increment, .3) | EXPECT_NE(state.Value().CommittedState().time - state.Value().AcceptedFrames()[2].time, .3) | EXPECT_EQ(state.Value().NominalTimeIncrement(), .3) | EXPECT_EQ(state.Value().TimePeriod(), .9) | EXPECT_FALSE( state.Value().CommitAcceptedFrame(state.Value().CommittedState()).IsOk()) | ASSERT_TRUE(short_state.HasValue()) | ASSERT_TRUE(last.HasValue()) | EXPECT_EQ(last.Value().time, 10.) | EXPECT_EQ(last.Value().time_increment, 1.) -Dev tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.EveryRejectedCandidatePreservesEntireAcceptedHistory ThermalAnalysisState.EveryRejectedCandidatePreservesEntireAcceptedHistory; assertion 9개 tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.EveryRejectedCandidatePreservesEntireAcceptedHistory 유지 원문 검사 body 및 assertion 동일. aaa377193cb0575e53405ed69aeeb7cc32e7c97bc56c05922bce6edcc2b1e74c aaa377193cb0575e53405ed69aeeb7cc32e7c97bc56c05922bce6edcc2b1e74c ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(state.CommitAcceptedFrame(first.Value()).IsOk()) | ASSERT_TRUE(candidate.HasValue()) | EXPECT_FALSE(state.CommitAcceptedFrame(candidate.Value()).IsOk()) | EXPECT_EQ(Snapshot(state), snapshot) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(state.CommitAcceptedFrame(second.Value()).IsOk()) | EXPECT_NE(state.CommittedState().temperature[0], 900) ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(state.CommitAcceptedFrame(first.Value()).IsOk()) | ASSERT_TRUE(candidate.HasValue()) | EXPECT_FALSE(state.CommitAcceptedFrame(candidate.Value()).IsOk()) | EXPECT_EQ(Snapshot(state), snapshot) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(state.CommitAcceptedFrame(second.Value()).IsOk()) | EXPECT_NE(state.CommittedState().temperature[0], 900) -Dev tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.CheckedCandidateRejectsMissingDataAndHugeGridDoesNotPreallocateHistory ThermalAnalysisState.CheckedCandidateRejectsMissingDataAndHugeGridDoesNotPreallocateHistory; assertion 11개 tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.CheckedCandidateRejectsMissingDataAndHugeGridDoesNotPreallocateHistory 유지 원문 검사 body 및 assertion 동일. 5d135e0312f358eb833a0a1dfd014621f15196041711663bd84ceb65e3027aec 5d135e0312f358eb833a0a1dfd014621f15196041711663bd84ceb65e3027aec ASSERT_TRUE(state.HasValue()) | EXPECT_EQ(state.Value().TimeGrid().Count(), 4294967295U) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_FALSE(state.Value().IsComplete()) | ASSERT_TRUE(last.HasValue()) | EXPECT_EQ(last.Value().frame_index, 4294967295ULL) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(last.Value()).IsOk()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(0, fesa::Vector{20}, fesa::Vector{0}, {{}}) .HasValue()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(1, fesa::Vector{19}, fesa::Vector{0}, {{}}) .HasValue()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(1, fesa::Vector{20}, fesa::Vector{1}, {{}}) .HasValue()) | EXPECT_FALSE(state.Value() .MakeCompletedFrame(1, fesa::Vector{20}, fesa::Vector{0}, {}) .HasValue()) ASSERT_TRUE(state.HasValue()) | EXPECT_EQ(state.Value().TimeGrid().Count(), 4294967295U) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_FALSE(state.Value().IsComplete()) | ASSERT_TRUE(last.HasValue()) | EXPECT_EQ(last.Value().frame_index, 4294967295ULL) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(last.Value()).IsOk()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(0, fesa::Vector{20}, fesa::Vector{0}, {{}}) .HasValue()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(1, fesa::Vector{19}, fesa::Vector{0}, {{}}) .HasValue()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(1, fesa::Vector{20}, fesa::Vector{1}, {{}}) .HasValue()) | EXPECT_FALSE(state.Value() .MakeCompletedFrame(1, fesa::Vector{20}, fesa::Vector{0}, {}) .HasValue()) -Dev tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.RejectsAssemblyFromAnotherDomainAndInvalidSchedule ThermalAnalysisState.RejectsAssemblyFromAnotherDomainAndInvalidSchedule; assertion 9개 tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.RejectsAssemblyFromAnotherDomainAndInvalidSchedule 유지 원문 검사 body 및 assertion 동일. 6cf18a4e7b7be31455ff4b43a91438c2dd613d6d822d85a7ba34e30d330c4bfd 6cf18a4e7b7be31455ff4b43a91438c2dd613d6d822d85a7ba34e30d330c4bfd ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(fm.HasValue()) | ASSERT_TRUE(sm.HasValue()) | ASSERT_TRUE(fd.HasValue()) | ASSERT_TRUE(sd.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | EXPECT_FALSE(fesa::ThermalAnalysisState::Create(sm.Value(), sd.Value(), assembly.Value()) .HasValue()) | EXPECT_FALSE(State(false, 10, 3, 3).HasValue()) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(fm.HasValue()) | ASSERT_TRUE(sm.HasValue()) | ASSERT_TRUE(fd.HasValue()) | ASSERT_TRUE(sd.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | EXPECT_FALSE(fesa::ThermalAnalysisState::Create(sm.Value(), sd.Value(), assembly.Value()) .HasValue()) | EXPECT_FALSE(State(false, 10, 3, 3).HasValue()) -Dev tests/unit/analysis/thermal_analysis_state_test.cpp support@1-115 helper/oracle/fixture/include/static assertion 구간: Definition, if, State, Candidate, Snapshot, for tests/unit/analysis/thermal_analysis_state_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7fe1bd0d0fcf6ec2be86f1abdffa0db02e82fa5f0b1a7070b8ac08221bff9429 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/thermal_time_grid_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/analysis/thermal_time_grid_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a2f5f4ff554e4c7d127640394d45cd41bba3df2adde92d39071f720af402ff3e a2f5f4ff554e4c7d127640394d45cd41bba3df2adde92d39071f720af402ff3e 해당 없음 해당 없음 -Dev tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.SingleStepUsesPeriodAsActualIncrement ThermalTimeGrid.SingleStepUsesPeriodAsActualIncrement; assertion 3개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.SingleStepUsesPeriodAsActualIncrement 유지 원문 검사 body 및 assertion 동일. df81cdf149e0a1f046502f072502b69775e5fded5a9aa972da75fc19d78c9157 df81cdf149e0a1f046502f072502b69775e5fded5a9aa972da75fc19d78c9157 ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 1U) | EXPECT_EQ(grid.Value().Delta(1U), 2.0) ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 1U) | EXPECT_EQ(grid.Value().Delta(1U), 2.0) -Dev tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.PreservesGenuineRemainderOutsideInputCells ThermalTimeGrid.PreservesGenuineRemainderOutsideInputCells; assertion 3개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.PreservesGenuineRemainderOutsideInputCells 유지 원문 검사 body 및 assertion 동일. 1e5b5e3355eb2dd4f5bf7575918fd02b20d03764ecd41dad7b95bacae0ca4ee0 1e5b5e3355eb2dd4f5bf7575918fd02b20d03764ecd41dad7b95bacae0ca4ee0 ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 4U) | EXPECT_EQ(grid.Value().Delta(4U), 1.6653345369377348e-16) ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 4U) | EXPECT_EQ(grid.Value().Delta(4U), 1.6653345369377348e-16) -Dev tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.OriginalSubnormalCellsRespectOpenAndClosedContact ThermalTimeGrid.OriginalSubnormalCellsRespectOpenAndClosedContact; assertion 5개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.OriginalSubnormalCellsRespectOpenAndClosedContact 유지 원문 검사 body 및 assertion 동일. b3750249efc6650ce8d7651338ad3bbd1a681960df204dc61df4047dbb7b7cec b3750249efc6650ce8d7651338ad3bbd1a681960df204dc61df4047dbb7b7cec ASSERT_TRUE(even.HasValue()) | ASSERT_TRUE(odd.HasValue()) | EXPECT_EQ(even.Value().Count(), 3U) | EXPECT_EQ(odd.Value().Count(), 4U) | EXPECT_EQ(odd.Value().Delta(4U), 2 * tiny) ASSERT_TRUE(even.HasValue()) | ASSERT_TRUE(odd.HasValue()) | EXPECT_EQ(even.Value().Count(), 3U) | EXPECT_EQ(odd.Value().Count(), 4U) | EXPECT_EQ(odd.Value().Delta(4U), 2 * tiny) -Dev tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.DecimalCellsCounterexampleAndScale ThermalTimeGrid.DecimalCellsCounterexampleAndScale; assertion 8개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.DecimalCellsCounterexampleAndScale 유지 원문 검사 body 및 assertion 동일. 55542fd9e560e9916102520ef1a4955d9b86bf134c0bbc4d6010cee6fa01e746 55542fd9e560e9916102520ef1a4955d9b86bf134c0bbc4d6010cee6fa01e746 ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 3U) | EXPECT_EQ(grid.Value().Delta(3U), delta) | EXPECT_EQ(grid.Value().Time(3U), period) | ASSERT_TRUE(old_counterexample.HasValue()) | EXPECT_EQ(old_counterexample.Value().Count(), 31U) | EXPECT_EQ(old_counterexample.Value().Delta(31U), .17262758624947144) | EXPECT_FALSE( fesa::ThermalTimeGrid::Create(5.351455173733616, .17262758624947144, 30U) .HasValue()) ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 3U) | EXPECT_EQ(grid.Value().Delta(3U), delta) | EXPECT_EQ(grid.Value().Time(3U), period) | ASSERT_TRUE(old_counterexample.HasValue()) | EXPECT_EQ(old_counterexample.Value().Count(), 31U) | EXPECT_EQ(old_counterexample.Value().Delta(31U), .17262758624947144) | EXPECT_FALSE( fesa::ThermalTimeGrid::Create(5.351455173733616, .17262758624947144, 30U) .HasValue()) -Dev tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.BinadeLimitsAndMaximumFinitePreserveOriginalCells ThermalTimeGrid.BinadeLimitsAndMaximumFinitePreserveOriginalCells; assertion 8개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.BinadeLimitsAndMaximumFinitePreserveOriginalCells 유지 원문 검사 body 및 assertion 동일. 51807a8419bb57da7a52205af4bae20dd05265ee7bc2f446e396d861b9894232 51807a8419bb57da7a52205af4bae20dd05265ee7bc2f446e396d861b9894232 ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 3U) | EXPECT_EQ(grid.Value().Delta(3U), max / 3) | ASSERT_TRUE(upper.HasValue()) | EXPECT_EQ(upper.Value().Count(), 4294967295U) | EXPECT_TRUE(upper.Value().Frame(4294967295U).HasValue()) | EXPECT_FALSE( fesa::ThermalTimeGrid::Create(4294967296., 1., 4294967295U).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create( max, std::numeric_limits::denorm_min(), 4294967295U) .HasValue()) ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 3U) | EXPECT_EQ(grid.Value().Delta(3U), max / 3) | ASSERT_TRUE(upper.HasValue()) | EXPECT_EQ(upper.Value().Count(), 4294967295U) | EXPECT_TRUE(upper.Value().Frame(4294967295U).HasValue()) | EXPECT_FALSE( fesa::ThermalTimeGrid::Create(4294967296., 1., 4294967295U).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create( max, std::numeric_limits::denorm_min(), 4294967295U) .HasValue()) -Dev tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.ShortenedIncrementAndCheckedFrames ThermalTimeGrid.ShortenedIncrementAndCheckedFrames; assertion 15개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.ShortenedIncrementAndCheckedFrames 유지 원문 검사 body 및 assertion 동일. 26a8db8885d7920f5ee954491b801daefb3c4ad8e88e8bca8ffc4a394f668c07 26a8db8885d7920f5ee954491b801daefb3c4ad8e88e8bca8ffc4a394f668c07 ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 4U) | EXPECT_EQ(grid.Value().Time(0U), 0.) | ASSERT_TRUE(grid.Value().Frame(i).HasValue()) | EXPECT_EQ(grid.Value().Time(i), i == 4 ? 10. : 3. * i) | EXPECT_EQ(grid.Value().Delta(i), i == 4 ? 1. : 3.) | EXPECT_FALSE(grid.Value().Frame(0U).HasValue()) | EXPECT_FALSE(grid.Value().Frame(5U).HasValue()) | ASSERT_TRUE(decimals.HasValue()) | EXPECT_EQ(decimals.Value().Time(3U), .30000000000000004) | EXPECT_EQ(decimals.Value().Delta(10U), .1) | ASSERT_TRUE(close.HasValue()) | ASSERT_TRUE(short_last.HasValue()) | EXPECT_EQ(close.Value().Delta(3U), .3) | EXPECT_EQ(short_last.Value().Delta(3U), .2999999999999998) ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 4U) | EXPECT_EQ(grid.Value().Time(0U), 0.) | ASSERT_TRUE(grid.Value().Frame(i).HasValue()) | EXPECT_EQ(grid.Value().Time(i), i == 4 ? 10. : 3. * i) | EXPECT_EQ(grid.Value().Delta(i), i == 4 ? 1. : 3.) | EXPECT_FALSE(grid.Value().Frame(0U).HasValue()) | EXPECT_FALSE(grid.Value().Frame(5U).HasValue()) | ASSERT_TRUE(decimals.HasValue()) | EXPECT_EQ(decimals.Value().Time(3U), .30000000000000004) | EXPECT_EQ(decimals.Value().Delta(10U), .1) | ASSERT_TRUE(close.HasValue()) | ASSERT_TRUE(short_last.HasValue()) | EXPECT_EQ(close.Value().Delta(3U), .3) | EXPECT_EQ(short_last.Value().Delta(3U), .2999999999999998) -Dev tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.RejectsInvalidControlsBeforeIntegerConversion ThermalTimeGrid.RejectsInvalidControlsBeforeIntegerConversion; assertion 5개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.RejectsInvalidControlsBeforeIntegerConversion 유지 원문 검사 body 및 assertion 동일. b7b300d2a27beb1ef71e1c4d21f574e4e5ae22ed3fe52417e940fbd4138cc5d4 b7b300d2a27beb1ef71e1c4d21f574e4e5ae22ed3fe52417e940fbd4138cc5d4 EXPECT_FALSE(fesa::ThermalTimeGrid::Create(bad, 1.).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create(1., bad).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create(1., 1., 0U).HasValue()) | ASSERT_TRUE(equal.HasValue()) | EXPECT_EQ(equal.Value().Delta(1U), 2.) EXPECT_FALSE(fesa::ThermalTimeGrid::Create(bad, 1.).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create(1., bad).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create(1., 1., 0U).HasValue()) | ASSERT_TRUE(equal.HasValue()) | EXPECT_EQ(equal.Value().Delta(1U), 2.) -Dev tests/unit/analysis/thermal_time_grid_test.cpp support@1-7 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/thermal_time_grid_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4d7509a96a86780faf4709a37c3191b68a01d0bb865d28925558e8e69d405ef2 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/analysis/transient_heat_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 10개 tests/unit/analysis/transient_heat_procedure_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ee408d0deb583f35c838e9e7457ef28de8d017edab31e6c2eae3b6eb3cdf03cd efff26c6a7451be803515541313038b9555ee01362e280915dab4d272586bef6 해당 없음 해당 없음 -Dev tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.RawConstrainedCapacityProducesSignedTwoDofJump TransientHeatProcedure.RawConstrainedCapacityProducesSignedTwoDofJump; assertion 8개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.RawConstrainedCapacityProducesSignedTwoDofJump 유지 원문 검사 body 및 assertion 동일. 980805fa102cb221909d1766e40746ce9cf7fae52ceea5e89b51cf424ad0b73f 980805fa102cb221909d1766e40746ce9cf7fae52ceea5e89b51cf424ad0b73f ASSERT_TRUE(first.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().temperature[0], -.2) | EXPECT_DOUBLE_EQ(first.Value().reaction[0], 4.8) | ASSERT_TRUE(second.HasValue()) | EXPECT_NEAR(second.Value().temperature[0], .04, 16 * std::numeric_limits::epsilon() * .04) | EXPECT_DOUBLE_EQ(second.Value().reaction[0], 1.44) | EXPECT_EQ(solver.factorizations, 1) | EXPECT_EQ(solver.solves, 2) ASSERT_TRUE(first.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().temperature[0], -.2) | EXPECT_DOUBLE_EQ(first.Value().reaction[0], 4.8) | ASSERT_TRUE(second.HasValue()) | EXPECT_NEAR(second.Value().temperature[0], .04, 16 * std::numeric_limits::epsilon() * .04) | EXPECT_DOUBLE_EQ(second.Value().reaction[0], 1.44) | EXPECT_EQ(solver.factorizations, 1) | EXPECT_EQ(solver.solves, 2) -Dev tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.AllConstrainedBypassesZeroSizeFactorization TransientHeatProcedure.AllConstrainedBypassesZeroSizeFactorization; assertion 5개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.AllConstrainedBypassesZeroSizeFactorization 유지 원문 검사 body 및 assertion 동일. 202ca407a90853cb361a166c1a72d391cf1a085616e54ed9c39d5c3d5d13a566 202ca407a90853cb361a166c1a72d391cf1a085616e54ed9c39d5c3d5d13a566 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().reaction[0], 6) | EXPECT_EQ(result.Value().reaction[1], 6) | EXPECT_EQ(solver.factorizations, 0) | EXPECT_EQ(solver.solves, 0) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().reaction[0], 6) | EXPECT_EQ(result.Value().reaction[1], 6) | EXPECT_EQ(solver.factorizations, 0) | EXPECT_EQ(solver.solves, 0) -Dev tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.CancellationCannotUseFullSystemScaleToPassCertificate TransientHeatProcedure.CancellationCannotUseFullSystemScaleToPassCertificate; assertion 3개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.CancellationCannotUseFullSystemScaleToPassCertificate 유지 원문 검사 body 및 assertion 동일. 5e0a1ecdf9e220cf428d03065cb6e98777df3afbfa34e41ce945372420f3004e 5e0a1ecdf9e220cf428d03065cb6e98777df3afbfa34e41ce945372420f3004e ASSERT_TRUE(valid.HasValue()) | EXPECT_DOUBLE_EQ(valid.Value().temperature[0], .8) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, old, .5, solver, cache) .HasValue()) ASSERT_TRUE(valid.HasValue()) | EXPECT_DOUBLE_EQ(valid.Value().temperature[0], .8) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, old, .5, solver, cache) .HasValue()) -Dev tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.ExactZeroAndUniformInsulatedStatesAndActualDeltaCache TransientHeatProcedure.ExactZeroAndUniformInsulatedStatesAndActualDeltaCache; assertion 12개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.ExactZeroAndUniformInsulatedStatesAndActualDeltaCache 유지 원문 검사 body 및 assertion 동일. ac935c01b0c672b156e573888f2e14ff26dfd1ee8579b195b45a210b274f7b78 ac935c01b0c672b156e573888f2e14ff26dfd1ee8579b195b45a210b274f7b78 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(state.IsComplete()) | EXPECT_EQ(state.AcceptedFrames().size(), schedule.steps + 1) | EXPECT_EQ(state.CommittedState().time, schedule.period) | EXPECT_EQ(state.CommittedState().time_increment, schedule.last) | EXPECT_EQ(solver.factorizations, schedule.factors) | EXPECT_EQ(solver.solves, static_cast(schedule.steps)) | EXPECT_FALSE(state.AcceptedFrames()[0].completed.has_value()) | EXPECT_EQ(frame.temperature[i], 0) | EXPECT_NEAR(frame.temperature[i], initial, 4096 * 0x1p-53 * initial) | EXPECT_EQ(frame.completed->reaction_heat_rate.Size(), 0U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(state.IsComplete()) | EXPECT_EQ(state.AcceptedFrames().size(), schedule.steps + 1) | EXPECT_EQ(state.CommittedState().time, schedule.period) | EXPECT_EQ(state.CommittedState().time_increment, schedule.last) | EXPECT_EQ(solver.factorizations, schedule.factors) | EXPECT_EQ(solver.solves, static_cast(schedule.steps)) | EXPECT_FALSE(state.AcceptedFrames()[0].completed.has_value()) | EXPECT_EQ(frame.temperature[i], 0) | EXPECT_NEAR(frame.temperature[i], initial, 4096 * 0x1p-53 * initial) | EXPECT_EQ(frame.completed->reaction_heat_rate.Size(), 0U) -Dev tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.MklMatchesIndependentAffineDiscreteModeAndDissipation TransientHeatProcedure.MklMatchesIndependentAffineDiscreteModeAndDissipation; assertion 15개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.MklMatchesIndependentAffineDiscreteModeAndDissipation 유지 원문 검사 body 및 assertion 동일. 469b0381e9116d635764dd3052feeddf1df682d761cf3122988c87b66b6157ec 469b0381e9116d635764dd3052feeddf1df682d761cf3122988c87b66b6157ec ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(candidate.temperature[i], mode[i / 5] / 4, bound) | EXPECT_LE(candidate.evidence.beta_cert, candidate.evidence.beta_limit) | EXPECT_LE(candidate.evidence.energy_defect, candidate.evidence.energy_bound) | EXPECT_TRUE(candidate.evidence.dissipation_checked) | EXPECT_LE(candidate.evidence.dissipation_defect, candidate.evidence.dissipation_bound) | ASSERT_TRUE(flux.HasValue()) | EXPECT_NEAR(q.X(), .5, 16 * bound + 4096 * 0x1p-53 * .5) | EXPECT_NEAR(q.Y(), 0, 16 * bound) | EXPECT_NEAR(q.Z(), 0, 16 * bound) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(candidate.temperature[i], mode[i / 5] / 4, bound) | EXPECT_LE(candidate.evidence.beta_cert, candidate.evidence.beta_limit) | EXPECT_LE(candidate.evidence.energy_defect, candidate.evidence.energy_bound) | EXPECT_TRUE(candidate.evidence.dissipation_checked) | EXPECT_LE(candidate.evidence.dissipation_defect, candidate.evidence.dissipation_bound) | ASSERT_TRUE(flux.HasValue()) | EXPECT_NEAR(q.X(), .5, 16 * bound + 4096 * 0x1p-53 * .5) | EXPECT_NEAR(q.Y(), 0, 16 * bound) | EXPECT_NEAR(q.Z(), 0, 16 * bound) -Dev tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.LaterSolveRecoveryAndPayloadFailuresPreserveEveryAcceptedBit TransientHeatProcedure.LaterSolveRecoveryAndPayloadFailuresPreserveEveryAcceptedBit; assertion 13개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.LaterSolveRecoveryAndPayloadFailuresPreserveEveryAcceptedBit 유지 원문 검사 body 및 assertion 동일. 2f4ea89dc0b1fb735d45915b043a1f2de650e0a55a98df2b4d95ce7bad84c001 2f4ea89dc0b1fb735d45915b043a1f2de650e0a55a98df2b4d95ce7bad84c001 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_FALSE(state.Value().IsComplete()) | EXPECT_EQ(evidence.size(), 1U) | EXPECT_EQ(Snapshot(state.Value()), before) | EXPECT_EQ(state.Value().AcceptedFrames()[0].temperature[0], 2) | EXPECT_EQ(state.Value().CommittedState().temperature[0], 1) | EXPECT_EQ(solver.factorizations, 1) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_FALSE(state.Value().IsComplete()) | EXPECT_EQ(evidence.size(), 1U) | EXPECT_EQ(Snapshot(state.Value()), before) | EXPECT_EQ(state.Value().AcceptedFrames()[0].temperature[0], 2) | EXPECT_EQ(state.Value().CommittedState().temperature[0], 1) | EXPECT_EQ(solver.factorizations, 1) -Dev tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.SignedPowerConstrainedReactionAndDisconnectedComponentBalance TransientHeatProcedure.SignedPowerConstrainedReactionAndDisconnectedComponentBalance; assertion 14개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.SignedPowerConstrainedReactionAndDisconnectedComponentBalance 유지 원문 검사 body 및 assertion 동일. c99828c6527db730f1bb8ec96e489a85090c34c5d3084fe0a1dc5fc3dd507e15 c99828c6527db730f1bb8ec96e489a85090c34c5d3084fe0a1dc5fc3dd507e15 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(evidence.size(), 2U) | EXPECT_NEAR(balance[0], .25 * reaction, evidence[step - 1].energy_bound + 4096 * 0x1p-53 * scale[0]) | EXPECT_NEAR(balance[1], 0, evidence[step - 1].energy_bound + 4096 * 0x1p-53 * scale[1]) | EXPECT_FALSE(evidence[step - 1].dissipation_checked) | ASSERT_TRUE(other_domain.HasValue()) | ASSERT_TRUE(other.HasValue()) | EXPECT_NEAR(first.temperature[i], second.temperature[i], 4096 * 0x1p-53 * std::abs(second.temperature[i])) | EXPECT_NEAR(first.completed->reaction_heat_rate[0] - second.completed->reaction_heat_rate[0], -3., 4096 * 0x1p-53 * 3) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(evidence.size(), 2U) | EXPECT_NEAR(balance[0], .25 * reaction, evidence[step - 1].energy_bound + 4096 * 0x1p-53 * scale[0]) | EXPECT_NEAR(balance[1], 0, evidence[step - 1].energy_bound + 4096 * 0x1p-53 * scale[1]) | EXPECT_FALSE(evidence[step - 1].dissipation_checked) | ASSERT_TRUE(other_domain.HasValue()) | ASSERT_TRUE(other.HasValue()) | EXPECT_NEAR(first.temperature[i], second.temperature[i], 4096 * 0x1p-53 * std::abs(second.temperature[i])) | EXPECT_NEAR(first.completed->reaction_heat_rate[0] - second.completed->reaction_heat_rate[0], -3., 4096 * 0x1p-53 * 3) -Dev tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.ConstructionEnclosuresRetainExactIdentitiesAndSubnormalLoss TransientHeatProcedure.ConstructionEnclosuresRetainExactIdentitiesAndSubnormalLoss; assertion 9개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.ConstructionEnclosuresRetainExactIdentitiesAndSubnormalLoss 유지 원문 검사 body 및 assertion 동일. 99c40aa53ebd7840c50827f7a7cba6e8c37e21c37797d984dfff01c81f812fb5 99c40aa53ebd7840c50827f7a7cba6e8c37e21c37797d984dfff01c81f812fb5 EXPECT_EQ(value.lower, expected) | EXPECT_EQ(value.upper, expected) | EXPECT_LE(midpoint.lower, 1) | EXPECT_GE(midpoint.upper, std::nextafter(1., 2.)) | EXPECT_LE(half.lower, 0) | EXPECT_GE(half.upper, tiny) | EXPECT_NE(half.lower, half.upper) | EXPECT_FALSE( b::Mul(b::I{std::numeric_limits::max()}, b::I{2}).IsFinite()) | EXPECT_GT(b::Roundoff(80, b::I{tiny}).upper, 0) EXPECT_EQ(value.lower, expected) | EXPECT_EQ(value.upper, expected) | EXPECT_LE(midpoint.lower, 1) | EXPECT_GE(midpoint.upper, std::nextafter(1., 2.)) | EXPECT_LE(half.lower, 0) | EXPECT_GE(half.upper, tiny) | EXPECT_NE(half.lower, half.upper) | EXPECT_FALSE( b::Mul(b::I{std::numeric_limits::max()}, b::I{2}).IsFinite()) | EXPECT_GT(b::Roundoff(80, b::I{tiny}).upper, 0) -Dev tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.GenericAlgebraRejectsInvalidInputsAndUncertifiedSubnormalSolve TransientHeatProcedure.GenericAlgebraRejectsInvalidInputsAndUncertifiedSubnormalSolve; assertion 5개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.GenericAlgebraRejectsInvalidInputsAndUncertifiedSubnormalSolve 유지 원문 검사 body 및 assertion 동일. 521aae60d1b90ac0380baf56f738a93910d9d758dbc2a785fb80e0cc5548087b 521aae60d1b90ac0380baf56f738a93910d9d758dbc2a785fb80e0cc5548087b EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, fesa::Vector{2}, delta, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, {{0}, {0}, fesa::Vector{1, 1}}, fesa::Vector{2}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, fesa::Vector{1}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({invalid, c, q}, p, fesa::Vector{2}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, small, fesa::Vector{2}, .5, solver, cache) .HasValue()) EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, fesa::Vector{2}, delta, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, {{0}, {0}, fesa::Vector{1, 1}}, fesa::Vector{2}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, fesa::Vector{1}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({invalid, c, q}, p, fesa::Vector{2}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, small, fesa::Vector{2}, .5, solver, cache) .HasValue()) -Dev tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.SerialAndTbbExecutionsHaveIdenticalAcceptedHistories TransientHeatProcedure.SerialAndTbbExecutionsHaveIdenticalAcceptedHistories; assertion 4개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.SerialAndTbbExecutionsHaveIdenticalAcceptedHistories 유지 원문 검사 body 및 assertion 동일. d88a406c7cd08b89d4d7877bf387792819e771b3133dbf4ab7f248ecbd55cb22 d88a406c7cd08b89d4d7877bf387792819e771b3133dbf4ab7f248ecbd55cb22 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(left.HasValue()) | ASSERT_TRUE(right.HasValue()) | EXPECT_EQ(Snapshot(left.Value().state), Snapshot(right.Value().state)) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(left.HasValue()) | ASSERT_TRUE(right.HasValue()) | EXPECT_EQ(Snapshot(left.Value().state), Snapshot(right.Value().state)) -Dev tests/unit/analysis/transient_heat_procedure_test.cpp support@1-101 helper/oracle/fixture/include/static assertion 구간: ti, Messages, Plate, TwoMatrix, CountingSolver, Snapshot, for, if tests/unit/analysis/transient_heat_procedure_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 431e3b6b4a2eb8c51ca8135b26c47253934ad5c305674bac102094a5382a2d1d 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/app/output_paths_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/app/output_paths_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 23aa6fa1dac950505061d2d64a2ad10abffb76bcabc0232cd0afef512c863107 23aa6fa1dac950505061d2d64a2ad10abffb76bcabc0232cd0afef512c863107 해당 없음 해당 없음 -Dev tests/unit/app/output_paths_test.cpp OutputPaths.RejectsFirstTokenContainingOutputSubstring OutputPaths.RejectsFirstTokenContainingOutputSubstring; assertion 2개 tests/unit/app/output_paths_test.cpp OutputPaths.RejectsFirstTokenContainingOutputSubstring 유지 원문 검사 body 및 assertion 동일. b5fcd67ff4f6a7eaa6e06e55668193dd70ba3822879887699b02d4baf7b419b1 b5fcd67ff4f6a7eaa6e06e55668193dd70ba3822879887699b02d4baf7b419b1 "ASSERT_FALSE(paths.HasValue()) | EXPECT_EQ(paths.GetStatus().Diagnostics().front().entity_identity, ""argument_index=0;argument=abc--outputdef"")" "ASSERT_FALSE(paths.HasValue()) | EXPECT_EQ(paths.GetStatus().Diagnostics().front().entity_identity, ""argument_index=0;argument=abc--outputdef"")" -Dev tests/unit/app/output_paths_test.cpp OutputPaths.RejectsEveryOutputSubstringVariant OutputPaths.RejectsEveryOutputSubstringVariant; assertion 1개 tests/unit/app/output_paths_test.cpp OutputPaths.RejectsEveryOutputSubstringVariant 유지 원문 검사 body 및 assertion 동일. 9ccaab67728c7c0a433b6ece05c14731aa50e6b5010d9de5e18eb258fe6b4d3d 9ccaab67728c7c0a433b6ece05c14731aa50e6b5010d9de5e18eb258fe6b4d3d ASSERT_FALSE(paths.HasValue()) ASSERT_FALSE(paths.HasValue()) -Dev tests/unit/app/output_paths_test.cpp OutputPaths.DerivesNormalizedSiblingNamesFromRelativeInput OutputPaths.DerivesNormalizedSiblingNamesFromRelativeInput; assertion 4개 tests/unit/app/output_paths_test.cpp OutputPaths.DerivesNormalizedSiblingNamesFromRelativeInput 유지 원문 검사 body 및 assertion 동일. be83317f7274e5567210d53981799a741b7beb27bd40f47391f2417fac426bd0 be83317f7274e5567210d53981799a741b7beb27bd40f47391f2417fac426bd0 "ASSERT_TRUE(paths.HasValue()) | EXPECT_EQ( paths.Value().input_path, std::filesystem::path{""C:/invocation/current/models/Beam.Model.INP""}) | EXPECT_EQ(paths.Value().results_path, std::filesystem::path{ ""C:/invocation/current/models/Beam.Model_results.h5""}) | EXPECT_EQ(paths.Value().log_path, std::filesystem::path{ ""C:/invocation/current/models/Beam.Model_log.txt""})" "ASSERT_TRUE(paths.HasValue()) | EXPECT_EQ( paths.Value().input_path, std::filesystem::path{""C:/invocation/current/models/Beam.Model.INP""}) | EXPECT_EQ(paths.Value().results_path, std::filesystem::path{ ""C:/invocation/current/models/Beam.Model_results.h5""}) | EXPECT_EQ(paths.Value().log_path, std::filesystem::path{ ""C:/invocation/current/models/Beam.Model_log.txt""})" -Dev tests/unit/app/output_paths_test.cpp OutputPaths.PreservesBasenameCaseAndPrecedingDots OutputPaths.PreservesBasenameCaseAndPrecedingDots; assertion 3개 tests/unit/app/output_paths_test.cpp OutputPaths.PreservesBasenameCaseAndPrecedingDots 유지 원문 검사 body 및 assertion 동일. 61885c6eea856194a2be897fc370b6aaaab094a608da558e7459b8e5798941a8 61885c6eea856194a2be897fc370b6aaaab094a608da558e7459b8e5798941a8 "ASSERT_TRUE(paths.HasValue()) | EXPECT_EQ(paths.Value().results_path, std::filesystem::path{""C:/models/.Beam.v2_results.h5""}) | EXPECT_EQ(paths.Value().log_path, std::filesystem::path{""C:/models/.Beam.v2_log.txt""})" "ASSERT_TRUE(paths.HasValue()) | EXPECT_EQ(paths.Value().results_path, std::filesystem::path{""C:/models/.Beam.v2_results.h5""}) | EXPECT_EQ(paths.Value().log_path, std::filesystem::path{""C:/models/.Beam.v2_log.txt""})" -Dev tests/unit/app/output_paths_test.cpp OutputPaths.RejectsInputWithoutInpFinalExtension OutputPaths.RejectsInputWithoutInpFinalExtension; assertion 1개 tests/unit/app/output_paths_test.cpp OutputPaths.RejectsInputWithoutInpFinalExtension 유지 원문 검사 body 및 assertion 동일. 0014158f8fc76b488d78ce4409d51ef8f401c1f051f2cd0db5620a776c3b9953 0014158f8fc76b488d78ce4409d51ef8f401c1f051f2cd0db5620a776c3b9953 ASSERT_FALSE(paths.HasValue()) ASSERT_FALSE(paths.HasValue()) -Dev tests/unit/app/output_paths_test.cpp OutputPaths.LeaseCollisionPreservesPublicOutputPaths OutputPaths.LeaseCollisionPreservesPublicOutputPaths; assertion 6개 tests/unit/app/output_paths_test.cpp OutputPaths.LeaseCollisionPreservesPublicOutputPaths 유지 원문 검사 body 및 assertion 동일. b93c20d80194e4d6ef75b5cc9deeed307c666c32d1eb009a75058426755fa409 b93c20d80194e4d6ef75b5cc9deeed307c666c32d1eb009a75058426755fa409 ASSERT_TRUE(first.HasValue()) | EXPECT_FALSE(std::filesystem::exists(paths.results_path)) | EXPECT_FALSE(std::filesystem::exists(paths.log_path)) | ASSERT_FALSE(second.HasValue()) | EXPECT_FALSE(std::filesystem::exists(paths.results_path)) | EXPECT_FALSE(std::filesystem::exists(paths.log_path)) ASSERT_TRUE(first.HasValue()) | EXPECT_FALSE(std::filesystem::exists(paths.results_path)) | EXPECT_FALSE(std::filesystem::exists(paths.log_path)) | ASSERT_FALSE(second.HasValue()) | EXPECT_FALSE(std::filesystem::exists(paths.results_path)) | EXPECT_FALSE(std::filesystem::exists(paths.log_path)) -Dev tests/unit/app/output_paths_test.cpp OutputPaths.AnalysisRequestCarriesInputResultAndLogPaths OutputPaths.AnalysisRequestCarriesInputResultAndLogPaths; assertion 3개 tests/unit/app/output_paths_test.cpp OutputPaths.AnalysisRequestCarriesInputResultAndLogPaths 유지 원문 검사 body 및 assertion 동일. c48fbc834105a6cd2380b9a77237a1f2990fd348e4c796cb5ba405a37b2d07b2 c48fbc834105a6cd2380b9a77237a1f2990fd348e4c796cb5ba405a37b2d07b2 "EXPECT_EQ(request.input_path, ""C:/models/model.inp"") | EXPECT_EQ(request.output_path, ""C:/models/model_results.h5"") | EXPECT_EQ(request.log_path, ""C:/models/model_log.txt"")" "EXPECT_EQ(request.input_path, ""C:/models/model.inp"") | EXPECT_EQ(request.output_path, ""C:/models/model_results.h5"") | EXPECT_EQ(request.log_path, ""C:/models/model_log.txt"")" -Dev tests/unit/app/output_paths_test.cpp support@1-49 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, ExpectFailureCode tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8dbf6924f3d67728bb5446141ed4ace5ac53a860966902e0e81cfe6dc39db3c4 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/app/output_paths_test.cpp support@71-72 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b196b7affd091bd4430c558ecb836979300676f2db7a408c62e9271c62e40d71 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/app/output_paths_test.cpp support@89-90 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a5bd942724af8adb3d7c4b014a78f9a28247931c4ea15756008b12b39aeb68fd 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/app/output_paths_test.cpp support@109-110 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. af57532578cc6d4bc6c633b7417372ef65a6b94c1efa40c6a66a0c0a47624792 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/app/output_paths_test.cpp support@128-129 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 30515567df68d6c58a8531445f79936aa9236b7440ac2d675f11334b4e1278b9 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/app/output_paths_test.cpp support@140-141 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/assembly/load_assembler_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 13개 tests/unit/assembly/load_assembler_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 34eb602efea7903941426ad18f10ba54bdabd46e4e262ba6efcb5ffabf2af2d3 34eb602efea7903941426ad18f10ba54bdabd46e4e262ba6efcb5ffabf2af2d3 해당 없음 해당 없음 -Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AccumulatesGenericContributionsInSuppliedSourceOrder LoadAssembly.AccumulatesGenericContributionsInSuppliedSourceOrder; assertion 3개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AccumulatesGenericContributionsInSuppliedSourceOrder 유지 원문 검사 body 및 assertion 동일. aff7361b21837067a746e74160c69e478361e53af3444bffe4d0e557a557c690 aff7361b21837067a746e74160c69e478361e53af3444bffe4d0e557a557c690 ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value()[0U], -1.0) | EXPECT_DOUBLE_EQ(result.Value()[2U], -2.5) ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value()[0U], -1.0) | EXPECT_DOUBLE_EQ(result.Value()[2U], -2.5) -Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsGenericContributionErrorsBeforeCandidateCommit LoadAssembly.RejectsGenericContributionErrorsBeforeCandidateCommit; assertion 2개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsGenericContributionErrorsBeforeCandidateCommit 유지 원문 검사 body 및 assertion 동일. 4516bacc631826833398902d64155fc5f6d7c6906375f9966010ff7e7691dc7e 4516bacc631826833398902d64155fc5f6d7c6906375f9966010ff7e7691dc7e ASSERT_TRUE(repeated.HasValue()) | EXPECT_DOUBLE_EQ(repeated.Value()[1U], 3.0) ASSERT_TRUE(repeated.HasValue()) | EXPECT_DOUBLE_EQ(repeated.Value()[1U], 3.0) -Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AssemblesNodeSetAndSixComponentLoads LoadAssembly.AssemblesNodeSetAndSixComponentLoads; assertion 5개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AssemblesNodeSetAndSixComponentLoads 유지 원문 검사 body 및 assertion 동일. 1bdb44b82711f7c6e58780cce70be76a8c21cd6eb2017a77241d7b4ed031b4d5 1bdb44b82711f7c6e58780cce70be76a8c21cd6eb2017a77241d7b4ed031b4d5 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 12U) | EXPECT_EQ( std::vector(result.Value().Data(), result.Value().Data() + 12U), (std::vector{1.0, 2.0, 0.0, -4.0, 5.0, 0.0, 1.0, 0.0, 3.0, 0.0, 5.0, 6.0})) | EXPECT_EQ(fixture.dofs->ConstrainedDofs(), (std::vector{0U})) | EXPECT_DOUBLE_EQ(result.Value()[0U], 1.0) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 12U) | EXPECT_EQ( std::vector(result.Value().Data(), result.Value().Data() + 12U), (std::vector{1.0, 2.0, 0.0, -4.0, 5.0, 0.0, 1.0, 0.0, 3.0, 0.0, 5.0, 6.0})) | EXPECT_EQ(fixture.dofs->ConstrainedDofs(), (std::vector{0U})) | EXPECT_DOUBLE_EQ(result.Value()[0U], 1.0) -Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AccumulatesSignedLoadsInSourceOrder LoadAssembly.AccumulatesSignedLoadsInSourceOrder; assertion 4개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AccumulatesSignedLoadsInSourceOrder 유지 원문 검사 body 및 assertion 동일. 0e27baa9eedd061df41e6eb0ceaaf6ed5073343675c3d17412eb4bb33f7c055f 0e27baa9eedd061df41e6eb0ceaaf6ed5073343675c3d17412eb4bb33f7c055f ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value()[0U], 1.0) | EXPECT_DOUBLE_EQ(second.Value()[0U], 0.0) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value()[0U], 1.0) | EXPECT_DOUBLE_EQ(second.Value()[0U], 0.0) -Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AggregatesAllSixGlobalShellLoadComponentsInSourceOrder LoadAssembly.AggregatesAllSixGlobalShellLoadComponentsInSourceOrder; assertion 3개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AggregatesAllSixGlobalShellLoadComponentsInSourceOrder 유지 원문 검사 body 및 assertion 동일. 79cc99592d223bf47a84a2e6417bf67d9cd139106e217bba7ea034759ea36814 79cc99592d223bf47a84a2e6417bf67d9cd139106e217bba7ea034759ea36814 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 24U) | EXPECT_EQ( std::vector(result.Value().Data(), result.Value().Data() + 6U), (std::vector{1.0, 2.0, 3.0, 4.0, 5.0, 0.0})) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 24U) | EXPECT_EQ( std::vector(result.Value().Data(), result.Value().Data() + 6U), (std::vector{1.0, 2.0, 3.0, 4.0, 5.0, 0.0})) -Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AcceptsExactlyZeroAggregateShellMoment LoadAssembly.AcceptsExactlyZeroAggregateShellMoment; assertion 4개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AcceptsExactlyZeroAggregateShellMoment 유지 원문 검사 body 및 assertion 동일. 733bd45f5146ff23a07a82104b8331e28b49c335ddf6a0aec54ad75bf642a316 733bd45f5146ff23a07a82104b8331e28b49c335ddf6a0aec54ad75bf642a316 ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value()[3U], 0.0) | EXPECT_DOUBLE_EQ(result.Value()[4U], 0.0) | EXPECT_DOUBLE_EQ(result.Value()[5U], 0.0) ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value()[3U], 0.0) | EXPECT_DOUBLE_EQ(result.Value()[4U], 0.0) | EXPECT_DOUBLE_EQ(result.Value()[5U], 0.0) -Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.EnforcesAggregateShellMomentDirectorProjectionThreshold LoadAssembly.EnforcesAggregateShellMomentDirectorProjectionThreshold; assertion 7개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.EnforcesAggregateShellMomentDirectorProjectionThreshold 유지 원문 검사 body 및 assertion 동일. fea2c3252ba8945cb8611b9feb2879b6eeaa387e739a47709caf10ce8a447337 fea2c3252ba8945cb8611b9feb2879b6eeaa387e739a47709caf10ce8a447337 "ASSERT_TRUE(accepted.HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(rejected.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""unsupported-drilling-load"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].keyword, ""CLOAD"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].entity_identity, ""10"")" "ASSERT_TRUE(accepted.HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(rejected.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""unsupported-drilling-load"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].keyword, ""CLOAD"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].entity_identity, ""10"")" -Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsDrillingMomentBeforeEffectiveRhsCanBeFormed LoadAssembly.RejectsDrillingMomentBeforeEffectiveRhsCanBeFormed; assertion 4개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsDrillingMomentBeforeEffectiveRhsCanBeFormed 유지 원문 검사 body 및 assertion 동일. 18508214d24d7672307273a6b6575be56d3d3e18b1890c1a5889d38969795375 18508214d24d7672307273a6b6575be56d3d3e18b1890c1a5889d38969795375 "ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(rejected.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""unsupported-drilling-load"")" "ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(rejected.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""unsupported-drilling-load"")" -Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.FormsNonzeroPrescribedEffectiveRhs LoadAssembly.FormsNonzeroPrescribedEffectiveRhs; assertion 4개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.FormsNonzeroPrescribedEffectiveRhs 유지 원문 검사 body 및 assertion 동일. ec68ce4b41d1de543a53650df90bfd6ff69f294deb6e1ed1ccdf92e34e1a90b4 ec68ce4b41d1de543a53650df90bfd6ff69f294deb6e1ed1ccdf92e34e1a90b4 ASSERT_TRUE(full.HasValue()) | ASSERT_TRUE(rhs.HasValue()) | ASSERT_EQ(rhs.Value().Size(), 4U) | EXPECT_EQ(std::vector(rhs.Value().Data(), rhs.Value().Data() + 4U), (std::vector{10.0, 18.0, 39.0, 38.0})) ASSERT_TRUE(full.HasValue()) | ASSERT_TRUE(rhs.HasValue()) | ASSERT_EQ(rhs.Value().Size(), 4U) | EXPECT_EQ(std::vector(rhs.Value().Data(), rhs.Value().Data() + 4U), (std::vector{10.0, 18.0, 39.0, 38.0})) -Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsNonfiniteOrDimensionMismatch LoadAssembly.RejectsNonfiniteOrDimensionMismatch; assertion 0개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsNonfiniteOrDimensionMismatch 유지 원문 검사 body 및 assertion 동일. 5cc4ddbbe4657de7260e4d3d06882ec35eddc096aaa2410c36fc7c0d1d8c2d87 5cc4ddbbe4657de7260e4d3d06882ec35eddc096aaa2410c36fc7c0d1d8c2d87 해당 없음 해당 없음 -Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.ZeroLoadsRemainZero LoadAssembly.ZeroLoadsRemainZero; assertion 8개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.ZeroLoadsRemainZero 유지 원문 검사 body 및 assertion 동일. 7635872252315cd7031e15d3dc4016b63f745528c55c7be84c6651c5f25dcf19 7635872252315cd7031e15d3dc4016b63f745528c55c7be84c6651c5f25dcf19 ASSERT_TRUE(full.HasValue()) | EXPECT_TRUE(std::all_of(full.Value().Data(), full.Value().Data() + full.Value().Size(), [](const double value) { return value == 0.0; })) | ASSERT_TRUE(free_rhs.HasValue()) | EXPECT_EQ(free_rhs.Value().Size(), 6U) | EXPECT_TRUE(std::all_of(free_rhs.Value().Data(), free_rhs.Value().Data() + free_rhs.Value().Size(), [](const double value) { return value == 0.0; })) | ASSERT_TRUE(constrained_full.HasValue()) | ASSERT_TRUE(constrained_rhs.HasValue()) | EXPECT_EQ(constrained_rhs.Value().Size(), 0U) ASSERT_TRUE(full.HasValue()) | EXPECT_TRUE(std::all_of(full.Value().Data(), full.Value().Data() + full.Value().Size(), [](const double value) { return value == 0.0; })) | ASSERT_TRUE(free_rhs.HasValue()) | EXPECT_EQ(free_rhs.Value().Size(), 6U) | EXPECT_TRUE(std::all_of(free_rhs.Value().Data(), free_rhs.Value().Data() + free_rhs.Value().Size(), [](const double value) { return value == 0.0; })) | ASSERT_TRUE(constrained_full.HasValue()) | ASSERT_TRUE(constrained_rhs.HasValue()) | EXPECT_EQ(constrained_rhs.Value().Size(), 0U) -Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.PreservesOrderedCancellationInPrescribedCorrection LoadAssembly.PreservesOrderedCancellationInPrescribedCorrection; assertion 5개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.PreservesOrderedCancellationInPrescribedCorrection 유지 원문 검사 body 및 assertion 동일. d6e8d73924701453a7baadca084ff79663c300ab2e9b670eebdc2af86b2345d0 d6e8d73924701453a7baadca084ff79663c300ab2e9b670eebdc2af86b2345d0 ASSERT_TRUE(rhs.HasValue()) | ASSERT_EQ(rhs.Value().Size(), 3U) | EXPECT_DOUBLE_EQ(rhs.Value()[0U], 0.0) | EXPECT_DOUBLE_EQ(rhs.Value()[1U], -1.0) | EXPECT_DOUBLE_EQ(rhs.Value()[2U], 0.0) ASSERT_TRUE(rhs.HasValue()) | ASSERT_EQ(rhs.Value().Size(), 3U) | EXPECT_DOUBLE_EQ(rhs.Value()[0U], 0.0) | EXPECT_DOUBLE_EQ(rhs.Value()[1U], -1.0) | EXPECT_DOUBLE_EQ(rhs.Value()[2U], 0.0) -Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.SelectsFirstOrderedOverflowDiagnostic LoadAssembly.SelectsFirstOrderedOverflowDiagnostic; assertion 3개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.SelectsFirstOrderedOverflowDiagnostic 유지 원문 검사 body 및 assertion 동일. e3e2469155d1d3b62eb83bc0d55881ce8a93c78cf7ae13c191f54a00fe1a8655 e3e2469155d1d3b62eb83bc0d55881ce8a93c78cf7ae13c191f54a00fe1a8655 "ASSERT_EQ(rhs.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rhs.GetStatus().Diagnostics()[0U].entity_identity, ""0"") | EXPECT_NE(rhs.GetStatus().Diagnostics()[0U].message.find(""row sum""), std::string::npos)" "ASSERT_EQ(rhs.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rhs.GetStatus().Diagnostics()[0U].entity_identity, ""0"") | EXPECT_NE(rhs.GetStatus().Diagnostics()[0U].message.find(""row sum""), std::string::npos)" -Dev tests/unit/assembly/load_assembler_test.cpp support@1-189 helper/oracle/fixture/include/static assertion 구간: LoadFixture, MakeFixture, if, MakeShellFixture, MakeDenseSparse, ExpectFailureCode, FakeLoad tests/unit/assembly/load_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 09f288a427937029f1c93b5bd10b79a1ce75968600aab87a6017627ab43bbb4d 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/assembly/load_assembler_test.cpp support@276-277 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/assembly/load_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a0c3d2fdca7428b4606aecf54fc991ff71f42a6f8dfbf900da33db75c07db5e7 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/assembly/load_assembler_test.cpp support@301-302 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/assembly/load_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e5f1c6b05c193f37b5f5903549e70c2637df4efaa741399afea556790fcdd57d 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/assembly/load_assembler_test.cpp support@320-321 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/assembly/load_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6d8dccf1a14f246c0076046744d9f5f32eb359e499a133ad3f09fc9a287f59b3 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/assembly/load_assembler_test.cpp support@343-344 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/assembly/load_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 27a372ac23810e34bb1331fb06ff49031906985bdadbc563bb9322e0c7b5e944 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/assembly/parallel_for_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/assembly/parallel_for_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c33eb3d92d7e4fd8c3ae369e223cc123437ab59d17653a4114fc4d80b1230314 c33eb3d92d7e4fd8c3ae369e223cc123437ab59d17653a4114fc4d80b1230314 해당 없음 해당 없음 -Dev tests/unit/assembly/parallel_for_test.cpp ParallelFor.ZeroOneManyExecuteExactlyOnce ParallelFor.ZeroOneManyExecuteExactlyOnce; assertion 2개 tests/unit/assembly/parallel_for_test.cpp ParallelFor.ZeroOneManyExecuteExactlyOnce 유지 원문 검사 body 및 assertion 동일. ae877ba853b9d44bca19a62c65606b8130804cfd09d020aed0c560e1bf25fbb3 ae877ba853b9d44bca19a62c65606b8130804cfd09d020aed0c560e1bf25fbb3 EXPECT_EQ(zero_visits.load(std::memory_order_relaxed), 0U) | EXPECT_EQ(visits[index].load(std::memory_order_relaxed), 1U) EXPECT_EQ(zero_visits.load(std::memory_order_relaxed), 0U) | EXPECT_EQ(visits[index].load(std::memory_order_relaxed), 1U) -Dev tests/unit/assembly/parallel_for_test.cpp ParallelFor.SerialAndTbbProduceStableIndexedOutput ParallelFor.SerialAndTbbProduceStableIndexedOutput; assertion 4개 tests/unit/assembly/parallel_for_test.cpp ParallelFor.SerialAndTbbProduceStableIndexedOutput 유지 원문 검사 body 및 assertion 동일. 2ab6268405c5255e272585cd37131ac4b46b20a59e68b8e4a151839a35ac727b 2ab6268405c5255e272585cd37131ac4b46b20a59e68b8e4a151839a35ac727b EXPECT_EQ(serial_visits[index].load(std::memory_order_relaxed), 1U) | EXPECT_EQ(tbb_visits[index].load(std::memory_order_relaxed), 1U) | EXPECT_EQ(tbb_output[index].load(std::memory_order_relaxed), serial_output[index].load(std::memory_order_relaxed)) | EXPECT_EQ(tbb_output[index].load(std::memory_order_relaxed), value_for_index(index)) EXPECT_EQ(serial_visits[index].load(std::memory_order_relaxed), 1U) | EXPECT_EQ(tbb_visits[index].load(std::memory_order_relaxed), 1U) | EXPECT_EQ(tbb_output[index].load(std::memory_order_relaxed), serial_output[index].load(std::memory_order_relaxed)) | EXPECT_EQ(tbb_output[index].load(std::memory_order_relaxed), value_for_index(index)) -Dev tests/unit/assembly/parallel_for_test.cpp ParallelFor.PropagatesBodyExceptionByContract ParallelFor.PropagatesBodyExceptionByContract; assertion 1개 tests/unit/assembly/parallel_for_test.cpp ParallelFor.PropagatesBodyExceptionByContract 유지 원문 검사 body 및 assertion 동일. e3d433539fb80a97ab4be815cbe5d2cd45434502bb2566bf94ff67bc15d4ee84 e3d433539fb80a97ab4be815cbe5d2cd45434502bb2566bf94ff67bc15d4ee84 "EXPECT_EQ(std::string{error.what()}, ""parallel-for-body-failure"")" "EXPECT_EQ(std::string{error.what()}, ""parallel-for-body-failure"")" -Dev tests/unit/assembly/parallel_for_test.cpp support@1-25 helper/oracle/fixture/include/static assertion 구간: fesa, ParallelForBodyError, ParallelForBackends tests/unit/assembly/parallel_for_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9cd2b8b3b770e02c02d2fe88f4966177d86c949c6fc0904fdbcfbedc9994989a 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/assembly/parallel_for_test.cpp support@112-114 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/assembly/parallel_for_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/assembly/sparse_assembler_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/assembly/sparse_assembler_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 189583b8d3501b8337b55f56051ea1d57e55626bb5358df9787651ef96c34697 0a9627a0923db100df6ce2d8ca2fada0d5d86cd156d2f12ac1c979a6f8291215 해당 없음 해당 없음 -Dev tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.AssemblesFakeRuntimeContributionsIntoExactDeterministicCsr SparseAssembly.AssemblesFakeRuntimeContributionsIntoExactDeterministicCsr; assertion 14개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.AssemblesFakeRuntimeContributionsIntoExactDeterministicCsr 유지 원문 검사 body 및 assertion 동일. 12ccb35b0634063643caa859a19ad70b4c5ffdd9c844561cf80ee3c18ab716f0 12ccb35b0634063643caa859a19ad70b4c5ffdd9c844561cf80ee3c18ab716f0 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), elements.size()) | EXPECT_EQ(serial.Value().Rows(), 18U) | EXPECT_EQ(serial.Value().Columns(), 18U) | EXPECT_EQ(serial.Value().RowOffsets(), (std::vector{0U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 6U, 6U, 9U, 9U, 9U, 12U})) | EXPECT_EQ(serial.Value().ColumnIndices(), (std::vector{0U, 12U, 0U, 12U, 14U, 17U, 12U, 14U, 17U, 12U, 14U, 17U})) | EXPECT_EQ(serial.Value().Values(), (std::vector{1.0, 2.0, 3.0, 9.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0})) | ASSERT_TRUE(repeated.HasValue()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), elements.size()) | EXPECT_EQ(serial.Value().Rows(), 18U) | EXPECT_EQ(serial.Value().Columns(), 18U) | EXPECT_EQ(serial.Value().RowOffsets(), (std::vector{0U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 6U, 6U, 9U, 9U, 9U, 12U})) | EXPECT_EQ(serial.Value().ColumnIndices(), (std::vector{0U, 12U, 0U, 12U, 14U, 17U, 12U, 14U, 17U, 12U, 14U, 17U})) | EXPECT_EQ(serial.Value().Values(), (std::vector{1.0, 2.0, 3.0, 9.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0})) | ASSERT_TRUE(repeated.HasValue()) -Dev tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.SerialTbbAndRepeatedRunsAreByteIdentical SparseAssembly.SerialTbbAndRepeatedRunsAreByteIdentical; assertion 20개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.SerialTbbAndRepeatedRunsAreByteIdentical 유지 원문 검사 body 및 assertion 동일. 5849dbe7757b88a61317b8233042ef8e96361c3df7ffc77c6e5f428e52989d1e 5849dbe7757b88a61317b8233042ef8e96361c3df7ffc77c6e5f428e52989d1e ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | ASSERT_TRUE(dofs_result.HasValue()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), 2U) | EXPECT_EQ(serial.Value().Rows(), 18U) | EXPECT_EQ(serial.Value().Columns(), 18U) | EXPECT_EQ(serial.Value().RowOffsets(), dofs_result.Value().GetSparsePattern().row_offsets) | EXPECT_EQ(serial.Value().ColumnIndices(), dofs_result.Value().GetSparsePattern().column_indices) | EXPECT_TRUE(serial.Value().Validate().IsOk()) | ASSERT_TRUE(repeated.HasValue()) | EXPECT_DOUBLE_EQ(Entry(serial.Value(), row, column), Entry(serial.Value(), column, row)) | EXPECT_NEAR(Entry(serial.Value(), 0U, 0U), 120.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 0U, 6U), -120.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 6U, 6U), 200.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 6U, 12U), -80.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 12U, 12U), 80.0, 1.0e-12) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | ASSERT_TRUE(dofs_result.HasValue()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), 2U) | EXPECT_EQ(serial.Value().Rows(), 18U) | EXPECT_EQ(serial.Value().Columns(), 18U) | EXPECT_EQ(serial.Value().RowOffsets(), dofs_result.Value().GetSparsePattern().row_offsets) | EXPECT_EQ(serial.Value().ColumnIndices(), dofs_result.Value().GetSparsePattern().column_indices) | EXPECT_TRUE(serial.Value().Validate().IsOk()) | ASSERT_TRUE(repeated.HasValue()) | EXPECT_DOUBLE_EQ(Entry(serial.Value(), row, column), Entry(serial.Value(), column, row)) | EXPECT_NEAR(Entry(serial.Value(), 0U, 0U), 120.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 0U, 6U), -120.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 6U, 6U), 200.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 6U, 12U), -80.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 12U, 12U), 80.0, 1.0e-12) -Dev tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.AssemblesFourNodeTwentyFourDofKernelAndPreservesDiagonalSlots SparseAssembly.AssemblesFourNodeTwentyFourDofKernelAndPreservesDiagonalSlots; assertion 12개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.AssemblesFourNodeTwentyFourDofKernelAndPreservesDiagonalSlots 유지 원문 검사 body 및 assertion 동일. 49e404af06df45dd33c41511e4b767b397f204af6dee8ddf123a19cc1159d489 49e404af06df45dd33c41511e4b767b397f204af6dee8ddf123a19cc1159d489 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(expected.HasValue()) | EXPECT_EQ(assembled.Value().Rows(), 24U) | EXPECT_EQ(assembled.Value().Columns(), 24U) | EXPECT_EQ(assembled.Value().Values().size(), 24U * 24U) | EXPECT_EQ(assembled.Value().RowOffsets(), dofs.Value().GetSparsePattern().row_offsets) | EXPECT_EQ(assembled.Value().ColumnIndices(), dofs.Value().GetSparsePattern().column_indices) | EXPECT_NE(std::lower_bound(begin, end, row), end) | EXPECT_DOUBLE_EQ(Entry(assembled.Value(), row, column), expected.Value().stabilized_global24(row, column)) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(expected.HasValue()) | EXPECT_EQ(assembled.Value().Rows(), 24U) | EXPECT_EQ(assembled.Value().Columns(), 24U) | EXPECT_EQ(assembled.Value().Values().size(), 24U * 24U) | EXPECT_EQ(assembled.Value().RowOffsets(), dofs.Value().GetSparsePattern().row_offsets) | EXPECT_EQ(assembled.Value().ColumnIndices(), dofs.Value().GetSparsePattern().column_indices) | EXPECT_NE(std::lower_bound(begin, end, row), end) | EXPECT_DOUBLE_EQ(Entry(assembled.Value(), row, column), expected.Value().stabilized_global24(row, column)) -Dev tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.ShellSerialTbbReverseAndRepeatedRunsAreByteIdentical SparseAssembly.ShellSerialTbbReverseAndRepeatedRunsAreByteIdentical; assertion 6개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.ShellSerialTbbReverseAndRepeatedRunsAreByteIdentical 유지 원문 검사 body 및 assertion 동일. 8a7b6de57d65db7469d0151373d4dc4642b7279f6e4e036f8cc76bb27e0db170 8a7b6de57d65db7469d0151373d4dc4642b7279f6e4e036f8cc76bb27e0db170 ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), 2U) | ASSERT_TRUE(repeated.HasValue()) ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), 2U) | ASSERT_TRUE(repeated.HasValue()) -Dev tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.S4AndS4rSemanticFixturesAssembleIdenticalStiffness SparseAssembly.S4AndS4rSemanticFixturesAssembleIdenticalStiffness; assertion 3개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.S4AndS4rSemanticFixturesAssembleIdenticalStiffness 유지 원문 검사 body 및 assertion 동일. e5a06a15276973da6be56d1ee497a913c183e8fae82909c70d28845de7fd434c e5a06a15276973da6be56d1ee497a913c183e8fae82909c70d28845de7fd434c ASSERT_TRUE(s4.HasValue()) | ASSERT_TRUE(s4r.HasValue()) | EXPECT_TRUE(std::any_of(s4.Value().Values().begin(), s4.Value().Values().end(), [](const double value) { return value != 0.0; })) ASSERT_TRUE(s4.HasValue()) | ASSERT_TRUE(s4r.HasValue()) | EXPECT_TRUE(std::any_of(s4.Value().Values().begin(), s4.Value().Values().end(), [](const double value) { return value != 0.0; })) -Dev tests/unit/assembly/sparse_assembler_test.cpp support@1-228 helper/oracle/fixture/include/static assertion 구간: MakeDefinition, MakeShellDefinition, if, DirectShellStiffness, AssembleShell, T, ByteIdentical, Entry, ReverseParallelFor, FakeStiffnessElement, MatrixFromRows, ExpectByteIdentical tests/unit/assembly/sparse_assembler_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c50684935a4642f8ccb99b80d27ad56a660aac55c1dbe5627c85a45c24cbafb5 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/assembly/sparse_assembler_test.cpp support@416-417 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/assembly/sparse_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/assembly/surface_pressure_assembler_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/assembly/surface_pressure_assembler_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 65b0c1bd703fc7bafdbd8200cf61935a039da6b80295f0ddee35027d2cf2dc78 65b0c1bd703fc7bafdbd8200cf61935a039da6b80295f0ddee35027d2cf2dc78 해당 없음 해당 없음 -Dev tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.AssemblesFullDofsInPressureFacetAndRecordOrder SurfacePressureAssembly.AssemblesFullDofsInPressureFacetAndRecordOrder; assertion 12개 tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.AssemblesFullDofsInPressureFacetAndRecordOrder 유지 원문 검사 body 및 assertion 동일. 61ec658b973ff4f2a3c4dc06cd90c2b4dd2b5ac5d323c41996fcea64dd0375c7 61ec658b973ff4f2a3c4dc06cd90c2b4dd2b5ac5d323c41996fcea64dd0375c7 ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().diagnostics.empty()) | ASSERT_EQ(result.Value().full_external_force.Size(), 24U) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 1U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 2U], -0.5) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 3U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 4U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 5U], 0.0) | EXPECT_EQ(result.Value().full_external_tangent.Rows(), 24U) | EXPECT_EQ(result.Value().full_external_tangent.Columns(), 24U) | EXPECT_EQ(value, 0.0) ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().diagnostics.empty()) | ASSERT_EQ(result.Value().full_external_force.Size(), 24U) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 1U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 2U], -0.5) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 3U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 4U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 5U], 0.0) | EXPECT_EQ(result.Value().full_external_tangent.Rows(), 24U) | EXPECT_EQ(result.Value().full_external_tangent.Columns(), 24U) | EXPECT_EQ(value, 0.0) -Dev tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.AddsRepeatedRecordsAndAppliesUnitFactorExactlyOnce SurfacePressureAssembly.AddsRepeatedRecordsAndAppliesUnitFactorExactlyOnce; assertion 2개 tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.AddsRepeatedRecordsAndAppliesUnitFactorExactlyOnce 유지 원문 검사 body 및 assertion 동일. 8fdc8dc50f731553ae45c3c08e921158c7ddc9dd639562d30ea5261e09ad46d8 8fdc8dc50f731553ae45c3c08e921158c7ddc9dd639562d30ea5261e09ad46d8 ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[node * 6U + 2U], -1.0) ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[node * 6U + 2U], -1.0) -Dev tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.IsBitwiseStableForSerialAndParallelLocalEvaluation SurfacePressureAssembly.IsBitwiseStableForSerialAndParallelLocalEvaluation; assertion 8개 tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.IsBitwiseStableForSerialAndParallelLocalEvaluation 유지 원문 검사 body 및 assertion 동일. 48444c6f2917e44301611c69abf5fe3192dddea0f8bd5491faa6798a1b1ee682 48444c6f2917e44301611c69abf5fe3192dddea0f8bd5491faa6798a1b1ee682 ASSERT_TRUE(serial_result.HasValue()) | ASSERT_TRUE(parallel_result.HasValue()) | EXPECT_EQ(Values(serial_result.Value().full_external_force), Values(parallel_result.Value().full_external_force)) | EXPECT_EQ(serial_result.Value().full_external_tangent.RowOffsets(), parallel_result.Value().full_external_tangent.RowOffsets()) | EXPECT_EQ(serial_result.Value().full_external_tangent.ColumnIndices(), parallel_result.Value().full_external_tangent.ColumnIndices()) | EXPECT_EQ(serial_result.Value().full_external_tangent.Values(), parallel_result.Value().full_external_tangent.Values()) | EXPECT_TRUE(serial_result.Value().diagnostics.empty()) | EXPECT_TRUE(parallel_result.Value().diagnostics.empty()) ASSERT_TRUE(serial_result.HasValue()) | ASSERT_TRUE(parallel_result.HasValue()) | EXPECT_EQ(Values(serial_result.Value().full_external_force), Values(parallel_result.Value().full_external_force)) | EXPECT_EQ(serial_result.Value().full_external_tangent.RowOffsets(), parallel_result.Value().full_external_tangent.RowOffsets()) | EXPECT_EQ(serial_result.Value().full_external_tangent.ColumnIndices(), parallel_result.Value().full_external_tangent.ColumnIndices()) | EXPECT_EQ(serial_result.Value().full_external_tangent.Values(), parallel_result.Value().full_external_tangent.Values()) | EXPECT_TRUE(serial_result.Value().diagnostics.empty()) | EXPECT_TRUE(parallel_result.Value().diagnostics.empty()) -Dev tests/unit/assembly/surface_pressure_assembler_test.cpp support@1-122 helper/oracle/fixture/include/static assertion 구간: PressureFixture, MakeFixture, if, Values tests/unit/assembly/surface_pressure_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 212fb026f9860fa82917c9a2a8e06c719b1338a414784431d36b14ce79330338 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/assembly/thermal_assembler_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/assembly/thermal_assembler_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bcac60bb3167ad3e6ec2d45f9ee08c7535bb121f71cae21a7cac9053440ec25a bcac60bb3167ad3e6ec2d45f9ee08c7535bb121f71cae21a7cac9053440ec25a 해당 없음 해당 없음 -Dev tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.HandAssemblyPreservesSharedStationsMaterialOffsetAndThicknessJump ThermalAssembler.HandAssemblyPreservesSharedStationsMaterialOffsetAndThicknessJump; assertion 12개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.HandAssemblyPreservesSharedStationsMaterialOffsetAndThicknessJump 유지 원문 검사 body 및 assertion 동일. 2b58c82002dcecc533fba0030b665848e18c223902521a1e83fd2a87d742cb62 2b58c82002dcecc533fba0030b665848e18c223902521a1e83fd2a87d742cb62 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_EQ(assembled.Value().Conductivity().Rows(), 30U) | EXPECT_LE(std::abs(k(i, j) - expected.k(i, j)), ek(i, j) + gamma * expected.pk(i, j)) | EXPECT_LE(std::abs(c(i, j) - expected.c(i, j)), ec(i, j) + gamma * expected.pc(i, j)) | EXPECT_EQ(domain.Value().ThermalElements()[0].MaterialIndex(), 1U) | EXPECT_EQ(domain.Value().ThermalElements()[1].MaterialIndex(), 2U) | EXPECT_EQ(assembled.Value().ElementOrder(), (std::vector{0, 1})) | EXPECT_EQ(assembled.Value().Kernels()[0].SourceId().source_label_text, ""0009"") | EXPECT_EQ(assembled.Value().Scatters()[0][5 + a], assembled.Value().Scatters()[1][a])" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_EQ(assembled.Value().Conductivity().Rows(), 30U) | EXPECT_LE(std::abs(k(i, j) - expected.k(i, j)), ek(i, j) + gamma * expected.pk(i, j)) | EXPECT_LE(std::abs(c(i, j) - expected.c(i, j)), ec(i, j) + gamma * expected.pc(i, j)) | EXPECT_EQ(domain.Value().ThermalElements()[0].MaterialIndex(), 1U) | EXPECT_EQ(domain.Value().ThermalElements()[1].MaterialIndex(), 2U) | EXPECT_EQ(assembled.Value().ElementOrder(), (std::vector{0, 1})) | EXPECT_EQ(assembled.Value().Kernels()[0].SourceId().source_label_text, ""0009"") | EXPECT_EQ(assembled.Value().Scatters()[0][5 + a], assembled.Value().Scatters()[1][a])" -Dev tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.SourceRowHeatInputRetainsPrescribedSignedDuplicateContributions ThermalAssembler.SourceRowHeatInputRetainsPrescribedSignedDuplicateContributions; assertion 15개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.SourceRowHeatInputRetainsPrescribedSignedDuplicateContributions 유지 원문 검사 body 및 assertion 동일. 17db9c94e9a588ae74c5f1a31a66d769b4b99a42263a1a0e04de71a3a1d53b0a 17db9c94e9a588ae74c5f1a31a66d769b4b99a42263a1a0e04de71a3a1d53b0a ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(dofs.Value().FreeEquation(full).has_value()) | EXPECT_EQ(result.Value().HeatInput()[full], 5.) | EXPECT_EQ(result.Value().HeatInput()[4], -7.) | EXPECT_GE(result.Value().HeatInputError()[full], 1.) | EXPECT_EQ(result.Value().HeatInput()[i], 0.) | EXPECT_EQ(result.Value().HeatInputError()[i], 0.) | ASSERT_TRUE(second_domain.HasValue()) | ASSERT_TRUE(second_model.HasValue()) | ASSERT_TRUE(second_dofs.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(second.Value().HeatInput()[full], 6.) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(dofs.Value().FreeEquation(full).has_value()) | EXPECT_EQ(result.Value().HeatInput()[full], 5.) | EXPECT_EQ(result.Value().HeatInput()[4], -7.) | EXPECT_GE(result.Value().HeatInputError()[full], 1.) | EXPECT_EQ(result.Value().HeatInput()[i], 0.) | EXPECT_EQ(result.Value().HeatInputError()[i], 0.) | ASSERT_TRUE(second_domain.HasValue()) | ASSERT_TRUE(second_model.HasValue()) | ASSERT_TRUE(second_dofs.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(second.Value().HeatInput()[full], 6.) -Dev tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.SerialAndActualTbbOperatorsBoundsAndFluxAreBitwiseEqual ThermalAssembler.SerialAndActualTbbOperatorsBoundsAndFluxAreBitwiseEqual; assertion 11개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.SerialAndActualTbbOperatorsBoundsAndFluxAreBitwiseEqual 유지 원문 검사 body 및 assertion 동일. 7083d3f901965e28ae9783d436dcef27b2622cb304a5b6631c6081a6656a27e3 7083d3f901965e28ae9783d436dcef27b2622cb304a5b6631c6081a6656a27e3 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(parallel.HasValue()) | EXPECT_EQ(serial.Value().Conductivity().RowOffsets(), parallel.Value().Conductivity().RowOffsets()) | EXPECT_EQ(serial.Value().Conductivity().ColumnIndices(), parallel.Value().Conductivity().ColumnIndices()) | EXPECT_EQ( std::memcmp(serial.Value().HeatInput().Data(), parallel.Value().HeatInput().Data(), 30 * sizeof(double)), 0) | ASSERT_TRUE(sf.HasValue()) | ASSERT_TRUE(pf.HasValue()) | EXPECT_EQ( std::memcmp(sf.Value()[e][r].Components().data(), pf.Value()[e][r].Components().data(), 3 * sizeof(double)), 0) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(parallel.HasValue()) | EXPECT_EQ(serial.Value().Conductivity().RowOffsets(), parallel.Value().Conductivity().RowOffsets()) | EXPECT_EQ(serial.Value().Conductivity().ColumnIndices(), parallel.Value().Conductivity().ColumnIndices()) | EXPECT_EQ( std::memcmp(serial.Value().HeatInput().Data(), parallel.Value().HeatInput().Data(), 30 * sizeof(double)), 0) | ASSERT_TRUE(sf.HasValue()) | ASSERT_TRUE(pf.HasValue()) | EXPECT_EQ( std::memcmp(sf.Value()[e][r].Components().data(), pf.Value()[e][r].Components().data(), 3 * sizeof(double)), 0) -Dev tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.DisconnectedComponentsHaveNoCrossBlockEntries ThermalAssembler.DisconnectedComponentsHaveNoCrossBlockEntries; assertion 6개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.DisconnectedComponentsHaveNoCrossBlockEntries 유지 원문 검사 body 및 assertion 동일. 18403e156469c7c5012f27a63e4d9f13d4a7cef5d14cf64fb3c66e8b2b461fd9 18403e156469c7c5012f27a63e4d9f13d4a7cef5d14cf64fb3c66e8b2b461fd9 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(matrix.Rows(), 40U) | EXPECT_EQ(row < 20, matrix.ColumnIndices()[p] < 20) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(matrix.Rows(), 40U) | EXPECT_EQ(row < 20, matrix.ColumnIndices()[p] < 20) -Dev tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.RejectsWrongProfilesPartitionsAndNonfiniteAccumulation ThermalAssembler.RejectsWrongProfilesPartitionsAndNonfiniteAccumulation; assertion 11개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.RejectsWrongProfilesPartitionsAndNonfiniteAccumulation 유지 원문 검사 body 및 assertion 동일. 17b959b03e9990bb95823d4e571e8e027d95babe4d8e5f02400d920e12e24961 17b959b03e9990bb95823d4e571e8e027d95babe4d8e5f02400d920e12e24961 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(model.Value(), fesa::DofManager{}, fesa::SerialParallelFor{}) .HasValue()) | ASSERT_TRUE(other_domain.HasValue()) | ASSERT_TRUE(other_model.HasValue()) | ASSERT_TRUE(other_dofs.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(model.Value(), other_dofs.Value(), fesa::SerialParallelFor{}) .HasValue()) | ASSERT_TRUE(overflow_domain.HasValue()) | ASSERT_TRUE(overflow_model.HasValue()) | ASSERT_TRUE(overflow_dofs.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(overflow_model.Value(), overflow_dofs.Value(), fesa::TbbParallelFor{}) .HasValue()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(model.Value(), fesa::DofManager{}, fesa::SerialParallelFor{}) .HasValue()) | ASSERT_TRUE(other_domain.HasValue()) | ASSERT_TRUE(other_model.HasValue()) | ASSERT_TRUE(other_dofs.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(model.Value(), other_dofs.Value(), fesa::SerialParallelFor{}) .HasValue()) | ASSERT_TRUE(overflow_domain.HasValue()) | ASSERT_TRUE(overflow_model.HasValue()) | ASSERT_TRUE(overflow_dofs.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(overflow_model.Value(), overflow_dofs.Value(), fesa::TbbParallelFor{}) .HasValue()) -Dev tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.ParallelKernelFailuresSelectStableSourceElement ThermalAssembler.ParallelKernelFailuresSelectStableSourceElement; assertion 7개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.ParallelKernelFailuresSelectStableSourceElement 유지 원문 검사 body 및 assertion 동일. 705c5cdaa64861e8c3cdc7f638eb3bbc8d6d8bb25de3e78dec00674cb5bee2f4 705c5cdaa64861e8c3cdc7f638eb3bbc8d6d8bb25de3e78dec00674cb5bee2f4 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_FALSE(serial.HasValue()) | ASSERT_FALSE(parallel.HasValue()) | EXPECT_EQ(serial.GetStatus().Diagnostics()[0].entity_identity, ""plate:0009"") | EXPECT_EQ(parallel.GetStatus().Diagnostics()[0].entity_identity, ""plate:0009"")" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_FALSE(serial.HasValue()) | ASSERT_FALSE(parallel.HasValue()) | EXPECT_EQ(serial.GetStatus().Diagnostics()[0].entity_identity, ""plate:0009"") | EXPECT_EQ(parallel.GetStatus().Diagnostics()[0].entity_identity, ""plate:0009"")" -Dev tests/unit/assembly/thermal_assembler_test.cpp support@1-117 helper/oracle/fixture/include/static assertion 구간: Model, Dense, ExpectedMatrices, Expected, SameBits tests/unit/assembly/thermal_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b3e9525aaced1be323ec738ea9213a2323dd745f550425b6a612fa09fa176d50 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/build_info_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/build_info_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8bf9bfef45c45c9a09e0a0f98ee4cc38316e2550894c6e27ca599fdd650298b8 8bf9bfef45c45c9a09e0a0f98ee4cc38316e2550894c6e27ca599fdd650298b8 해당 없음 해당 없음 -Dev tests/unit/build_info_test.cpp BuildInfo.VersionIsStableAndNonEmpty BuildInfo.VersionIsStableAndNonEmpty; assertion 3개 tests/unit/build_info_test.cpp BuildInfo.VersionIsStableAndNonEmpty 유지 원문 검사 body 및 assertion 동일. 0cb8bda21730c82347550102836f3bade449b4c590aa77348381f5066c040bd0 0cb8bda21730c82347550102836f3bade449b4c590aa77348381f5066c040bd0 "EXPECT_FALSE(first.empty()) | EXPECT_EQ(first, second) | EXPECT_TRUE(std::regex_match(std::string(first), std::regex{R""(^[0-9]+\.[0-9]+\.[0-9]+$)""}))" "EXPECT_FALSE(first.empty()) | EXPECT_EQ(first, second) | EXPECT_TRUE(std::regex_match(std::string(first), std::regex{R""(^[0-9]+\.[0-9]+\.[0-9]+$)""}))" -Dev tests/unit/build_info_test.cpp BuildInfo.PublicHeaderHasNoBackendDependency BuildInfo.PublicHeaderHasNoBackendDependency; assertion 0개 tests/unit/build_info_test.cpp BuildInfo.PublicHeaderHasNoBackendDependency 유지 원문 검사 body 및 assertion 동일. 918ff7cf6a6f923c243045921b33a38cf1e94cfc73a2247b7fac6ac76ecc09a8 918ff7cf6a6f923c243045921b33a38cf1e94cfc73a2247b7fac6ac76ecc09a8 해당 없음 해당 없음 -Dev tests/unit/build_info_test.cpp support@1-9 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/build_info_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c574474e8a7db434a18523c880adfe46ee608d4109b4dffa1ea623ef3c291ac5 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/constraints/boundary_condition_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/constraints/boundary_condition_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b5ff07b5925aab743568eff705c8827f7186889ad15541e90d2ed9fe6998ce79 b5ff07b5925aab743568eff705c8827f7186889ad15541e90d2ed9fe6998ce79 해당 없음 해당 없음 -Dev tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.ResolvesStableNonzeroDefinitionsThroughBase BoundaryCondition.ResolvesStableNonzeroDefinitionsThroughBase; assertion 8개 tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.ResolvesStableNonzeroDefinitionsThroughBase 유지 원문 검사 body 및 assertion 동일. 8a449e3e0a082370655dda3bce51393da93ba796aac899f07b22572bffcc239d 8a449e3e0a082370655dda3bce51393da93ba796aac899f07b22572bffcc239d ASSERT_TRUE(definitions.HasValue()) | ASSERT_EQ(definitions.Value().size(), 2U) | EXPECT_EQ(definitions.Value()[0U].source_order, 4U) | EXPECT_EQ(definitions.Value()[0U].full_dof_index, 8U) | EXPECT_DOUBLE_EQ(definitions.Value()[0U].prescribed_value, 2.5) | EXPECT_EQ(definitions.Value()[1U].source_order, 4U) | EXPECT_EQ(definitions.Value()[1U].full_dof_index, 2U) | EXPECT_DOUBLE_EQ(definitions.Value()[1U].prescribed_value, 2.5) ASSERT_TRUE(definitions.HasValue()) | ASSERT_EQ(definitions.Value().size(), 2U) | EXPECT_EQ(definitions.Value()[0U].source_order, 4U) | EXPECT_EQ(definitions.Value()[0U].full_dof_index, 8U) | EXPECT_DOUBLE_EQ(definitions.Value()[0U].prescribed_value, 2.5) | EXPECT_EQ(definitions.Value()[1U].source_order, 4U) | EXPECT_EQ(definitions.Value()[1U].full_dof_index, 2U) | EXPECT_DOUBLE_EQ(definitions.Value()[1U].prescribed_value, 2.5) -Dev tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.DomainOwnsExpandedPolymorphicDefinitionsStably BoundaryCondition.DomainOwnsExpandedPolymorphicDefinitionsStably; assertion 10개 tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.DomainOwnsExpandedPolymorphicDefinitionsStably 유지 원문 검사 body 및 assertion 동일. ccb7ed25f7f922616192d64201aa0dd2e02b20fc5f8c7e0b71b99921adff83f8 ccb7ed25f7f922616192d64201aa0dd2e02b20fc5f8c7e0b71b99921adff83f8 ASSERT_EQ(boundaries.size(), 2U) | EXPECT_EQ(fixture.model->ActiveBoundaryConditions(), (std::vector{0U, 1U})) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(first.Value()[0U].source_order, 0U) | EXPECT_EQ(first.Value()[0U].full_dof_index, 6U) | EXPECT_EQ(second.Value()[0U].source_order, 1U) | EXPECT_EQ(second.Value()[0U].full_dof_index, 7U) | EXPECT_DOUBLE_EQ(first.Value()[0U].prescribed_value, 1.25) | EXPECT_DOUBLE_EQ(second.Value()[0U].prescribed_value, 1.25) ASSERT_EQ(boundaries.size(), 2U) | EXPECT_EQ(fixture.model->ActiveBoundaryConditions(), (std::vector{0U, 1U})) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(first.Value()[0U].source_order, 0U) | EXPECT_EQ(first.Value()[0U].full_dof_index, 6U) | EXPECT_EQ(second.Value()[0U].source_order, 1U) | EXPECT_EQ(second.Value()[0U].full_dof_index, 7U) | EXPECT_DOUBLE_EQ(first.Value()[0U].prescribed_value, 1.25) | EXPECT_DOUBLE_EQ(second.Value()[0U].prescribed_value, 1.25) -Dev tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.RejectsDuplicateConflictAndNonfiniteBeforeCandidateCommit BoundaryCondition.RejectsDuplicateConflictAndNonfiniteBeforeCandidateCommit; assertion 1개 tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.RejectsDuplicateConflictAndNonfiniteBeforeCandidateCommit 유지 원문 검사 body 및 assertion 동일. 0777dfa7d90a00f5b781ac55fbcd26140ce971f90872e5d827092036852f2a74 0777dfa7d90a00f5b781ac55fbcd26140ce971f90872e5d827092036852f2a74 ASSERT_TRUE( fixture.dofs->Build(*fixture.model, elements, {std::cref(initial)}) .IsOk()) ASSERT_TRUE( fixture.dofs->Build(*fixture.model, elements, {std::cref(initial)}) .IsOk()) -Dev tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.AcceptsIdenticalOverlapAcrossSourceDefinitions BoundaryCondition.AcceptsIdenticalOverlapAcrossSourceDefinitions; assertion 1개 tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.AcceptsIdenticalOverlapAcrossSourceDefinitions 유지 원문 검사 body 및 assertion 동일. 55ca5cd284184aa80c4d75cdced2736d1dedf3ee376f11277ff7ce933d8b1ba7 55ca5cd284184aa80c4d75cdced2736d1dedf3ee376f11277ff7ce933d8b1ba7 ASSERT_TRUE(status.IsOk()) ASSERT_TRUE(status.IsOk()) -Dev tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.ConcreteRejectsNonfinitePrescribedValue BoundaryCondition.ConcreteRejectsNonfinitePrescribedValue; assertion 3개 tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.ConcreteRejectsNonfinitePrescribedValue 유지 원문 검사 body 및 assertion 동일. 365ded0ccec2ef519edcd4c018361f02600a7e9ad1cf3964445965e9828e3a4a 365ded0ccec2ef519edcd4c018361f02600a7e9ad1cf3964445965e9828e3a4a "ASSERT_FALSE(result.HasValue()) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""nonfinite-prescribed-value"")" "ASSERT_FALSE(result.HasValue()) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""nonfinite-prescribed-value"")" -Dev tests/unit/constraints/boundary_condition_test.cpp support@1-104 helper/oracle/fixture/include/static assertion 구간: BoundaryFixture, FakeBoundaryCondition, ExpectFailureCode, ExpectCandidate tests/unit/constraints/boundary_condition_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7f03c2fa0d373d6420b1c18029f29a429ed75303d12a175e71a3ce669882c48a 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/constraints/essential_constraints_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/constraints/essential_constraints_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ba9c09cde54c8d7ff5a12a38159a7c1de0001262a0186201a81bcbd2bade63d6 3bbaa9486249cbfa5978af50408dc25eab1164fe110ebec87ea7f60f2019353a 해당 없음 해당 없음 -Dev tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.ExtractsHandComputedBlocksInStableOrder EssentialConstraints.ExtractsHandComputedBlocksInStableOrder; assertion 18개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.ExtractsHandComputedBlocksInStableOrder 유지 원문 검사 body 및 assertion 동일. 674065ab604b3a41a09e73738260e57022bc1c90af16f0d1ff822a3fe000a923 674065ab604b3a41a09e73738260e57022bc1c90af16f0d1ff822a3fe000a923 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(blocks.k_ff.RowOffsets(), (std::vector{0U, 4U, 8U, 12U, 16U})) | EXPECT_EQ(blocks.k_ff.ColumnIndices(), (std::vector{0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U})) | EXPECT_EQ( blocks.k_ff.Values(), (std::vector{1.0, 3.0, 4.0, 6.0, 21.0, 23.0, 24.0, 26.0, 31.0, 33.0, 34.0, 36.0, 51.0, 53.0, 54.0, 56.0})) | EXPECT_EQ(blocks.k_fc.RowOffsets(), (std::vector{0U, 2U, 4U, 6U, 8U})) | EXPECT_EQ(blocks.k_fc.ColumnIndices(), (std::vector{0U, 1U, 0U, 1U, 0U, 1U, 0U, 1U})) | EXPECT_EQ(blocks.k_fc.Values(), (std::vector{2.0, 5.0, 22.0, 0.0, 32.0, 35.0, 52.0, 55.0})) | EXPECT_EQ(blocks.k_cf.RowOffsets(), (std::vector{0U, 4U, 8U})) | EXPECT_EQ(blocks.k_cf.ColumnIndices(), (std::vector{0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U})) | EXPECT_EQ( blocks.k_cf.Values(), (std::vector{11.0, 13.0, 14.0, 16.0, 41.0, 43.0, 44.0, 46.0})) | EXPECT_EQ(blocks.k_cc.RowOffsets(), (std::vector{0U, 2U, 4U})) | EXPECT_EQ(blocks.k_cc.ColumnIndices(), (std::vector{0U, 1U, 0U, 1U})) | EXPECT_EQ(blocks.k_cc.Values(), (std::vector{12.0, 15.0, 42.0, 45.0})) | EXPECT_EQ(blocks.k_fc.Values()[3U], 0.0) | EXPECT_TRUE(blocks.k_ff.Validate().IsOk()) | EXPECT_TRUE(blocks.k_fc.Validate().IsOk()) | EXPECT_TRUE(blocks.k_cf.Validate().IsOk()) | EXPECT_TRUE(blocks.k_cc.Validate().IsOk()) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(blocks.k_ff.RowOffsets(), (std::vector{0U, 4U, 8U, 12U, 16U})) | EXPECT_EQ(blocks.k_ff.ColumnIndices(), (std::vector{0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U})) | EXPECT_EQ( blocks.k_ff.Values(), (std::vector{1.0, 3.0, 4.0, 6.0, 21.0, 23.0, 24.0, 26.0, 31.0, 33.0, 34.0, 36.0, 51.0, 53.0, 54.0, 56.0})) | EXPECT_EQ(blocks.k_fc.RowOffsets(), (std::vector{0U, 2U, 4U, 6U, 8U})) | EXPECT_EQ(blocks.k_fc.ColumnIndices(), (std::vector{0U, 1U, 0U, 1U, 0U, 1U, 0U, 1U})) | EXPECT_EQ(blocks.k_fc.Values(), (std::vector{2.0, 5.0, 22.0, 0.0, 32.0, 35.0, 52.0, 55.0})) | EXPECT_EQ(blocks.k_cf.RowOffsets(), (std::vector{0U, 4U, 8U})) | EXPECT_EQ(blocks.k_cf.ColumnIndices(), (std::vector{0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U})) | EXPECT_EQ( blocks.k_cf.Values(), (std::vector{11.0, 13.0, 14.0, 16.0, 41.0, 43.0, 44.0, 46.0})) | EXPECT_EQ(blocks.k_cc.RowOffsets(), (std::vector{0U, 2U, 4U})) | EXPECT_EQ(blocks.k_cc.ColumnIndices(), (std::vector{0U, 1U, 0U, 1U})) | EXPECT_EQ(blocks.k_cc.Values(), (std::vector{12.0, 15.0, 42.0, 45.0})) | EXPECT_EQ(blocks.k_fc.Values()[3U], 0.0) | EXPECT_TRUE(blocks.k_ff.Validate().IsOk()) | EXPECT_TRUE(blocks.k_fc.Validate().IsOk()) | EXPECT_TRUE(blocks.k_cf.Validate().IsOk()) | EXPECT_TRUE(blocks.k_cc.Validate().IsOk()) -Dev tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.HandlesNoAllAndMixedConstraints EssentialConstraints.HandlesNoAllAndMixedConstraints; assertion 5개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.HandlesNoAllAndMixedConstraints 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4cf6053dbce4a0b8d79b1da2940de913fac25bdc4c6032dbdb6ba5be584c5efb 66201f4cf9837297e77488d6cb0babc1c5dd36934af64abe3b39cf85b4865cfd ASSERT_TRUE(none.HasValue()) | EXPECT_EQ(none.Value().k_ff.Values(), full.Values()) | ASSERT_TRUE(all.HasValue()) | EXPECT_EQ(all.Value().k_cc.Values(), full.Values()) | ASSERT_TRUE(mixed.HasValue()) ASSERT_TRUE(none.HasValue()) | EXPECT_EQ(none.Value().k_ff.Values(), full.Values()) | ASSERT_TRUE(all.HasValue()) | EXPECT_EQ(all.Value().k_cc.Values(), full.Values()) | ASSERT_TRUE(empty_rhs.HasValue()) | EXPECT_EQ(empty_rhs.Value().Size(), 0U) | ASSERT_TRUE(full_rhs.HasValue()) | EXPECT_EQ(full_rhs.Value()[i], static_cast(i) - 2.0) | EXPECT_EQ(full_load[i], static_cast(i) - 2.0) | ASSERT_TRUE(mixed.HasValue()) -Dev tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.PreservesShellSizedNoMixedAndAllConstraintRoundTrips EssentialConstraints.PreservesShellSizedNoMixedAndAllConstraintRoundTrips; assertion 7개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.PreservesShellSizedNoMixedAndAllConstraintRoundTrips 유지 원문 검사 body 및 assertion 동일. c943e0be6dafdad411e9dc5b075259ff93ba3d6edad1aac44186128b70255f2f c943e0be6dafdad411e9dc5b075259ff93ba3d6edad1aac44186128b70255f2f ASSERT_TRUE(none.HasValue()) | ASSERT_TRUE(mixed.HasValue()) | ASSERT_EQ(mixed_reconstructed.Size(), mixed_full.Size()) | EXPECT_DOUBLE_EQ(mixed_reconstructed[index], mixed_full[index]) | ASSERT_TRUE(all.HasValue()) | ASSERT_EQ(all_reconstructed.Size(), 24U) | EXPECT_DOUBLE_EQ(all_reconstructed[node * 6U + component], node + 1.0) ASSERT_TRUE(none.HasValue()) | ASSERT_TRUE(mixed.HasValue()) | ASSERT_EQ(mixed_reconstructed.Size(), mixed_full.Size()) | EXPECT_DOUBLE_EQ(mixed_reconstructed[index], mixed_full[index]) | ASSERT_TRUE(all.HasValue()) | ASSERT_EQ(all_reconstructed.Size(), 24U) | EXPECT_DOUBLE_EQ(all_reconstructed[node * 6U + component], node + 1.0) -Dev tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.ReconstructsNonzeroPrescribedValues EssentialConstraints.ReconstructsNonzeroPrescribedValues; assertion 12개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.ReconstructsNonzeroPrescribedValues 유지 원문 검사 body 및 assertion 동일. 38aa54591420c254c738c4a4c26e333f8bfdf17f2f7e937f55b241729d5668fb 38aa54591420c254c738c4a4c26e333f8bfdf17f2f7e937f55b241729d5668fb EXPECT_EQ(free.Size(), 4U) | EXPECT_DOUBLE_EQ(free[0U], 10.0) | EXPECT_DOUBLE_EQ(free[1U], 20.0) | EXPECT_DOUBLE_EQ(free[2U], 30.0) | EXPECT_DOUBLE_EQ(free[3U], 40.0) | EXPECT_EQ(constrained.Size(), 2U) | EXPECT_DOUBLE_EQ(constrained[0U], 2.5) | EXPECT_DOUBLE_EQ(constrained[1U], -3.25) | EXPECT_EQ(constrained[0U], dofs.PrescribedValues()[0U]) | EXPECT_EQ(constrained[1U], dofs.PrescribedValues()[1U]) | ASSERT_EQ(reconstructed.Size(), full.Size()) | EXPECT_DOUBLE_EQ(reconstructed[index], full[index]) EXPECT_EQ(free.Size(), 4U) | EXPECT_DOUBLE_EQ(free[0U], 10.0) | EXPECT_DOUBLE_EQ(free[1U], 20.0) | EXPECT_DOUBLE_EQ(free[2U], 30.0) | EXPECT_DOUBLE_EQ(free[3U], 40.0) | EXPECT_EQ(constrained.Size(), 2U) | EXPECT_DOUBLE_EQ(constrained[0U], 2.5) | EXPECT_DOUBLE_EQ(constrained[1U], -3.25) | EXPECT_EQ(constrained[0U], dofs.PrescribedValues()[0U]) | EXPECT_EQ(constrained[1U], dofs.PrescribedValues()[1U]) | ASSERT_EQ(reconstructed.Size(), full.Size()) | EXPECT_DOUBLE_EQ(reconstructed[index], full[index]) -Dev tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.RejectsDimensionOrOrderMismatch EssentialConstraints.RejectsDimensionOrOrderMismatch; assertion 9개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.RejectsDimensionOrOrderMismatch 유지 원문 검사 body 및 assertion 동일. fc0cc64c86498e9c8468b6ad373ac9e32ec0bca9361615ae3f974df070dab2cf fc0cc64c86498e9c8468b6ad373ac9e32ec0bca9361615ae3f974df070dab2cf "ASSERT_FALSE(wrong_dimension.HasValue()) | EXPECT_EQ(wrong_dimension.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(wrong_dimension.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(wrong_dimension.GetStatus().Diagnostics()[0U].code, ""invalid-constraint-dimensions"") | ASSERT_FALSE(wrong_order.HasValue()) | EXPECT_EQ(wrong_order.GetStatus().Diagnostics()[0U].code, ""invalid-constraint-dimensions"") | EXPECT_THROW(static_cast(policy.GatherFree(fesa::Vector{5U}, dofs)), std::invalid_argument) | EXPECT_THROW( static_cast(policy.GatherConstrained(fesa::Vector{7U}, dofs)), std::invalid_argument) | EXPECT_THROW(static_cast(policy.ReconstructFull( fesa::Vector{4U}, fesa::Vector{2U}, dofs)), std::invalid_argument)" "ASSERT_FALSE(wrong_dimension.HasValue()) | EXPECT_EQ(wrong_dimension.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(wrong_dimension.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(wrong_dimension.GetStatus().Diagnostics()[0U].code, ""invalid-constraint-dimensions"") | ASSERT_FALSE(wrong_order.HasValue()) | EXPECT_EQ(wrong_order.GetStatus().Diagnostics()[0U].code, ""invalid-constraint-dimensions"") | EXPECT_THROW(static_cast(policy.GatherFree(fesa::Vector{5U}, dofs)), std::invalid_argument) | EXPECT_THROW( static_cast(policy.GatherConstrained(fesa::Vector{7U}, dofs)), std::invalid_argument) | EXPECT_THROW(static_cast(policy.ReconstructFull( fesa::Vector{4U}, fesa::Vector{2U}, dofs)), std::invalid_argument)" -Dev tests/unit/constraints/essential_constraints_test.cpp support@1-119 helper/oracle/fixture/include/static assertion 구간: MakeDofs, MakeShellSizedDofs, MakeMatrix, SequentialDense, ExpectShape tests/unit/constraints/essential_constraints_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c602591b393576ff60645484d498b40d49ed261333bf24372248afc863e80d03 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/constraints/essential_constraints_test.cpp support@196-197 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/constraints/essential_constraints_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f6c2b9c304b34fa866abe406a7be1ab65a57b15b93aee4428636ed4eaa067081 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/core/ascii_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/core/ascii_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b26eaed43661b405fda69e4a287f40ce7f0d5efd2f7ff7aa0459cf32dd802ae4 25872dbd7f04fbdb796adecf712db87424f628615095e50d25e86d7ff05d70f1 해당 없음 해당 없음 -Dev tests/unit/core/ascii_test.cpp Ascii.LowercasesOnlyAsciiUppercaseBytes Ascii.LowercasesOnlyAsciiUppercaseBytes; assertion 5개 tests/unit/core/ascii_test.cpp Ascii.LowercasesOnlyAsciiUppercaseBytes 유지 원문 검사 body 및 assertion 동일. 909d024cf51f4c78bfbfbc0f844a4deb4d7995a1359e245bab03859c6a3f9dde 909d024cf51f4c78bfbfbc0f844a4deb4d7995a1359e245bab03859c6a3f9dde EXPECT_EQ(fesa::AsciiLower('A'), 'a') | EXPECT_EQ(fesa::AsciiLower('Z'), 'z') | EXPECT_EQ(fesa::AsciiLower('a'), 'a') | EXPECT_EQ(fesa::AsciiLower('0'), '0') | EXPECT_EQ(fesa::AsciiLower(non_ascii), non_ascii) EXPECT_EQ(fesa::AsciiLower('A'), 'a') | EXPECT_EQ(fesa::AsciiLower('Z'), 'z') | EXPECT_EQ(fesa::AsciiLower('a'), 'a') | EXPECT_EQ(fesa::AsciiLower('0'), '0') | EXPECT_EQ(fesa::AsciiLower(non_ascii), non_ascii) -Dev tests/unit/core/ascii_test.cpp Ascii.ComparesNamesWithoutLocaleOrUnicodeFolding Ascii.ComparesNamesWithoutLocaleOrUnicodeFolding; assertion 3개 tests/unit/core/ascii_test.cpp Ascii.ComparesNamesWithoutLocaleOrUnicodeFolding 유지 원문 검사 body 및 assertion 동일. 3db876d5e00670ef938aa3f78a4b4841b4aa9eb02bf470d659053719c7a47c27 3db876d5e00670ef938aa3f78a4b4841b4aa9eb02bf470d659053719c7a47c27 "EXPECT_TRUE(fesa::AsciiCaseInsensitiveEquals(""Beam-1"", ""bEaM-1"")) | EXPECT_FALSE(fesa::AsciiCaseInsensitiveEquals(""Beam-1"", ""Beam-10"")) | EXPECT_FALSE( fesa::AsciiCaseInsensitiveEquals(uppercase_byte, lowercase_byte))" "EXPECT_TRUE(fesa::AsciiCaseInsensitiveEquals(""Beam-1"", ""bEaM-1"")) | EXPECT_FALSE(fesa::AsciiCaseInsensitiveEquals(""Beam-1"", ""Beam-10"")) | EXPECT_FALSE( fesa::AsciiCaseInsensitiveEquals(uppercase_byte, lowercase_byte))" -Dev tests/unit/core/ascii_test.cpp Ascii.ParsesOnlyCompletePositiveBaseTenSourceLabels Ascii.ParsesOnlyCompletePositiveBaseTenSourceLabels; assertion 11개 tests/unit/core/ascii_test.cpp Ascii.ParsesOnlyCompletePositiveBaseTenSourceLabels 유지 원문 검사 body 및 assertion 동일. 5770a5761723357706fadea333c7cf6c288511a29681077cb3f914cb4a236bf4 5770a5761723357706fadea333c7cf6c288511a29681077cb3f914cb4a236bf4 "ASSERT_TRUE(one.HasValue()) | EXPECT_EQ(one.Value(), 1) | ASSERT_TRUE(leading_zeroes.HasValue()) | EXPECT_EQ(leading_zeroes.Value(), 42) | ASSERT_TRUE(maximum.HasValue()) | EXPECT_EQ(maximum.Value(), (std::numeric_limits::max)()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-source-label"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].entity_identity, invalid)" "ASSERT_TRUE(one.HasValue()) | EXPECT_EQ(one.Value(), 1) | ASSERT_TRUE(leading_zeroes.HasValue()) | EXPECT_EQ(leading_zeroes.Value(), 42) | ASSERT_TRUE(maximum.HasValue()) | EXPECT_EQ(maximum.Value(), (std::numeric_limits::max)()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-source-label"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].entity_identity, invalid)" -Dev tests/unit/core/ascii_test.cpp support@1-9 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/core/ascii_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 92beb48f1d8771676e841d9c0e884cace86bb18b98dbe9a629f21fa1d9e0bc9e 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/core/diagnostic_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/core/diagnostic_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 440becb7f8e8ffe6db9b32b757b08a56baea19da46808dc42c426e0f9edb14e5 440becb7f8e8ffe6db9b32b757b08a56baea19da46808dc42c426e0f9edb14e5 해당 없음 해당 없음 -Dev tests/unit/core/diagnostic_test.cpp CoreDiagnostics.DiagnosticsSortDeterministically CoreDiagnostics.DiagnosticsSortDeterministically; assertion 15개 tests/unit/core/diagnostic_test.cpp CoreDiagnostics.DiagnosticsSortDeterministically 유지 원문 검사 body 및 assertion 동일. 2f659a7cf12be1a5e3e0221806e86f389fb3992907f5bcb4d533d160bbeb90ab 2f659a7cf12be1a5e3e0221806e86f389fb3992907f5bcb4d533d160bbeb90ab "ASSERT_EQ(diagnostics.size(), 7U) | EXPECT_EQ(diagnostics[0].message, ""line"") | EXPECT_EQ(diagnostics[1].message, ""keyword"") | EXPECT_EQ(diagnostics[2].message, ""first-equal"") | EXPECT_EQ(diagnostics[3].message, ""second-equal"") | EXPECT_EQ(diagnostics[4].message, ""code-z"") | EXPECT_EQ(diagnostics[5].message, ""entity-2"") | EXPECT_EQ(diagnostics[6].message, ""file-b"") | EXPECT_EQ(exact.severity, fesa::Severity::kError) | EXPECT_EQ(exact.code, ""a"") | EXPECT_EQ(exact.location.file, std::filesystem::path{""a.inp""}) | EXPECT_EQ(exact.location.line, 3U) | EXPECT_EQ(exact.keyword, ""*NODE"") | EXPECT_EQ(exact.entity_identity, ""I.1"") | EXPECT_EQ(exact.message, ""first-equal"")" "ASSERT_EQ(diagnostics.size(), 7U) | EXPECT_EQ(diagnostics[0].message, ""line"") | EXPECT_EQ(diagnostics[1].message, ""keyword"") | EXPECT_EQ(diagnostics[2].message, ""first-equal"") | EXPECT_EQ(diagnostics[3].message, ""second-equal"") | EXPECT_EQ(diagnostics[4].message, ""code-z"") | EXPECT_EQ(diagnostics[5].message, ""entity-2"") | EXPECT_EQ(diagnostics[6].message, ""file-b"") | EXPECT_EQ(exact.severity, fesa::Severity::kError) | EXPECT_EQ(exact.code, ""a"") | EXPECT_EQ(exact.location.file, std::filesystem::path{""a.inp""}) | EXPECT_EQ(exact.location.line, 3U) | EXPECT_EQ(exact.keyword, ""*NODE"") | EXPECT_EQ(exact.entity_identity, ""I.1"") | EXPECT_EQ(exact.message, ""first-equal"")" -Dev tests/unit/core/diagnostic_test.cpp support@1-25 helper/oracle/fixture/include/static assertion 구간: MakeDiagnostic tests/unit/core/diagnostic_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ae3d439e5440487b75c91d95add36374b3f77363663cdc902e830a9174a669e9 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/core/source_identity_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/core/source_identity_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 601d563a839e0ce63c6a47ddbb4cb2dc60386ecb2483519532e969affe387b85 a6ebba2d2f9e09be684e817e41b14b6572bcce0706d5114c8c8a88f6ac145746 해당 없음 해당 없음 -Dev tests/unit/core/source_identity_test.cpp CoreDiagnostics.SourceIdentityPreservesRawIdentity CoreDiagnostics.SourceIdentityPreservesRawIdentity; assertion 5개 tests/unit/core/source_identity_test.cpp CoreDiagnostics.SourceIdentityPreservesRawIdentity 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0fe861b09827bc7d70b9062d27ca9696e91dd91c1a8d62f2482b3f761915b0a3 f466209fca1d6d1f9aff769f37534515999cf4a71f1da756c95e007d1a1599c3 "EXPECT_EQ(location.file, std::filesystem::path{""models/My Beam.inp""}) | EXPECT_EQ(location.line, 27U) | EXPECT_EQ(identity.instance_name, ""Beam-Instance_A"") | EXPECT_EQ(identity.source_label, 42) | EXPECT_EQ(identity.source_label_text, ""00042"")" "EXPECT_EQ(location.file, std::filesystem::path{""models/My Beam.inp""}) | EXPECT_EQ(location.line, 27U) | EXPECT_EQ(identity.instance_name, ""Beam-Instance_A"") | EXPECT_EQ(identity.source_label, 42) | EXPECT_EQ(identity.source_label_text, ""00042"") | EXPECT_TRUE(fesa::SourceIdentityEquals(identity, identity)) | EXPECT_FALSE(fesa::SourceIdentityEquals( identity, {""beam-instance_a"", std::int64_t{42}, ""00042""})) | EXPECT_FALSE(fesa::SourceIdentityEquals( identity, {""Beam-Instance_A"", std::int64_t{43}, ""00042""})) | EXPECT_FALSE(fesa::SourceIdentityEquals( identity, {""Beam-Instance_A"", std::int64_t{42}, ""42""}))" -Dev tests/unit/core/source_identity_test.cpp support@1-8 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/core/source_identity_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d2c1c5608afd74a75014476a740b7734f890ded534eb9532ad90766dcc16b86a 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/core/status_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/core/status_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5c035458f1d67d43c340b41fa3f4581a1b3b1df2859903ddfa12da838ac7ff69 3cae23bb04187b6d104c3575d24a87daee20f5c1779dfcfd762ef299105aea42 해당 없음 해당 없음 -Dev tests/unit/core/status_test.cpp CoreDiagnostics.ResultEnforcesValueErrorExclusivity CoreDiagnostics.ResultEnforcesValueErrorExclusivity; assertion 21개 tests/unit/core/status_test.cpp CoreDiagnostics.ResultEnforcesValueErrorExclusivity 유지 원문 검사 body 및 assertion 동일. 9e7d9261f2c51e9a1cb0ef57442073618731b3a1867833debe5c3b9d0b064be2 9e7d9261f2c51e9a1cb0ef57442073618731b3a1867833debe5c3b9d0b064be2 "EXPECT_TRUE(ok.IsOk()) | EXPECT_FALSE(ok.Category().has_value()) | EXPECT_TRUE(ok.Diagnostics().empty()) | EXPECT_FALSE(uncategorized.IsOk()) | EXPECT_FALSE(uncategorized.Category().has_value()) | ASSERT_EQ(uncategorized.Diagnostics().size(), 1U) | EXPECT_EQ(uncategorized.Diagnostics()[0].code, ""invalid-beam-length"") | EXPECT_FALSE(categorized.IsOk()) | ASSERT_TRUE(categorized.Category().has_value()) | EXPECT_EQ(*categorized.Category(), fesa::FailureCategory::kModel) | EXPECT_TRUE(success.HasValue()) | EXPECT_TRUE(success.GetStatus().IsOk()) | EXPECT_EQ(success.Value(), ""solved"") | EXPECT_EQ(copied.Value(), ""solved"") | EXPECT_EQ(moved.Value(), ""solved"") | EXPECT_FALSE(failure.HasValue()) | EXPECT_FALSE(failure.GetStatus().IsOk()) | EXPECT_EQ(failure.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_THROW(failure.Value(), std::logic_error) | EXPECT_THROW(const_failure.Value(), std::logic_error) | EXPECT_THROW((void)fesa::Result::Failure(fesa::Status::Ok()), std::invalid_argument)" "EXPECT_TRUE(ok.IsOk()) | EXPECT_FALSE(ok.Category().has_value()) | EXPECT_TRUE(ok.Diagnostics().empty()) | EXPECT_FALSE(uncategorized.IsOk()) | EXPECT_FALSE(uncategorized.Category().has_value()) | ASSERT_EQ(uncategorized.Diagnostics().size(), 1U) | EXPECT_EQ(uncategorized.Diagnostics()[0].code, ""invalid-beam-length"") | EXPECT_FALSE(categorized.IsOk()) | ASSERT_TRUE(categorized.Category().has_value()) | EXPECT_EQ(*categorized.Category(), fesa::FailureCategory::kModel) | EXPECT_TRUE(success.HasValue()) | EXPECT_TRUE(success.GetStatus().IsOk()) | EXPECT_EQ(success.Value(), ""solved"") | EXPECT_EQ(copied.Value(), ""solved"") | EXPECT_EQ(moved.Value(), ""solved"") | EXPECT_FALSE(failure.HasValue()) | EXPECT_FALSE(failure.GetStatus().IsOk()) | EXPECT_EQ(failure.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_THROW(failure.Value(), std::logic_error) | EXPECT_THROW(const_failure.Value(), std::logic_error) | EXPECT_THROW((void)fesa::Result::Failure(fesa::Status::Ok()), std::invalid_argument)" -Dev tests/unit/core/status_test.cpp support@1-23 helper/oracle/fixture/include/static assertion 구간: ModelDiagnostic tests/unit/core/status_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f1984a10d2ad68533d1189e8e10140c63e153857bb4df27e6279f8ad7345c9ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/element_factory_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/elements/element_factory_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 26a556dd970ee14c9fefbdcdfabb78eae52ccf0edbeda4940c2657488459d3f0 39cdff0a92b9a86f0efe54457c47f57bb8fa0a48887eae940198046c8f5249f0 해당 없음 해당 없음 -Dev tests/unit/elements/element_factory_test.cpp ElementFactory.CreatesBeamWithStableLayoutStiffnessAndRecovery ElementFactory.CreatesBeamWithStableLayoutStiffnessAndRecovery; assertion 21개 tests/unit/elements/element_factory_test.cpp ElementFactory.CreatesBeamWithStableLayoutStiffnessAndRecovery 유지 원문 검사 body 및 assertion 동일. 6ea821d717c92f195c2f3d8cac87a3f58f9db2377459cd40674d113374366e34 6ea821d717c92f195c2f3d8cac87a3f58f9db2377459cd40674d113374366e34 "EXPECT_NE(probe, nullptr) | EXPECT_TRUE(destroyed) | ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(candidate.Value(), nullptr) | EXPECT_EQ(layout.source_id.source_label_text, ""7"") | EXPECT_EQ(layout.node_indices, (std::vector{0U, 1U})) | EXPECT_EQ(layout.components_per_node, (std::vector{ fesa::DofComponent::kUx, fesa::DofComponent::kUy, fesa::DofComponent::kUz, fesa::DofComponent::kUrx, fesa::DofComponent::kUry, fesa::DofComponent::kUrz})) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_EQ(stiffness.Value().layout.node_indices, layout.node_indices) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_id.source_label_text, ""7"") | ASSERT_TRUE(std::holds_alternative( result.Value().payload)) | ASSERT_EQ(rows.endpoint_rows.size(), 2U) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[0U].end_action[0U], -10.0) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[1U].end_action[0U], 10.0) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[0U].section_resultant[0U], 10.0) | EXPECT_EQ(rows.endpoint_rows[0U].node.source_label_text, ""1"") | EXPECT_EQ(rows.endpoint_rows[1U].node.source_label_text, ""2"") | EXPECT_EQ(rows.gauss_rows.size(), 2U) | EXPECT_EQ(rows.stress_rows.size(), 2U)" "EXPECT_NE(probe, nullptr) | EXPECT_TRUE(destroyed) | ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(candidate.Value(), nullptr) | EXPECT_EQ(layout.source_id.source_label_text, ""7"") | EXPECT_EQ(layout.node_indices, (std::vector{0U, 1U})) | EXPECT_EQ(layout.components_per_node, (std::vector{ fesa::DofComponent::kUx, fesa::DofComponent::kUy, fesa::DofComponent::kUz, fesa::DofComponent::kUrx, fesa::DofComponent::kUry, fesa::DofComponent::kUrz})) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_EQ(stiffness.Value().layout.node_indices, layout.node_indices) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_id.source_label_text, ""7"") | ASSERT_TRUE(std::holds_alternative( result.Value().payload)) | ASSERT_EQ(rows.endpoint_rows.size(), 2U) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[0U].end_action[0U], -10.0) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[1U].end_action[0U], 10.0) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[0U].section_resultant[0U], 10.0) | EXPECT_EQ(rows.endpoint_rows[0U].node.source_label_text, ""1"") | EXPECT_EQ(rows.endpoint_rows[1U].node.source_label_text, ""2"") | EXPECT_EQ(rows.gauss_rows.size(), 2U) | EXPECT_EQ(rows.stress_rows.size(), 2U)" -Dev tests/unit/elements/element_factory_test.cpp ElementFactory.CreatesMitc4WithStableLayoutStiffnessAndRecovery ElementFactory.CreatesMitc4WithStableLayoutStiffnessAndRecovery; assertion 15개 tests/unit/elements/element_factory_test.cpp ElementFactory.CreatesMitc4WithStableLayoutStiffnessAndRecovery 유지 원문 검사 body 및 assertion 동일. 998ad7873f34e6ae9b95cc403602d8c995903164d6857c4952be354731aa6645 998ad7873f34e6ae9b95cc403602d8c995903164d6857c4952be354731aa6645 ASSERT_EQ(domain.Elements().Size(), 2U) | ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(candidate.Value(), nullptr) | EXPECT_EQ(element->DofLayout().node_indices, (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(element->DofLayout().components_per_node.size(), 6U) | ASSERT_TRUE(stiffness.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(direct_stiffness.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(std::holds_alternative( result.Value().payload)) | ASSERT_EQ(rows.rows.size(), 4U) | EXPECT_DOUBLE_EQ(rows.physical_strain_energy, 0.0) | EXPECT_EQ(rows.rows[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(rows.rows[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(row.element, fesa::EntityIndex{1U}) ASSERT_EQ(domain.Elements().Size(), 2U) | ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(candidate.Value(), nullptr) | EXPECT_EQ(element->DofLayout().node_indices, (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(element->DofLayout().components_per_node.size(), 6U) | ASSERT_TRUE(stiffness.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(direct_stiffness.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(std::holds_alternative( result.Value().payload)) | ASSERT_EQ(rows.rows.size(), 4U) | EXPECT_DOUBLE_EQ(rows.physical_strain_energy, 0.0) | EXPECT_EQ(rows.rows[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(rows.rows[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(row.element, fesa::EntityIndex{1U}) -Dev tests/unit/elements/element_factory_test.cpp ElementFactory.OwnerBuildsNonOwningViewInStableElementOrder ElementFactory.OwnerBuildsNonOwningViewInStableElementOrder; assertion 7개 tests/unit/elements/element_factory_test.cpp ElementFactory.OwnerBuildsNonOwningViewInStableElementOrder 유지 원문 검사 body 및 assertion 동일. 11cc51a03beb75fe145b0865b12fb782a7bea43f352e46f4c198462f397e1196 11cc51a03beb75fe145b0865b12fb782a7bea43f352e46f4c198462f397e1196 "ASSERT_TRUE(beam.HasValue()) | ASSERT_TRUE(shell.HasValue()) | ASSERT_EQ(view.size(), 2U) | EXPECT_EQ(&view[0U].get(), owner[0U].get()) | EXPECT_EQ(&view[1U].get(), owner[1U].get()) | EXPECT_EQ(view[0U].get().DofLayout().source_id.source_label_text, ""7"") | EXPECT_EQ(view[1U].get().DofLayout().source_id.source_label_text, ""9"")" "ASSERT_TRUE(beam.HasValue()) | ASSERT_TRUE(shell.HasValue()) | ASSERT_EQ(view.size(), 2U) | EXPECT_EQ(&view[0U].get(), owner[0U].get()) | EXPECT_EQ(&view[1U].get(), owner[1U].get()) | EXPECT_EQ(view[0U].get().DofLayout().source_id.source_label_text, ""7"") | EXPECT_EQ(view[1U].get().DofLayout().source_id.source_label_text, ""9"")" -Dev tests/unit/elements/element_factory_test.cpp ElementFactory.RejectsUnknownAndIncompatibleDefinitions ElementFactory.RejectsUnknownAndIncompatibleDefinitions; assertion 1개 tests/unit/elements/element_factory_test.cpp ElementFactory.RejectsUnknownAndIncompatibleDefinitions 유지 원문 검사 body 및 assertion 동일. 0e0b2765c7cebcbf59f6649a659226c9e963c37cf207db198ee2dd0a7a23f2c8 0e0b2765c7cebcbf59f6649a659226c9e963c37cf207db198ee2dd0a7a23f2c8 "EXPECT_EQ(missing_frame_result.GetStatus().Diagnostics()[0U].code, ""missing-shell-frame"")" "EXPECT_EQ(missing_frame_result.GetStatus().Diagnostics()[0U].code, ""missing-shell-frame"")" -Dev tests/unit/elements/element_factory_test.cpp ElementFactory.SolidBindingPreservesThreeComponentsAndReferenceMass ElementFactory.SolidBindingPreservesThreeComponentsAndReferenceMass; assertion 15개 tests/unit/elements/element_factory_test.cpp ElementFactory.SolidBindingPreservesThreeComponentsAndReferenceMass 유지 원문 검사 body 및 assertion 동일. e0459ed0666964dd9f2f6f40d000d99842fe6e79acb14fe683fed56000f054f2 e0459ed0666964dd9f2f6f40d000d99842fe6e79acb14fe683fed56000f054f2 ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(solid, nullptr) | EXPECT_EQ(solid->DofLayout().source_id.source_label, 99) | EXPECT_EQ(solid->DofLayout().components_per_node, (std::vector{fesa::DofComponent::kUx, fesa::DofComponent::kUy, fesa::DofComponent::kUz})) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_EQ(stiffness.Value().values.Rows(), 24U) | ASSERT_TRUE(mass.HasValue()) | ASSERT_EQ(mass.Value().values.Rows(), 24U) | ASSERT_EQ(mass.Value().values.Columns(), 24U) | EXPECT_NEAR(total_mass, 2.0, 1.0e-13) | EXPECT_NEAR(mass.Value().values(row, column), 0.25, 1.0e-15) | EXPECT_DOUBLE_EQ(mass.Value().values(row, column), 0.0) | ASSERT_TRUE(response.HasValue()) | EXPECT_EQ(response.Value().points[point].element, 0U) | EXPECT_EQ(response.Value().points[point].integration_point, point + 1U) ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(solid, nullptr) | EXPECT_EQ(solid->DofLayout().source_id.source_label, 99) | EXPECT_EQ(solid->DofLayout().components_per_node, (std::vector{fesa::DofComponent::kUx, fesa::DofComponent::kUy, fesa::DofComponent::kUz})) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_EQ(stiffness.Value().values.Rows(), 24U) | ASSERT_TRUE(mass.HasValue()) | ASSERT_EQ(mass.Value().values.Rows(), 24U) | ASSERT_EQ(mass.Value().values.Columns(), 24U) | EXPECT_NEAR(total_mass, 2.0, 1.0e-13) | EXPECT_NEAR(mass.Value().values(row, column), 0.25, 1.0e-15) | EXPECT_DOUBLE_EQ(mass.Value().values(row, column), 0.0) | ASSERT_TRUE(response.HasValue()) | EXPECT_EQ(response.Value().points[point].element, 0U) | EXPECT_EQ(response.Value().points[point].integration_point, point + 1U) -Dev tests/unit/elements/element_factory_test.cpp ElementFactory.SolidStaticBindingKeepsAbsentDensityAndRejectsForeignOwner ElementFactory.SolidStaticBindingKeepsAbsentDensityAndRejectsForeignOwner; assertion 6개 tests/unit/elements/element_factory_test.cpp ElementFactory.SolidStaticBindingKeepsAbsentDensityAndRejectsForeignOwner 유지 원문 검사 body 및 assertion 동일. 67e0aa39b78dbefe0e852900de54f14318d5ae806e09ab40348a8798d246bd3f 67e0aa39b78dbefe0e852900de54f14318d5ae806e09ab40348a8798d246bd3f "ASSERT_TRUE(candidate.HasValue()) | EXPECT_TRUE(candidate.Value()->ComputeStiffness().HasValue()) | ASSERT_NE(solid, nullptr) | EXPECT_FALSE(solid->ComputeMass().HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""invalid-element-definition"")" "ASSERT_TRUE(candidate.HasValue()) | EXPECT_TRUE(candidate.Value()->ComputeStiffness().HasValue()) | ASSERT_NE(solid, nullptr) | EXPECT_FALSE(solid->ComputeMass().HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""invalid-element-definition"")" -Dev tests/unit/elements/element_factory_test.cpp ElementFactory.SolidBindingRejectsReferenceInversionWithSourceContext ElementFactory.SolidBindingRejectsReferenceInversionWithSourceContext; assertion 3개 tests/unit/elements/element_factory_test.cpp ElementFactory.SolidBindingRejectsReferenceInversionWithSourceContext 유지 원문 검사 body 및 assertion 동일. ae4abe144881d88e3568e44f6d0bd4559ad3f9fdb401f326a722bbce37b492e7 ae4abe144881d88e3568e44f6d0bd4559ad3f9fdb401f326a722bbce37b492e7 "ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].entity_identity, ""Solid-1:99"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].location.line, 12U)" "ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].entity_identity, ""Solid-1:99"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].location.line, 12U)" -Dev tests/unit/elements/element_factory_test.cpp support@1-203 helper/oracle/fixture/include/static assertion 구간: ShellDefinition, MakeDomain, if, SolidDefinition, ExpectSameMatrix, ExpectModelFailure, UnknownElementDefinition, DestructionProbeElement tests/unit/elements/element_factory_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5df55285ae0fae1c4f738f882bddf024296bcd204b785093108491fe34daed7d 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/euler_beam_3d_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 11개 tests/unit/elements/euler_beam_3d_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 36b1305028805eacc62bf2e85b8abdf3512eb322f1a41429062b810365d79c0f 36b1305028805eacc62bf2e85b8abdf3512eb322f1a41429062b810365d79c0f 해당 없음 해당 없음 -Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.HermiteAndBMatrixMatchReviewedSigns EulerBeam3D.HermiteAndBMatrixMatchReviewedSigns; assertion 8개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.HermiteAndBMatrixMatchReviewedSigns 유지 원문 검사 body 및 assertion 동일. 72cf906f5dc17ad6e999e6805a6067f89c06a80fc3bb6982948a7ea36cfee95d 72cf906f5dc17ad6e999e6805a6067f89c06a80fc3bb6982948a7ea36cfee95d EXPECT_NEAR(recovery.gauss_generalized_strains[point][0U], axial_strain, 1.0e-14) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][1U], twist, 1.0e-14) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][2U], -curvature(w, x), 1.0e-13) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][3U], curvature(v, x), 1.0e-13) | EXPECT_NEAR(recovery.endpoint_section_resultants[0U][2U], material.youngs_modulus * section.i11 * -curvature(w, 0.0), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[1U][2U], material.youngs_modulus * section.i11 * -curvature(w, length), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[0U][3U], material.youngs_modulus * section.i22 * curvature(v, 0.0), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[1U][3U], material.youngs_modulus * section.i22 * curvature(v, length), 1.0e-5) EXPECT_NEAR(recovery.gauss_generalized_strains[point][0U], axial_strain, 1.0e-14) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][1U], twist, 1.0e-14) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][2U], -curvature(w, x), 1.0e-13) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][3U], curvature(v, x), 1.0e-13) | EXPECT_NEAR(recovery.endpoint_section_resultants[0U][2U], material.youngs_modulus * section.i11 * -curvature(w, 0.0), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[1U][2U], material.youngs_modulus * section.i11 * -curvature(w, length), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[0U][3U], material.youngs_modulus * section.i22 * curvature(v, 0.0), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[1U][3U], material.youngs_modulus * section.i22 * curvature(v, length), 1.0e-5) -Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.TwoPointGaussMatchesClosedStiffness EulerBeam3D.TwoPointGaussMatchesClosedStiffness; assertion 2개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.TwoPointGaussMatchesClosedStiffness 유지 원문 검사 body 및 assertion 동일. 5051a070e070c7eae4c852c1ea6f81abc26e94829ee91053d119f37018340643 5051a070e070c7eae4c852c1ea6f81abc26e94829ee91053d119f37018340643 EXPECT_LE(NormalizedMatrixError(actual, closed), kMatrixTolerance) | EXPECT_LE(NormalizedMatrixError(actual, transpose), kMatrixTolerance) EXPECT_LE(NormalizedMatrixError(actual, closed), kMatrixTolerance) | EXPECT_LE(NormalizedMatrixError(actual, transpose), kMatrixTolerance) -Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.HasSixRigidModesRankSixAndPositiveDeformationEnergy EulerBeam3D.HasSixRigidModesRankSixAndPositiveDeformationEnergy; assertion 4개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.HasSixRigidModesRankSixAndPositiveDeformationEnergy 유지 원문 검사 body 및 assertion 동일. 516ae9c2a58b6b19177233b4b31579a5096c950576c35ec6af2ad868dc41b63b 516ae9c2a58b6b19177233b4b31579a5096c950576c35ec6af2ad868dc41b63b EXPECT_LE(normalizedResidual, kRigidTolerance) | EXPECT_EQ(positive_count, 6) | EXPECT_GE(value, -kRigidTolerance * maximum_singular_value) | EXPECT_GT(QuadraticEnergy(stiffness, deformation), 0.0) EXPECT_LE(normalizedResidual, kRigidTolerance) | EXPECT_EQ(positive_count, 6) | EXPECT_GE(value, -kRigidTolerance * maximum_singular_value) | EXPECT_GT(QuadraticEnergy(stiffness, deformation), 0.0) -Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RotatedTransformPreservesWorkAndEnergy EulerBeam3D.RotatedTransformPreservesWorkAndEnergy; assertion 4개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RotatedTransformPreservesWorkAndEnergy 유지 원문 검사 body 및 assertion 동일. bcead48fa3010457278ea1a7c367260ca6fb9d4e01d8f58374fcfeafbd0c653d bcead48fa3010457278ea1a7c367260ca6fb9d4e01d8f58374fcfeafbd0c653d EXPECT_NEAR(dot, row == column ? 1.0 : 0.0, 1.0e-14) | EXPECT_NEAR(Determinant(rotation), 1.0, 1.0e-14) | EXPECT_LE(NormalizedMatrixError(global, expected_global), kMatrixTolerance) | EXPECT_NEAR(recovery.gauss_generalized_strains[0U][0U], (local_displacement[6U] - local_displacement[0U]) / 3.0, 1.0e-14) EXPECT_NEAR(dot, row == column ? 1.0 : 0.0, 1.0e-14) | EXPECT_NEAR(Determinant(rotation), 1.0, 1.0e-14) | EXPECT_LE(NormalizedMatrixError(global, expected_global), kMatrixTolerance) | EXPECT_NEAR(recovery.gauss_generalized_strains[0U][0U], (local_displacement[6U] - local_displacement[0U]) / 3.0, 1.0e-14) -Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.PreservesExactRotatedResultsAcrossVector3Migration EulerBeam3D.PreservesExactRotatedResultsAcrossVector3Migration; assertion 11개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.PreservesExactRotatedResultsAcrossVector3Migration 유지 원문 검사 body 및 assertion 동일. cf0127ac571a9fbf42f03f5ca9df5cb1211781ca31220dd266c7494bd465005b cf0127ac571a9fbf42f03f5ca9df5cb1211781ca31220dd266c7494bd465005b EXPECT_DOUBLE_EQ(delta.Norm(), 3.0) | EXPECT_DOUBLE_EQ(global(0U, 0U), 0x1.65f135da12f68p+28) | EXPECT_DOUBLE_EQ(global(0U, 1U), 0x1.6261c084bda12p+28) | EXPECT_DOUBLE_EQ(global(0U, 2U), 0x1.630ca684bda13p+27) | EXPECT_DOUBLE_EQ(global(4U, 4U), 0x1.068e359b59b58p+22) | EXPECT_DOUBLE_EQ(global(5U, 11U), 0x1.2d14a7ee7ee7bp+22) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][0U], 0x1.1111111111110p-5) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][1U], 0x1.1111111111111p-5) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][2U], -0x1.382425a7d2473p-6) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][3U], -0x1.a9389137b051dp-6) | EXPECT_DOUBLE_EQ(recovery.endpoint_section_resultants[1U][2U], 0x1.525c94a87359fp+17) EXPECT_DOUBLE_EQ(delta.Norm(), 3.0) | EXPECT_DOUBLE_EQ(global(0U, 0U), 0x1.65f135da12f68p+28) | EXPECT_DOUBLE_EQ(global(0U, 1U), 0x1.6261c084bda12p+28) | EXPECT_DOUBLE_EQ(global(0U, 2U), 0x1.630ca684bda13p+27) | EXPECT_DOUBLE_EQ(global(4U, 4U), 0x1.068e359b59b58p+22) | EXPECT_DOUBLE_EQ(global(5U, 11U), 0x1.2d14a7ee7ee7bp+22) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][0U], 0x1.1111111111110p-5) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][1U], 0x1.1111111111111p-5) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][2U], -0x1.382425a7d2473p-6) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][3U], -0x1.a9389137b051dp-6) | EXPECT_DOUBLE_EQ(recovery.endpoint_section_resultants[1U][2U], 0x1.525c94a87359fp+17) -Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.ConstantLineLoadMatchesAllSignedComponents EulerBeam3D.ConstantLineLoadMatchesAllSignedComponents; assertion 5개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.ConstantLineLoadMatchesAllSignedComponents 유지 원문 검사 body 및 assertion 동일. 6d608896998acfb9e31d28e2a9700cc5bfa9f3f273b5de08f201f18d6358f4f5 6d608896998acfb9e31d28e2a9700cc5bfa9f3f273b5de08f201f18d6358f4f5 ASSERT_EQ(equivalent.Size(), expected.size()) | EXPECT_GT(relative_errors[0U], relative_errors[1U]) | EXPECT_GT(relative_errors[1U], relative_errors[2U]) | EXPECT_NEAR( std::log(relative_errors[0U] / relative_errors[1U]) / std::log(2.0), 4.0, 1.0e-8) | EXPECT_NEAR( std::log(relative_errors[1U] / relative_errors[2U]) / std::log(2.0), 4.0, 1.0e-8) ASSERT_EQ(equivalent.Size(), expected.size()) | EXPECT_GT(relative_errors[0U], relative_errors[1U]) | EXPECT_GT(relative_errors[1U], relative_errors[2U]) | EXPECT_NEAR( std::log(relative_errors[0U] / relative_errors[1U]) / std::log(2.0), 4.0, 1.0e-8) | EXPECT_NEAR( std::log(relative_errors[1U] / relative_errors[2U]) / std::log(2.0), 4.0, 1.0e-8) -Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.AnalyticalAxialTorsionAndTwoPlaneBendingRecover EulerBeam3D.AnalyticalAxialTorsionAndTwoPlaneBendingRecover; assertion 2개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.AnalyticalAxialTorsionAndTwoPlaneBendingRecover 유지 원문 검사 body 및 assertion 동일. ec321db32dec17dd4598bb2af11029172b73838ff38e434a120520c4c8a66136 ec321db32dec17dd4598bb2af11029172b73838ff38e434a120520c4c8a66136 EXPECT_NEAR(local_yrecovery.endpoint_section_resultants[1U][3U], 0.0, 1.0e-8) | EXPECT_NEAR(local_zrecovery.endpoint_section_resultants[1U][2U], 0.0, 1.0e-8) EXPECT_NEAR(local_yrecovery.endpoint_section_resultants[1U][3U], 0.0, 1.0e-8) | EXPECT_NEAR(local_zrecovery.endpoint_section_resultants[1U][2U], 0.0, 1.0e-8) -Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RejectsInvalidGeometryAndProperties EulerBeam3D.RejectsInvalidGeometryAndProperties; assertion 5개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RejectsInvalidGeometryAndProperties 유지 원문 검사 body 및 assertion 동일. 84aca3252ee968479adb3ff42de486fae5c3eb0ecfc270ead2f5b7272471a512 84aca3252ee968479adb3ff42de486fae5c3eb0ecfc270ead2f5b7272471a512 EXPECT_EQ(result.GetStatus().Category(), FailureCategory::kModel) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, code) | EXPECT_TRUE(EulerBeam3D::Create(scaled_first, above_threshold, valid_section, valid_material) .HasValue()) | EXPECT_TRUE( EulerBeam3D::Create(origin, unit_x, guide_above_threshold, valid_material) .HasValue()) EXPECT_EQ(result.GetStatus().Category(), FailureCategory::kModel) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, code) | EXPECT_TRUE(EulerBeam3D::Create(scaled_first, above_threshold, valid_section, valid_material) .HasValue()) | EXPECT_TRUE( EulerBeam3D::Create(origin, unit_x, guide_above_threshold, valid_material) .HasValue()) -Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RecoversSectionPointAndDefaultCentroidS11 EulerBeam3D.RecoversSectionPointAndDefaultCentroidS11; assertion 11개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RecoversSectionPointAndDefaultCentroidS11 유지 원문 검사 body 및 assertion 동일. 22288ebdd3e81a891dc0f67b7ce14995403506506faa4cc045838d070fdd22d2 22288ebdd3e81a891dc0f67b7ce14995403506506faa4cc045838d070fdd22d2 "ASSERT_EQ(recovery.stress_points.size(), 4U) | EXPECT_EQ(stress.gauss_point, static_cast(gauss_point + 1U)) | EXPECT_EQ(stress.section_point, point + 1U) | EXPECT_DOUBLE_EQ(stress.x1, x1) | EXPECT_DOUBLE_EQ(stress.x2, x2) | ASSERT_EQ(default_recovery.stress_points.size(), 2U) | EXPECT_EQ(stress.gauss_point, static_cast(gauss_point + 1U)) | EXPECT_EQ(stress.section_point, 0U) | EXPECT_DOUBLE_EQ(stress.x1, 0.0) | EXPECT_DOUBLE_EQ(stress.x2, 0.0) | EXPECT_EQ(stress.source, ""fesa-default"")" "ASSERT_EQ(recovery.stress_points.size(), 4U) | EXPECT_EQ(stress.gauss_point, static_cast(gauss_point + 1U)) | EXPECT_EQ(stress.section_point, point + 1U) | EXPECT_DOUBLE_EQ(stress.x1, x1) | EXPECT_DOUBLE_EQ(stress.x2, x2) | ASSERT_EQ(default_recovery.stress_points.size(), 2U) | EXPECT_EQ(stress.gauss_point, static_cast(gauss_point + 1U)) | EXPECT_EQ(stress.section_point, 0U) | EXPECT_DOUBLE_EQ(stress.x1, 0.0) | EXPECT_DOUBLE_EQ(stress.x2, 0.0) | EXPECT_EQ(stress.source, ""fesa-default"")" -Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.ReproducesConstantStrainTwistAndCurvaturePatches EulerBeam3D.ReproducesConstantStrainTwistAndCurvaturePatches; assertion 4개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.ReproducesConstantStrainTwistAndCurvaturePatches 유지 원문 검사 body 및 assertion 동일. 4fa6d99d84b69f21604df5fa097dd5c21494f16445f261d75d87e8ebfbccd76e 4fa6d99d84b69f21604df5fa097dd5c21494f16445f261d75d87e8ebfbccd76e EXPECT_NEAR(recovery.equilibrium_end_actions[0U][1U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[0U][2U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[1U][1U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[1U][2U], 0.0, 1.0e-8) EXPECT_NEAR(recovery.equilibrium_end_actions[0U][1U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[0U][2U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[1U][1U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[1U][2U], 0.0, 1.0e-8) -Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.OnePointNegativeControlHasRankFour EulerBeam3D.OnePointNegativeControlHasRankFour; assertion 2개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.OnePointNegativeControlHasRankFour 유지 원문 검사 body 및 assertion 동일. 09b807bbb8c23f7aca5a27cdb8df60f75e866fec3d12dfce52a2c9271fec75da 09b807bbb8c23f7aca5a27cdb8df60f75e866fec3d12dfce52a2c9271fec75da EXPECT_EQ(SymmetricRank(one_point, kRigidTolerance), 4U) | EXPECT_EQ(SymmetricRank(production, kRigidTolerance), 6U) EXPECT_EQ(SymmetricRank(one_point, kRigidTolerance), 4U) | EXPECT_EQ(SymmetricRank(production, kRigidTolerance), 6U) -Dev tests/unit/elements/euler_beam_3d_test.cpp support@1-500 helper/oracle/fixture/include/static assertion 구간: fesa, MakeNode, MakeMaterial, RequireBeam, if, AlignedBeam, MaximumAbsoluteEntry, MatrixIsFinite, NormalizedMatrixError, VectorNorm, QuadraticEnergy, ExpectScaledNear, ExpectRelativeNear, ExpectedClosedStiffness, SymmetricEigenvalues, SymmetricRank, for, count_if, TestOnlyOnePointStiffness, SolveFixedFirstNode, SolveDenseSystem, SolveUniformTransverseCantilever, UniformLoadInteriorDisplacementError, TransformationFromKnownRows, TransposeMultiply, Determinant tests/unit/elements/euler_beam_3d_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8fe565c3a19d57cd6870d3739c431b99fc41c549a91faa396fd25baea0ebb604 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/euler_beam_3d_test.cpp support@1137-1139 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/elements/euler_beam_3d_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/finite_rotation_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/elements/finite_rotation_test.cpp file 이관 원래 3-column inverse identity를 SpatialMomentSO3의 모든 unit-vector solve로 이관한다. 1e-11과 finite 검사를 유지하고 Refactor의 독립 z-axis virtual-work 검사를 함께 남긴다. 6404d4c360ec2cc2779d394442b7ed9dd520ad9a2742394650f50a699619c5af 60399a9c2b20a3752b3f57a1b74807dbb4db0800c7aa8c5ce375375a1f93340f 해당 없음 해당 없음 -Dev tests/unit/elements/finite_rotation_test.cpp FiniteRotation.ZeroCoordinatePreservesInitialFrameAndDirector FiniteRotation.ZeroCoordinatePreservesInitialFrameAndDirector; assertion 2개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.ZeroCoordinatePreservesInitialFrameAndDirector 유지 원문 검사 body 및 assertion 동일. aad5b1d13028179488b58dd96eca0f52247abdd44548c24f6b2a5c67b6a12aa5 aad5b1d13028179488b58dd96eca0f52247abdd44548c24f6b2a5c67b6a12aa5 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().phi, Vector3{}) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().phi, Vector3{}) -Dev tests/unit/elements/finite_rotation_test.cpp FiniteRotation.FiniteCoordinateBuildsProperTriadAndDirector FiniteRotation.FiniteCoordinateBuildsProperTriadAndDirector; assertion 1개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.FiniteCoordinateBuildsProperTriadAndDirector 유지 원문 검사 body 및 assertion 동일. 1013327e87dfbcfd8516fe145e8e8051a97b90d1f4321ff5bdc4f99dbe198e94 1013327e87dfbcfd8516fe145e8e8051a97b90d1f4321ff5bdc4f99dbe198e94 ASSERT_TRUE(result.HasValue()) ASSERT_TRUE(result.HasValue()) -Dev tests/unit/elements/finite_rotation_test.cpp FiniteRotation.GlobalIncrementRebuildsFixedReferenceOrientation FiniteRotation.GlobalIncrementRebuildsFixedReferenceOrientation; assertion 3개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.GlobalIncrementRebuildsFixedReferenceOrientation 유지 원문 검사 body 및 assertion 동일. 069a14c550efe63bd5178dae6e8c3ae73a67dbff8c75ee68d7af81582d3336dd 069a14c550efe63bd5178dae6e8c3ae73a67dbff8c75ee68d7af81582d3336dd ASSERT_TRUE(committed.HasValue()) | ASSERT_TRUE(updated.HasValue()) | EXPECT_EQ(updated.Value().phi, expected_phi) ASSERT_TRUE(committed.HasValue()) | ASSERT_TRUE(updated.HasValue()) | EXPECT_EQ(updated.Value().phi, expected_phi) -Dev tests/unit/elements/finite_rotation_test.cpp FiniteRotation.RejectsCoordinatesInsidePrincipalBranchMargin FiniteRotation.RejectsCoordinatesInsidePrincipalBranchMargin; assertion 5개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.RejectsCoordinatesInsidePrincipalBranchMargin 유지 원문 검사 body 및 assertion 동일. 12de3e3e90b293e3c19a0cc9620342eab8bad27fd9185362bf6aefb4c3c4334d 12de3e3e90b293e3c19a0cc9620342eab8bad27fd9185362bf6aefb4c3c4334d "EXPECT_TRUE(MakeFiniteRotationState(Vector3{pi - 2.0 * margin, 0.0, 0.0}, initial_frame) .HasValue()) | ASSERT_FALSE(ambiguous.HasValue()) | ASSERT_FALSE(ambiguous.GetStatus().IsOk()) | ASSERT_EQ(ambiguous.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(ambiguous.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"")" "EXPECT_TRUE(MakeFiniteRotationState(Vector3{pi - 2.0 * margin, 0.0, 0.0}, initial_frame) .HasValue()) | ASSERT_FALSE(ambiguous.HasValue()) | ASSERT_FALSE(ambiguous.GetStatus().IsOk()) | ASSERT_EQ(ambiguous.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(ambiguous.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"")" -Dev tests/unit/elements/finite_rotation_test.cpp FiniteRotation.JacobiansAreFiniteInverseTransposeAndDerivativeConsistent FiniteRotation.JacobiansAreFiniteInverseTransposeAndDerivativeConsistent; assertion 3개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.JacobiansAreFiniteInverseTransposeAndDerivativeConsistent 이관 원래 3-column inverse identity를 SpatialMomentSO3의 모든 unit-vector solve로 이관한다. 1e-11과 finite 검사를 유지하고 Refactor의 독립 z-axis virtual-work 검사를 함께 남긴다. de23e8a2e899273546a62b6d2d04f9b13ca22c99017a7e110d3680b0f54a2d05 a39013f3e24d31e9ecb14e3117116d4f8be30cb57b65c734d2d81b560719432a EXPECT_TRUE(IsFinite(left_jacobian)) | EXPECT_TRUE(IsFinite(inverse_transpose)) | EXPECT_NEAR(identity(row, column), row == column ? 1.0 : 0.0, 1.0e-11) EXPECT_TRUE(IsFinite(left_jacobian)) | ASSERT_TRUE(solved.HasValue()) | EXPECT_TRUE(std::isfinite(solved.Value().X())) | EXPECT_TRUE(std::isfinite(solved.Value().Y())) | EXPECT_TRUE(std::isfinite(solved.Value().Z())) | EXPECT_NEAR(identity_column[row], row == column ? 1.0 : 0.0, 1.0e-11) | ASSERT_TRUE(spatial.HasValue()) -Dev tests/unit/elements/finite_rotation_test.cpp FiniteRotation.RejectsNonfiniteCoordinatesAndInvalidInitialFrames FiniteRotation.RejectsNonfiniteCoordinatesAndInvalidInitialFrames; assertion 8개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.RejectsNonfiniteCoordinatesAndInvalidInitialFrames 유지 원문 검사 body 및 assertion 동일. 5da1952beb0840c9e5ab9fb79e02c5a2519d977763fb497904b3741c3d2a52d7 5da1952beb0840c9e5ab9fb79e02c5a2519d977763fb497904b3741c3d2a52d7 "ASSERT_FALSE(nonfinite.HasValue()) | ASSERT_EQ(nonfinite.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(nonfinite.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"") | EXPECT_FALSE(MakeFiniteRotationState(Vector3{}, invalid_frame).HasValue()) | ASSERT_TRUE(committed.HasValue()) | ASSERT_FALSE(invalid_increment.HasValue()) | ASSERT_EQ(invalid_increment.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(invalid_increment.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"")" "ASSERT_FALSE(nonfinite.HasValue()) | ASSERT_EQ(nonfinite.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(nonfinite.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"") | EXPECT_FALSE(MakeFiniteRotationState(Vector3{}, invalid_frame).HasValue()) | ASSERT_TRUE(committed.HasValue()) | ASSERT_FALSE(invalid_increment.HasValue()) | ASSERT_EQ(invalid_increment.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(invalid_increment.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"")" -Dev tests/unit/elements/finite_rotation_test.cpp support@1-97 helper/oracle/fixture/include/static assertion 구간: fesa, InitialFrame, Transpose, Multiply, Determinant, IsFinite, if, ExpectMatrixNear, ExpectVectorNear, ExpectProperOrthogonal tests/unit/elements/finite_rotation_test.cpp file-support 유지 원래 3-column inverse identity를 SpatialMomentSO3의 모든 unit-vector solve로 이관한다. 1e-11과 finite 검사를 유지하고 Refactor의 독립 z-axis virtual-work 검사를 함께 남긴다. 214fd606ec176af7e65bf83ad0dd1cdaf0a15c0de6afd34a6fc06b5596dfab88 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/finite_rotation_test.cpp support@227-229 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/elements/finite_rotation_test.cpp file-support 유지 원래 3-column inverse identity를 SpatialMomentSO3의 모든 unit-vector solve로 이관한다. 1e-11과 finite 검사를 유지하고 Refactor의 독립 z-axis virtual-work 검사를 함께 남긴다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/hex8_element_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 35개 tests/unit/elements/hex8_element_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e346ef7775cc96410eacfea1e7e15ecf2b62b6f125a2e475f9e15e3e97e1acaa a80b2714cc9ea75d6b97dead96c8ff8d443812c306278883e54a74d8b4515d40 해당 없음 해당 없음 -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.ExactBrickStiffnessAndRowSumLumpedMass Hex8Element.ExactBrickStiffnessAndRowSumLumpedMass; assertion 7개 tests/unit/elements/hex8_element_test.cpp Hex8Element.ExactBrickStiffnessAndRowSumLumpedMass 유지 원문 검사 body 및 assertion 동일. 4958ab7f7854bb45aa79de051af75399166c78d31010d04061a611e3f1b0af57 4958ab7f7854bb45aa79de051af75399166c78d31010d04061a611e3f1b0af57 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(stiffness.HasValue()) | ASSERT_TRUE(mass.HasValue()) | ASSERT_EQ(k.Rows(), 24U) | ASSERT_EQ(m.Columns(), 24U) | EXPECT_NEAR(k(3 * a + i, 3 * b + j), exact, 2e-12) | EXPECT_NEAR(m(3 * a + i, 3 * b + j), expected_mass, 2e-14) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(stiffness.HasValue()) | ASSERT_TRUE(mass.HasValue()) | ASSERT_EQ(k.Rows(), 24U) | ASSERT_EQ(m.Columns(), 24U) | EXPECT_NEAR(k(3 * a + i, 3 * b + j), exact, 2e-12) | EXPECT_NEAR(m(3 * a + i, 3 * b + j), expected_mass, 2e-14) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.AffineTensorShearAndEightDistinctRecoveryPoints Hex8Element.AffineTensorShearAndEightDistinctRecoveryPoints; assertion 13개 tests/unit/elements/hex8_element_test.cpp Hex8Element.AffineTensorShearAndEightDistinctRecoveryPoints 유지 원문 검사 body 및 assertion 동일. 313b67ab5495cf7f93ddcbf2e7b5060057d3b60bbe619ea1a8bf18aa0c834287 313b67ab5495cf7f93ddcbf2e7b5060057d3b60bbe619ea1a8bf18aa0c834287 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(r.Value().strain_energy, 48.0 * 48.0 * 0.0002, 1e-12) | EXPECT_EQ(p.element, 7U) | EXPECT_EQ(p.integration_point, static_cast(g + 1)) | EXPECT_NEAR(p.strain[3], 0.01, 1e-16) | EXPECT_NEAR(p.cauchy_stress[3], 0.96, 1e-14) | EXPECT_DOUBLE_EQ(p.natural_coordinates[i], natural[i]) | EXPECT_NEAR(p.reference_coordinates[i], natural[i] * static_cast(i + 1U), 2e-15) | EXPECT_LT(r.Value().points[2].natural_coordinates[0], 0.0) | EXPECT_GT(r.Value().points[2].natural_coordinates[1], 0.0) | ASSERT_TRUE(recovered.HasValue()) | EXPECT_EQ(std::get(recovered.Value().payload) .rows.size(), 8U) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(r.Value().strain_energy, 48.0 * 48.0 * 0.0002, 1e-12) | EXPECT_EQ(p.element, 7U) | EXPECT_EQ(p.integration_point, static_cast(g + 1)) | EXPECT_NEAR(p.strain[3], 0.01, 1e-16) | EXPECT_NEAR(p.cauchy_stress[3], 0.96, 1e-14) | EXPECT_DOUBLE_EQ(p.natural_coordinates[i], natural[i]) | EXPECT_NEAR(p.reference_coordinates[i], natural[i] * static_cast(i + 1U), 2e-15) | EXPECT_LT(r.Value().points[2].natural_coordinates[0], 0.0) | EXPECT_GT(r.Value().points[2].natural_coordinates[1], 0.0) | ASSERT_TRUE(recovered.HasValue()) | EXPECT_EQ(std::get(recovered.Value().payload) .rows.size(), 8U) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.UniformTranslationHasExactlyZeroLinearForceAndEnergy Hex8Element.UniformTranslationHasExactlyZeroLinearForceAndEnergy; assertion 6개 tests/unit/elements/hex8_element_test.cpp Hex8Element.UniformTranslationHasExactlyZeroLinearForceAndEnergy 유지 원문 검사 body 및 assertion 동일. d26359e5ed35c184732756cded1c265d5d66185d9350490c6338e407985d9af7 d26359e5ed35c184732756cded1c265d5d66185d9350490c6338e407985d9af7 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_EQ(response.Value().strain_energy, 0.0) | EXPECT_EQ(response.Value().internal_force[i], 0.0) | EXPECT_EQ(point.strain[i], 0.0) | EXPECT_EQ(point.cauchy_stress[i], 0.0) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_EQ(response.Value().strain_energy, 0.0) | EXPECT_EQ(response.Value().internal_force[i], 0.0) | EXPECT_EQ(point.strain[i], 0.0) | EXPECT_EQ(point.cauchy_stress[i], 0.0) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.LinearResponseIsUnchangedByExactlyRepresentableTranslation Hex8Element.LinearResponseIsUnchangedByExactlyRepresentableTranslation; assertion 7개 tests/unit/elements/hex8_element_test.cpp Hex8Element.LinearResponseIsUnchangedByExactlyRepresentableTranslation 유지 원문 검사 body 및 assertion 동일. b6369e091941f9510897d937e44e5aea48b57bb6b78b0075ad1061ff7a9de3ab b6369e091941f9510897d937e44e5aea48b57bb6b78b0075ad1061ff7a9de3ab ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(translated.HasValue()) | EXPECT_EQ(translated.Value().strain_energy, original.Value().strain_energy) | EXPECT_EQ(translated.Value().internal_force[i], original.Value().internal_force[i]) | EXPECT_EQ(translated.Value().points[g].strain, original.Value().points[g].strain) | EXPECT_EQ(translated.Value().points[g].cauchy_stress, original.Value().points[g].cauchy_stress) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(translated.HasValue()) | EXPECT_EQ(translated.Value().strain_energy, original.Value().strain_energy) | EXPECT_EQ(translated.Value().internal_force[i], original.Value().internal_force[i]) | EXPECT_EQ(translated.Value().points[g].strain, original.Value().points[g].strain) | EXPECT_EQ(translated.Value().points[g].cauchy_stress, original.Value().points[g].cauchy_stress) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.TinySignedAffineStretchRetainsStvkStressForceAndEnergy Hex8Element.TinySignedAffineStretchRetainsStvkStressForceAndEnergy; assertion 8개 tests/unit/elements/hex8_element_test.cpp Hex8Element.TinySignedAffineStretchRetainsStvkStressForceAndEnergy 유지 원문 검사 body 및 assertion 동일. 78a9f3a03973517e375627e6db91c92f87055a4a578afaad01162ecd40bb8807 78a9f3a03973517e375627e6db91c92f87055a4a578afaad01162ecd40bb8807 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, expected_energy, 1e-12 * expected_energy) | EXPECT_NEAR(point.strain[0], green, 1e-12 * std::abs(green)) | EXPECT_NEAR(point.cauchy_stress[0], (1.0 + stretch) * sxx, 1e-12 * std::abs(sxx)) | EXPECT_NEAR(point.cauchy_stress[1], syy / (1.0 + stretch), 1e-12 * std::abs(syy)) | EXPECT_NEAR(point.cauchy_stress[2], syy / (1.0 + stretch), 1e-12 * std::abs(syy)) | EXPECT_NEAR(response.Value().internal_force[3U * a + i], expected[i], 1e-12 * std::abs(expected[i])) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, expected_energy, 1e-12 * expected_energy) | EXPECT_NEAR(point.strain[0], green, 1e-12 * std::abs(green)) | EXPECT_NEAR(point.cauchy_stress[0], (1.0 + stretch) * sxx, 1e-12 * std::abs(sxx)) | EXPECT_NEAR(point.cauchy_stress[1], syy / (1.0 + stretch), 1e-12 * std::abs(syy)) | EXPECT_NEAR(point.cauchy_stress[2], syy / (1.0 + stretch), 1e-12 * std::abs(syy)) | EXPECT_NEAR(response.Value().internal_force[3U * a + i], expected[i], 1e-12 * std::abs(expected[i])) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.FiniteRigidRotationHasZeroGreenEnergyAndForce Hex8Element.FiniteRigidRotationHasZeroGreenEnergyAndForce; assertion 4개 tests/unit/elements/hex8_element_test.cpp Hex8Element.FiniteRigidRotationHasZeroGreenEnergyAndForce 유지 원문 검사 body 및 assertion 동일. e455a9ed32fdd0e8e47fc3c290a1b727a91e2fa4e8bdaf6fbdc1afcf350feff8 e455a9ed32fdd0e8e47fc3c290a1b727a91e2fa4e8bdaf6fbdc1afcf350feff8 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(r.Value().strain_energy, 0.0, 1e-25) | EXPECT_LT(r.Value().internal_force.Norm(), 1e-11) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(r.Value().strain_energy, 0.0, 1e-25) | EXPECT_LT(r.Value().internal_force.Norm(), 1e-11) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsCollapsedAndInvalidMaterial Hex8Element.RejectsCollapsedAndInvalidMaterial; assertion 3개 tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsCollapsedAndInvalidMaterial 유지 원문 검사 body 및 assertion 동일. f7a6d301ea33b5e96a07e058df286d6cd4862431368a3073a678fb7d25013412 f7a6d301ea33b5e96a07e058df286d6cd4862431368a3073a678fb7d25013412 EXPECT_FALSE(Make(x).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, 0.5).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, -1.0).HasValue()) EXPECT_FALSE(Make(x).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, 0.5).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, -1.0).HasValue()) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.CertifiesPositiveQuadraticAfterSubdivision Hex8Element.CertifiesPositiveQuadraticAfterSubdivision; assertion 3개 tests/unit/elements/hex8_element_test.cpp Hex8Element.CertifiesPositiveQuadraticAfterSubdivision 유지 원문 검사 body 및 assertion 동일. 95b193341de90670eec4e7255153d7dceed178a93f1f64c003a50b742b00a37d 95b193341de90670eec4e7255153d7dceed178a93f1f64c003a50b742b00a37d ASSERT_TRUE(r.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(total, 2.0 * 8.0 * (.1125 + 1.0 / 3.0), 2e-14) ASSERT_TRUE(r.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(total, 2.0 * 8.0 * (.1125 + 1.0 / 3.0), 2e-14) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsInteriorFoldDespiteAll27SamplesAndGaussBeingPositive Hex8Element.RejectsInteriorFoldDespiteAll27SamplesAndGaussBeingPositive; assertion 7개 tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsInteriorFoldDespiteAll27SamplesAndGaussBeingPositive 유지 원문 검사 body 및 assertion 동일. bbc9326a1a8cd88f3825aed2389ec7e1ef842966741646d352f0832789f5d0c2 bbc9326a1a8cd88f3825aed2389ec7e1ef842966741646d352f0832789f5d0c2 "EXPECT_GT(xi * xi - .5 * xi + .0575, 0.0) | EXPECT_LT(.25 * .25 - .5 * .25 + .0575, 0.0) | ASSERT_FALSE(invalid.HasValue()) | EXPECT_NE(invalid.GetStatus().Diagnostics()[0].message.find(""nonpositive""), std::string::npos) | ASSERT_TRUE(valid.HasValue()) | EXPECT_FALSE(valid.Value().EvaluateNonlinear(u).HasValue()) | EXPECT_FALSE(valid.Value().EvaluateLinear(u).HasValue())" "EXPECT_GT(xi * xi - .5 * xi + .0575, 0.0) | EXPECT_LT(.25 * .25 - .5 * .25 + .0575, 0.0) | ASSERT_FALSE(invalid.HasValue()) | EXPECT_NE(invalid.GetStatus().Diagnostics()[0].message.find(""nonpositive""), std::string::npos) | ASSERT_TRUE(valid.HasValue()) | EXPECT_FALSE(valid.Value().EvaluateNonlinear(u).HasValue()) | EXPECT_FALSE(valid.Value().EvaluateLinear(u).HasValue())" -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.UnresolvedZeroInteriorJacobianFailsClosed Hex8Element.UnresolvedZeroInteriorJacobianFailsClosed; assertion 2개 tests/unit/elements/hex8_element_test.cpp Hex8Element.UnresolvedZeroInteriorJacobianFailsClosed 유지 원문 검사 body 및 assertion 동일. 25134743bf7dbd34b8f67e84c1f7410aca7787da7e52867c5219e8fd69b5915a 25134743bf7dbd34b8f67e84c1f7410aca7787da7e52867c5219e8fd69b5915a "ASSERT_FALSE(invalid.HasValue()) | EXPECT_NE(invalid.GetStatus().Diagnostics()[0].message.find(""unresolved""), std::string::npos)" "ASSERT_FALSE(invalid.HasValue()) | EXPECT_NE(invalid.GetStatus().Diagnostics()[0].message.find(""unresolved""), std::string::npos)" -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.TinyUncertainCurrentAdditionCannotBeAccepted Hex8Element.TinyUncertainCurrentAdditionCannotBeAccepted; assertion 2개 tests/unit/elements/hex8_element_test.cpp Hex8Element.TinyUncertainCurrentAdditionCannotBeAccepted 유지 원문 검사 body 및 assertion 동일. 27e5e73c83e4d58b025bd6e1a66cee4ffbee4247950b398ed98dace4cc6cb471 27e5e73c83e4d58b025bd6e1a66cee4ffbee4247950b398ed98dace4cc6cb471 ASSERT_TRUE(valid.HasValue()) | EXPECT_FALSE(valid.Value().EvaluateNonlinear(u).HasValue()) ASSERT_TRUE(valid.HasValue()) | EXPECT_FALSE(valid.Value().EvaluateNonlinear(u).HasValue()) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.SixRigidModesAndZeroStateTangent Hex8Element.SixRigidModesAndZeroStateTangent; assertion 6개 tests/unit/elements/hex8_element_test.cpp Hex8Element.SixRigidModesAndZeroStateTangent 유지 원문 검사 body 및 assertion 동일. 981fc257d430c76b022b6abdc8164538b5b2b0ad71090c5ad34aa8687b2600f4 981fc257d430c76b022b6abdc8164538b5b2b0ad71090c5ad34aa8687b2600f4 ASSERT_TRUE(element.HasValue()) | EXPECT_LT(k.Multiply(u).Norm(), 2e-12) | ASSERT_TRUE(trial.HasValue()) | EXPECT_NEAR(trial.Value().tangent(i, j), k(i, j), 2e-12) | EXPECT_DOUBLE_EQ(trial.Value().geometric_tangent(i, j), 0.0) | EXPECT_NEAR(k(i, j), k(j, i), 2e-12) ASSERT_TRUE(element.HasValue()) | EXPECT_LT(k.Multiply(u).Norm(), 2e-12) | ASSERT_TRUE(trial.HasValue()) | EXPECT_NEAR(trial.Value().tangent(i, j), k(i, j), 2e-12) | EXPECT_DOUBLE_EQ(trial.Value().geometric_tangent(i, j), 0.0) | EXPECT_NEAR(k(i, j), k(j, i), 2e-12) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.RowSumLumpedMassHasAll24PositiveDirectionsAndReferenceInvariance Hex8Element.RowSumLumpedMassHasAll24PositiveDirectionsAndReferenceInvariance; assertion 5개 tests/unit/elements/hex8_element_test.cpp Hex8Element.RowSumLumpedMassHasAll24PositiveDirectionsAndReferenceInvariance 유지 원문 검사 body 및 assertion 동일. 83b4b4951ae0ceb3a1ebba1031cb1b93db157eb11ceafe07c0e9a6efaf526056 83b4b4951ae0ceb3a1ebba1031cb1b93db157eb11ceafe07c0e9a6efaf526056 ASSERT_TRUE(element.HasValue()) | EXPECT_NEAR(mv[a], eigenvalue * v[a], 3e-14) | EXPECT_GT(v.Dot(mv), 0.0) | ASSERT_TRUE(element.Value().EvaluateNonlinear(Affine(Brick(), f)).HasValue()) | EXPECT_DOUBLE_EQ(before(i, j), after(i, j)) ASSERT_TRUE(element.HasValue()) | EXPECT_NEAR(mv[a], eigenvalue * v[a], 3e-14) | EXPECT_GT(v.Dot(mv), 0.0) | ASSERT_TRUE(element.Value().EvaluateNonlinear(Affine(Brick(), f)).HasValue()) | EXPECT_DOUBLE_EQ(before(i, j), after(i, j)) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.GeometryMaterialDensityScalingAndCoordinateCovariance Hex8Element.GeometryMaterialDensityScalingAndCoordinateCovariance; assertion 7개 tests/unit/elements/hex8_element_test.cpp Hex8Element.GeometryMaterialDensityScalingAndCoordinateCovariance 유지 원문 검사 body 및 assertion 동일. 4eb1091302e1a3fe888acb6e43f848406b05514f67e8e607ebebb448e2c3ae33 4eb1091302e1a3fe888acb6e43f848406b05514f67e8e607ebebb448e2c3ae33 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(rotated_element.HasValue()) | ASSERT_TRUE(scaled.HasValue()) | EXPECT_NEAR(kr(3 * a + i, 3 * b + j), oracle, 3e-12) | EXPECT_NEAR(mr(3 * a + i, 3 * b + j), m(3 * a + i, 3 * b + j), 3e-14) | EXPECT_NEAR(ks(3 * a + i, 3 * b + j), 7.5 * k(3 * a + i, 3 * b + j), 3e-11) | EXPECT_NEAR(ms(3 * a + i, 3 * b + j), 5.0 * 15.625 * m(3 * a + i, 3 * b + j), 3e-12) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(rotated_element.HasValue()) | ASSERT_TRUE(scaled.HasValue()) | EXPECT_NEAR(kr(3 * a + i, 3 * b + j), oracle, 3e-12) | EXPECT_NEAR(mr(3 * a + i, 3 * b + j), m(3 * a + i, 3 * b + j), 3e-14) | EXPECT_NEAR(ks(3 * a + i, 3 * b + j), 7.5 * k(3 * a + i, 3 * b + j), 3e-11) | EXPECT_NEAR(ms(3 * a + i, 3 * b + j), 5.0 * 15.625 * m(3 * a + i, 3 * b + j), 3e-12) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedAffinePatchHasExactEnergyAndGlobalCauchyGreenTensors Hex8Element.WarpedAffinePatchHasExactEnergyAndGlobalCauchyGreenTensors; assertion 7개 tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedAffinePatchHasExactEnergyAndGlobalCauchyGreenTensors 유지 원문 검사 body 및 assertion 동일. fe44f6f0a2891d1d47828642165b5b6797671cfe463b004bbb2fb282a442fd8d fe44f6f0a2891d1d47828642165b5b6797671cfe463b004bbb2fb282a442fd8d ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | EXPECT_NEAR(trial.Value().strain_energy, volume * (24.0 * trace * trace + 48.0 * contraction), 2e-12) | EXPECT_NEAR(p.strain[c], green[i][j], 5e-16) | EXPECT_NEAR(p.cauchy_stress[c], sigma[i][j], 8e-14) | EXPECT_NEAR(force[i], 0.0, 5e-13) | EXPECT_NEAR(moment[i], 0.0, 2e-12) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | EXPECT_NEAR(trial.Value().strain_energy, volume * (24.0 * trace * trace + 48.0 * contraction), 2e-12) | EXPECT_NEAR(p.strain[c], green[i][j], 5e-16) | EXPECT_NEAR(p.cauchy_stress[c], sigma[i][j], 8e-14) | EXPECT_NEAR(force[i], 0.0, 5e-13) | EXPECT_NEAR(moment[i], 0.0, 2e-12) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.StrainedRigidRotationPreservesEnergyAndCovariantForceTangent Hex8Element.StrainedRigidRotationPreservesEnergyAndCovariantForceTangent; assertion 6개 tests/unit/elements/hex8_element_test.cpp Hex8Element.StrainedRigidRotationPreservesEnergyAndCovariantForceTangent 유지 원문 검사 body 및 assertion 동일. cdc4257cf115d6d2c10dbdfb298f45077d8821f024dcec44056b2a7a71c3589f cdc4257cf115d6d2c10dbdfb298f45077d8821f024dcec44056b2a7a71c3589f ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | EXPECT_NEAR(rotated.Value().strain_energy, baseline.Value().strain_energy, 3e-12) | EXPECT_NEAR(rotated.Value().internal_force[3 * a + i], expected[i], 3e-12) | EXPECT_NEAR(rotated.Value().tangent(3 * a + i, 3 * b + j), expected_k, 7e-12) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | EXPECT_NEAR(rotated.Value().strain_energy, baseline.Value().strain_energy, 3e-12) | EXPECT_NEAR(rotated.Value().internal_force[3 * a + i], expected[i], 3e-12) | EXPECT_NEAR(rotated.Value().tangent(3 * a + i, 3 * b + j), expected_k, 7e-12) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.EnergyForceAndForceTangentDirectionalStepSweep Hex8Element.EnergyForceAndForceTangentDirectionalStepSweep; assertion 11개 tests/unit/elements/hex8_element_test.cpp Hex8Element.EnergyForceAndForceTangentDirectionalStepSweep 유지 원문 검사 body 및 assertion 동일. c1ac1963af7f68ce46427d45877d677e804ed410b87c23a0a35910fb1386ff55 c1ac1963af7f68ce46427d45877d677e804ed410b87c23a0a35910fb1386ff55 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | ASSERT_TRUE(rp.HasValue()) | ASSERT_TRUE(rm.HasValue()) | EXPECT_LT(energy_error[1], .02 * energy_error[0]) | EXPECT_LT(force_error[1], .02 * force_error[0]) | EXPECT_LT(*std::min_element(energy_error.begin(), energy_error.end()), 1e-7) | EXPECT_LT(*std::min_element(force_error.begin(), force_error.end()), 1e-7) | EXPECT_GT(energy_error.back(), *std::min_element(energy_error.begin(), energy_error.end())) | EXPECT_NEAR(trial.Value().tangent(i, j), trial.Value().tangent(j, i), MaxEntry(trial.Value().tangent) * 2e-14) | EXPECT_DOUBLE_EQ(trial.Value().tangent(i, j), trial.Value().material_tangent(i, j) + trial.Value().geometric_tangent(i, j)) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | ASSERT_TRUE(rp.HasValue()) | ASSERT_TRUE(rm.HasValue()) | EXPECT_LT(energy_error[1], .02 * energy_error[0]) | EXPECT_LT(force_error[1], .02 * force_error[0]) | EXPECT_LT(*std::min_element(energy_error.begin(), energy_error.end()), 1e-7) | EXPECT_LT(*std::min_element(force_error.begin(), force_error.end()), 1e-7) | EXPECT_GT(energy_error.back(), *std::min_element(energy_error.begin(), energy_error.end())) | EXPECT_NEAR(trial.Value().tangent(i, j), trial.Value().tangent(j, i), MaxEntry(trial.Value().tangent) * 2e-14) | EXPECT_DOUBLE_EQ(trial.Value().tangent(i, j), trial.Value().material_tangent(i, j) + trial.Value().geometric_tangent(i, j)) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.TranslatedWarpedLinearResponseRetainsEnergyAndTangentVariation Hex8Element.TranslatedWarpedLinearResponseRetainsEnergyAndTangentVariation; assertion 8개 tests/unit/elements/hex8_element_test.cpp Hex8Element.TranslatedWarpedLinearResponseRetainsEnergyAndTangentVariation 유지 원문 검사 body 및 assertion 동일. 3aee6e7ad64dc19c22977520ef31f2117eb4c6fd4f7fdf4c71fdbc351525e89c 3aee6e7ad64dc19c22977520ef31f2117eb4c6fd4f7fdf4c71fdbc351525e89c ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | ASSERT_NE(derivative, 0.0) | ASSERT_GT(tangent_direction.Norm(), 0.0) | ASSERT_TRUE(rp.HasValue()) | ASSERT_TRUE(rm.HasValue()) | EXPECT_LT(*std::min_element(energy_error.begin(), energy_error.end()), 1e-7) | EXPECT_LT(*std::min_element(force_error.begin(), force_error.end()), 1e-7) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | ASSERT_NE(derivative, 0.0) | ASSERT_GT(tangent_direction.Norm(), 0.0) | ASSERT_TRUE(rp.HasValue()) | ASSERT_TRUE(rm.HasValue()) | EXPECT_LT(*std::min_element(energy_error.begin(), energy_error.end()), 1e-7) | EXPECT_LT(*std::min_element(force_error.begin(), force_error.end()), 1e-7) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.InvalidInputsAndFailedTrialPreservePriorResponseAndReference Hex8Element.InvalidInputsAndFailedTrialPreservePriorResponseAndReference; assertion 23개 tests/unit/elements/hex8_element_test.cpp Hex8Element.InvalidInputsAndFailedTrialPreservePriorResponseAndReference 유지 원문 검사 body 및 assertion 동일. eafc89af7adfd7c0e8325f391adaccb0253f22989cd839d88e804ef1747ba172 eafc89af7adfd7c0e8325f391adaccb0253f22989cd839d88e804ef1747ba172 "EXPECT_FALSE(Make(Brick(), 0.0).HasValue()) | EXPECT_FALSE( Make(Brick(), std::numeric_limits::infinity()).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, std::numeric_limits::quiet_NaN()) .HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, .25, 0.0).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, .25, -1.0).HasValue()) | EXPECT_FALSE( Make(Brick(), 120.0, .25, std::numeric_limits::infinity()) .HasValue()) | EXPECT_FALSE(Make(nonfinite).HasValue()) | ASSERT_TRUE(no_density.HasValue()) | EXPECT_FALSE(no_density.Value().ComputeMass().HasValue()) | ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(accepted.HasValue()) | EXPECT_FALSE(element.Value().EvaluateNonlinear(failed).HasValue()) | EXPECT_FALSE(element.Value().EvaluateLinear(fesa::Vector{23U}).HasValue()) | EXPECT_FALSE(Make(inverted).HasValue()) | ASSERT_TRUE(again.HasValue()) | EXPECT_DOUBLE_EQ(accepted.Value().strain_energy, again.Value().strain_energy) | EXPECT_DOUBLE_EQ(accepted.Value().internal_force[i], again.Value().internal_force[i]) | EXPECT_DOUBLE_EQ(accepted.Value().tangent(i, j), again.Value().tangent(i, j)) | ASSERT_FALSE(failure.HasValue()) | EXPECT_EQ(failure.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_EQ(diagnostic.location.line, 4U) | EXPECT_EQ(diagnostic.keyword, ""C3D8"") | EXPECT_EQ(diagnostic.entity_identity, ""PART-1:42"")" "EXPECT_FALSE(Make(Brick(), 0.0).HasValue()) | EXPECT_FALSE( Make(Brick(), std::numeric_limits::infinity()).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, std::numeric_limits::quiet_NaN()) .HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, .25, 0.0).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, .25, -1.0).HasValue()) | EXPECT_FALSE( Make(Brick(), 120.0, .25, std::numeric_limits::infinity()) .HasValue()) | EXPECT_FALSE(Make(nonfinite).HasValue()) | ASSERT_TRUE(no_density.HasValue()) | EXPECT_FALSE(no_density.Value().ComputeMass().HasValue()) | ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(accepted.HasValue()) | EXPECT_FALSE(element.Value().EvaluateNonlinear(failed).HasValue()) | EXPECT_FALSE(element.Value().EvaluateLinear(fesa::Vector{23U}).HasValue()) | EXPECT_FALSE(Make(inverted).HasValue()) | ASSERT_TRUE(again.HasValue()) | EXPECT_DOUBLE_EQ(accepted.Value().strain_energy, again.Value().strain_energy) | EXPECT_DOUBLE_EQ(accepted.Value().internal_force[i], again.Value().internal_force[i]) | EXPECT_DOUBLE_EQ(accepted.Value().tangent(i, j), again.Value().tangent(i, j)) | ASSERT_FALSE(failure.HasValue()) | EXPECT_EQ(failure.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_EQ(diagnostic.location.line, 4U) | EXPECT_EQ(diagnostic.keyword, ""C3D8"") | EXPECT_EQ(diagnostic.entity_identity, ""PART-1:42"")" -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.InvalidLayoutsAreRejectedBeforeNumericalWork Hex8Element.InvalidLayoutsAreRejectedBeforeNumericalWork; assertion 4개 tests/unit/elements/hex8_element_test.cpp Hex8Element.InvalidLayoutsAreRejectedBeforeNumericalWork 유지 원문 검사 body 및 assertion 동일. a7ca0be993c579446617dabcfc9a712b6f62501b3ac95ccceb134dd90997bee1 a7ca0be993c579446617dabcfc9a712b6f62501b3ac95ccceb134dd90997bee1 EXPECT_FALSE( fesa::Hex8Element::Create(7U, duplicate, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, missing, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, wrong_order, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, rotation, Brick(), material).HasValue()) EXPECT_FALSE( fesa::Hex8Element::Create(7U, duplicate, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, missing, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, wrong_order, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, rotation, Brick(), material).HasValue()) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.LinearStiffnessHasOnlyTheSixRigidNullDirections Hex8Element.LinearStiffnessHasOnlyTheSixRigidNullDirections; assertion 2개 tests/unit/elements/hex8_element_test.cpp Hex8Element.LinearStiffnessHasOnlyTheSixRigidNullDirections 유지 원문 검사 body 및 assertion 동일. 87f05ea3e4d1a7ddcb6193da61ab7d81812977f0bb3598ad5b32781d868650f2 87f05ea3e4d1a7ddcb6193da61ab7d81812977f0bb3598ad5b32781d868650f2 ASSERT_TRUE(element.HasValue()) | ASSERT_GT(value, 0.0) ASSERT_TRUE(element.HasValue()) | ASSERT_GT(value, 0.0) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.NonlinearSmallLoadApproachesLinearResponse Hex8Element.NonlinearSmallLoadApproachesLinearResponse; assertion 6개 tests/unit/elements/hex8_element_test.cpp Hex8Element.NonlinearSmallLoadApproachesLinearResponse 유지 원문 검사 body 및 assertion 동일. 3c2e1d6f5f5b8adf802500e646e7efca6aed2be1a4f2b685d98bc30f7927f326 3c2e1d6f5f5b8adf802500e646e7efca6aed2be1a4f2b685d98bc30f7927f326 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(linear.HasValue()) | EXPECT_NEAR(linear.Value().strain_energy, .5 * u.Dot(k.Multiply(u)), 1e-14) | EXPECT_LT(error[1], .12 * error[0]) | EXPECT_LT(error[2], .12 * error[1]) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(linear.HasValue()) | EXPECT_NEAR(linear.Value().strain_energy, .5 * u.Dot(k.Multiply(u)), 1e-14) | EXPECT_LT(error[1], .12 * error[0]) | EXPECT_LT(error[2], .12 * error[1]) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsUnrepresentableShearAndMassInsteadOfReturningZeros Hex8Element.RejectsUnrepresentableShearAndMassInsteadOfReturningZeros; assertion 3개 tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsUnrepresentableShearAndMassInsteadOfReturningZeros 유지 원문 검사 body 및 assertion 동일. 030f54c1c851716efb795775685d456b6b30de54201b82b51707735e2ce8993e 030f54c1c851716efb795775685d456b6b30de54201b82b51707735e2ce8993e EXPECT_FALSE(Make(Brick(), tiny, .25).HasValue()) | ASSERT_TRUE(element.HasValue()) | EXPECT_FALSE(element.Value().ComputeMass().HasValue()) EXPECT_FALSE(Make(Brick(), tiny, .25).HasValue()) | ASSERT_TRUE(element.HasValue()) | EXPECT_FALSE(element.Value().ComputeMass().HasValue()) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.DirectBulkSurvivesNearNegativePoissonBound Hex8Element.DirectBulkSurvivesNearNegativePoissonBound; assertion 3개 tests/unit/elements/hex8_element_test.cpp Hex8Element.DirectBulkSurvivesNearNegativePoissonBound 유지 원문 검사 body 및 assertion 동일. b409b61a9964e0974b9805bd990ef6c7ff26668ed043b3966161af7cd68927ce b409b61a9964e0974b9805bd990ef6c7ff26668ed043b3966161af7cd68927ce ASSERT_TRUE(element.HasValue()) | EXPECT_GT(1.0 / (3.0 * (1.0 - 2.0 * nu)), 0.0) | EXPECT_TRUE(element.Value().EvaluateLinear(zero).HasValue()) ASSERT_TRUE(element.HasValue()) | EXPECT_GT(1.0 / (3.0 * (1.0 - 2.0 * nu)), 0.0) | EXPECT_TRUE(element.Value().EvaluateLinear(zero).HasValue()) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.OrdinaryNegativePoissonRatioRetainsPositiveVolumetricEnergy Hex8Element.OrdinaryNegativePoissonRatioRetainsPositiveVolumetricEnergy; assertion 4개 tests/unit/elements/hex8_element_test.cpp Hex8Element.OrdinaryNegativePoissonRatioRetainsPositiveVolumetricEnergy 유지 원문 검사 body 및 assertion 동일. b73dc4b5fd199b08ca51058ccbaf627b1e6a18d8977180164595181c99323fb7 b73dc4b5fd199b08ca51058ccbaf627b1e6a18d8977180164595181c99323fb7 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, 48.0 * .5 * bulk * trace * trace, 2e-14) | EXPECT_NEAR(point.cauchy_stress[i], bulk * trace, 2e-14) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, 48.0 * .5 * bulk * trace * trace, 2e-14) | EXPECT_NEAR(point.cauchy_stress[i], bulk * trace, 2e-14) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.FiniteInputsThatOverflowDerivedArithmeticFailClosed Hex8Element.FiniteInputsThatOverflowDerivedArithmeticFailClosed; assertion 10개 tests/unit/elements/hex8_element_test.cpp Hex8Element.FiniteInputsThatOverflowDerivedArithmeticFailClosed 유지 원문 검사 body 및 assertion 동일. 5e6ac7207369709d94127e8b67d20735dc11818d5ff0e03fe463d16a3c34300f 5e6ac7207369709d94127e8b67d20735dc11818d5ff0e03fe463d16a3c34300f "ASSERT_FALSE(bad_material.HasValue()) | EXPECT_NE(bad_material.GetStatus().Diagnostics()[0].message.find(""finite""), std::string::npos) | ASSERT_FALSE(bad_geometry.HasValue()) | EXPECT_NE(bad_geometry.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos) | ASSERT_TRUE(element.HasValue()) | ASSERT_FALSE(bad_mass.HasValue()) | EXPECT_NE(bad_mass.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos) | ASSERT_FALSE(bad_trial.HasValue()) | EXPECT_NE(bad_trial.GetStatus().Diagnostics()[0].message.find(""trial""), std::string::npos) | EXPECT_NE(bad_trial.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos)" "ASSERT_FALSE(bad_material.HasValue()) | EXPECT_NE(bad_material.GetStatus().Diagnostics()[0].message.find(""finite""), std::string::npos) | ASSERT_FALSE(bad_geometry.HasValue()) | EXPECT_NE(bad_geometry.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos) | ASSERT_TRUE(element.HasValue()) | ASSERT_FALSE(bad_mass.HasValue()) | EXPECT_NE(bad_mass.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos) | ASSERT_FALSE(bad_trial.HasValue()) | EXPECT_NE(bad_trial.GetStatus().Diagnostics()[0].message.find(""trial""), std::string::npos) | EXPECT_NE(bad_trial.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos)" -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.BackendOperandRejectionRetainsOriginalStiffnessDiagnostic Hex8Element.BackendOperandRejectionRetainsOriginalStiffnessDiagnostic; assertion 3개 tests/unit/elements/hex8_element_test.cpp Hex8Element.BackendOperandRejectionRetainsOriginalStiffnessDiagnostic 유지 원문 검사 body 및 assertion 동일. 5e5f0b08b76057ba308b8598cfbb4bff467e83ec36a8f2d6a6a4b6ba392773c6 5e5f0b08b76057ba308b8598cfbb4bff467e83ec36a8f2d6a6a4b6ba392773c6 "ASSERT_FALSE(element.HasValue()) | EXPECT_EQ(element.GetStatus().Diagnostics()[0].code, ""invalid-hex8"") | EXPECT_EQ(element.GetStatus().Diagnostics()[0].message, ""Hex8 reference stiffness is nonfinite."")" "ASSERT_FALSE(element.HasValue()) | EXPECT_EQ(element.GetStatus().Diagnostics()[0].code, ""invalid-hex8"") | EXPECT_EQ(element.GetStatus().Diagnostics()[0].message, ""Hex8 reference stiffness is nonfinite."")" -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.TensorFailureRetainsPriorityOverEnergyAndTangentOverflow Hex8Element.TensorFailureRetainsPriorityOverEnergyAndTangentOverflow; assertion 4개 tests/unit/elements/hex8_element_test.cpp Hex8Element.TensorFailureRetainsPriorityOverEnergyAndTangentOverflow 유지 원문 검사 body 및 assertion 동일. 824f69867bc8e222afd9c8430f87581663312e6964833b42fb11af055bc84f84 824f69867bc8e222afd9c8430f87581663312e6964833b42fb11af055bc84f84 "ASSERT_TRUE(element.HasValue()) | ASSERT_FALSE(response.HasValue()) | EXPECT_EQ(response.GetStatus().Diagnostics()[0].code, ""invalid-hex8"") | EXPECT_EQ(response.GetStatus().Diagnostics()[0].message, ""Hex8 trial tensor is nonfinite."")" "ASSERT_TRUE(element.HasValue()) | ASSERT_FALSE(response.HasValue()) | EXPECT_EQ(response.GetStatus().Diagnostics()[0].code, ""invalid-hex8"") | EXPECT_EQ(response.GetStatus().Diagnostics()[0].message, ""Hex8 trial tensor is nonfinite."")" -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedRowSumMassMatchesIndependentNodalIntegralsAndNonuniformEnergy Hex8Element.WarpedRowSumMassMatchesIndependentNodalIntegralsAndNonuniformEnergy; assertion 6개 tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedRowSumMassMatchesIndependentNodalIntegralsAndNonuniformEnergy 유지 원문 검사 body 및 assertion 동일. bf8a73def3fe445aed1d34414e6487babf97967f7a2eee63f30dc54cc56e719b bf8a73def3fe445aed1d34414e6487babf97967f7a2eee63f30dc54cc56e719b ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(actual(3U * a + i, 3U * a + j), i == j ? expected[a] : 0.0, 3e-14) | EXPECT_GT(max_nodal - min_nodal, 1e-4) | EXPECT_NEAR(lumped_energy, independent_energy, 3e-14 * independent_energy) | EXPECT_GT(std::abs(lumped_energy - uniform_energy), 1e-4) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(actual(3U * a + i, 3U * a + j), i == j ? expected[a] : 0.0, 3e-14) | EXPECT_GT(max_nodal - min_nodal, 1e-4) | EXPECT_NEAR(lumped_energy, independent_energy, 3e-14 * independent_energy) | EXPECT_GT(std::abs(lumped_energy - uniform_energy), 1e-4) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedNonaffineQuadratureDifferenceIsQuantifiedAndRefines Hex8Element.WarpedNonaffineQuadratureDifferenceIsQuantifiedAndRefines; assertion 4개 tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedNonaffineQuadratureDifferenceIsQuantifiedAndRefines 유지 원문 검사 body 및 assertion 동일. 5d17d7efabd51400aebc4c48b3b6ce69588a7ceabc7181514c40a0fbc9b85a80 5d17d7efabd51400aebc4c48b3b6ce69588a7ceabc7181514c40a0fbc9b85a80 ASSERT_TRUE(element.HasValue()) | EXPECT_NEAR(.5 * u.Dot(k.Multiply(u)), q2[0], budget * q2[0]) | EXPECT_GT(stiffness_discrepancy, 1e-8) | EXPECT_LT(std::abs(q5[0] - q7[0]), .05 * std::abs(q3[0] - q7[0])) ASSERT_TRUE(element.HasValue()) | EXPECT_NEAR(.5 * u.Dot(k.Multiply(u)), q2[0], budget * q2[0]) | EXPECT_GT(stiffness_discrepancy, 1e-8) | EXPECT_LT(std::abs(q5[0] - q7[0]), .05 * std::abs(q3[0] - q7[0])) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeNonaffinePolynomialEnergyForceHessianAndActualStrain Hex8Element.MeanVolumeNonaffinePolynomialEnergyForceHessianAndActualStrain; assertion 14개 tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeNonaffinePolynomialEnergyForceHessianAndActualStrain 유지 원문 검사 body 및 assertion 동일. 57b07c678307c09776b4d21ca346b44d0c11e07901b38c8ded396f3d1b7a05e4 57b07c678307c09776b4d21ca346b44d0c11e07901b38c8ded396f3d1b7a05e4 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(r.strain_energy, energy, 2e-14) | EXPECT_NEAR(r.internal_force[6] + r.internal_force[18], force, 2e-13) | EXPECT_NEAR(r.tangent(6, 6) + r.tangent(6, 18) + r.tangent(18, 6) + r.tangent(18, 18), hessian, 2e-12) | EXPECT_NEAR(point.strain[0], exx, 2e-15) | EXPECT_NEAR(point.strain[1], eyy, 2e-15) | EXPECT_NEAR(point.strain[3], exy, 2e-15) | EXPECT_NEAR( point.cauchy_stress[0], nonlinear ? (t * t * sxx + 2 * t * c * px * sxy + c * c * px * px * syy) / t : sxx, 2e-13) | EXPECT_NEAR(point.cauchy_stress[1], nonlinear ? syy / t : syy, 2e-13) | EXPECT_NEAR(point.cauchy_stress[2], nonlinear ? szz / t : szz, 2e-13) | EXPECT_NEAR(point.cauchy_stress[3], nonlinear ? (t * sxy + c * px * syy) / t : sxy, 2e-13) | EXPECT_NEAR(k(0, 0), 41.0 / 18, 2e-14) | EXPECT_NEAR(k(0, 1), 19.0 / 30, 2e-14) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(r.strain_energy, energy, 2e-14) | EXPECT_NEAR(r.internal_force[6] + r.internal_force[18], force, 2e-13) | EXPECT_NEAR(r.tangent(6, 6) + r.tangent(6, 18) + r.tangent(18, 6) + r.tangent(18, 18), hessian, 2e-12) | EXPECT_NEAR(point.strain[0], exx, 2e-15) | EXPECT_NEAR(point.strain[1], eyy, 2e-15) | EXPECT_NEAR(point.strain[3], exy, 2e-15) | EXPECT_NEAR( point.cauchy_stress[0], nonlinear ? (t * t * sxx + 2 * t * c * px * sxy + c * c * px * px * syy) / t : sxx, 2e-13) | EXPECT_NEAR(point.cauchy_stress[1], nonlinear ? syy / t : syy, 2e-13) | EXPECT_NEAR(point.cauchy_stress[2], nonlinear ? szz / t : szz, 2e-13) | EXPECT_NEAR(point.cauchy_stress[3], nonlinear ? (t * sxy + c * px * syy) / t : sxy, 2e-13) | EXPECT_NEAR(k(0, 0), 41.0 / 18, 2e-14) | EXPECT_NEAR(k(0, 1), 19.0 / 30, 2e-14) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedStressUsesReferenceWeightedTrace Hex8Element.MeanVolumeWarpedStressUsesReferenceWeightedTrace; assertion 5개 tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedStressUsesReferenceWeightedTrace 유지 원문 검사 body 및 assertion 동일. 59532de38aa69f4c4457d06696198fcd7c2f3a8fa6ff9c031d5167d0997ff48f 59532de38aa69f4c4457d06696198fcd7c2f3a8fa6ff9c031d5167d0997ff48f ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_GT(std::abs(mean - arithmetic), 1e-8) | EXPECT_NEAR((s[0] + s[1] + s[2]) / 3, 80 * mean, 2e-13) | EXPECT_NEAR(response.Value().strain_energy, WarpedQuadratureEnergies(u, 2)[0], 2e-12) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_GT(std::abs(mean - arithmetic), 1e-8) | EXPECT_NEAR((s[0] + s[1] + s[2]) / 3, 80 * mean, 2e-13) | EXPECT_NEAR(response.Value().strain_energy, WarpedQuadratureEnergies(u, 2)[0], 2e-12) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeDirectBulkSupportsBoundsWithoutLambdaOrThreeBulkGuard Hex8Element.MeanVolumeDirectBulkSupportsBoundsWithoutLambdaOrThreeBulkGuard; assertion 9개 tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeDirectBulkSupportsBoundsWithoutLambdaOrThreeBulkGuard 유지 원문 검사 body 및 assertion 동일. c28569a10dbd624762f2603dcbc1fde256d3cb97dba712040d799994fbf19f2f c28569a10dbd624762f2603dcbc1fde256d3cb97dba712040d799994fbf19f2f EXPECT_TRUE( Make(MeanVolumeUnitBrick(), 12, std::nextafter(-1.0, 0.0)).HasValue()) | EXPECT_TRUE( Make(MeanVolumeUnitBrick(), 1, std::nextafter(.5, 0.0)).HasValue()) | ASSERT_TRUE(huge.HasValue()) | ASSERT_TRUE(std::isfinite(direct_bulk)) | ASSERT_FALSE(std::isfinite(3 * direct_bulk)) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, expected, 1e-13 * expected) | EXPECT_FALSE(Make(MeanVolumeUnitBrick(), 1e308, .499).HasValue()) | EXPECT_FALSE(Make(MeanVolumeUnitBrick(), std::numeric_limits::denorm_min(), -.5) .HasValue()) EXPECT_TRUE( Make(MeanVolumeUnitBrick(), 12, std::nextafter(-1.0, 0.0)).HasValue()) | EXPECT_TRUE( Make(MeanVolumeUnitBrick(), 1, std::nextafter(.5, 0.0)).HasValue()) | ASSERT_TRUE(huge.HasValue()) | ASSERT_TRUE(std::isfinite(direct_bulk)) | ASSERT_FALSE(std::isfinite(3 * direct_bulk)) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, expected, 1e-13 * expected) | EXPECT_FALSE(Make(MeanVolumeUnitBrick(), 1e308, .499).HasValue()) | EXPECT_FALSE(Make(MeanVolumeUnitBrick(), std::numeric_limits::denorm_min(), -.5) .HasValue()) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedIndependentEnergyHasCoupledNodeZeroDerivatives Hex8Element.MeanVolumeWarpedIndependentEnergyHasCoupledNodeZeroDerivatives; assertion 9개 tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedIndependentEnergyHasCoupledNodeZeroDerivatives 유지 원문 검사 body 및 assertion 동일. 3b485161230c69549e449fb7f27b5a942570fa036874622b9d715638e65df1e2 3b485161230c69549e449fb7f27b5a942570fa036874622b9d715638e65df1e2 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(paired.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, energy, 2e-12) | EXPECT_NEAR(paired.Value().high.strain_energy, energy, 2e-12) | EXPECT_NEAR(direction.Dot(response.Value().internal_force), df, 2e-10) | EXPECT_NEAR(direction.Dot(paired.Value().high.internal_force), df, 2e-10) | EXPECT_NEAR(direction.Dot(response.Value().tangent.Multiply(direction)), ddf, 2e-8) | EXPECT_NEAR(direction.Dot(paired.Value().high.tangent.Multiply(direction)), ddf, 2e-8) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(paired.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, energy, 2e-12) | EXPECT_NEAR(paired.Value().high.strain_energy, energy, 2e-12) | EXPECT_NEAR(direction.Dot(response.Value().internal_force), df, 2e-10) | EXPECT_NEAR(direction.Dot(paired.Value().high.internal_force), df, 2e-10) | EXPECT_NEAR(direction.Dot(response.Value().tangent.Multiply(direction)), ddf, 2e-8) | EXPECT_NEAR(direction.Dot(paired.Value().high.tangent.Multiply(direction)), ddf, 2e-8) -Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedLowOnlyStateRetainsWeightedCubicEnergy Hex8Element.MeanVolumeWarpedLowOnlyStateRetainsWeightedCubicEnergy; assertion 8개 tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedLowOnlyStateRetainsWeightedCubicEnergy 유지 원문 검사 body 및 assertion 동일. b232e31a9ebe5946b4d1192b8712f0debd77a8a716c425571f5e2c83529bf37b b232e31a9ebe5946b4d1192b8712f0debd77a8a716c425571f5e2c83529bf37b ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(high_only.HasValue()) | EXPECT_EQ(high_only.Value().high.strain_energy, 0) | EXPECT_NEAR(linear.Value().high.strain_energy, quadratic * c * c, 1e-12 * c * c) | EXPECT_NEAR(actual_cubic.high, cubic * c * c * c, 1e-11 * c * c * c) | EXPECT_NE(actual_cubic.high, 0) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(high_only.HasValue()) | EXPECT_EQ(high_only.Value().high.strain_energy, 0) | EXPECT_NEAR(linear.Value().high.strain_energy, quadratic * c * c, 1e-12 * c * c) | EXPECT_NEAR(actual_cubic.high, cubic * c * c * c, 1e-11 * c * c * c) | EXPECT_NE(actual_cubic.high, 0) -Dev tests/unit/elements/hex8_element_test.cpp support@1-50 helper/oracle/fixture/include/static assertion 구간: Brick, Make, GradientProduct tests/unit/elements/hex8_element_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 839b075a0d0eda927ed3a1940c15bef4980783019187ede4daa63b2dd3a9a398 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/hex8_element_test.cpp support@228-268 helper/oracle/fixture/include/static assertion 구간: Rotate, Affine, Warped, QuadraticMap, MaxEntry tests/unit/elements/hex8_element_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 50c481031d1e74a0a358dee1dddea4c0acb477e97c84969072b8a1a3b50d27b2 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/hex8_element_test.cpp support@843-961 helper/oracle/fixture/include/static assertion 구간: LegendreRule, WarpedLumpedMass3x3, for, Cross, WarpedQuadratureEnergies tests/unit/elements/hex8_element_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f67b10e521588921549e46a4ae49bde140f46022a0aff343b4ce97263808d386 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/hex8_element_test.cpp support@1018-1024 helper/oracle/fixture/include/static assertion 구간: MeanVolumeUnitBrick tests/unit/elements/hex8_element_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b1b4b6e8408b50361c87580a49c4b608c96d1d0120b7bdaeea6162789efd43d7 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/hex8_element_test.cpp support@1213-1213 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/hex8_element_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/hex8_high_low_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 29개 tests/unit/elements/hex8_high_low_test.cpp file 이관 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. 893b48807ff3d9b7cb80069df3cca46787af5dfc366f244c726f4bcadf59b451 892dc78a07a9f7eba27df4cb71e9443359920da45fa7dc5795505d36edf0bc75 해당 없음 해당 없음 -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.ScalarCrossProductShortcutMatchesOriginalBits Hex8HighLow.ScalarCrossProductShortcutMatchesOriginalBits; assertion 1개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.ScalarCrossProductShortcutMatchesOriginalBits 유지 원문 검사 body 및 assertion 동일. 55cf32bcacbee69f118d863fd4a1a530ea37fba13ff1262677bdeff80b31ea86 55cf32bcacbee69f118d863fd4a1a530ea37fba13ff1262677bdeff80b31ea86 ASSERT_TRUE(fesa::math_internal::ArithmeticEnvironmentSupported()) ASSERT_TRUE(fesa::math_internal::ArithmeticEnvironmentSupported()) -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.FourColumnMaterialPacketMatchesFrozenScalarBits Hex8HighLow.FourColumnMaterialPacketMatchesFrozenScalarBits; assertion 1개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.FourColumnMaterialPacketMatchesFrozenScalarBits 유지 원문 검사 body 및 assertion 동일. 5dc7a0232796a2ce3e86de363e352e790dec6ab6cdbf1ed5890d426ddeb6c530 5dc7a0232796a2ce3e86de363e352e790dec6ab6cdbf1ed5890d426ddeb6c530 ASSERT_TRUE(fesa::math_internal::ArithmeticEnvironmentSupported()) ASSERT_TRUE(fesa::math_internal::ArithmeticEnvironmentSupported()) -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketSpecialLaneDoesNotChangeOtherColumns Hex8HighLow.PacketSpecialLaneDoesNotChangeOtherColumns; assertion 2개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketSpecialLaneDoesNotChangeOtherColumns 유지 원문 검사 body 및 assertion 동일. 5c7e9b257c3d0da7e9c19cf13dff9c85ea0c6b4c0e9e76eb211e11abc27c6eb7 5c7e9b257c3d0da7e9c19cf13dff9c85ea0c6b4c0e9e76eb211e11abc27c6eb7 EXPECT_EQ(PairBits(actual.values[other].high), PairBits(reference.values[other].high)) | EXPECT_EQ(PairBits(actual.values[other].low), PairBits(reference.values[other].low)) EXPECT_EQ(PairBits(actual.values[other].high), PairBits(reference.values[other].high)) | EXPECT_EQ(PairBits(actual.values[other].low), PairBits(reference.values[other].low)) -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.UniformDyadicPacketsExerciseEachLowZeroShape Hex8HighLow.UniformDyadicPacketsExerciseEachLowZeroShape; assertion 0개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.UniformDyadicPacketsExerciseEachLowZeroShape 유지 원문 검사 body 및 assertion 동일. d1e86044f93bb17fa63cc65d06c3e8e313d0165fa8199610f68334bc6bdd7ef1 d1e86044f93bb17fa63cc65d06c3e8e313d0165fa8199610f68334bc6bdd7ef1 해당 없음 해당 없음 -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.OverflowLaneIsNeutralizedBeforeResidualFma Hex8HighLow.OverflowLaneIsNeutralizedBeforeResidualFma; assertion 6개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.OverflowLaneIsNeutralizedBeforeResidualFma 유지 원문 검사 body 및 assertion 동일. fa110e83b61c2788801a3cca289b80850e2b3147cc1529d01cbe04b376070e8f fa110e83b61c2788801a3cca289b80850e2b3147cc1529d01cbe04b376070e8f ASSERT_EQ(std::fegetenv(&original), 0) | EXPECT_EQ(std::feclearexcept(FE_ALL_EXCEPT), 0) | EXPECT_EQ(std::fesetenv(&original), 0) | EXPECT_FALSE(extra_invalid) | EXPECT_EQ(PairBits(output.values[lane].high), PairBits(expected.values[lane].high)) | EXPECT_EQ(PairBits(output.values[lane].low), PairBits(expected.values[lane].low)) ASSERT_EQ(std::fegetenv(&original), 0) | EXPECT_EQ(std::feclearexcept(FE_ALL_EXCEPT), 0) | EXPECT_EQ(std::fesetenv(&original), 0) | EXPECT_FALSE(extra_invalid) | EXPECT_EQ(PairBits(output.values[lane].high), PairBits(expected.values[lane].high)) | EXPECT_EQ(PairBits(output.values[lane].low), PairBits(expected.values[lane].low)) -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketVectorGuardsPreserveScalarFlagsAndBits Hex8HighLow.PacketVectorGuardsPreserveScalarFlagsAndBits; assertion 0개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketVectorGuardsPreserveScalarFlagsAndBits 유지 원문 검사 body 및 assertion 동일. a2f4b4a4f4474064091b72b522e841f1d8e00a08b554c31cc15e88ad8d18ec7e a2f4b4a4f4474064091b72b522e841f1d8e00a08b554c31cc15e88ad8d18ec7e 해당 없음 해당 없음 -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketTailScreenRetainsExactBoundaryAndFallback Hex8HighLow.PacketTailScreenRetainsExactBoundaryAndFallback; assertion 0개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketTailScreenRetainsExactBoundaryAndFallback 유지 원문 검사 body 및 assertion 동일. 6b884ed1f7b42f80cc7a3fc926f8d6030dd24e04cda644a742b893dd79919a73 6b884ed1f7b42f80cc7a3fc926f8d6030dd24e04cda644a742b893dd79919a73 해당 없음 해당 없음 -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryPacketPreservesAsymmetricLanesAndUniformShapes Hex8HighLow.GeometryPacketPreservesAsymmetricLanesAndUniformShapes; assertion 0개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryPacketPreservesAsymmetricLanesAndUniformShapes 유지 원문 검사 body 및 assertion 동일. 2395f87793a733d9bb9c1e91d28698111bd41292bd0bb0512f29b617eaccbda5 2395f87793a733d9bb9c1e91d28698111bd41292bd0bb0512f29b617eaccbda5 해당 없음 해당 없음 -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryPacketRetainsSpecialLanesAndExactTailBoundary Hex8HighLow.GeometryPacketRetainsSpecialLanesAndExactTailBoundary; assertion 0개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryPacketRetainsSpecialLanesAndExactTailBoundary 유지 원문 검사 body 및 assertion 동일. bbf49f52b871cb317e6e40a9abe3d9a5ffffef8c38ac97b8f9dd5c24343085bc bbf49f52b871cb317e6e40a9abe3d9a5ffffef8c38ac97b8f9dd5c24343085bc 해당 없음 해당 없음 -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryPacketPreservesOrderedOverflowAndPreparedInvalid Hex8HighLow.GeometryPacketPreservesOrderedOverflowAndPreparedInvalid; assertion 0개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryPacketPreservesOrderedOverflowAndPreparedInvalid 유지 원문 검사 body 및 assertion 동일. 7f945200a866e442db527cd8753d4f5b12474c018d4d3a00898dd640557a2414 7f945200a866e442db527cd8753d4f5b12474c018d4d3a00898dd640557a2414 해당 없음 해당 없음 -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryPacketSumFallbackPreservesNearMaxAndSubnormalStatus Hex8HighLow.GeometryPacketSumFallbackPreservesNearMaxAndSubnormalStatus; assertion 0개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryPacketSumFallbackPreservesNearMaxAndSubnormalStatus 유지 원문 검사 body 및 assertion 동일. 0f9f52e106a3cd6720a68eda098651b0d42c3cbeeec05ed9c99364fc598aac5f 0f9f52e106a3cd6720a68eda098651b0d42c3cbeeec05ed9c99364fc598aac5f 해당 없음 해당 없음 -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketBackendSelectionRecoversAfterEnvironmentRestoration Hex8HighLow.PacketBackendSelectionRecoversAfterEnvironmentRestoration; assertion 6개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketBackendSelectionRecoversAfterEnvironmentRestoration 유지 원문 검사 body 및 assertion 동일. ca5ac348923812cc8155de59df806b241a163cf53120abc8b9123be07804485a ca5ac348923812cc8155de59df806b241a163cf53120abc8b9123be07804485a ASSERT_EQ(std::fesetround(FE_UPWARD), 0) | EXPECT_EQ(fesa::hex8_internal::SelectMaterialPacketEvaluator(), fesa::hex8_internal::EvaluateMaterialPacketScalar) | EXPECT_EQ(std::fesetround(rounding), 0) | EXPECT_EQ(fesa::hex8_internal::SelectMaterialPacketEvaluator(), fesa::hex8_internal::EvaluateMaterialPacketScalar) | EXPECT_EQ(unmasked, fesa::hex8_internal::EvaluateMaterialPacketScalar) | EXPECT_EQ(fesa::hex8_internal::SelectMaterialPacketEvaluator(), initial) ASSERT_EQ(std::fesetround(FE_UPWARD), 0) | EXPECT_EQ(fesa::hex8_internal::SelectMaterialPacketEvaluator(), fesa::hex8_internal::EvaluateMaterialPacketScalar) | EXPECT_EQ(std::fesetround(rounding), 0) | EXPECT_EQ(fesa::hex8_internal::SelectMaterialPacketEvaluator(), fesa::hex8_internal::EvaluateMaterialPacketScalar) | EXPECT_EQ(unmasked, fesa::hex8_internal::EvaluateMaterialPacketScalar) | EXPECT_EQ(fesa::hex8_internal::SelectMaterialPacketEvaluator(), initial) -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketScalarBridgesPreserveOriginalRawBits Hex8HighLow.PacketScalarBridgesPreserveOriginalRawBits; assertion 2개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketScalarBridgesPreserveOriginalRawBits 이관 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. 1ceef74682e95486cba3564337e7c84d2aac4904a79013990da0f4ee61e20c07 1b19b2a6133828f658e5ba8b711792eed69c5274e80798ed055151b6261dcfac EXPECT_EQ(PairBits(result.values[lane].high), PairBits(expected.high)) | EXPECT_EQ(PairBits(result.values[lane].low), PairBits(expected.low)) EXPECT_EQ(PairBits(result.values[lane].high), PairBits(expected.high)) | EXPECT_EQ(PairBits(result.values[lane].low), PairBits(expected.low)) -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketCapabilityRejectsMissingIntegerIsaAndOsState Hex8HighLow.PacketCapabilityRejectsMissingIntegerIsaAndOsState; assertion 4개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketCapabilityRejectsMissingIntegerIsaAndOsState 유지 원문 검사 body 및 assertion 동일. 362080c019526bea600c5658aa6deb15e68d159828fff53ddaa9677dc40b6995 362080c019526bea600c5658aa6deb15e68d159828fff53ddaa9677dc40b6995 EXPECT_TRUE(fesa::hex8_internal::SupportsMaterialPacketInstructions( leaf1, 6, leaf7)) | EXPECT_FALSE(fesa::hex8_internal::SupportsMaterialPacketInstructions( leaf1, 6, leaf7 & ~missing)) | EXPECT_FALSE(fesa::hex8_internal::SupportsMaterialPacketInstructions( leaf1 & ~missing, 6, leaf7)) | EXPECT_FALSE(fesa::hex8_internal::SupportsMaterialPacketInstructions( leaf1, state, leaf7)) EXPECT_TRUE(fesa::hex8_internal::SupportsMaterialPacketInstructions( leaf1, 6, leaf7)) | EXPECT_FALSE(fesa::hex8_internal::SupportsMaterialPacketInstructions( leaf1, 6, leaf7 & ~missing)) | EXPECT_FALSE(fesa::hex8_internal::SupportsMaterialPacketInstructions( leaf1 & ~missing, 6, leaf7)) | EXPECT_FALSE(fesa::hex8_internal::SupportsMaterialPacketInstructions( leaf1, state, leaf7)) -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketDoesNotClearPriorMaskedStickyFlags Hex8HighLow.PacketDoesNotClearPriorMaskedStickyFlags; assertion 4개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketDoesNotClearPriorMaskedStickyFlags 유지 원문 검사 body 및 assertion 동일. d5aaf2d448b2510d15df5fba26ce1d668f2acd6e376fae86de30152fad3c84fb d5aaf2d448b2510d15df5fba26ce1d668f2acd6e376fae86de30152fad3c84fb ASSERT_EQ(std::fegetenv(&original), 0) | ASSERT_EQ(std::feraiseexcept(FE_INEXACT), 0) | EXPECT_EQ(std::fesetenv(&original), 0) | EXPECT_TRUE(preserved) ASSERT_EQ(std::fegetenv(&original), 0) | ASSERT_EQ(std::feraiseexcept(FE_INEXACT), 0) | EXPECT_EQ(std::fesetenv(&original), 0) | EXPECT_TRUE(preserved) -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.ConcurrentFirstLinearTrialsAcrossCopiesAndMoveKeepBits Hex8HighLow.ConcurrentFirstLinearTrialsAcrossCopiesAndMoveKeepBits; assertion 3개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.ConcurrentFirstLinearTrialsAcrossCopiesAndMoveKeepBits 유지 원문 검사 body 및 assertion 동일. eb9b491edb65e3a3636501ffd6387f89c1b901fafd5161134cdb173f1ee7ce75 eb9b491edb65e3a3636501ffd6387f89c1b901fafd5161134cdb173f1ee7ce75 ASSERT_TRUE(expected_a.HasValue()) | ASSERT_TRUE(expected_b.HasValue()) | ASSERT_TRUE(response.HasValue()) ASSERT_TRUE(expected_a.HasValue()) | ASSERT_TRUE(expected_b.HasValue()) | ASSERT_TRUE(response.HasValue()) -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.FirstLinearPreparationRecoversAfterTrialAndEnvironmentFailure Hex8HighLow.FirstLinearPreparationRecoversAfterTrialAndEnvironmentFailure; assertion 11개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.FirstLinearPreparationRecoversAfterTrialAndEnvironmentFailure 유지 원문 검사 body 및 assertion 동일. c102c1858835db4be00cdeaa1bcba9ef309197723b06d916da051736e9dc5b34 c102c1858835db4be00cdeaa1bcba9ef309197723b06d916da051736e9dc5b34 "ASSERT_TRUE(fesa::math_internal::ArithmeticEnvironmentSupported()) | EXPECT_FALSE(element.EvaluateLinearHighLow(fesa::Vector(23), low).HasValue()) | EXPECT_FALSE(element.EvaluateLinearHighLow(high, low).HasValue()) | ASSERT_EQ(std::fesetround(FE_DOWNWARD), 0) | ASSERT_FALSE(bad_environment.HasValue()) | EXPECT_EQ(bad_environment.GetStatus().Diagnostics()[0].message, ""Hex8 high+low requires nearest rounding and gradual underflow."") | ASSERT_EQ(std::fesetround(FE_TONEAREST), 0) | EXPECT_FALSE(element.EvaluateLinearHighLow(high, low).HasValue()) | ASSERT_TRUE(recovered.HasValue()) | EXPECT_FALSE(element.EvaluateLinearHighLow(high, low).HasValue()) | ASSERT_TRUE(after_failure.HasValue())" "ASSERT_TRUE(fesa::math_internal::ArithmeticEnvironmentSupported()) | EXPECT_FALSE(element.EvaluateLinearHighLow(fesa::Vector(23), low).HasValue()) | EXPECT_FALSE(element.EvaluateLinearHighLow(high, low).HasValue()) | ASSERT_EQ(std::fesetround(FE_DOWNWARD), 0) | ASSERT_FALSE(bad_environment.HasValue()) | EXPECT_EQ(bad_environment.GetStatus().Diagnostics()[0].message, ""Hex8 high+low requires nearest rounding and gradual underflow."") | ASSERT_EQ(std::fesetround(FE_TONEAREST), 0) | EXPECT_FALSE(element.EvaluateLinearHighLow(high, low).HasValue()) | ASSERT_TRUE(recovered.HasValue()) | EXPECT_FALSE(element.EvaluateLinearHighLow(high, low).HasValue()) | ASSERT_TRUE(after_failure.HasValue())" -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.LowOnlyAffineStrainSurvivesUniformHighTranslation Hex8HighLow.LowOnlyAffineStrainSurvivesUniformHighTranslation; assertion 4개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.LowOnlyAffineStrainSurvivesUniformHighTranslation 유지 원문 검사 body 및 assertion 동일. 4462f0b7416fafcfad45c7261d11b2ac9efd9b84ecc8174f859764ab23039b7c 4462f0b7416fafcfad45c7261d11b2ac9efd9b84ecc8174f859764ab23039b7c ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().high.internal_force[3 * a], (positive ? 3 : -3) * strain, 1e-13 * strain) | EXPECT_NEAR(response.Value().high.strain_energy, 6 * strain * strain, 1e-13 * strain * strain) | EXPECT_NEAR(row.strain[0], strain, 1e-13 * strain) ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().high.internal_force[3 * a], (positive ? 3 : -3) * strain, 1e-13 * strain) | EXPECT_NEAR(response.Value().high.strain_energy, 6 * strain * strain, 1e-13 * strain * strain) | EXPECT_NEAR(row.strain[0], strain, 1e-13 * strain) -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.NonlinearLowGradientProducesSecondOrderForce Hex8HighLow.NonlinearLowGradientProducesSecondOrderForce; assertion 3개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.NonlinearLowGradientProducesSecondOrderForce 유지 원문 검사 body 및 assertion 동일. 979f0ef23c5f1008caa390d90e6009aa9a5d31c011169ea1b43a67f5f15da557 979f0ef23c5f1008caa390d90e6009aa9a5d31c011169ea1b43a67f5f15da557 ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(increment.high, 4.5 * strain * strain, 1e-12 * strain * strain) ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(increment.high, 4.5 * strain * strain, 1e-12 * strain * strain) -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.VolumetricAndTransverseTermsRetainLowStrain Hex8HighLow.VolumetricAndTransverseTermsRetainLowStrain; assertion 6개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.VolumetricAndTransverseTermsRetainLowStrain 유지 원문 검사 body 및 assertion 동일. 846ec5c0b418ef7ec32bb21ce63c53f4d186afbf40d8c37be769ff45ab8f108e 846ec5c0b418ef7ec32bb21ce63c53f4d186afbf40d8c37be769ff45ab8f108e ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(linear.Value().high.internal_force[3], 3.6*strain, 1e-13*strain) | EXPECT_NEAR(linear.Value().high.internal_force[7], 1.2*strain, 1e-13*strain) | EXPECT_NEAR(linear.Value().high.strain_energy, 7.2*strain*strain, 1e-13*strain*strain) | EXPECT_NEAR(quadratic.high, 5.4*strain*strain, 1e-12*strain*strain) ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(linear.Value().high.internal_force[3], 3.6*strain, 1e-13*strain) | EXPECT_NEAR(linear.Value().high.internal_force[7], 1.2*strain, 1e-13*strain) | EXPECT_NEAR(linear.Value().high.strain_energy, 7.2*strain*strain, 1e-13*strain*strain) | EXPECT_NEAR(quadratic.high, 5.4*strain*strain, 1e-12*strain*strain) -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.RejectsInvalidLowShapeAndOverlappingComponents Hex8HighLow.RejectsInvalidLowShapeAndOverlappingComponents; assertion 2개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.RejectsInvalidLowShapeAndOverlappingComponents 유지 원문 검사 body 및 assertion 동일. 7abccdcb75d007db4ef2421719b99cb7e5330d25e5d05d2da511b098a2428848 7abccdcb75d007db4ef2421719b99cb7e5330d25e5d05d2da511b098a2428848 EXPECT_FALSE(brick.EvaluateLinearHighLow(high, fesa::Vector(23)).HasValue()) | EXPECT_FALSE(brick.EvaluateNonlinearHighLow(high, low).HasValue()) EXPECT_FALSE(brick.EvaluateLinearHighLow(high, fesa::Vector(23)).HasValue()) | EXPECT_FALSE(brick.EvaluateNonlinearHighLow(high, low).HasValue()) -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.LinearAndNonlinearZeroStateHaveSameFullHessian Hex8HighLow.LinearAndNonlinearZeroStateHaveSameFullHessian; assertion 4개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.LinearAndNonlinearZeroStateHaveSameFullHessian 유지 원문 검사 body 및 assertion 동일. e2079fe27aab893fafc1428c6fd97d975eddd067ca1131589425cc569ece3958 e2079fe27aab893fafc1428c6fd97d975eddd067ca1131589425cc569ece3958 ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_EQ(linear.Value().high.tangent(i, j), nonlinear.Value().high.tangent(i, j)) | EXPECT_EQ(linear.Value().tangent_low(i, j), nonlinear.Value().tangent_low(i, j)) ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_EQ(linear.Value().high.tangent(i, j), nonlinear.Value().high.tangent(i, j)) | EXPECT_EQ(linear.Value().tangent_low(i, j), nonlinear.Value().tangent_low(i, j)) -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.CachedLinearHessianIsIndependentOfTrialAndPriorFailure Hex8HighLow.CachedLinearHessianIsIndependentOfTrialAndPriorFailure; assertion 8개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.CachedLinearHessianIsIndependentOfTrialAndPriorFailure 유지 원문 검사 body 및 assertion 동일. 046984e4a0f5d6ab548fdef7ea0980b866ff34cbeb603b918c9b1adb76ae7935 046984e4a0f5d6ab548fdef7ea0980b866ff34cbeb603b918c9b1adb76ae7935 ASSERT_TRUE(reference.HasValue()) | EXPECT_FALSE(brick.EvaluateLinearHighLow(high, fesa::Vector(23)).HasValue()) | ASSERT_TRUE(strained.HasValue()) | EXPECT_EQ(reference.Value().high.tangent(i,j), strained.Value().high.tangent(i,j)) | EXPECT_EQ(reference.Value().tangent_low(i,j), strained.Value().tangent_low(i,j)) | ASSERT_TRUE(nonlinear_zero.HasValue()) | EXPECT_EQ(reference.Value().high.tangent(i,j), nonlinear_zero.Value().high.tangent(i,j)) | EXPECT_EQ(reference.Value().tangent_low(i,j), nonlinear_zero.Value().tangent_low(i,j)) ASSERT_TRUE(reference.HasValue()) | EXPECT_FALSE(brick.EvaluateLinearHighLow(high, fesa::Vector(23)).HasValue()) | ASSERT_TRUE(strained.HasValue()) | EXPECT_EQ(reference.Value().high.tangent(i,j), strained.Value().high.tangent(i,j)) | EXPECT_EQ(reference.Value().tangent_low(i,j), strained.Value().tangent_low(i,j)) | ASSERT_TRUE(nonlinear_zero.HasValue()) | EXPECT_EQ(reference.Value().high.tangent(i,j), nonlinear_zero.Value().high.tangent(i,j)) | EXPECT_EQ(reference.Value().tangent_low(i,j), nonlinear_zero.Value().tangent_low(i,j)) -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.CoupledBricksTransmitLowStrainAcrossSharedFace Hex8HighLow.CoupledBricksTransmitLowStrainAcrossSharedFace; assertion 4개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.CoupledBricksTransmitLowStrainAcrossSharedFace 유지 원문 검사 body 및 assertion 동일. 83ae6a75481955497b50ac6ac1eff98c37df884ba2ed66da2557210deefa72a2 83ae6a75481955497b50ac6ac1eff98c37df884ba2ed66da2557210deefa72a2 ASSERT_TRUE(l.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(assembled.high, 0, 1e-13 * strain) | EXPECT_NEAR(l.Value().high.strain_energy + r.Value().high.strain_energy, 12 * strain * strain, 1e-13 * strain * strain) ASSERT_TRUE(l.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(assembled.high, 0, 1e-13 * strain) | EXPECT_NEAR(l.Value().high.strain_energy + r.Value().high.strain_energy, 12 * strain * strain, 1e-13 * strain * strain) -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.NodeZeroSignedDirectionMatchesForceAndEnergyDerivatives Hex8HighLow.NodeZeroSignedDirectionMatchesForceAndEnergyDerivatives; assertion 5개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.NodeZeroSignedDirectionMatchesForceAndEnergyDerivatives 유지 원문 검사 body 및 assertion 동일. 8ca0e0b8462f489c123d6d5a32a0ae42c56b897b155459e2e7c55dfa8c030d0d 8ca0e0b8462f489c123d6d5a32a0ae42c56b897b155459e2e7c55dfa8c030d0d ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(positive.HasValue()) | ASSERT_TRUE(negative.HasValue()) | EXPECT_LE(std::abs(error.high), 1e-25) | EXPECT_LE(std::abs(energy_error.high), 32 * step * step + 1e-44) ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(positive.HasValue()) | ASSERT_TRUE(negative.HasValue()) | EXPECT_LE(std::abs(error.high), 1e-25) | EXPECT_LE(std::abs(energy_error.high), 32 * step * step + 1e-44) -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryCertificateIncludesLowOnlyCurrentCellWidth Hex8HighLow.GeometryCertificateIncludesLowOnlyCurrentCellWidth; assertion 3개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryCertificateIncludesLowOnlyCurrentCellWidth 유지 원문 검사 body 및 assertion 동일. a99f71b85735e03d5245e265d4b95f2b624f4b5475c1f1ff15ea665e18c72c4d a99f71b85735e03d5245e265d4b95f2b624f4b5475c1f1ff15ea665e18c72c4d EXPECT_EQ(fesa::hex8_internal::Certify(coordinates, &high, &positive_low), Certificate::kPositive) | EXPECT_EQ(fesa::hex8_internal::Certify(coordinates, &high, &negative_low), Certificate::kNonpositive) | EXPECT_NE(fesa::hex8_internal::Certify(coordinates, &high), Certificate::kPositive) EXPECT_EQ(fesa::hex8_internal::Certify(coordinates, &high, &positive_low), Certificate::kPositive) | EXPECT_EQ(fesa::hex8_internal::Certify(coordinates, &high, &negative_low), Certificate::kNonpositive) | EXPECT_NE(fesa::hex8_internal::Certify(coordinates, &high), Certificate::kPositive) -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.SignedZeroMaterialCoefficientHasIdenticalResponse Hex8HighLow.SignedZeroMaterialCoefficientHasIdenticalResponse; assertion 8개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.SignedZeroMaterialCoefficientHasIdenticalResponse 유지 원문 검사 body 및 assertion 동일. 3972742ed5e27b3dd1f33a5c2fb9a603b32972c71c7ecb8dd341b9c76d18d3d3 3972742ed5e27b3dd1f33a5c2fb9a603b32972c71c7ecb8dd341b9c76d18d3d3 ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(n.HasValue()) | EXPECT_EQ(p.Value().high.strain_energy, n.Value().high.strain_energy) | EXPECT_EQ(p.Value().strain_energy_low, n.Value().strain_energy_low) | EXPECT_EQ(p.Value().high.internal_force[i], n.Value().high.internal_force[i]) | EXPECT_EQ(p.Value().internal_force_low[i], n.Value().internal_force_low[i]) | EXPECT_EQ(p.Value().high.tangent(i,j), n.Value().high.tangent(i,j)) | EXPECT_EQ(p.Value().tangent_low(i,j), n.Value().tangent_low(i,j)) ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(n.HasValue()) | EXPECT_EQ(p.Value().high.strain_energy, n.Value().high.strain_energy) | EXPECT_EQ(p.Value().strain_energy_low, n.Value().strain_energy_low) | EXPECT_EQ(p.Value().high.internal_force[i], n.Value().high.internal_force[i]) | EXPECT_EQ(p.Value().internal_force_low[i], n.Value().internal_force_low[i]) | EXPECT_EQ(p.Value().high.tangent(i,j), n.Value().high.tangent(i,j)) | EXPECT_EQ(p.Value().tangent_low(i,j), n.Value().tangent_low(i,j)) -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.FiniteRotationRetainsTinyShearForceCovariance Hex8HighLow.FiniteRotationRetainsTinyShearForceCovariance; assertion 7개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.FiniteRotationRetainsTinyShearForceCovariance 유지 원문 검사 body 및 assertion 동일. 397b230944498c7db14592dc4408d7fbdee0199b43be2c7b4d7e68dda9cb08e9 397b230944498c7db14592dc4408d7fbdee0199b43be2c7b4d7e68dda9cb08e9 ASSERT_TRUE(origin.HasValue()) | ASSERT_TRUE(deformed.HasValue()) | ASSERT_TRUE(turned.HasValue()) | ASSERT_TRUE(turned_deformed.HasValue()) | EXPECT_LE(std::abs(Add(rotated[0], baseline[1]).high), 1e-13*gamma) | EXPECT_LE(std::abs(Subtract(rotated[1], baseline[0]).high), 1e-13*gamma) | EXPECT_LE(std::abs(Subtract(rotated[2], baseline[2]).high), 1e-13*gamma) ASSERT_TRUE(origin.HasValue()) | ASSERT_TRUE(deformed.HasValue()) | ASSERT_TRUE(turned.HasValue()) | ASSERT_TRUE(turned_deformed.HasValue()) | EXPECT_LE(std::abs(Add(rotated[0], baseline[1]).high), 1e-13*gamma) | EXPECT_LE(std::abs(Subtract(rotated[1], baseline[0]).high), 1e-13*gamma) | EXPECT_LE(std::abs(Subtract(rotated[2], baseline[2]).high), 1e-13*gamma) -Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.MeanVolumeLowOnlyNonuniformTraceRetainsMeanAndCrossPointHessian Hex8HighLow.MeanVolumeLowOnlyNonuniformTraceRetainsMeanAndCrossPointHessian; assertion 11개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.MeanVolumeLowOnlyNonuniformTraceRetainsMeanAndCrossPointHessian 유지 원문 검사 body 및 assertion 동일. 45ace4ab87c97eeeb71c680d4cd90bdc4d0b2438c4335b7539a7207529d171fb 45ace4ab87c97eeeb71c680d4cd90bdc4d0b2438c4335b7539a7207529d171fb ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(high_only.HasValue()) | EXPECT_EQ(high_only.Value().high.strain_energy, 0) | EXPECT_NEAR(response.Value().high.strain_energy, coefficient * c * c, 1e-13 * c * c) | EXPECT_NEAR(response.Value().high.internal_force[6] + response.Value().high.internal_force[18], 2 * coefficient * c, 1e-13 * c) | EXPECT_NEAR((s[0] + s[1] + s[2]) / 3, 4 * c, 1e-13 * c) | EXPECT_NEAR(point.strain[0], c * point.reference_coordinates[1], 1e-13 * c) | EXPECT_NEAR(k(0, 0), 41.0 / 18, 2e-14) | EXPECT_NEAR(k(0, 1), 19.0 / 30, 2e-14) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(cubic_energy.high, (5 * 4.8 / 18 + 8.0 / 6) * c * c * c, 1e-12 * c * c * c) ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(high_only.HasValue()) | EXPECT_EQ(high_only.Value().high.strain_energy, 0) | EXPECT_NEAR(response.Value().high.strain_energy, coefficient * c * c, 1e-13 * c * c) | EXPECT_NEAR(response.Value().high.internal_force[6] + response.Value().high.internal_force[18], 2 * coefficient * c, 1e-13 * c) | EXPECT_NEAR((s[0] + s[1] + s[2]) / 3, 4 * c, 1e-13 * c) | EXPECT_NEAR(point.strain[0], c * point.reference_coordinates[1], 1e-13 * c) | EXPECT_NEAR(k(0, 0), 41.0 / 18, 2e-14) | EXPECT_NEAR(k(0, 1), 19.0 / 30, 2e-14) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(cubic_energy.high, (5 * 4.8 / 18 + 8.0 / 6) * c * c * c, 1e-12 * c * c * c) -Dev tests/unit/elements/hex8_high_low_test.cpp support@1-48 helper/oracle/fixture/include/static assertion 구간: PairBits, ExpectOriginalProduct tests/unit/elements/hex8_high_low_test.cpp file-support 이관 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. 7f7cee402cbc1858b86c84652f94d6c61d0eda418d18a14b11a48648d4a6d113 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/hex8_high_low_test.cpp support@88-134 helper/oracle/fixture/include/static assertion 구간: RawPacketPair, FrozenMaterialPacket, ExpectFrozenMaterialPacket tests/unit/elements/hex8_high_low_test.cpp file-support 유지 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. 570a3f41b0e56e284d6df12b9caa91c67db80930b93a760d2dffd69b36206c50 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/hex8_high_low_test.cpp support@311-374 helper/oracle/fixture/include/static assertion 구간: ExpectPacketFlagsAndBits, Observation, if, DyadicPacketFixture tests/unit/elements/hex8_high_low_test.cpp file-support 유지 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. 8cef855736ef4113f6c3b606128ed22c9a39c1faa08365b7d5eecb0b5784fbea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/hex8_high_low_test.cpp support@450-581 helper/oracle/fixture/include/static assertion 구간: defined, GeometryDyadicFixture, ExpectGeometryPacketBitsAndFlags, Observation, if tests/unit/elements/hex8_high_low_test.cpp file-support 이관 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. 2645f04d5bdda6cb2c861a8d1ac8aa209aa28cfbeb3a7da99b82ce21225296e4 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/hex8_high_low_test.cpp support@740-741 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/hex8_high_low_test.cpp file-support 유지 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. 8b63d4e2e6cce4baf5403993210754bed64f3d3fa8e57007f2c3eeff4491a972 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/hex8_high_low_test.cpp support@837-884 helper/oracle/fixture/include/static assertion 구간: UnitBrick, ExpectSamePairResponse tests/unit/elements/hex8_high_low_test.cpp file-support 유지 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. ece3a979ef74489bbfd5deb8abf98a643af66e310ec44820453056f10d4b6549 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/hex8_high_low_test.cpp support@1267-1267 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/hex8_high_low_test.cpp file-support 유지 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1fd73892c2678a5b3ad8fd34edd0292394836a3494c540f4ecc005b6e6a269d9 1fd73892c2678a5b3ad8fd34edd0292394836a3494c540f4ecc005b6e6a269d9 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.PreservesWarpedMomentsRowsAndFirstSpatialMoment Mitc4ShellMassContract.PreservesWarpedMomentsRowsAndFirstSpatialMoment; assertion 4개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.PreservesWarpedMomentsRowsAndFirstSpatialMoment 유지 원문 검사 body 및 assertion 동일. 76f7825ab0d079445fad2d14b91e7d6e835a997d5299706cb5cdc7c05a968c14 76f7825ab0d079445fad2d14b91e7d6e835a997d5299706cb5cdc7c05a968c14 ASSERT_TRUE(mass.HasValue()) | EXPECT_LE(std::abs(value.consistent_moments[moment](row, column) - expected[moment][row][column]) / scale, 1e-12) | EXPECT_LE(std::abs(value.nodal_moments[row][moment] - expected_row) / scale, 1e-12) | EXPECT_LE(difference / (element_mass * std::hypot(2.0, 0.3)), 1e-12) ASSERT_TRUE(mass.HasValue()) | EXPECT_LE(std::abs(value.consistent_moments[moment](row, column) - expected[moment][row][column]) / scale, 1e-12) | EXPECT_LE(std::abs(value.nodal_moments[row][moment] - expected_row) / scale, 1e-12) | EXPECT_LE(difference / (element_mass * std::hypot(2.0, 0.3)), 1e-12) -Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.RecomputesWarpedMassWithScaledCovariance Mitc4ShellMassContract.RecomputesWarpedMassWithScaledCovariance; assertion 4개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.RecomputesWarpedMassWithScaledCovariance 유지 원문 검사 body 및 assertion 동일. e3e985596112fdd2ba30d9c9f0721d183914e4c7e3e4bb4ae11cd9f32b820991 e3e985596112fdd2ba30d9c9f0721d183914e4c7e3e4bb4ae11cd9f32b820991 ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(transformed.HasValue()) | ASSERT_TRUE(original_mass.HasValue()) | ASSERT_TRUE(transformed_mass.HasValue()) ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(transformed.HasValue()) | ASSERT_TRUE(original_mass.HasValue()) | ASSERT_TRUE(transformed_mass.HasValue()) -Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.SatisfiesUniformAndJensenEnergyContracts Mitc4ShellMassContract.SatisfiesUniformAndJensenEnergyContracts; assertion 3개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.SatisfiesUniformAndJensenEnergyContracts 유지 원문 검사 body 및 assertion 동일. 4ca13bda8eeda1a740d91e0eca5b06c177bff1348c4c2aae9fb7cd28c36fa25b 4ca13bda8eeda1a740d91e0eca5b06c177bff1348c4c2aae9fb7cd28c36fa25b ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(Quadratic(mass.Value().consistent_global24, translation), Quadratic(mass.Value().lumped_global24, translation), 1e-12) | EXPECT_GE(Quadratic(mass.Value().lumped_global24, field) + 1e-12, Quadratic(mass.Value().consistent_global24, field)) ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(Quadratic(mass.Value().consistent_global24, translation), Quadratic(mass.Value().lumped_global24, translation), 1e-12) | EXPECT_GE(Quadratic(mass.Value().lumped_global24, field) + 1e-12, Quadratic(mass.Value().consistent_global24, field)) -Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.MapsScalarMomentsIntoBothMassBlocks Mitc4ShellMassContract.MapsScalarMomentsIntoBothMassBlocks; assertion 6개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.MapsScalarMomentsIntoBothMassBlocks 유지 원문 검사 body 및 assertion 동일. c3f3d3fcbbb356610124a670ed3e56e053f742c3150650dc3d0690b8a081e44f c3f3d3fcbbb356610124a670ed3e56e053f742c3150650dc3d0690b8a081e44f ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(mass.Value().consistent_global24(row, column), expected_consistent(row, column), 1e-12) | EXPECT_NEAR(mass.Value().lumped_global24(row, column), expected_lumped(row, column), 1e-12) | EXPECT_LE(FrobeniusNorm(consistent_difference, length) / (FrobeniusNorm(mass.Value().consistent_global24, length) + FrobeniusNorm(expected_consistent, length)), 1e-12) | EXPECT_LE(FrobeniusNorm(lumped_difference, length) / (FrobeniusNorm(mass.Value().lumped_global24, length) + FrobeniusNorm(expected_lumped, length)), 1e-12) | EXPECT_LE(std::abs((lumped_work - consistent_work) - pairwise_work) / (lumped_work + consistent_work), 1e-12) ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(mass.Value().consistent_global24(row, column), expected_consistent(row, column), 1e-12) | EXPECT_NEAR(mass.Value().lumped_global24(row, column), expected_lumped(row, column), 1e-12) | EXPECT_LE(FrobeniusNorm(consistent_difference, length) / (FrobeniusNorm(mass.Value().consistent_global24, length) + FrobeniusNorm(expected_consistent, length)), 1e-12) | EXPECT_LE(FrobeniusNorm(lumped_difference, length) / (FrobeniusNorm(mass.Value().lumped_global24, length) + FrobeniusNorm(expected_lumped, length)), 1e-12) | EXPECT_LE(std::abs((lumped_work - consistent_work) - pairwise_work) / (lumped_work + consistent_work), 1e-12) -Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.ReproducesAffineSquareVelocityWork Mitc4ShellMassContract.ReproducesAffineSquareVelocityWork; assertion 4개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.ReproducesAffineSquareVelocityWork 유지 원문 검사 body 및 assertion 동일. 7f75a86e005eff60d026f8d15ee5cae2fa95e0ee4232fca201dcb8f8f81df18c 7f75a86e005eff60d026f8d15ee5cae2fa95e0ee4232fca201dcb8f8f81df18c ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(consistent_work, 4.0 / 3.0, 1e-12) | EXPECT_NEAR(lumped_work - consistent_work, 8.0 / (3.0 * mesh * mesh), 1e-12) ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(consistent_work, 4.0 / 3.0, 1e-12) | EXPECT_NEAR(lumped_work - consistent_work, 8.0 / (3.0 * mesh * mesh), 1e-12) -Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@1-130 helper/oracle/fixture/include/static assertion 구간: FrobeniusNorm, MaximumEdgeLength, Rotate, DirectorCross, Dot, RotateCongruently, ExpectScaledCovariance, Node, Pointers, WarpedShell, Quadratic tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 80222550f9438f2e2e97eef70b77702be0f22f69e5dfd86f3f5f19eea8635684 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@207-208 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 47dd2fa44f91e342b907e45fa1b98a8b620d5590812aea5a8d5b7ceda6534e82 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@244-246 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 82c1f775b61eb1c42b39d952b6856edb28d0334faf8544d19199125c6142efa5 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@263-265 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 311a3ce7805d89cc36a6c5dc4f988aad66e9d65c53bd7fc5dae1c90f7731d0ae 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@399-400 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 86832b878d6de5792a69735ed18cbdf64bf5f90afdd3d773d77424b25242a7f6 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@435-436 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 20개 tests/unit/elements/mitc4_shell_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 690b9a24e116e86b67d26c75d76305c766aeaf2835fb1c040ba1cae247734f31 0099c4e8370d63a61cdf37604008ecc5ff2dc96461b678052febd0a2fa248aa8 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.ShapeFunctionsSatisfyNodalAndDerivativeIdentities Mitc4ShellKinematics.ShapeFunctionsSatisfyNodalAndDerivativeIdentities; assertion 5개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.ShapeFunctionsSatisfyNodalAndDerivativeIdentities 유지 원문 검사 body 및 assertion 동일. ce0d5d609ea4e2f0467991262a26eecb2e3dfe8f67b77325353db454953dfaf3 ce0d5d609ea4e2f0467991262a26eecb2e3dfe8f67b77325353db454953dfaf3 EXPECT_DOUBLE_EQ(shape.values[node_index], point == node_index ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ(value_sum, 1.0) | EXPECT_DOUBLE_EQ(xi_derivative_sum, 0.0) | EXPECT_DOUBLE_EQ(eta_derivative_sum, 0.0) | EXPECT_EQ(shape.values, (std::array{0.28125, 0.46875, 0.15625, 0.09375})) EXPECT_DOUBLE_EQ(shape.values[node_index], point == node_index ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ(value_sum, 1.0) | EXPECT_DOUBLE_EQ(xi_derivative_sum, 0.0) | EXPECT_DOUBLE_EQ(eta_derivative_sum, 0.0) | EXPECT_EQ(shape.values, (std::array{0.28125, 0.46875, 0.15625, 0.09375})) -Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.BuildsRightHandedFramesAndSeparatePhysicalDrillingMaps Mitc4ShellKinematics.BuildsRightHandedFramesAndSeparatePhysicalDrillingMaps; assertion 13개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.BuildsRightHandedFramesAndSeparatePhysicalDrillingMaps 유지 원문 검사 body 및 assertion 동일. a48c1e71779c07d794a93e7fb032fe851a7b6250798b500c11394d304eea2c51 a48c1e71779c07d794a93e7fb032fe851a7b6250798b500c11394d304eea2c51 ASSERT_TRUE(candidate.HasValue()) | ASSERT_EQ(physical.Rows(), 20U) | ASSERT_EQ(physical.Columns(), 24U) | ASSERT_EQ(drilling.Rows(), 4U) | ASSERT_EQ(drilling.Columns(), 24U) | EXPECT_DOUBLE_EQ( physical(physical_offset + component, global_offset + component), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 3U, global_offset + 4U), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 4U, global_offset + 5U), 1.0) | EXPECT_DOUBLE_EQ(drilling(node_index, global_offset + 3U), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 3U, global_dof), 0.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 4U, global_dof), 0.0) | EXPECT_DOUBLE_EQ(drilling(node_index, global_dof), 0.0) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), invalid_directors, Section(), Material()) .HasValue()) ASSERT_TRUE(candidate.HasValue()) | ASSERT_EQ(physical.Rows(), 20U) | ASSERT_EQ(physical.Columns(), 24U) | ASSERT_EQ(drilling.Rows(), 4U) | ASSERT_EQ(drilling.Columns(), 24U) | EXPECT_DOUBLE_EQ( physical(physical_offset + component, global_offset + component), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 3U, global_offset + 4U), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 4U, global_offset + 5U), 1.0) | EXPECT_DOUBLE_EQ(drilling(node_index, global_offset + 3U), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 3U, global_dof), 0.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 4U, global_dof), 0.0) | EXPECT_DOUBLE_EQ(drilling(node_index, global_dof), 0.0) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), invalid_directors, Section(), Material()) .HasValue()) -Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.FormsDirectColumnsAndAllCovariantTyingSamples Mitc4ShellKinematics.FormsDirectColumnsAndAllCovariantTyingSamples; assertion 37개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.FormsDirectColumnsAndAllCovariantTyingSamples 유지 원문 검사 body 및 assertion 동일. 96cbc6952413ebb1639c3743d6825a4b80c52b4c450d79ccddd004e64fa816c6 96cbc6952413ebb1639c3743d6825a4b80c52b4c450d79ccddd004e64fa816c6 ASSERT_TRUE(candidate.HasValue()) | ASSERT_EQ(direct.Rows(), 5U) | ASSERT_EQ(direct.Columns(), 20U) | EXPECT_DOUBLE_EQ(direct(0U, 0U), -0.25) | EXPECT_DOUBLE_EQ(direct(0U, 4U), -0.125) | EXPECT_DOUBLE_EQ(direct(1U, 1U), -0.25) | EXPECT_DOUBLE_EQ(direct(1U, 3U), 0.125) | EXPECT_DOUBLE_EQ(direct(2U, 0U), -0.25) | EXPECT_DOUBLE_EQ(direct(2U, 1U), -0.25) | EXPECT_DOUBLE_EQ(direct(2U, 3U), 0.125) | EXPECT_DOUBLE_EQ(direct(2U, 4U), -0.125) | EXPECT_DOUBLE_EQ(direct(3U, 2U), -0.25) | EXPECT_DOUBLE_EQ(direct(3U, 4U), 0.25) | EXPECT_DOUBLE_EQ(direct(4U, 2U), -0.25) | EXPECT_DOUBLE_EQ(direct(4U, 3U), -0.25) | ASSERT_EQ(samples.Rows(), 4U) | ASSERT_EQ(samples.Columns(), 20U) | EXPECT_DOUBLE_EQ(samples(0U, 2U), -0.25) | EXPECT_DOUBLE_EQ(samples(0U, 4U), 0.25) | EXPECT_DOUBLE_EQ(samples(0U, 7U), 0.25) | EXPECT_DOUBLE_EQ(samples(0U, 9U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 12U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 14U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 17U), -0.25) | EXPECT_DOUBLE_EQ(samples(1U, 19U), 0.25) | EXPECT_DOUBLE_EQ(samples(2U, 2U), -0.25) | EXPECT_DOUBLE_EQ(samples(2U, 3U), -0.25) | EXPECT_DOUBLE_EQ(samples(2U, 17U), 0.25) | EXPECT_DOUBLE_EQ(samples(2U, 18U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 7U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 8U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 12U), 0.25) | EXPECT_DOUBLE_EQ(samples(3U, 13U), -0.25) | EXPECT_EQ(weights.xi_zeta, (std::array{0.75, 0.25})) | EXPECT_EQ(weights.eta_zeta, (std::array{0.375, 0.625})) | EXPECT_DOUBLE_EQ(tied(3U, 4U), 2.0 * (0.5 * samples(0U, 4U) + 0.5 * samples(1U, 4U))) | EXPECT_DOUBLE_EQ(tied(4U, 3U), 2.0 * (0.5 * samples(2U, 3U) + 0.5 * samples(3U, 3U))) ASSERT_TRUE(candidate.HasValue()) | ASSERT_EQ(direct.Rows(), 5U) | ASSERT_EQ(direct.Columns(), 20U) | EXPECT_DOUBLE_EQ(direct(0U, 0U), -0.25) | EXPECT_DOUBLE_EQ(direct(0U, 4U), -0.125) | EXPECT_DOUBLE_EQ(direct(1U, 1U), -0.25) | EXPECT_DOUBLE_EQ(direct(1U, 3U), 0.125) | EXPECT_DOUBLE_EQ(direct(2U, 0U), -0.25) | EXPECT_DOUBLE_EQ(direct(2U, 1U), -0.25) | EXPECT_DOUBLE_EQ(direct(2U, 3U), 0.125) | EXPECT_DOUBLE_EQ(direct(2U, 4U), -0.125) | EXPECT_DOUBLE_EQ(direct(3U, 2U), -0.25) | EXPECT_DOUBLE_EQ(direct(3U, 4U), 0.25) | EXPECT_DOUBLE_EQ(direct(4U, 2U), -0.25) | EXPECT_DOUBLE_EQ(direct(4U, 3U), -0.25) | ASSERT_EQ(samples.Rows(), 4U) | ASSERT_EQ(samples.Columns(), 20U) | EXPECT_DOUBLE_EQ(samples(0U, 2U), -0.25) | EXPECT_DOUBLE_EQ(samples(0U, 4U), 0.25) | EXPECT_DOUBLE_EQ(samples(0U, 7U), 0.25) | EXPECT_DOUBLE_EQ(samples(0U, 9U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 12U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 14U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 17U), -0.25) | EXPECT_DOUBLE_EQ(samples(1U, 19U), 0.25) | EXPECT_DOUBLE_EQ(samples(2U, 2U), -0.25) | EXPECT_DOUBLE_EQ(samples(2U, 3U), -0.25) | EXPECT_DOUBLE_EQ(samples(2U, 17U), 0.25) | EXPECT_DOUBLE_EQ(samples(2U, 18U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 7U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 8U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 12U), 0.25) | EXPECT_DOUBLE_EQ(samples(3U, 13U), -0.25) | EXPECT_EQ(weights.xi_zeta, (std::array{0.75, 0.25})) | EXPECT_EQ(weights.eta_zeta, (std::array{0.375, 0.625})) | EXPECT_DOUBLE_EQ(tied(3U, 4U), 2.0 * (0.5 * samples(0U, 4U) + 0.5 * samples(1U, 4U))) | EXPECT_DOUBLE_EQ(tied(4U, 3U), 2.0 * (0.5 * samples(2U, 3U) + 0.5 * samples(3U, 3U))) -Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellConstitutive.BuildsExactPositiveDefiniteSectionMatricesAndRescalesUnits Mitc4ShellConstitutive.BuildsExactPositiveDefiniteSectionMatricesAndRescalesUnits; assertion 25개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellConstitutive.BuildsExactPositiveDefiniteSectionMatricesAndRescalesUnits 유지 원문 검사 body 및 assertion 동일. cafb3bc50695fe76a6a088a21953389aedb24938d4af5236ad5e1907069eef70 cafb3bc50695fe76a6a088a21953389aedb24938d4af5236ad5e1907069eef70 ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(cps.Rows(), 3U) | EXPECT_EQ(cps.Columns(), 3U) | EXPECT_EQ(c5.Rows(), 5U) | EXPECT_EQ(c5.Columns(), 5U) | EXPECT_EQ(a.Rows(), 3U) | EXPECT_EQ(d.Rows(), 3U) | EXPECT_EQ(as.Rows(), 2U) | EXPECT_DOUBLE_EQ(cps(0U, 0U), 128.0) | EXPECT_DOUBLE_EQ(cps(0U, 1U), 32.0) | EXPECT_DOUBLE_EQ(cps(2U, 2U), 48.0) | EXPECT_DOUBLE_EQ(c5(3U, 3U), 40.0) | EXPECT_DOUBLE_EQ(c5(4U, 4U), 40.0) | EXPECT_DOUBLE_EQ(a(0U, 0U), 256.0) | EXPECT_NEAR(d(0U, 0U), 256.0 / 3.0, 1.0e-12) | EXPECT_DOUBLE_EQ(as(0U, 0U), 80.0) | EXPECT_TRUE(HasPositiveCholeskyPivots(cps)) | EXPECT_TRUE(HasPositiveCholeskyPivots(c5)) | EXPECT_TRUE(HasPositiveCholeskyPivots(a)) | EXPECT_TRUE(HasPositiveCholeskyPivots(d)) | EXPECT_TRUE(HasPositiveCholeskyPivots(as)) | ASSERT_TRUE(scaled_candidate.HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(0.0), Material()) .HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(), Material(0.0, 0.25)) .HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(), Material(120.0, 0.5)) .HasValue()) ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(cps.Rows(), 3U) | EXPECT_EQ(cps.Columns(), 3U) | EXPECT_EQ(c5.Rows(), 5U) | EXPECT_EQ(c5.Columns(), 5U) | EXPECT_EQ(a.Rows(), 3U) | EXPECT_EQ(d.Rows(), 3U) | EXPECT_EQ(as.Rows(), 2U) | EXPECT_DOUBLE_EQ(cps(0U, 0U), 128.0) | EXPECT_DOUBLE_EQ(cps(0U, 1U), 32.0) | EXPECT_DOUBLE_EQ(cps(2U, 2U), 48.0) | EXPECT_DOUBLE_EQ(c5(3U, 3U), 40.0) | EXPECT_DOUBLE_EQ(c5(4U, 4U), 40.0) | EXPECT_DOUBLE_EQ(a(0U, 0U), 256.0) | EXPECT_NEAR(d(0U, 0U), 256.0 / 3.0, 1.0e-12) | EXPECT_DOUBLE_EQ(as(0U, 0U), 80.0) | EXPECT_TRUE(HasPositiveCholeskyPivots(cps)) | EXPECT_TRUE(HasPositiveCholeskyPivots(c5)) | EXPECT_TRUE(HasPositiveCholeskyPivots(a)) | EXPECT_TRUE(HasPositiveCholeskyPivots(d)) | EXPECT_TRUE(HasPositiveCholeskyPivots(as)) | ASSERT_TRUE(scaled_candidate.HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(0.0), Material()) .HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(), Material(0.0, 0.25)) .HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(), Material(120.0, 0.5)) .HasValue()) -Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.UsesOneFixedTwoByTwoByTwoQuadratureOrder Mitc4ShellKinematics.UsesOneFixedTwoByTwoByTwoQuadratureOrder; assertion 3개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.UsesOneFixedTwoByTwoByTwoQuadratureOrder 유지 원문 검사 body 및 assertion 동일. 65e8535a920578bf82342d17de948fc260aa98d66b9a261545430700d7c0a54b 65e8535a920578bf82342d17de948fc260aa98d66b9a261545430700d7c0a54b ASSERT_EQ(points.size(), 8U) | EXPECT_EQ(points[point].natural_coordinates, expected[point]) | EXPECT_DOUBLE_EQ(points[point].weight, 1.0) ASSERT_EQ(points.size(), 8U) | EXPECT_EQ(points[point].natural_coordinates, expected[point]) | EXPECT_DOUBLE_EQ(points[point].weight, 1.0) -Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.FormsFiniteScaledSymmetricPhysicalAndStabilizedStiffness Mitc4ShellKernel.FormsFiniteScaledSymmetricPhysicalAndStabilizedStiffness; assertion 14개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.FormsFiniteScaledSymmetricPhysicalAndStabilizedStiffness 유지 원문 검사 body 및 assertion 동일. e0c10c61702d95893fa0b05caff80fba991b5bc41ac9085dc477e5b1e1a37a07 e0c10c61702d95893fa0b05caff80fba991b5bc41ac9085dc477e5b1e1a37a07 ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_EQ(stiffness.physical_local20.Rows(), 20U) | EXPECT_EQ(stiffness.physical_local20.Columns(), 20U) | EXPECT_EQ(stiffness.physical_global24.Rows(), 24U) | EXPECT_EQ(stiffness.drilling_global24.Rows(), 24U) | EXPECT_EQ(stiffness.stabilized_global24.Rows(), 24U) | EXPECT_TRUE(std::isfinite((*matrix)(row, column))) | EXPECT_LE(ScaledSymmetryError(stiffness.physical_local20, 5U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.physical_global24, 6U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.drilling_global24, 6U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.stabilized_global24, 6U, 2.0), 1.0e-12) | ASSERT_TRUE(repeated_candidate.HasValue()) | EXPECT_DOUBLE_EQ(repeated.drilling_stiffness, stiffness.drilling_stiffness) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_EQ(stiffness.physical_local20.Rows(), 20U) | EXPECT_EQ(stiffness.physical_local20.Columns(), 20U) | EXPECT_EQ(stiffness.physical_global24.Rows(), 24U) | EXPECT_EQ(stiffness.drilling_global24.Rows(), 24U) | EXPECT_EQ(stiffness.stabilized_global24.Rows(), 24U) | EXPECT_TRUE(std::isfinite((*matrix)(row, column))) | EXPECT_LE(ScaledSymmetryError(stiffness.physical_local20, 5U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.physical_global24, 6U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.drilling_global24, 6U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.stabilized_global24, 6U, 2.0), 1.0e-12) | ASSERT_TRUE(repeated_candidate.HasValue()) | EXPECT_DOUBLE_EQ(repeated.drilling_stiffness, stiffness.drilling_stiffness) -Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.PreservesExactStiffnessRecoveryAndPatchAcrossVector3Migration Mitc4ShellKernel.PreservesExactStiffnessRecoveryAndPatchAcrossVector3Migration; assertion 13개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.PreservesExactStiffnessRecoveryAndPatchAcrossVector3Migration 유지 원문 검사 body 및 assertion 동일. dd458622e798b9a301ec132ddda748c8225d2dbc21d2623561828c90551d37ce dd458622e798b9a301ec132ddda748c8225d2dbc21d2623561828c90551d37ce ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_DOUBLE_EQ(frame_e3.X(), 0.0) | EXPECT_DOUBLE_EQ(frame_e3.Y(), 0.0) | EXPECT_DOUBLE_EQ(frame_e3.Z(), 1.0) | ASSERT_TRUE(recovery_candidate.HasValue()) | EXPECT_DOUBLE_EQ(stiffness.physical_local20(0U, 0U), 0x1.d555555555554p+6) | EXPECT_DOUBLE_EQ(stiffness.physical_local20(0U, 4U), 0.0) | EXPECT_DOUBLE_EQ(stiffness.physical_global24(2U, 2U), 0x1.aaaaaaaaaaaadp+5) | EXPECT_DOUBLE_EQ(recovery.strain_energy, 0x1.20a3d70a3d70bp+6) | EXPECT_EQ(recovery.points[0U].generalized_strain, kExpectedStrain) | EXPECT_DOUBLE_EQ(patch[0U], 0x1.9999999999999p-3) | EXPECT_DOUBLE_EQ(patch[component], 0.0) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_DOUBLE_EQ(frame_e3.X(), 0.0) | EXPECT_DOUBLE_EQ(frame_e3.Y(), 0.0) | EXPECT_DOUBLE_EQ(frame_e3.Z(), 1.0) | ASSERT_TRUE(recovery_candidate.HasValue()) | EXPECT_DOUBLE_EQ(stiffness.physical_local20(0U, 0U), 0x1.d555555555554p+6) | EXPECT_DOUBLE_EQ(stiffness.physical_local20(0U, 4U), 0.0) | EXPECT_DOUBLE_EQ(stiffness.physical_global24(2U, 2U), 0x1.aaaaaaaaaaaadp+5) | EXPECT_DOUBLE_EQ(recovery.strain_energy, 0x1.20a3d70a3d70bp+6) | EXPECT_EQ(recovery.points[0U].generalized_strain, kExpectedStrain) | EXPECT_DOUBLE_EQ(patch[0U], 0x1.9999999999999p-3) | EXPECT_DOUBLE_EQ(patch[component], 0.0) -Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.PreservesPhysicalEnergyUnderTwentyToTwentyFourCongruence Mitc4ShellKernel.PreservesPhysicalEnergyUnderTwentyToTwentyFourCongruence; assertion 5개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.PreservesPhysicalEnergyUnderTwentyToTwentyFourCongruence 유지 원문 검사 body 및 assertion 동일. 2811e8ca758b586de936d283c2520a2cea673d1b676771c2bc74d718e98a74a1 2811e8ca758b586de936d283c2520a2cea673d1b676771c2bc74d718e98a74a1 ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_NE(local_energy, 0.0) | ASSERT_NE(global_energy, 0.0) | EXPECT_LE(std::abs(global_energy - local_energy) / (std::abs(global_energy) + std::abs(local_energy)), 1.0e-12) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_NE(local_energy, 0.0) | ASSERT_NE(global_energy, 0.0) | EXPECT_LE(std::abs(global_energy - local_energy) / (std::abs(global_energy) + std::abs(local_energy)), 1.0e-12) -Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.RetainsSixRigidModesAndHasExpectedPhysicalAndStabilizedRank Mitc4ShellKernel.RetainsSixRigidModesAndHasExpectedPhysicalAndStabilizedRank; assertion 9개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.RetainsSixRigidModesAndHasExpectedPhysicalAndStabilizedRank 유지 원문 검사 body 및 assertion 동일. f388cb98b5e4d023a89e149554f8288d9250847c7a5738a0657dcbddf4e5220d f388cb98b5e4d023a89e149554f8288d9250847c7a5738a0657dcbddf4e5220d ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_EQ(NumericalRank(scaled_physical20), 14U) | EXPECT_EQ(NumericalRank(scaled_stabilized24), 18U) | ASSERT_GT(physical_norm, 0.0) | ASSERT_GT(stabilized_norm, 0.0) | ASSERT_GT(modeNorm, 0.0) | EXPECT_LE(scaled_physical24.Multiply(scaledMode).Norm() / (physical_norm * modeNorm), 1.0e-10) | EXPECT_LE(scaled_stabilized24.Multiply(scaledMode).Norm() / (stabilized_norm * modeNorm), 1.0e-10) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_EQ(NumericalRank(scaled_physical20), 14U) | EXPECT_EQ(NumericalRank(scaled_stabilized24), 18U) | ASSERT_GT(physical_norm, 0.0) | ASSERT_GT(stabilized_norm, 0.0) | ASSERT_GT(modeNorm, 0.0) | EXPECT_LE(scaled_physical24.Multiply(scaledMode).Norm() / (physical_norm * modeNorm), 1.0e-10) | EXPECT_LE(scaled_stabilized24.Multiply(scaledMode).Norm() / (stabilized_norm * modeNorm), 1.0e-10) -Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellPatch.ReproducesIndependentMembraneBendingShearAndTwistFields Mitc4ShellPatch.ReproducesIndependentMembraneBendingShearAndTwistFields; assertion 3개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellPatch.ReproducesIndependentMembraneBendingShearAndTwistFields 유지 원문 검사 body 및 assertion 동일. 85d6d3543ba1e1a40665939da00f88617f4bc27a8cb54ee6ca6f26848d3abe12 85d6d3543ba1e1a40665939da00f88617f4bc27a8cb54ee6ca6f26848d3abe12 ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_GT(QuadraticEnergy(stiffness, field), 0.0) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_GT(QuadraticEnergy(stiffness, field), 0.0) -Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.UsesAllPhysicalRotationDiagonalsAndFixedFactor Mitc4ShellDrilling.UsesAllPhysicalRotationDiagonalsAndFixedFactor; assertion 5개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.UsesAllPhysicalRotationDiagonalsAndFixedFactor 유지 원문 검사 body 및 assertion 동일. 8b0addafb6afb8018440c8784db44a56ead47ff68faa9389836024122e94a95f 8b0addafb6afb8018440c8784db44a56ead47ff68faa9389836024122e94a95f ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_TRUE(std::isfinite(diagonal)) | ASSERT_GE(diagonal, 0.0) | EXPECT_DOUBLE_EQ(stiffness.drilling_stiffness, 1.0e-3 * expected_sum / 8.0) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_TRUE(std::isfinite(diagonal)) | ASSERT_GE(diagonal, 0.0) | EXPECT_DOUBLE_EQ(stiffness.drilling_stiffness, 1.0e-3 * expected_sum / 8.0) -Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.IntegratesFlatConsistentAndScalarRowSumLumpedMass Mitc4ShellMass.IntegratesFlatConsistentAndScalarRowSumLumpedMass; assertion 10개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.IntegratesFlatConsistentAndScalarRowSumLumpedMass 유지 원문 검사 body 및 assertion 동일. 13d278e7f55aa0a671221d5a7335510907c58490fb3d02e8defde941b85ec16f 13d278e7f55aa0a671221d5a7335510907c58490fb3d02e8defde941b85ec16f ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(mass.nodal_moments[row][0U], 6.0, 1.0e-12) | EXPECT_NEAR(mass.nodal_moments[row][1U], 0.0, 1.0e-12) | EXPECT_NEAR(mass.nodal_moments[row][2U], 2.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[0U](row, column), pattern[row][column] * (2.0 / 3.0), 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[1U](row, column), 0.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[2U](row, column), pattern[row][column] * (2.0 / 9.0), 1.0e-12) | EXPECT_NEAR( mass.lumped_global24(6U * row + component, 6U * row + component), 6.0, 1.0e-12) | EXPECT_NEAR(mass.lumped_global24(6U * row + 3U + component, 6U * row + 3U + component), component == 2U ? 0.0 : 2.0, 1.0e-12) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(mass.nodal_moments[row][0U], 6.0, 1.0e-12) | EXPECT_NEAR(mass.nodal_moments[row][1U], 0.0, 1.0e-12) | EXPECT_NEAR(mass.nodal_moments[row][2U], 2.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[0U](row, column), pattern[row][column] * (2.0 / 3.0), 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[1U](row, column), 0.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[2U](row, column), pattern[row][column] * (2.0 / 9.0), 1.0e-12) | EXPECT_NEAR( mass.lumped_global24(6U * row + component, 6U * row + component), 6.0, 1.0e-12) | EXPECT_NEAR(mass.lumped_global24(6U * row + 3U + component, 6U * row + 3U + component), component == 2U ? 0.0 : 2.0, 1.0e-12) -Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.RejectsNonpositiveAndNonfiniteDensity Mitc4ShellMass.RejectsNonpositiveAndNonfiniteDensity; assertion 4개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.RejectsNonpositiveAndNonfiniteDensity 유지 원문 검사 body 및 assertion 동일. 85d0b08a8b413046a1dd64d263b9a847bb933dc7411f5f611651c1fe772f8220 85d0b08a8b413046a1dd64d263b9a847bb933dc7411f5f611651c1fe772f8220 "ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_FALSE(mass.HasValue()) | ASSERT_EQ(mass.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(mass.GetStatus().Diagnostics()[0U].code, ""invalid-shell-mass"")" "ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_FALSE(mass.HasValue()) | ASSERT_EQ(mass.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(mass.GetStatus().Diagnostics()[0U].code, ""invalid-shell-mass"")" -Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.PreservesFiniteNodalVarianceAcrossDensityScale Mitc4ShellMass.PreservesFiniteNodalVarianceAcrossDensityScale; assertion 6개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.PreservesFiniteNodalVarianceAcrossDensityScale 유지 원문 검사 body 및 assertion 동일. 35f70d35723a1a6a5ca19dbe73e587dc1c35ec4828f98616aa2dab17d4920e3e 35f70d35723a1a6a5ca19dbe73e587dc1c35ec4828f98616aa2dab17d4920e3e ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_TRUE(std::isfinite(moments[0U])) | EXPECT_TRUE(std::isfinite(moments[1U])) | EXPECT_TRUE(std::isfinite(moments[2U])) | EXPECT_GT(moments[2U] - moments[1U] * (moments[1U] / moments[0U]), 0.0) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_TRUE(std::isfinite(moments[0U])) | EXPECT_TRUE(std::isfinite(moments[1U])) | EXPECT_TRUE(std::isfinite(moments[2U])) | EXPECT_GT(moments[2U] - moments[1U] * (moments[1U] / moments[0U]), 0.0) -Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.PreservesIndependentWarpedMomentOracle Mitc4ShellMass.PreservesIndependentWarpedMomentOracle; assertion 8개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.PreservesIndependentWarpedMomentOracle 유지 원문 검사 body 및 assertion 동일. 643cacec125570c0bafe60064f994407b8a1491199f88ce3b0e9af13472d444d 643cacec125570c0bafe60064f994407b8a1491199f88ce3b0e9af13472d444d ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(mass.consistent_moments[0U](0U, 0U), 17609.0 / 28800.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[1U](0U, 0U), 11003.0 / 1440000.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[2U](0U, 0U), 88177.0 / 6912000.0, 1.0e-12) | EXPECT_NEAR(total_mass, 7743.0 / 1600.0, 1.0e-12) | EXPECT_NEAR(total_first_moment, 739.0 / 12000.0, 1.0e-12) | EXPECT_NEAR(total_second_moment, 517.0 / 5120.0, 1.0e-12) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(mass.consistent_moments[0U](0U, 0U), 17609.0 / 28800.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[1U](0U, 0U), 11003.0 / 1440000.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[2U](0U, 0U), 88177.0 / 6912000.0, 1.0e-12) | EXPECT_NEAR(total_mass, 7743.0 / 1600.0, 1.0e-12) | EXPECT_NEAR(total_first_moment, 739.0 / 12000.0, 1.0e-12) | EXPECT_NEAR(total_second_moment, 517.0 / 5120.0, 1.0e-12) -Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.MeetsPartialBoundaryCompleteMatrixTargets Mitc4ShellMass.MeetsPartialBoundaryCompleteMatrixTargets; assertion 7개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.MeetsPartialBoundaryCompleteMatrixTargets 유지 원문 검사 body 및 assertion 동일. 7b4ca55c7d526b275a1ca19f3c65a04f168c1ca514a329671b9fc594f4f468a1 7b4ca55c7d526b275a1ca19f3c65a04f168c1ca514a329671b9fc594f4f468a1 ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(stiffness_candidate.Value().drilling_stiffness, 19.0 / 4800.0, 1.0e-12) | EXPECT_NEAR(complete_stiffness, 10369.0 / 7500.0, 1.0e-12) | EXPECT_NEAR(lumped_mass, 3.0 / 50.0, 1.0e-12) | EXPECT_NEAR(complete_stiffness / lumped_mass, 10369.0 / 450.0, 1.0e-12) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(stiffness_candidate.Value().drilling_stiffness, 19.0 / 4800.0, 1.0e-12) | EXPECT_NEAR(complete_stiffness, 10369.0 / 7500.0, 1.0e-12) | EXPECT_NEAR(lumped_mass, 3.0 / 50.0, 1.0e-12) | EXPECT_NEAR(complete_stiffness / lumped_mass, 10369.0 / 450.0, 1.0e-12) -Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.RecomputesCompleteMassAndStiffnessCovariantly Mitc4ShellMass.RecomputesCompleteMassAndStiffnessCovariantly; assertion 6개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.RecomputesCompleteMassAndStiffnessCovariantly 유지 원문 검사 body 및 assertion 동일. 1235757b19e3bdacbfc2226ca9a3b839417e1f295516a1d4de6259acb4d0be43 1235757b19e3bdacbfc2226ca9a3b839417e1f295516a1d4de6259acb4d0be43 ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(original_stiffness.HasValue()) | ASSERT_TRUE(rotated_stiffness.HasValue()) | ASSERT_TRUE(original_mass.HasValue()) | ASSERT_TRUE(rotated_mass.HasValue()) ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(original_stiffness.HasValue()) | ASSERT_TRUE(rotated_stiffness.HasValue()) | ASSERT_TRUE(original_mass.HasValue()) | ASSERT_TRUE(rotated_mass.HasValue()) -Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.FailsNonfiniteReferenceAndStabilizesEachPureDrillCoordinate Mitc4ShellDrilling.FailsNonfiniteReferenceAndStabilizesEachPureDrillCoordinate; assertion 13개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.FailsNonfiniteReferenceAndStabilizesEachPureDrillCoordinate 유지 원문 검사 body 및 assertion 동일. 0d2b529828fad74fc88ca1a545fe19d255f87c53d24275ec741bd114bbebe1ca 0d2b529828fad74fc88ca1a545fe19d255f87c53d24275ec741bd114bbebe1ca "ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_DOUBLE_EQ(stiffness.physical_global24.Multiply(pure_drill).Norm(), 0.0) | EXPECT_DOUBLE_EQ(drill_action[6U * node_index + 5U], stiffness.drilling_stiffness) | EXPECT_GT(QuadraticEnergy(stiffness.drilling_global24, pure_drill), 0.0) | ASSERT_TRUE(extreme_shell.HasValue()) | ASSERT_FALSE(failure.HasValue()) | ASSERT_EQ(failure.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(failure.GetStatus().Diagnostics()[0].code, ""invalid-shell-stiffness"") | ASSERT_FALSE(repeated_failure.HasValue()) | ASSERT_EQ(repeated_failure.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(repeated_failure.GetStatus().Diagnostics()[0].code, failure.GetStatus().Diagnostics()[0].code) | EXPECT_EQ(repeated_failure.GetStatus().Diagnostics()[0].message, failure.GetStatus().Diagnostics()[0].message)" "ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_DOUBLE_EQ(stiffness.physical_global24.Multiply(pure_drill).Norm(), 0.0) | EXPECT_DOUBLE_EQ(drill_action[6U * node_index + 5U], stiffness.drilling_stiffness) | EXPECT_GT(QuadraticEnergy(stiffness.drilling_global24, pure_drill), 0.0) | ASSERT_TRUE(extreme_shell.HasValue()) | ASSERT_FALSE(failure.HasValue()) | ASSERT_EQ(failure.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(failure.GetStatus().Diagnostics()[0].code, ""invalid-shell-stiffness"") | ASSERT_FALSE(repeated_failure.HasValue()) | ASSERT_EQ(repeated_failure.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(repeated_failure.GetStatus().Diagnostics()[0].code, failure.GetStatus().Diagnostics()[0].code) | EXPECT_EQ(repeated_failure.GetStatus().Diagnostics()[0].message, failure.GetStatus().Diagnostics()[0].message)" -Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.ExcludesPureDrillFromPhysicalRecoveryAndEnergy Mitc4ShellDrilling.ExcludesPureDrillFromPhysicalRecoveryAndEnergy; assertion 8개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.ExcludesPureDrillFromPhysicalRecoveryAndEnergy 유지 원문 검사 body 및 assertion 동일. 3dad0709f8a7d8746df1e04699e6777b558a71db23f22ac13f5c98ecbd6b084d 3dad0709f8a7d8746df1e04699e6777b558a71db23f22ac13f5c98ecbd6b084d ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_GT(stiffness_candidate.Value() .stabilized_global24.Multiply(pure_drill) .Norm(), 0.0) | ASSERT_TRUE(recovery_candidate.HasValue()) | EXPECT_DOUBLE_EQ(recovery.strain_energy, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_GT(stiffness_candidate.Value() .stabilized_global24.Multiply(pure_drill) .Norm(), 0.0) | ASSERT_TRUE(recovery_candidate.HasValue()) | EXPECT_DOUBLE_EQ(recovery.strain_energy, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) -Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellPhysicalRecovery.RecoversHandFieldAtFixedLocationsAndSectionPositions Mitc4ShellPhysicalRecovery.RecoversHandFieldAtFixedLocationsAndSectionPositions; assertion 8개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellPhysicalRecovery.RecoversHandFieldAtFixedLocationsAndSectionPositions 유지 원문 검사 body 및 assertion 동일. 2a4132bcc260b96aec7e5c144e1ccf92a65c7dec753c940e378fac3737f08d83 2a4132bcc260b96aec7e5c144e1ccf92a65c7dec753c940e378fac3737f08d83 ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(recovery_candidate.HasValue()) | ASSERT_EQ(recovery.points.size(), expected_coordinates.size()) | EXPECT_EQ(point.natural_coordinates, expected_coordinates[point_index]) | EXPECT_NEAR(point.generalized_strain[component], kGeneralized[component], 1.0e-12) | EXPECT_NEAR(point.section_resultant[component], kExpectedResultant[component], 1.0e-12) | EXPECT_NEAR(point.in_plane_stress[position][component], kExpectedStress[position][component], 1.0e-12) | EXPECT_NEAR(recovery.strain_energy, 72.16, 1.0e-12) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(recovery_candidate.HasValue()) | ASSERT_EQ(recovery.points.size(), expected_coordinates.size()) | EXPECT_EQ(point.natural_coordinates, expected_coordinates[point_index]) | EXPECT_NEAR(point.generalized_strain[component], kGeneralized[component], 1.0e-12) | EXPECT_NEAR(point.section_resultant[component], kExpectedResultant[component], 1.0e-12) | EXPECT_NEAR(point.in_plane_stress[position][component], kExpectedStress[position][component], 1.0e-12) | EXPECT_NEAR(recovery.strain_energy, 72.16, 1.0e-12) -Dev tests/unit/elements/mitc4_shell_test.cpp support@1-314 helper/oracle/fixture/include/static assertion 구간: Node, NodePointers, Section, Material, Dot, Cross, RotateAboutGlobalZ, Norm, ExpectVectorNear, ExpectOrthonormalRightHanded, ExpectMatrixNear, ExpectSymmetric, HasPositiveCholeskyPivots, if, FrobeniusNorm, ScaledSymmetryError, ScaledStiffness, SymmetricEigenvalues, NumericalRank, for, count_if, SymmetricOperatorNorm, QuadraticEnergy, PhysicalField, ExpectStrain, PhysicalRigidMode, PlanarNodes tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 297d7d85ca88c30c2fcba28e5add8b21550acc876c07a4f72e58bd5671374614 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_test.cpp support@345-346 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3871bd00e76dc57ff62fcabeb11b45bf1f6672a56529f21deb75b04370bafdcb 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_test.cpp support@400-401 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2b2e2de4330e6f7b2a8bc958c220fa5074cae2a894fdec078de809b1494a88c0 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_test.cpp support@455-456 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0e9489db8c044b5eac22c751c63b47dd64307874cd16a718c86fe5d4d8183fd5 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_test.cpp support@540-541 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3c4055c21da1e40459430c329495ace7af1b4404b56501366394a6789c7fd255 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_test.cpp support@555-556 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d78ec2164cda37dda980863249f1d1b8f01e17f082f71061e46180accb42a7b4 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_test.cpp support@656-657 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 297c797dbfa396881a360ce5e6061cad0ac811f3829247f77cbbe5c5d6ef704a 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_test.cpp support@685-686 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 832b8cc9cff26faa1e25dd5159b323b77839151eb7675edaaf4f6ff39d91a055 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_test.cpp support@734-735 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6b0492533ad982e0ff4c2695c4236ab7345f4db760494bf6488680ce4ce90747 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_test.cpp support@797-798 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 50f5a0316e8562dadd3155c301e30fc715e3dc4c735874d08f7567003cc894f3 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_test.cpp support@890-923 helper/oracle/fixture/include/static assertion 구간: ExpectGlobalZCovariance tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ee879d5be51cb0e71626e93a8224bba6a7ee8b8929d124939771c99853c476ae 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_test.cpp support@1027-1028 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 87cbab04a4d00f30b6ca88389a388eaaee48f9eab162d6d6f1a1a33f1d1c4b41 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_test.cpp support@1070-1071 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9445081d68e7ef72263ba262a8525bf8acd4c08d0212a48e0f87fa92b0d99c6b 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/mitc4_shell_test.cpp support@1108-1109 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 31f30d2b75293b2d01a063d68a9dfdb4e607867386078578966eb04a63d4496a 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 17개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file 이관 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. eb4562c8abedcfbc7c2f953b58bae30f67a84d7ccf0bbea9ae384dfcf595f055 7274bef28faa7c8a38da9436edf00d3d2356031a9ee82618a8b16226f99d687f 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.IntegratesTheRectangleNodalLumpedMassAndNull NonlinearMitc4Inertia.IntegratesTheRectangleNodalLumpedMassAndNull; assertion 5개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.IntegratesTheRectangleNodalLumpedMassAndNull 유지 원문 검사 body 및 assertion 동일. 717e3fc84d47b730a49e4677ba77a96fdeab3929b1e3b870c9fd73495ddf445e 717e3fc84d47b730a49e4677ba77a96fdeab3929b1e3b870c9fd73495ddf445e ASSERT_TRUE(evaluation.HasValue()) | EXPECT_NEAR(mass(6U * row, 6U * column), row == column ? 0.2 : 0.0, 1.0e-12) | EXPECT_NEAR(mass(6U * row + 3U, 6U * column + 3U), row == column ? 0.2 * 0.2 * 0.2 / 12.0 : 0.0, 1.0e-12) | EXPECT_NEAR(mass(6U * row + 5U, 6U * row + 5U), 0.0, 1.0e-12) | EXPECT_LE(mass.Multiply(drilling_null).Norm(), 1.0e-12) ASSERT_TRUE(evaluation.HasValue()) | EXPECT_NEAR(mass(6U * row, 6U * column), row == column ? 0.2 : 0.0, 1.0e-12) | EXPECT_NEAR(mass(6U * row + 3U, 6U * column + 3U), row == column ? 0.2 * 0.2 * 0.2 / 12.0 : 0.0, 1.0e-12) | EXPECT_NEAR(mass(6U * row + 5U, 6U * row + 5U), 0.0, 1.0e-12) | EXPECT_LE(mass.Multiply(drilling_null).Norm(), 1.0e-12) -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.UsesPhysicalAccelerationAndExactCurrentForce NonlinearMitc4Inertia.UsesPhysicalAccelerationAndExactCurrentForce; assertion 3개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.UsesPhysicalAccelerationAndExactCurrentForce 유지 원문 검사 body 및 assertion 동일. ddce9716997e9842683e77402fbf5b3b865335261d285318138c471950069a35 ddce9716997e9842683e77402fbf5b3b865335261d285318138c471950069a35 ASSERT_TRUE(evaluation.HasValue()) | EXPECT_NEAR(evaluation.Value().force[index], expected[index], 1.0e-11) | EXPECT_NEAR(evaluation.Value().convective_force[index], 0.0, 1.0e-11) ASSERT_TRUE(evaluation.HasValue()) | EXPECT_NEAR(evaluation.Value().force[index], expected[index], 1.0e-11) | EXPECT_NEAR(evaluation.Value().convective_force[index], 0.0, 1.0e-11) -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.PreservesTinyAngularAccelerationAlongsideRigidTranslationAcceleration NonlinearMitc4Inertia.PreservesTinyAngularAccelerationAlongsideRigidTranslationAcceleration; assertion 5개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.PreservesTinyAngularAccelerationAlongsideRigidTranslationAcceleration 유지 원문 검사 body 및 assertion 동일. 9b2033a70c6b58db45bfc94101520b88db958b78ab526763fbe07eb9c2971b7f 9b2033a70c6b58db45bfc94101520b88db958b78ab526763fbe07eb9c2971b7f ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_DOUBLE_EQ(actual.Value().convective_force[full], 0.0) | ASSERT_GT(scale, 0.0) | EXPECT_LE(error / scale, 1e-12) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_DOUBLE_EQ(actual.Value().convective_force[full], 0.0) | ASSERT_GT(scale, 0.0) | EXPECT_LE(error / scale, 1e-12) -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.MixedScaleRotationDerivativeAndAngularMomentum NonlinearMitc4Inertia.MixedScaleRotationDerivativeAndAngularMomentum; assertion 6개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.MixedScaleRotationDerivativeAndAngularMomentum 유지 원문 검사 body 및 assertion 동일. 81949ff3504ddccc0cbef056e78d8596ee31b99ff69aae08a4dc6503e09bd230 81949ff3504ddccc0cbef056e78d8596ee31b99ff69aae08a4dc6503e09bd230 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_LE(derivative_error / (nodal_rotary_inertia * epsilon), 1e-12) | EXPECT_LE(rate_error / (nodal_rotary_inertia * epsilon), 1e-12) | ASSERT_TRUE(moving.HasValue()) | EXPECT_LE(momentum_error / (nodal_rotary_inertia * epsilon), 1e-12) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_LE(derivative_error / (nodal_rotary_inertia * epsilon), 1e-12) | EXPECT_LE(rate_error / (nodal_rotary_inertia * epsilon), 1e-12) | ASSERT_TRUE(moving.HasValue()) | EXPECT_LE(momentum_error / (nodal_rotary_inertia * epsilon), 1e-12) -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.FlatRotatedLargeOffsetKeepsCenteredRotationalInertiaExactlyZero NonlinearMitc4Inertia.FlatRotatedLargeOffsetKeepsCenteredRotationalInertiaExactlyZero; assertion 4개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.FlatRotatedLargeOffsetKeepsCenteredRotationalInertiaExactlyZero 유지 원문 검사 body 및 assertion 동일. f5b834d0bbcf878284e79ee64f605b5d50f2671a207a226ab6226be2b1d242c8 f5b834d0bbcf878284e79ee64f605b5d50f2671a207a226ab6226be2b1d242c8 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_DOUBLE_EQ(value.Value().force[6U * node + 3U + component], 0.0) | EXPECT_DOUBLE_EQ(mass_times_acceleration[6U * node + 3U + component], 0.0) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_DOUBLE_EQ(value.Value().force[6U * node + 3U + component], 0.0) | EXPECT_DOUBLE_EQ(mass_times_acceleration[6U * node + 3U + component], 0.0) -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.WarpedGeometryRetainsNonzeroFirstThicknessMoment NonlinearMitc4Inertia.WarpedGeometryRetainsNonzeroFirstThicknessMoment; assertion 3개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.WarpedGeometryRetainsNonzeroFirstThicknessMoment 유지 원문 검사 body 및 assertion 동일. 89f7e9f4b875516c794ec880dbf48d5a8e55b0402e9a1c3dfa1382b255cacf26 89f7e9f4b875516c794ec880dbf48d5a8e55b0402e9a1c3dfa1382b255cacf26 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_GT(coupling, 0.0) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_GT(coupling, 0.0) -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.InverseIdentityAndCurrentAnalyticNullAtFiniteRotation DynamicRotation.InverseIdentityAndCurrentAnalyticNullAtFiniteRotation; assertion 9개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.InverseIdentityAndCurrentAnalyticNullAtFiniteRotation 이관 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. cd06eaf77eb17e3b6b87e26c1c7da6266678a5a1cf51952a44dcde328ab3e100 a38ec8c66743c96d9852840c0a2a33e0c3a14f330dd00369fcaedf51b341f3ee ASSERT_TRUE(value.HasValue()) | EXPECT_LE( (value.Value().drill_null - inverse_column / inverse_column.Norm()) .Norm(), 1.0e-12) | EXPECT_NEAR(identity_column[row], row == column ? 1.0 : 0.0, 1.0e-12) | ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | EXPECT_LE(mass.Multiply(n).Norm() / MatrixNorm(mass), 1.0e-12) | EXPECT_LE(std::abs(n.Dot(scaled_force)) / scaled_force.Norm(), 1.0e-10) | EXPECT_GT(mass.Multiply(fixed_drill).Norm() / MatrixNorm(mass), 1.0e-8) ASSERT_TRUE(value.HasValue()) | EXPECT_GT(mapped[column], 0.0) | EXPECT_NEAR(value.Value().drill_null.Norm(), 1.0, 1e-12) | EXPECT_NEAR(mapped[row], 0.0, 1e-12) | ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | EXPECT_LE(mass.Multiply(n).Norm() / MatrixNorm(mass), 1.0e-12) | EXPECT_LE(std::abs(n.Dot(scaled_force)) / scaled_force.Norm(), 1.0e-10) | EXPECT_GT(mass.Multiply(fixed_drill).Norm() / MatrixNorm(mass), 1.0e-8) -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.RejectsIllConditionedPhysicalMassWithoutDeletingIt NonlinearMitc4Inertia.RejectsIllConditionedPhysicalMassWithoutDeletingIt; assertion 3개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.RejectsIllConditionedPhysicalMassWithoutDeletingIt 유지 원문 검사 body 및 assertion 동일. 5f0adf729846e876c90ddcd5db8123c9005a2541189d7a72ac1736116d411500 5f0adf729846e876c90ddcd5db8123c9005a2541189d7a72ac1736116d411500 "EXPECT_TRUE(normal.Create().HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].code, ""ill-conditioned-nonlinear-inertia-positive-mass"")" "EXPECT_TRUE(normal.Create().HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].code, ""ill-conditioned-nonlinear-inertia-positive-mass"")" -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.ConvectiveForceDoesNotLoseSmallValuesToAcceleration NonlinearMitc4Inertia.ConvectiveForceDoesNotLoseSmallValuesToAcceleration; assertion 5개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.ConvectiveForceDoesNotLoseSmallValuesToAcceleration 유지 원문 검사 body 및 assertion 동일. 25d5baa1b968f822aa4dd035d4e323310708e8e73f2ceaffcf3f657b99b2b86a 25d5baa1b968f822aa4dd035d4e323310708e8e73f2ceaffcf3f657b99b2b86a ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(ordinary.HasValue()) | ASSERT_TRUE(large.HasValue()) | EXPECT_GT(ordinary.Value().convective_force.Norm(), 0.0) | EXPECT_EQ(ordinary.Value().convective_force[i], large.Value().convective_force[i]) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(ordinary.HasValue()) | ASSERT_TRUE(large.HasValue()) | EXPECT_GT(ordinary.Value().convective_force.Norm(), 0.0) | EXPECT_EQ(ordinary.Value().convective_force[i], large.Value().convective_force[i]) -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.PartialAndEffectiveTangentsPassTheScaledFixedSweep NonlinearMitc4Inertia.PartialAndEffectiveTangentsPassTheScaledFixedSweep; assertion 5개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.PartialAndEffectiveTangentsPassTheScaledFixedSweep 유지 원문 검사 body 및 assertion 동일. e5946458fbc3006710a0af48c556f989a6be04fde87c4c61c0e4bd18366c8315 e5946458fbc3006710a0af48c556f989a6be04fde87c4c61c0e4bd18366c8315 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(vp.HasValue()) | ASSERT_TRUE(vm.HasValue()) | EXPECT_TRUE(consecutive) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(vp.HasValue()) | ASSERT_TRUE(vm.HasValue()) | EXPECT_TRUE(consecutive) -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.MatchesIndependentWarpedNodalMomentsEnergyAndPower NonlinearMitc4Inertia.MatchesIndependentWarpedNodalMomentsEnergyAndPower; assertion 17개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.MatchesIndependentWarpedNodalMomentsEnergyAndPower 유지 원문 검사 body 및 assertion 동일. 259d4f9247683cf706cedd32eb2bf44ce9e33d0ed8119ef7a57f197466e3d8aa 259d4f9247683cf706cedd32eb2bf44ce9e33d0ed8119ef7a57f197466e3d8aa ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_LE(mass_error / MatrixNorm(expected_mass), 1.0e-12) | EXPECT_LE(symmetry_error / MatrixNorm(expected_mass), 1.0e-12) | EXPECT_LE( std::abs(value.Value().kinetic_energy - oracle.energy) / oracle.energy, 1.0e-12) | EXPECT_LE(std::abs(0.5 * state.v.Dot(value.Value().mass.Multiply(state.v)) - oracle.energy) / oracle.energy, 1.0e-12) | EXPECT_LE(std::abs(state.v.Dot(value.Value().force) - oracle.power) / std::abs(oracle.power), 1.0e-10) | EXPECT_LE(Difference(ApplyD(value.Value().force, fixture.Length()), ApplyD(oracle.force, fixture.Length()), 1.0) .Norm() / ApplyD(oracle.force, fixture.Length()).Norm(), 1.0e-12) | EXPECT_LE((value.Value().momentum - oracle.momentum).Norm() / oracle.momentum.Norm(), 1.0e-12) | EXPECT_LE( (value.Value().angular_momentum - oracle.angular_momentum).Norm() / oracle.angular_momentum.Norm(), 1.0e-12) | EXPECT_LE((value.Value().momentum_rate - oracle.momentum_rate).Norm() / oracle.momentum_rate.Norm(), 1.0e-12) | EXPECT_LE( (value.Value().angular_momentum_rate - oracle.angular_momentum_rate) .Norm() / oracle.angular_momentum_rate.Norm(), 1.0e-12) | ASSERT_TRUE(bi.HasValue()) | ASSERT_TRUE(bj.HasValue()) | EXPECT_LE(std::abs(numerator[k] / denominator[k] - oracle.moments[k][i][j]) / scale, 1.0e-12) | ASSERT_TRUE(translation.HasValue()) | EXPECT_NEAR(translation.Value().kinetic_energy / oracle.total_mass, 0.25, 1.0e-12) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_LE(mass_error / MatrixNorm(expected_mass), 1.0e-12) | EXPECT_LE(symmetry_error / MatrixNorm(expected_mass), 1.0e-12) | EXPECT_LE( std::abs(value.Value().kinetic_energy - oracle.energy) / oracle.energy, 1.0e-12) | EXPECT_LE(std::abs(0.5 * state.v.Dot(value.Value().mass.Multiply(state.v)) - oracle.energy) / oracle.energy, 1.0e-12) | EXPECT_LE(std::abs(state.v.Dot(value.Value().force) - oracle.power) / std::abs(oracle.power), 1.0e-10) | EXPECT_LE(Difference(ApplyD(value.Value().force, fixture.Length()), ApplyD(oracle.force, fixture.Length()), 1.0) .Norm() / ApplyD(oracle.force, fixture.Length()).Norm(), 1.0e-12) | EXPECT_LE((value.Value().momentum - oracle.momentum).Norm() / oracle.momentum.Norm(), 1.0e-12) | EXPECT_LE( (value.Value().angular_momentum - oracle.angular_momentum).Norm() / oracle.angular_momentum.Norm(), 1.0e-12) | EXPECT_LE((value.Value().momentum_rate - oracle.momentum_rate).Norm() / oracle.momentum_rate.Norm(), 1.0e-12) | EXPECT_LE( (value.Value().angular_momentum_rate - oracle.angular_momentum_rate) .Norm() / oracle.angular_momentum_rate.Norm(), 1.0e-12) | ASSERT_TRUE(bi.HasValue()) | ASSERT_TRUE(bj.HasValue()) | EXPECT_LE(std::abs(numerator[k] / denominator[k] - oracle.moments[k][i][j]) / scale, 1.0e-12) | ASSERT_TRUE(translation.HasValue()) | EXPECT_NEAR(translation.Value().kinetic_energy / oracle.total_mass, 0.25, 1.0e-12) -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.InitialMassMatchesEigenLumpingAndFiniteEnergyObeysJensen NonlinearMitc4Inertia.InitialMassMatchesEigenLumpingAndFiniteEnergyObeysJensen; assertion 8개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.InitialMassMatchesEigenLumpingAndFiniteEnergyObeysJensen 유지 원문 검사 body 및 assertion 동일. c9725cc3d16533a26647720f977a41ee8e1edcbfddf43560b3abf4a638464969 c9725cc3d16533a26647720f977a41ee8e1edcbfddf43560b3abf4a638464969 ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(eigen.HasValue()) | ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(initial.HasValue()) | EXPECT_NEAR(initial.Value().mass(i, j), eigen.Value().lumped_global24(i, j), 1.0e-12) | EXPECT_EQ(initial.Value().mass(i, j), 0.0) | EXPECT_GT(lumped.energy - consistent.energy, 0.0) | EXPECT_NEAR(lumped.total_mass, consistent.total_mass, 1.0e-12) ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(eigen.HasValue()) | ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(initial.HasValue()) | EXPECT_NEAR(initial.Value().mass(i, j), eigen.Value().lumped_global24(i, j), 1.0e-12) | EXPECT_EQ(initial.Value().mass(i, j), 0.0) | EXPECT_GT(lumped.energy - consistent.energy, 0.0) | EXPECT_NEAR(lumped.total_mass, consistent.total_mass, 1.0e-12) -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.ThirdDerivativesMatchAllPermutationsAndInteriorSweep DynamicRotation.ThirdDerivativesMatchAllPermutationsAndInteriorSweep; assertion 6개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.ThirdDerivativesMatchAllPermutationsAndInteriorSweep 유지 원문 검사 body 및 assertion 동일. fed5b777e0226e78a7a852200777d80a3d9736b13300e6670b9d244bea2fe464 fed5b777e0226e78a7a852200777d80a3d9736b13300e6670b9d244bea2fe464 ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_LE((analytic - oracle).Norm(), 1.0e-12) | EXPECT_LE((analytic - Third(value.Value(), directions[t], directions[p], directions[r])) .Norm(), 1.0e-12) | EXPECT_TRUE(consecutive[r][t]) ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_LE((analytic - oracle).Norm(), 1.0e-12) | EXPECT_LE((analytic - Third(value.Value(), directions[t], directions[p], directions[r])) .Norm(), 1.0e-12) | EXPECT_TRUE(consecutive[r][t]) -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.NormalizedNullDerivativesIncludeNormalizationCurvature DynamicRotation.NormalizedNullDerivativesIncludeNormalizationCurvature; assertion 9개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.NormalizedNullDerivativesIncludeNormalizationCurvature 유지 원문 검사 body 및 assertion 동일. b1519383145d86730f51475376a73c825a7eb748c5e69bbe9a502bc32069efcd b1519383145d86730f51475376a73c825a7eb748c5e69bbe9a502bc32069efcd ASSERT_TRUE(value.HasValue()) | EXPECT_NEAR(value.Value().drill_null.Norm(), 1.0, 1.0e-12) | EXPECT_NEAR(value.Value().drill_null.Dot(first), 0.0, 1.0e-12) | EXPECT_NEAR( value.Value().drill_null.Dot(value.Value().null_directional_second), -first.Dot(first), 1.0e-12) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_TRUE(consecutive) | EXPECT_FALSE(fesa::EvaluateDynamicRotation({}, {0, 0, 2}, {}, {}).HasValue()) | EXPECT_FALSE( fesa::EvaluateDynamicRotation( {std::numeric_limits::quiet_NaN(), 0, 0}, initial, {}, {}) .HasValue()) ASSERT_TRUE(value.HasValue()) | EXPECT_NEAR(value.Value().drill_null.Norm(), 1.0, 1.0e-12) | EXPECT_NEAR(value.Value().drill_null.Dot(first), 0.0, 1.0e-12) | EXPECT_NEAR( value.Value().drill_null.Dot(value.Value().null_directional_second), -first.Dot(first), 1.0e-12) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_TRUE(consecutive) | EXPECT_FALSE(fesa::EvaluateDynamicRotation({}, {0, 0, 2}, {}, {}).HasValue()) | EXPECT_FALSE( fesa::EvaluateDynamicRotation( {std::numeric_limits::quiet_NaN(), 0, 0}, initial, {}, {}) .HasValue()) -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.UnitAndGlobalFrameChangesPreservePhysicalMetrics NonlinearMitc4Inertia.UnitAndGlobalFrameChangesPreservePhysicalMetrics; assertion 14개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.UnitAndGlobalFrameChangesPreservePhysicalMetrics 유지 원문 검사 body 및 assertion 동일. d1d1d2152f232cee2453d1b80ac93c5759be9c4a35df8128bf14ddec28c2b2c8 d1d1d2152f232cee2453d1b80ac93c5759be9c4a35df8128bf14ddec28c2b2c8 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(converted_inertia.HasValue()) | ASSERT_TRUE(uv.HasValue()) | EXPECT_LE(std::abs(uv.Value().kinetic_energy / energy_scale - value.Value().kinetic_energy) / value.Value().kinetic_energy, 1.0e-12) | EXPECT_LE(error / MatrixNorm(original_scaled), 1.0e-12) | EXPECT_LE(Difference(original_force, converted_force, 1.0).Norm() / original_force.Norm(), 1.0e-10) | ASSERT_TRUE(frame_inertia.HasValue()) | ASSERT_TRUE(fv.HasValue()) | EXPECT_LE(std::abs(fv.Value().kinetic_energy - value.Value().kinetic_energy) / value.Value().kinetic_energy, 1.0e-12) | EXPECT_LE((fv.Value().momentum - rotate(value.Value().momentum)).Norm() / value.Value().momentum.Norm(), 1.0e-12) | EXPECT_LE( (fv.Value().angular_momentum - rotate(value.Value().angular_momentum)) .Norm() / value.Value().angular_momentum.Norm(), 1.0e-12) | EXPECT_LE((actual - expected).Norm() / expected.Norm(), 1.0e-10) | EXPECT_LE(covariance_error / MatrixNorm(value.Value().mass), 1.0e-12) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(converted_inertia.HasValue()) | ASSERT_TRUE(uv.HasValue()) | EXPECT_LE(std::abs(uv.Value().kinetic_energy / energy_scale - value.Value().kinetic_energy) / value.Value().kinetic_energy, 1.0e-12) | EXPECT_LE(error / MatrixNorm(original_scaled), 1.0e-12) | EXPECT_LE(Difference(original_force, converted_force, 1.0).Norm() / original_force.Norm(), 1.0e-10) | ASSERT_TRUE(frame_inertia.HasValue()) | ASSERT_TRUE(fv.HasValue()) | EXPECT_LE(std::abs(fv.Value().kinetic_energy - value.Value().kinetic_energy) / value.Value().kinetic_energy, 1.0e-12) | EXPECT_LE((fv.Value().momentum - rotate(value.Value().momentum)).Norm() / value.Value().momentum.Norm(), 1.0e-12) | EXPECT_LE( (fv.Value().angular_momentum - rotate(value.Value().angular_momentum)) .Norm() / value.Value().angular_momentum.Norm(), 1.0e-12) | EXPECT_LE((actual - expected).Norm() / expected.Norm(), 1.0e-10) | EXPECT_LE(covariance_error / MatrixNorm(value.Value().mass), 1.0e-12) -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.MatchesEightyDigitIndependentBlockExponentialAnchors DynamicRotation.MatchesEightyDigitIndependentBlockExponentialAnchors; assertion 4개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.MatchesEightyDigitIndependentBlockExponentialAnchors 유지 원문 검사 body 및 assertion 동일. afd5da8bcdde50b87721fb93bff8d47f1886f6b6812e83259d1208ec2b2dfb06 afd5da8bcdde50b87721fb93bff8d47f1886f6b6812e83259d1208ec2b2dfb06 ASSERT_TRUE(value.HasValue()) | EXPECT_LE((Third(value.Value(), e1, e1, e1) - expected[i][0]).Norm(), 1.0e-12) | EXPECT_LE((Third(value.Value(), e1, e2, e3) - expected[i][1]).Norm(), 1.0e-12) | EXPECT_LE( (Third(value.Value(), mixed, mixed, mixed) - expected[i][2]).Norm(), 1.0e-12) ASSERT_TRUE(value.HasValue()) | EXPECT_LE((Third(value.Value(), e1, e1, e1) - expected[i][0]).Norm(), 1.0e-12) | EXPECT_LE((Third(value.Value(), e1, e2, e3) - expected[i][1]).Norm(), 1.0e-12) | EXPECT_LE( (Third(value.Value(), mixed, mixed, mixed) - expected[i][2]).Norm(), 1.0e-12) -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.IndependentOracleDetectsEachRequiredOmission NonlinearMitc4Inertia.IndependentOracleDetectsEachRequiredOmission; assertion 10개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.IndependentOracleDetectsEachRequiredOmission 유지 원문 검사 body 및 assertion 동일. cd75fd015eb68d73365632968c883ff3e0361d16f81d4c93e4e1f28bb39fba01 cd75fd015eb68d73365632968c883ff3e0361d16f81d4c93e4e1f28bb39fba01 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_GT(Difference(mutant, fd, 1.0).Norm() / (mutant.Norm() + fd.Norm()), 1.0e-6) | EXPECT_GT(Difference(ApplyD(no_convective, fixture.Length()), ApplyD(oracle.force, fixture.Length()), 1.0) .Norm() / ApplyD(oracle.force, fixture.Length()).Norm(), 1.0e-6) | ASSERT_TRUE(vplus.HasValue()) | ASSERT_TRUE(vminus.HasValue()) | EXPECT_GT(vfd.Norm(), 0.0) | EXPECT_GT(Difference(missing_dv, vfd, 1.0).Norm() / vfd.Norm(), 1.0e-6) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_GT(Difference(mutant, fd, 1.0).Norm() / (mutant.Norm() + fd.Norm()), 1.0e-6) | EXPECT_GT(Difference(ApplyD(no_convective, fixture.Length()), ApplyD(oracle.force, fixture.Length()), 1.0) .Norm() / ApplyD(oracle.force, fixture.Length()).Norm(), 1.0e-6) | ASSERT_TRUE(vplus.HasValue()) | ASSERT_TRUE(vminus.HasValue()) | EXPECT_GT(vfd.Norm(), 0.0) | EXPECT_GT(Difference(missing_dv, vfd, 1.0).Norm() / vfd.Norm(), 1.0e-6) -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@1-81 helper/oracle/fixture/include/static assertion 구간: Node, Nodes, Pointers, Frames, Inertia, AddRotation, Difference tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. d69ff9a4f48af8ab96bdc107989f8cb690b3bd03e7302f69630eb2aaf558871a 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@177-180 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. 494a3ced593041a4d3ea62a53340f75d552373b567d3ec7ca404700ea0c42534 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@251-443 helper/oracle/fixture/include/static assertion 구간: Multiply, BlockExponentialDerivative, if, Second, Third, MatrixNorm, Fixture, Length, Create, Warped, WarpedNonuniformDirectors, RotateFrame, FlatRotatedLargeOffset, State, FiniteState, ApplyD tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. 222b0316695fd6559144c2fdfdaa9c8cac92e01ef32ad6685b7aff0384ebcc78 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@481-492 helper/oracle/fixture/include/static assertion 구간: ScaledMatrix tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. b069eba225770ec661e53431edf8f9c1df71af521445644b835793d185124063 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@655-779 helper/oracle/fixture/include/static assertion 구간: Integral, IntegrateFivePoints tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. af98d35bc14d69e1d57beb2df3c82bd29703cc630af22865fd95463987225795 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@1305-1306 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 16개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8b41aba213d2ba4ae2a24bdff623bf663253b89997cc5f4a99c70953af1cc092 a2053f0d24af51ecdfe345ef14267b8a57a2530e994c46da68a5bb17f7250341 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.EvaluatesResidualTangentAndRecoveryAtOneTrial NonlinearMitc4Residual.EvaluatesResidualTangentAndRecoveryAtOneTrial; assertion 10개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.EvaluatesResidualTangentAndRecoveryAtOneTrial 유지 원문 검사 body 및 assertion 동일. 2bf5788132debdfcd7990b78d66be3ec5eb35b7039badcbff3737f49e5e0502a 2bf5788132debdfcd7990b78d66be3ec5eb35b7039badcbff3737f49e5e0502a ASSERT_TRUE(recovery.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().internal_residual.Size(), 24U) | EXPECT_EQ(result.Value().internal_tangent.Rows(), 24U) | EXPECT_EQ(result.Value().internal_tangent.Columns(), 24U) | EXPECT_DOUBLE_EQ(result.Value().physical_strain_energy, result.Value().recovery.physical_strain_energy) | EXPECT_DOUBLE_EQ(result.Value().recovery.physical_strain_energy, recovery.Value().physical_strain_energy) | EXPECT_DOUBLE_EQ(result.Value().internal_residual[index], result.Value().internal_force[index]) | EXPECT_EQ(result.Value().recovery.gauss_points[point].generalized_strain, recovery.Value().gauss_points[point].generalized_strain) | EXPECT_EQ(result.Value().recovery.gauss_points[point].section_resultant, recovery.Value().gauss_points[point].section_resultant) ASSERT_TRUE(recovery.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().internal_residual.Size(), 24U) | EXPECT_EQ(result.Value().internal_tangent.Rows(), 24U) | EXPECT_EQ(result.Value().internal_tangent.Columns(), 24U) | EXPECT_DOUBLE_EQ(result.Value().physical_strain_energy, result.Value().recovery.physical_strain_energy) | EXPECT_DOUBLE_EQ(result.Value().recovery.physical_strain_energy, recovery.Value().physical_strain_energy) | EXPECT_DOUBLE_EQ(result.Value().internal_residual[index], result.Value().internal_force[index]) | EXPECT_EQ(result.Value().recovery.gauss_points[point].generalized_strain, recovery.Value().gauss_points[point].generalized_strain) | EXPECT_EQ(result.Value().recovery.gauss_points[point].section_resultant, recovery.Value().gauss_points[point].section_resultant) -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Tangent.MatchesTheApprovedDirectionalSchedule NonlinearMitc4Tangent.MatchesTheApprovedDirectionalSchedule; assertion 9개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Tangent.MatchesTheApprovedDirectionalSchedule 유지 원문 검사 body 및 assertion 동일. 852d3d6bf5b1eb3a07504509b711d63cf08be10b7b4309a5668469b327b54991 852d3d6bf5b1eb3a07504509b711d63cf08be10b7b4309a5668469b327b54991 ASSERT_TRUE(equilibrium.HasValue()) | ASSERT_GT(ChannelNorm(analytical, true), 0.0) | ASSERT_GT(ChannelNorm(analytical, false), 0.0) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_GE(force_order_count, 2U) | EXPECT_GE(moment_order_count, 2U) | EXPECT_LE(force_errors[3U], 1.0e-6) | EXPECT_LE(moment_errors[3U], 1.0e-6) ASSERT_TRUE(equilibrium.HasValue()) | ASSERT_GT(ChannelNorm(analytical, true), 0.0) | ASSERT_GT(ChannelNorm(analytical, false), 0.0) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_GE(force_order_count, 2U) | EXPECT_GE(moment_order_count, 2U) | EXPECT_LE(force_errors[3U], 1.0e-6) | EXPECT_LE(moment_errors[3U], 1.0e-6) -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Tangent.PreservesRigidTranslationNullspaceAndSymmetry NonlinearMitc4Tangent.PreservesRigidTranslationNullspaceAndSymmetry; assertion 4개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Tangent.PreservesRigidTranslationNullspaceAndSymmetry 유지 원문 검사 body 및 assertion 동일. 0f79a384735c9e1976d518ca10d5c463a3d6fd669c1c995425c37c2c94e9f080 0f79a384735c9e1976d518ca10d5c463a3d6fd669c1c995425c37c2c94e9f080 ASSERT_TRUE(equilibrium.HasValue()) | EXPECT_LE(null_action.Norm(), 1.0e-10) | ASSERT_GT(FrobeniusNorm(scaled_tangent), 0.0) | EXPECT_LE(FrobeniusNorm(antisymmetric) / FrobeniusNorm(scaled_tangent), 1.0e-12) ASSERT_TRUE(equilibrium.HasValue()) | EXPECT_LE(null_action.Norm(), 1.0e-10) | ASSERT_GT(FrobeniusNorm(scaled_tangent), 0.0) | EXPECT_LE(FrobeniusNorm(antisymmetric) / FrobeniusNorm(scaled_tangent), 1.0e-12) -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.DoesNotAcceptExternalLoadShares NonlinearMitc4Residual.DoesNotAcceptExternalLoadShares; assertion 3개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.DoesNotAcceptExternalLoadShares 유지 원문 검사 body 및 assertion 동일. 826f6bda479841d9de0424ce957e015e087b41afa0149ca94cfe07d3699f1107 826f6bda479841d9de0424ce957e015e087b41afa0149ca94cfe07d3699f1107 ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().internal_residual[index], second.Value().internal_residual[index]) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().internal_residual[index], second.Value().internal_residual[index]) -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Objectivity.FiniteRigidMotionHasZeroInternalForce NonlinearMitc4Objectivity.FiniteRigidMotionHasZeroInternalForce; assertion 3개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Objectivity.FiniteRigidMotionHasZeroInternalForce 유지 원문 검사 body 및 assertion 동일. 2495a42787caa073516e20ed9797534fb25f3a8a4789d7c71231800206e8ce86 2495a42787caa073516e20ed9797534fb25f3a8a4789d7c71231800206e8ce86 ASSERT_TRUE(result.HasValue()) | EXPECT_LE(result.Value().internal_residual.Norm(), 1.0e-10) | EXPECT_LE(result.Value().physical_strain_energy, 1.0e-12) ASSERT_TRUE(result.HasValue()) | EXPECT_LE(result.Value().internal_residual.Norm(), 1.0e-10) | EXPECT_LE(result.Value().physical_strain_energy, 1.0e-12) -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Patch.RetainsPhysicalRecoveryIdentities NonlinearMitc4Patch.RetainsPhysicalRecoveryIdentities; assertion 1개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Patch.RetainsPhysicalRecoveryIdentities 유지 원문 검사 body 및 assertion 동일. f1b5a3a3696e0af3f261839b80c1164a0c28944c41ad77b4256a31b55f5906b3 f1b5a3a3696e0af3f261839b80c1164a0c28944c41ad77b4256a31b55f5906b3 ASSERT_TRUE(result.HasValue()) ASSERT_TRUE(result.HasValue()) -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.RejectsNonfiniteTrialData NonlinearMitc4Residual.RejectsNonfiniteTrialData; assertion 3개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.RejectsNonfiniteTrialData 유지 원문 검사 body 및 assertion 동일. 3e2e0c59444ee3b19641d2b76ca17ee825160e1821798a88bb12d225f0823f29 3e2e0c59444ee3b19641d2b76ca17ee825160e1821798a88bb12d225f0823f29 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-trial"") | EXPECT_FALSE(overflow_result.HasValue())" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-trial"") | EXPECT_FALSE(overflow_result.HasValue())" -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ZeroTrialOnTranslatedDecimalMeshHasNoArtificialForce NonlinearMitc4Residual.ZeroTrialOnTranslatedDecimalMeshHasNoArtificialForce; assertion 3개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ZeroTrialOnTranslatedDecimalMeshHasNoArtificialForce 유지 원문 검사 body 및 assertion 동일. dbba37dc6b52df765552dc588e502f3d8435f43ff28832f9702bd655c905951e dbba37dc6b52df765552dc588e502f3d8435f43ff28832f9702bd655c905951e ASSERT_TRUE(evaluated.HasValue()) | EXPECT_DOUBLE_EQ(evaluated.Value().internal_force[i], 0.0) | EXPECT_DOUBLE_EQ(evaluated.Value().drilling_energy, 0.0) ASSERT_TRUE(evaluated.HasValue()) | EXPECT_DOUBLE_EQ(evaluated.Value().internal_force[i], 0.0) | EXPECT_DOUBLE_EQ(evaluated.Value().drilling_energy, 0.0) -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExactDirectionalThirdGradientMatchesTangentSweep NonlinearMitc4Residual.ExactDirectionalThirdGradientMatchesTangentSweep; assertion 0개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExactDirectionalThirdGradientMatchesTangentSweep 유지 원문 검사 body 및 assertion 동일. 6d549b636640f56a6c955107a00503e9d58a2649a56aff87cdb9c2e688678c5c 6d549b636640f56a6c955107a00503e9d58a2649a56aff87cdb9c2e688678c5c 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.SmallRotationPhysicalForceRetainsDrillingNullIdentity NonlinearMitc4Residual.SmallRotationPhysicalForceRetainsDrillingNullIdentity; assertion 7개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.SmallRotationPhysicalForceRetainsDrillingNullIdentity 유지 원문 검사 body 및 assertion 동일. 614e3f70648e94b8a868a6e234984c0fc0c47cb9e02c17b202a3955faea48feb 614e3f70648e94b8a868a6e234984c0fc0c47cb9e02c17b202a3955faea48feb ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | ASSERT_GT(physical_scale, 0.0) | ASSERT_GT(total_scale, 0.0) | EXPECT_LE(std::abs(physical) / physical_scale, 1.0e-10) | EXPECT_LE(std::abs(projected - response.Value().drilling_constraint[node]) / total_scale, 1.0e-10) ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | ASSERT_GT(physical_scale, 0.0) | ASSERT_GT(total_scale, 0.0) | EXPECT_LE(std::abs(physical) / physical_scale, 1.0e-10) | EXPECT_LE(std::abs(projected - response.Value().drilling_constraint[node]) / total_scale, 1.0e-10) -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ThirdGradientIsStableAcrossSmallAngleBranches NonlinearMitc4Residual.ThirdGradientIsStableAcrossSmallAngleBranches; assertion 0개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ThirdGradientIsStableAcrossSmallAngleBranches 유지 원문 검사 body 및 assertion 동일. af1fb78eb8d4496f5767606062cf3f28bcf27e5aed115ee79e830293a3479d40 af1fb78eb8d4496f5767606062cf3f28bcf27e5aed115ee79e830293a3479d40 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExactDrillingConstraintHasIndependentForceGradientAndHessian NonlinearMitc4Residual.ExactDrillingConstraintHasIndependentForceGradientAndHessian; assertion 7개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExactDrillingConstraintHasIndependentForceGradientAndHessian 유지 원문 검사 body 및 assertion 동일. a5e30f5af2df2749898ee64cb0c470bdfcf03e6750df0325a9f2a59855b486f6 a5e30f5af2df2749898ee64cb0c470bdfcf03e6750df0325a9f2a59855b486f6 ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | EXPECT_NEAR(exact.Value().drilling_constraint[node], psi, 1e-11) | EXPECT_NEAR(exact.Value().drilling_constraint_gradient(node, i), gradient, 1e-10) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_TRUE(passed) ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | EXPECT_NEAR(exact.Value().drilling_constraint[node], psi, 1e-11) | EXPECT_NEAR(exact.Value().drilling_constraint_gradient(node, i), gradient, 1e-10) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_TRUE(passed) -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExposesExactDrillingConstraintThirdDirectionalGradient NonlinearMitc4Residual.ExposesExactDrillingConstraintThirdDirectionalGradient; assertion 5개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExposesExactDrillingConstraintThirdDirectionalGradient 유지 원문 검사 body 및 assertion 동일. 4a38b5b4ff71243f88af5dc3b4c43d5c10f8ae54ed6456715399299ab8653b88 4a38b5b4ff71243f88af5dc3b4c43d5c10f8ae54ed6456715399299ab8653b88 ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | ASSERT_EQ(exact.Value().drilling_constraint_third_directional_gradient[node] .Size(), 24U) | EXPECT_NEAR( exact.Value().drilling_constraint_third_directional_gradient[node] [row], finite_difference, 2.0e-5) ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | ASSERT_EQ(exact.Value().drilling_constraint_third_directional_gradient[node] .Size(), 24U) | EXPECT_NEAR( exact.Value().drilling_constraint_third_directional_gradient[node] [row], finite_difference, 2.0e-5) -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExternalDrillingConstraintIncludesForceTimeAndCurvatureTerms NonlinearMitc4Residual.ExternalDrillingConstraintIncludesForceTimeAndCurvatureTerms; assertion 10개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExternalDrillingConstraintIncludesForceTimeAndCurvatureTerms 유지 원문 검사 body 및 assertion 동일. ae7d5f1cfc46795fbb1f8992fddd0ff8a72d6148c99d90735a68e0dd5da0bba1 ae7d5f1cfc46795fbb1f8992fddd0ff8a72d6148c99d90735a68e0dd5da0bba1 ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_NEAR(exact.Value().directional_first, (plus.Value().value - minus.Value().value) / (2.0 * h), 2.0e-8) | EXPECT_NEAR(exact.Value().directional_second, (plus.Value().value - 2.0 * exact.Value().value + minus.Value().value) / (h * h), 3.0e-7) | EXPECT_NEAR(exact.Value().gradient_directional_first[row], (plus.Value().gradient[row] - minus.Value().gradient[row]) / (2.0 * h), 3.0e-8) | EXPECT_NEAR( exact.Value().gradient_directional_second[row], (plus.Value().gradient[row] - 2.0 * exact.Value().gradient[row] + minus.Value().gradient[row]) / (h * h), 4.0e-7) | ASSERT_TRUE(positive.HasValue()) | ASSERT_TRUE(negative.HasValue()) | EXPECT_NEAR(exact.Value().hessian(row, column), (positive.Value().gradient[row] - negative.Value().gradient[row]) / (2.0 * h), 2.0e-7) ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_NEAR(exact.Value().directional_first, (plus.Value().value - minus.Value().value) / (2.0 * h), 2.0e-8) | EXPECT_NEAR(exact.Value().directional_second, (plus.Value().value - 2.0 * exact.Value().value + minus.Value().value) / (h * h), 3.0e-7) | EXPECT_NEAR(exact.Value().gradient_directional_first[row], (plus.Value().gradient[row] - minus.Value().gradient[row]) / (2.0 * h), 3.0e-8) | EXPECT_NEAR( exact.Value().gradient_directional_second[row], (plus.Value().gradient[row] - 2.0 * exact.Value().gradient[row] + minus.Value().gradient[row]) / (h * h), 4.0e-7) | ASSERT_TRUE(positive.HasValue()) | ASSERT_TRUE(negative.HasValue()) | EXPECT_NEAR(exact.Value().hessian(row, column), (positive.Value().gradient[row] - negative.Value().gradient[row]) / (2.0 * h), 2.0e-7) -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExternalDrillingConstraintRejectsInvalidRotationAndHasZeroForceValue NonlinearMitc4Residual.ExternalDrillingConstraintRejectsInvalidRotationAndHasZeroForceValue; assertion 9개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExternalDrillingConstraintRejectsInvalidRotationAndHasZeroForceValue 유지 원문 검사 body 및 assertion 동일. c6774c3ef132d2277a95b92d7df0c1f0a2c9cae68cd1562a36ec07921aefc433 c6774c3ef132d2277a95b92d7df0c1f0a2c9cae68cd1562a36ec07921aefc433 "ASSERT_TRUE(zero.HasValue()) | EXPECT_DOUBLE_EQ(zero.Value().value, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().directional_first, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().directional_second, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient[row], 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient_directional_first[row], 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient_directional_second[row], 0.0) | EXPECT_FALSE(invalid.HasValue()) | EXPECT_EQ(invalid.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-rotation"")" "ASSERT_TRUE(zero.HasValue()) | EXPECT_DOUBLE_EQ(zero.Value().value, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().directional_first, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().directional_second, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient[row], 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient_directional_first[row], 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient_directional_second[row], 0.0) | EXPECT_FALSE(invalid.HasValue()) | EXPECT_EQ(invalid.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-rotation"")" -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.TinyRotationPreservesPhysicalForceAndRecoveryEnergy NonlinearMitc4Residual.TinyRotationPreservesPhysicalForceAndRecoveryEnergy; assertion 11개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.TinyRotationPreservesPhysicalForceAndRecoveryEnergy 유지 원문 검사 body 및 assertion 동일. d165f9780c2e6af21e2fd97f7ce8451f18ab885a26d92761617a13cae977696e d165f9780c2e6af21e2fd97f7ce8451f18ab885a26d92761617a13cae977696e ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(zero.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_DOUBLE_EQ(zero.Value().physical_strain_energy, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().physical_force[row], 0.0) | ASSERT_GT(scale, 0.0) | ASSERT_GT(quadratic_energy, 0.0) | EXPECT_LE(error / scale, 1e-12) | EXPECT_GT(actual.Value().physical_strain_energy, 0.0) | EXPECT_LE(std::abs(actual.Value().physical_strain_energy - quadratic_energy) / quadratic_energy, 1e-12) | EXPECT_LE(std::abs(actual.Value().physical_strain_energy - shear_energy) / shear_energy, 1e-12) ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(zero.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_DOUBLE_EQ(zero.Value().physical_strain_energy, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().physical_force[row], 0.0) | ASSERT_GT(scale, 0.0) | ASSERT_GT(quadratic_energy, 0.0) | EXPECT_LE(error / scale, 1e-12) | EXPECT_GT(actual.Value().physical_strain_energy, 0.0) | EXPECT_LE(std::abs(actual.Value().physical_strain_energy - quadratic_energy) / quadratic_energy, 1e-12) | EXPECT_LE(std::abs(actual.Value().physical_strain_energy - shear_energy) / shear_energy, 1e-12) -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@1-197 helper/oracle/fixture/include/static assertion 구간: Node, Nodes, NodePointers, Frames, Shell, if, Trial, AddScaled, Direction, ToVector, ReferenceLength, WorkConjugateDirection, WorkConjugate, ChannelNorm, FrobeniusNorm, WorkConjugateTangent, ExpectRelative tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 90ea99ff9b85b927825b8ae83597911a8c75a64fb655d2f0407528119a4fe7aa 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@226-227 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a5600c1fcbcc2b375d90f9a0b51fcb733f74bb959c86447c819b9a8f8c6bced8 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@290-291 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 138ed0391b2a8c8081bcdd75fe8ff2c89800a73301b761308a5607407eac6b85 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@321-322 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 80a26bf8dd830eafbfa37a987c6ca13ed7f75849c83da7f86476be70612b7b5a 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@336-337 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 808b628cf835f37ca1165035141cf55c77f1b82ba64e5e88837d89c12aa5edc4 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@362-363 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b43457f2efa97906a6ef783cd74e022646ee67c2ef526f6a96855ce0af4d2471 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@401-402 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f2cfb81414bf1e8f81009769c5476d4bfb83a9e564ab1c3851411dfc077ad757 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@420-480 helper/oracle/fixture/include/static assertion 구간: CheckThirdSweep, if tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d3556f4001a86aab0161a4dc5f94d4903c713cd3a2e71db2c68fc845b7929abd 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@837-838 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0436d99db81007fd4713cbcfd2850b351089fc3c05ab34e291a90e1e7621d07d 0436d99db81007fd4713cbcfd2850b351089fc3c05ab34e291a90e1e7621d07d 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.UndeformedStateHasZeroPhysicalRecovery NonlinearMitc4Shell.UndeformedStateHasZeroPhysicalRecovery; assertion 1개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.UndeformedStateHasZeroPhysicalRecovery 유지 원문 검사 body 및 assertion 동일. f3b34af9d811fbfa8302ccb17c75561b3d2674fee61705e5476681bfe4fd4489 f3b34af9d811fbfa8302ccb17c75561b3d2674fee61705e5476681bfe4fd4489 ASSERT_TRUE(recovery.HasValue()) ASSERT_TRUE(recovery.HasValue()) -Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Recovery.BendingResultantsMatchStressThicknessMoments NonlinearMitc4Recovery.BendingResultantsMatchStressThicknessMoments; assertion 4개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Recovery.BendingResultantsMatchStressThicknessMoments 유지 원문 검사 body 및 assertion 동일. 34fd7f143c5939eb6db783e82cb725a6ffab1e0bd5e788a2215805ba0232fdcb 34fd7f143c5939eb6db783e82cb725a6ffab1e0bd5e788a2215805ba0232fdcb ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(recovery.HasValue()) | ASSERT_GT(std::abs(moment), 0.0) | EXPECT_NEAR(point.section_resultant[3U + component], moment, 1.0e-12 * std::abs(moment)) ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(recovery.HasValue()) | ASSERT_GT(std::abs(moment), 0.0) | EXPECT_NEAR(point.section_resultant[3U + component], moment, 1.0e-12 * std::abs(moment)) -Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.RejectsInvalidNodeAndInitialFrameContracts NonlinearMitc4Shell.RejectsInvalidNodeAndInitialFrameContracts; assertion 6개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.RejectsInvalidNodeAndInitialFrameContracts 유지 원문 검사 body 및 assertion 동일. 09059c92e764720f2295f7dd9557530496e4f458cb2eae0317a64daccaae6ac3 09059c92e764720f2295f7dd9557530496e4f458cb2eae0317a64daccaae6ac3 "ASSERT_FALSE(null_node.HasValue()) | EXPECT_EQ(null_node.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-geometry"") | ASSERT_FALSE(duplicate_frame.HasValue()) | EXPECT_EQ(duplicate_frame.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-frame"") | ASSERT_FALSE(invalid_frame.HasValue()) | EXPECT_EQ(invalid_frame.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-frame"")" "ASSERT_FALSE(null_node.HasValue()) | EXPECT_EQ(null_node.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-geometry"") | ASSERT_FALSE(duplicate_frame.HasValue()) | EXPECT_EQ(duplicate_frame.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-frame"") | ASSERT_FALSE(invalid_frame.HasValue()) | EXPECT_EQ(invalid_frame.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-frame"")" -Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.UsesFixedInitialReferenceGeometry NonlinearMitc4Shell.UsesFixedInitialReferenceGeometry; assertion 1개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.UsesFixedInitialReferenceGeometry 유지 원문 검사 body 및 assertion 동일. 54a10626cf3848a02f009f15114e4ee270eddc556033d856cbde1a6232e2dd50 54a10626cf3848a02f009f15114e4ee270eddc556033d856cbde1a6232e2dd50 ASSERT_TRUE(recovery.HasValue()) ASSERT_TRUE(recovery.HasValue()) -Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.PreservesUnnormalizedInterpolatedDirector NonlinearMitc4Shell.PreservesUnnormalizedInterpolatedDirector; assertion 3개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.PreservesUnnormalizedInterpolatedDirector 유지 원문 검사 body 및 assertion 동일. acae08ee38b9b527574ad3d03d4dc5ded4224d8d4c298c4166d587dfe2d2f1c5 acae08ee38b9b527574ad3d03d4dc5ded4224d8d4c298c4166d587dfe2d2f1c5 ASSERT_TRUE(recovery.HasValue()) | EXPECT_GT(recovery.Value().physical_strain_energy, 0.0) | EXPECT_NEAR(recovery.Value().gauss_points[0U].generalized_strain[0U], expected_membrane, 1.0e-12) ASSERT_TRUE(recovery.HasValue()) | EXPECT_GT(recovery.Value().physical_strain_energy, 0.0) | EXPECT_NEAR(recovery.Value().gauss_points[0U].generalized_strain[0U], expected_membrane, 1.0e-12) -Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.RejectsOpposedOrDegenerateCurrentDirectors NonlinearMitc4Shell.RejectsOpposedOrDegenerateCurrentDirectors; assertion 2개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.RejectsOpposedOrDegenerateCurrentDirectors 유지 원문 검사 body 및 assertion 동일. 022372a03ed1384ea9018c527e60a8bb2e92a34abcabf2a3114b60516a9b39bc 022372a03ed1384ea9018c527e60a8bb2e92a34abcabf2a3114b60516a9b39bc "ASSERT_FALSE(recovery.HasValue()) | EXPECT_EQ(recovery.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-director"")" "ASSERT_FALSE(recovery.HasValue()) | EXPECT_EQ(recovery.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-director"")" -Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.MatchesLinearMitc4RecoveryInSmallRotationLimit NonlinearMitc4Shell.MatchesLinearMitc4RecoveryInSmallRotationLimit; assertion 4개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.MatchesLinearMitc4RecoveryInSmallRotationLimit 유지 원문 검사 body 및 assertion 동일. fd4b13f2fcc4938b50ae86d5f55795e3a40d899b81407fca14f78e5a9d6becd0 fd4b13f2fcc4938b50ae86d5f55795e3a40d899b81407fca14f78e5a9d6becd0 ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear_recovery.HasValue()) | ASSERT_TRUE(linear_recovery.HasValue()) | EXPECT_NEAR(nonlinear_recovery.Value().gauss_points[point] .generalized_strain[component], linear_recovery.Value().points[point] .generalized_strain[component], 1.0e-11) ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear_recovery.HasValue()) | ASSERT_TRUE(linear_recovery.HasValue()) | EXPECT_NEAR(nonlinear_recovery.Value().gauss_points[point] .generalized_strain[component], linear_recovery.Value().points[point] .generalized_strain[component], 1.0e-11) -Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.FiniteRigidMotionIsObjective NonlinearMitc4Shell.FiniteRigidMotionIsObjective; assertion 4개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.FiniteRigidMotionIsObjective 유지 원문 검사 body 및 assertion 동일. d31c4760ff39f940a70cb95e45b595095d334feafcc4f498f930764011944a71 d31c4760ff39f940a70cb95e45b595095d334feafcc4f498f930764011944a71 ASSERT_TRUE(recovery.HasValue()) | EXPECT_NEAR(value, 0.0, 1.0e-12) | EXPECT_NEAR(value, 0.0, 1.0e-12) | EXPECT_NEAR(recovery.Value().physical_strain_energy, 0.0, 1.0e-12) ASSERT_TRUE(recovery.HasValue()) | EXPECT_NEAR(value, 0.0, 1.0e-12) | EXPECT_NEAR(value, 0.0, 1.0e-12) | EXPECT_NEAR(recovery.Value().physical_strain_energy, 0.0, 1.0e-12) -Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Recovery.EmitsOnlyFixedPhysicalGaussAndStressRows NonlinearMitc4Recovery.EmitsOnlyFixedPhysicalGaussAndStressRows; assertion 7개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Recovery.EmitsOnlyFixedPhysicalGaussAndStressRows 유지 원문 검사 body 및 assertion 동일. 0008b0829c8e00bd25ac54d72bd223db1acd69f836b6804b78b3557549fac911 0008b0829c8e00bd25ac54d72bd223db1acd69f836b6804b78b3557549fac911 ASSERT_TRUE(recovery.HasValue()) | EXPECT_EQ(row.location, locations[point]) | EXPECT_EQ(row.natural_coordinates[0U], point == 0U || point == 3U ? -gauss : gauss) | EXPECT_EQ(row.natural_coordinates[1U], point < 2U ? -gauss : gauss) | EXPECT_EQ(row.stress[stress].position, positions[stress]) | EXPECT_EQ(row.stress[stress].zeta, zeta[stress]) | EXPECT_EQ(row.stress[stress].components.size(), 3U) ASSERT_TRUE(recovery.HasValue()) | EXPECT_EQ(row.location, locations[point]) | EXPECT_EQ(row.natural_coordinates[0U], point == 0U || point == 3U ? -gauss : gauss) | EXPECT_EQ(row.natural_coordinates[1U], point < 2U ? -gauss : gauss) | EXPECT_EQ(row.stress[stress].position, positions[stress]) | EXPECT_EQ(row.stress[stress].zeta, zeta[stress]) | EXPECT_EQ(row.stress[stress].components.size(), 3U) -Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@1-85 helper/oracle/fixture/include/static assertion 구간: Node, Nodes, NodePointers, Frames, Section, Material, ZeroTrial, Multiply, ExpectZeroRecovery, for, Shell tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a6879fd0fa6466d6fb021e12f76588f690a846dd854355d61c5bfd6fbe0de63b 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@124-125 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8dee679c89e7fcd7d139da1813c32774ca38d795655c80ce8208b3ab09423c5d 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@152-153 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ff3e2239c30471e94bbc18e563e41bb3744f9395c5d81311174b05782fb6ebc8 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@165-166 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 51ced39c2cbb72399c0b49dc9722cc1329c34f357f19be7280ef1e77b2b3e145 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@183-184 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2c8cd1d1980cb0d96addfd4b8037f4d929026a5ac7d0a6ec8856069b5ea0c9d0 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@196-197 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 97be9107d040c13bb40f904c4c01ca1d474fce4260203ac57dfa81b0e1c90824 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@235-236 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9b570c15351976fab371b347ec27443d3155262b9585a574bef6a511922d035c 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@264-265 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cd67c16794266a7614069ddb2948a60455ba1fa76721f5c3df9ff598aa83e25f 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@293-294 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/elements/thermal_shell_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 10개 tests/unit/elements/thermal_shell_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 70b2d6efab8783f723e6abf838fd6c50a1ea25a436480271f0ad9d9234b062db 70b2d6efab8783f723e6abf838fd6c50a1ea25a436480271f0ad9d9234b062db 해당 없음 해당 없음 -Dev tests/unit/elements/thermal_shell_test.cpp ThermalShell.RationalMatricesSymmetryAndConstantModeUseFixedBudgets ThermalShell.RationalMatricesSymmetryAndConstantModeUseFixedBudgets; assertion 9개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.RationalMatricesSymmetryAndConstantModeUseFixedBudgets 유지 원문 검사 body 및 assertion 동일. b77746063cee453fa1b02d7e825896772f68eda7c436d562a9f120ee00254067 b77746063cee453fa1b02d7e825896772f68eda7c436d562a9f120ee00254067 "ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(kernel.Capacity(), exact.c), ec) | EXPECT_LE(Difference(kernel.Conductivity(), exact.k), ek) | EXPECT_LE(cs, 2 * ec) | EXPECT_LE(ks, 2 * ek) | EXPECT_LE(null, std::sqrt(20.) * ek) | EXPECT_LE(std::abs(total - 2), 20 * ec) | EXPECT_EQ(kernel.SourceId().source_label_text, ""0019"") | EXPECT_EQ(kernel.NodeIndices(), (std::array{{7, 2, 9, 4}}))" "ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(kernel.Capacity(), exact.c), ec) | EXPECT_LE(Difference(kernel.Conductivity(), exact.k), ek) | EXPECT_LE(cs, 2 * ec) | EXPECT_LE(ks, 2 * ek) | EXPECT_LE(null, std::sqrt(20.) * ek) | EXPECT_LE(std::abs(total - 2), 20 * ec) | EXPECT_EQ(kernel.SourceId().source_label_text, ""0019"") | EXPECT_EQ(kernel.NodeIndices(), (std::array{{7, 2, 9, 4}}))" -Dev tests/unit/elements/thermal_shell_test.cpp ThermalShell.CapacityIsPositiveAndConductionHasExactlyOneNullMode ThermalShell.CapacityIsPositiveAndConductionHasExactlyOneNullMode; assertion 4개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.CapacityIsPositiveAndConductionHasExactlyOneNullMode 유지 원문 검사 body 및 assertion 동일. ebcd38fd5f93e481370605596eae5bfee78bd230ee37b0a15d07f1eeead80087 ebcd38fd5f93e481370605596eae5bfee78bd230ee37b0a15d07f1eeead80087 ASSERT_TRUE(created.HasValue()) | EXPECT_GT(capacity.first, Gamma(4096) * Norm(exact.pc) + backward) | EXPECT_LE(std::abs(conduction.first), Gamma(4096) * Norm(exact.pk) + backward) | EXPECT_GT(positive.first, Gamma(4096) * Norm(exact.pk) + backward + projection_budget) ASSERT_TRUE(created.HasValue()) | EXPECT_GT(capacity.first, Gamma(4096) * Norm(exact.pc) + backward) | EXPECT_LE(std::abs(conduction.first), Gamma(4096) * Norm(exact.pk) + backward) | EXPECT_GT(positive.first, Gamma(4096) * Norm(exact.pk) + backward + projection_budget) -Dev tests/unit/elements/thermal_shell_test.cpp ThermalShell.Direct54MatchesSeparatedOperatorsOnActualThreeDimensionalPatches ThermalShell.Direct54MatchesSeparatedOperatorsOnActualThreeDimensionalPatches; assertion 3개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.Direct54MatchesSeparatedOperatorsOnActualThreeDimensionalPatches 유지 원문 검사 body 및 assertion 동일. fcd2050a389cecd6349305c4f881f5347bda524a64af04cf7b5e1e6228aea544 fcd2050a389cecd6349305c4f881f5347bda524a64af04cf7b5e1e6228aea544 ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(kernel.Capacity(), direct.c), Norm(kernel.CapacityError()) + Gamma(8192) * Norm(direct.pc)) | EXPECT_LE(Difference(kernel.Conductivity(), direct.k), Norm(kernel.ConductivityError()) + Gamma(8192) * Norm(direct.pk)) ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(kernel.Capacity(), direct.c), Norm(kernel.CapacityError()) + Gamma(8192) * Norm(direct.pc)) | EXPECT_LE(Difference(kernel.Conductivity(), direct.k), Norm(kernel.ConductivityError()) + Gamma(8192) * Norm(direct.pk)) -Dev tests/unit/elements/thermal_shell_test.cpp ThermalShell.ThicknessScalingPreservesBothConductionTermsAndCapacity ThermalShell.ThicknessScalingPreservesBothConductionTermsAndCapacity; assertion 3개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.ThicknessScalingPreservesBothConductionTermsAndCapacity 유지 원문 검사 body 및 assertion 동일. 4af2e5d6dba4e15c7ef44c0f8aefc95988294ee8693ef71d0e3ef0f398507b61 4af2e5d6dba4e15c7ef44c0f8aefc95988294ee8693ef71d0e3ef0f398507b61 ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(created.Value().Capacity(), exact.c), Gamma(4096) * Norm(exact.pc)) | EXPECT_LE(Difference(created.Value().Conductivity(), exact.k), Gamma(4096) * Norm(exact.pk)) ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(created.Value().Capacity(), exact.c), Gamma(4096) * Norm(exact.pc)) | EXPECT_LE(Difference(created.Value().Conductivity(), exact.k), Gamma(4096) * Norm(exact.pk)) -Dev tests/unit/elements/thermal_shell_test.cpp ThermalShell.AffineLinearFluxFramesAndSeparateMidsurfaceTraces ThermalShell.AffineLinearFluxFramesAndSeparateMidsurfaceTraces; assertion 10개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.AffineLinearFluxFramesAndSeparateMidsurfaceTraces 유지 원문 검사 body 및 assertion 동일. 00b41e05c43005233fd41fe3065da06b97e3a43af290bea482c61bdf1875eaaf 00b41e05c43005233fd41fe3065da06b97e3a43af290bea482c61bdf1875eaaf ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(recovery.HasValue()) | EXPECT_LE( (recovery.Value().global_flux[row] - Vector3{-3, 2, -4}).Norm(), Gamma(2048) * (linear_scale.scale[row] + Vector3{3, -2, 4}.Norm())) | EXPECT_NEAR(frame[i].Dot(frame[j]), i == j ? 1. : 0., Gamma(2048)) | EXPECT_NEAR(frame[0].Cross(frame[1]).Dot(frame[2]), 1., Gamma(2048)) | ASSERT_TRUE(traces.HasValue()) | EXPECT_EQ(traces.Value().global_flux[6 * ip + 2].Z(), 0.) | EXPECT_NEAR(traces.Value().global_flux[6 * ip + 3].Z(), -2., Gamma(2048) * 2) | ASSERT_TRUE(constant.HasValue()) | EXPECT_LE(constant.Value().global_flux[row].Norm(), Gamma(2048) * constant_scale.scale[row]) ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(recovery.HasValue()) | EXPECT_LE( (recovery.Value().global_flux[row] - Vector3{-3, 2, -4}).Norm(), Gamma(2048) * (linear_scale.scale[row] + Vector3{3, -2, 4}.Norm())) | EXPECT_NEAR(frame[i].Dot(frame[j]), i == j ? 1. : 0., Gamma(2048)) | EXPECT_NEAR(frame[0].Cross(frame[1]).Dot(frame[2]), 1., Gamma(2048)) | ASSERT_TRUE(traces.HasValue()) | EXPECT_EQ(traces.Value().global_flux[6 * ip + 2].Z(), 0.) | EXPECT_NEAR(traces.Value().global_flux[6 * ip + 3].Z(), -2., Gamma(2048) * 2) | ASSERT_TRUE(constant.HasValue()) | EXPECT_LE(constant.Value().global_flux[row].Norm(), Gamma(2048) * constant_scale.scale[row]) -Dev tests/unit/elements/thermal_shell_test.cpp ThermalShell.TranslationRotationAndReversedNormalPreservePhysicalFlux ThermalShell.TranslationRotationAndReversedNormalPreservePhysicalFlux; assertion 10개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.TranslationRotationAndReversedNormalPreservePhysicalFlux 유지 원문 검사 body 및 assertion 동일. d3b3148c1533aa48c401f4b4d92418d4c57abdb89b589de242b5394ac13349b0 d3b3148c1533aa48c401f4b4d92418d4c57abdb89b589de242b5394ac13349b0 ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(moved.HasValue()) | ASSERT_TRUE(turned.HasValue()) | ASSERT_TRUE(flipped.HasValue()) | EXPECT_LE( Difference(base.Value().Capacity(), moved.Value().Capacity()), Norm(base.Value().CapacityError()) + Norm(moved.Value().CapacityError())) | EXPECT_LE( Difference(base.Value().Conductivity(), turned.Value().Conductivity()), Norm(base.Value().ConductivityError()) + Norm(turned.Value().ConductivityError())) | ASSERT_TRUE(flux.HasValue()) | ASSERT_TRUE(reverse.HasValue()) | EXPECT_LE((flux.Value().global_flux[row] - rotate({-3, 2, -4})).Norm(), Gamma(2048) * (turn_scale.scale[row] + Vector3{3, -2, 4}.Norm())) | EXPECT_LE( (reverse.Value().global_flux[row] - Vector3{-3, 2, -4}).Norm(), Gamma(2048) * (reverse_scale.scale[row] + Vector3{3, -2, 4}.Norm())) ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(moved.HasValue()) | ASSERT_TRUE(turned.HasValue()) | ASSERT_TRUE(flipped.HasValue()) | EXPECT_LE( Difference(base.Value().Capacity(), moved.Value().Capacity()), Norm(base.Value().CapacityError()) + Norm(moved.Value().CapacityError())) | EXPECT_LE( Difference(base.Value().Conductivity(), turned.Value().Conductivity()), Norm(base.Value().ConductivityError()) + Norm(turned.Value().ConductivityError())) | ASSERT_TRUE(flux.HasValue()) | ASSERT_TRUE(reverse.HasValue()) | EXPECT_LE((flux.Value().global_flux[row] - rotate({-3, 2, -4})).Norm(), Gamma(2048) * (turn_scale.scale[row] + Vector3{3, -2, 4}.Norm())) | EXPECT_LE( (reverse.Value().global_flux[row] - Vector3{-3, 2, -4}).Norm(), Gamma(2048) * (reverse_scale.scale[row] + Vector3{3, -2, 4}.Norm())) -Dev tests/unit/elements/thermal_shell_test.cpp ThermalShell.CheckedCreationAndRecoveryRetainSourceAndRejectNonfinite ThermalShell.CheckedCreationAndRecoveryRetainSourceAndRejectNonfinite; assertion 7개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.CheckedCreationAndRecoveryRetainSourceAndRejectNonfinite 유지 원문 검사 body 및 assertion 동일. fa5ae9a4a6c78eb6502fe375b86097724b5484608a38dc580d02729c1662512e fa5ae9a4a6c78eb6502fe375b86097724b5484608a38dc580d02729c1662512e "EXPECT_FALSE(Kernel(kSquare, bad).HasValue()) | EXPECT_FALSE(Kernel(kSquare, 2, bad).HasValue()) | ASSERT_TRUE(created.HasValue()) | ASSERT_FALSE(bad.HasValue()) | EXPECT_EQ(bad.GetStatus().Diagnostics()[0].entity_identity, ""patch:0019"") | EXPECT_EQ(bad.GetStatus().Diagnostics()[0].location.line, 42U) | EXPECT_FALSE(created.Value().Recover(temperature).HasValue())" "EXPECT_FALSE(Kernel(kSquare, bad).HasValue()) | EXPECT_FALSE(Kernel(kSquare, 2, bad).HasValue()) | ASSERT_TRUE(created.HasValue()) | ASSERT_FALSE(bad.HasValue()) | EXPECT_EQ(bad.GetStatus().Diagnostics()[0].entity_identity, ""patch:0019"") | EXPECT_EQ(bad.GetStatus().Diagnostics()[0].location.line, 42U) | EXPECT_FALSE(created.Value().Recover(temperature).HasValue())" -Dev tests/unit/elements/thermal_shell_test.cpp ThermalShell.GeneralWarpedFluxUsesActualReciprocalTangentsAndTraceOrder ThermalShell.GeneralWarpedFluxUsesActualReciprocalTangentsAndTraceOrder; assertion 4개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.GeneralWarpedFluxUsesActualReciprocalTangentsAndTraceOrder 유지 원문 검사 body 및 assertion 동일. d8ac116acd93e87e33b2b21c1880b4f4b554f07a2d11fcaba6c3031151e9b780 d8ac116acd93e87e33b2b21c1880b4f4b554f07a2d11fcaba6c3031151e9b780 ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_LE((actual.Value().global_flux[row] - expected.value[row]).Norm(), 2 * Gamma(2048) * expected.scale[row]) | EXPECT_GT((actual.Value().frames[0][2] - actual.Value().frames[1][2]).Norm(), 1.) ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_LE((actual.Value().global_flux[row] - expected.value[row]).Norm(), 2 * Gamma(2048) * expected.scale[row]) | EXPECT_GT((actual.Value().frames[0][2] - actual.Value().frames[1][2]).Norm(), 1.) -Dev tests/unit/elements/thermal_shell_test.cpp ThermalShell.PowerOfTwoCoordinateScalingPreservesDimensionedOperators ThermalShell.PowerOfTwoCoordinateScalingPreservesDimensionedOperators; assertion 3개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.PowerOfTwoCoordinateScalingPreservesDimensionedOperators 유지 원문 검사 body 및 assertion 동일. c09333202e2a4f5cf6a42a31c1e5cd786979db0b59663bca37fc8bd4e508762d c09333202e2a4f5cf6a42a31c1e5cd786979db0b59663bca37fc8bd4e508762d ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(created.Value().Capacity(), c), Norm(created.Value().CapacityError()) + Gamma(4096) * Norm(c)) | EXPECT_LE( Difference(created.Value().Conductivity(), k), Norm(created.Value().ConductivityError()) + Gamma(4096) * Norm(k)) ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(created.Value().Capacity(), c), Norm(created.Value().CapacityError()) + Gamma(4096) * Norm(c)) | EXPECT_LE( Difference(created.Value().Conductivity(), k), Norm(created.Value().ConductivityError()) + Gamma(4096) * Norm(k)) -Dev tests/unit/elements/thermal_shell_test.cpp ThermalShell.RejectsUnrepresentablePositivePropertiesWithoutClamping ThermalShell.RejectsUnrepresentablePositivePropertiesWithoutClamping; assertion 2개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.RejectsUnrepresentablePositivePropertiesWithoutClamping 유지 원문 검사 body 및 assertion 동일. ce5c3d9a306fa53f5457ea5db0a9d002d806423381a139cd329f8c6b42bae98b ce5c3d9a306fa53f5457ea5db0a9d002d806423381a139cd329f8c6b42bae98b EXPECT_FALSE(underflow.HasValue()) | EXPECT_FALSE(overflow.HasValue()) EXPECT_FALSE(underflow.HasValue()) | EXPECT_FALSE(overflow.HasValue()) -Dev tests/unit/elements/thermal_shell_test.cpp support@1-245 helper/oracle/fixture/include/static assertion 구간: Gamma, Norm, Difference, Kernel, Oracle, Rational, Direct54, FluxOracle, Flux, EigenExtrema, if tests/unit/elements/thermal_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4b36e387f8082d0a918209d0e72ac417a3b4be25b0bcd07da65f3c169413c725 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/fem/dof_manager_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 12개 tests/unit/fem/dof_manager_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 752d1a2138fc77ec40346e6575f87c9e96d69dd9f9c097eff316e6de887d2195 bd0972cde135770050c66143519332b17cb62a5c17b81530927fb27ef017c844 해당 없음 해당 없음 -Dev tests/unit/fem/dof_manager_test.cpp DofManager.BuildsGenericRuntimeLayoutsInDeclaredSourceOrder DofManager.BuildsGenericRuntimeLayoutsInDeclaredSourceOrder; assertion 17개 tests/unit/fem/dof_manager_test.cpp DofManager.BuildsGenericRuntimeLayoutsInDeclaredSourceOrder 유지 원문 검사 body 및 assertion 동일. 41f2338c870fdbb3eff99743a0ef8112756b63092f3525a035a3755eb09882b1 41f2338c870fdbb3eff99743a0ef8112756b63092f3525a035a3755eb09882b1 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(dofs.ValidateInvariants().IsOk()) | ASSERT_TRUE(first_scatter.HasValue()) | ASSERT_TRUE(second_scatter.HasValue()) | EXPECT_EQ(first_scatter.Value(), (std::vector{14U, 12U, 2U, 0U})) | EXPECT_EQ(second_scatter.Value(), (std::vector{11U, 7U, 9U})) | EXPECT_EQ(RowColumns(pattern, 14U), (std::vector{0U, 2U, 12U, 14U})) | EXPECT_EQ(RowColumns(pattern, 7U), (std::vector{7U, 9U, 11U})) | ASSERT_FALSE(reversed_status.IsOk()) | ASSERT_EQ(reversed_status.Diagnostics().size(), 1U) | EXPECT_EQ(reversed_status.Diagnostics()[0U].code, ""invalid-element-layout-order"") | EXPECT_EQ(dofs.FreeDofs(), expected_free_dofs) | EXPECT_EQ(dofs.ConstrainedDofs(), expected_constrained_dofs) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, expected_row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, expected_columns)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(dofs.ValidateInvariants().IsOk()) | ASSERT_TRUE(first_scatter.HasValue()) | ASSERT_TRUE(second_scatter.HasValue()) | EXPECT_EQ(first_scatter.Value(), (std::vector{14U, 12U, 2U, 0U})) | EXPECT_EQ(second_scatter.Value(), (std::vector{11U, 7U, 9U})) | EXPECT_EQ(RowColumns(pattern, 14U), (std::vector{0U, 2U, 12U, 14U})) | EXPECT_EQ(RowColumns(pattern, 7U), (std::vector{7U, 9U, 11U})) | ASSERT_FALSE(reversed_status.IsOk()) | ASSERT_EQ(reversed_status.Diagnostics().size(), 1U) | EXPECT_EQ(reversed_status.Diagnostics()[0U].code, ""invalid-element-layout-order"") | EXPECT_EQ(dofs.FreeDofs(), expected_free_dofs) | EXPECT_EQ(dofs.ConstrainedDofs(), expected_constrained_dofs) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, expected_row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, expected_columns)" -Dev tests/unit/fem/dof_manager_test.cpp DofManager.RejectsEveryCorruptedOwnerMappingInvariant DofManager.RejectsEveryCorruptedOwnerMappingInvariant; assertion 0개 tests/unit/fem/dof_manager_test.cpp DofManager.RejectsEveryCorruptedOwnerMappingInvariant 유지 원문 검사 body 및 assertion 동일. f3a2d0c1bdbc2bfcc10e6a27711d07586fe8076fb87c957f8448b0edef5ff5f0 f3a2d0c1bdbc2bfcc10e6a27711d07586fe8076fb87c957f8448b0edef5ff5f0 해당 없음 해당 없음 -Dev tests/unit/fem/dof_manager_test.cpp DofManager.NumbersSixDofsAndFreeEquationsStably DofManager.NumbersSixDofsAndFreeEquationsStably; assertion 13개 tests/unit/fem/dof_manager_test.cpp DofManager.NumbersSixDofsAndFreeEquationsStably 유지 원문 검사 body 및 assertion 동일. 164a3c027dad0f2949360355d4e84d64180d8478dc812815c46df9d2e9de63fa 164a3c027dad0f2949360355d4e84d64180d8478dc812815c46df9d2e9de63fa EXPECT_EQ(dofs.FullDofCount(), 18U) | EXPECT_EQ(dofs.FreeDofCount(), 13U) | EXPECT_EQ(dofs.ConstrainedDofCount(), 5U) | EXPECT_EQ(dofs.FullDof(0U, fesa::DofComponent::kUx), 0U) | EXPECT_EQ(dofs.FullDof(0U, fesa::DofComponent::kUrz), 5U) | EXPECT_EQ(dofs.FullDof(1U, fesa::DofComponent::kUx), 6U) | EXPECT_EQ(dofs.FullDof(2U, fesa::DofComponent::kUrz), 17U) | EXPECT_EQ(dofs.FreeDofs(), (std::vector{3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 12U, 13U, 15U, 16U, 17U})) | EXPECT_EQ(dofs.ConstrainedDofs(), (std::vector{0U, 1U, 2U, 11U, 14U})) | EXPECT_EQ(dofs.FreeEquation(0U), std::nullopt) | EXPECT_EQ(dofs.FreeEquation(3U), std::optional{0U}) | EXPECT_EQ(dofs.FreeEquation(10U), std::optional{7U}) | EXPECT_EQ(dofs.FreeEquation(17U), std::optional{12U}) EXPECT_EQ(dofs.FullDofCount(), 18U) | EXPECT_EQ(dofs.FreeDofCount(), 13U) | EXPECT_EQ(dofs.ConstrainedDofCount(), 5U) | EXPECT_EQ(dofs.FullDof(0U, fesa::DofComponent::kUx), 0U) | EXPECT_EQ(dofs.FullDof(0U, fesa::DofComponent::kUrz), 5U) | EXPECT_EQ(dofs.FullDof(1U, fesa::DofComponent::kUx), 6U) | EXPECT_EQ(dofs.FullDof(2U, fesa::DofComponent::kUrz), 17U) | EXPECT_EQ(dofs.FreeDofs(), (std::vector{3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 12U, 13U, 15U, 16U, 17U})) | EXPECT_EQ(dofs.ConstrainedDofs(), (std::vector{0U, 1U, 2U, 11U, 14U})) | EXPECT_EQ(dofs.FreeEquation(0U), std::nullopt) | EXPECT_EQ(dofs.FreeEquation(3U), std::optional{0U}) | EXPECT_EQ(dofs.FreeEquation(10U), std::optional{7U}) | EXPECT_EQ(dofs.FreeEquation(17U), std::optional{12U}) -Dev tests/unit/fem/dof_manager_test.cpp DofManager.ExpandsAndValidatesPrescribedValues DofManager.ExpandsAndValidatesPrescribedValues; assertion 16개 tests/unit/fem/dof_manager_test.cpp DofManager.ExpandsAndValidatesPrescribedValues 유지 원문 검사 body 및 assertion 동일. 6cf0e5ec3dec89d94ff24af258558bcf13c72a823748c36a839c4a4d5daf9b1c 6cf0e5ec3dec89d94ff24af258558bcf13c72a823748c36a839c4a4d5daf9b1c "ASSERT_EQ(values.Size(), 5U) | EXPECT_DOUBLE_EQ(values[0], 0.0) | EXPECT_DOUBLE_EQ(values[1], 0.0) | EXPECT_DOUBLE_EQ(values[2], 0.25) | EXPECT_DOUBLE_EQ(values[3], -0.5) | EXPECT_DOUBLE_EQ(values[4], 0.25) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_FALSE(conflict.HasValue()) | EXPECT_EQ(conflict.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(conflict.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""conflicting-boundary-condition"") | EXPECT_EQ(diagnostic.keyword, ""BOUNDARY"") | EXPECT_EQ(diagnostic.entity_identity, ""root"") | EXPECT_EQ(diagnostic.location.file, std::filesystem::path{""models/dof-manager.inp""}) | EXPECT_EQ(diagnostic.location.line, 77U)" "ASSERT_EQ(values.Size(), 5U) | EXPECT_DOUBLE_EQ(values[0], 0.0) | EXPECT_DOUBLE_EQ(values[1], 0.0) | EXPECT_DOUBLE_EQ(values[2], 0.25) | EXPECT_DOUBLE_EQ(values[3], -0.5) | EXPECT_DOUBLE_EQ(values[4], 0.25) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_FALSE(conflict.HasValue()) | EXPECT_EQ(conflict.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(conflict.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""conflicting-boundary-condition"") | EXPECT_EQ(diagnostic.keyword, ""BOUNDARY"") | EXPECT_EQ(diagnostic.entity_identity, ""root"") | EXPECT_EQ(diagnostic.location.file, std::filesystem::path{""models/dof-manager.inp""}) | EXPECT_EQ(diagnostic.location.line, 77U)" -Dev tests/unit/fem/dof_manager_test.cpp DofManager.BuildsTwelveDofScatterAndSortedUniquePattern DofManager.BuildsTwelveDofScatterAndSortedUniquePattern; assertion 8개 tests/unit/fem/dof_manager_test.cpp DofManager.BuildsTwelveDofScatterAndSortedUniquePattern 유지 원문 검사 body 및 assertion 동일. 777cf0c0c96c7791e264fff4c6af066a696eb2afd008d54cdbf4ccd1d84f11bb 777cf0c0c96c7791e264fff4c6af066a696eb2afd008d54cdbf4ccd1d84f11bb EXPECT_EQ(dofs.ElementScatter(0U), (std::array{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U})) | EXPECT_EQ(dofs.ElementScatter(1U), (std::array{6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U})) | EXPECT_EQ(pattern.row_offsets, (std::vector{0U, 12U, 24U, 36U, 48U, 60U, 72U, 90U, 108U, 126U, 144U, 162U, 180U, 192U, 204U, 216U, 228U, 240U, 252U})) | EXPECT_EQ(RowColumns(pattern, 0U), first_block) | EXPECT_EQ(RowColumns(pattern, 7U), shared_block) | EXPECT_EQ(RowColumns(pattern, 17U), last_block) | EXPECT_TRUE(std::is_sorted(columns.begin(), columns.end())) | EXPECT_EQ(std::adjacent_find(columns.begin(), columns.end()), columns.end()) EXPECT_EQ(dofs.ElementScatter(0U), (std::array{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U})) | EXPECT_EQ(dofs.ElementScatter(1U), (std::array{6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U})) | EXPECT_EQ(pattern.row_offsets, (std::vector{0U, 12U, 24U, 36U, 48U, 60U, 72U, 90U, 108U, 126U, 144U, 162U, 180U, 192U, 204U, 216U, 228U, 240U, 252U})) | EXPECT_EQ(RowColumns(pattern, 0U), first_block) | EXPECT_EQ(RowColumns(pattern, 7U), shared_block) | EXPECT_EQ(RowColumns(pattern, 17U), last_block) | EXPECT_TRUE(std::is_sorted(columns.begin(), columns.end())) | EXPECT_EQ(std::adjacent_find(columns.begin(), columns.end()), columns.end()) -Dev tests/unit/fem/dof_manager_test.cpp DofManager.BuildsShellScatterInSourceNodeAndComponentOrder DofManager.BuildsShellScatterInSourceNodeAndComponentOrder; assertion 2개 tests/unit/fem/dof_manager_test.cpp DofManager.BuildsShellScatterInSourceNodeAndComponentOrder 유지 원문 검사 body 및 assertion 동일. 8e1b5e8d8a5b5b681055207235c9565bd84ba56615922df7dbe69f84482a7911 8e1b5e8d8a5b5b681055207235c9565bd84ba56615922df7dbe69f84482a7911 EXPECT_EQ(dofs.FullDofCount(), 24U) | EXPECT_EQ(dofs.ShellElementScatter(0U), (std::array{ 12U, 13U, 14U, 15U, 16U, 17U, 0U, 1U, 2U, 3U, 4U, 5U, 18U, 19U, 20U, 21U, 22U, 23U, 6U, 7U, 8U, 9U, 10U, 11U})) EXPECT_EQ(dofs.FullDofCount(), 24U) | EXPECT_EQ(dofs.ShellElementScatter(0U), (std::array{ 12U, 13U, 14U, 15U, 16U, 17U, 0U, 1U, 2U, 3U, 4U, 5U, 18U, 19U, 20U, 21U, 22U, 23U, 6U, 7U, 8U, 9U, 10U, 11U})) -Dev tests/unit/fem/dof_manager_test.cpp DofManager.IncludesShellConnectivityInSortedUniqueSparsePattern DofManager.IncludesShellConnectivityInSortedUniqueSparsePattern; assertion 8개 tests/unit/fem/dof_manager_test.cpp DofManager.IncludesShellConnectivityInSortedUniqueSparsePattern 유지 원문 검사 body 및 assertion 동일. 92c8de2bfcae8aace6b388803d0a64c9ac18f2d175a866e225089b21c4a623c8 92c8de2bfcae8aace6b388803d0a64c9ac18f2d175a866e225089b21c4a623c8 ASSERT_EQ(pattern.row_offsets.size(), 25U) | ASSERT_EQ(pattern.column_indices.size(), 24U * 24U) | EXPECT_EQ(pattern.row_offsets[row], row * 24U) | EXPECT_EQ(pattern.row_offsets[row + 1U], (row + 1U) * 24U) | ASSERT_EQ(columns.size(), 24U) | EXPECT_EQ(columns[column], column) | EXPECT_TRUE(std::binary_search(columns.begin(), columns.end(), row)) | EXPECT_EQ(std::adjacent_find(columns.begin(), columns.end()), columns.end()) ASSERT_EQ(pattern.row_offsets.size(), 25U) | ASSERT_EQ(pattern.column_indices.size(), 24U * 24U) | EXPECT_EQ(pattern.row_offsets[row], row * 24U) | EXPECT_EQ(pattern.row_offsets[row + 1U], (row + 1U) * 24U) | ASSERT_EQ(columns.size(), 24U) | EXPECT_EQ(columns[column], column) | EXPECT_TRUE(std::binary_search(columns.begin(), columns.end(), row)) | EXPECT_EQ(std::adjacent_find(columns.begin(), columns.end()), columns.end()) -Dev tests/unit/fem/dof_manager_test.cpp DofManager.ReconstructsFullReducedRoundTrip DofManager.ReconstructsFullReducedRoundTrip; assertion 2개 tests/unit/fem/dof_manager_test.cpp DofManager.ReconstructsFullReducedRoundTrip 유지 원문 검사 body 및 assertion 동일. bcaf1e9c9f316b66734a1487522db16345e115f41d6580164af239c16aef76e0 bcaf1e9c9f316b66734a1487522db16345e115f41d6580164af239c16aef76e0 ASSERT_EQ(reconstructed.Size(), full.Size()) | EXPECT_DOUBLE_EQ(reconstructed[index], full[index]) ASSERT_EQ(reconstructed.Size(), full.Size()) | EXPECT_DOUBLE_EQ(reconstructed[index], full[index]) -Dev tests/unit/fem/dof_manager_test.cpp ThermalDofManager.MapsOnlyConnectedNodesAndOverridesModelBoundary ThermalDofManager.MapsOnlyConnectedNodesAndOverridesModelBoundary; assertion 42개 tests/unit/fem/dof_manager_test.cpp ThermalDofManager.MapsOnlyConnectedNodesAndOverridesModelBoundary 유지 원문 검사 body 및 assertion 동일. 14c6b2472e4b37fd66fa0c929e96926cb3dbd44664ac0b9917708049cc8ae79b 14c6b2472e4b37fd66fa0c929e96926cb3dbd44664ac0b9917708049cc8ae79b "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(dofs.Profile(), fesa::DofProfile::kThermal) | EXPECT_EQ(dofs.FullDofCount(), 30U) | EXPECT_THROW(dofs.FullDof(0U, fesa::DofComponent::kUx), std::logic_error) | EXPECT_EQ(dofs.ConstrainedDofs(), (std::vector{0U, 9U})) | ASSERT_EQ(dofs.PrescribedValues().Size(), 2U) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[0U], 3.0) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[1U], 2.0) | EXPECT_EQ(dofs.FullThermalDof(6U, fesa::ThermalDofComponent::kTop), 29U) | EXPECT_THROW(dofs.FullThermalDof(3U, fesa::ThermalDofComponent::kBottom), std::out_of_range) | EXPECT_THROW( dofs.FullThermalDof( 0U, static_cast( (std::numeric_limits::min)())), std::out_of_range) | ASSERT_TRUE(first.HasValue()) | EXPECT_EQ(first.Value(), (std::vector{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U, 18U, 19U})) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(std::vector(second.Value().begin(), second.Value().begin() + 5U), (std::vector{5U, 6U, 7U, 8U, 9U})) | EXPECT_EQ(std::vector(second.Value().end() - 5U, second.Value().end()), (std::vector{10U, 11U, 12U, 13U, 14U})) | EXPECT_FALSE(dofs.ElementScatter(structural_layout).HasValue()) | ASSERT_FALSE(repeated.HasValue()) | EXPECT_EQ(repeated.GetStatus().Diagnostics()[0U].code, ""duplicate-element-dof"") | ASSERT_FALSE(reordered.HasValue()) | ASSERT_FALSE(invalid_component.HasValue()) | EXPECT_EQ(RowColumns(dofs.GetSparsePattern(), 0U), (std::vector{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U, 18U, 19U})) | ASSERT_TRUE(scatter_before.HasValue()) | ASSERT_FALSE(invalid.IsOk()) | EXPECT_EQ(invalid.Diagnostics()[0U].code, ""invalid-thermal-element-layout"") | EXPECT_EQ(dofs.Profile(), profile_before) | EXPECT_EQ(dofs.FullDofCount(), full_count_before) | EXPECT_EQ(dofs.FreeDofCount(), free_count_before) | EXPECT_EQ(dofs.ConstrainedDofCount(), constrained_count_before) | EXPECT_EQ(dofs.FreeDofs(), free_before) | EXPECT_EQ(dofs.ConstrainedDofs(), constrained_before) | ASSERT_EQ(dofs.PrescribedValues().Size(), prescribed_before.Size()) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[index], prescribed_before[index]) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, pattern_before.row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, pattern_before.column_indices) | ASSERT_TRUE(scatter_after.HasValue()) | EXPECT_EQ(scatter_after.Value(), scatter_before.Value()) | ASSERT_FALSE(structural_misuse.IsOk()) | EXPECT_EQ(structural_misuse.Diagnostics()[0U].code, ""invalid-dof-profile"") | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, pattern_before.row_offsets)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(dofs.Profile(), fesa::DofProfile::kThermal) | EXPECT_EQ(dofs.FullDofCount(), 30U) | EXPECT_THROW(dofs.FullDof(0U, fesa::DofComponent::kUx), std::logic_error) | EXPECT_EQ(dofs.ConstrainedDofs(), (std::vector{0U, 9U})) | ASSERT_EQ(dofs.PrescribedValues().Size(), 2U) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[0U], 3.0) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[1U], 2.0) | EXPECT_EQ(dofs.FullThermalDof(6U, fesa::ThermalDofComponent::kTop), 29U) | EXPECT_THROW(dofs.FullThermalDof(3U, fesa::ThermalDofComponent::kBottom), std::out_of_range) | EXPECT_THROW( dofs.FullThermalDof( 0U, static_cast( (std::numeric_limits::min)())), std::out_of_range) | ASSERT_TRUE(first.HasValue()) | EXPECT_EQ(first.Value(), (std::vector{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U, 18U, 19U})) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(std::vector(second.Value().begin(), second.Value().begin() + 5U), (std::vector{5U, 6U, 7U, 8U, 9U})) | EXPECT_EQ(std::vector(second.Value().end() - 5U, second.Value().end()), (std::vector{10U, 11U, 12U, 13U, 14U})) | EXPECT_FALSE(dofs.ElementScatter(structural_layout).HasValue()) | ASSERT_FALSE(repeated.HasValue()) | EXPECT_EQ(repeated.GetStatus().Diagnostics()[0U].code, ""duplicate-element-dof"") | ASSERT_FALSE(reordered.HasValue()) | ASSERT_FALSE(invalid_component.HasValue()) | EXPECT_EQ(RowColumns(dofs.GetSparsePattern(), 0U), (std::vector{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U, 18U, 19U})) | ASSERT_TRUE(scatter_before.HasValue()) | ASSERT_FALSE(invalid.IsOk()) | EXPECT_EQ(invalid.Diagnostics()[0U].code, ""invalid-thermal-element-layout"") | EXPECT_EQ(dofs.Profile(), profile_before) | EXPECT_EQ(dofs.FullDofCount(), full_count_before) | EXPECT_EQ(dofs.FreeDofCount(), free_count_before) | EXPECT_EQ(dofs.ConstrainedDofCount(), constrained_count_before) | EXPECT_EQ(dofs.FreeDofs(), free_before) | EXPECT_EQ(dofs.ConstrainedDofs(), constrained_before) | ASSERT_EQ(dofs.PrescribedValues().Size(), prescribed_before.Size()) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[index], prescribed_before[index]) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, pattern_before.row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, pattern_before.column_indices) | ASSERT_TRUE(scatter_after.HasValue()) | EXPECT_EQ(scatter_after.Value(), scatter_before.Value()) | ASSERT_FALSE(structural_misuse.IsOk()) | EXPECT_EQ(structural_misuse.Diagnostics()[0U].code, ""invalid-dof-profile"") | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, pattern_before.row_offsets)" -Dev tests/unit/fem/dof_manager_test.cpp ThermalDofManager.RejectsChangedThermalLayoutInventory ThermalDofManager.RejectsChangedThermalLayoutInventory; assertion 6개 tests/unit/fem/dof_manager_test.cpp ThermalDofManager.RejectsChangedThermalLayoutInventory 유지 원문 검사 body 및 assertion 동일. 24dfec1451d61871c9de4765e12b026aec9b6b1285976d60b47e34c047330d85 24dfec1451d61871c9de4765e12b026aec9b6b1285976d60b47e34c047330d85 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_identity).IsOk()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_order).IsOk()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_nodes).IsOk()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_identity).IsOk()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_order).IsOk()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_nodes).IsOk()) -Dev tests/unit/fem/dof_manager_test.cpp ThermalDofManager.KeepsDisconnectedThermalComponentsInSeparateCsrBlocks ThermalDofManager.KeepsDisconnectedThermalComponentsInSeparateCsrBlocks; assertion 6개 tests/unit/fem/dof_manager_test.cpp ThermalDofManager.KeepsDisconnectedThermalComponentsInSeparateCsrBlocks 유지 원문 검사 body 및 assertion 동일. 3c945c7278e08616de4858fb363c62549e22c8e97d0f6742280b2f61f0a218af 3c945c7278e08616de4858fb363c62549e22c8e97d0f6742280b2f61f0a218af ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().FullDofCount(), 40U) | EXPECT_EQ(RowColumns(result.Value().GetSparsePattern(), 0U).size(), 20U) | EXPECT_EQ(RowColumns(result.Value().GetSparsePattern(), 20U).front(), 20U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().FullDofCount(), 40U) | EXPECT_EQ(RowColumns(result.Value().GetSparsePattern(), 0U).size(), 20U) | EXPECT_EQ(RowColumns(result.Value().GetSparsePattern(), 20U).front(), 20U) -Dev tests/unit/fem/dof_manager_test.cpp ThermalDofManager.RejectsThermalLayoutsForStructuralModels ThermalDofManager.RejectsThermalLayoutsForStructuralModels; assertion 6개 tests/unit/fem/dof_manager_test.cpp ThermalDofManager.RejectsThermalLayoutsForStructuralModels 유지 원문 검사 body 및 assertion 동일. 87aec2f1aa1dcfc017a94fb57393f0d486489a38edebfa67898ef75e8b1cd2fc 87aec2f1aa1dcfc017a94fb57393f0d486489a38edebfa67898ef75e8b1cd2fc "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-dof-profile"") | ASSERT_FALSE(thermal_create.HasValue()) | EXPECT_EQ(thermal_create.GetStatus().Diagnostics()[0U].code, ""invalid-dof-profile"")" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-dof-profile"") | ASSERT_FALSE(thermal_create.HasValue()) | EXPECT_EQ(thermal_create.GetStatus().Diagnostics()[0U].code, ""invalid-dof-profile"")" -Dev tests/unit/fem/dof_manager_test.cpp support@1-204 helper/oracle/fixture/include/static assertion 구간: fesa, DofManagerTestAccess, DuplicateOwnership, RemoveFullMapping, ReverseFreeMapping, ReverseConstrainedMapping, CorruptEquationMapping, RemoveSparsePatternEntry, AddSparsePatternEntry, GenericLayoutElement, MakeDefinition, MakeShellDefinition, MakeThermalDefinition, DofFixture, MakeDofFixture, RowColumns, ExpectInvariantFailure tests/unit/fem/dof_manager_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2426139ebb5201edffc23485e54073039b9d44668f1802c880802f9b6a9b77e9 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/fem/dof_manager_test.cpp support@375-376 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/fem/dof_manager_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. edda67d5ae3e698f84e25f71acc0ab095496b8f704006cd9bd5d64597a7e94e3 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/fem/dof_manager_test.cpp support@387-388 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/fem/dof_manager_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 639575113829ba3af23c869e39aa0c68dfba327851149b3234d6c75f83aaa755 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/domain_mapper_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 15개 tests/unit/io/abaqus/domain_mapper_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cdc14b4c935734140f44849672a8a15b2137233b1a5853a685577d3eb16dc728 cdc14b4c935734140f44849672a8a15b2137233b1a5853a685577d3eb16dc728 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsEverySupportedKeywordAndLegacyDeck InpDomainMapping.MapsEverySupportedKeywordAndLegacyDeck; assertion 54개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsEverySupportedKeywordAndLegacyDeck 유지 원문 검사 body 및 assertion 동일. 8f78580d37874c8e4e673f2ddf25cc61801dbcae17fb3ed4731609edd952f3d3 8f78580d37874c8e4e673f2ddf25cc61801dbcae17fb3ed4731609edd952f3d3 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Nodes()[0].source_id.instance_name, ""Beam-1"") | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""0001"") | EXPECT_EQ(domain.Nodes()[1].source_id.source_label_text, ""0002"") | EXPECT_DOUBLE_EQ(domain.Nodes()[1].coordinates[0], 2.0) | ASSERT_EQ(domain.Elements().Size(), 1U) | EXPECT_EQ(element.Kind(), fesa::ElementDefinitionKind::kEulerBeam3D) | EXPECT_EQ(element.SourceId().source_label_text, ""0007"") | EXPECT_EQ(element.SourceElementType(), ""B33"") | EXPECT_EQ(element.NodeIndices(), (std::vector{0U, 1U})) | EXPECT_EQ(&element, &domain.BeamElements()[0U]) | ASSERT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Materials()[0U].Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(domain.LinearElasticMaterials()[0U].name, ""Steel"") | EXPECT_DOUBLE_EQ(domain.LinearElasticMaterials()[0U].youngs_modulus, 210000.0) | EXPECT_DOUBLE_EQ(domain.LinearElasticMaterials()[0U].poisson_ratio, 0.75) | ASSERT_EQ(domain.Sections().Size(), 1U) | EXPECT_DOUBLE_EQ(section.area, 2.0) | EXPECT_DOUBLE_EQ(section.i11, 3.0) | EXPECT_DOUBLE_EQ(section.i12, 0.0) | EXPECT_DOUBLE_EQ(section.i22, 4.0) | EXPECT_DOUBLE_EQ(section.torsional_constant, 5.0) | EXPECT_EQ(section.first_axis, (std::array{0.0, 1.0, 0.0})) | EXPECT_EQ(section.section_points, (std::vector>{{-0.5, 0.25}, {0.5, -0.25}})) | EXPECT_EQ(domain.BeamElements()[0U].material_index, 0U) | EXPECT_EQ(domain.BeamElements()[0U].section_index, 0U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(step.Name(), ""Step-1"") | EXPECT_DOUBLE_EQ(step.InitialIncrement(), 0.25) | EXPECT_DOUBLE_EQ(step.TimePeriod(), 1.5) | EXPECT_DOUBLE_EQ(step.MinimumIncrement(), 0.01) | EXPECT_DOUBLE_EQ(step.MaximumIncrement(), 1.5) | ASSERT_EQ(step.PrescribedDisplacements().Size(), 2U) | EXPECT_EQ(step.PrescribedDisplacements()[0U].Target().target_name_or_label, ""rootassembly"") | EXPECT_EQ(step.PrescribedDisplacements()[0U].Component(), fesa::DofComponent::kUx) | EXPECT_DOUBLE_EQ(step.PrescribedDisplacements()[0U].PrescribedValue(), 0.125) | EXPECT_EQ(step.PrescribedDisplacements()[1U].Component(), fesa::DofComponent::kUy) | EXPECT_DOUBLE_EQ(step.PrescribedDisplacements()[1U].PrescribedValue(), 0.0) | ASSERT_EQ(step.ConcentratedLoads().Size(), 1U) | EXPECT_EQ(step.ConcentratedLoads()[0U].Target().target_name_or_label, ""RootAssembly"") | EXPECT_DOUBLE_EQ(step.ConcentratedLoads()[0U].GlobalComponents()[5U], -12.5) | EXPECT_EQ(domain.Warnings().size(), 8U) | ASSERT_TRUE(parsed_legacy.HasValue()) | ASSERT_TRUE(legacy.HasValue()) | EXPECT_EQ(legacy.Value().Nodes().size(), 11U) | EXPECT_EQ(legacy.Value().Elements().Size(), 10U) | EXPECT_EQ(legacy.Value().Materials().Size(), 1U) | EXPECT_EQ(legacy.Value().Sections().Size(), 1U) | EXPECT_EQ(legacy.Value().Steps().Size(), 1U) | EXPECT_EQ(legacy.Value().Warnings().size(), 7U) | EXPECT_EQ(ReadExactBytes(legacy_path), bytes_before) | EXPECT_EQ(std::filesystem::last_write_time(legacy_path), timestamp_before)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Nodes()[0].source_id.instance_name, ""Beam-1"") | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""0001"") | EXPECT_EQ(domain.Nodes()[1].source_id.source_label_text, ""0002"") | EXPECT_DOUBLE_EQ(domain.Nodes()[1].coordinates[0], 2.0) | ASSERT_EQ(domain.Elements().Size(), 1U) | EXPECT_EQ(element.Kind(), fesa::ElementDefinitionKind::kEulerBeam3D) | EXPECT_EQ(element.SourceId().source_label_text, ""0007"") | EXPECT_EQ(element.SourceElementType(), ""B33"") | EXPECT_EQ(element.NodeIndices(), (std::vector{0U, 1U})) | EXPECT_EQ(&element, &domain.BeamElements()[0U]) | ASSERT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Materials()[0U].Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(domain.LinearElasticMaterials()[0U].name, ""Steel"") | EXPECT_DOUBLE_EQ(domain.LinearElasticMaterials()[0U].youngs_modulus, 210000.0) | EXPECT_DOUBLE_EQ(domain.LinearElasticMaterials()[0U].poisson_ratio, 0.75) | ASSERT_EQ(domain.Sections().Size(), 1U) | EXPECT_DOUBLE_EQ(section.area, 2.0) | EXPECT_DOUBLE_EQ(section.i11, 3.0) | EXPECT_DOUBLE_EQ(section.i12, 0.0) | EXPECT_DOUBLE_EQ(section.i22, 4.0) | EXPECT_DOUBLE_EQ(section.torsional_constant, 5.0) | EXPECT_EQ(section.first_axis, (std::array{0.0, 1.0, 0.0})) | EXPECT_EQ(section.section_points, (std::vector>{{-0.5, 0.25}, {0.5, -0.25}})) | EXPECT_EQ(domain.BeamElements()[0U].material_index, 0U) | EXPECT_EQ(domain.BeamElements()[0U].section_index, 0U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(step.Name(), ""Step-1"") | EXPECT_DOUBLE_EQ(step.InitialIncrement(), 0.25) | EXPECT_DOUBLE_EQ(step.TimePeriod(), 1.5) | EXPECT_DOUBLE_EQ(step.MinimumIncrement(), 0.01) | EXPECT_DOUBLE_EQ(step.MaximumIncrement(), 1.5) | ASSERT_EQ(step.PrescribedDisplacements().Size(), 2U) | EXPECT_EQ(step.PrescribedDisplacements()[0U].Target().target_name_or_label, ""rootassembly"") | EXPECT_EQ(step.PrescribedDisplacements()[0U].Component(), fesa::DofComponent::kUx) | EXPECT_DOUBLE_EQ(step.PrescribedDisplacements()[0U].PrescribedValue(), 0.125) | EXPECT_EQ(step.PrescribedDisplacements()[1U].Component(), fesa::DofComponent::kUy) | EXPECT_DOUBLE_EQ(step.PrescribedDisplacements()[1U].PrescribedValue(), 0.0) | ASSERT_EQ(step.ConcentratedLoads().Size(), 1U) | EXPECT_EQ(step.ConcentratedLoads()[0U].Target().target_name_or_label, ""RootAssembly"") | EXPECT_DOUBLE_EQ(step.ConcentratedLoads()[0U].GlobalComponents()[5U], -12.5) | EXPECT_EQ(domain.Warnings().size(), 8U) | ASSERT_TRUE(parsed_legacy.HasValue()) | ASSERT_TRUE(legacy.HasValue()) | EXPECT_EQ(legacy.Value().Nodes().size(), 11U) | EXPECT_EQ(legacy.Value().Elements().Size(), 10U) | EXPECT_EQ(legacy.Value().Materials().Size(), 1U) | EXPECT_EQ(legacy.Value().Sections().Size(), 1U) | EXPECT_EQ(legacy.Value().Steps().Size(), 1U) | EXPECT_EQ(legacy.Value().Warnings().size(), 7U) | EXPECT_EQ(ReadExactBytes(legacy_path), bytes_before) | EXPECT_EQ(std::filesystem::last_write_time(legacy_path), timestamp_before)" -Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.ExpandsSetsAndMultipleIdentityInstancesDeterministically InpDomainMapping.ExpandsSetsAndMultipleIdentityInstancesDeterministically; assertion 44개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.ExpandsSetsAndMultipleIdentityInstancesDeterministically 유지 원문 검사 body 및 assertion 동일. bf2734852f2ee6378dde74ca60a0a11d717385260626eff82987b59932ab65a4 bf2734852f2ee6378dde74ca60a0a11d717385260626eff82987b59932ab65a4 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 4U) | EXPECT_EQ(domain.Nodes()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes()[1].source_id.instance_name, ""First"") | EXPECT_EQ(domain.Nodes()[1].source_id.source_label, 20) | EXPECT_EQ(domain.Nodes()[2].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.Nodes()[2].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes()[3].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.Nodes()[3].source_id.source_label, 20) | ASSERT_EQ(domain.BeamElements().Size(), 2U) | EXPECT_EQ(domain.BeamElements()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.BeamElements()[0].node_indices, (std::array{0U, 1U})) | EXPECT_EQ(domain.BeamElements()[1].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.BeamElements()[1].node_indices, (std::array{2U, 3U})) | ASSERT_EQ(domain.NodeSets().size(), 3U) | EXPECT_EQ(domain.NodeSets()[0].name, ""Ends"") | EXPECT_EQ(domain.NodeSets()[0].instance_name, std::optional{""First""}) | EXPECT_EQ(domain.NodeSets()[0].node_indices, (std::vector{0U, 1U})) | EXPECT_EQ(domain.NodeSets()[1].instance_name, std::optional{""Second""}) | EXPECT_EQ(domain.NodeSets()[1].node_indices, (std::vector{2U, 3U})) | EXPECT_EQ(domain.NodeSets()[2].name, ""OnlySecond"") | EXPECT_EQ(domain.NodeSets()[2].node_indices, (std::vector{3U})) | ASSERT_EQ(domain.ElementSets().size(), 3U) | EXPECT_EQ(domain.ElementSets()[0].instance_name, std::optional{""First""}) | EXPECT_EQ(domain.ElementSets()[0].element_indices, (std::vector{0U})) | EXPECT_EQ(domain.ElementSets()[1].instance_name, std::optional{""Second""}) | EXPECT_EQ(domain.ElementSets()[1].element_indices, (std::vector{1U})) | EXPECT_EQ(domain.ElementSets()[2].name, ""OnlySecondBeam"") | EXPECT_EQ(domain.ElementSets()[2].element_indices, (std::vector{1U})) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0] .PrescribedDisplacements()[0U] .Target() .target_name_or_label, ""OnlySecond"") | EXPECT_EQ( domain.Steps()[0].ConcentratedLoads()[0U].Target().target_name_or_label, ""OnlySecond"") | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(direct.Value() .Steps()[0] .PrescribedDisplacements()[0U] .Target() .target_name_or_label, ""1"") | EXPECT_EQ(direct.Value() .Steps()[0] .ConcentratedLoads()[0U] .Target() .target_name_or_label, ""2"") | ASSERT_TRUE(above_thresholds.HasValue()) | ASSERT_TRUE(large_finite.HasValue()) | ASSERT_EQ(large_domain.Nodes().size(), 2U) | EXPECT_TRUE(large_delta.IsFinite()) | EXPECT_TRUE(std::isfinite(large_delta.Norm())) | EXPECT_DOUBLE_EQ(large_delta.Y(), 1.0e297) | EXPECT_TRUE(large_guide.IsFinite()) | EXPECT_TRUE(std::isfinite(large_guide.Norm()))" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 4U) | EXPECT_EQ(domain.Nodes()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes()[1].source_id.instance_name, ""First"") | EXPECT_EQ(domain.Nodes()[1].source_id.source_label, 20) | EXPECT_EQ(domain.Nodes()[2].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.Nodes()[2].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes()[3].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.Nodes()[3].source_id.source_label, 20) | ASSERT_EQ(domain.BeamElements().Size(), 2U) | EXPECT_EQ(domain.BeamElements()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.BeamElements()[0].node_indices, (std::array{0U, 1U})) | EXPECT_EQ(domain.BeamElements()[1].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.BeamElements()[1].node_indices, (std::array{2U, 3U})) | ASSERT_EQ(domain.NodeSets().size(), 3U) | EXPECT_EQ(domain.NodeSets()[0].name, ""Ends"") | EXPECT_EQ(domain.NodeSets()[0].instance_name, std::optional{""First""}) | EXPECT_EQ(domain.NodeSets()[0].node_indices, (std::vector{0U, 1U})) | EXPECT_EQ(domain.NodeSets()[1].instance_name, std::optional{""Second""}) | EXPECT_EQ(domain.NodeSets()[1].node_indices, (std::vector{2U, 3U})) | EXPECT_EQ(domain.NodeSets()[2].name, ""OnlySecond"") | EXPECT_EQ(domain.NodeSets()[2].node_indices, (std::vector{3U})) | ASSERT_EQ(domain.ElementSets().size(), 3U) | EXPECT_EQ(domain.ElementSets()[0].instance_name, std::optional{""First""}) | EXPECT_EQ(domain.ElementSets()[0].element_indices, (std::vector{0U})) | EXPECT_EQ(domain.ElementSets()[1].instance_name, std::optional{""Second""}) | EXPECT_EQ(domain.ElementSets()[1].element_indices, (std::vector{1U})) | EXPECT_EQ(domain.ElementSets()[2].name, ""OnlySecondBeam"") | EXPECT_EQ(domain.ElementSets()[2].element_indices, (std::vector{1U})) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0] .PrescribedDisplacements()[0U] .Target() .target_name_or_label, ""OnlySecond"") | EXPECT_EQ( domain.Steps()[0].ConcentratedLoads()[0U].Target().target_name_or_label, ""OnlySecond"") | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(direct.Value() .Steps()[0] .PrescribedDisplacements()[0U] .Target() .target_name_or_label, ""1"") | EXPECT_EQ(direct.Value() .Steps()[0] .ConcentratedLoads()[0U] .Target() .target_name_or_label, ""2"") | ASSERT_TRUE(above_thresholds.HasValue()) | ASSERT_TRUE(large_finite.HasValue()) | ASSERT_EQ(large_domain.Nodes().size(), 2U) | EXPECT_TRUE(large_delta.IsFinite()) | EXPECT_TRUE(std::isfinite(large_delta.Norm())) | EXPECT_DOUBLE_EQ(large_delta.Y(), 1.0e297) | EXPECT_TRUE(large_guide.IsFinite()) | EXPECT_TRUE(std::isfinite(large_guide.Norm()))" -Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.KeepsNodeAndElementSetNamesInSeparateNamespaces InpDomainMapping.KeepsNodeAndElementSetNamesInSeparateNamespaces; assertion 12개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.KeepsNodeAndElementSetNamesInSeparateNamespaces 유지 원문 검사 body 및 assertion 동일. 2aba9a9e28b849050f1881692d962a2144d083d109388698a14e43a9c5c8b3fa 2aba9a9e28b849050f1881692d962a2144d083d109388698a14e43a9c5c8b3fa "ASSERT_TRUE(shared_name.HasValue()) | EXPECT_TRUE(std::any_of( domain.NodeSets().begin(), domain.NodeSets().end(), [](const fesa::NodeSet& set) { return set.name == ""ShellS4""; })) | EXPECT_TRUE(std::any_of( domain.ElementSets().begin(), domain.ElementSets().end(), [](const fesa::ElementSet& set) { return set.name == ""ShellS4""; })) | ASSERT_FALSE(duplicate_node_set.HasValue()) | EXPECT_NE(FindDiagnostic(duplicate_node_set.GetStatus(), ""duplicate-entity""), nullptr) | ASSERT_FALSE(duplicate_element_set.HasValue()) | EXPECT_NE( FindDiagnostic(duplicate_element_set.GetStatus(), ""duplicate-entity""), nullptr) | ASSERT_TRUE(assembly_shared_name.HasValue()) | EXPECT_EQ(root_node_set_count, 1) | ASSERT_NE(root_node_set, assembly_domain.NodeSets().end()) | EXPECT_EQ(root_node_set->node_indices, (std::vector{0U})) | EXPECT_EQ(std::count_if( assembly_domain.ElementSets().begin(), assembly_domain.ElementSets().end(), [](const fesa::ElementSet& set) { return set.name == ""Root""; }), 1)" "ASSERT_TRUE(shared_name.HasValue()) | EXPECT_TRUE(std::any_of( domain.NodeSets().begin(), domain.NodeSets().end(), [](const fesa::NodeSet& set) { return set.name == ""ShellS4""; })) | EXPECT_TRUE(std::any_of( domain.ElementSets().begin(), domain.ElementSets().end(), [](const fesa::ElementSet& set) { return set.name == ""ShellS4""; })) | ASSERT_FALSE(duplicate_node_set.HasValue()) | EXPECT_NE(FindDiagnostic(duplicate_node_set.GetStatus(), ""duplicate-entity""), nullptr) | ASSERT_FALSE(duplicate_element_set.HasValue()) | EXPECT_NE( FindDiagnostic(duplicate_element_set.GetStatus(), ""duplicate-entity""), nullptr) | ASSERT_TRUE(assembly_shared_name.HasValue()) | EXPECT_EQ(root_node_set_count, 1) | ASSERT_NE(root_node_set, assembly_domain.NodeSets().end()) | EXPECT_EQ(root_node_set->node_indices, (std::vector{0U})) | EXPECT_EQ(std::count_if( assembly_domain.ElementSets().begin(), assembly_domain.ElementSets().end(), [](const fesa::ElementSet& set) { return set.name == ""Root""; }), 1)" -Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.NoOpAllowlistWarnsWithoutSemanticEffect InpDomainMapping.NoOpAllowlistWarnsWithoutSemanticEffect; assertion 23개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.NoOpAllowlistWarnsWithoutSemanticEffect 유지 원문 검사 body 및 assertion 동일. 9556663b9437fa4d24f82ae5e96bbab4bc6f0cb6dc06ec796f94eafbe3bcb829 9556663b9437fa4d24f82ae5e96bbab4bc6f0cb6dc06ec796f94eafbe3bcb829 "ASSERT_TRUE(plain.HasValue()) | ASSERT_TRUE(with_no_ops.HasValue()) | EXPECT_TRUE(plain.Value().Warnings().empty()) | ASSERT_EQ(with_no_ops.Value().Warnings().size(), 8U) | EXPECT_EQ(with_no_ops.Value().Warnings()[0].code, ""ignored-input-keyword"") | EXPECT_EQ(with_no_ops.Value().Warnings()[0].keyword, ""PREPRINT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[1].keyword, ""TRANSVERSE SHEAR STIFFNESS"") | EXPECT_EQ(with_no_ops.Value().Warnings()[2].keyword, ""RESTART"") | EXPECT_EQ(with_no_ops.Value().Warnings()[3].keyword, ""OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[4].keyword, ""NODE OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[5].keyword, ""ELEMENT OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[6].keyword, ""CONTACT OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[7].keyword, ""OUTPUT"") | EXPECT_EQ(warning.severity, fesa::Severity::kWarning) | EXPECT_EQ(with_no_ops.Value().Nodes().size(), plain.Value().Nodes().size()) | EXPECT_EQ(with_no_ops.Value().Elements().Size(), plain.Value().Elements().Size()) | EXPECT_EQ(with_no_ops.Value().Materials().Size(), plain.Value().Materials().Size()) | EXPECT_EQ(with_no_ops.Value().Sections().Size(), plain.Value().Sections().Size()) | EXPECT_EQ(with_no_ops.Value().NodeSets().size(), plain.Value().NodeSets().size()) | EXPECT_EQ(with_no_ops.Value().ElementSets().size(), plain.Value().ElementSets().size()) | EXPECT_EQ(with_no_ops.Value().Steps().Size(), plain.Value().Steps().Size()) | EXPECT_EQ(with_no_ops.Value().Steps()[0].BoundaryConditions().size(), plain.Value().Steps()[0].BoundaryConditions().size()) | EXPECT_EQ(with_no_ops.Value().Steps()[0].Loads().size(), plain.Value().Steps()[0].Loads().size())" "ASSERT_TRUE(plain.HasValue()) | ASSERT_TRUE(with_no_ops.HasValue()) | EXPECT_TRUE(plain.Value().Warnings().empty()) | ASSERT_EQ(with_no_ops.Value().Warnings().size(), 8U) | EXPECT_EQ(with_no_ops.Value().Warnings()[0].code, ""ignored-input-keyword"") | EXPECT_EQ(with_no_ops.Value().Warnings()[0].keyword, ""PREPRINT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[1].keyword, ""TRANSVERSE SHEAR STIFFNESS"") | EXPECT_EQ(with_no_ops.Value().Warnings()[2].keyword, ""RESTART"") | EXPECT_EQ(with_no_ops.Value().Warnings()[3].keyword, ""OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[4].keyword, ""NODE OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[5].keyword, ""ELEMENT OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[6].keyword, ""CONTACT OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[7].keyword, ""OUTPUT"") | EXPECT_EQ(warning.severity, fesa::Severity::kWarning) | EXPECT_EQ(with_no_ops.Value().Nodes().size(), plain.Value().Nodes().size()) | EXPECT_EQ(with_no_ops.Value().Elements().Size(), plain.Value().Elements().Size()) | EXPECT_EQ(with_no_ops.Value().Materials().Size(), plain.Value().Materials().Size()) | EXPECT_EQ(with_no_ops.Value().Sections().Size(), plain.Value().Sections().Size()) | EXPECT_EQ(with_no_ops.Value().NodeSets().size(), plain.Value().NodeSets().size()) | EXPECT_EQ(with_no_ops.Value().ElementSets().size(), plain.Value().ElementSets().size()) | EXPECT_EQ(with_no_ops.Value().Steps().Size(), plain.Value().Steps().Size()) | EXPECT_EQ(with_no_ops.Value().Steps()[0].BoundaryConditions().size(), plain.Value().Steps()[0].BoundaryConditions().size()) | EXPECT_EQ(with_no_ops.Value().Steps()[0].Loads().size(), plain.Value().Steps()[0].Loads().size())" -Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsNonlinearStaticShellProcedureAndRawControls InpDomainMapping.MapsNonlinearStaticShellProcedureAndRawControls; assertion 12개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsNonlinearStaticShellProcedureAndRawControls 유지 원문 검사 body 및 assertion 동일. 2e73d6a87d1ffc3aec44a5df50e01816e4fdf726356ea95f337dbf60a1e4d902 2e73d6a87d1ffc3aec44a5df50e01816e4fdf726356ea95f337dbf60a1e4d902 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(step.ProcedureKind(), fesa::StaticProcedureKind::kNonlinearFullNewton) | EXPECT_TRUE(step.IsNonlinearStatic()) | EXPECT_DOUBLE_EQ(step.InitialIncrement(), 0.1) | EXPECT_DOUBLE_EQ(step.TimePeriod(), 1.0) | EXPECT_DOUBLE_EQ(step.MinimumIncrement(), 0.001) | EXPECT_DOUBLE_EQ(step.MaximumIncrement(), 0.1) | EXPECT_TRUE(domain.BeamElements().Empty()) | ASSERT_EQ(domain.ShellElements().Size(), 4U) | EXPECT_EQ(domain.ShellElements()[0U].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[1U].source_type, fesa::ShellSourceElementType::kS4r) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(step.ProcedureKind(), fesa::StaticProcedureKind::kNonlinearFullNewton) | EXPECT_TRUE(step.IsNonlinearStatic()) | EXPECT_DOUBLE_EQ(step.InitialIncrement(), 0.1) | EXPECT_DOUBLE_EQ(step.TimePeriod(), 1.0) | EXPECT_DOUBLE_EQ(step.MinimumIncrement(), 0.001) | EXPECT_DOUBLE_EQ(step.MaximumIncrement(), 0.1) | EXPECT_TRUE(domain.BeamElements().Empty()) | ASSERT_EQ(domain.ShellElements().Size(), 4U) | EXPECT_EQ(domain.ShellElements()[0U].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[1U].source_type, fesa::ShellSourceElementType::kS4r) -Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.KeepsExplicitAndImplicitLinearStaticProcedures InpDomainMapping.KeepsExplicitAndImplicitLinearStaticProcedures; assertion 4개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.KeepsExplicitAndImplicitLinearStaticProcedures 유지 원문 검사 body 및 assertion 동일. 645611caad1634687946216c661df3ce027c77b5ea68d779fac476741753a12b 645611caad1634687946216c661df3ce027c77b5ea68d779fac476741753a12b ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Steps().Size(), 1U) | EXPECT_EQ(result.Value().Steps()[0U].ProcedureKind(), fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(result.Value().Steps()[0U].IsNonlinearStatic()) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Steps().Size(), 1U) | EXPECT_EQ(result.Value().Steps()[0U].ProcedureKind(), fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(result.Value().Steps()[0U].IsNonlinearStatic()) -Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidNonlinearStaticControlValues InpDomainMapping.RejectsInvalidNonlinearStaticControlValues; assertion 3개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidNonlinearStaticControlValues 유지 원문 검사 body 및 assertion 동일. 4833f2bb3b01123f8994ec47b375d524c9247177bb8f2e8318fbde641ce2fd45 4833f2bb3b01123f8994ec47b375d524c9247177bb8f2e8318fbde641ce2fd45 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), ""invalid-nonlinear-static-data""), nullptr)" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), ""invalid-nonlinear-static-data""), nullptr)" -Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsUnsupportedNonlinearProceduresAndMixedModels InpDomainMapping.RejectsUnsupportedNonlinearProceduresAndMixedModels; assertion 6개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsUnsupportedNonlinearProceduresAndMixedModels 유지 원문 검사 body 및 assertion 동일. ecf6c6c09f3477f2db467ff9106e3b19c1553237de80831fdd99cc22dca3e390 ecf6c6c09f3477f2db467ff9106e3b19c1553237de80831fdd99cc22dca3e390 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.first == ""dynamic"" ? ""invalid-dynamic-data"" : ""unsupported-analysis-procedure""), nullptr) | ASSERT_FALSE(mixed_result.HasValue()) | EXPECT_EQ(mixed_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(mixed_result.GetStatus(), ""unsupported-mixed-element-model""), nullptr)" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.first == ""dynamic"" ? ""invalid-dynamic-data"" : ""unsupported-analysis-procedure""), nullptr) | ASSERT_FALSE(mixed_result.HasValue()) | EXPECT_EQ(mixed_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(mixed_result.GetStatus(), ""unsupported-mixed-element-model""), nullptr)" -Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.AcceptsOnlyNonlinearPreselectOutputNoOps InpDomainMapping.AcceptsOnlyNonlinearPreselectOutputNoOps; assertion 11개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.AcceptsOnlyNonlinearPreselectOutputNoOps 유지 원문 검사 body 및 assertion 동일. 0bb0af8b7d98b402f61fa466169286371cf638754a75cfdcd433f5066d8c1fee 0bb0af8b7d98b402f61fa466169286371cf638754a75cfdcd433f5066d8c1fee "ASSERT_TRUE(plain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().Nodes().size(), plain.Value().Nodes().size()) | EXPECT_EQ(result.Value().Steps().Size(), plain.Value().Steps().Size()) | EXPECT_EQ(result.Value().Steps()[0U].BoundaryConditions().size(), plain.Value().Steps()[0U].BoundaryConditions().size()) | EXPECT_EQ(result.Value().Steps()[0U].Loads().size(), plain.Value().Steps()[0U].Loads().size()) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(result.Value().Warnings()[0U].keyword, ""OUTPUT"") | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), ""invalid-keyword-parameter""), nullptr)" "ASSERT_TRUE(plain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().Nodes().size(), plain.Value().Nodes().size()) | EXPECT_EQ(result.Value().Steps().Size(), plain.Value().Steps().Size()) | EXPECT_EQ(result.Value().Steps()[0U].BoundaryConditions().size(), plain.Value().Steps()[0U].BoundaryConditions().size()) | EXPECT_EQ(result.Value().Steps()[0U].Loads().size(), plain.Value().Steps()[0U].Loads().size()) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(result.Value().Warnings()[0U].keyword, ""OUTPUT"") | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), ""invalid-keyword-parameter""), nullptr)" -Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsS4AndS4rThroughOneMitc4Identity InpDomainMapping.MapsS4AndS4rThroughOneMitc4Identity; assertion 40개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsS4AndS4rThroughOneMitc4Identity 유지 원문 검사 body 및 assertion 동일. 73516cc1de335e84ad43308d44db8ab9748911b9df15b569a3db4a78b3694a71 73516cc1de335e84ad43308d44db8ab9748911b9df15b569a3db4a78b3694a71 "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(domain.BeamElements().Empty()) | ASSERT_EQ(domain.Elements().Size(), 4U) | EXPECT_EQ(domain.Elements()[0U].Kind(), fesa::ElementDefinitionKind::kMitc4Shell) | EXPECT_EQ(domain.Elements()[0U].SourceElementType(), ""S4"") | EXPECT_EQ(domain.Elements()[1U].SourceElementType(), ""S4R"") | EXPECT_EQ(&domain.Elements()[0U], &domain.ShellElements()[0U]) | ASSERT_EQ(domain.ShellElements().Size(), 4U) | EXPECT_EQ(domain.ShellElements()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label_text, ""0010"") | EXPECT_EQ(domain.ShellElements()[0].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[0].node_indices, (std::array{0U, 1U, 2U, 3U})) | EXPECT_EQ(domain.ShellElements()[0].section_index, 0U) | EXPECT_EQ(domain.ShellElements()[0].material_index, 0U) | EXPECT_EQ(domain.ShellElements()[1].source_id.instance_name, ""First"") | EXPECT_EQ(domain.ShellElements()[1].source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_EQ(domain.ShellElements()[1].node_indices, (std::array{1U, 4U, 5U, 2U})) | EXPECT_EQ(domain.ShellElements()[1].section_index, 1U) | EXPECT_EQ(domain.ShellElements()[1].material_index, 1U) | EXPECT_EQ(domain.ShellElements()[2].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.ShellElements()[2].node_indices, (std::array{6U, 7U, 8U, 9U})) | EXPECT_EQ(domain.ShellElements()[3].source_id.instance_name, ""Second"") | EXPECT_EQ(fesa::kMitc4InternalFormulation, std::string_view{""FESA-MITC4""}) | ASSERT_EQ(domain.ShellSections().Size(), 2U) | EXPECT_EQ(domain.ShellSections()[0].name, ""ShellS4"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[0].thickness, 0.1) | EXPECT_EQ(domain.ShellSections()[0].material_index, 0U) | EXPECT_EQ(domain.ShellSections()[1].name, ""ShellS4R"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[1].thickness, 0.2) | EXPECT_EQ(domain.ShellSections()[1].material_index, 1U) | ASSERT_EQ(domain.ShellNodeInitialFrames().size(), domain.Nodes().size()) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].node_index, 0U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].director, (std::array{0.0, 0.0, 1.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_a, (std::array{1.0, 0.0, 0.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_b, (std::array{0.0, 1.0, 0.0})) | ASSERT_EQ(domain.Steps().Size(), 1U) | ASSERT_EQ(domain.Steps()[0].PrescribedDisplacements().Size(), 6U) | EXPECT_EQ(domain.Steps()[0].PrescribedDisplacements()[5U].Component(), fesa::DofComponent::kUrz) | ASSERT_EQ(domain.Steps()[0].ConcentratedLoads().Size(), 1U) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[5U], 1.0)" "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(domain.BeamElements().Empty()) | ASSERT_EQ(domain.Elements().Size(), 4U) | EXPECT_EQ(domain.Elements()[0U].Kind(), fesa::ElementDefinitionKind::kMitc4Shell) | EXPECT_EQ(domain.Elements()[0U].SourceElementType(), ""S4"") | EXPECT_EQ(domain.Elements()[1U].SourceElementType(), ""S4R"") | EXPECT_EQ(&domain.Elements()[0U], &domain.ShellElements()[0U]) | ASSERT_EQ(domain.ShellElements().Size(), 4U) | EXPECT_EQ(domain.ShellElements()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label_text, ""0010"") | EXPECT_EQ(domain.ShellElements()[0].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[0].node_indices, (std::array{0U, 1U, 2U, 3U})) | EXPECT_EQ(domain.ShellElements()[0].section_index, 0U) | EXPECT_EQ(domain.ShellElements()[0].material_index, 0U) | EXPECT_EQ(domain.ShellElements()[1].source_id.instance_name, ""First"") | EXPECT_EQ(domain.ShellElements()[1].source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_EQ(domain.ShellElements()[1].node_indices, (std::array{1U, 4U, 5U, 2U})) | EXPECT_EQ(domain.ShellElements()[1].section_index, 1U) | EXPECT_EQ(domain.ShellElements()[1].material_index, 1U) | EXPECT_EQ(domain.ShellElements()[2].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.ShellElements()[2].node_indices, (std::array{6U, 7U, 8U, 9U})) | EXPECT_EQ(domain.ShellElements()[3].source_id.instance_name, ""Second"") | EXPECT_EQ(fesa::kMitc4InternalFormulation, std::string_view{""FESA-MITC4""}) | ASSERT_EQ(domain.ShellSections().Size(), 2U) | EXPECT_EQ(domain.ShellSections()[0].name, ""ShellS4"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[0].thickness, 0.1) | EXPECT_EQ(domain.ShellSections()[0].material_index, 0U) | EXPECT_EQ(domain.ShellSections()[1].name, ""ShellS4R"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[1].thickness, 0.2) | EXPECT_EQ(domain.ShellSections()[1].material_index, 1U) | ASSERT_EQ(domain.ShellNodeInitialFrames().size(), domain.Nodes().size()) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].node_index, 0U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].director, (std::array{0.0, 0.0, 1.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_a, (std::array{1.0, 0.0, 0.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_b, (std::array{0.0, 1.0, 0.0})) | ASSERT_EQ(domain.Steps().Size(), 1U) | ASSERT_EQ(domain.Steps()[0].PrescribedDisplacements().Size(), 6U) | EXPECT_EQ(domain.Steps()[0].PrescribedDisplacements()[5U].Component(), fesa::DofComponent::kUrz) | ASSERT_EQ(domain.Steps()[0].ConcentratedLoads().Size(), 1U) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[5U], 1.0)" -Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidShellAssignmentsAndProperties InpDomainMapping.RejectsInvalidShellAssignmentsAndProperties; assertion 3개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidShellAssignmentsAndProperties 유지 원문 검사 body 및 assertion 동일. 785c82079cd94789aa85628e9ec1e3529ac1ca34099e3eb76d1e740bc3de5cb8 785c82079cd94789aa85628e9ec1e3529ac1ca34099e3eb76d1e740bc3de5cb8 ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), test_case.category) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr) ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), test_case.category) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr) -Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidShellConnectivityOptionsAndMixedModels InpDomainMapping.RejectsInvalidShellConnectivityOptionsAndMixedModels; assertion 3개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidShellConnectivityOptionsAndMixedModels 유지 원문 검사 body 및 assertion 동일. 1156d85feb44cb57821111e3498517c200f57a2a20825d5ee20c89de67879b15 1156d85feb44cb57821111e3498517c200f57a2a20825d5ee20c89de67879b15 ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr) ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr) -Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.PreservesProcedureLoadAndOutputRequestBoundariesForShells InpDomainMapping.PreservesProcedureLoadAndOutputRequestBoundariesForShells; assertion 8개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.PreservesProcedureLoadAndOutputRequestBoundariesForShells 유지 원문 검사 body 및 assertion 동일. 7dad7b84e339df37b9157bcf3dbb1d1899586060ffd077353911cde6901f8aae 7dad7b84e339df37b9157bcf3dbb1d1899586060ffd077353911cde6901f8aae "ASSERT_TRUE(valid.HasValue()) | ASSERT_EQ(valid.Value().Warnings().size(), 3U) | EXPECT_EQ(valid.Value().Warnings()[0].keyword, ""OUTPUT"") | EXPECT_EQ(valid.Value().Warnings()[1].keyword, ""NODE OUTPUT"") | EXPECT_EQ(valid.Value().Warnings()[2].keyword, ""ELEMENT OUTPUT"") | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr)" "ASSERT_TRUE(valid.HasValue()) | ASSERT_EQ(valid.Value().Warnings().size(), 3U) | EXPECT_EQ(valid.Value().Warnings()[0].keyword, ""OUTPUT"") | EXPECT_EQ(valid.Value().Warnings()[1].keyword, ""NODE OUTPUT"") | EXPECT_EQ(valid.Value().Warnings()[2].keyword, ""ELEMENT OUTPUT"") | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr)" -Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsUnsupportedAndInvalidPortfolio InpDomainMapping.RejectsUnsupportedAndInvalidPortfolio; assertion 14개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsUnsupportedAndInvalidPortfolio 유지 원문 검사 body 및 assertion 동일. 33dae7daee6b5f3283f0dc0c01c58157947c30d91394f6804227b17e827a84ad 33dae7daee6b5f3283f0dc0c01c58157947c30d91394f6804227b17e827a84ad "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), test_case.category) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->severity, fesa::Severity::kError) | EXPECT_FALSE(diagnostic->location.file.empty()) | EXPECT_GT(diagnostic->location.line, 0U) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->severity, fesa::Severity::kError) | EXPECT_EQ(diagnostic->keyword, test_case.expected_keyword) | EXPECT_EQ(diagnostic->entity_identity, ""1"") | EXPECT_EQ(diagnostic->location.line, test_case.expected_line) | EXPECT_EQ(diagnostic->location.file.filename().string(), ""fesa-domain-mapper-same-token-"" + test_case.name + "".inp"")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), test_case.category) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->severity, fesa::Severity::kError) | EXPECT_FALSE(diagnostic->location.file.empty()) | EXPECT_GT(diagnostic->location.line, 0U) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->severity, fesa::Severity::kError) | EXPECT_EQ(diagnostic->keyword, test_case.expected_keyword) | EXPECT_EQ(diagnostic->entity_identity, ""1"") | EXPECT_EQ(diagnostic->location.line, test_case.expected_line) | EXPECT_EQ(diagnostic->location.file.filename().string(), ""fesa-domain-mapper-same-token-"" + test_case.name + "".inp"")" -Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsDloadWithoutDistributedLoadObject InpDomainMapping.RejectsDloadWithoutDistributedLoadObject; assertion 4개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsDloadWithoutDistributedLoadObject 유지 원문 검사 body 및 assertion 동일. e3e84f2ef580a2306947632bf01bb5fbe250460b5c86095164b54fb00f2ebea9 e3e84f2ef580a2306947632bf01bb5fbe250460b5c86095164b54fb00f2ebea9 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->keyword, ""DLOAD"")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->keyword, ""DLOAD"")" -Dev tests/unit/io/abaqus/domain_mapper_test.cpp support@1-253 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if, MapText, ReadExactBytes, RepositoryRoot, FindDiagnostic, find_if, ReplaceOnce, MinimalDeck, ShellDeck, NonlinearShellDeck, SupportedInventoryDeck tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d4a3cb30beb5a5732a40fb39fe5981aa1156d1ea97812454c30bf93fbbff733e 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/domain_mapper_test.cpp support@578-579 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a17d35bc26ea1a9c371b82c2b0318318ea0f138663e240361e4f36b6b36e28a3 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/domain_mapper_test.cpp support@601-602 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d3465cabe35b62c482d5bfbc700278989749bc95ced8528c179fabf2e46b1e9d 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/domain_mapper_test.cpp support@618-619 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2dda137dd997f072d5e1721f3fef902ee6eba433d87b0cc65c0ec3bcc92449aa 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/domain_mapper_test.cpp support@643-644 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9d6708ab0855db443bd63e7f30d47944821695395efba5b5687f458ad88232ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/domain_mapper_test.cpp support@680-681 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 48cc0be2d1c45cc611d13733472689fca4e37d761ae0374cc74fa3e4f1e83bac 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/domain_mapper_test.cpp support@717-719 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5fd581bec64057435da242b600880b7876a63ab7f90c83629f761adb523253b9 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/domain_mapper_test.cpp support@781-782 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f887854314ac3472576dbefddf88818cb395844ceb68f8e943b64a304cae6a92 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/domain_mapper_test.cpp support@824-825 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fad76b68876263d3277eb79c04e1ae0ce1719f94a92fdd3b1765729c0e1790b0 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/domain_mapper_test.cpp support@863-864 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3b8e0519340ad1aa555a27d246833b7379abb093fe25d9f4bc115c04a15f18f1 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/domain_mapping_components_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/io/abaqus/domain_mapping_components_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a515704fe97d521d11a2b7c95e41e0f7ec6557f3ee7e4dd5017a8c9757358f9a a515704fe97d521d11a2b7c95e41e0f7ec6557f3ee7e4dd5017a8c9757358f9a 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001BuildsStableCandidatesBeforeAtomicDomainCommit DomainMappingComponents.CModule001BuildsStableCandidatesBeforeAtomicDomainCommit; assertion 32개 tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001BuildsStableCandidatesBeforeAtomicDomainCommit 유지 원문 검사 body 및 assertion 동일. 5d6ea9aacc764e212a94ecc20d15d795679922368c9c6404c6375192ba222df7 5d6ea9aacc764e212a94ecc20d15d795679922368c9c6404c6375192ba222df7 "ASSERT_TRUE(topology_mapper.Map(context).IsOk()) | EXPECT_EQ(summary.part_count, 1U) | EXPECT_EQ(summary.node_count, 2U) | EXPECT_EQ(summary.element_count, 1U) | EXPECT_EQ(summary.instance_count, 1U) | EXPECT_EQ(summary.node_set_count, 3U) | EXPECT_EQ(summary.element_set_count, 1U) | EXPECT_EQ(summary.material_count, 1U) | EXPECT_EQ(summary.beam_section_count, 1U) | EXPECT_EQ(summary.shell_section_count, 0U) | EXPECT_EQ(summary.model_boundary_count, 1U) | EXPECT_EQ(summary.step_boundary_count, 1U) | EXPECT_EQ(summary.step_load_count, 1U) | EXPECT_TRUE(summary.has_static_step) | ASSERT_TRUE(material_property_mapper.Map(context).IsOk()) | ASSERT_TRUE(topology_mapper.Finalize(context).IsOk()) | ASSERT_TRUE(step_definition_mapper.Map(context).IsOk()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Elements().Size(), 1U) | EXPECT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Properties().Size(), 1U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0].ProcedureKind(), StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(domain.Steps()[0].IsNonlinearStatic()) | EXPECT_EQ(domain.Steps()[0].BoundaryConditions().size(), 7U) | EXPECT_EQ(domain.Steps()[0].Loads().size(), 1U) | ASSERT_EQ(domain.Warnings().size(), 3U) | EXPECT_EQ(domain.Warnings()[0].keyword, ""PREPRINT"") | EXPECT_EQ( domain.Warnings()[0].message, ""The allowlisted Abaqus keyword is ignored without semantic effect."") | EXPECT_EQ(domain.Warnings()[1].keyword, ""OUTPUT"") | EXPECT_EQ(domain.Warnings()[2].keyword, ""NODE OUTPUT"")" "ASSERT_TRUE(topology_mapper.Map(context).IsOk()) | EXPECT_EQ(summary.part_count, 1U) | EXPECT_EQ(summary.node_count, 2U) | EXPECT_EQ(summary.element_count, 1U) | EXPECT_EQ(summary.instance_count, 1U) | EXPECT_EQ(summary.node_set_count, 3U) | EXPECT_EQ(summary.element_set_count, 1U) | EXPECT_EQ(summary.material_count, 1U) | EXPECT_EQ(summary.beam_section_count, 1U) | EXPECT_EQ(summary.shell_section_count, 0U) | EXPECT_EQ(summary.model_boundary_count, 1U) | EXPECT_EQ(summary.step_boundary_count, 1U) | EXPECT_EQ(summary.step_load_count, 1U) | EXPECT_TRUE(summary.has_static_step) | ASSERT_TRUE(material_property_mapper.Map(context).IsOk()) | ASSERT_TRUE(topology_mapper.Finalize(context).IsOk()) | ASSERT_TRUE(step_definition_mapper.Map(context).IsOk()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Elements().Size(), 1U) | EXPECT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Properties().Size(), 1U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0].ProcedureKind(), StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(domain.Steps()[0].IsNonlinearStatic()) | EXPECT_EQ(domain.Steps()[0].BoundaryConditions().size(), 7U) | EXPECT_EQ(domain.Steps()[0].Loads().size(), 1U) | ASSERT_EQ(domain.Warnings().size(), 3U) | EXPECT_EQ(domain.Warnings()[0].keyword, ""PREPRINT"") | EXPECT_EQ( domain.Warnings()[0].message, ""The allowlisted Abaqus keyword is ignored without semantic effect."") | EXPECT_EQ(domain.Warnings()[1].keyword, ""OUTPUT"") | EXPECT_EQ(domain.Warnings()[2].keyword, ""NODE OUTPUT"")" -Dev tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001PreservesExactFirstFailureThroughFacade DomainMappingComponents.CModule001PreservesExactFirstFailureThroughFacade; assertion 12개 tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001PreservesExactFirstFailureThroughFacade 유지 원문 검사 body 및 assertion 동일. 77d7cab182b4b08c392cd8698050105755faa3d1fbfef4c56fdd4d02bca34624 77d7cab182b4b08c392cd8698050105755faa3d1fbfef4c56fdd4d02bca34624 "ASSERT_FALSE(component_status.IsOk()) | ASSERT_EQ(component_status.Diagnostics().size(), 1U) | EXPECT_EQ(component_status.Category(), FailureCategory::kInput) | EXPECT_EQ(component_diagnostic.severity, Severity::kError) | EXPECT_EQ(component_diagnostic.code, ""unsupported-keyword"") | EXPECT_EQ(component_diagnostic.location.line, 1U) | EXPECT_EQ(component_diagnostic.keyword, ""NODE"") | EXPECT_TRUE(component_diagnostic.entity_identity.empty()) | EXPECT_EQ(component_diagnostic.message, ""The keyword is outside the approved Abaqus subset."") | ASSERT_FALSE(facade_result.HasValue()) | ASSERT_EQ(facade_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(facade_result.GetStatus().Category(), component_status.Category())" "ASSERT_FALSE(component_status.IsOk()) | ASSERT_EQ(component_status.Diagnostics().size(), 1U) | EXPECT_EQ(component_status.Category(), FailureCategory::kInput) | EXPECT_EQ(component_diagnostic.severity, Severity::kError) | EXPECT_EQ(component_diagnostic.code, ""unsupported-keyword"") | EXPECT_EQ(component_diagnostic.location.line, 1U) | EXPECT_EQ(component_diagnostic.keyword, ""NODE"") | EXPECT_TRUE(component_diagnostic.entity_identity.empty()) | EXPECT_EQ(component_diagnostic.message, ""The keyword is outside the approved Abaqus subset."") | ASSERT_FALSE(facade_result.HasValue()) | ASSERT_EQ(facade_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(facade_result.GetStatus().Category(), component_status.Category())" -Dev tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001RejectsInvalidMaterialAtOwningComponent DomainMappingComponents.CModule001RejectsInvalidMaterialAtOwningComponent; assertion 9개 tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001RejectsInvalidMaterialAtOwningComponent 유지 원문 검사 body 및 assertion 동일. ace412f6dba5699c19fff85961b58458545b93fc1e7be9ec005053d32d7acf22 ace412f6dba5699c19fff85961b58458545b93fc1e7be9ec005053d32d7acf22 "ASSERT_TRUE(TopologyMapper{}.Map(context).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Category(), FailureCategory::kModel) | EXPECT_EQ(diagnostic.code, ""invalid-beam-property"") | EXPECT_EQ(diagnostic.location.line, 26U) | EXPECT_EQ(diagnostic.keyword, ""ELASTIC"") | EXPECT_EQ(diagnostic.entity_identity, ""Steel"") | EXPECT_EQ(diagnostic.message, ""E and the derived G=E/(2*(1+nu)) must be positive."")" "ASSERT_TRUE(TopologyMapper{}.Map(context).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Category(), FailureCategory::kModel) | EXPECT_EQ(diagnostic.code, ""invalid-beam-property"") | EXPECT_EQ(diagnostic.location.line, 26U) | EXPECT_EQ(diagnostic.keyword, ""ELASTIC"") | EXPECT_EQ(diagnostic.entity_identity, ""Steel"") | EXPECT_EQ(diagnostic.message, ""E and the derived G=E/(2*(1+nu)) must be positive."")" -Dev tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001RejectsUnresolvedLoadAtOwningComponent DomainMappingComponents.CModule001RejectsUnresolvedLoadAtOwningComponent; assertion 11개 tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001RejectsUnresolvedLoadAtOwningComponent 유지 원문 검사 body 및 assertion 동일. 22839ffd4c1c68b4f200226079345550d9e13e7c212d27881edf14d3bea5ae3a 22839ffd4c1c68b4f200226079345550d9e13e7c212d27881edf14d3bea5ae3a "ASSERT_TRUE(topology_mapper.Map(context).IsOk()) | ASSERT_TRUE(MaterialPropertyMapper{}.Map(context).IsOk()) | ASSERT_TRUE(topology_mapper.Finalize(context).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Category(), FailureCategory::kInput) | EXPECT_EQ(diagnostic.code, ""unresolved-reference"") | EXPECT_EQ(diagnostic.location.line, 35U) | EXPECT_EQ(diagnostic.keyword, ""CLOAD"") | EXPECT_EQ(diagnostic.entity_identity, ""Missing"") | EXPECT_EQ(diagnostic.message, ""The boundary or load target must resolve unambiguously to one "" ""node or one node set."")" "ASSERT_TRUE(topology_mapper.Map(context).IsOk()) | ASSERT_TRUE(MaterialPropertyMapper{}.Map(context).IsOk()) | ASSERT_TRUE(topology_mapper.Finalize(context).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Category(), FailureCategory::kInput) | EXPECT_EQ(diagnostic.code, ""unresolved-reference"") | EXPECT_EQ(diagnostic.location.line, 35U) | EXPECT_EQ(diagnostic.keyword, ""CLOAD"") | EXPECT_EQ(diagnostic.entity_identity, ""Missing"") | EXPECT_EQ(diagnostic.message, ""The boundary or load target must resolve unambiguously to one "" ""node or one node set."")" -Dev tests/unit/io/abaqus/domain_mapping_components_test.cpp support@1-116 helper/oracle/fixture/include/static assertion 구간: fesa, TemporaryComponentInput, if, ParseComponentInput, ValidComponentDeck, ReplaceOnce, ExpectSameDiagnostic tests/unit/io/abaqus/domain_mapping_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eafbafda80ba9658302f8c6c61d966863cd6dcaf43f376b99f8eafae256f165b 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/domain_mapping_components_test.cpp support@240-242 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/io/abaqus/domain_mapping_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8aeadfd7d5a45c48cf01367ce365d0afada064b00686836fc0fc603596c9df16 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/eigen_domain_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/io/abaqus/eigen_domain_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 092b4127f43e6ba27485ad4043ba8b2d80b310299cdf66858fbc239342faa746 092b4127f43e6ba27485ad4043ba8b2d80b310299cdf66858fbc239342faa746 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.PreservesFrequencyDensityAndSourceStepIdentity EigenDomainMapping.PreservesFrequencyDensityAndSourceStepIdentity; assertion 16개 tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.PreservesFrequencyDensityAndSourceStepIdentity 유지 원문 검사 body 및 assertion 동일. 0e1fbd3de3417171d6a1a291aeafd0b174bc5cd44701267198cf8826ca5bf074 0e1fbd3de3417171d6a1a291aeafd0b174bc5cd44701267198cf8826ca5bf074 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Densities().size(), 1U) | EXPECT_EQ(domain.Densities()[0].material_index, fesa::EntityIndex{0U}) | EXPECT_DOUBLE_EQ(domain.Densities()[0].rho, 2700.0) | ASSERT_NE(domain.Frequency(), nullptr) | EXPECT_EQ(domain.Frequency()->source_step_name_raw, ""Step-2"") | EXPECT_EQ(domain.Frequency()->source_step_name_canonical, ""STEP-2"") | EXPECT_EQ(domain.Frequency()->requested_mode_count, 10) | EXPECT_TRUE(domain.Frequency()->perturbation_explicit) | EXPECT_TRUE(domain.Frequency()->sim_explicit) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_TRUE(domain.Steps()[0U].IsFrequency()) | EXPECT_EQ(domain.Steps()[0U].Frequency(), domain.Frequency()) | EXPECT_EQ(domain.Steps()[0U].Name(), ""Step-2"") | ASSERT_EQ(domain.Steps()[0U].BoundaryConditions().size(), 6U) | EXPECT_TRUE(domain.Steps()[0U].Loads().empty())" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Densities().size(), 1U) | EXPECT_EQ(domain.Densities()[0].material_index, fesa::EntityIndex{0U}) | EXPECT_DOUBLE_EQ(domain.Densities()[0].rho, 2700.0) | ASSERT_NE(domain.Frequency(), nullptr) | EXPECT_EQ(domain.Frequency()->source_step_name_raw, ""Step-2"") | EXPECT_EQ(domain.Frequency()->source_step_name_canonical, ""STEP-2"") | EXPECT_EQ(domain.Frequency()->requested_mode_count, 10) | EXPECT_TRUE(domain.Frequency()->perturbation_explicit) | EXPECT_TRUE(domain.Frequency()->sim_explicit) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_TRUE(domain.Steps()[0U].IsFrequency()) | EXPECT_EQ(domain.Steps()[0U].Frequency(), domain.Frequency()) | EXPECT_EQ(domain.Steps()[0U].Name(), ""Step-2"") | ASSERT_EQ(domain.Steps()[0U].BoundaryConditions().size(), 6U) | EXPECT_TRUE(domain.Steps()[0U].Loads().empty())" -Dev tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsInvalidDensityAndFrequencySlots EigenDomainMapping.RejectsInvalidDensityAndFrequencySlots; assertion 4개 tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsInvalidDensityAndFrequencySlots 유지 원문 검사 body 및 assertion 동일. 92b68d2ac096a03a02bfacd600af2432bfd869eedeeeeb2f06aa6d4d156e4797 92b68d2ac096a03a02bfacd600af2432bfd869eedeeeeb2f06aa6d4d156e4797 "ASSERT_FALSE(density.HasValue()) | EXPECT_NE(FindDiagnostic(density.GetStatus(), ""invalid-density-data""), nullptr) | ASSERT_FALSE(slots.HasValue()) | EXPECT_NE(FindDiagnostic(slots.GetStatus(), ""invalid-frequency-data""), nullptr)" "ASSERT_FALSE(density.HasValue()) | EXPECT_NE(FindDiagnostic(density.GetStatus(), ""invalid-density-data""), nullptr) | ASSERT_FALSE(slots.HasValue()) | EXPECT_NE(FindDiagnostic(slots.GetStatus(), ""invalid-frequency-data""), nullptr)" -Dev tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsMissingActiveDensityAndNonzeroBoundary EigenDomainMapping.RejectsMissingActiveDensityAndNonzeroBoundary; assertion 6개 tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsMissingActiveDensityAndNonzeroBoundary 유지 원문 검사 body 및 assertion 동일. 0b9cfbdd813264e533fb5963dcf276adbd874f0777af515e8fb4aac85015b873 0b9cfbdd813264e533fb5963dcf276adbd874f0777af515e8fb4aac85015b873 "ASSERT_NE(density_location, std::string::npos) | ASSERT_FALSE(missing.HasValue()) | EXPECT_NE(FindDiagnostic(missing.GetStatus(), ""missing-material-density""), nullptr) | ASSERT_NE(location, std::string::npos) | ASSERT_FALSE(boundary.HasValue()) | EXPECT_NE(FindDiagnostic(boundary.GetStatus(), ""unsupported-eigen-boundary""), nullptr)" "ASSERT_NE(density_location, std::string::npos) | ASSERT_FALSE(missing.HasValue()) | EXPECT_NE(FindDiagnostic(missing.GetStatus(), ""missing-material-density""), nullptr) | ASSERT_NE(location, std::string::npos) | ASSERT_FALSE(boundary.HasValue()) | EXPECT_NE(FindDiagnostic(boundary.GetStatus(), ""unsupported-eigen-boundary""), nullptr)" -Dev tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsMixedProceduresInvalidOutputAndSurface EigenDomainMapping.RejectsMixedProceduresInvalidOutputAndSurface; assertion 5개 tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsMixedProceduresInvalidOutputAndSurface 유지 원문 검사 body 및 assertion 동일. 435331124510d6cb20b7a86e468786ff0faa434d408e82d0534542553d875f92 435331124510d6cb20b7a86e468786ff0faa434d408e82d0534542553d875f92 "ASSERT_FALSE(mixed_result.HasValue()) | EXPECT_NE(FindDiagnostic(mixed_result.GetStatus(), ""unsupported-analysis-procedure""), nullptr) | ASSERT_FALSE(wrong_output.HasValue()) | EXPECT_NE(FindDiagnostic(wrong_output.GetStatus(), ""unsupported-keyword""), nullptr) | ASSERT_FALSE(surface_result.HasValue())" "ASSERT_FALSE(mixed_result.HasValue()) | EXPECT_NE(FindDiagnostic(mixed_result.GetStatus(), ""unsupported-analysis-procedure""), nullptr) | ASSERT_FALSE(wrong_output.HasValue()) | EXPECT_NE(FindDiagnostic(wrong_output.GetStatus(), ""unsupported-keyword""), nullptr) | ASSERT_FALSE(surface_result.HasValue())" -Dev tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsInvalidPreprintAndAcceptsStrictNoOp EigenDomainMapping.RejectsInvalidPreprintAndAcceptsStrictNoOp; assertion 7개 tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsInvalidPreprintAndAcceptsStrictNoOp 유지 원문 검사 body 및 assertion 동일. 8c7a14159391fe657f7760127eb8ab1901d5a25a41c138256a5d83cce9c427ee 8c7a14159391fe657f7760127eb8ab1901d5a25a41c138256a5d83cce9c427ee "ASSERT_TRUE(accepted.HasValue()) | ASSERT_NE(warning, accepted.Value().Warnings().end()) | EXPECT_EQ(warning->message, ""mandatory-eigen-output-unchanged"") | ASSERT_FALSE(rejected.HasValue()) | EXPECT_NE(FindDiagnostic(rejected.GetStatus(), ""unsupported-keyword""), nullptr) | ASSERT_FALSE(missing_parameters.HasValue()) | EXPECT_NE( FindDiagnostic(missing_parameters.GetStatus(), ""unsupported-keyword""), nullptr)" "ASSERT_TRUE(accepted.HasValue()) | ASSERT_NE(warning, accepted.Value().Warnings().end()) | EXPECT_EQ(warning->message, ""mandatory-eigen-output-unchanged"") | ASSERT_FALSE(rejected.HasValue()) | EXPECT_NE(FindDiagnostic(rejected.GetStatus(), ""unsupported-keyword""), nullptr) | ASSERT_FALSE(missing_parameters.HasValue()) | EXPECT_NE( FindDiagnostic(missing_parameters.GetStatus(), ""unsupported-keyword""), nullptr)" -Dev tests/unit/io/abaqus/eigen_domain_test.cpp support@1-98 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if, MapText, EigenDeck, FindDiagnostic, for tests/unit/io/abaqus/eigen_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6c0ec5ff9d6242012df3aba6a1f123cd5503d7d8e747d530582db2a7f767719c 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/eigen_domain_test.cpp support@206-207 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/eigen_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 20개 tests/unit/io/abaqus/hex8_semantics_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0804a9ef5cb15fdee5c06d4f3ba05b626ebcae6952360bb769271d457bc9530c 0804a9ef5cb15fdee5c06d4f3ba05b626ebcae6952360bb769271d457bc9530c 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.MapsEightSourceNodesAndExactlyThreePhysicalDofs Hex8Semantics.MapsEightSourceNodesAndExactlyThreePhysicalDofs; assertion 9개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.MapsEightSourceNodesAndExactlyThreePhysicalDofs 유지 원문 검사 body 및 assertion 동일. c75e22a597ed7445ed43c51b03fb254b6373984026f78f773a97d32687cb7272 c75e22a597ed7445ed43c51b03fb254b6373984026f78f773a97d32687cb7272 "ASSERT_TRUE(domain.HasValue()) | ASSERT_EQ(domain.Value().Elements().Size(), 1U) | EXPECT_EQ(domain.Value().Elements()[0].SourceElementType(), ""C3D8"") | EXPECT_EQ(domain.Value().Elements()[0].SourceId().source_label, 99) | EXPECT_EQ(domain.Value().Elements()[0].NodeIndices().size(), 8U) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().ConstrainedDofCount(), 3U)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_EQ(domain.Value().Elements().Size(), 1U) | EXPECT_EQ(domain.Value().Elements()[0].SourceElementType(), ""C3D8"") | EXPECT_EQ(domain.Value().Elements()[0].SourceId().source_label, 99) | EXPECT_EQ(domain.Value().Elements()[0].NodeIndices().size(), 8U) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().ConstrainedDofCount(), 3U)" -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.InactiveZeroRotationsWarnAndDoNotCreateConstraints Hex8Semantics.InactiveZeroRotationsWarnAndDoNotCreateConstraints; assertion 6개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.InactiveZeroRotationsWarnAndDoNotCreateConstraints 유지 원문 검사 body 및 assertion 동일. 4e9c9d68352626fe0b450e289080ee34f84a54c33b71e1520c4b57a389fe61cb 4e9c9d68352626fe0b450e289080ee34f84a54c33b71e1520c4b57a389fe61cb "ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().Steps()[0].BoundaryConditions().size(), 3U) | ASSERT_FALSE(domain.Value().Warnings().empty()) | EXPECT_EQ(domain.Value().Warnings().back().keyword, ""BOUNDARY"") | EXPECT_EQ(domain.Value().Warnings().back().entity_identity, ""10"") | EXPECT_GT(domain.Value().Warnings().back().location.line, 0U)" "ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().Steps()[0].BoundaryConditions().size(), 3U) | ASSERT_FALSE(domain.Value().Warnings().empty()) | EXPECT_EQ(domain.Value().Warnings().back().keyword, ""BOUNDARY"") | EXPECT_EQ(domain.Value().Warnings().back().entity_identity, ""10"") | EXPECT_GT(domain.Value().Warnings().back().location.line, 0U)" -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsNonzeroRotationsAndAllRotationalLoads Hex8Semantics.RejectsNonzeroRotationsAndAllRotationalLoads; assertion 2개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsNonzeroRotationsAndAllRotationalLoads 유지 원문 검사 body 및 assertion 동일. a6d35c2ca679aa7f1b383ead3d9f703d1fa2c74effec04ea46aa3d85e197d622 a6d35c2ca679aa7f1b383ead3d9f703d1fa2c74effec04ea46aa3d85e197d622 "EXPECT_FALSE(Map(Deck(""*Static\n1,1,1,1\n"", ""10,4,4,1\n"")).HasValue()) | EXPECT_FALSE( Map(Deck(""*Static\n1,1,1,1\n"", ""10,1,3\n*Cload\n20,4,0\n"")).HasValue())" "EXPECT_FALSE(Map(Deck(""*Static\n1,1,1,1\n"", ""10,4,4,1\n"")).HasValue()) | EXPECT_FALSE( Map(Deck(""*Static\n1,1,1,1\n"", ""10,1,3\n*Cload\n20,4,0\n"")).HasValue())" -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RotationNoOpPreservesPhysicalMapAndLoads Hex8Semantics.RotationNoOpPreservesPhysicalMapAndLoads; assertion 17개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RotationNoOpPreservesPhysicalMapAndLoads 유지 원문 검사 body 및 assertion 동일. 3df0931a844f2efcc21ddebf1505036c8f9a55af7163f978f456efad1136cbdc 3df0931a844f2efcc21ddebf1505036c8f9a55af7163f978f456efad1136cbdc ASSERT_TRUE(physical.HasValue()) | ASSERT_TRUE(extra.HasValue()) | ASSERT_TRUE(pd.HasValue()) | ASSERT_TRUE(ed.HasValue()) | EXPECT_EQ(pd.Value().FreeDofs(), ed.Value().FreeDofs()) | EXPECT_EQ(pd.Value().ConstrainedDofs(), ed.Value().ConstrainedDofs()) | EXPECT_EQ(pd.Value().GetSparsePattern().column_indices, ed.Value().GetSparsePattern().column_indices) | EXPECT_EQ(ed.Value().Profile(), fesa::DofProfile::kSolidStructural) | EXPECT_EQ(ed.Value().ComponentsPerNode(), 3U) | EXPECT_THROW(ed.Value().FullDof(0, fesa::DofComponent::kUrx), std::out_of_range) | ASSERT_TRUE(scatter.HasValue()) | EXPECT_EQ(scatter.Value().size(), 24U) | EXPECT_EQ(scatter.Value().front(), 0U) | EXPECT_EQ(scatter.Value().back(), 23U) | ASSERT_TRUE(pf.HasValue()) | ASSERT_TRUE(ef.HasValue()) | EXPECT_EQ(pf.Value()[i], ef.Value()[i]) ASSERT_TRUE(physical.HasValue()) | ASSERT_TRUE(extra.HasValue()) | ASSERT_TRUE(pd.HasValue()) | ASSERT_TRUE(ed.HasValue()) | EXPECT_EQ(pd.Value().FreeDofs(), ed.Value().FreeDofs()) | EXPECT_EQ(pd.Value().ConstrainedDofs(), ed.Value().ConstrainedDofs()) | EXPECT_EQ(pd.Value().GetSparsePattern().column_indices, ed.Value().GetSparsePattern().column_indices) | EXPECT_EQ(ed.Value().Profile(), fesa::DofProfile::kSolidStructural) | EXPECT_EQ(ed.Value().ComponentsPerNode(), 3U) | EXPECT_THROW(ed.Value().FullDof(0, fesa::DofComponent::kUrx), std::out_of_range) | ASSERT_TRUE(scatter.HasValue()) | EXPECT_EQ(scatter.Value().size(), 24U) | EXPECT_EQ(scatter.Value().front(), 0U) | EXPECT_EQ(scatter.Value().back(), 23U) | ASSERT_TRUE(pf.HasValue()) | ASSERT_TRUE(ef.HasValue()) | EXPECT_EQ(pf.Value()[i], ef.Value()[i]) -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsTinyRotationBadTargetsOptionsAndDofRanges Hex8Semantics.RejectsTinyRotationBadTargetsOptionsAndDofRanges; assertion 7개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsTinyRotationBadTargetsOptionsAndDofRanges 유지 원문 검사 body 및 assertion 동일. fbaffb1fa7018c85cecd369894293b24dc2a62bf82f918cbd99dbb3c17a70589 fbaffb1fa7018c85cecd369894293b24dc2a62bf82f918cbd99dbb3c17a70589 "EXPECT_FALSE(Map(Deck(""*Static\n1,1,1,1\n"", row)).HasValue()) | EXPECT_FALSE( Map(Replace(Deck(), ""*Boundary"", ""*Boundary,"" + option)).HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().Steps()[0].BoundaryConditions().empty()) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(result.Value().Warnings()[0].code, ""inactive-solid-rotation-boundary"") | EXPECT_EQ(result.Value().Warnings()[0].severity, fesa::Severity::kWarning)" "EXPECT_FALSE(Map(Deck(""*Static\n1,1,1,1\n"", row)).HasValue()) | EXPECT_FALSE( Map(Replace(Deck(), ""*Boundary"", ""*Boundary,"" + option)).HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().Steps()[0].BoundaryConditions().empty()) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(result.Value().Warnings()[0].code, ""inactive-solid-rotation-boundary"") | EXPECT_EQ(result.Value().Warnings()[0].severity, fesa::Severity::kWarning)" -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AllowsEmptyFreeAndNoBoundaryModels Hex8Semantics.AllowsEmptyFreeAndNoBoundaryModels; assertion 4개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AllowsEmptyFreeAndNoBoundaryModels 유지 원문 검사 body 및 assertion 동일. b57d0718c1ed58f9fc97136333cada362aeee8c776148cd4cd14bf251fdbb27b b57d0718c1ed58f9fc97136333cada362aeee8c776148cd4cd14bf251fdbb27b ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().FreeDofCount(), boundaries.empty() ? 24U : 0U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().FreeDofCount(), boundaries.empty() ? 24U : 0U) -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RetainsStaticDensityTargetsAndDirectSchedule Hex8Semantics.RetainsStaticDensityTargetsAndDirectSchedule; assertion 13개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RetainsStaticDensityTargetsAndDirectSchedule 유지 원문 검사 body 및 assertion 동일. ecc27dfd2d6e7370b729c72942f53b8a8cd0bf76a40ce684aeaeb88e64fa2c40 ecc27dfd2d6e7370b729c72942f53b8a8cd0bf76a40ce684aeaeb88e64fa2c40 "ASSERT_TRUE(domain.HasValue()) | EXPECT_TRUE(domain.Value().IsSolid()) | ASSERT_EQ(domain.Value().SolidSections().Size(), 1U) | EXPECT_EQ(domain.Value().SolidSections()[0].MaterialIndex(), 0U) | EXPECT_EQ(domain.Value().Densities()[0].rho, 2.0) | EXPECT_EQ(step.Name(), ""Solid"") | EXPECT_TRUE(step.IsDirectStatic()) | EXPECT_EQ(step.IncrementCount(), 10U) | EXPECT_EQ(step.MaximumIncrements(), 100U) | EXPECT_EQ(dofs.Value().PrescribedValues()[0], .25) | EXPECT_FALSE(Map(Deck(""*Static,direct\n"" + values)).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""1000,.3"", ""1000,.5"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""1000,.3"", ""1000,-1"")).HasValue())" "ASSERT_TRUE(domain.HasValue()) | EXPECT_TRUE(domain.Value().IsSolid()) | ASSERT_EQ(domain.Value().SolidSections().Size(), 1U) | EXPECT_EQ(domain.Value().SolidSections()[0].MaterialIndex(), 0U) | EXPECT_EQ(domain.Value().Densities()[0].rho, 2.0) | EXPECT_EQ(step.Name(), ""Solid"") | EXPECT_TRUE(step.IsDirectStatic()) | EXPECT_EQ(step.IncrementCount(), 10U) | EXPECT_EQ(step.MaximumIncrements(), 100U) | EXPECT_EQ(dofs.Value().PrescribedValues()[0], .25) | EXPECT_FALSE(Map(Deck(""*Static,direct\n"" + values)).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""1000,.3"", ""1000,.5"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""1000,.3"", ""1000,-1"")).HasValue())" -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.SamplesIndependentAmplitudeLoadsAtActualEndpoints Hex8Semantics.SamplesIndependentAmplitudeLoadsAtActualEndpoints; assertion 19개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.SamplesIndependentAmplitudeLoadsAtActualEndpoints 유지 원문 검사 body 및 assertion 동일. 450037b22e5b3e170d8813cdd95b4c635723a769f07f6513e8c7d59e8fef843d 450037b22e5b3e170d8813cdd95b4c635723a769f07f6513e8c7d59e8fef843d "ASSERT_TRUE(domain.HasValue()) | ASSERT_EQ(domain.Value().Amplitudes().size(), 2U) | EXPECT_EQ(amplitude.name_raw, ""A"") | EXPECT_EQ(amplitude.Evaluate(0), 0) | EXPECT_EQ(amplitude.Evaluate(.05), .5) | EXPECT_EQ(amplitude.Evaluate(.1), 1) | EXPECT_EQ(amplitude.Evaluate(20), 1) | EXPECT_FALSE(domain.Value().Dynamic()->nlgeom) | EXPECT_EQ(domain.Value().Dynamic()->increment_count, 100U) | EXPECT_EQ(loads[0].AmplitudeIndex(), std::optional{0U}) | EXPECT_EQ(loads[1].AmplitudeIndex(), std::optional{1U}) | EXPECT_EQ(loads[0].AmplitudeName(), ""a"") | EXPECT_GT(loads[0].AmplitudeLocation().line, 0U) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(load.HasValue()) | EXPECT_DOUBLE_EQ(load.Value()[3], amplitude.Evaluate(time) * 10 + domain.Value().Amplitudes()[1].Evaluate(time) * 3 + 5) | EXPECT_FALSE(Map(Replace(text, ""10,1,6"", ""10,1,3,1e-100"")).HasValue()) | EXPECT_FALSE( Map(Replace(text, ""amplitude=a"", ""amplitude=missing"")).HasValue()) | EXPECT_TRUE( Map(Replace(text, ""name=Solid,inc=100"", ""name=Solid,nlgeom=YES,inc=100"")) .HasValue())" "ASSERT_TRUE(domain.HasValue()) | ASSERT_EQ(domain.Value().Amplitudes().size(), 2U) | EXPECT_EQ(amplitude.name_raw, ""A"") | EXPECT_EQ(amplitude.Evaluate(0), 0) | EXPECT_EQ(amplitude.Evaluate(.05), .5) | EXPECT_EQ(amplitude.Evaluate(.1), 1) | EXPECT_EQ(amplitude.Evaluate(20), 1) | EXPECT_FALSE(domain.Value().Dynamic()->nlgeom) | EXPECT_EQ(domain.Value().Dynamic()->increment_count, 100U) | EXPECT_EQ(loads[0].AmplitudeIndex(), std::optional{0U}) | EXPECT_EQ(loads[1].AmplitudeIndex(), std::optional{1U}) | EXPECT_EQ(loads[0].AmplitudeName(), ""a"") | EXPECT_GT(loads[0].AmplitudeLocation().line, 0U) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(load.HasValue()) | EXPECT_DOUBLE_EQ(load.Value()[3], amplitude.Evaluate(time) * 10 + domain.Value().Amplitudes()[1].Evaluate(time) * 3 + 5) | EXPECT_FALSE(Map(Replace(text, ""10,1,6"", ""10,1,3,1e-100"")).HasValue()) | EXPECT_FALSE( Map(Replace(text, ""amplitude=a"", ""amplitude=missing"")).HasValue()) | EXPECT_TRUE( Map(Replace(text, ""name=Solid,inc=100"", ""name=Solid,nlgeom=YES,inc=100"")) .HasValue())" -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsAmplitudeOptionsDataAndCrossFamilyUse Hex8Semantics.RejectsAmplitudeOptionsDataAndCrossFamilyUse; assertion 3개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsAmplitudeOptionsDataAndCrossFamilyUse 유지 원문 검사 body 및 assertion 동일. dce2dd9b2fcfbf0c0ec5bf2a49db87a35c8c50379978a06ba8b90b04f3e5dc7f dce2dd9b2fcfbf0c0ec5bf2a49db87a35c8c50379978a06ba8b90b04f3e5dc7f "EXPECT_FALSE( Map(Deck(""*Dynamic,direct\n.1,1\n"", ""10,1,3\n"", prefix + amplitude)) .HasValue()) | EXPECT_FALSE( Map(Deck(""*Static\n1,1,1,1\n"", ""10,1,3\n"", ""*Amplitude,name=A\n0,0\n"")) .HasValue()) | EXPECT_FALSE(Map(Deck(""*Dynamic,direct\n.1,1\n"", ""10,1,3\n"")).HasValue())" "EXPECT_FALSE( Map(Deck(""*Dynamic,direct\n.1,1\n"", ""10,1,3\n"", prefix + amplitude)) .HasValue()) | EXPECT_FALSE( Map(Deck(""*Static\n1,1,1,1\n"", ""10,1,3\n"", ""*Amplitude,name=A\n0,0\n"")) .HasValue()) | EXPECT_FALSE(Map(Deck(""*Dynamic,direct\n.1,1\n"", ""10,1,3\n"")).HasValue())" -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsAliasesConnectivityThicknessAndMixedModels Hex8Semantics.RejectsAliasesConnectivityThicknessAndMixedModels; assertion 5개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsAliasesConnectivityThicknessAndMixedModels 유지 원문 검사 body 및 assertion 동일. 74400cf0bcfb69af45f006c08c3c5f44a7f71d5f51c25e90b147b08e2a304858 74400cf0bcfb69af45f006c08c3c5f44a7f71d5f51c25e90b147b08e2a304858 "EXPECT_FALSE(Map(Replace(Deck(), ""type=C3D8"", ""type="" + type)).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,70"")) .HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,999"")) .HasValue()) | EXPECT_FALSE( Map(Replace(Deck(), ""material=M\n,"", ""material=M\n2"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""*Solid Section"", ""*Element,type=S4\n100,10,20,30,40\n*Solid Section"")) .HasValue())" "EXPECT_FALSE(Map(Replace(Deck(), ""type=C3D8"", ""type="" + type)).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,70"")) .HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,999"")) .HasValue()) | EXPECT_FALSE( Map(Replace(Deck(), ""material=M\n,"", ""material=M\n2"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""*Solid Section"", ""*Element,type=S4\n100,10,20,30,40\n*Solid Section"")) .HasValue())" -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.PreservesShellSixComponentProfile Hex8Semantics.PreservesShellSixComponentProfile; assertion 6개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.PreservesShellSixComponentProfile 유지 원문 검사 body 및 assertion 동일. 6253e1af06f92b7af50ff60f0745d70fe50db2b76b537570fe466dd15675d26b 6253e1af06f92b7af50ff60f0745d70fe50db2b76b537570fe466dd15675d26b ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().Profile(), fesa::DofProfile::kStructural) | EXPECT_EQ(dofs.Value().ComponentsPerNode(), 6U) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().FullDof(1, fesa::DofComponent::kUrx), 9U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().Profile(), fesa::DofProfile::kStructural) | EXPECT_EQ(dofs.Value().ComponentsPerNode(), 6U) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().FullDof(1, fesa::DofComponent::kUrx), 9U) -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.MapsAllFiveUnmodifiedRequiredSourceDecks Hex8Semantics.MapsAllFiveUnmodifiedRequiredSourceDecks; assertion 8개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.MapsAllFiveUnmodifiedRequiredSourceDecks 유지 원문 검사 body 및 assertion 동일. 27a85d7e4d9d00d5a84c4d3e28b2fd837ee20a9b812730de2b0b120f79639c4f 27a85d7e4d9d00d5a84c4d3e28b2fd837ee20a9b812730de2b0b120f79639c4f "ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().SolidElements().Size(), 300U) | EXPECT_EQ(domain.Value().Nodes().size(), 442U) | EXPECT_EQ(std::count_if(domain.Value().Warnings().begin(), domain.Value().Warnings().end(), [](const auto& warning) { return warning.code == ""inactive-solid-rotation-boundary""; }), 3) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 1326U) | EXPECT_EQ(dofs.Value().ConstrainedDofCount(), 51U)" "ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().SolidElements().Size(), 300U) | EXPECT_EQ(domain.Value().Nodes().size(), 442U) | EXPECT_EQ(std::count_if(domain.Value().Warnings().begin(), domain.Value().Warnings().end(), [](const auto& warning) { return warning.code == ""inactive-solid-rotation-boundary""; }), 3) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 1326U) | EXPECT_EQ(dofs.Value().ConstrainedDofCount(), 51U)" -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AssemblesFullSymmetricSolidMatricesInStableSourceOrder Hex8Semantics.AssemblesFullSymmetricSolidMatricesInStableSourceOrder; assertion 11개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AssemblesFullSymmetricSolidMatricesInStableSourceOrder 유지 원문 검사 body 및 assertion 동일. cff1fc540c97c7325eb371cd49595d7c44b5235f01cb4f0340c8fe2515e8c437 cff1fc540c97c7325eb371cd49595d7c44b5235f01cb4f0340c8fe2515e8c437 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(parallel.HasValue()) | EXPECT_EQ(serial.Value().Rows(), 24U) | EXPECT_EQ(serial.Value().Columns(), 24U) | EXPECT_EQ(serial.Value().Values().size(), 576U) | EXPECT_EQ(value, 1.0) | EXPECT_EQ(serial.Value().RowOffsets(), parallel.Value().RowOffsets()) | EXPECT_EQ(serial.Value().ColumnIndices(), parallel.Value().ColumnIndices()) | EXPECT_EQ(serial.Value().Values(), parallel.Value().Values()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(parallel.HasValue()) | EXPECT_EQ(serial.Value().Rows(), 24U) | EXPECT_EQ(serial.Value().Columns(), 24U) | EXPECT_EQ(serial.Value().Values().size(), 576U) | EXPECT_EQ(value, 1.0) | EXPECT_EQ(serial.Value().RowOffsets(), parallel.Value().RowOffsets()) | EXPECT_EQ(serial.Value().ColumnIndices(), parallel.Value().ColumnIndices()) | EXPECT_EQ(serial.Value().Values(), parallel.Value().Values()) -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.ValidatesOutputNoOpsAndRejectsUnapprovedDynamicChildren Hex8Semantics.ValidatesOutputNoOpsAndRejectsUnapprovedDynamicChildren; assertion 5개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.ValidatesOutputNoOpsAndRejectsUnapprovedDynamicChildren 유지 원문 검사 body 및 assertion 동일. 5d0196abf7c53f0e92306554db8a1f9270f76db9aa614254d9d3a5f3e2d1a43e 5d0196abf7c53f0e92306554db8a1f9270f76db9aa614254d9d3a5f3e2d1a43e "EXPECT_TRUE( Map(Replace(Deck(), ""*End Step"", output + ""*End Step"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""*End Step"", ""*Output,field,variable=OTHER\n*End Step"")) .HasValue()) | EXPECT_FALSE( Map(Replace( Deck(), ""*End Step"", ""*Output,field\n*Element Output,position=NODES\nS\n*End Step"")) .HasValue()) | EXPECT_FALSE( Map(Replace( dynamic, ""*End Step"", ""*Output,field,variable=PRESELECT\n*Node Output\nU\n*End Step"")) .HasValue()) | EXPECT_FALSE(Map(Replace(dynamic, ""*End Step"", ""*Restart,write,frequency=1\n*End Step"")) .HasValue())" "EXPECT_TRUE( Map(Replace(Deck(), ""*End Step"", output + ""*End Step"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""*End Step"", ""*Output,field,variable=OTHER\n*End Step"")) .HasValue()) | EXPECT_FALSE( Map(Replace( Deck(), ""*End Step"", ""*Output,field\n*Element Output,position=NODES\nS\n*End Step"")) .HasValue()) | EXPECT_FALSE( Map(Replace( dynamic, ""*End Step"", ""*Output,field,variable=PRESELECT\n*Node Output\nU\n*End Step"")) .HasValue()) | EXPECT_FALSE(Map(Replace(dynamic, ""*End Step"", ""*Restart,write,frequency=1\n*End Step"")) .HasValue())" -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsInvalidProgrammaticSolidCandidates Hex8Semantics.RejectsInvalidProgrammaticSolidCandidates; assertion 6개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsInvalidProgrammaticSolidCandidates 유지 원문 검사 body 및 assertion 동일. 1065eea90059ac9e3e2b606d997c439efabbf2837254a53e0622a7b4ec81655f 1065eea90059ac9e3e2b606d997c439efabbf2837254a53e0622a7b4ec81655f EXPECT_TRUE(fesa::Domain::Create(SolidDefinition()).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(repeated)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(material)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(section)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(rotational)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(unused)).HasValue()) EXPECT_TRUE(fesa::Domain::Create(SolidDefinition()).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(repeated)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(material)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(section)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(rotational)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(unused)).HasValue()) -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsSecondProcedureBeforeReadingItsOptionsOrData Hex8Semantics.RejectsSecondProcedureBeforeReadingItsOptionsOrData; assertion 8개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsSecondProcedureBeforeReadingItsOptionsOrData 유지 원문 검사 body 및 assertion 동일. 42d53fd47e4e29b2122ec0929fda515bd8a35ae386135240b8e3c19a168ac537 42d53fd47e4e29b2122ec0929fda515bd8a35ae386135240b8e3c19a168ac537 "ASSERT_TRUE(Map(Deck(first, """", ""*Density\n2\n"")).HasValue()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""unsupported-analysis-procedure"") | ASSERT_FALSE(malformed.HasValue()) | ASSERT_FALSE(malformed.GetStatus().Diagnostics().empty()) | EXPECT_EQ(malformed.GetStatus().Diagnostics()[0].code, ""unsupported-analysis-procedure"") | EXPECT_EQ(malformed.GetStatus().Diagnostics()[0].keyword, ""STATIC"")" "ASSERT_TRUE(Map(Deck(first, """", ""*Density\n2\n"")).HasValue()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""unsupported-analysis-procedure"") | ASSERT_FALSE(malformed.HasValue()) | ASSERT_FALSE(malformed.GetStatus().Diagnostics().empty()) | EXPECT_EQ(malformed.GetStatus().Diagnostics()[0].code, ""unsupported-analysis-procedure"") | EXPECT_EQ(malformed.GetStatus().Diagnostics()[0].keyword, ""STATIC"")" -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AllowsOnlyApprovedStaticRestartNoOp Hex8Semantics.AllowsOnlyApprovedStaticRestartNoOp; assertion 6개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AllowsOnlyApprovedStaticRestartNoOp 유지 원문 검사 body 및 assertion 동일. 3a188909917d0d9026bab32708aace83386bda1c68423f466e1c6f849dfeea74 3a188909917d0d9026bab32708aace83386bda1c68423f466e1c6f849dfeea74 "ASSERT_TRUE(approved.HasValue()) | ASSERT_EQ(approved.Value().Warnings().size(), 1U) | EXPECT_EQ(approved.Value().Warnings()[0].keyword, ""RESTART"") | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""RESTART"")" "ASSERT_TRUE(approved.HasValue()) | ASSERT_EQ(approved.Value().Warnings().size(), 1U) | EXPECT_EQ(approved.Value().Warnings()[0].keyword, ""RESTART"") | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""RESTART"")" -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.PreservesShuffledSourceLabelsAndRejectsDuplicateIdentities Hex8Semantics.PreservesShuffledSourceLabelsAndRejectsDuplicateIdentities; assertion 15개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.PreservesShuffledSourceLabelsAndRejectsDuplicateIdentities 유지 원문 검사 body 및 assertion 동일. 1e26934f523f95c12da4ba31131a30f25c52519a32368c6a7369490b4907882a 1e26934f523f95c12da4ba31131a30f25c52519a32368c6a7369490b4907882a "ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().Nodes()[0].source_id.source_label, 80) | EXPECT_EQ(domain.Value().Nodes()[4].source_id.source_label, 10) | EXPECT_EQ(domain.Value().Elements()[0].NodeIndices(), (std::vector{4, 1, 6, 3, 7, 2, 5, 0})) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().ConstrainedDofs(), (std::vector{12, 13, 14})) | EXPECT_FALSE(Map(Replace(deck, ""20,1,0,0"", ""80,1,0,0"")).HasValue()) | EXPECT_FALSE( Map(Replace(deck, ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,80\n99,10,20,30,40,50,60,70,80"")) .HasValue()) | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(direct.Value().Nodes()[0].source_id.source_label, 80) | EXPECT_EQ(direct.Value().Nodes()[7].source_id.source_label, 10) | EXPECT_EQ(direct.Value().SolidElements()[0].node_indices, (std::array{7, 1, 2, 3, 4, 5, 6, 0})) | EXPECT_FALSE(fesa::Domain::Create(std::move(nodes)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(elements)).HasValue())" "ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().Nodes()[0].source_id.source_label, 80) | EXPECT_EQ(domain.Value().Nodes()[4].source_id.source_label, 10) | EXPECT_EQ(domain.Value().Elements()[0].NodeIndices(), (std::vector{4, 1, 6, 3, 7, 2, 5, 0})) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().ConstrainedDofs(), (std::vector{12, 13, 14})) | EXPECT_FALSE(Map(Replace(deck, ""20,1,0,0"", ""80,1,0,0"")).HasValue()) | EXPECT_FALSE( Map(Replace(deck, ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,80\n99,10,20,30,40,50,60,70,80"")) .HasValue()) | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(direct.Value().Nodes()[0].source_id.source_label, 80) | EXPECT_EQ(direct.Value().Nodes()[7].source_id.source_label, 10) | EXPECT_EQ(direct.Value().SolidElements()[0].node_indices, (std::array{7, 1, 2, 3, 4, 5, 6, 0})) | EXPECT_FALSE(fesa::Domain::Create(std::move(nodes)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(elements)).HasValue())" -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsUnknownSolidAssignmentTargets Hex8Semantics.RejectsUnknownSolidAssignmentTargets; assertion 3개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsUnknownSolidAssignmentTargets 유지 원문 검사 body 및 assertion 동일. 777502085d8347fa372148d730813468e8385f01894e6f1e32c0b7fb4831b84c 777502085d8347fa372148d730813468e8385f01894e6f1e32c0b7fb4831b84c "ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""unresolved-solid-section"")" "ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""unresolved-solid-section"")" -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsInvalidSolidDynamicSchedulesAndIncrementLimits Hex8Semantics.RejectsInvalidSolidDynamicSchedulesAndIncrementLimits; assertion 3개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsInvalidSolidDynamicSchedulesAndIncrementLimits 유지 원문 검사 body 및 assertion 동일. fffbdbf00d02cff95f113d0f9a573ce71a4eb6e0c4b2f829f0fe45dd1d915e4a fffbdbf00d02cff95f113d0f9a573ce71a4eb6e0c4b2f829f0fe45dd1d915e4a "ASSERT_TRUE(Map(valid).HasValue()) | EXPECT_FALSE(Map(Replace(valid, "".1,1\n"", schedule + ""\n"")).HasValue()) | EXPECT_FALSE(Map(Replace(valid, ""inc=100"", ""inc="" + limit)).HasValue())" "ASSERT_TRUE(Map(valid).HasValue()) | EXPECT_FALSE(Map(Replace(valid, "".1,1\n"", schedule + ""\n"")).HasValue()) | EXPECT_FALSE(Map(Replace(valid, ""inc=100"", ""inc="" + limit)).HasValue())" -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp support@1-45 helper/oracle/fixture/include/static assertion 구간: Deck, Map tests/unit/io/abaqus/hex8_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e25babf55d99011a53bf3707b7fa77dfd36ca9a650cd07f5ce287e7dfb184913 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp support@80-88 helper/oracle/fixture/include/static assertion 구간: Replace tests/unit/io/abaqus/hex8_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7712e67d7827babcfabd756496ca005cd2568399e78f7778748ae28ba5b8a649 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp support@309-345 helper/oracle/fixture/include/static assertion 구간: ConstantMatrixElement tests/unit/io/abaqus/hex8_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 25983d2e2d6c1749e19367eb109a0403c60bc3f0e79888448ea10c34e965976a 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp support@400-430 helper/oracle/fixture/include/static assertion 구간: SolidDefinition tests/unit/io/abaqus/hex8_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8ef84c9fb537fb04031fa128b47e30de8105170c97ef73cb6b05fe993f3a20ff 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/hex8_semantics_test.cpp support@555-555 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/hex8_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/hht_dynamic_domain_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/io/abaqus/hht_dynamic_domain_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e5a7cec78d6b44cfd120f3883d44964842e52ab1781c6a9c678b93c1768a893b e5a7cec78d6b44cfd120f3883d44964842e52ab1781c6a9c678b93c1768a893b 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.MapsDirectScheduleDensityAndSourceOrder HhtDynamicDomainMapping.MapsDirectScheduleDensityAndSourceOrder; assertion 22개 tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.MapsDirectScheduleDensityAndSourceOrder 유지 원문 검사 body 및 assertion 동일. 2fda780cc6cec49273e038031cef69a2064f0c4d1155f63e36511d518662a11f 2fda780cc6cec49273e038031cef69a2064f0c4d1155f63e36511d518662a11f "ASSERT_TRUE(result.HasValue()) | ASSERT_NE(domain.Dynamic(), nullptr) | EXPECT_EQ(dynamic.source_step_name_raw, ""Dynamic-Load"") | EXPECT_EQ(dynamic.source_step_name_canonical, ""DYNAMIC-LOAD"") | EXPECT_DOUBLE_EQ(dynamic.initial_increment, 0.1) | EXPECT_DOUBLE_EQ(dynamic.time_period, 10.0) | EXPECT_EQ(dynamic.increment_count, 100U) | EXPECT_EQ(dynamic.maximum_increments, 1000U) | EXPECT_DOUBLE_EQ(dynamic.alpha, -0.05) | EXPECT_DOUBLE_EQ(dynamic.beta, 0.275625) | EXPECT_DOUBLE_EQ(dynamic.gamma, 0.55) | ASSERT_EQ(dynamic.boundaries.size(), 1U) | ASSERT_EQ(dynamic.loads.size(), 1U) | EXPECT_EQ(dynamic.loads[0U].dof, 1) | ASSERT_EQ(domain.Densities().size(), 1U) | EXPECT_DOUBLE_EQ(domain.Densities()[0U].rho, 2700.0) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_TRUE(domain.Steps()[0U].IsDynamic()) | EXPECT_FALSE(domain.Steps()[0U].IsNonlinearStatic()) | EXPECT_EQ(domain.Steps()[0U].Dynamic(), domain.Dynamic()) | ASSERT_EQ(domain.Warnings().size(), 4U) | EXPECT_EQ(warning.code, ""ignored-output-request"")" "ASSERT_TRUE(result.HasValue()) | ASSERT_NE(domain.Dynamic(), nullptr) | EXPECT_EQ(dynamic.source_step_name_raw, ""Dynamic-Load"") | EXPECT_EQ(dynamic.source_step_name_canonical, ""DYNAMIC-LOAD"") | EXPECT_DOUBLE_EQ(dynamic.initial_increment, 0.1) | EXPECT_DOUBLE_EQ(dynamic.time_period, 10.0) | EXPECT_EQ(dynamic.increment_count, 100U) | EXPECT_EQ(dynamic.maximum_increments, 1000U) | EXPECT_DOUBLE_EQ(dynamic.alpha, -0.05) | EXPECT_DOUBLE_EQ(dynamic.beta, 0.275625) | EXPECT_DOUBLE_EQ(dynamic.gamma, 0.55) | ASSERT_EQ(dynamic.boundaries.size(), 1U) | ASSERT_EQ(dynamic.loads.size(), 1U) | EXPECT_EQ(dynamic.loads[0U].dof, 1) | ASSERT_EQ(domain.Densities().size(), 1U) | EXPECT_DOUBLE_EQ(domain.Densities()[0U].rho, 2700.0) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_TRUE(domain.Steps()[0U].IsDynamic()) | EXPECT_FALSE(domain.Steps()[0U].IsNonlinearStatic()) | EXPECT_EQ(domain.Steps()[0U].Dynamic(), domain.Dynamic()) | ASSERT_EQ(domain.Warnings().size(), 4U) | EXPECT_EQ(warning.code, ""ignored-output-request"")" -Dev tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.MapsOriginalReferenceDeckWithoutMutation HhtDynamicDomainMapping.MapsOriginalReferenceDeckWithoutMutation; assertion 6개 tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.MapsOriginalReferenceDeckWithoutMutation 유지 원문 검사 body 및 assertion 동일. 8d0c382e2a5992cda6af2865bf5941c2dc847f1591b1625a9532dc881eee65a1 8d0c382e2a5992cda6af2865bf5941c2dc847f1591b1625a9532dc881eee65a1 ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_NE(result.Value().Dynamic(), nullptr) | EXPECT_EQ(result.Value().Dynamic()->increment_count, 100U) | EXPECT_EQ(result.Value().Dynamic()->maximum_increments, 1000U) | EXPECT_EQ(result.Value().Dynamic()->loads.size(), 3U) ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_NE(result.Value().Dynamic(), nullptr) | EXPECT_EQ(result.Value().Dynamic()->increment_count, 100U) | EXPECT_EQ(result.Value().Dynamic()->maximum_increments, 1000U) | EXPECT_EQ(result.Value().Dynamic()->loads.size(), 3U) -Dev tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.RejectsMalformedScheduleAndUnsupportedControls HhtDynamicDomainMapping.RejectsMalformedScheduleAndUnsupportedControls; assertion 2개 tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.RejectsMalformedScheduleAndUnsupportedControls 유지 원문 검사 body 및 assertion 동일. cb6b162159cef6b490fac3ec2e8af7fb2f8c4e72d672d14d6e515cd0fdb22b03 cb6b162159cef6b490fac3ec2e8af7fb2f8c4e72d672d14d6e515cd0fdb22b03 ASSERT_FALSE(result.HasValue()) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.diagnostic), nullptr) ASSERT_FALSE(result.HasValue()) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.diagnostic), nullptr) -Dev tests/unit/io/abaqus/hht_dynamic_domain_test.cpp support@1-117 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if, MapText, FindDiagnostic, for, DynamicDeck, ReplaceOnce, RepositoryRoot tests/unit/io/abaqus/hht_dynamic_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 80674acfe820ddb866f7dab56ffa6515964956c116548bf4746d1064ece4a28c 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/hht_dynamic_domain_test.cpp support@205-206 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/hht_dynamic_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/input_reader_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/io/abaqus/input_reader_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 30c6b51c5910fb07f94969370ced1e063bcbf212266e228e3c09ef5a4575ad96 30c6b51c5910fb07f94969370ced1e063bcbf212266e228e3c09ef5a4575ad96 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.RejectsMalformedOrOrphanData InpSyntax.RejectsMalformedOrOrphanData; assertion 14개 tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.RejectsMalformedOrOrphanData 유지 원문 검사 body 및 assertion 동일. ffaa0b04054bbe68b1a87482bbca2cf543c8cd34ea6f4e30fdca2d246bd7db08 ffaa0b04054bbe68b1a87482bbca2cf543c8cd34ea6f4e30fdca2d246bd7db08 "ASSERT_FALSE(unreadable.HasValue()) | EXPECT_EQ(unreadable.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(unreadable.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(unreadable.GetStatus().Diagnostics()[0].code, ""input-file-unreadable"") | ASSERT_FALSE(malformed_result.HasValue()) | EXPECT_EQ(malformed_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(malformed_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(malformed_result.GetStatus().Diagnostics()[0].code, ""malformed-keyword"") | EXPECT_EQ(malformed_result.GetStatus().Diagnostics()[0].location.line, 1U) | ASSERT_FALSE(orphan_result.HasValue()) | EXPECT_EQ(orphan_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(orphan_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(orphan_result.GetStatus().Diagnostics()[0].code, ""orphan-data-line"") | EXPECT_EQ(orphan_result.GetStatus().Diagnostics()[0].location.line, 3U)" "ASSERT_FALSE(unreadable.HasValue()) | EXPECT_EQ(unreadable.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(unreadable.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(unreadable.GetStatus().Diagnostics()[0].code, ""input-file-unreadable"") | ASSERT_FALSE(malformed_result.HasValue()) | EXPECT_EQ(malformed_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(malformed_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(malformed_result.GetStatus().Diagnostics()[0].code, ""malformed-keyword"") | EXPECT_EQ(malformed_result.GetStatus().Diagnostics()[0].location.line, 1U) | ASSERT_FALSE(orphan_result.HasValue()) | EXPECT_EQ(orphan_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(orphan_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(orphan_result.GetStatus().Diagnostics()[0].code, ""orphan-data-line"") | EXPECT_EQ(orphan_result.GetStatus().Diagnostics()[0].location.line, 3U)" -Dev tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.ReadsLegacyCantileverWithoutMutation InpSyntax.ReadsLegacyCantileverWithoutMutation; assertion 15개 tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.ReadsLegacyCantileverWithoutMutation 유지 원문 검사 body 및 assertion 동일. f41d9011fdd529843fb8de0b5dd5f54bdadc4501908af1a3ccef423593ce0a04 f41d9011fdd529843fb8de0b5dd5f54bdadc4501908af1a3ccef423593ce0a04 "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_content_identity, ""fnv1a64:04543464cc970405"") | EXPECT_EQ(result.Value().source_path, std::filesystem::absolute(input_path).lexically_normal()) | ASSERT_EQ(result.Value().blocks.size(), 30U) | EXPECT_EQ(result.Value().blocks.front().canonical_name, ""HEADING"") | EXPECT_EQ(result.Value().blocks.front().location.line, 1U) | EXPECT_EQ(result.Value().blocks.back().canonical_name, ""END STEP"") | ASSERT_NE(element, result.Value().blocks.end()) | ASSERT_EQ(element->parameters.size(), 1U) | EXPECT_EQ(element->parameters[0].name, ""TYPE"") | ASSERT_TRUE(element->parameters[0].value.has_value()) | EXPECT_EQ(*element->parameters[0].value, ""B33"") | EXPECT_EQ(element->data.size(), 10U) | EXPECT_EQ(ReadExactBytes(input_path), bytes_before) | EXPECT_EQ(std::filesystem::last_write_time(input_path), timestamp_before)" "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_content_identity, ""fnv1a64:04543464cc970405"") | EXPECT_EQ(result.Value().source_path, std::filesystem::absolute(input_path).lexically_normal()) | ASSERT_EQ(result.Value().blocks.size(), 30U) | EXPECT_EQ(result.Value().blocks.front().canonical_name, ""HEADING"") | EXPECT_EQ(result.Value().blocks.front().location.line, 1U) | EXPECT_EQ(result.Value().blocks.back().canonical_name, ""END STEP"") | ASSERT_NE(element, result.Value().blocks.end()) | ASSERT_EQ(element->parameters.size(), 1U) | EXPECT_EQ(element->parameters[0].name, ""TYPE"") | ASSERT_TRUE(element->parameters[0].value.has_value()) | EXPECT_EQ(*element->parameters[0].value, ""B33"") | EXPECT_EQ(element->data.size(), 10U) | EXPECT_EQ(ReadExactBytes(input_path), bytes_before) | EXPECT_EQ(std::filesystem::last_write_time(input_path), timestamp_before)" -Dev tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.AcceptsAsciiKeywordContinuationAndPreservesPhysicalSourceLines InpSyntax.AcceptsAsciiKeywordContinuationAndPreservesPhysicalSourceLines; assertion 14개 tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.AcceptsAsciiKeywordContinuationAndPreservesPhysicalSourceLines 유지 원문 검사 body 및 assertion 동일. ce727a336d945591a1cc0ad97dee25ebfc241f2be137f3198e86eb7df2578ccf ce727a336d945591a1cc0ad97dee25ebfc241f2be137f3198e86eb7df2578ccf "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""SURFACE"") | EXPECT_EQ(block.original_line, ""*SuRfAcE, TYPE=ELEMENT,"") | EXPECT_EQ(block.physical_lines, (std::vector{""*SuRfAcE, TYPE=ELEMENT,"", "" NAME=Pressure_Surface""})) | ASSERT_EQ(block.parameters.size(), 2U) | EXPECT_EQ(block.parameters[0].name, ""TYPE"") | ASSERT_TRUE(block.parameters[0].value.has_value()) | EXPECT_EQ(*block.parameters[0].value, ""ELEMENT"") | EXPECT_EQ(block.parameters[1].name, ""NAME"") | ASSERT_TRUE(block.parameters[1].value.has_value()) | EXPECT_EQ(*block.parameters[1].value, ""Pressure_Surface"") | ASSERT_EQ(block.data.size(), 1U) | EXPECT_EQ(block.data[0].location.line, 3U)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""SURFACE"") | EXPECT_EQ(block.original_line, ""*SuRfAcE, TYPE=ELEMENT,"") | EXPECT_EQ(block.physical_lines, (std::vector{""*SuRfAcE, TYPE=ELEMENT,"", "" NAME=Pressure_Surface""})) | ASSERT_EQ(block.parameters.size(), 2U) | EXPECT_EQ(block.parameters[0].name, ""TYPE"") | ASSERT_TRUE(block.parameters[0].value.has_value()) | EXPECT_EQ(*block.parameters[0].value, ""ELEMENT"") | EXPECT_EQ(block.parameters[1].name, ""NAME"") | ASSERT_TRUE(block.parameters[1].value.has_value()) | EXPECT_EQ(*block.parameters[1].value, ""Pressure_Surface"") | ASSERT_EQ(block.data.size(), 1U) | EXPECT_EQ(block.data[0].location.line, 3U)" -Dev tests/unit/io/abaqus/input_reader_test.cpp support@1-55 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if, ReadExactBytes, RepositoryRoot tests/unit/io/abaqus/input_reader_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 09e22f6727e979f0117b382a1b8ac77c50f4103adebca5eb58b315c7b0636451 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/input_syntax_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/io/abaqus/input_syntax_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6a0ecd5814f476c566f96a1e64d8e1b2757a0dfd70f17d3543519b1d6226a7b7 6a0ecd5814f476c566f96a1e64d8e1b2757a0dfd70f17d3543519b1d6226a7b7 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/input_syntax_test.cpp InpSyntax.CanonicalizesKeywordAndParameterNamesOnly InpSyntax.CanonicalizesKeywordAndParameterNamesOnly; assertion 14개 tests/unit/io/abaqus/input_syntax_test.cpp InpSyntax.CanonicalizesKeywordAndParameterNamesOnly 유지 원문 검사 body 및 assertion 동일. fa957b70a91ffba87d4e77baf9592ef3c6e8475adc7bf40ff3678c1929954f3b fa957b70a91ffba87d4e77baf9592ef3c6e8475adc7bf40ff3678c1929954f3b "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""ELEMENT"") | EXPECT_EQ(block.original_line, original_line) | EXPECT_EQ(block.location.line, 1U) | ASSERT_EQ(block.parameters.size(), 3U) | EXPECT_EQ(block.parameters[0].name, ""TYPE"") | ASSERT_TRUE(block.parameters[0].value.has_value()) | EXPECT_EQ(*block.parameters[0].value, ""b33"") | EXPECT_EQ(block.parameters[1].name, ""GENERATE"") | EXPECT_FALSE(block.parameters[1].value.has_value()) | EXPECT_EQ(block.parameters[2].name, ""ELSET"") | ASSERT_TRUE(block.parameters[2].value.has_value()) | EXPECT_EQ(*block.parameters[2].value, ""Beam_Set"")" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""ELEMENT"") | EXPECT_EQ(block.original_line, original_line) | EXPECT_EQ(block.location.line, 1U) | ASSERT_EQ(block.parameters.size(), 3U) | EXPECT_EQ(block.parameters[0].name, ""TYPE"") | ASSERT_TRUE(block.parameters[0].value.has_value()) | EXPECT_EQ(*block.parameters[0].value, ""b33"") | EXPECT_EQ(block.parameters[1].name, ""GENERATE"") | EXPECT_FALSE(block.parameters[1].value.has_value()) | EXPECT_EQ(block.parameters[2].name, ""ELSET"") | ASSERT_TRUE(block.parameters[2].value.has_value()) | EXPECT_EQ(*block.parameters[2].value, ""Beam_Set"")" -Dev tests/unit/io/abaqus/input_syntax_test.cpp InpSyntax.PreservesDataAndSourceLocations InpSyntax.PreservesDataAndSourceLocations; assertion 12개 tests/unit/io/abaqus/input_syntax_test.cpp InpSyntax.PreservesDataAndSourceLocations 유지 원문 검사 body 및 assertion 동일. a1132a3f6c99199423c9f513fe5541b7c91e511e68e9f3d935d5bca9ba159733 a1132a3f6c99199423c9f513fe5541b7c91e511e68e9f3d935d5bca9ba159733 "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_path, std::filesystem::absolute(input.Path()).lexically_normal()) | EXPECT_EQ(result.Value().source_content_identity, ""fnv1a64:c120b6ed2445be46"") | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""NODE"") | EXPECT_EQ(block.original_line, ""*NoDe"") | EXPECT_EQ(block.location.file, result.Value().source_path) | EXPECT_EQ(block.location.line, 3U) | ASSERT_EQ(block.data.size(), 1U) | EXPECT_EQ(block.data[0].fields, (std::vector{""0007"", ""Label_A"", """", """"})) | EXPECT_EQ(block.data[0].location.file, result.Value().source_path) | EXPECT_EQ(block.data[0].location.line, 4U)" "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_path, std::filesystem::absolute(input.Path()).lexically_normal()) | EXPECT_EQ(result.Value().source_content_identity, ""fnv1a64:c120b6ed2445be46"") | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""NODE"") | EXPECT_EQ(block.original_line, ""*NoDe"") | EXPECT_EQ(block.location.file, result.Value().source_path) | EXPECT_EQ(block.location.line, 3U) | ASSERT_EQ(block.data.size(), 1U) | EXPECT_EQ(block.data[0].fields, (std::vector{""0007"", ""Label_A"", """", """"})) | EXPECT_EQ(block.data[0].location.file, result.Value().source_path) | EXPECT_EQ(block.data[0].location.line, 4U)" -Dev tests/unit/io/abaqus/input_syntax_test.cpp support@1-37 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if tests/unit/io/abaqus/input_syntax_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5cd816979355e9dfa2384470d2d676ffac1a89dc2f4e6ccd91d0998e1d374b2d 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 18개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f28acc507f7b42094ff105589aa020384ae0c3b6c6b4c67edb7d4e36f7928af6 f28acc507f7b42094ff105589aa020384ae0c3b6c6b4c67edb7d4e36f7928af6 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsDirectInstanceFacetsForS4AndS4rCaseInsensitively ShellSurfacePressureInput.MapsDirectInstanceFacetsForS4AndS4rCaseInsensitively; assertion 11개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsDirectInstanceFacetsForS4AndS4rCaseInsensitively 유지 원문 검사 body 및 assertion 동일. 946490ad5c50c1cb8ba083ec3c6d6c42322e4575cbaffc7c063a4aceb1f4d586 946490ad5c50c1cb8ba083ec3c6d6c42322e4575cbaffc7c063a4aceb1f4d586 "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(surface.surface_name_raw, ""Direct-Surface"") | EXPECT_EQ(surface.surface_name_canonical, ""DIRECT-SURFACE"") | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(surface.facets[0].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[0].source_element_label, 10) | EXPECT_EQ(surface.facets[0].source_element_label_raw, ""0010"") | EXPECT_EQ(surface.facets[0].source_element_type, ""S4"") | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSpos) | EXPECT_EQ(surface.facets[1].source_element_type, ""S4R"") | EXPECT_EQ(surface.facets[1].side, fesa::ShellSurfaceSide::kSneg)" "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(surface.surface_name_raw, ""Direct-Surface"") | EXPECT_EQ(surface.surface_name_canonical, ""DIRECT-SURFACE"") | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(surface.facets[0].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[0].source_element_label, 10) | EXPECT_EQ(surface.facets[0].source_element_label_raw, ""0010"") | EXPECT_EQ(surface.facets[0].source_element_type, ""S4"") | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSpos) | EXPECT_EQ(surface.facets[1].source_element_type, ""S4R"") | EXPECT_EQ(surface.facets[1].side, fesa::ShellSurfaceSide::kSneg)" -Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsExplicitInstanceElsetAndResultNeutralInternalParameter ShellSurfacePressureInput.MapsExplicitInstanceElsetAndResultNeutralInternalParameter; assertion 7개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsExplicitInstanceElsetAndResultNeutralInternalParameter 유지 원문 검사 body 및 assertion 동일. d6e14ec8263f733baba442390ee6f6a6f4b722f1f0edb1f7ba795e587f6c858c d6e14ec8263f733baba442390ee6f6a6f4b722f1f0edb1f7ba795e587f6c858c "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(facet.member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(facet.elset_name_raw, ""flat-members"") | EXPECT_EQ(facet.elset_name_canonical, ""FLAT-MEMBERS"") | EXPECT_EQ(facet.instance_name_raw, ""Instance-A"") | EXPECT_EQ(facet.side, fesa::ShellSurfaceSide::kSpos)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(facet.member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(facet.elset_name_raw, ""flat-members"") | EXPECT_EQ(facet.elset_name_canonical, ""FLAT-MEMBERS"") | EXPECT_EQ(facet.instance_name_raw, ""Instance-A"") | EXPECT_EQ(facet.side, fesa::ShellSurfaceSide::kSpos)" -Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsMixedDirectAndElsetMembersAcrossTwoExplicitInstancesWithStableDataMemberAndElsetOrder ShellSurfacePressureInput.MapsMixedDirectAndElsetMembersAcrossTwoExplicitInstancesWithStableDataMemberAndElsetOrder; assertion 21개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsMixedDirectAndElsetMembersAcrossTwoExplicitInstancesWithStableDataMemberAndElsetOrder 유지 원문 검사 body 및 assertion 동일. 8d33f673c3b416be94c015ec597fcf82637e32a1423ffa50887b3cec07778a4f 8d33f673c3b416be94c015ec597fcf82637e32a1423ffa50887b3cec07778a4f "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 4U) | EXPECT_EQ(surface.facets[0].instance_name_raw, ""Instance-B"") | EXPECT_EQ(surface.facets[0].source_element_label, 10) | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSneg) | EXPECT_EQ(surface.facets[0].first_member_ordinal, 2U) | EXPECT_EQ(surface.facets[1].instance_name_raw, ""Instance-B"") | EXPECT_EQ(surface.facets[1].source_element_label, 20) | EXPECT_EQ(surface.facets[1].member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(surface.facets[1].first_member_ordinal, 1U) | EXPECT_EQ(surface.facets[2].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[2].source_element_label, 10) | EXPECT_EQ(surface.facets[2].member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(surface.facets[2].first_member_ordinal, 3U) | EXPECT_EQ(surface.facets[3].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[3].source_element_label, 20) | EXPECT_EQ(surface.facets[3].member_kind, fesa::SurfaceMemberKind::kDirect) | EXPECT_EQ(surface.facets[3].first_member_ordinal, 0U) | EXPECT_EQ(facet.part_name_raw, ""Shell-Part"") | EXPECT_EQ(facet.part_name_canonical, ""SHELL-PART"") | EXPECT_EQ(facet.instance_name_canonical, facet.instance_name_raw == ""Instance-A"" ? ""INSTANCE-A"" : ""INSTANCE-B"")" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 4U) | EXPECT_EQ(surface.facets[0].instance_name_raw, ""Instance-B"") | EXPECT_EQ(surface.facets[0].source_element_label, 10) | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSneg) | EXPECT_EQ(surface.facets[0].first_member_ordinal, 2U) | EXPECT_EQ(surface.facets[1].instance_name_raw, ""Instance-B"") | EXPECT_EQ(surface.facets[1].source_element_label, 20) | EXPECT_EQ(surface.facets[1].member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(surface.facets[1].first_member_ordinal, 1U) | EXPECT_EQ(surface.facets[2].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[2].source_element_label, 10) | EXPECT_EQ(surface.facets[2].member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(surface.facets[2].first_member_ordinal, 3U) | EXPECT_EQ(surface.facets[3].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[3].source_element_label, 20) | EXPECT_EQ(surface.facets[3].member_kind, fesa::SurfaceMemberKind::kDirect) | EXPECT_EQ(surface.facets[3].first_member_ordinal, 0U) | EXPECT_EQ(facet.part_name_raw, ""Shell-Part"") | EXPECT_EQ(facet.part_name_canonical, ""SHELL-PART"") | EXPECT_EQ(facet.instance_name_canonical, facet.instance_name_raw == ""Instance-A"" ? ""INSTANCE-A"" : ""INSTANCE-B"")" -Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.PreservesSposSnegMagnitudeTextLocationsAndSourceOrder ShellSurfacePressureInput.PreservesSposSnegMagnitudeTextLocationsAndSourceOrder; assertion 21개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.PreservesSposSnegMagnitudeTextLocationsAndSourceOrder 유지 원문 검사 body 및 assertion 동일. 9c08d13e4d85213392e2e9a91bfd3c2da00f84da36f7a8748cf0356575d40a89 9c08d13e4d85213392e2e9a91bfd3c2da00f84da36f7a8748cf0356575d40a89 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(surface.facets[0].facet_ordinal, 0U) | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSpos) | EXPECT_EQ(surface.facets[1].facet_ordinal, 1U) | EXPECT_EQ(surface.facets[1].side, fesa::ShellSurfaceSide::kSneg) | ASSERT_EQ(step.SurfacePressureLoads().size(), 2U) | EXPECT_EQ(first.step_name_raw, ""Pressure-Step"") | EXPECT_EQ(first.step_name_canonical, ""PRESSURE-STEP"") | EXPECT_EQ(first.surface_name_raw, ""pressure-surface"") | EXPECT_EQ(first.surface_name_canonical, ""PRESSURE-SURFACE"") | EXPECT_EQ(first.load_type, ""P"") | EXPECT_DOUBLE_EQ(first.magnitude, 0.0) | EXPECT_EQ(first.magnitude_raw, ""-0.0"") | EXPECT_EQ(first.data_ordinal, 0U) | EXPECT_EQ(first.load_ordinal, 0U) | EXPECT_LT(first.keyword_location.line, first.data_location.line) | EXPECT_EQ(second.magnitude_raw, ""+2.50e+03"") | EXPECT_DOUBLE_EQ(second.magnitude, 2500.0) | EXPECT_EQ(second.data_ordinal, 1U) | EXPECT_EQ(second.load_ordinal, 1U)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(surface.facets[0].facet_ordinal, 0U) | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSpos) | EXPECT_EQ(surface.facets[1].facet_ordinal, 1U) | EXPECT_EQ(surface.facets[1].side, fesa::ShellSurfaceSide::kSneg) | ASSERT_EQ(step.SurfacePressureLoads().size(), 2U) | EXPECT_EQ(first.step_name_raw, ""Pressure-Step"") | EXPECT_EQ(first.step_name_canonical, ""PRESSURE-STEP"") | EXPECT_EQ(first.surface_name_raw, ""pressure-surface"") | EXPECT_EQ(first.surface_name_canonical, ""PRESSURE-SURFACE"") | EXPECT_EQ(first.load_type, ""P"") | EXPECT_DOUBLE_EQ(first.magnitude, 0.0) | EXPECT_EQ(first.magnitude_raw, ""-0.0"") | EXPECT_EQ(first.data_ordinal, 0U) | EXPECT_EQ(first.load_ordinal, 0U) | EXPECT_LT(first.keyword_location.line, first.data_location.line) | EXPECT_EQ(second.magnitude_raw, ""+2.50e+03"") | EXPECT_DOUBLE_EQ(second.magnitude, 2500.0) | EXPECT_EQ(second.data_ordinal, 1U) | EXPECT_EQ(second.load_ordinal, 1U)" -Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.OwnsCanonicalFacetsAndStepOwnedAdditivePressureRecords ShellSurfacePressureDomain.OwnsCanonicalFacetsAndStepOwnedAdditivePressureRecords; assertion 3개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.OwnsCanonicalFacetsAndStepOwnedAdditivePressureRecords 유지 원문 검사 body 및 assertion 동일. 42e89d7898679456d451df49a6eec0e9e98cc775ba616c469f3ad6c9839f3a6b 42e89d7898679456d451df49a6eec0e9e98cc775ba616c469f3ad6c9839f3a6b ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.ElementSurfaces()[0].facets[0].source_element_label, 10) | EXPECT_DOUBLE_EQ(domain.Steps()[0U].SurfacePressureLoads()[0].magnitude, 1.0) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.ElementSurfaces()[0].facets[0].source_element_label, 10) | EXPECT_DOUBLE_EQ(domain.Steps()[0U].SurfacePressureLoads()[0].magnitude, 1.0) -Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.AnalysisModelBorrowsActivePressureWithoutCopyingDomain ShellSurfacePressureDomain.AnalysisModelBorrowsActivePressureWithoutCopyingDomain; assertion 4개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.AnalysisModelBorrowsActivePressureWithoutCopyingDomain 유지 원문 검사 body 및 assertion 동일. 83c413cc8fb859ea110ee4895701e8637ebd25d495ccc13f88c4d67032a8394e 83c413cc8fb859ea110ee4895701e8637ebd25d495ccc13f88c4d67032a8394e ASSERT_TRUE(mapped.HasValue()) | ASSERT_TRUE(model.HasValue()) | EXPECT_EQ(&model.Value().ActiveSurfacePressureLoads(), &mapped.Value().Steps()[0U].SurfacePressureLoads()) | EXPECT_EQ(model.Value().ActiveSurfacePressureLoads().size(), 1U) ASSERT_TRUE(mapped.HasValue()) | ASSERT_TRUE(model.HasValue()) | EXPECT_EQ(&model.Value().ActiveSurfacePressureLoads(), &mapped.Value().Steps()[0U].SurfacePressureLoads()) | EXPECT_EQ(model.Value().ActiveSurfacePressureLoads().size(), 1U) -Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.AcceptsWhitespaceSignedZeroAndFiniteScientificNotation ShellSurfacePressureInput.AcceptsWhitespaceSignedZeroAndFiniteScientificNotation; assertion 6개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.AcceptsWhitespaceSignedZeroAndFiniteScientificNotation 유지 원문 검사 body 및 assertion 동일. 87b289b662f1e0f3698f77b333ddd4ccbf28081d4ecfdb62b8baedc1c663909b 87b289b662f1e0f3698f77b333ddd4ccbf28081d4ecfdb62b8baedc1c663909b "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0].magnitude_raw, ""+0"") | EXPECT_DOUBLE_EQ(loads[0].magnitude, 0.0) | EXPECT_EQ(loads[1].magnitude_raw, ""-1.25E-3"") | EXPECT_DOUBLE_EQ(loads[1].magnitude, -0.00125)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0].magnitude_raw, ""+0"") | EXPECT_DOUBLE_EQ(loads[0].magnitude, 0.0) | EXPECT_EQ(loads[1].magnitude_raw, ""-1.25E-3"") | EXPECT_DOUBLE_EQ(loads[1].magnitude, -0.00125)" -Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsNonAsciiOverlengthOrIllegalContinuationAtStableLocation ShellSurfacePressureInput.RejectsNonAsciiOverlengthOrIllegalContinuationAtStableLocation; assertion 10개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsNonAsciiOverlengthOrIllegalContinuationAtStableLocation 유지 원문 검사 body 및 assertion 동일. 1ce5f567f199255b591700b92f8ecc0c9f9484c5315310cc34228f91d1b5f7e3 1ce5f567f199255b591700b92f8ecc0c9f9484c5315310cc34228f91d1b5f7e3 "ASSERT_FALSE(non_ascii.HasValue()) | ASSERT_EQ(non_ascii.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(non_ascii.GetStatus().Diagnostics().front().code, ""invalid-input-character"") | EXPECT_EQ(non_ascii.GetStatus().Diagnostics().front().location.line, 2U) | ASSERT_FALSE(overlength.HasValue()) | EXPECT_EQ(overlength.GetStatus().Diagnostics().front().code, ""input-line-too-long"") | EXPECT_EQ(overlength.GetStatus().Diagnostics().front().location.line, 1U) | ASSERT_FALSE(continuation.HasValue()) | EXPECT_EQ(continuation.GetStatus().Diagnostics().front().code, ""malformed-keyword"") | EXPECT_EQ(continuation.GetStatus().Diagnostics().front().location.line, 2U)" "ASSERT_FALSE(non_ascii.HasValue()) | ASSERT_EQ(non_ascii.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(non_ascii.GetStatus().Diagnostics().front().code, ""invalid-input-character"") | EXPECT_EQ(non_ascii.GetStatus().Diagnostics().front().location.line, 2U) | ASSERT_FALSE(overlength.HasValue()) | EXPECT_EQ(overlength.GetStatus().Diagnostics().front().code, ""input-line-too-long"") | EXPECT_EQ(overlength.GetStatus().Diagnostics().front().location.line, 1U) | ASSERT_FALSE(continuation.HasValue()) | EXPECT_EQ(continuation.GetStatus().Diagnostics().front().code, ""malformed-keyword"") | EXPECT_EQ(continuation.GetStatus().Diagnostics().front().location.line, 2U)" -Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsUnsupportedSurfaceParametersTypesSidesAndTargetKinds ShellSurfacePressureInput.RejectsUnsupportedSurfaceParametersTypesSidesAndTargetKinds; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsUnsupportedSurfaceParametersTypesSidesAndTargetKinds 유지 원문 검사 body 및 assertion 동일. 68c16419be0faeb3e5c631b0e2c4d1e86e40ed448590aec8a56567e36f406ea7 68c16419be0faeb3e5c631b0e2c4d1e86e40ed448590aec8a56567e36f406ea7 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsDsloadParametersLabelsDistributionsAndCardinality ShellSurfacePressureInput.RejectsDsloadParametersLabelsDistributionsAndCardinality; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsDsloadParametersLabelsDistributionsAndCardinality 유지 원문 검사 body 및 assertion 동일. ce9916ba710c77e4eb855936e4e9b09baaa2f5362abb02621d469075a5c06faa ce9916ba710c77e4eb855936e4e9b09baaa2f5362abb02621d469075a5c06faa 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsEmptyMissingAmbiguousAndCrossScopeSurfaceTargets ShellSurfacePressureInput.RejectsEmptyMissingAmbiguousAndCrossScopeSurfaceTargets; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsEmptyMissingAmbiguousAndCrossScopeSurfaceTargets 유지 원문 검사 body 및 assertion 동일. b989869b46405f081a67b42c2ac227713272b84c67b79337276cef65ce359cf4 b989869b46405f081a67b42c2ac227713272b84c67b79337276cef65ce359cf4 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsImplicitInstanceNestedCyclicAndMalformedElsets ShellSurfacePressureInput.RejectsImplicitInstanceNestedCyclicAndMalformedElsets; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsImplicitInstanceNestedCyclicAndMalformedElsets 유지 원문 검사 body 및 assertion 동일. 569ad93130ac52b9b57b42010b2150591c9f0125fb21d8c2469cc515e6917db5 569ad93130ac52b9b57b42010b2150591c9f0125fb21d8c2469cc515e6917db5 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.NormalizesExactSameSideDuplicatesWithOneStableWarning ShellSurfacePressureInput.NormalizesExactSameSideDuplicatesWithOneStableWarning; assertion 8개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.NormalizesExactSameSideDuplicatesWithOneStableWarning 유지 원문 검사 body 및 assertion 동일. 6236b7eb61a4fd35e83e7ae25ddc5570a7cebd6db3eb16bf99f95c45470a5c72 6236b7eb61a4fd35e83e7ae25ddc5570a7cebd6db3eb16bf99f95c45470a5c72 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(OnlySurface(result.Value()).facets.size(), 1U) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(warning.severity, fesa::Severity::kWarning) | EXPECT_EQ(warning.code, ""duplicate-surface-member-normalized"") | EXPECT_EQ(warning.location.line, 29U) | EXPECT_EQ(warning.keyword, ""SURFACE"") | EXPECT_EQ(warning.entity_identity, ""Pressure-Surface"")" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(OnlySurface(result.Value()).facets.size(), 1U) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(warning.severity, fesa::Severity::kWarning) | EXPECT_EQ(warning.code, ""duplicate-surface-member-normalized"") | EXPECT_EQ(warning.location.line, 29U) | EXPECT_EQ(warning.keyword, ""SURFACE"") | EXPECT_EQ(warning.entity_identity, ""Pressure-Surface"")" -Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsConflictingSidesForOneElement ShellSurfacePressureInput.RejectsConflictingSidesForOneElement; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsConflictingSidesForOneElement 유지 원문 검사 body 및 assertion 동일. 315b661ced70d8d24863f470071109e53670f8da16a0b9bd3b967f8323ba5bea 315b661ced70d8d24863f470071109e53670f8da16a0b9bd3b967f8323ba5bea 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsNonfiniteDExponentAndLocaleDependentMagnitudes ShellSurfacePressureInput.RejectsNonfiniteDExponentAndLocaleDependentMagnitudes; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsNonfiniteDExponentAndLocaleDependentMagnitudes 유지 원문 검사 body 및 assertion 동일. c59f0842555c4f634f8e5b90784578f9266a27d716f16648d27acb9709bee548 c59f0842555c4f634f8e5b90784578f9266a27d716f16648d27acb9709bee548 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.PreservesAdditiveRepeatedPressureRowsWithoutDeduplication ShellSurfacePressureInput.PreservesAdditiveRepeatedPressureRowsWithoutDeduplication; assertion 7개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.PreservesAdditiveRepeatedPressureRowsWithoutDeduplication 유지 원문 검사 body 및 assertion 동일. bf188f0db4fa94c007143db4457732b390ea10be44a09c4ac30e0498c4d7e2cf bf188f0db4fa94c007143db4457732b390ea10be44a09c4ac30e0498c4d7e2cf ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0].load_ordinal, 0U) | EXPECT_EQ(loads[1].load_ordinal, 1U) | EXPECT_EQ(loads[0].data_ordinal, 0U) | EXPECT_EQ(loads[1].data_ordinal, 1U) | EXPECT_DOUBLE_EQ(loads[0].magnitude, loads[1].magnitude) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0].load_ordinal, 0U) | EXPECT_EQ(loads[1].load_ordinal, 1U) | EXPECT_EQ(loads[0].data_ordinal, 0U) | EXPECT_EQ(loads[1].data_ordinal, 1U) | EXPECT_DOUBLE_EQ(loads[0].magnitude, loads[1].magnitude) -Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.MappingFailureCommitsNoPartialSemanticCandidate ShellSurfacePressureDomain.MappingFailureCommitsNoPartialSemanticCandidate; assertion 2개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.MappingFailureCommitsNoPartialSemanticCandidate 유지 원문 검사 body 및 assertion 동일. 003fd75844ef98765cfaa6d972a17143273fdfee97b19ba5f6e778352bd86bf6 003fd75844ef98765cfaa6d972a17143273fdfee97b19ba5f6e778352bd86bf6 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics().front().code, ""conflicting-surface-membership"")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics().front().code, ""conflicting-surface-membership"")" -Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.EmitsDiagnosticsInStableSourceOrderAcrossRepeatedRuns ShellSurfacePressureInput.EmitsDiagnosticsInStableSourceOrderAcrossRepeatedRuns; assertion 11개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.EmitsDiagnosticsInStableSourceOrderAcrossRepeatedRuns 유지 원문 검사 body 및 assertion 동일. 7544df73d8202a307316ba7ec6a6f786d8eb7c4b585beceb4280997ebf5c5c8f 7544df73d8202a307316ba7ec6a6f786d8eb7c4b585beceb4280997ebf5c5c8f ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_EQ(first.Value().Warnings().size(), 1U) | ASSERT_EQ(second.Value().Warnings().size(), 1U) | EXPECT_EQ(left.severity, right.severity) | EXPECT_EQ(left.code, right.code) | EXPECT_EQ(left.location.file, right.location.file) | EXPECT_EQ(left.location.line, right.location.line) | EXPECT_EQ(left.keyword, right.keyword) | EXPECT_EQ(left.entity_identity, right.entity_identity) | EXPECT_EQ(left.message, right.message) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_EQ(first.Value().Warnings().size(), 1U) | ASSERT_EQ(second.Value().Warnings().size(), 1U) | EXPECT_EQ(left.severity, right.severity) | EXPECT_EQ(left.code, right.code) | EXPECT_EQ(left.location.file, right.location.file) | EXPECT_EQ(left.location.line, right.location.line) | EXPECT_EQ(left.keyword, right.keyword) | EXPECT_EQ(left.entity_identity, right.entity_identity) | EXPECT_EQ(left.message, right.message) -Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp support@1-126 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if, MapText, ReadText, ReplaceOnce, ExpectSingleFailure, ShellDeck, OnlySurface tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d01dd887a99bccd610d4db4c59f83a92cdc73f44a8d962cd5349c44d36562723 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/thermal_domain_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 32개 tests/unit/io/abaqus/thermal_domain_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. efd4b1c00fa1db1fa4fe9ccd369c34f9bea4cc2665b5c00972792a0fd66d9483 efd4b1c00fa1db1fa4fe9ccd369c34f9bea4cc2665b5c00972792a0fd66d9483 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MapsDs4MaterialsTargetsAndAdditiveFluxes ThermalDomainMapping.MapsDs4MaterialsTargetsAndAdditiveFluxes; assertion 12개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MapsDs4MaterialsTargetsAndAdditiveFluxes 유지 원문 검사 body 및 assertion 동일. af2d22c04e46f6dd711a20088fbc473854263068c67a74e8f27049e4026c2a22 af2d22c04e46f6dd711a20088fbc473854263068c67a74e8f27049e4026c2a22 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalElements().Size(), 1U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 1U) | EXPECT_DOUBLE_EQ(domain.ThermalMaterials()[0U].Conductivity(), 54.0) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(domain.ThermalStep()->name, ""Heat"") | EXPECT_EQ(domain.ThermalStep()->maximum_increments, 100U) | EXPECT_EQ(domain.ThermalModelBoundaries().size(), 2U) | EXPECT_EQ(domain.ThermalStep()->Boundaries().size(), 2U) | ASSERT_EQ(domain.ThermalStep()->Loads().size(), 4U) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Loads()[0U].power, -2.0) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Loads()[3U].power, -3.0)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalElements().Size(), 1U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 1U) | EXPECT_DOUBLE_EQ(domain.ThermalMaterials()[0U].Conductivity(), 54.0) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(domain.ThermalStep()->name, ""Heat"") | EXPECT_EQ(domain.ThermalStep()->maximum_increments, 100U) | EXPECT_EQ(domain.ThermalModelBoundaries().size(), 2U) | EXPECT_EQ(domain.ThermalStep()->Boundaries().size(), 2U) | ASSERT_EQ(domain.ThermalStep()->Loads().size(), 4U) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Loads()[0U].power, -2.0) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Loads()[3U].power, -3.0)" -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsInteriorAndConflictingThermalBoundaries ThermalDomainMapping.RejectsInteriorAndConflictingThermalBoundaries; assertion 4개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsInteriorAndConflictingThermalBoundaries 유지 원문 검사 body 및 assertion 동일. 7ec98df39941a00678cd5ef92a12a7f68a90cda117bae9baef2a0684c5f96b7d 7ec98df39941a00678cd5ef92a12a7f68a90cda117bae9baef2a0684c5f96b7d "ASSERT_FALSE(invalid_dof.HasValue()) | EXPECT_EQ(invalid_dof.GetStatus().Diagnostics()[0U].code, ""invalid-dof"") | ASSERT_FALSE(invalid_conflict.HasValue()) | EXPECT_EQ(invalid_conflict.GetStatus().Diagnostics()[0U].code, ""conflicting-boundary-condition"")" "ASSERT_FALSE(invalid_dof.HasValue()) | EXPECT_EQ(invalid_dof.GetStatus().Diagnostics()[0U].code, ""invalid-dof"") | ASSERT_FALSE(invalid_conflict.HasValue()) | EXPECT_EQ(invalid_conflict.GetStatus().Diagnostics()[0U].code, ""conflicting-boundary-condition"")" -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.AcceptsSectionPointSpellingsAndRejectsUnsupportedForms ThermalDomainMapping.AcceptsSectionPointSpellingsAndRejectsUnsupportedForms; assertion 1개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.AcceptsSectionPointSpellingsAndRejectsUnsupportedForms 유지 원문 검사 body 및 assertion 동일. 0246d651e3e2c547182aa0793b1ede7ebad37bb947330710f83c05bc1899a641 0246d651e3e2c547182aa0793b1ede7ebad37bb947330710f83c05bc1899a641 EXPECT_EQ(MapText(deck).HasValue(), test_case.second) EXPECT_EQ(MapText(deck).HasValue(), test_case.second) -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsThermalMaterialAndControlForms ThermalDomainMapping.RejectsThermalMaterialAndControlForms; assertion 2개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsThermalMaterialAndControlForms 유지 원문 검사 body 및 assertion 동일. aa52baa4e9489c8924eccd069573c18e9d91f3432343b409fd2e822e1c24177b aa52baa4e9489c8924eccd069573c18e9d91f3432343b409fd2e822e1c24177b ASSERT_NE(position, std::string::npos) | EXPECT_FALSE(MapText(deck).HasValue()) ASSERT_NE(position, std::string::npos) | EXPECT_FALSE(MapText(deck).HasValue()) -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsThermalNoOpAndProcedureViolations ThermalDomainMapping.RejectsThermalNoOpAndProcedureViolations; assertion 2개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsThermalNoOpAndProcedureViolations 유지 원문 검사 body 및 assertion 동일. 40e1583ca082fe70743b2bc1583336dfe4284fe520aa4d00ddaf5a2297c8df91 40e1583ca082fe70743b2bc1583336dfe4284fe520aa4d00ddaf5a2297c8df91 ASSERT_NE(position, std::string::npos) | EXPECT_FALSE(MapText(deck).HasValue()) ASSERT_NE(position, std::string::npos) | EXPECT_FALSE(MapText(deck).HasValue()) -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.AppliesSameDofStepOverrideAndDefaultValues ThermalDomainMapping.AppliesSameDofStepOverrideAndDefaultValues; assertion 5개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.AppliesSameDofStepOverrideAndDefaultValues 유지 원문 검사 body 및 assertion 동일. 5277085c94aa63d3671618cea4d01e147843cb61b11bcdd8ea01ced3610db2e3 5277085c94aa63d3671618cea4d01e147843cb61b11bcdd8ea01ced3610db2e3 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().ThermalModelBoundaries().size(), 2U) | ASSERT_EQ(result.Value().ThermalStep()->Boundaries().size(), 2U) | EXPECT_DOUBLE_EQ(result.Value().ThermalModelBoundaries()[0U].value, 0.0) | EXPECT_DOUBLE_EQ(result.Value().ThermalStep()->Boundaries()[0U].value, 30.0) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().ThermalModelBoundaries().size(), 2U) | ASSERT_EQ(result.Value().ThermalStep()->Boundaries().size(), 2U) | EXPECT_DOUBLE_EQ(result.Value().ThermalModelBoundaries()[0U].value, 0.0) | EXPECT_DOUBLE_EQ(result.Value().ThermalStep()->Boundaries()[0U].value, 30.0) -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MapsApprovedShellThermalReference ThermalDomainMapping.MapsApprovedShellThermalReference; assertion 43개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MapsApprovedShellThermalReference 유지 원문 검사 body 및 assertion 동일. 55cab422db4e1520d96658c9b35707efad8d2f61960a1a9c91f2696e239f596f 55cab422db4e1520d96658c9b35707efad8d2f61960a1a9c91f2696e239f596f "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 729U) | ASSERT_EQ(domain.ThermalElements().Size(), 676U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 1U) | ASSERT_EQ(domain.ThermalSections().size(), 1U) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(step.name, ""Step-1"") | EXPECT_EQ(step.maximum_increments, 100000U) | EXPECT_EQ(step.nominal_increment, 1.) | EXPECT_EQ(step.time_period, 100.) | ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 100U) | EXPECT_EQ(grid.Value().Time(37U), 37.) | EXPECT_EQ(domain.ThermalMaterials()[0].Name(), ""Material-1"") | EXPECT_EQ(domain.ThermalMaterials()[0].Conductivity(), 54.) | EXPECT_EQ(domain.ThermalMaterials()[0].Density(), 7850.) | EXPECT_EQ(domain.ThermalMaterials()[0].SpecificHeat(), 460.) | EXPECT_EQ(domain.ThermalSections()[0].name, ""Set-1"") | EXPECT_EQ(domain.ThermalSections()[0].thickness, .5) | EXPECT_EQ(domain.ThermalSections()[0].location.file, path) | EXPECT_EQ(domain.ThermalSections()[0].location.line, 1421U) | EXPECT_EQ(domain.Nodes()[i].source_id.instance_name, ""Part-1-1"") | EXPECT_EQ(domain.Nodes()[i].source_id.source_label, static_cast(i + 1U)) | EXPECT_EQ(domain.ThermalElements()[i].SourceId().instance_name, ""Part-1-1"") | EXPECT_EQ(domain.ThermalElements()[i].SourceId().source_label, static_cast(i + 1U)) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), expected_boundary_labels.size()) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), step.Boundaries().size()) | EXPECT_EQ(model_bc.node_index, step_bc.node_index) | EXPECT_EQ(domain.Nodes()[model_bc.node_index].source_id.source_label, expected_boundary_labels[i]) | EXPECT_EQ(model_bc.dof, 11) | EXPECT_EQ(step_bc.dof, 11) | EXPECT_EQ(model_bc.value, 0.) | EXPECT_EQ(step_bc.value, 1000.) | EXPECT_EQ(model_bc.location.file, path) | EXPECT_LT(model_bc.location.line, step_bc.location.line) | ASSERT_EQ(domain.ElementSurfaces().size(), 1U) | ASSERT_EQ(domain.ElementSurfaces()[0].facets.size(), 169U) | EXPECT_EQ(domain.ElementSurfaces()[0].facets.front().source_element_label, 170) | EXPECT_EQ(domain.ElementSurfaces()[0].facets.back().source_element_label, 338) | EXPECT_EQ(domain.ElementSurfaces()[0].facets[0].source_element_type, ""DS4"") | ASSERT_EQ(domain.Warnings().size(), 6U) | EXPECT_EQ(std::count_if(domain.Warnings().begin(), domain.Warnings().end(), [&](const auto& warning) { return warning.location.file == path && warning.location.line == block.location.line && warning.keyword == block.canonical_name; }), 1)" "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 729U) | ASSERT_EQ(domain.ThermalElements().Size(), 676U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 1U) | ASSERT_EQ(domain.ThermalSections().size(), 1U) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(step.name, ""Step-1"") | EXPECT_EQ(step.maximum_increments, 100000U) | EXPECT_EQ(step.nominal_increment, 1.) | EXPECT_EQ(step.time_period, 100.) | ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 100U) | EXPECT_EQ(grid.Value().Time(37U), 37.) | EXPECT_EQ(domain.ThermalMaterials()[0].Name(), ""Material-1"") | EXPECT_EQ(domain.ThermalMaterials()[0].Conductivity(), 54.) | EXPECT_EQ(domain.ThermalMaterials()[0].Density(), 7850.) | EXPECT_EQ(domain.ThermalMaterials()[0].SpecificHeat(), 460.) | EXPECT_EQ(domain.ThermalSections()[0].name, ""Set-1"") | EXPECT_EQ(domain.ThermalSections()[0].thickness, .5) | EXPECT_EQ(domain.ThermalSections()[0].location.file, path) | EXPECT_EQ(domain.ThermalSections()[0].location.line, 1421U) | EXPECT_EQ(domain.Nodes()[i].source_id.instance_name, ""Part-1-1"") | EXPECT_EQ(domain.Nodes()[i].source_id.source_label, static_cast(i + 1U)) | EXPECT_EQ(domain.ThermalElements()[i].SourceId().instance_name, ""Part-1-1"") | EXPECT_EQ(domain.ThermalElements()[i].SourceId().source_label, static_cast(i + 1U)) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), expected_boundary_labels.size()) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), step.Boundaries().size()) | EXPECT_EQ(model_bc.node_index, step_bc.node_index) | EXPECT_EQ(domain.Nodes()[model_bc.node_index].source_id.source_label, expected_boundary_labels[i]) | EXPECT_EQ(model_bc.dof, 11) | EXPECT_EQ(step_bc.dof, 11) | EXPECT_EQ(model_bc.value, 0.) | EXPECT_EQ(step_bc.value, 1000.) | EXPECT_EQ(model_bc.location.file, path) | EXPECT_LT(model_bc.location.line, step_bc.location.line) | ASSERT_EQ(domain.ElementSurfaces().size(), 1U) | ASSERT_EQ(domain.ElementSurfaces()[0].facets.size(), 169U) | EXPECT_EQ(domain.ElementSurfaces()[0].facets.front().source_element_label, 170) | EXPECT_EQ(domain.ElementSurfaces()[0].facets.back().source_element_label, 338) | EXPECT_EQ(domain.ElementSurfaces()[0].facets[0].source_element_type, ""DS4"") | ASSERT_EQ(domain.Warnings().size(), 6U) | EXPECT_EQ(std::count_if(domain.Warnings().begin(), domain.Warnings().end(), [&](const auto& warning) { return warning.location.file == path && warning.location.line == block.location.line && warning.keyword == block.canonical_name; }), 1)" -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.StrictOutputAndRestartNoOps ThermalDomainMapping.StrictOutputAndRestartNoOps; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.StrictOutputAndRestartNoOps 유지 원문 검사 body 및 assertion 동일. 51e37954cc1bd09a41977f48f6977a1889e509d285ae1bde007e30b5345078ef 51e37954cc1bd09a41977f48f6977a1889e509d285ae1bde007e30b5345078ef 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.EveryAcceptedNoOpHasExactlyOneSourceWarning ThermalDomainMapping.EveryAcceptedNoOpHasExactlyOneSourceWarning; assertion 5개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.EveryAcceptedNoOpHasExactlyOneSourceWarning 유지 원문 검사 body 및 assertion 동일. f320f56a6a51fb244decaea008d505f0b1b7d96d0ed1c36dc537572256e87b74 f320f56a6a51fb244decaea008d505f0b1b7d96d0ed1c36dc537572256e87b74 ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(warnings.size(), blocks.size()) | EXPECT_EQ(std::count_if(warnings.begin(), warnings.end(), [&](const auto& w) { return w.severity == fesa::Severity::kWarning && w.keyword == block.second && w.location.file == input.Path() && w.location.line == line; }), 1) | EXPECT_DOUBLE_EQ( result.Value().ThermalInitialConditions()[0].station_values[0], 20.) ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(warnings.size(), blocks.size()) | EXPECT_EQ(std::count_if(warnings.begin(), warnings.end(), [&](const auto& w) { return w.severity == fesa::Severity::kWarning && w.keyword == block.second && w.location.file == input.Path() && w.location.line == line; }), 1) | EXPECT_DOUBLE_EQ( result.Value().ThermalInitialConditions()[0].station_values[0], 20.) -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.SurfaceFacetsAreResolvedAndPreserved ThermalDomainMapping.SurfaceFacetsAreResolvedAndPreserved; assertion 11개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.SurfaceFacetsAreResolvedAndPreserved 유지 원문 검사 body 및 assertion 동일. 1e33822a025e5c4a4e36a221f6e21dd2e83b6223c22d01f0f2bf0e2e4a150638 1e33822a025e5c4a4e36a221f6e21dd2e83b6223c22d01f0f2bf0e2e4a150638 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surfaces.size(), 2U) | ASSERT_EQ(surfaces[i].facets.size(), 1U) | EXPECT_EQ(facet.element_index, 0U) | EXPECT_EQ(facet.source_element_label, 1) | EXPECT_EQ(facet.instance_name_raw, ""I"") | EXPECT_EQ(facet.part_name_raw, ""P"") | EXPECT_EQ(facet.source_element_type, ""DS4"") | EXPECT_EQ(facet.side, side == ""SPOS"" ? fesa::ShellSurfaceSide::kSpos : fesa::ShellSurfaceSide::kSneg) | EXPECT_EQ(facet.member_kind, i == 0U ? fesa::SurfaceMemberKind::kDirect : fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(facet.first_member_location.line, LineOf(deck, (i == 0U ? ""I.1, "" : ""Faces, "") + side))" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surfaces.size(), 2U) | ASSERT_EQ(surfaces[i].facets.size(), 1U) | EXPECT_EQ(facet.element_index, 0U) | EXPECT_EQ(facet.source_element_label, 1) | EXPECT_EQ(facet.instance_name_raw, ""I"") | EXPECT_EQ(facet.part_name_raw, ""P"") | EXPECT_EQ(facet.source_element_type, ""DS4"") | EXPECT_EQ(facet.side, side == ""SPOS"" ? fesa::ShellSurfaceSide::kSpos : fesa::ShellSurfaceSide::kSneg) | EXPECT_EQ(facet.member_kind, i == 0U ? fesa::SurfaceMemberKind::kDirect : fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(facet.first_member_location.line, LineOf(deck, (i == 0U ? ""I.1, "" : ""Faces, "") + side))" -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsUnresolvedOrInvalidSurfaces ThermalDomainMapping.RejectsUnresolvedOrInvalidSurfaces; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsUnresolvedOrInvalidSurfaces 유지 원문 검사 body 및 assertion 동일. 678d79744318544126a5fab47e194fbb985efe58934d0728ef55b20156e7d91f 678d79744318544126a5fab47e194fbb985efe58934d0728ef55b20156e7d91f 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.PreprintAndPhysicalConstantsAreStrictAndSourceAware ThermalDomainMapping.PreprintAndPhysicalConstantsAreStrictAndSourceAware; assertion 3개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.PreprintAndPhysicalConstantsAreStrictAndSourceAware 유지 원문 검사 body 및 assertion 동일. 3b12f2919d0a6fdfa013a4ac38dbdce85622c99ad095e6f1f4c74ccef9eec6d2 3b12f2919d0a6fdfa013a4ac38dbdce85622c99ad095e6f1f4c74ccef9eec6d2 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""PHYSICAL CONSTANTS"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, 1U)" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""PHYSICAL CONSTANTS"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, 1U)" -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsChildOutputUnknownAndWrongNoOpScopes ThermalDomainMapping.RejectsChildOutputUnknownAndWrongNoOpScopes; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsChildOutputUnknownAndWrongNoOpScopes 유지 원문 검사 body 및 assertion 동일. 6b5c15e74febb98d3db79f8aef581dd44e658c4aa04714443914a23d5cba6117 6b5c15e74febb98d3db79f8aef581dd44e658c4aa04714443914a23d5cba6117 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MaterialConstantsAndSectionLinksAreStrict ThermalDomainMapping.MaterialConstantsAndSectionLinksAreStrict; assertion 1개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MaterialConstantsAndSectionLinksAreStrict 유지 원문 검사 body 및 assertion 동일. f4ccfe76b71133eea01edf7824c2b21d6e5d49bdad620c5d3f7bcc205c7d532f f4ccfe76b71133eea01edf7824c2b21d6e5d49bdad620c5d3f7bcc205c7d532f ASSERT_TRUE(result.HasValue()) ASSERT_TRUE(result.HasValue()) -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InitialTemperatureDefaultsAndOverlaps ThermalDomainMapping.InitialTemperatureDefaultsAndOverlaps; assertion 4개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InitialTemperatureDefaultsAndOverlaps 유지 원문 검사 body 및 assertion 동일. cff5684ec434d19c1c53df0be1764dad47e45d50bd4df30c490fb263894fbd0c cff5684ec434d19c1c53df0be1764dad47e45d50bd4df30c490fb263894fbd0c ASSERT_TRUE(unspecified.HasValue()) | EXPECT_TRUE(unspecified.Value().ThermalInitialConditions().empty()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(temperature, 20.) ASSERT_TRUE(unspecified.HasValue()) | EXPECT_TRUE(unspecified.Value().ThermalInitialConditions().empty()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(temperature, 20.) -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InactiveTargetsFailWithOriginalKeywordAndIdentity ThermalDomainMapping.InactiveTargetsFailWithOriginalKeywordAndIdentity; assertion 8개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InactiveTargetsFailWithOriginalKeywordAndIdentity 유지 원문 검사 body 및 assertion 동일. 83f7f07fbb31e1317402934ace845532b895851b979987760d55f5d4cd771562 83f7f07fbb31e1317402934ace845532b895851b979987760d55f5d4cd771562 "ASSERT_TRUE(accepted.HasValue()) | EXPECT_EQ(accepted.Value().Nodes().size(), 5U) | ASSERT_TRUE(view.HasValue()) | EXPECT_EQ(view.Value().ActiveThermalNodes().size(), 4U) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(diagnostic.entity_identity, ""99"") | EXPECT_EQ(diagnostic.location.line, LineOf(deck, replacement.second)) | EXPECT_NE(diagnostic.keyword, ""THERMAL"")" "ASSERT_TRUE(accepted.HasValue()) | EXPECT_EQ(accepted.Value().Nodes().size(), 5U) | ASSERT_TRUE(view.HasValue()) | EXPECT_EQ(view.Value().ActiveThermalNodes().size(), 4U) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(diagnostic.entity_identity, ""99"") | EXPECT_EQ(diagnostic.location.line, LineOf(deck, replacement.second)) | EXPECT_NE(diagnostic.keyword, ""THERMAL"")" -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ModelBoundaryInheritanceAndStepOverrideReachDofManager ThermalDomainMapping.ModelBoundaryInheritanceAndStepOverrideReachDofManager; assertion 9개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ModelBoundaryInheritanceAndStepOverrideReachDofManager 유지 원문 검사 body 및 assertion 동일. f7561b77de2a4c22260774a6681cea57b317458be3d0c6d27ebe1722d41297c0 f7561b77de2a4c22260774a6681cea57b317458be3d0c6d27ebe1722d41297c0 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), 4U) | ASSERT_EQ(domain.ThermalStep()->Boundaries().size(), 3U) | EXPECT_DOUBLE_EQ(domain.ThermalModelBoundaries()[0].value, 7.) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Boundaries()[0].value, -30.) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().ConstrainedDofs(), expected_dofs) | EXPECT_DOUBLE_EQ(dofs.Value().PrescribedValues()[i], expected_values[i]) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), 4U) | ASSERT_EQ(domain.ThermalStep()->Boundaries().size(), 3U) | EXPECT_DOUBLE_EQ(domain.ThermalModelBoundaries()[0].value, 7.) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Boundaries()[0].value, -30.) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().ConstrainedDofs(), expected_dofs) | EXPECT_DOUBLE_EQ(dofs.Value().PrescribedValues()[i], expected_values[i]) -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.BoundariesRejectConflictsAndUnsupportedRowsAtBothLevels ThermalDomainMapping.BoundariesRejectConflictsAndUnsupportedRowsAtBothLevels; assertion 1개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.BoundariesRejectConflictsAndUnsupportedRowsAtBothLevels 유지 원문 검사 body 및 assertion 동일. a8f827d53efc01de6f80689eaf293ddb96b5915e6b4ab8bcc73c1c1035a09da3 a8f827d53efc01de6f80689eaf293ddb96b5915e6b4ab8bcc73c1c1035a09da3 EXPECT_TRUE( MapText(Replace(ThermalDeck(), original, original + equal)).HasValue()) EXPECT_TRUE( MapText(Replace(ThermalDeck(), original, original + equal)).HasValue()) -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.SignedFluxRetainsRowOrderDuplicatesAndConstrainedTargets ThermalDomainMapping.SignedFluxRetainsRowOrderDuplicatesAndConstrainedTargets; assertion 8개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.SignedFluxRetainsRowOrderDuplicatesAndConstrainedTargets 유지 원문 검사 body 및 assertion 동일. 67fcb68684488e6a52db58d6d9d5968ea92bbe01cc27a8d2a942a3f41444bec9 67fcb68684488e6a52db58d6d9d5968ea92bbe01cc27a8d2a942a3f41444bec9 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 5U) | EXPECT_EQ(loads[i].node_index, nodes[i]) | EXPECT_EQ(loads[i].dof, dofs[i]) | EXPECT_DOUBLE_EQ(loads[i].power, powers[i]) | EXPECT_EQ(loads[i].source_order, i) | EXPECT_EQ(loads[1].location.line, loads[2].location.line) | EXPECT_LT(loads[3].location.line, loads[4].location.line) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 5U) | EXPECT_EQ(loads[i].node_index, nodes[i]) | EXPECT_EQ(loads[i].dof, dofs[i]) | EXPECT_DOUBLE_EQ(loads[i].power, powers[i]) | EXPECT_EQ(loads[i].source_order, i) | EXPECT_EQ(loads[1].location.line, loads[2].location.line) | EXPECT_LT(loads[3].location.line, loads[4].location.line) -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.FluxRejectsOptionsRowsAndWrongScopes ThermalDomainMapping.FluxRejectsOptionsRowsAndWrongScopes; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.FluxRejectsOptionsRowsAndWrongScopes 유지 원문 검사 body 및 assertion 동일. 81d3c024c63600240315286bb6e27e326334e1e331df08d355ae3a621a691140 81d3c024c63600240315286bb6e27e326334e1e331df08d355ae3a621a691140 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.TimeControlsUseSharedGridIncludingInputCellBoundaries ThermalDomainMapping.TimeControlsUseSharedGridIncludingInputCellBoundaries; assertion 12개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.TimeControlsUseSharedGridIncludingInputCellBoundaries 유지 원문 검사 body 및 assertion 동일. ef1ee468ae9c492f40c424c0c3deb777f280c6bb9adc1c2fff05a8f58203abb9 ef1ee468ae9c492f40c424c0c3deb777f280c6bb9adc1c2fff05a8f58203abb9 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(step.nominal_increment, item.increment) | EXPECT_EQ(step.time_period, item.period) | ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), item.count) | EXPECT_DOUBLE_EQ(grid.Value().Time(item.count), item.period) | EXPECT_EQ(grid.Value().Delta(item.count), item.last) | ASSERT_TRUE(upper.HasValue()) | EXPECT_EQ(upper.Value().ThermalStep()->maximum_increments, 4294967295U) | ASSERT_TRUE(defaults.HasValue()) | EXPECT_EQ(defaults.Value().ThermalStep()->maximum_increments, 100U) | EXPECT_TRUE(MapText(deck).HasValue()) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(step.nominal_increment, item.increment) | EXPECT_EQ(step.time_period, item.period) | ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), item.count) | EXPECT_DOUBLE_EQ(grid.Value().Time(item.count), item.period) | EXPECT_EQ(grid.Value().Delta(item.count), item.last) | ASSERT_TRUE(upper.HasValue()) | EXPECT_EQ(upper.Value().ThermalStep()->maximum_increments, 4294967295U) | ASSERT_TRUE(defaults.HasValue()) | EXPECT_EQ(defaults.Value().ThermalStep()->maximum_increments, 100U) | EXPECT_TRUE(MapText(deck).HasValue()) -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsInvalidTimeAndMixedProceduresInEitherOrder ThermalDomainMapping.RejectsInvalidTimeAndMixedProceduresInEitherOrder; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsInvalidTimeAndMixedProceduresInEitherOrder 유지 원문 검사 body 및 assertion 동일. 5b1320ef7da28a420e69f4a16c2ee726c95f57abeeb08cb2f1b5442cead6914c 5b1320ef7da28a420e69f4a16c2ee726c95f57abeeb08cb2f1b5442cead6914c 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ThermalMaterialAndSourceProvenanceArePreserved ThermalDomainMapping.ThermalMaterialAndSourceProvenanceArePreserved; assertion 20개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ThermalMaterialAndSourceProvenanceArePreserved 유지 원문 검사 body 및 assertion 동일. a83d5e4753e50f897bd60b99b3825dd7ac3d14d1af14ed384a814d45662478b6 a83d5e4753e50f897bd60b99b3825dd7ac3d14d1af14ed384a814d45662478b6 "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalMaterials().Size(), 2U) | ASSERT_EQ(domain.ThermalSections().size(), 1U) | EXPECT_EQ(section.material_index, 1U) | EXPECT_EQ(section.name, ""E"") | EXPECT_EQ(section.source_id.source_label_text, ""E"") | EXPECT_EQ(section.location.file, input.Path()) | EXPECT_EQ(section.location.line, LineOf(deck, ""*Shell Section"")) | EXPECT_DOUBLE_EQ(section.thickness, .5) | EXPECT_EQ(material.Name(), ""M"") | EXPECT_DOUBLE_EQ(material.Conductivity(), 54.) | EXPECT_DOUBLE_EQ(material.Density(), 7850.) | EXPECT_DOUBLE_EQ(material.SpecificHeat(), 460.) | EXPECT_EQ(material.Location().line, LineOf(deck, ""*Material, name=M"")) | EXPECT_EQ(domain.ThermalElements()[0].SourceId().instance_name, ""I"") | EXPECT_EQ(domain.ThermalElements()[0].SourceId().source_label, 1) | EXPECT_EQ(domain.ThermalStep()->name, ""Heat"") | EXPECT_EQ(domain.ThermalStep()->location.file, input.Path()) | EXPECT_EQ(domain.ThermalStep()->location.line, LineOf(deck, ""*Step""))" "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalMaterials().Size(), 2U) | ASSERT_EQ(domain.ThermalSections().size(), 1U) | EXPECT_EQ(section.material_index, 1U) | EXPECT_EQ(section.name, ""E"") | EXPECT_EQ(section.source_id.source_label_text, ""E"") | EXPECT_EQ(section.location.file, input.Path()) | EXPECT_EQ(section.location.line, LineOf(deck, ""*Shell Section"")) | EXPECT_DOUBLE_EQ(section.thickness, .5) | EXPECT_EQ(material.Name(), ""M"") | EXPECT_DOUBLE_EQ(material.Conductivity(), 54.) | EXPECT_DOUBLE_EQ(material.Density(), 7850.) | EXPECT_DOUBLE_EQ(material.SpecificHeat(), 460.) | EXPECT_EQ(material.Location().line, LineOf(deck, ""*Material, name=M"")) | EXPECT_EQ(domain.ThermalElements()[0].SourceId().instance_name, ""I"") | EXPECT_EQ(domain.ThermalElements()[0].SourceId().source_label, 1) | EXPECT_EQ(domain.ThermalStep()->name, ""Heat"") | EXPECT_EQ(domain.ThermalStep()->location.file, input.Path()) | EXPECT_EQ(domain.ThermalStep()->location.line, LineOf(deck, ""*Step""))" -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.FiniteThermalScalarsPreserveSubnormalAndSignedValues ThermalDomainMapping.FiniteThermalScalarsPreserveSubnormalAndSignedValues; assertion 9개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.FiniteThermalScalarsPreserveSubnormalAndSignedValues 유지 원문 검사 body 및 assertion 동일. 3a8d71661b54b80493cecf844c9354c0030c40b2616bd05a29aa13346381261d 3a8d71661b54b80493cecf844c9354c0030c40b2616bd05a29aa13346381261d ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.ThermalMaterials()[0].Conductivity(), tiny) | EXPECT_EQ(domain.ThermalMaterials()[0].Density(), tiny) | EXPECT_EQ(domain.ThermalMaterials()[0].SpecificHeat(), tiny) | EXPECT_EQ(domain.ThermalSections()[0].thickness, tiny) | EXPECT_EQ(domain.ThermalInitialConditions()[0].station_values[4], -tiny) | EXPECT_EQ(domain.ThermalStep()->Boundaries()[0].value, -tiny) | EXPECT_EQ(domain.ThermalStep()->Loads()[0].power, -tiny) | ASSERT_TRUE(result.HasValue()) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.ThermalMaterials()[0].Conductivity(), tiny) | EXPECT_EQ(domain.ThermalMaterials()[0].Density(), tiny) | EXPECT_EQ(domain.ThermalMaterials()[0].SpecificHeat(), tiny) | EXPECT_EQ(domain.ThermalSections()[0].thickness, tiny) | EXPECT_EQ(domain.ThermalInitialConditions()[0].station_values[4], -tiny) | EXPECT_EQ(domain.ThermalStep()->Boundaries()[0].value, -tiny) | EXPECT_EQ(domain.ThermalStep()->Loads()[0].power, -tiny) | ASSERT_TRUE(result.HasValue()) -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ThermalSetAndSurfaceDuplicatesExpandOnce ThermalDomainMapping.ThermalSetAndSurfaceDuplicatesExpandOnce; assertion 5개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ThermalSetAndSurfaceDuplicatesExpandOnce 유지 원문 검사 body 및 assertion 동일. 70f6a3c60352f7322e1271a4458f03823deec7ac49e85cd7ff385d20de9f3c30 70f6a3c60352f7322e1271a4458f03823deec7ac49e85cd7ff385d20de9f3c30 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().ThermalElements().Size(), 1U) | ASSERT_EQ(result.Value().ElementSurfaces().size(), 1U) | EXPECT_EQ(result.Value().ElementSurfaces()[0].facets.size(), 1U) | EXPECT_EQ(result.Value().Warnings().size(), 1U) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().ThermalElements().Size(), 1U) | ASSERT_EQ(result.Value().ElementSurfaces().size(), 1U) | EXPECT_EQ(result.Value().ElementSurfaces()[0].facets.size(), 1U) | EXPECT_EQ(result.Value().Warnings().size(), 1U) -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.DeferredFailuresRetainExactInputLocationAndIdentity ThermalDomainMapping.DeferredFailuresRetainExactInputLocationAndIdentity; assertion 9개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.DeferredFailuresRetainExactInputLocationAndIdentity 유지 원문 검사 body 및 assertion 동일. 01f444fd4378662acd9566174387017dd3939056ee5ec7901884183c67c6900a 01f444fd4378662acd9566174387017dd3939056ee5ec7901884183c67c6900a "ASSERT_TRUE(parsed.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(diagnostic.location.file, input.Path()) | EXPECT_EQ(diagnostic.location.line, LineOf(deck, ""1., 100."")) | EXPECT_EQ(diagnostic.keyword, ""HEAT TRANSFER"") | EXPECT_EQ(diagnostic.entity_identity, ""Heat"") | ASSERT_FALSE(missing_contact.HasValue()) | EXPECT_EQ(missing_contact.GetStatus().Diagnostics()[0].location.line, 1U) | EXPECT_EQ(missing_contact.GetStatus().Diagnostics()[0].keyword, ""PREPRINT"")" "ASSERT_TRUE(parsed.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(diagnostic.location.file, input.Path()) | EXPECT_EQ(diagnostic.location.line, LineOf(deck, ""1., 100."")) | EXPECT_EQ(diagnostic.keyword, ""HEAT TRANSFER"") | EXPECT_EQ(diagnostic.entity_identity, ""Heat"") | ASSERT_FALSE(missing_contact.HasValue()) | EXPECT_EQ(missing_contact.GetStatus().Diagnostics()[0].location.line, 1U) | EXPECT_EQ(missing_contact.GetStatus().Diagnostics()[0].keyword, ""PREPRINT"")" -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsMixedElementsAndWrongThermalMaterialScopes ThermalDomainMapping.RejectsMixedElementsAndWrongThermalMaterialScopes; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsMixedElementsAndWrongThermalMaterialScopes 유지 원문 검사 body 및 assertion 동일. ff984f852aeb3c53c270694ea7e4eaa2015891728d1e0a86260abf39206b5c92 ff984f852aeb3c53c270694ea7e4eaa2015891728d1e0a86260abf39206b5c92 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetResolvesSectionCaseInsensitively ThermalDomainMapping.InlineElementSetResolvesSectionCaseInsensitively; assertion 12개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetResolvesSectionCaseInsensitively 유지 원문 검사 body 및 assertion 동일. 11a43f66380de877c7ff381c789e0b363e357811dff150b5bd5e0b5d0fa75644 11a43f66380de877c7ff381c789e0b363e357811dff150b5bd5e0b5d0fa75644 "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ElementSets().size(), 1U) | EXPECT_EQ(set.name, ""inlineShells"") | EXPECT_EQ(set.instance_name, ""I"") | EXPECT_EQ(set.element_indices, std::vector{0U}) | EXPECT_EQ(set.location.file, input.Path()) | EXPECT_EQ(set.location.line, LineOf(deck, ""*Element"")) | ASSERT_EQ(domain.ThermalElements().Size(), 1U) | EXPECT_EQ(domain.ThermalElements()[0].ThermalSectionIndex(), 0U) | EXPECT_EQ(domain.ThermalSections()[0].name, ""INLINESHELLS"") | EXPECT_EQ(domain.ThermalSections()[0].location.line, LineOf(deck, ""*Shell Section""))" "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ElementSets().size(), 1U) | EXPECT_EQ(set.name, ""inlineShells"") | EXPECT_EQ(set.instance_name, ""I"") | EXPECT_EQ(set.element_indices, std::vector{0U}) | EXPECT_EQ(set.location.file, input.Path()) | EXPECT_EQ(set.location.line, LineOf(deck, ""*Element"")) | ASSERT_EQ(domain.ThermalElements().Size(), 1U) | EXPECT_EQ(domain.ThermalElements()[0].ThermalSectionIndex(), 0U) | EXPECT_EQ(domain.ThermalSections()[0].name, ""INLINESHELLS"") | EXPECT_EQ(domain.ThermalSections()[0].location.line, LineOf(deck, ""*Shell Section""))" -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetPreservesElementRowOrder ThermalDomainMapping.InlineElementSetPreservesElementRowOrder; assertion 8개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetPreservesElementRowOrder 유지 원문 검사 body 및 assertion 동일. 3f5d500fe86f7405086319ff4905bc60894fb8d080af74f6df1f3c7a3b4aa299 3f5d500fe86f7405086319ff4905bc60894fb8d080af74f6df1f3c7a3b4aa299 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ElementSets().size(), 1U) | ASSERT_EQ(domain.ElementSets()[0].element_indices.size(), 2U) | EXPECT_EQ(domain.ElementSets()[0].element_indices, (std::vector{0U, 1U})) | EXPECT_EQ(domain.ThermalElements()[0].SourceId().source_label, 7) | EXPECT_EQ(domain.ThermalElements()[1].SourceId().source_label, 3) | EXPECT_EQ(domain.ThermalElements()[0].ThermalSectionIndex(), 0U) | EXPECT_EQ(domain.ThermalElements()[1].ThermalSectionIndex(), 0U) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ElementSets().size(), 1U) | ASSERT_EQ(domain.ElementSets()[0].element_indices.size(), 2U) | EXPECT_EQ(domain.ElementSets()[0].element_indices, (std::vector{0U, 1U})) | EXPECT_EQ(domain.ThermalElements()[0].SourceId().source_label, 7) | EXPECT_EQ(domain.ThermalElements()[1].SourceId().source_label, 3) | EXPECT_EQ(domain.ThermalElements()[0].ThermalSectionIndex(), 0U) | EXPECT_EQ(domain.ThermalElements()[1].ThermalSectionIndex(), 0U) -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetRejectsInvalidAndDuplicateDefinitions ThermalDomainMapping.InlineElementSetRejectsInvalidAndDuplicateDefinitions; assertion 3개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetRejectsInvalidAndDuplicateDefinitions 유지 원문 검사 body 및 assertion 동일. 2b667a74ce81cfa3de66ebbe8049794f9416f01506fae6df68dc3d3e97ea91d1 2b667a74ce81cfa3de66ebbe8049794f9416f01506fae6df68dc3d3e97ea91d1 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""ELEMENT"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, LineOf(deck, ""*Element""))" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""ELEMENT"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, LineOf(deck, ""*Element""))" -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsBeamSectionAndBeamOnlyChildrenAtTheirSource ThermalDomainMapping.RejectsBeamSectionAndBeamOnlyChildrenAtTheirSource; assertion 3개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsBeamSectionAndBeamOnlyChildrenAtTheirSource 유지 원문 검사 body 및 assertion 동일. d2f88d94560f7a9f695eebc3563b633cb0e076be17328f2fbc56c6793fb58c22 d2f88d94560f7a9f695eebc3563b633cb0e076be17328f2fbc56c6793fb58c22 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""BEAM GENERAL SECTION"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, LineOf(deck, ""*Beam General Section""))" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""BEAM GENERAL SECTION"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, LineOf(deck, ""*Beam General Section""))" -Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsMalformedDs4ConnectivityAndElementOptions ThermalDomainMapping.RejectsMalformedDs4ConnectivityAndElementOptions; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsMalformedDs4ConnectivityAndElementOptions 유지 원문 검사 body 및 assertion 동일. efab1ebde5819473f0bd8e7adcbdc08d2be96827dca23ef798d1a485c709d008 efab1ebde5819473f0bd8e7adcbdc08d2be96827dca23ef798d1a485c709d008 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/thermal_domain_test.cpp support@1-146 helper/oracle/fixture/include/static assertion 구간: TemporaryInput, MapText, ThermalDeck, Replace, LineOf, ExpectRejected, Number tests/unit/io/abaqus/thermal_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9791c2574febe33443dffbd2e64441a7c8c962fccb165f678b39cc7d550b2a3e 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/abaqus/thermal_domain_test.cpp support@1049-1050 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/thermal_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5d309a1b119015721f17821d48e950cf534158a32c914e89a799118380647c7f 55a2e65c40382b393210d36625666ce014008eaf3cbfbe9610a6dfaf0f840d11 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.RejectsDefaultStateBeforeCreatingOutput DynamicHdf5ResultsWriter.RejectsDefaultStateBeforeCreatingOutput; assertion 5개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.RejectsDefaultStateBeforeCreatingOutput 유지 원문 검사 body 및 assertion 동일. 2b67a7e7a070056ecb65aa9297b70593d65c453c4475315d2cff3fe0018e5846 2b67a7e7a070056ecb65aa9297b70593d65c453c4475315d2cff3fe0018e5846 "ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-output-schema"") | EXPECT_FALSE(std::filesystem::exists(output.Path()))" "ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-output-schema"") | EXPECT_FALSE(std::filesystem::exists(output.Path()))" -Dev tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.SeparatesReducedFilterCombinationFromLegacyDriver DynamicHdf5ResultsWriter.SeparatesReducedFilterCombinationFromLegacyDriver; assertion 8개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.SeparatesReducedFilterCombinationFromLegacyDriver 유지 원문 검사 body 및 assertion 동일. 6e1f7161506bb30dec1b6476fb08a144bf4ad5451198473973be60597f2e2740 6e1f7161506bb30dec1b6476fb08a144bf4ad5451198473973be60597f2e2740 "ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE(writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(ReadAttribute(metadata.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 2U) | EXPECT_EQ(ReadString(metadata.Get(), ""time_integration_formulation""), ""reduced-coordinate-HHT-with-physical-rate-reconstruction"") | EXPECT_EQ(ReadAttribute(auxiliary.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 2U) | EXPECT_EQ(ReadString(auxiliary.Get(), ""quantity_semantics""), ""full-chart-HHT-filter-combination-not-predictor-driver"") | EXPECT_EQ(ReadString(physical.Get(), ""quantity_semantics""), ""physical-endpoint-chart-acceleration"")" "ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE(writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(ReadAttribute(metadata.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 2U) | EXPECT_EQ(ReadString(metadata.Get(), ""time_integration_formulation""), ""reduced-coordinate-HHT-with-physical-rate-reconstruction"") | EXPECT_EQ(ReadAttribute(auxiliary.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 2U) | EXPECT_EQ(ReadString(auxiliary.Get(), ""quantity_semantics""), ""full-chart-HHT-filter-combination-not-predictor-driver"") | EXPECT_EQ(ReadString(physical.Get(), ""quantity_semantics""), ""physical-endpoint-chart-acceleration"")" -Dev tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.WritesCompletePhysicalClampedHistoryAndSchema DynamicHdf5ResultsWriter.WritesCompletePhysicalClampedHistoryAndSchema; assertion 42개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.WritesCompletePhysicalClampedHistoryAndSchema 유지 원문 검사 body 및 assertion 동일. 15b4e67c491410f17a9b661b200e35a71e79de2db81b9007d037a8d82986bb60 15b4e67c491410f17a9b661b200e35a71e79de2db81b9007d037a8d82986bb60 "ASSERT_TRUE(status.IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(ReadString(metadata.Get(), ""feature_id""), ""hht-implicit-dynamics"") | EXPECT_EQ(ReadString(metadata.Get(), ""analysis_procedure""), ""hht-implicit-dynamics"") | EXPECT_EQ(ReadString(metadata.Get(), ""source_step_name""), ""Transient Load"") | EXPECT_EQ(ReadString(metadata.Get(), ""mass_formulation""), ""nodal-lumped-kinetic"") | EXPECT_EQ(ReadString(metadata.Get(), ""acceleration_convention""), ""physical-endpoint-and-auxiliary-separated"") | EXPECT_EQ(ReadString(metadata.Get(), ""initial_state""), ""zero-q-v-step-load-0+"") | EXPECT_EQ(ReadString(metadata.Get(), ""unit_system_label""), ""consistent-input-units"") | EXPECT_EQ(ReadAttribute(metadata.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 1U) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""alpha"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), -0.05) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""beta"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), 0.275625) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""gamma"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), 0.55) | ASSERT_GE(H5Dread(density.Get(), density_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &density_row), 0) | EXPECT_EQ(density_row.id, 0U) | EXPECT_DOUBLE_EQ(density_row.rho, 2.0) | EXPECT_GT(H5Tequal(mask_type.Get(), H5T_STD_U8LE), 0) | ASSERT_GE(H5Dread(mask.Get(), H5T_NATIVE_UINT8, H5S_ALL, H5S_ALL, H5P_DEFAULT, constraints.data()), 0) | EXPECT_EQ(value, 1U) | EXPECT_EQ(ReadDoubles(file.Get(), ""/model/prescribed_displacement"", {4U, 6U}), std::vector(24U, 0.0)) | EXPECT_EQ(H5Lexists(file.Get(), ""/model/prescribed_displacement_start"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/model/prescribed_displacement_target"", H5P_DEFAULT), 0) | EXPECT_EQ(ReadString(dataset.Get(), ""component_names""), expected.components) | EXPECT_FALSE( ReadString(dataset.Get(), ""component_unit_dimensions"").empty()) | EXPECT_FALSE(ReadString(dataset.Get(), ""coordinate_system"").empty()) | EXPECT_FALSE(ReadString(dataset.Get(), ""location"").empty()) | EXPECT_EQ(ReadString(dataset.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadString(dataset.Get(), ""source_step_name""), ""Transient Load"") | EXPECT_EQ(ReadAttribute(dataset.Get(), ""frame_index"", H5T_STD_U64LE, H5T_NATIVE_UINT64), index) | EXPECT_EQ(ReadAttribute(dataset.Get(), ""increment_index"", H5T_STD_U64LE, H5T_NATIVE_UINT64), index) | EXPECT_EQ(ReadAttribute(dataset.Get(), ""is_initial"", H5T_STD_U8LE, H5T_NATIVE_UINT8), index == 0U ? 1U : 0U) | EXPECT_DOUBLE_EQ(ReadAttribute(dataset.Get(), ""time"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), static_cast(index) * 0.25) | EXPECT_EQ(H5Aexists(dataset.Get(), ""load_factor""), 0) | EXPECT_DOUBLE_EQ( values[entry], entry % 9U == 0U || entry % 9U == 4U || entry % 9U == 8U ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ(values[entry], entry % 3U == 2U ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ( values[entry], force ? (leaf == ""nodal/generalized_external_force"" ? 4.0 : -4.0) : 0.0) | EXPECT_EQ(ReadString(stress.Get(), ""source_element_type_dataset""), ""/model/elements.source_element_type"") | EXPECT_EQ(ReadString(stress.Get(), ""midsurface_location_dataset""), ""/model/shell/midsurface_locations"") | EXPECT_EQ(ReadString(stress.Get(), ""section_position_dataset""), ""/model/shell/section_positions"") | EXPECT_EQ(ReadString(stress.Get(), ""local_frame_dataset""), ""/steps/Step-1/frames/2/element/shell/local_frame"") | EXPECT_GE(H5Tget_member_index(diagnostic_type.Get(), ""source_file""), 0) | EXPECT_GE(H5Tget_member_index(diagnostic_type.Get(), ""source_line""), 0)" "ASSERT_TRUE(status.IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(ReadString(metadata.Get(), ""feature_id""), ""hht-implicit-dynamics"") | EXPECT_EQ(ReadString(metadata.Get(), ""analysis_procedure""), ""hht-implicit-dynamics"") | EXPECT_EQ(ReadString(metadata.Get(), ""source_step_name""), ""Transient Load"") | EXPECT_EQ(ReadString(metadata.Get(), ""mass_formulation""), ""nodal-lumped-kinetic"") | EXPECT_EQ(ReadString(metadata.Get(), ""acceleration_convention""), ""physical-endpoint-and-auxiliary-separated"") | EXPECT_EQ(ReadString(metadata.Get(), ""initial_state""), ""zero-q-v-step-load-0+"") | EXPECT_EQ(ReadString(metadata.Get(), ""unit_system_label""), ""consistent-input-units"") | EXPECT_EQ(ReadAttribute(metadata.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 1U) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""alpha"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), -0.05) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""beta"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), 0.275625) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""gamma"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), 0.55) | ASSERT_GE(H5Dread(density.Get(), density_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &density_row), 0) | EXPECT_EQ(density_row.id, 0U) | EXPECT_DOUBLE_EQ(density_row.rho, 2.0) | EXPECT_GT(H5Tequal(mask_type.Get(), H5T_STD_U8LE), 0) | ASSERT_GE(H5Dread(mask.Get(), H5T_NATIVE_UINT8, H5S_ALL, H5S_ALL, H5P_DEFAULT, constraints.data()), 0) | EXPECT_EQ(value, 1U) | EXPECT_EQ(ReadDoubles(file.Get(), ""/model/prescribed_displacement"", {4U, 6U}), std::vector(24U, 0.0)) | EXPECT_EQ(H5Lexists(file.Get(), ""/model/prescribed_displacement_start"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/model/prescribed_displacement_target"", H5P_DEFAULT), 0) | EXPECT_EQ(ReadString(dataset.Get(), ""component_names""), expected.components) | EXPECT_FALSE( ReadString(dataset.Get(), ""component_unit_dimensions"").empty()) | EXPECT_FALSE(ReadString(dataset.Get(), ""coordinate_system"").empty()) | EXPECT_FALSE(ReadString(dataset.Get(), ""location"").empty()) | EXPECT_EQ(ReadString(dataset.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadString(dataset.Get(), ""source_step_name""), ""Transient Load"") | EXPECT_EQ(ReadAttribute(dataset.Get(), ""frame_index"", H5T_STD_U64LE, H5T_NATIVE_UINT64), index) | EXPECT_EQ(ReadAttribute(dataset.Get(), ""increment_index"", H5T_STD_U64LE, H5T_NATIVE_UINT64), index) | EXPECT_EQ(ReadAttribute(dataset.Get(), ""is_initial"", H5T_STD_U8LE, H5T_NATIVE_UINT8), index == 0U ? 1U : 0U) | EXPECT_DOUBLE_EQ(ReadAttribute(dataset.Get(), ""time"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), static_cast(index) * 0.25) | EXPECT_EQ(H5Aexists(dataset.Get(), ""load_factor""), 0) | EXPECT_DOUBLE_EQ( values[entry], entry % 9U == 0U || entry % 9U == 4U || entry % 9U == 8U ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ(values[entry], entry % 3U == 2U ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ( values[entry], force ? (leaf == ""nodal/generalized_external_force"" ? 4.0 : -4.0) : 0.0) | EXPECT_EQ(ReadString(stress.Get(), ""source_element_type_dataset""), ""/model/elements.source_element_type"") | EXPECT_EQ(ReadString(stress.Get(), ""midsurface_location_dataset""), ""/model/shell/midsurface_locations"") | EXPECT_EQ(ReadString(stress.Get(), ""section_position_dataset""), ""/model/shell/section_positions"") | EXPECT_EQ(ReadString(stress.Get(), ""local_frame_dataset""), ""/steps/Step-1/frames/2/element/shell/local_frame"") | EXPECT_GE(H5Tget_member_index(diagnostic_type.Get(), ""source_file""), 0) | EXPECT_GE(H5Tget_member_index(diagnostic_type.Get(), ""source_line""), 0)" -Dev tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.PreservesSeparateSuppliedEndpointAndAuxiliaryEvidence DynamicHdf5ResultsWriter.PreservesSeparateSuppliedEndpointAndAuxiliaryEvidence; assertion 9개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.PreservesSeparateSuppliedEndpointAndAuxiliaryEvidence 유지 원문 검사 body 및 assertion 동일. 0e68645100a4807b87bd6d9a6dba22f0cdbdb588a65f032dfe2eac6c0c11487d 0e68645100a4807b87bd6d9a6dba22f0cdbdb588a65f032dfe2eac6c0c11487d "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/acceleration"", {4U, 6U})[0U], 2.0) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/algorithmic_acceleration"", {4U, 6U})[0U], 3.0) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/generalized_inertia_force"", {4U, 6U})[0U], 5.0) | EXPECT_EQ(ReadDoubles(file.Get(), root + ""global/energy"", {5U}), (std::vector{6.0, 7.0, 8.0, 9.0, 12.0})) | EXPECT_EQ(ReadString(acceleration.Get(), ""rotation_representation""), ""total-rotation-vector-chart"") | EXPECT_EQ(ReadString(acceleration.Get(), ""quantity_semantics""), ""physical-endpoint-chart-acceleration"")" "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/acceleration"", {4U, 6U})[0U], 2.0) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/algorithmic_acceleration"", {4U, 6U})[0U], 3.0) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/generalized_inertia_force"", {4U, 6U})[0U], 5.0) | EXPECT_EQ(ReadDoubles(file.Get(), root + ""global/energy"", {5U}), (std::vector{6.0, 7.0, 8.0, 9.0, 12.0})) | EXPECT_EQ(ReadString(acceleration.Get(), ""rotation_representation""), ""total-rotation-vector-chart"") | EXPECT_EQ(ReadString(acceleration.Get(), ""quantity_semantics""), ""physical-endpoint-chart-acceleration"")" -Dev tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.ConvertsPartialConstraintMomentToSpatialReaction DynamicHdf5ResultsWriter.ConvertsPartialConstraintMomentToSpatialReaction; assertion 9개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.ConvertsPartialConstraintMomentToSpatialReaction 유지 원문 검사 body 및 assertion 동일. f825bce2933be89196cd7c0291501abd4ead25e31d9986f7762c497e92748702 f825bce2933be89196cd7c0291501abd4ead25e31d9986f7762c497e92748702 ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_DOUBLE_EQ(generalized[3U], 5.0) | EXPECT_DOUBLE_EQ(generalized[4U], 0.0) | EXPECT_DOUBLE_EQ(generalized[5U], 0.0) | EXPECT_NEAR(spatial[3U], 5.0 * (1.0 - coefficient * 0.13), 1.0e-14) | EXPECT_NEAR(spatial[4U], 0.75, 1.0e-14) | EXPECT_NEAR(spatial[5U], -0.5, 1.0e-14) ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_DOUBLE_EQ(generalized[3U], 5.0) | EXPECT_DOUBLE_EQ(generalized[4U], 0.0) | EXPECT_DOUBLE_EQ(generalized[5U], 0.0) | EXPECT_NEAR(spatial[3U], 5.0 * (1.0 - coefficient * 0.13), 1.0e-14) | EXPECT_NEAR(spatial[4U], 0.75, 1.0e-14) | EXPECT_NEAR(spatial[5U], -0.5, 1.0e-14) -Dev tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.IncompleteOrMismatchedHistoryPreservesExistingFile DynamicHdf5ResultsWriter.IncompleteOrMismatchedHistoryPreservesExistingFile; assertion 9개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.IncompleteOrMismatchedHistoryPreservesExistingFile 유지 원문 검사 body 및 assertion 동일. ad2c45f94851936a7e87cfed7a14d272db0b75733b9f719eb64af3ce2b90d231 ad2c45f94851936a7e87cfed7a14d272db0b75733b9f719eb64af3ce2b90d231 "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), ""previous-result"") | ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, index)) .IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *other.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), ""previous-result"") | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), valid_bytes)" "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), ""previous-result"") | ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, index)) .IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *other.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), ""previous-result"") | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), valid_bytes)" -Dev tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.FailedAtomicReplacementPreservesPreviousBytes DynamicHdf5ResultsWriter.FailedAtomicReplacementPreservesPreviousBytes; assertion 6개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.FailedAtomicReplacementPreservesPreviousBytes 유지 원문 검사 body 및 assertion 동일. d850c859b3d1569738581059ef0ee47cc054602b036a96ec36581c643c103909 d850c859b3d1569738581059ef0ee47cc054602b036a96ec36581c643c103909 "ASSERT_NE(locked, INVALID_HANDLE_VALUE) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(CloseHandle(locked)) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""hdf5-finalization-failure"") | EXPECT_EQ(ReadBytes(output.Path()), ""locked-previous-result"")" "ASSERT_NE(locked, INVALID_HANDLE_VALUE) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(CloseHandle(locked)) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""hdf5-finalization-failure"") | EXPECT_EQ(ReadBytes(output.Path()), ""locked-previous-result"")" -Dev tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp support@1-254 helper/oracle/fixture/include/static assertion 구간: MakeDefinition, if, Fixture, MakeFixture, MakeFrame, TempFile, Path, CommitHistory, ReadBytes, ReadString, ReadAttribute, ReadDoubles, ExpectCompound tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 703c272cdd720ce3a45edcd79bbc0fc04178d27f236c2b72c3fea95c54ceaf1e 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp support@671-672 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 249f07429c5bb0dd50db784f6be559e15db7c705baa3db44e0591c9c7914d9e3 249f07429c5bb0dd50db784f6be559e15db7c705baa3db44e0591c9c7914d9e3 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp EigenHdf5ResultsWriter.WritesModalSchemaAndRejectsTamperedState EigenHdf5ResultsWriter.WritesModalSchemaAndRejectsTamperedState; assertion 27개 tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp EigenHdf5ResultsWriter.WritesModalSchemaAndRejectsTamperedState 유지 원문 검사 body 및 assertion 동일. 8ff5899d7d3dd0584e34a8b619ece2228a6520e3fee41e10e038d73c57656e93 8ff5899d7d3dd0584e34a8b619ece2228a6520e3fee41e10e038d73c57656e93 "ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(execution.HasValue()) | ASSERT_TRUE(writer.Write(path, domain, state, {}).IsOk()) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/modes"", H5P_DEFAULT), 0) | ASSERT_GE(controls, 0) | ASSERT_GE(H5Dread(controls, H5T_NATIVE_INT64, H5S_ALL, H5S_ALL, H5P_DEFAULT, stored_controls.data()), 0) | EXPECT_EQ(stored_controls[5U], 0) | EXPECT_GE(H5Dclose(controls), 0) | EXPECT_GE(H5Fclose(file), 0) | EXPECT_FALSE(writer.Write(path, domain, candidate, {}).IsOk()) | EXPECT_TRUE(retained == original) | ASSERT_NE(lock, INVALID_HANDLE_VALUE) | EXPECT_NE(CloseHandle(lock), 0) | ASSERT_FALSE(locked_write.IsOk()) | ASSERT_FALSE(locked_write.Diagnostics().empty()) | EXPECT_EQ(locked_write.Diagnostics()[0].code, ""hdf5-finalization-failure"") | EXPECT_EQ(after_failure, original) | ASSERT_TRUE( fesa::hdf5_internal::SelfCheckEigenFile(path, domain, state, {}).IsOk()) | ASSERT_GE(corrupt_file, 0) | ASSERT_GE(nodes, 0) | ASSERT_GE(H5Tinsert(id_type, ""internal_node_id"", 0U, H5T_NATIVE_UINT64), 0) | ASSERT_GE(H5Dwrite(nodes, id_type, H5S_ALL, H5S_ALL, H5P_DEFAULT, duplicate_ids.data()), 0) | EXPECT_GE(H5Tclose(id_type), 0) | EXPECT_GE(H5Dclose(nodes), 0) | EXPECT_GE(H5Fclose(corrupt_file), 0) | EXPECT_FALSE( fesa::hdf5_internal::SelfCheckEigenFile(path, domain, state, {}).IsOk())" "ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(execution.HasValue()) | ASSERT_TRUE(writer.Write(path, domain, state, {}).IsOk()) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/modes"", H5P_DEFAULT), 0) | ASSERT_GE(controls, 0) | ASSERT_GE(H5Dread(controls, H5T_NATIVE_INT64, H5S_ALL, H5S_ALL, H5P_DEFAULT, stored_controls.data()), 0) | EXPECT_EQ(stored_controls[5U], 0) | EXPECT_GE(H5Dclose(controls), 0) | EXPECT_GE(H5Fclose(file), 0) | EXPECT_FALSE(writer.Write(path, domain, candidate, {}).IsOk()) | EXPECT_TRUE(retained == original) | ASSERT_NE(lock, INVALID_HANDLE_VALUE) | EXPECT_NE(CloseHandle(lock), 0) | ASSERT_FALSE(locked_write.IsOk()) | ASSERT_FALSE(locked_write.Diagnostics().empty()) | EXPECT_EQ(locked_write.Diagnostics()[0].code, ""hdf5-finalization-failure"") | EXPECT_EQ(after_failure, original) | ASSERT_TRUE( fesa::hdf5_internal::SelfCheckEigenFile(path, domain, state, {}).IsOk()) | ASSERT_GE(corrupt_file, 0) | ASSERT_GE(nodes, 0) | ASSERT_GE(H5Tinsert(id_type, ""internal_node_id"", 0U, H5T_NATIVE_UINT64), 0) | ASSERT_GE(H5Dwrite(nodes, id_type, H5S_ALL, H5S_ALL, H5P_DEFAULT, duplicate_ids.data()), 0) | EXPECT_GE(H5Tclose(id_type), 0) | EXPECT_GE(H5Dclose(nodes), 0) | EXPECT_GE(H5Fclose(corrupt_file), 0) | EXPECT_FALSE( fesa::hdf5_internal::SelfCheckEigenFile(path, domain, state, {}).IsOk())" -Dev tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp support@1-66 helper/oracle/fixture/include/static assertion 구간: Definition tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b3554f56791ac66395cfa9a19281f09965b9ad9dbf29a3e9976828778334b35b 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp support@154-155 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 10개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. dd680025af1f1e85cfd08e97d2dad7db8c857238d3b73cb23d824690670f58c3 dd680025af1f1e85cfd08e97d2dad7db8c857238d3b73cb23d824690670f58c3 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactSchemaShapesAttributesAndIdentity Hdf5ResultsWriter.WritesExactSchemaShapesAttributesAndIdentity; assertion 60개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactSchemaShapesAttributesAndIdentity 유지 원문 검사 body 및 assertion 동일. 8da4eeff5bd49a698da035e0516b426d30471db8c183ee6c78329f2a02879880 8da4eeff5bd49a698da035e0516b426d30471db8c183ee6c78329f2a02879880 "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | EXPECT_GT(H5Lexists(file.Get(), path, H5P_DEFAULT), 0) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""linear-static-3d-euler-beam"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""solver_version""), std::string{fesa::SolverVersion()}) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""source_input_identity""), ""path="" + normalized_source + "";content_identity=fnv1a64:0123456789abcdef"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""unit_system_label""), ""user-consistent-unspecified"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""coordinate_convention""), ""global-cartesian; beam-local=(t,n1,t-cross-n1)"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""element_formulation""), ""B33-3D-Euler-Bernoulli"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""frame_index""), 0U) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/nodes""), std::vector({2U})) | EXPECT_EQ(ReadStringAttribute(nodes_dataset.Get(), ""coordinate_system""), ""global-cartesian"") | EXPECT_EQ(ReadStringAttribute(nodes_dataset.Get(), ""units_label""), ""length"") | ASSERT_EQ(nodes.size(), 2U) | EXPECT_EQ(nodes[0U].internal_node_id, 0U) | EXPECT_STREQ(nodes[0U].instance_name, u8""Beam-\u03b1"") | EXPECT_STREQ(nodes[0U].source_label, ""101"") | EXPECT_DOUBLE_EQ(nodes[1U].coordinates[0U], 3.0) | EXPECT_DOUBLE_EQ(nodes[1U].coordinates[1U], 4.0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/elements""), std::vector({1U})) | EXPECT_EQ(ReadStringAttribute(elements_dataset.Get(), ""formulation""), ""B33-3D-Euler-Bernoulli"") | ASSERT_EQ(displacement.size(), 12U) | EXPECT_DOUBLE_EQ(displacement.front(), 0.25) | EXPECT_DOUBLE_EQ(displacement.back(), 11.25) | ASSERT_EQ(reaction.size(), 12U) | EXPECT_DOUBLE_EQ(reaction.front(), 100.0) | EXPECT_DOUBLE_EQ(reaction.back(), 111.0) | ASSERT_EQ(end_force.size(), 12U) | EXPECT_DOUBLE_EQ(end_force.front(), 1.0) | EXPECT_DOUBLE_EQ(end_force.back(), 12.0) | ASSERT_EQ(section_resultant.size(), 8U) | EXPECT_DOUBLE_EQ(section_resultant.front(), 11.0) | EXPECT_DOUBLE_EQ(section_resultant.back(), 18.0) | ASSERT_EQ(generalized_strain.size(), 8U) | EXPECT_DOUBLE_EQ(generalized_strain.front(), 0.01) | EXPECT_DOUBLE_EQ(generalized_strain.back(), 0.08) | ASSERT_EQ(generalized_resultant.size(), 8U) | EXPECT_DOUBLE_EQ(generalized_resultant.front(), 21.0) | EXPECT_DOUBLE_EQ(generalized_resultant.back(), 28.0) | EXPECT_EQ(DatasetDimensions(file.Get(), stress_path), std::vector({4U})) | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""component_names""), ""S11"") | EXPECT_EQ( ReadStringAttribute(stress_dataset.Get(), ""component_unit_dimensions""), ""force/length^2"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""coordinate_system""), ""beam-local"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""location""), ""section-point"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadUint64Attribute(stress_dataset.Get(), ""frame_index""), 0U) | ASSERT_EQ(stress_rows.size(), 4U) | EXPECT_EQ(stress_rows[0U].internal_element_id, 0U) | EXPECT_EQ(stress_rows[0U].gauss_point_index, 1U) | EXPECT_EQ(stress_rows[0U].section_point_index, 1U) | EXPECT_DOUBLE_EQ(stress_rows[0U].x1, -0.1) | EXPECT_DOUBLE_EQ(stress_rows[0U].x2, 0.2) | EXPECT_STREQ(stress_rows[0U].source, ""input"") | EXPECT_DOUBLE_EQ(stress_rows[3U].s11, 34.0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({0U})) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/0/element/transverse_shear_stress"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0)" "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | EXPECT_GT(H5Lexists(file.Get(), path, H5P_DEFAULT), 0) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""linear-static-3d-euler-beam"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""solver_version""), std::string{fesa::SolverVersion()}) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""source_input_identity""), ""path="" + normalized_source + "";content_identity=fnv1a64:0123456789abcdef"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""unit_system_label""), ""user-consistent-unspecified"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""coordinate_convention""), ""global-cartesian; beam-local=(t,n1,t-cross-n1)"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""element_formulation""), ""B33-3D-Euler-Bernoulli"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""frame_index""), 0U) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/nodes""), std::vector({2U})) | EXPECT_EQ(ReadStringAttribute(nodes_dataset.Get(), ""coordinate_system""), ""global-cartesian"") | EXPECT_EQ(ReadStringAttribute(nodes_dataset.Get(), ""units_label""), ""length"") | ASSERT_EQ(nodes.size(), 2U) | EXPECT_EQ(nodes[0U].internal_node_id, 0U) | EXPECT_STREQ(nodes[0U].instance_name, u8""Beam-\u03b1"") | EXPECT_STREQ(nodes[0U].source_label, ""101"") | EXPECT_DOUBLE_EQ(nodes[1U].coordinates[0U], 3.0) | EXPECT_DOUBLE_EQ(nodes[1U].coordinates[1U], 4.0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/elements""), std::vector({1U})) | EXPECT_EQ(ReadStringAttribute(elements_dataset.Get(), ""formulation""), ""B33-3D-Euler-Bernoulli"") | ASSERT_EQ(displacement.size(), 12U) | EXPECT_DOUBLE_EQ(displacement.front(), 0.25) | EXPECT_DOUBLE_EQ(displacement.back(), 11.25) | ASSERT_EQ(reaction.size(), 12U) | EXPECT_DOUBLE_EQ(reaction.front(), 100.0) | EXPECT_DOUBLE_EQ(reaction.back(), 111.0) | ASSERT_EQ(end_force.size(), 12U) | EXPECT_DOUBLE_EQ(end_force.front(), 1.0) | EXPECT_DOUBLE_EQ(end_force.back(), 12.0) | ASSERT_EQ(section_resultant.size(), 8U) | EXPECT_DOUBLE_EQ(section_resultant.front(), 11.0) | EXPECT_DOUBLE_EQ(section_resultant.back(), 18.0) | ASSERT_EQ(generalized_strain.size(), 8U) | EXPECT_DOUBLE_EQ(generalized_strain.front(), 0.01) | EXPECT_DOUBLE_EQ(generalized_strain.back(), 0.08) | ASSERT_EQ(generalized_resultant.size(), 8U) | EXPECT_DOUBLE_EQ(generalized_resultant.front(), 21.0) | EXPECT_DOUBLE_EQ(generalized_resultant.back(), 28.0) | EXPECT_EQ(DatasetDimensions(file.Get(), stress_path), std::vector({4U})) | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""component_names""), ""S11"") | EXPECT_EQ( ReadStringAttribute(stress_dataset.Get(), ""component_unit_dimensions""), ""force/length^2"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""coordinate_system""), ""beam-local"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""location""), ""section-point"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadUint64Attribute(stress_dataset.Get(), ""frame_index""), 0U) | ASSERT_EQ(stress_rows.size(), 4U) | EXPECT_EQ(stress_rows[0U].internal_element_id, 0U) | EXPECT_EQ(stress_rows[0U].gauss_point_index, 1U) | EXPECT_EQ(stress_rows[0U].section_point_index, 1U) | EXPECT_DOUBLE_EQ(stress_rows[0U].x1, -0.1) | EXPECT_DOUBLE_EQ(stress_rows[0U].x2, 0.2) | EXPECT_STREQ(stress_rows[0U].source, ""input"") | EXPECT_DOUBLE_EQ(stress_rows[3U].s11, 34.0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({0U})) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/0/element/transverse_shear_stress"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0)" -Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesMandatoryOutputsDespiteOutputRequests Hdf5ResultsWriter.WritesMandatoryOutputsDespiteOutputRequests; assertion 3개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesMandatoryOutputsDespiteOutputRequests 유지 원문 검사 body 및 assertion 동일. cd64b9e679f90b6dc4e5be4798c43fa4c11a4fb720cb281b1fe45e0207702f39 cd64b9e679f90b6dc4e5be4798c43fa4c11a4fb720cb281b1fe45e0207702f39 "ASSERT_TRUE( writer.Write(output, *fixture.domain, *fixture.state, {ignored_request}) .IsOk()) | EXPECT_GT(H5Lexists(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({1U}))" "ASSERT_TRUE( writer.Write(output, *fixture.domain, *fixture.state, {ignored_request}) .IsOk()) | EXPECT_GT(H5Lexists(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({1U}))" -Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesWarningsAndDefaultCentroid Hdf5ResultsWriter.WritesWarningsAndDefaultCentroid; assertion 18개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesWarningsAndDefaultCentroid 유지 원문 검사 body 및 assertion 동일. cab1bac6c24b113ae4bf36c8870f5e9ed01bccb51403e05830a7287e63b2acbd cab1bac6c24b113ae4bf36c8870f5e9ed01bccb51403e05830a7287e63b2acbd "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, diagnostics) .IsOk()) | ASSERT_EQ(stress_rows.size(), 2U) | EXPECT_EQ(stress_rows[index].internal_element_id, 0U) | EXPECT_EQ(stress_rows[index].gauss_point_index, index + 1U) | EXPECT_EQ(stress_rows[index].section_point_index, 0U) | EXPECT_DOUBLE_EQ(stress_rows[index].x1, 0.0) | EXPECT_DOUBLE_EQ(stress_rows[index].x2, 0.0) | EXPECT_STREQ(stress_rows[index].source, ""fesa-default"") | ASSERT_EQ(rows.size(), 2U) | EXPECT_STREQ(rows[0U].severity, ""warning"") | EXPECT_STREQ(rows[0U].code, ""ignored-keyword"") | EXPECT_STREQ(rows[0U].file, std::filesystem::absolute(fixture.domain->SourcePath()) .lexically_normal() .generic_u8string() .c_str()) | EXPECT_EQ(rows[0U].line, 20U) | EXPECT_STREQ(rows[0U].keyword, ""*PREPRINT"") | EXPECT_STREQ(rows[0U].entity_identity, """") | EXPECT_STREQ(rows[0U].message, ""Ignored generator control."") | EXPECT_STREQ(rows[1U].code, ""ignored-output-request"") | EXPECT_EQ(rows[1U].line, 80U)" "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, diagnostics) .IsOk()) | ASSERT_EQ(stress_rows.size(), 2U) | EXPECT_EQ(stress_rows[index].internal_element_id, 0U) | EXPECT_EQ(stress_rows[index].gauss_point_index, index + 1U) | EXPECT_EQ(stress_rows[index].section_point_index, 0U) | EXPECT_DOUBLE_EQ(stress_rows[index].x1, 0.0) | EXPECT_DOUBLE_EQ(stress_rows[index].x2, 0.0) | EXPECT_STREQ(stress_rows[index].source, ""fesa-default"") | ASSERT_EQ(rows.size(), 2U) | EXPECT_STREQ(rows[0U].severity, ""warning"") | EXPECT_STREQ(rows[0U].code, ""ignored-keyword"") | EXPECT_STREQ(rows[0U].file, std::filesystem::absolute(fixture.domain->SourcePath()) .lexically_normal() .generic_u8string() .c_str()) | EXPECT_EQ(rows[0U].line, 20U) | EXPECT_STREQ(rows[0U].keyword, ""*PREPRINT"") | EXPECT_STREQ(rows[0U].entity_identity, """") | EXPECT_STREQ(rows[0U].message, ""Ignored generator control."") | EXPECT_STREQ(rows[1U].code, ""ignored-output-request"") | EXPECT_EQ(rows[1U].line, 80U)" -Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.FailureLeavesNoPartialAndPreservesExistingFinal Hdf5ResultsWriter.FailureLeavesNoPartialAndPreservesExistingFinal; assertion 5개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.FailureLeavesNoPartialAndPreservesExistingFinal 유지 원문 검사 body 및 assertion 동일. 5ca48e4c84abdb788e3184610cced5edc5d94b89ed3b8a71a615cb730cf33714 5ca48e4c84abdb788e3184610cced5edc5d94b89ed3b8a71a615cb730cf33714 EXPECT_FALSE(std::filesystem::exists(invalid_output)) | EXPECT_EQ(EntryCount(directory.Path()), 0U) | ASSERT_NE(lock.Get(), INVALID_HANDLE_VALUE) | EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_EQ(EntryCount(directory.Path()), 1U) EXPECT_FALSE(std::filesystem::exists(invalid_output)) | EXPECT_EQ(EntryCount(directory.Path()), 0U) | ASSERT_NE(lock.Get(), INVALID_HANDLE_VALUE) | EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_EQ(EntryCount(directory.Path()), 1U) -Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.SuccessfullyReplacesExistingFinal Hdf5ResultsWriter.SuccessfullyReplacesExistingFinal; assertion 5개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.SuccessfullyReplacesExistingFinal 유지 원문 검사 body 및 assertion 동일. c2f57aee2946c919919c83b75b15b17dc5ddf8adc7d3ea8d634b0f2274fa53b8 c2f57aee2946c919919c83b75b15b17dc5ddf8adc7d3ea8d634b0f2274fa53b8 "ASSERT_TRUE(writer.Write(final, *fixture.domain, *fixture.state, {}).IsOk()) | EXPECT_GT(H5Fis_hdf5(final.string().c_str()), 0) | EXPECT_EQ(EntryCount(directory.Path()), 1U) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U)" "ASSERT_TRUE(writer.Write(final, *fixture.domain, *fixture.state, {}).IsOk()) | EXPECT_GT(H5Fis_hdf5(final.string().c_str()), 0) | EXPECT_EQ(EntryCount(directory.Path()), 1U) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U)" -Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactShellMetadataAndModelIdentity Hdf5ResultsWriter.WritesExactShellMetadataAndModelIdentity; assertion 30개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactShellMetadataAndModelIdentity 유지 원문 검사 body 및 assertion 동일. 6b486491444d4a79d8e2201511ac2a539fc98503320507074eef5e67e7aee5d6 6b486491444d4a79d8e2201511ac2a539fc98503320507074eef5e67e7aee5d6 "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""linear-static-mitc4-shell"") | EXPECT_EQ( ReadStringAttribute(metadata.Get(), ""coordinate_convention""), ""global-cartesian; shell-local=(e1,e2,e3); positive-thickness=+zeta"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""internal_formulation""), ""FESA-MITC4"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""integration_rule""), ""2x2x2-gauss; mitc4-edge-midpoint-shear"") | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/elements""), std::vector({1U})) | EXPECT_EQ(ReadStringAttribute(elements.Get(), ""formulation""), ""FESA-MITC4"") | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/shell/nodal_director""), std::vector({4U, 3U})) | EXPECT_EQ(ReadDoubleDataset(file.Get(), ""/model/shell/nodal_director""), expected_directors) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/shell/nodal_frame""), std::vector({4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/nodal_constraint_mask""), std::vector({4U, 6U})) | ASSERT_EQ(mask.size(), 24U) | EXPECT_EQ(mask[0U], 1U) | EXPECT_EQ(mask[1U], 1U) | EXPECT_EQ(mask[2U], 1U) | EXPECT_EQ(mask[3U], 1U) | EXPECT_EQ(mask[4U], 0U) | EXPECT_EQ(mask[5U], 0U) | ASSERT_EQ(prescribed.size(), 24U) | EXPECT_DOUBLE_EQ(prescribed[0U], 0.0) | EXPECT_DOUBLE_EQ(prescribed[3U], 0.125) | EXPECT_DOUBLE_EQ(prescribed[4U], 0.0) | EXPECT_EQ(ReadDoubleDataset(file.Get(), ""/model/shell/section_positions""), std::vector({-1.0, 0.0, 1.0})) | ASSERT_EQ(locations.size(), 8U) | EXPECT_DOUBLE_EQ(locations[0U], -gauss) | EXPECT_DOUBLE_EQ(locations[1U], -gauss) | EXPECT_DOUBLE_EQ(locations[6U], -gauss) | EXPECT_DOUBLE_EQ(locations[7U], gauss)" "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""linear-static-mitc4-shell"") | EXPECT_EQ( ReadStringAttribute(metadata.Get(), ""coordinate_convention""), ""global-cartesian; shell-local=(e1,e2,e3); positive-thickness=+zeta"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""internal_formulation""), ""FESA-MITC4"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""integration_rule""), ""2x2x2-gauss; mitc4-edge-midpoint-shear"") | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/elements""), std::vector({1U})) | EXPECT_EQ(ReadStringAttribute(elements.Get(), ""formulation""), ""FESA-MITC4"") | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/shell/nodal_director""), std::vector({4U, 3U})) | EXPECT_EQ(ReadDoubleDataset(file.Get(), ""/model/shell/nodal_director""), expected_directors) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/shell/nodal_frame""), std::vector({4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/nodal_constraint_mask""), std::vector({4U, 6U})) | ASSERT_EQ(mask.size(), 24U) | EXPECT_EQ(mask[0U], 1U) | EXPECT_EQ(mask[1U], 1U) | EXPECT_EQ(mask[2U], 1U) | EXPECT_EQ(mask[3U], 1U) | EXPECT_EQ(mask[4U], 0U) | EXPECT_EQ(mask[5U], 0U) | ASSERT_EQ(prescribed.size(), 24U) | EXPECT_DOUBLE_EQ(prescribed[0U], 0.0) | EXPECT_DOUBLE_EQ(prescribed[3U], 0.125) | EXPECT_DOUBLE_EQ(prescribed[4U], 0.0) | EXPECT_EQ(ReadDoubleDataset(file.Get(), ""/model/shell/section_positions""), std::vector({-1.0, 0.0, 1.0})) | ASSERT_EQ(locations.size(), 8U) | EXPECT_DOUBLE_EQ(locations[0U], -gauss) | EXPECT_DOUBLE_EQ(locations[1U], -gauss) | EXPECT_DOUBLE_EQ(locations[6U], -gauss) | EXPECT_DOUBLE_EQ(locations[7U], gauss)" -Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactMandatoryShellResultInventory Hdf5ResultsWriter.WritesExactMandatoryShellResultInventory; assertion 9개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactMandatoryShellResultInventory 유지 원문 검사 body 및 assertion 동일. 110d9a70913902d4021933f838872fc49b23964f0923e76a82ff9ca38d147adc 110d9a70913902d4021933f838872fc49b23964f0923e76a82ff9ca38d147adc "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_EQ(strain.size(), 32U) | EXPECT_DOUBLE_EQ(strain.front(), 101.0) | EXPECT_DOUBLE_EQ(strain.back(), 408.0) | ASSERT_EQ(stress.size(), 36U) | EXPECT_DOUBLE_EQ(stress.front(), 121.0) | EXPECT_DOUBLE_EQ(stress.back(), 429.0) | EXPECT_EQ(ReadStringAttribute(metrics.Get(), ""metric_definition_ids""), ""free-residual-l2-over-max-free-force-l2,force-balance-l2-over-"" ""max-force-sum,moment-balance-l2-over-max-moment-sum"") | EXPECT_EQ(ReadStringAttribute(metrics.Get(), ""acceptance_thresholds""), ""1e-10,1e-10,1e-10"")" "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_EQ(strain.size(), 32U) | EXPECT_DOUBLE_EQ(strain.front(), 101.0) | EXPECT_DOUBLE_EQ(strain.back(), 408.0) | ASSERT_EQ(stress.size(), 36U) | EXPECT_DOUBLE_EQ(stress.front(), 121.0) | EXPECT_DOUBLE_EQ(stress.back(), 429.0) | EXPECT_EQ(ReadStringAttribute(metrics.Get(), ""metric_definition_ids""), ""free-residual-l2-over-max-free-force-l2,force-balance-l2-over-"" ""max-force-sum,moment-balance-l2-over-max-moment-sum"") | EXPECT_EQ(ReadStringAttribute(metrics.Get(), ""acceptance_thresholds""), ""1e-10,1e-10,1e-10"")" -Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesShellInventoryDespiteRequestsAndOmitsForbiddenPaths Hdf5ResultsWriter.WritesShellInventoryDespiteRequestsAndOmitsForbiddenPaths; assertion 4개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesShellInventoryDespiteRequestsAndOmitsForbiddenPaths 유지 원문 검사 body 및 assertion 동일. 472f6fc3007fa9ce8532895a218e178e8b6861022881554d0f7b38f6e3eb1d28 472f6fc3007fa9ce8532895a218e178e8b6861022881554d0f7b38f6e3eb1d28 "ASSERT_TRUE( writer.Write(output, *fixture.domain, *fixture.state, {ignored_request}) .IsOk()) | EXPECT_GT(H5Lexists(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), forbidden, H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({1U}))" "ASSERT_TRUE( writer.Write(output, *fixture.domain, *fixture.state, {ignored_request}) .IsOk()) | EXPECT_GT(H5Lexists(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), forbidden, H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({1U}))" -Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.InvalidShellInventoryPreservesExistingFinal Hdf5ResultsWriter.InvalidShellInventoryPreservesExistingFinal; assertion 2개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.InvalidShellInventoryPreservesExistingFinal 유지 원문 검사 body 및 assertion 동일. 28be997b839d00367e036aef28d86d7b31d42f1f6d3b9af82fce26c23380ba3c 28be997b839d00367e036aef28d86d7b31d42f1f6d3b9af82fce26c23380ba3c EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_EQ(EntryCount(directory.Path()), 1U) EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_EQ(EntryCount(directory.Path()), 1U) -Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.Vector3ShellSerializationRejectsNonfiniteWithoutReplacingFinal Hdf5ResultsWriter.Vector3ShellSerializationRejectsNonfiniteWithoutReplacingFinal; assertion 6개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.Vector3ShellSerializationRejectsNonfiniteWithoutReplacingFinal 유지 원문 검사 body 및 assertion 동일. 3c25204bcd546b3fd1ee10dd44c2e215a6dc878502873b1fe0612cc1c92d82e0 3c25204bcd546b3fd1ee10dd44c2e215a6dc878502873b1fe0612cc1c92d82e0 ASSERT_TRUE(writer.Write(final, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_EQ(directors.size(), 12U) | EXPECT_TRUE(director.IsFinite()) | EXPECT_EQ(director, (fesa::Vector3{0.0, 0.0, 1.0})) | EXPECT_EQ(ReadBytes(final), valid_bytes) | EXPECT_EQ(EntryCount(directory.Path()), 1U) ASSERT_TRUE(writer.Write(final, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_EQ(directors.size(), 12U) | EXPECT_TRUE(director.IsFinite()) | EXPECT_EQ(director, (fesa::Vector3{0.0, 0.0, 1.0})) | EXPECT_EQ(ReadBytes(final), valid_bytes) | EXPECT_EQ(EntryCount(directory.Path()), 1U) -Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1-823 helper/oracle/fixture/include/static assertion 구간: Hdf5Handle, if, WinHandle, TempDirectory, WriterFixture, MakeDefinition, MakeFixture, MakeShellDefinition, MakeShellFixture, OpenFile, OpenDataset, DatasetDimensions, ReadDoubleDataset, for, ReadUint8Dataset, ReadStringAttribute, ReadUint64Attribute, ExpectPortableCompoundMember, ExpectCompoundMembers, ExpectCompoundMemberNames, ExpectNumericDataset, MakeUtf8StringType, NodeReadRow, ReadNodeRows, ReclaimNodeRows, ElementReadRow, ReadElementRows, StressReadRow, ReadStressRows, ReclaimStressRows, DiagnosticReadRow, ReadDiagnosticRows, ReclaimDiagnosticRows, ReadBytes, WriteBytes, EntryCount, ExpectOutputFailure tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4ab1135fc0949c1ef197678be93dda782dc8e2d8655cc928fd55eee0d8961e42 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1120-1121 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7d75f7fce7301b112d258ec1b3434016cbb00dc5186e10757a3d53485db1e852 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1203-1204 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6a28c340e155ab8c275c3eb5afa3522b3c3b655448af487e689907f00da8b75a 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1262-1263 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. de735dd985d5499ad7c73f83d71275d6f5a840dbae2b1672b0e2e4008f0d7560 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1301-1302 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e9bcb4f06a58b6240ab792f21d2791ef2d5cd6ed3540f5cbe243c87f41e10575 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1318-1319 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 778e854c4f2ce284558db14ad3b1ce65607a94482da05114089a6c8e96644227 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/hdf5_writer_components_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/io/hdf5/hdf5_writer_components_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cedde4c3b4576ff6568b8dabefbc0ad56bc54ef4d3adbf2c8eb74ad7f7f711e4 cedde4c3b4576ff6568b8dabefbc0ad56bc54ef4d3adbf2c8eb74ad7f7f711e4 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.BuildsStableBackendNeutralBeamDatasetPlans Hdf5WriterComponents.BuildsStableBackendNeutralBeamDatasetPlans; assertion 8개 tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.BuildsStableBackendNeutralBeamDatasetPlans 유지 원문 검사 body 및 assertion 동일. 81b2f1f76a5dcf5bb467f6f4d53431f4e73401023067e1508e3550739a7becc4 81b2f1f76a5dcf5bb467f6f4d53431f4e73401023067e1508e3550739a7becc4 "ASSERT_TRUE(plan_result.HasValue()) | ASSERT_EQ(datasets.size(), 6U) | EXPECT_EQ(datasets[0U].path, ""/steps/Step-1/frames/0/nodal/displacement"") | EXPECT_EQ(datasets[0U].dimensions, std::vector({2U, 6U})) | EXPECT_EQ(datasets[2U].path, ""/steps/Step-1/frames/0/element/end_force_local"") | EXPECT_EQ(datasets[2U].dimensions, std::vector({1U, 2U, 6U})) | EXPECT_EQ(datasets[5U].path, ""/steps/Step-1/frames/0/element/generalized_resultant"") | EXPECT_TRUE(fesa::hdf5_internal::ValidateFiniteInventory(datasets).IsOk())" "ASSERT_TRUE(plan_result.HasValue()) | ASSERT_EQ(datasets.size(), 6U) | EXPECT_EQ(datasets[0U].path, ""/steps/Step-1/frames/0/nodal/displacement"") | EXPECT_EQ(datasets[0U].dimensions, std::vector({2U, 6U})) | EXPECT_EQ(datasets[2U].path, ""/steps/Step-1/frames/0/element/end_force_local"") | EXPECT_EQ(datasets[2U].dimensions, std::vector({1U, 2U, 6U})) | EXPECT_EQ(datasets[5U].path, ""/steps/Step-1/frames/0/element/generalized_resultant"") | EXPECT_TRUE(fesa::hdf5_internal::ValidateFiniteInventory(datasets).IsOk())" -Dev tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.RejectsNonfiniteDatasetPlanInventory Hdf5WriterComponents.RejectsNonfiniteDatasetPlanInventory; assertion 0개 tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.RejectsNonfiniteDatasetPlanInventory 유지 원문 검사 body 및 assertion 동일. 7ffe025ea38838a0b732cf1b6438b5f1ea52e2fa0831d04f9efb98060cb02795 7ffe025ea38838a0b732cf1b6438b5f1ea52e2fa0831d04f9efb98060cb02795 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.SelfCheckFailurePreservesExistingFinalThroughAtomicSeam Hdf5WriterComponents.SelfCheckFailurePreservesExistingFinalThroughAtomicSeam; assertion 4개 tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.SelfCheckFailurePreservesExistingFinalThroughAtomicSeam 유지 원문 검사 body 및 assertion 동일. dfa562386df73584a0987a54a9b5f63293a8ffdc34ac4ffd53924c589ca578e3 dfa562386df73584a0987a54a9b5f63293a8ffdc34ac4ffd53924c589ca578e3 ASSERT_TRUE(std::filesystem::create_directory(directory)) | ASSERT_TRUE(plan_result.HasValue()) | EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_FALSE(std::filesystem::exists(candidate)) ASSERT_TRUE(std::filesystem::create_directory(directory)) | ASSERT_TRUE(plan_result.HasValue()) | EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_FALSE(std::filesystem::exists(candidate)) -Dev tests/unit/io/hdf5/hdf5_writer_components_test.cpp support@1-125 helper/oracle/fixture/include/static assertion 구간: WriterFixture, MakeDefinition, MakeFixture, if, ReadBytes, WriteBytes, ExpectOutputFailure tests/unit/io/hdf5/hdf5_writer_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d4c12780f611b8d0f3e096c57425f504de734e1f1fe5f4bb74eee73fce444d6d 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ea65dd1a637d3517aba6239dd53b411bf465a04769ae57ffc2ca970247080a4a ea65dd1a637d3517aba6239dd53b411bf465a04769ae57ffc2ca970247080a4a 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.WritesSchemaV1ModelAndCommittedAcceptedFramesOnly NonlinearHdf5ResultsWriter.WritesSchemaV1ModelAndCommittedAcceptedFramesOnly; assertion 34개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.WritesSchemaV1ModelAndCommittedAcceptedFramesOnly 유지 원문 검사 body 및 assertion 동일. 6e39a263af0c568c71a1825d1df1ab7caad034e32be32750eff35627846a02e8 6e39a263af0c568c71a1825d1df1ab7caad034e32be32750eff35627846a02e8 "ASSERT_TRUE(status.IsOk()) | ASSERT_GE(file.Get(), 0) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 1U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""nonlinear-static-newton-raphson"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""analysis_procedure""), ""nonlinear-static-full-newton"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""internal_formulation""), ""FESA-MITC4-total-lagrangian"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""integration_rule""), ""2x2x2-gauss; mitc4-edge-midpoint-shear"") | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""factor_zero_is_frame""), 0U) | EXPECT_DOUBLE_EQ(ReadDoubleAttribute(metadata.Get(), ""factor_zero_load_factor""), 0.0) | EXPECT_GT(H5Lexists(file.Get(), path, H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/steps/Step-1/accepted_frames""), std::vector({2U})) | ASSERT_EQ(frames.size(), 2U) | EXPECT_EQ(frames[0U].frame_index, 0U) | EXPECT_EQ(frames[0U].increment_index, 1U) | EXPECT_DOUBLE_EQ(frames[0U].load_factor, 0.5) | EXPECT_EQ(frames[0U].is_factor_one, 0U) | EXPECT_EQ(frames[1U].frame_index, 1U) | EXPECT_EQ(frames[1U].increment_index, 2U) | EXPECT_DOUBLE_EQ(frames[1U].load_factor, 1.0) | EXPECT_EQ(frames[1U].is_factor_one, 1U) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/2"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/trial_history"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file.Get(), (root + suffix).c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/nodal/displacement""), std::vector({4U, 6U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/nodal/triad""), std::vector({4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/element/shell/local_frame""), std::vector({1U, 4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/element/shell/stress""), std::vector({1U, 4U, 3U, 3U})) | ASSERT_EQ(displacement.size(), 24U) | EXPECT_DOUBLE_EQ(displacement[0U], 1.0) | EXPECT_DOUBLE_EQ(displacement[1U], -1.0) | EXPECT_DOUBLE_EQ(displacement[2U], 0.5) | EXPECT_DOUBLE_EQ(displacement[5U], 0.1)" "ASSERT_TRUE(status.IsOk()) | ASSERT_GE(file.Get(), 0) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 1U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""nonlinear-static-newton-raphson"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""analysis_procedure""), ""nonlinear-static-full-newton"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""internal_formulation""), ""FESA-MITC4-total-lagrangian"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""integration_rule""), ""2x2x2-gauss; mitc4-edge-midpoint-shear"") | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""factor_zero_is_frame""), 0U) | EXPECT_DOUBLE_EQ(ReadDoubleAttribute(metadata.Get(), ""factor_zero_load_factor""), 0.0) | EXPECT_GT(H5Lexists(file.Get(), path, H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/steps/Step-1/accepted_frames""), std::vector({2U})) | ASSERT_EQ(frames.size(), 2U) | EXPECT_EQ(frames[0U].frame_index, 0U) | EXPECT_EQ(frames[0U].increment_index, 1U) | EXPECT_DOUBLE_EQ(frames[0U].load_factor, 0.5) | EXPECT_EQ(frames[0U].is_factor_one, 0U) | EXPECT_EQ(frames[1U].frame_index, 1U) | EXPECT_EQ(frames[1U].increment_index, 2U) | EXPECT_DOUBLE_EQ(frames[1U].load_factor, 1.0) | EXPECT_EQ(frames[1U].is_factor_one, 1U) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/2"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/trial_history"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file.Get(), (root + suffix).c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/nodal/displacement""), std::vector({4U, 6U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/nodal/triad""), std::vector({4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/element/shell/local_frame""), std::vector({1U, 4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/element/shell/stress""), std::vector({1U, 4U, 3U, 3U})) | ASSERT_EQ(displacement.size(), 24U) | EXPECT_DOUBLE_EQ(displacement[0U], 1.0) | EXPECT_DOUBLE_EQ(displacement[1U], -1.0) | EXPECT_DOUBLE_EQ(displacement[2U], 0.5) | EXPECT_DOUBLE_EQ(displacement[5U], 0.1)" -Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.ProjectsRotationalReactionToSpatialMoment NonlinearHdf5ResultsWriter.ProjectsRotationalReactionToSpatialMoment; assertion 6개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.ProjectsRotationalReactionToSpatialMoment 유지 원문 검사 body 및 assertion 동일. 1c90a2968f7f21a035b54b532d62081f4554455b2b91eae22cf861ca9fea1f9f 1c90a2968f7f21a035b54b532d62081f4554455b2b91eae22cf861ca9fea1f9f ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, {}).IsOk()) | ASSERT_EQ(reaction.size(), 24U) | EXPECT_NEAR(reaction[3U], (1.0 - quadratic * theta * theta) * 40.0 - 0.5 * theta * 50.0, 1.0e-12) | EXPECT_NEAR(reaction[4U], 0.5 * theta * 40.0 + (1.0 - quadratic * theta * theta) * 50.0, 1.0e-12) | EXPECT_NEAR(reaction[5U], 60.0, 1.0e-12) | EXPECT_GT(quadratic, 0.0) ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, {}).IsOk()) | ASSERT_EQ(reaction.size(), 24U) | EXPECT_NEAR(reaction[3U], (1.0 - quadratic * theta * theta) * 40.0 - 0.5 * theta * 50.0, 1.0e-12) | EXPECT_NEAR(reaction[4U], 0.5 * theta * 40.0 + (1.0 - quadratic * theta * theta) * 50.0, 1.0e-12) | EXPECT_NEAR(reaction[5U], 60.0, 1.0e-12) | EXPECT_GT(quadratic, 0.0) -Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.WritesSchemaV1GlobalBalanceErrorLocation NonlinearHdf5ResultsWriter.WritesSchemaV1GlobalBalanceErrorLocation; assertion 6개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.WritesSchemaV1GlobalBalanceErrorLocation 유지 원문 검사 body 및 assertion 동일. a001400599ab1442b5c7632e39ec02422a0e5cf4a4420a822d640291fc3bdbd9 a001400599ab1442b5c7632e39ec02422a0e5cf4a4420a822d640291fc3bdbd9 "ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/steps/Step-1/frames/1/global/equilibrium""), std::vector({6U})) | EXPECT_EQ(ReadStringAttribute(equilibrium.Get(), ""component_names""), ""FORCE_1,FORCE_2,FORCE_3,MOMENT_1,MOMENT_2,MOMENT_3"") | EXPECT_EQ(ReadStringAttribute(equilibrium.Get(), ""location""), ""global-balance-error"") | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 1U)" "ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/steps/Step-1/frames/1/global/equilibrium""), std::vector({6U})) | EXPECT_EQ(ReadStringAttribute(equilibrium.Get(), ""component_names""), ""FORCE_1,FORCE_2,FORCE_3,MOMENT_1,MOMENT_2,MOMENT_3"") | EXPECT_EQ(ReadStringAttribute(equilibrium.Get(), ""location""), ""global-balance-error"") | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 1U)" -Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.StoresSortedDiagnosticsThroughBackendNeutralBoundary NonlinearHdf5ResultsWriter.StoresSortedDiagnosticsThroughBackendNeutralBoundary; assertion 6개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.StoresSortedDiagnosticsThroughBackendNeutralBoundary 유지 원문 검사 body 및 assertion 동일. 33864ae859f75ea2126a078c47ba665e8bb37b0dd807025395fa77b74be284bf 33864ae859f75ea2126a078c47ba665e8bb37b0dd807025395fa77b74be284bf "ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, diagnostics) .IsOk()) | ASSERT_EQ(rows.size(), 2U) | EXPECT_STREQ(rows[0U].code, ""earlier"") | EXPECT_EQ(rows[0U].line, 10U) | EXPECT_STREQ(rows[1U].code, ""later"") | EXPECT_EQ(rows[1U].line, 20U)" "ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, diagnostics) .IsOk()) | ASSERT_EQ(rows.size(), 2U) | EXPECT_STREQ(rows[0U].code, ""earlier"") | EXPECT_EQ(rows[0U].line, 10U) | EXPECT_STREQ(rows[1U].code, ""later"") | EXPECT_EQ(rows[1U].line, 20U)" -Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.CandidateFinalizationFailurePreservesPriorFinal NonlinearHdf5ResultsWriter.CandidateFinalizationFailurePreservesPriorFinal; assertion 6개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.CandidateFinalizationFailurePreservesPriorFinal 유지 원문 검사 body 및 assertion 동일. eb1576644b3e7a2bf28dd63899e0cccf1bd2a8568b4ab593940c67d510aa21c2 eb1576644b3e7a2bf28dd63899e0cccf1bd2a8568b4ab593940c67d510aa21c2 "ASSERT_NE(lock.Get(), INVALID_HANDLE_VALUE) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""hdf5-finalization-failure"") | EXPECT_EQ(ReadBytes(output), sentinel)" "ASSERT_NE(lock.Get(), INVALID_HANDLE_VALUE) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""hdf5-finalization-failure"") | EXPECT_EQ(ReadBytes(output), sentinel)" -Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp support@1-429 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, WinHandle, Fixture, AcceptedFrameRow, DiagnosticRow, MakeDefinition, MakeBaseline, MakeShellRow, MakeShellRows, MakeFrame, MakeFixture, OpenFile, OpenDataset, DatasetDimensions, ReadStringAttribute, ReadUint64Attribute, ReadDoubleAttribute, ReadDoubleDataset, for, AcceptedFrameMemoryType, ReadAcceptedFrames, DiagnosticMemoryType, ReadDiagnostics, ReclaimDiagnostics, ReadBytes, WriteBytes tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6c65598390ba6c2d70dbd49ab2e1b14b76803f926878fd1e6495864508bbc051 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp support@509-510 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8f00d12532be48bbd8d5776bf02cee4d6a243f6225365268e06f4dc268138fa4 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp support@537-538 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e08a00bd74875e33bb07f7be527593f2d4349951e703f865eb04b1e9499e2bbd 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp support@562-563 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a6d0aa9192bf7f01ce6aab9505a2149836668f2461c70984035f857a43eb68e6 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp support@596-597 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cc12e7c3af34a0df4e68a34067bc8e98d4da457614c478a52170cc0c9151b3b6 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 14개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6af9fa2932e01e6d814a73aa2368b5f5d7206f9c39004377d7d0ca5fbe11463d 0e288ede59628ee0256258206f78ba4830a13b65c68d9a42125b767bf15fed78 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.AllFiveActualApiOutcomesHaveIndependentOfficialSchema SolidHdf5ResultsWriter.AllFiveActualApiOutcomesHaveIndependentOfficialSchema; assertion 21개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.AllFiveActualApiOutcomesHaveIndependentOfficialSchema 유지 원문 검사 body 및 assertion 동일. ae7d81086077cec63255ebbb050d057332d3d2303be88998f8ff571d28237340 ae7d81086077cec63255ebbb050d057332d3d2303be88998f8ff571d28237340 "ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(Attr(metadata.Get(), ""analysis_procedure""), solid_output_test::Procedure(p)) | EXPECT_EQ(Attr(metadata.Get(), ""feature_id""), ""hex8-structural-analysis"") | EXPECT_EQ(Attr(metadata.Get(), ""source_step_name""), ""RawSolid"") | EXPECT_EQ(Attr(metadata.Get(), ""element_formulation""), ""FESA-Hex8"") | EXPECT_EQ(Attr(metadata.Get(), ""integration_rule""), ""gauss-2x2x2"") | EXPECT_EQ(Attr(metadata.Get(), ""mass_formulation""), ""lumped-reference"") | EXPECT_EQ(Attr(metadata.Get(), ""component_order""), ""node-major; UX,UY,UZ"") | EXPECT_GT(H5Tequal(masktype.Get(), H5T_STD_U8LE), 0) | EXPECT_EQ(Attr(mask.Get(), ""component_names""), ""UX,UY,UZ"") | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames"", H5P_DEFAULT), 0) | EXPECT_EQ(Attr(dataset.Get(), ""component_names""), std::get<1>(quantity)) | EXPECT_EQ(Attr(dataset.Get(), ""unit_dimensions""), std::get<2>(quantity)) | EXPECT_EQ(Attr(dataset.Get(), ""location""), ""global"") | EXPECT_EQ(Attr(dataset.Get(), ""coordinate_system""), ""global-cartesian"") | EXPECT_EQ(H5Aexists(dataset.Get(), ""frame_index""), 0) | EXPECT_EQ(H5Aexists(dataset.Get(), ""step_name""), 0) | ASSERT_EQ(state.eigenpair_checks[0].solver_column, 0u) | EXPECT_EQ( H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0) | EXPECT_LE( H5Lexists(file.Get(), (root + ""/nodal/displacement_low"").c_str(), H5P_DEFAULT), 0)" "ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(Attr(metadata.Get(), ""analysis_procedure""), solid_output_test::Procedure(p)) | EXPECT_EQ(Attr(metadata.Get(), ""feature_id""), ""hex8-structural-analysis"") | EXPECT_EQ(Attr(metadata.Get(), ""source_step_name""), ""RawSolid"") | EXPECT_EQ(Attr(metadata.Get(), ""element_formulation""), ""FESA-Hex8"") | EXPECT_EQ(Attr(metadata.Get(), ""integration_rule""), ""gauss-2x2x2"") | EXPECT_EQ(Attr(metadata.Get(), ""mass_formulation""), ""lumped-reference"") | EXPECT_EQ(Attr(metadata.Get(), ""component_order""), ""node-major; UX,UY,UZ"") | EXPECT_GT(H5Tequal(masktype.Get(), H5T_STD_U8LE), 0) | EXPECT_EQ(Attr(mask.Get(), ""component_names""), ""UX,UY,UZ"") | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames"", H5P_DEFAULT), 0) | EXPECT_EQ(Attr(dataset.Get(), ""component_names""), std::get<1>(quantity)) | EXPECT_EQ(Attr(dataset.Get(), ""unit_dimensions""), std::get<2>(quantity)) | EXPECT_EQ(Attr(dataset.Get(), ""location""), ""global"") | EXPECT_EQ(Attr(dataset.Get(), ""coordinate_system""), ""global-cartesian"") | EXPECT_EQ(H5Aexists(dataset.Get(), ""frame_index""), 0) | EXPECT_EQ(H5Aexists(dataset.Get(), ""step_name""), 0) | ASSERT_EQ(state.eigenpair_checks[0].solver_column, 0u) | EXPECT_EQ( H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0) | EXPECT_LE( H5Lexists(file.Get(), (root + ""/nodal/displacement_low"").c_str(), H5P_DEFAULT), 0)" -Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.EveryProcedurePreservesPreviousFinalAcrossLifecycleFailures SolidHdf5ResultsWriter.EveryProcedurePreservesPreviousFinalAcrossLifecycleFailures; assertion 3개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.EveryProcedurePreservesPreviousFinalAcrossLifecycleFailures 유지 원문 검사 body 및 assertion 동일. 54758e848f8b701836e7fb82b83cfd0959b5e4f36e413871563d59a6389f21ef 54758e848f8b701836e7fb82b83cfd0959b5e4f36e413871563d59a6389f21ef "EXPECT_FALSE(status.IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | EXPECT_EQ(entry.path().filename().string().find(""candidate""), std::string::npos)" "EXPECT_FALSE(status.IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | EXPECT_EQ(entry.path().filename().string().find(""candidate""), std::string::npos)" -Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.MalformedWholePairsAndIdentityFailBeforeCandidateCreation SolidHdf5ResultsWriter.MalformedWholePairsAndIdentityFailBeforeCandidateCreation; assertion 5개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.MalformedWholePairsAndIdentityFailBeforeCandidateCreation 유지 원문 검사 body 및 assertion 동일. 3d420563bb51f0e354d37714b86fc487aa097ba8f142014c043488d8c4bf78d6 3d420563bb51f0e354d37714b86fc487aa097ba8f142014c043488d8c4bf78d6 EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | ASSERT_EQ(std::fesetround(FE_DOWNWARD), 0) | EXPECT_FALSE(status.IsOk()) | EXPECT_EQ(Bytes(files.output), previous) EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | ASSERT_EQ(std::fesetround(FE_DOWNWARD), 0) | EXPECT_FALSE(status.IsOk()) | EXPECT_EQ(Bytes(files.output), previous) -Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ModalColumnsRemainZeroBasedAndRejectInvalidInventory SolidHdf5ResultsWriter.ModalColumnsRemainZeroBasedAndRejectInvalidInventory; assertion 4개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ModalColumnsRemainZeroBasedAndRejectInvalidInventory 유지 원문 검사 body 및 assertion 동일. 58160b675d06a1d926ce01fbdcd204944fd73fa1246838cb4245069a58346ec5 58160b675d06a1d926ce01fbdcd204944fd73fa1246838cb4245069a58346ec5 ASSERT_EQ(state.eigenpair_checks[0].solver_column, 0u) | EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) ASSERT_EQ(state.eigenpair_checks[0].solver_column, 0u) | EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) -Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ReadbackRejectsMalformedTypesShapesValuesAndSourceIds SolidHdf5ResultsWriter.ReadbackRejectsMalformedTypesShapesValuesAndSourceIds; assertion 2개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ReadbackRejectsMalformedTypesShapesValuesAndSourceIds 유지 원문 검사 body 및 assertion 동일. 98f12927edcaf6e819ce0efdc429254416e9c0b6d37361830ab53bb7d6c1b9bb 98f12927edcaf6e819ce0efdc429254416e9c0b6d37361830ab53bb7d6c1b9bb EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) -Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ReadbackMatchesActualAcceptedValuesAndFullPairObservables SolidHdf5ResultsWriter.ReadbackMatchesActualAcceptedValuesAndFullPairObservables; assertion 6개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ReadbackMatchesActualAcceptedValuesAndFullPairObservables 유지 원문 검사 body 및 assertion 동일. 9489cb16f1d352cdb05ead2678289c28d3757ca8717121b5d49f4e4763c16427 9489cb16f1d352cdb05ead2678289c28d3757ca8717121b5d49f4e4763c16427 "ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE(dataset.Get(), 0) | ASSERT_GE(H5Dread(dataset.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, values.data()), 0) | EXPECT_EQ(values, expected) | EXPECT_EQ(Attr(metadata.Get(), ""source_input_identity""), SourceInputIdentity(actual.input.domain)) | EXPECT_TRUE(nonzero_low)" "ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE(dataset.Get(), 0) | ASSERT_GE(H5Dread(dataset.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, values.data()), 0) | EXPECT_EQ(values, expected) | EXPECT_EQ(Attr(metadata.Get(), ""source_input_identity""), SourceInputIdentity(actual.input.domain)) | EXPECT_TRUE(nonzero_low)" -Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.FailureRecordsAreLoggedAndLogFailureTakesPrecedence SolidPreparedAnalysis.FailureRecordsAreLoggedAndLogFailureTakesPrecedence; assertion 9개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.FailureRecordsAreLoggedAndLogFailureTakesPrecedence 유지 원문 검사 body 및 assertion 동일. 86020491b9f15bef285a8c66ff73296c53f87c05bf88bde9e31ceae039b16613 86020491b9f15bef285a8c66ff73296c53f87c05bf88bde9e31ceae039b16613 "ASSERT_TRUE(input.HasValue()) | ASSERT_TRUE(log.Open(files.log).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), closed ? FailureCategory::kOutput : FailureCategory::kSolver) | ASSERT_TRUE(log.Close().IsOk()) | EXPECT_NE(text.find(""injected-tangent-failure""), std::string::npos) | EXPECT_EQ(text.find(""rotation""), std::string::npos) | EXPECT_NE(text.find(""stage=""), std::string::npos)" "ASSERT_TRUE(input.HasValue()) | ASSERT_TRUE(log.Open(files.log).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), closed ? FailureCategory::kOutput : FailureCategory::kSolver) | ASSERT_TRUE(log.Close().IsOk()) | EXPECT_NE(text.find(""injected-tangent-failure""), std::string::npos) | EXPECT_EQ(text.find(""rotation""), std::string::npos) | EXPECT_NE(text.find(""stage=""), std::string::npos)" -Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.MissingSolidAdapterFailsWithoutLegacyDispatch SolidPreparedAnalysis.MissingSolidAdapterFailsWithoutLegacyDispatch; assertion 6개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.MissingSolidAdapterFailsWithoutLegacyDispatch 유지 원문 검사 body 및 assertion 동일. 49053fc528ba887b5f048281c18c912aa09ae411cabbb474074bbc2f15ab91c8 49053fc528ba887b5f048281c18c912aa09ae411cabbb474074bbc2f15ab91c8 "ASSERT_TRUE(input.HasValue()) | ASSERT_TRUE(log.Open(files.log).IsOk()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""missing-solid-executor"") | EXPECT_TRUE(log.Close().IsOk())" "ASSERT_TRUE(input.HasValue()) | ASSERT_TRUE(log.Open(files.log).IsOk()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""missing-solid-executor"") | EXPECT_TRUE(log.Close().IsOk())" -Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.UnsupportedEnvironmentAfterCallbackCannotPublish SolidHdf5ResultsWriter.UnsupportedEnvironmentAfterCallbackCannotPublish; assertion 2개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.UnsupportedEnvironmentAfterCallbackCannotPublish 유지 원문 검사 body 및 assertion 동일. e451c9a755119b6d30517cfadffc36c7fefd922c053ce1aac059d333adc5e7f5 e451c9a755119b6d30517cfadffc36c7fefd922c053ce1aac059d333adc5e7f5 EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) -Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.MissingWriterPreservesFinalForEveryTypedOutcome SolidPreparedAnalysis.MissingWriterPreservesFinalForEveryTypedOutcome; assertion 5개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.MissingWriterPreservesFinalForEveryTypedOutcome 유지 원문 검사 body 및 assertion 동일. 7fe8c186182faf22af563656dd32beca34da0788bfe309672f51cb685820abf2 7fe8c186182faf22af563656dd32beca34da0788bfe309672f51cb685820abf2 "ASSERT_TRUE(paths.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_EQ(status.Diagnostics()[0].code, ""missing-solid-writer"") | EXPECT_EQ(Bytes(files.output), previous)" "ASSERT_TRUE(paths.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_EQ(status.Diagnostics()[0].code, ""missing-solid-writer"") | EXPECT_EQ(Bytes(files.output), previous)" -Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidNewtonIterationLog.InvalidScalarEvidencePermanentlyFailsLogLifecycle SolidNewtonIterationLog.InvalidScalarEvidencePermanentlyFailsLogLifecycle; assertion 3개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidNewtonIterationLog.InvalidScalarEvidencePermanentlyFailsLogLifecycle 유지 원문 검사 body 및 assertion 동일. 98a859ab027cf906fe55ec13bd07e191939707a511ef7786e84dbd3040963b47 98a859ab027cf906fe55ec13bd07e191939707a511ef7786e84dbd3040963b47 ASSERT_TRUE(log.Open(files.log).IsOk()) | EXPECT_FALSE(log.Write(record).IsOk()) | EXPECT_FALSE(log.Close().IsOk()) ASSERT_TRUE(log.Open(files.log).IsOk()) | EXPECT_FALSE(log.Write(record).IsOk()) | EXPECT_FALSE(log.Close().IsOk()) -Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.AbsentStaticDensityIsAnExplicitPlaceholder SolidHdf5ResultsWriter.AbsentStaticDensityIsAnExplicitPlaceholder; assertion 5개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.AbsentStaticDensityIsAnExplicitPlaceholder 유지 원문 검사 body 및 assertion 동일. eb6860aba8052654eaa827dfd208c58761976beb7d042b8529d9544036d904fe eb6860aba8052654eaa827dfd208c58761976beb7d042b8529d9544036d904fe ASSERT_NE(position, std::string::npos) | ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE( H5Dread(dataset.Get(), type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &row), 0) | EXPECT_EQ(row.present, 0) | EXPECT_EQ(row.rho, 0) ASSERT_NE(position, std::string::npos) | ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE( H5Dread(dataset.Get(), type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &row), 0) | EXPECT_EQ(row.present, 0) | EXPECT_EQ(row.rho, 0) -Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ModalPhysicalTableAttributeCorruptionPreservesFinal SolidHdf5ResultsWriter.ModalPhysicalTableAttributeCorruptionPreservesFinal; assertion 2개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ModalPhysicalTableAttributeCorruptionPreservesFinal 유지 원문 검사 body 및 assertion 동일. 5ab99b0ef2a17dd81d8b67396fa3ad3fcaafcc82c55b1a90ba8ebc161b3c057a 5ab99b0ef2a17dd81d8b67396fa3ad3fcaafcc82c55b1a90ba8ebc161b3c057a EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) -Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.UnselectedBackendPairsCannotPublishInvalidSpectrumOrDimension SolidHdf5ResultsWriter.UnselectedBackendPairsCannotPublishInvalidSpectrumOrDimension; assertion 9개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.UnselectedBackendPairsCannotPublishInvalidSpectrumOrDimension 유지 원문 검사 body 및 assertion 동일. 1ebcf9e3ecd6d2f12eefd8b99060546b7a12f4b64c9542a7d7550aa384b095f7 1ebcf9e3ecd6d2f12eefd8b99060546b7a12f4b64c9542a7d7550aa384b095f7 "ASSERT_NE(position, std::string::npos) | ASSERT_EQ(state.modes.size(), 1u) | ASSERT_EQ(state.free_dof_count, 3u) | ASSERT_GT(state.eigenpair_checks.size(), state.modes.size()) | ASSERT_LE(state.eigenpair_checks.size(), state.free_dof_count) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_NE(message.find(failure == 0 ? ""Significant negative"" : failure == 1 ? ""not sorted"" : ""inventory""), std::string::npos) | EXPECT_EQ(Bytes(files.output), previous)" "ASSERT_NE(position, std::string::npos) | ASSERT_EQ(state.modes.size(), 1u) | ASSERT_EQ(state.free_dof_count, 3u) | ASSERT_GT(state.eigenpair_checks.size(), state.modes.size()) | ASSERT_LE(state.eigenpair_checks.size(), state.free_dof_count) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_NE(message.find(failure == 0 ? ""Significant negative"" : failure == 1 ? ""not sorted"" : ""inventory""), std::string::npos) | EXPECT_EQ(Bytes(files.output), previous)" -Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp support@1-198 helper/oracle/fixture/include/static assertion 구간: fesa, Actual, Execute, View, Bytes, Existing, Attr, if, T, NumberAttr, DatasetContract tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3d8a03c21d39bdb525b3343fe9b1a43b739e09b146ce0fa12b7b941bdbee7123 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp support@618-632 helper/oracle/fixture/include/static assertion 구간: FailedTangent tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ad8ea87f0e4a9587417928c0cf809d07c3041883e55d95ad345315ff70ebd9a2 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp support@871-871 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/solid_output_test_fixture.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/unit/io/hdf5/solid_output_test_fixture.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f55daaac80ffbb33f56431eb37931b48dc0202107b74e298254f9fcd2a2e5977 f55daaac80ffbb33f56431eb37931b48dc0202107b74e298254f9fcd2a2e5977 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/solid_output_test_fixture.h support@1-58 helper/oracle/fixture/include/static assertion 구간: solid_output_test, Deck, Files, Procedure tests/unit/io/hdf5/solid_output_test_fixture.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9e7195cd7096815c237160ff0315fabca314fe8068ef1ea88751543cac732307 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 13개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 576b253a222e41e7b8bd6643a47706eec1ed333eaf5a09c2206b89ef1bb06895 576b253a222e41e7b8bd6643a47706eec1ed333eaf5a09c2206b89ef1bb06895 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.WritesRawInitialAndCompletedZeroReactionHistory ThermalHdf5ResultsWriter.WritesRawInitialAndCompletedZeroReactionHistory; assertion 8개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.WritesRawInitialAndCompletedZeroReactionHistory 유지 원문 검사 body 및 assertion 동일. 038005b1d8bbe2f803b404dbb53962ec9300408b40327a0b0e90f5e4a3a7f679 038005b1d8bbe2f803b404dbb53962ec9300408b40327a0b0e90f5e4a3a7f679 "ASSERT_TRUE(result.IsOk()) | ASSERT_GE(file, 0) | EXPECT_GT( H5Lexists(file, ""/steps/Step-1/frames/0/nodal/temperature"", H5P_DEFAULT), 0) | EXPECT_LE(H5Lexists(file, ""/steps/Step-1/frames/0/nodal/reaction_heat_rate"", H5P_DEFAULT), 0) | EXPECT_LE( H5Lexists(file, ""/steps/Step-1/frames/0/element/heat_flux"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/frames/3/nodal/reaction_heat_rate"", H5P_DEFAULT), 0) | EXPECT_GT( H5Lexists(file, ""/steps/Step-1/frames/3/element/heat_flux"", H5P_DEFAULT), 0) | EXPECT_GT(H5Fclose(file), -1)" "ASSERT_TRUE(result.IsOk()) | ASSERT_GE(file, 0) | EXPECT_GT( H5Lexists(file, ""/steps/Step-1/frames/0/nodal/temperature"", H5P_DEFAULT), 0) | EXPECT_LE(H5Lexists(file, ""/steps/Step-1/frames/0/nodal/reaction_heat_rate"", H5P_DEFAULT), 0) | EXPECT_LE( H5Lexists(file, ""/steps/Step-1/frames/0/element/heat_flux"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/frames/3/nodal/reaction_heat_rate"", H5P_DEFAULT), 0) | EXPECT_GT( H5Lexists(file, ""/steps/Step-1/frames/3/element/heat_flux"", H5P_DEFAULT), 0) | EXPECT_GT(H5Fclose(file), -1)" -Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.SectionMaterialUsesGlobalMaterialIdentity ThermalHdf5ResultsWriter.SectionMaterialUsesGlobalMaterialIdentity; assertion 11개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.SectionMaterialUsesGlobalMaterialIdentity 유지 원문 검사 body 및 assertion 동일. 96c91419cb1cd6966a695185c69a1c372da0516eb31c6a71f9db7f987dd767b9 96c91419cb1cd6966a695185c69a1c372da0516eb31c6a71f9db7f987dd767b9 "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(H5Tinsert(t.Get(), ""material_internal_id"", 0, H5T_NATIVE_UINT64), 0) | ASSERT_GE(H5Dread(d.Get(), t.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &id), 0) | EXPECT_EQ(id, 1U) | ASSERT_GE(H5Tset_size(utf8.Get(), H5T_VARIABLE), 0) | ASSERT_GE(H5Tset_cset(utf8.Get(), H5T_CSET_UTF8), 0) | ASSERT_GE(H5Tinsert(source_type.Get(), ""source_file"", 0, utf8.Get()), 0) | ASSERT_GE(H5Dread(d.Get(), source_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &source), 0) | ASSERT_NE(source, nullptr) | EXPECT_EQ(std::string{source}, std::filesystem::absolute(""thermal-writer.inp"") .lexically_normal() .generic_u8string()) | EXPECT_GE(H5free_memory(source), 0)" "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(H5Tinsert(t.Get(), ""material_internal_id"", 0, H5T_NATIVE_UINT64), 0) | ASSERT_GE(H5Dread(d.Get(), t.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &id), 0) | EXPECT_EQ(id, 1U) | ASSERT_GE(H5Tset_size(utf8.Get(), H5T_VARIABLE), 0) | ASSERT_GE(H5Tset_cset(utf8.Get(), H5T_CSET_UTF8), 0) | ASSERT_GE(H5Tinsert(source_type.Get(), ""source_file"", 0, utf8.Get()), 0) | ASSERT_GE(H5Dread(d.Get(), source_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &source), 0) | ASSERT_NE(source, nullptr) | EXPECT_EQ(std::string{source}, std::filesystem::absolute(""thermal-writer.inp"") .lexically_normal() .generic_u8string()) | EXPECT_GE(H5free_memory(source), 0)" -Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsMissingMandatoryAttributesAndChangedValues ThermalHdf5ResultsWriter.RejectsMissingMandatoryAttributesAndChangedValues; assertion 8개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsMissingMandatoryAttributesAndChangedValues 유지 원문 검사 body 및 assertion 동일. 09fc93e87be7ffcef801a28fb026ccffcb2e9fef878c8141eba118171fdf4915 09fc93e87be7ffcef801a28fb026ccffcb2e9fef878c8141eba118171fdf4915 "EXPECT_GE(H5Adelete(m, ""source_input_identity""), 0) | EXPECT_GE(H5Adelete(d, ""units_label""), 0) | EXPECT_GE(H5Dwrite(d, H5T_NATIVE_UINT64, H5S_ALL, H5S_ALL, H5P_DEFAULT, ids), 0) | EXPECT_GE(H5Dwrite(d, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, v), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(f, 0) | ASSERT_GE(H5Fclose(f), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk())" "EXPECT_GE(H5Adelete(m, ""source_input_identity""), 0) | EXPECT_GE(H5Adelete(d, ""units_label""), 0) | EXPECT_GE(H5Dwrite(d, H5T_NATIVE_UINT64, H5S_ALL, H5S_ALL, H5P_DEFAULT, ids), 0) | EXPECT_GE(H5Dwrite(d, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, v), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(f, 0) | ASSERT_GE(H5Fclose(f), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk())" -Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryRequiredAttributeIsCheckedBeforePublication ThermalHdf5ResultsWriter.EveryRequiredAttributeIsCheckedBeforePublication; assertion 7개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryRequiredAttributeIsCheckedBeforePublication 유지 원문 검사 body 및 assertion 동일. e8670b807a13f32a42fc3bdf7c7ba29a13005b801faafdb48830765ba95cd051 e8670b807a13f32a42fc3bdf7c7ba29a13005b801faafdb48830765ba95cd051 ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(file, 0) | ASSERT_GE(object, 0) | ASSERT_GE(H5Adelete(object, attribute.second.c_str()), 0) | ASSERT_GE(H5Oclose(object), 0) | ASSERT_GE(H5Fclose(file), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk()) ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(file, 0) | ASSERT_GE(object, 0) | ASSERT_GE(H5Adelete(object, attribute.second.c_str()), 0) | ASSERT_GE(H5Oclose(object), 0) | ASSERT_GE(H5Fclose(file), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk()) -Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryCompoundFieldAndEveryDatasetIsMandatory ThermalHdf5ResultsWriter.EveryCompoundFieldAndEveryDatasetIsMandatory; assertion 6개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryCompoundFieldAndEveryDatasetIsMandatory 유지 원문 검사 body 및 assertion 동일. 2714b07516265d2c61e37c02651ac605c52a2e430bf95d6a59a176e923b72fbe 2714b07516265d2c61e37c02651ac605c52a2e430bf95d6a59a176e923b72fbe "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""Missing compound field""), std::string::npos) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | ASSERT_GE(H5Ldelete(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, diagnostics) .IsOk())" "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""Missing compound field""), std::string::npos) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | ASSERT_GE(H5Ldelete(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, diagnostics) .IsOk())" -Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.ReorderedPackedAdditiveCompoundsAndFixedUtf8AreAccepted ThermalHdf5ResultsWriter.ReorderedPackedAdditiveCompoundsAndFixedUtf8AreAccepted; assertion 4개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.ReorderedPackedAdditiveCompoundsAndFixedUtf8AreAccepted 유지 원문 검사 body 및 assertion 동일. eb907cbc4c5980b7b1d09251862c47f1c54fd4b68029219bbc6ee5341c15707e eb907cbc4c5980b7b1d09251862c47f1c54fd4b68029219bbc6ee5341c15707e ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | ASSERT_GE(H5Tset_size(fixed.Get(), 16), 0) | ASSERT_GE(H5Tset_cset(fixed.Get(), H5T_CSET_UTF8), 0) | EXPECT_TRUE(checked.IsOk()) ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | ASSERT_GE(H5Tset_size(fixed.Get(), 16), 0) | ASSERT_GE(H5Tset_cset(fixed.Get(), H5T_CSET_UTF8), 0) | EXPECT_TRUE(checked.IsOk()) -Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsWrongTypesArrayExtentsNonscalarAndNonUtf8Attributes ThermalHdf5ResultsWriter.RejectsWrongTypesArrayExtentsNonscalarAndNonUtf8Attributes; assertion 7개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsWrongTypesArrayExtentsNonscalarAndNonUtf8Attributes 유지 원문 검사 body 및 assertion 동일. deb7ac11d4f8259f50d5d43317c188e2c36960898610bebc7a492eb8c58e4866 deb7ac11d4f8259f50d5d43317c188e2c36960898610bebc7a492eb8c58e4866 "ASSERT_GE(H5Adelete(g.Get(), ""is_initial""), 0) | ASSERT_GE(H5Awrite(a.Get(), H5T_NATIVE_UINT8, data), 0) | ASSERT_GE(H5Adelete(g.Get(), ""time_period""), 0) | ASSERT_GE(H5Awrite(a.Get(), H5T_NATIVE_DOUBLE, data), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""type/extent""), std::string::npos)" "ASSERT_GE(H5Adelete(g.Get(), ""is_initial""), 0) | ASSERT_GE(H5Awrite(a.Get(), H5T_NATIVE_UINT8, data), 0) | ASSERT_GE(H5Adelete(g.Get(), ""time_period""), 0) | ASSERT_GE(H5Awrite(a.Get(), H5T_NATIVE_DOUBLE, data), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""type/extent""), std::string::npos)" -Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsWrongValuesFrameInventoriesNonfiniteAndDiagnostics ThermalHdf5ResultsWriter.RejectsWrongValuesFrameInventoriesNonfiniteAndDiagnostics; assertion 6개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsWrongValuesFrameInventoriesNonfiniteAndDiagnostics 유지 원문 검사 body 및 assertion 동일. 32dc727108be7e7b965f1451c0142d9ebcb4671317da04f841ad33b9b57b2bcb 32dc727108be7e7b965f1451c0142d9ebcb4671317da04f841ad33b9b57b2bcb "ASSERT_GE(g.Get(), 0) | ASSERT_GE(H5Ldelete(f, ""/steps/Step-1/frames/2"", H5P_DEFAULT), 0) | ASSERT_GE( H5Lcreate_soft(""/missing"", f, ""/steps/Step-1/frames/0/element"", H5P_DEFAULT, H5P_DEFAULT), 0) | ASSERT_GE(H5Dwrite(d.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, values), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, diagnostics) .IsOk())" "ASSERT_GE(g.Get(), 0) | ASSERT_GE(H5Ldelete(f, ""/steps/Step-1/frames/2"", H5P_DEFAULT), 0) | ASSERT_GE( H5Lcreate_soft(""/missing"", f, ""/steps/Step-1/frames/0/element"", H5P_DEFAULT, H5P_DEFAULT), 0) | ASSERT_GE(H5Dwrite(d.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, values), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, diagnostics) .IsOk())" -Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RotatedFramesAndEndpointCloseScheduleRoundTripIndependently ThermalHdf5ResultsWriter.RotatedFramesAndEndpointCloseScheduleRoundTripIndependently; assertion 12개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RotatedFramesAndEndpointCloseScheduleRoundTripIndependently 유지 원문 검사 body 및 assertion 동일. 9b867d4ee386eecc3e31c6233f961cdd619a2c0736f7a11b7705cadeca1c0ccd 9b867d4ee386eecc3e31c6233f961cdd619a2c0736f7a11b7705cadeca1c0ccd ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(H5Dread(d.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, frames.data()), 0) | EXPECT_DOUBLE_EQ(frames[i], expected[i % 9]) | ASSERT_GE(H5Aread(a.Get(), H5T_NATIVE_DOUBLE, &actual), 0) | EXPECT_EQ(actual, .3) | EXPECT_NE(actual, .9 - .6) | ASSERT_GE(H5Dread(initial.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, t), 0) | EXPECT_EQ(t[i], i < 5 ? -2 : 0) | ASSERT_GE( H5Dread(flux.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, q), 0) | EXPECT_EQ(q[3 * sample], static_cast(sample)) | EXPECT_EQ(q[3 * sample + 1], -static_cast(sample) - 3) | EXPECT_EQ(q[3 * sample + 2], 9) ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(H5Dread(d.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, frames.data()), 0) | EXPECT_DOUBLE_EQ(frames[i], expected[i % 9]) | ASSERT_GE(H5Aread(a.Get(), H5T_NATIVE_DOUBLE, &actual), 0) | EXPECT_EQ(actual, .3) | EXPECT_NE(actual, .9 - .6) | ASSERT_GE(H5Dread(initial.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, t), 0) | EXPECT_EQ(t[i], i < 5 ? -2 : 0) | ASSERT_GE( H5Dread(flux.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, q), 0) | EXPECT_EQ(q[3 * sample], static_cast(sample)) | EXPECT_EQ(q[3 * sample + 1], -static_cast(sample) - 3) | EXPECT_EQ(q[3 * sample + 2], 9) -Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryFailedLifecycleBoundaryPreservesOldFinalAndCleansCandidate ThermalHdf5ResultsWriter.EveryFailedLifecycleBoundaryPreservesOldFinalAndCleansCandidate; assertion 8개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryFailedLifecycleBoundaryPreservesOldFinalAndCleansCandidate 유지 원문 검사 body 및 assertion 동일. 411e24e5bc006ee97ce6e6c3e648e3fd63cf72585b2fef2347a8cab364de86ba 411e24e5bc006ee97ce6e6c3e648e3fd63cf72585b2fef2347a8cab364de86ba "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(d.Get(), 0) | ASSERT_GE(H5Adelete(m.Get(), ""schema_version""), 0) | EXPECT_TRUE(std::filesystem::remove(candidate)) | EXPECT_FALSE(fesa::hdf5_internal::WriteThermalFile(out.Path(), *x.domain, x.state, {}, failures[i]) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) | EXPECT_EQ(entry.path(), out.Path()) | EXPECT_EQ(files, 1U)" "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(d.Get(), 0) | ASSERT_GE(H5Adelete(m.Get(), ""schema_version""), 0) | EXPECT_TRUE(std::filesystem::remove(candidate)) | EXPECT_FALSE(fesa::hdf5_internal::WriteThermalFile(out.Path(), *x.domain, x.state, {}, failures[i]) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) | EXPECT_EQ(entry.path(), out.Path()) | EXPECT_EQ(files, 1U)" -Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.DomainMismatchAndIncompleteHistoryCannotReplaceFinal ThermalHdf5ResultsWriter.DomainMismatchAndIncompleteHistoryCannotReplaceFinal; assertion 8개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.DomainMismatchAndIncompleteHistoryCannotReplaceFinal 유지 원문 검사 body 및 assertion 동일. 737aebeffb93534d9acc0a723361a72396790b4f57424f2410fa23ce0807f0cf 737aebeffb93534d9acc0a723361a72396790b4f57424f2410fa23ce0807f0cf ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_TRUE(different.HasValue()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), different.Value(), x.state, {}) .IsOk()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *partial.domain, partial.state, {}) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) | ASSERT_TRUE(changed_g.HasValue()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), changed_g.Value(), prescribed.state, {}) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_TRUE(different.HasValue()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), different.Value(), x.state, {}) .IsOk()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *partial.domain, partial.state, {}) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) | ASSERT_TRUE(changed_g.HasValue()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), changed_g.Value(), prescribed.state, {}) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) -Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryPrimitiveDatasetChecksShapeTypeAndValue ThermalHdf5ResultsWriter.EveryPrimitiveDatasetChecksShapeTypeAndValue; assertion 7개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryPrimitiveDatasetChecksShapeTypeAndValue 유지 원문 검사 body 및 assertion 동일. 94f20f584c491bbde83edeabb6d369a9358a4227a25e8a17f615b9aa2ff6e045 94f20f584c491bbde83edeabb6d369a9358a4227a25e8a17f615b9aa2ff6e045 "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""extent""), std::string::npos) | EXPECT_NE(Message(checked).find(""primitive type""), std::string::npos) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""extent""), std::string::npos)" "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""extent""), std::string::npos) | EXPECT_NE(Message(checked).find(""primitive type""), std::string::npos) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""extent""), std::string::npos)" -Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.InitialRecoveryCannotBeFilledWithCompletedZeros ThermalHdf5ResultsWriter.InitialRecoveryCannotBeFilledWithCompletedZeros; assertion 5개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.InitialRecoveryCannotBeFilledWithCompletedZeros 유지 원문 검사 body 및 assertion 동일. 0f30c83325b2edbf6f637c4324d4c8b85cf15189fb03798a5c2fa52eac8ae6ea 0f30c83325b2edbf6f637c4324d4c8b85cf15189fb03798a5c2fa52eac8ae6ea "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(g.Get(), 0) | ASSERT_GE(H5Ocopy(f.Get(), ""/steps/Step-1/frames/1/element/heat_flux"", f.Get(), ""/steps/Step-1/frames/0/element/heat_flux"", H5P_DEFAULT, H5P_DEFAULT), 0) | ASSERT_GE( H5Ocopy(f.Get(), ""/steps/Step-1/frames/1/nodal/reaction_heat_rate"", f.Get(), ""/steps/Step-1/frames/0/nodal/reaction_heat_rate"", H5P_DEFAULT, H5P_DEFAULT), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk())" "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(g.Get(), 0) | ASSERT_GE(H5Ocopy(f.Get(), ""/steps/Step-1/frames/1/element/heat_flux"", f.Get(), ""/steps/Step-1/frames/0/element/heat_flux"", H5P_DEFAULT, H5P_DEFAULT), 0) | ASSERT_GE( H5Ocopy(f.Get(), ""/steps/Step-1/frames/1/nodal/reaction_heat_rate"", f.Get(), ""/steps/Step-1/frames/0/nodal/reaction_heat_rate"", H5P_DEFAULT, H5P_DEFAULT), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk())" -Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp support@1-313 helper/oracle/fixture/include/static assertion 구간: Definition, Fixture, Make, Temp, Path, Message, Bytes, Diagnostics, CollectAttribute, CopyAttributes, for, RewriteCompound, if, T, WriteColumn, StringAttribute, ReplacePrimitive, ChangePrimitive tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f3c40b4b5f52a1a45372592be54b1b910b2f1d1d1f25c305049ab22e15768cd6 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp support@810-815 helper/oracle/fixture/include/static assertion 구간: FailedClose tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 192b1bf23c67a96f66846de9e9b50e917d5a4347cd052fa681b3a34b2f05b181 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp support@993-993 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/loads/load_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/loads/load_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ce8c7aa7d0372bf0cd2f1627ed19cc2b1c603240d03517e959169eb746f8dd64 ce8c7aa7d0372bf0cd2f1627ed19cc2b1c603240d03517e959169eb746f8dd64 해당 없음 해당 없음 -Dev tests/unit/loads/load_test.cpp Load.ConcentratedNodalLoadEmitsStableFullDofContributions Load.ConcentratedNodalLoadEmitsStableFullDofContributions; assertion 7개 tests/unit/loads/load_test.cpp Load.ConcentratedNodalLoadEmitsStableFullDofContributions 유지 원문 검사 body 및 assertion 동일. 2ccf11bb0f56a9bf2a474ee028662ee0d6d8c21e6c25c2fc9c3e3e24dc116eb3 2ccf11bb0f56a9bf2a474ee028662ee0d6d8c21e6c25c2fc9c3e3e24dc116eb3 ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().size(), 12U) | EXPECT_EQ(contribution.source_order, 7U) | EXPECT_EQ(contribution.full_dof_index, node * components.size() + component) | EXPECT_DOUBLE_EQ(contribution.value, components[component]) ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().size(), 12U) | EXPECT_EQ(contribution.source_order, 7U) | EXPECT_EQ(contribution.full_dof_index, node * components.size() + component) | EXPECT_DOUBLE_EQ(contribution.value, components[component]) -Dev tests/unit/loads/load_test.cpp Load.ConcentratedNodalLoadRejectsInvalidInputWithoutContributions Load.ConcentratedNodalLoadRejectsInvalidInputWithoutContributions; assertion 2개 tests/unit/loads/load_test.cpp Load.ConcentratedNodalLoadRejectsInvalidInputWithoutContributions 유지 원문 검사 body 및 assertion 동일. c3c7d3455b3f5352f0c13fbf53c73ff736c3a35d764cd20f952f5e34466609fa c3c7d3455b3f5352f0c13fbf53c73ff736c3a35d764cd20f952f5e34466609fa ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) -Dev tests/unit/loads/load_test.cpp support@1-49 helper/oracle/fixture/include/static assertion 구간: MakeDomain, if, ExpectFailureCode tests/unit/loads/load_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e237ce80f9cbe95cd5979cd1db9a7989577e0dc5510ac16003d902aa2eafb08a 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/loads/shell_surface_pressure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 11개 tests/unit/loads/shell_surface_pressure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 094f2106b557380c45c24cf92d2f4b860ece37d53faea45b704bfd456be26945 094f2106b557380c45c24cf92d2f4b860ece37d53faea45b704bfd456be26945 해당 없음 해당 없음 -Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.PartitionsUnityAndIntegratesPlanarResultantAndMoment ShellSurfacePressureKernel.PartitionsUnityAndIntegratesPlanarResultantAndMoment; assertion 0개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.PartitionsUnityAndIntegratesPlanarResultantAndMoment 유지 원문 검사 body 및 assertion 동일. f6a885c1167ddcbc8e2baf4601ea82653d59f4f3b981f6d395081374e93b7413 f6a885c1167ddcbc8e2baf4601ea82653d59f4f3b981f6d395081374e93b7413 해당 없음 해당 없음 -Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.ReversesExactlyForSposSnegAndNegativeMagnitude ShellSurfacePressureKernel.ReversesExactlyForSposSnegAndNegativeMagnitude; assertion 4개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.ReversesExactlyForSposSnegAndNegativeMagnitude 유지 원문 검사 body 및 assertion 동일. 87fe2f501765003b1a98bf624ccfb5d2d6678dfd6d3e073601f2e3d643229c13 87fe2f501765003b1a98bf624ccfb5d2d6678dfd6d3e073601f2e3d643229c13 EXPECT_DOUBLE_EQ(sneg.force[index], -spos.force[index]) | EXPECT_DOUBLE_EQ(negative.force[index], -spos.force[index]) | EXPECT_DOUBLE_EQ(sneg.external_tangent[index], -spos.external_tangent[index]) | EXPECT_DOUBLE_EQ(negative.external_tangent[index], -spos.external_tangent[index]) EXPECT_DOUBLE_EQ(sneg.force[index], -spos.force[index]) | EXPECT_DOUBLE_EQ(negative.force[index], -spos.force[index]) | EXPECT_DOUBLE_EQ(sneg.external_tangent[index], -spos.external_tangent[index]) | EXPECT_DOUBLE_EQ(negative.external_tangent[index], -spos.external_tangent[index]) -Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.UsesReferenceGeometryWithExactZeroLinearTangent ShellSurfacePressureKernel.UsesReferenceGeometryWithExactZeroLinearTangent; assertion 2개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.UsesReferenceGeometryWithExactZeroLinearTangent 유지 원문 검사 body 및 assertion 동일. 6df3b7fe71338797c8f6097a473832beafa3089671066636ca75e8bca3b987f7 6df3b7fe71338797c8f6097a473832beafa3089671066636ca75e8bca3b987f7 EXPECT_EQ(with_displacement.force, without_displacement.force) | EXPECT_EQ(value, 0.0) EXPECT_EQ(with_displacement.force, without_displacement.force) | EXPECT_EQ(value, 0.0) -Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.UsesCurrentAreaAndNormalForFollowerForce ShellSurfacePressureKernel.UsesCurrentAreaAndNormalForFollowerForce; assertion 0개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.UsesCurrentAreaAndNormalForFollowerForce 유지 원문 검사 body 및 assertion 동일. 742615c05c1bc269305f36ae87a6697fe65fd72435d10c586b6014847cd341ba 742615c05c1bc269305f36ae87a6697fe65fd72435d10c586b6014847cd341ba 해당 없음 해당 없음 -Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.HasExactZeroRotationalForceRowsAndTangentBlocks ShellSurfacePressureKernel.HasExactZeroRotationalForceRowsAndTangentBlocks; assertion 2개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.HasExactZeroRotationalForceRowsAndTangentBlocks 유지 원문 검사 body 및 assertion 동일. 8d1c94d3b2b280fcd624c066f984ebf716dce5a75b9eb50cbdfa7db3bf81b3f7 8d1c94d3b2b280fcd624c066f984ebf716dce5a75b9eb50cbdfa7db3bf81b3f7 EXPECT_EQ(contribution.force[row], 0.0) | EXPECT_EQ(contribution.external_tangent[row * kDofCount + column], 0.0) EXPECT_EQ(contribution.force[row], 0.0) | EXPECT_EQ(contribution.external_tangent[row * kDofCount + column], 0.0) -Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.IsTranslationAndRigidRotationObjective ShellSurfacePressureKernel.IsTranslationAndRigidRotationObjective; assertion 1개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.IsTranslationAndRigidRotationObjective 유지 원문 검사 body 및 assertion 동일. 05b4e1eacac15e74c7f5645bfbccd96c0ab08dca4dd74eb6fcbee49c16daaaa5 05b4e1eacac15e74c7f5645bfbccd96c0ab08dca4dd74eb6fcbee49c16daaaa5 EXPECT_NEAR(actual, expected, 1.0e-12) EXPECT_NEAR(actual, expected, 1.0e-12) -Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.IsCovariantUnderCyclicNodeRelabeling ShellSurfacePressureKernel.IsCovariantUnderCyclicNodeRelabeling; assertion 2개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.IsCovariantUnderCyclicNodeRelabeling 유지 원문 검사 body 및 assertion 동일. ca803fdcc621df980fbb68f74a2f58637161c96934d111e03221c7145bb576ba ca803fdcc621df980fbb68f74a2f58637161c96934d111e03221c7145bb576ba EXPECT_NEAR(relabeled.force[row], original.force[original_row], 1.0e-12) | EXPECT_NEAR(relabeled.external_tangent[row * kDofCount + column], original.external_tangent[original_row * kDofCount + original_column], 1.0e-12) EXPECT_NEAR(relabeled.force[row], original.force[original_row], 1.0e-12) | EXPECT_NEAR(relabeled.external_tangent[row * kDofCount + column], original.external_tangent[original_row * kDofCount + original_column], 1.0e-12) -Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.MatchesCenteredFiniteDifferenceForForceAndResidualSigns ShellSurfacePressureKernel.MatchesCenteredFiniteDifferenceForForceAndResidualSigns; assertion 2개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.MatchesCenteredFiniteDifferenceForForceAndResidualSigns 유지 원문 검사 body 및 assertion 동일. dd09d801d862e32fa0409aacff9a835233c61c4f4c7061387b26285589ddf9a0 dd09d801d862e32fa0409aacff9a835233c61c4f4c7061387b26285589ddf9a0 ASSERT_GT(direction_scale, 0.0) | ASSERT_GT(scale, 0.0) ASSERT_GT(direction_scale, 0.0) | ASSERT_GT(scale, 0.0) -Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.PreservesGenerallyNonsymmetricFollowerTangent ShellSurfacePressureKernel.PreservesGenerallyNonsymmetricFollowerTangent; assertion 3개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.PreservesGenerallyNonsymmetricFollowerTangent 유지 원문 검사 body 및 assertion 동일. 6ac36ad2369fd30335c8d818991d31c435ccfd968051fff43160f486090f9ffe 6ac36ad2369fd30335c8d818991d31c435ccfd968051fff43160f486090f9ffe EXPECT_NE(xz, 0.0) | EXPECT_NE(zx, 0.0) | EXPECT_DOUBLE_EQ(xz, -zx) EXPECT_NE(xz, 0.0) | EXPECT_NE(zx, 0.0) | EXPECT_DOUBLE_EQ(xz, -zx) -Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.RejectsNonfiniteCollapsedFoldedAndInvertedGeometryAtEveryRequiredPoint ShellSurfacePressureKernel.RejectsNonfiniteCollapsedFoldedAndInvertedGeometryAtEveryRequiredPoint; assertion 0개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.RejectsNonfiniteCollapsedFoldedAndInvertedGeometryAtEveryRequiredPoint 유지 원문 검사 body 및 assertion 동일. 24d345beb376e5620bf884b8ea0190d3c9e308e0e7b90bece6e143929fd3abdd 24d345beb376e5620bf884b8ea0190d3c9e308e0e7b90bece6e143929fd3abdd 해당 없음 해당 없음 -Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.ValidatesGeometryEvenForZeroPressureOrFactor ShellSurfacePressureKernel.ValidatesGeometryEvenForZeroPressureOrFactor; assertion 0개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.ValidatesGeometryEvenForZeroPressureOrFactor 유지 원문 검사 body 및 assertion 동일. 09b7acaf930fe99ec2cef7ccfa01ef7928b9a54333feb71791e9a13c0d35de37 09b7acaf930fe99ec2cef7ccfa01ef7928b9a54333feb71791e9a13c0d35de37 해당 없음 해당 없음 -Dev tests/unit/loads/shell_surface_pressure_test.cpp support@1-215 helper/oracle/fixture/include/static assertion 구간: PlanarInput, DistortedCurrentInput, EvaluateOrThrow, if, ForceAt, SumForce, MomentAboutOrigin, Norm, for, ExpectVectorRelative, ExpectArraysRelative, TangentAction, ChordLength, Rotate, ProperRotation, RotateInput, ExpectFailure tests/unit/loads/shell_surface_pressure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 78431ddeb801a8e24b974e8f45471a809df750f50df392e341b26471f651c80f 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/loads/shell_surface_pressure_test.cpp support@512-513 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/loads/shell_surface_pressure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/materials/material_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/materials/material_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0e4f0a0beafc60dfc9ed3a016a544ed2b93a305867f8b820dc6817ebe58d8b7d 0e4f0a0beafc60dfc9ed3a016a544ed2b93a305867f8b820dc6817ebe58d8b7d 해당 없음 해당 없음 -Dev tests/unit/materials/material_test.cpp Material.OwnsIsotropicElasticityThroughVirtualBase Material.OwnsIsotropicElasticityThroughVirtualBase; assertion 9개 tests/unit/materials/material_test.cpp Material.OwnsIsotropicElasticityThroughVirtualBase 유지 원문 검사 body 및 assertion 동일. 4a8b6d7c9c0bad72f99959a9fb02d195686bbb2b555313912866b19b3601c0d9 4a8b6d7c9c0bad72f99959a9fb02d195686bbb2b555313912866b19b3601c0d9 "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(material->Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(material->SourceId().source_label, 7) | EXPECT_EQ(material->SourceId().source_label_text, ""Steel"") | EXPECT_EQ(isotropic.Name(), ""Steel"") | EXPECT_DOUBLE_EQ(isotropic.YoungsModulus(), 210.0e9) | EXPECT_DOUBLE_EQ(isotropic.PoissonsRatio(), 0.3) | EXPECT_EQ(isotropic.Location().file, ""models/material.inp"") | EXPECT_EQ(isotropic.Location().line, 30U)" "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(material->Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(material->SourceId().source_label, 7) | EXPECT_EQ(material->SourceId().source_label_text, ""Steel"") | EXPECT_EQ(isotropic.Name(), ""Steel"") | EXPECT_DOUBLE_EQ(isotropic.YoungsModulus(), 210.0e9) | EXPECT_DOUBLE_EQ(isotropic.PoissonsRatio(), 0.3) | EXPECT_EQ(isotropic.Location().file, ""models/material.inp"") | EXPECT_EQ(isotropic.Location().line, 30U)" -Dev tests/unit/materials/material_test.cpp Material.RejectsInvalidCurrentElasticFields Material.RejectsInvalidCurrentElasticFields; assertion 5개 tests/unit/materials/material_test.cpp Material.RejectsInvalidCurrentElasticFields 유지 원문 검사 body 및 assertion 동일. b9022c41bd0e641beaa68206c8fc19d2396a5b41ccf8e8bfe1bbd9911b9dde81 b9022c41bd0e641beaa68206c8fc19d2396a5b41ccf8e8bfe1bbd9911b9dde81 ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].severity, fesa::Severity::kError) | EXPECT_TRUE(beam_compatible.HasValue()) ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].severity, fesa::Severity::kError) | EXPECT_TRUE(beam_compatible.HasValue()) -Dev tests/unit/materials/material_test.cpp support@1-18 helper/oracle/fixture/include/static assertion 구간: MaterialSourceId, MaterialLocation tests/unit/materials/material_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0bc44f8ab121b123fdba22e1b3d50215ac0446ace019d14397d3e8a69ff0ae3b 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/math/dense_blas_internal_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 12개 tests/unit/math/dense_blas_internal_test.cpp file 이관 raw primitive·TLS 복원 검사를 복원하고 Refactor factor/jet 검사를 유지한다. Cholesky lower·inverse 값은 DenseFactor::Lower와 SolveLower(identity)로 검사한다. 실패한 out-parameter 보존은 이전 owned factor/result 보존으로 검사한다. 옛 mutable reason enum·throw 구조는 typed Result의 shape/nonfinite/pivot 실패와 성공 후 재사용으로 이관한다. d63714753d2cb3dc08d74b1d95b437b2a44ecf84087888f8814d62f227623aeb 358c0fa2dac6cebb5ddc2cdac29661c7d82a8b99da881ce069275b4daf4aba3a 해당 없음 해당 없음 -Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.PolicyQueryPreservesDefaultPositiveAndNestedTls DenseBlasInternal.PolicyQueryPreservesDefaultPositiveAndNestedTls; assertion 12개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.PolicyQueryPreservesDefaultPositiveAndNestedTls 유지 원문 검사 body 및 assertion 동일. 442bb466388f94391ef541ae44881c239ab3ef9a21e3c1eeb4417de67793f596 442bb466388f94391ef541ae44881c239ab3ef9a21e3c1eeb4417de67793f596 EXPECT_EQ(policy.blas_max_threads, 1) | EXPECT_EQ(policy.dynamic, dynamic) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_get_max_threads(), global) | EXPECT_EQ(mkl_domain_get_max_threads(MKL_DOMAIN_BLAS), domain) | EXPECT_EQ(mkl_get_dynamic(), dynamic) | EXPECT_EQ(ReadScopedLocalDensePolicy().blas_max_threads, 2) | EXPECT_EQ(mkl_set_num_threads_local(2), 2) | EXPECT_EQ(ReadScopedLocalDensePolicy().blas_max_threads, 1) | EXPECT_EQ(mkl_set_num_threads_local(1), 1) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_get_dynamic(), dynamic) EXPECT_EQ(policy.blas_max_threads, 1) | EXPECT_EQ(policy.dynamic, dynamic) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_get_max_threads(), global) | EXPECT_EQ(mkl_domain_get_max_threads(MKL_DOMAIN_BLAS), domain) | EXPECT_EQ(mkl_get_dynamic(), dynamic) | EXPECT_EQ(ReadScopedLocalDensePolicy().blas_max_threads, 2) | EXPECT_EQ(mkl_set_num_threads_local(2), 2) | EXPECT_EQ(ReadScopedLocalDensePolicy().blas_max_threads, 1) | EXPECT_EQ(mkl_set_num_threads_local(1), 1) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_get_dynamic(), dynamic) -Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.OuterProductUsesRectangularStorageAndPreservesRejection DenseBlasInternal.OuterProductUsesRectangularStorageAndPreservesRejection; assertion 9개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.OuterProductUsesRectangularStorageAndPreservesRejection 유지 원문 검사 body 및 assertion 동일. 9e70933ff45ccb1c3f65ab23032652c110f80e96b0b87bf78c62fae2f05fbfd6 9e70933ff45ccb1c3f65ab23032652c110f80e96b0b87bf78c62fae2f05fbfd6 ASSERT_TRUE(OuterProduct(left.data(), left.size(), right.data(), right.size(), product.data())) | EXPECT_EQ(product, expected) | EXPECT_FALSE(OuterProduct(invalid.data(), invalid.size(), right.data(), right.size(), product.data())) | EXPECT_EQ(product, accepted) | EXPECT_TRUE(OuterProduct(nullptr, 0U, nullptr, 3U, nullptr)) | EXPECT_TRUE(OuterProduct(nullptr, 2U, nullptr, 0U, nullptr)) | EXPECT_THROW(OuterProduct(nullptr, 2U, right.data(), 3U, product.data()), std::invalid_argument) | EXPECT_THROW(OuterProduct(nullptr, too_large, nullptr, 1U, nullptr), std::length_error) | EXPECT_THROW(OuterProduct(nullptr, too_many_elements, nullptr, 1U, nullptr), std::length_error) ASSERT_TRUE(OuterProduct(left.data(), left.size(), right.data(), right.size(), product.data())) | EXPECT_EQ(product, expected) | EXPECT_FALSE(OuterProduct(invalid.data(), invalid.size(), right.data(), right.size(), product.data())) | EXPECT_EQ(product, accepted) | EXPECT_TRUE(OuterProduct(nullptr, 0U, nullptr, 3U, nullptr)) | EXPECT_TRUE(OuterProduct(nullptr, 2U, nullptr, 0U, nullptr)) | EXPECT_THROW(OuterProduct(nullptr, 2U, right.data(), 3U, product.data()), std::invalid_argument) | EXPECT_THROW(OuterProduct(nullptr, too_large, nullptr, 1U, nullptr), std::length_error) | EXPECT_THROW(OuterProduct(nullptr, too_many_elements, nullptr, 1U, nullptr), std::length_error) -Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.LocalDenseScopeRestoresTlsAfterProductsAndUnwind DenseBlasInternal.LocalDenseScopeRestoresTlsAfterProductsAndUnwind; assertion 9개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.LocalDenseScopeRestoresTlsAfterProductsAndUnwind 유지 원문 검사 body 및 assertion 동일. d355acc671f14fab39551cdd60c62282ed92a14bc5e377567fb3b737b12c9745 d355acc671f14fab39551cdd60c62282ed92a14bc5e377567fb3b737b12c9745 EXPECT_EQ(mkl_get_max_threads(), 1) | EXPECT_TRUE( OuterProduct(left.data(), 2U, right.data(), 2U, product.data())) | EXPECT_DOUBLE_EQ(product[0U], 0.0) | EXPECT_DOUBLE_EQ(product[3U], 8.0) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_get_max_threads(), 3) | EXPECT_EQ(mkl_get_max_threads(), 3) EXPECT_EQ(mkl_get_max_threads(), 1) | EXPECT_TRUE( OuterProduct(left.data(), 2U, right.data(), 2U, product.data())) | EXPECT_DOUBLE_EQ(product[0U], 0.0) | EXPECT_DOUBLE_EQ(product[3U], 8.0) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_get_max_threads(), 3) | EXPECT_EQ(mkl_get_max_threads(), 3) -Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.OuterProductLeavesFiniteInputOverflowForOwnerGate DenseBlasInternal.OuterProductLeavesFiniteInputOverflowForOwnerGate; assertion 2개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.OuterProductLeavesFiniteInputOverflowForOwnerGate 유지 원문 검사 body 및 assertion 동일. fd8b9e0ad33db117848f7fdf9e55c6ebb6bc52897eb7de99683f5346d189007a fd8b9e0ad33db117848f7fdf9e55c6ebb6bc52897eb7de99683f5346d189007a EXPECT_TRUE(OuterProduct(left.data(), 1U, right.data(), 1U, product.data())) | EXPECT_TRUE(std::isinf(product[0U])) EXPECT_TRUE(OuterProduct(left.data(), 1U, right.data(), 1U, product.data())) | EXPECT_TRUE(std::isinf(product[0U])) -Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.TransposeRightProductUsesInnerAndRectangularStrides DenseBlasInternal.TransposeRightProductUsesInnerAndRectangularStrides; assertion 6개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.TransposeRightProductUsesInnerAndRectangularStrides 유지 원문 검사 body 및 assertion 동일. 741c248210dff918dbe2f96dab0d450f3fe86576c2c02396edddb819ab431a90 741c248210dff918dbe2f96dab0d450f3fe86576c2c02396edddb819ab431a90 ASSERT_TRUE(MultiplyTransposeRight(left.data(), 2U, right.data(), 4U, 3U, product.data())) | EXPECT_EQ(product, expected) | EXPECT_TRUE( MultiplyTransposeRight(nullptr, 2U, nullptr, 4U, 0U, product.data())) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_FALSE(MultiplyTransposeRight(left.data(), 2U, nonfinite.data(), 4U, 3U, product.data())) | EXPECT_DOUBLE_EQ(value, 31.0) ASSERT_TRUE(MultiplyTransposeRight(left.data(), 2U, right.data(), 4U, 3U, product.data())) | EXPECT_EQ(product, expected) | EXPECT_TRUE( MultiplyTransposeRight(nullptr, 2U, nullptr, 4U, 0U, product.data())) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_FALSE(MultiplyTransposeRight(left.data(), 2U, nonfinite.data(), 4U, 3U, product.data())) | EXPECT_DOUBLE_EQ(value, 31.0) -Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CDup003ConvertsZeroNormalAndOverflowLengths DenseBlasInternal.CDup003ConvertsZeroNormalAndOverflowLengths; assertion 6개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CDup003ConvertsZeroNormalAndOverflowLengths 유지 원문 검사 body 및 assertion 동일. 7310c1121f67249879da772e16e1f0aed31290565d542780b71704dbe397cf82 7310c1121f67249879da772e16e1f0aed31290565d542780b71704dbe397cf82 ASSERT_TRUE(zero.HasValue()) | EXPECT_EQ(zero.Value(), 0) | ASSERT_TRUE(normal.HasValue()) | EXPECT_EQ(normal.Value(), 3) | EXPECT_FALSE(rejected.HasValue()) | EXPECT_FALSE(rejected.GetStatus().IsOk()) ASSERT_TRUE(zero.HasValue()) | EXPECT_EQ(zero.Value(), 0) | ASSERT_TRUE(normal.HasValue()) | EXPECT_EQ(normal.Value(), 3) | EXPECT_FALSE(rejected.HasValue()) | EXPECT_FALSE(rejected.GetStatus().IsOk()) -Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CDup003CopiesZeroAndNonzeroContiguousValues DenseBlasInternal.CDup003CopiesZeroAndNonzeroContiguousValues; assertion 2개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CDup003CopiesZeroAndNonzeroContiguousValues 유지 원문 검사 body 및 assertion 동일. 6174848905a7f5e3b5af5b336c22d8d4ce3e9872c557e543d783f5b8e2970e36 6174848905a7f5e3b5af5b336c22d8d4ce3e9872c557e543d783f5b8e2970e36 EXPECT_NO_THROW(CopyValues(nullptr, 0U, nullptr)) | EXPECT_EQ(destination, source) EXPECT_NO_THROW(CopyValues(nullptr, 0U, nullptr)) | EXPECT_EQ(destination, source) -Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.TransposeProductChecksShapeAndKnownRectangularAction DenseBlasInternal.TransposeProductChecksShapeAndKnownRectangularAction; assertion 10개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.TransposeProductChecksShapeAndKnownRectangularAction 유지 원문 검사 body 및 assertion 동일. 894b7358e85d1e6dc03383c1d95461ce32e35eb5b870fcfe6e67306ed461ff92 894b7358e85d1e6dc03383c1d95461ce32e35eb5b870fcfe6e67306ed461ff92 ASSERT_EQ(product.Rows(), 2U) | ASSERT_EQ(product.Columns(), 1U) | EXPECT_DOUBLE_EQ(product(0U, 0U), 8.0) | EXPECT_DOUBLE_EQ(product(1U, 0U), 6.0) | EXPECT_THROW(static_cast(MultiplyTransposeLeft(left, Matrix{2U, 1U})), std::invalid_argument) | EXPECT_EQ(empty.Rows(), 2U) | EXPECT_EQ(empty.Columns(), 3U) | EXPECT_DOUBLE_EQ(empty(1U, 2U), 0.0) | EXPECT_THROW(static_cast(MultiplyTransposeLeft(left, right)), std::invalid_argument) | EXPECT_THROW(static_cast(MultiplyTransposeLeft(left, right)), std::invalid_argument) ASSERT_EQ(product.Rows(), 2U) | ASSERT_EQ(product.Columns(), 1U) | EXPECT_DOUBLE_EQ(product(0U, 0U), 8.0) | EXPECT_DOUBLE_EQ(product(1U, 0U), 6.0) | EXPECT_THROW(static_cast(MultiplyTransposeLeft(left, Matrix{2U, 1U})), std::invalid_argument) | EXPECT_EQ(empty.Rows(), 2U) | EXPECT_EQ(empty.Columns(), 3U) | EXPECT_DOUBLE_EQ(empty(1U, 2U), 0.0) | EXPECT_THROW(static_cast(MultiplyTransposeLeft(left, right)), std::invalid_argument) | EXPECT_THROW(static_cast(MultiplyTransposeLeft(left, right)), std::invalid_argument) -Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.DiagonalProductKeepsEntrywiseCancellationAndChecks DenseBlasInternal.DiagonalProductKeepsEntrywiseCancellationAndChecks; assertion 5개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.DiagonalProductKeepsEntrywiseCancellationAndChecks 유지 원문 검사 body 및 assertion 동일. 2f29992019630faca0543ec9c69fd7545e6746318f3522eb279d93dd40c2c1a6 2f29992019630faca0543ec9c69fd7545e6746318f3522eb279d93dd40c2c1a6 EXPECT_DOUBLE_EQ(product[0U] + (product[1U] - product[2U]), 4) | EXPECT_EQ(MultiplyDiagonal(Vector{0U}, Vector{0U}).Size(), 0U) | EXPECT_THROW(static_cast(MultiplyDiagonal(diagonal, Vector{2U})), std::invalid_argument) | EXPECT_THROW(static_cast(MultiplyDiagonal(diagonal, input)), std::invalid_argument) | EXPECT_THROW(static_cast(MultiplyDiagonal(diagonal, input)), std::invalid_argument) EXPECT_DOUBLE_EQ(product[0U] + (product[1U] - product[2U]), 4) | EXPECT_EQ(MultiplyDiagonal(Vector{0U}, Vector{0U}).Size(), 0U) | EXPECT_THROW(static_cast(MultiplyDiagonal(diagonal, Vector{2U})), std::invalid_argument) | EXPECT_THROW(static_cast(MultiplyDiagonal(diagonal, input)), std::invalid_argument) | EXPECT_THROW(static_cast(MultiplyDiagonal(diagonal, input)), std::invalid_argument) -Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CholeskyAndInverseMatchKnownFactorsAndKeepFailedOutput DenseBlasInternal.CholeskyAndInverseMatchKnownFactorsAndKeepFailedOutput; assertion 13개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CholeskyAndInverseMatchKnownFactorsAndKeepFailedOutput 이관 raw primitive·TLS 복원 검사를 복원하고 Refactor factor/jet 검사를 유지한다. Cholesky lower·inverse 값은 DenseFactor::Lower와 SolveLower(identity)로 검사한다. 실패한 out-parameter 보존은 이전 owned factor/result 보존으로 검사한다. 옛 mutable reason enum·throw 구조는 typed Result의 shape/nonfinite/pivot 실패와 성공 후 재사용으로 이관한다. 96aeb1e9d3a464a709e382c3e467ce7214f57f8ba053a40cc47ec20b6b2ef1c3 46024ffb6450ef4d9171647e852794a623149e86c96c2c4f0dc79a1639b08b8b ASSERT_TRUE(CholeskyLowerAndInverse(matrix, lower, inverse)) | EXPECT_DOUBLE_EQ(lower(0U, 0U), 2) | EXPECT_DOUBLE_EQ(lower(1U, 0U), 1) | EXPECT_DOUBLE_EQ(lower(1U, 1U), 2) | EXPECT_DOUBLE_EQ(lower(0U, 1U), 0) | EXPECT_DOUBLE_EQ(inverse(0U, 0U), .5) | EXPECT_DOUBLE_EQ(inverse(1U, 0U), -.25) | EXPECT_DOUBLE_EQ(inverse(1U, 1U), .5) | EXPECT_FALSE(CholeskyLowerAndInverse(matrix, lower, inverse)) | EXPECT_DOUBLE_EQ(lower(1U, 1U), 2) | EXPECT_DOUBLE_EQ(inverse(1U, 1U), .5) | EXPECT_THROW(static_cast(CholeskyLowerAndInverse( Matrix{2U, 1U}, lower, inverse)), std::invalid_argument) | EXPECT_THROW(static_cast(CholeskyLowerAndInverse(matrix, lower, inverse)), std::invalid_argument) ASSERT_TRUE(factor.HasValue()) | ASSERT_TRUE(lower.HasValue()) | ASSERT_TRUE(inverse.HasValue()) | EXPECT_DOUBLE_EQ(lower.Value()(0, 0), 2) | EXPECT_DOUBLE_EQ(lower.Value()(1, 0), 1) | EXPECT_DOUBLE_EQ(lower.Value()(1, 1), 2) | EXPECT_DOUBLE_EQ(lower.Value()(0, 1), 0) | EXPECT_DOUBLE_EQ(inverse.Value()(0, 0), .5) | EXPECT_DOUBLE_EQ(inverse.Value()(1, 0), -.25) | EXPECT_DOUBLE_EQ(inverse.Value()(1, 1), .5) | EXPECT_FALSE(DenseFactor::Cholesky(matrix).HasValue()) | EXPECT_DOUBLE_EQ(lower.Value()(1, 1), 2) | EXPECT_DOUBLE_EQ(inverse.Value()(1, 1), .5) | EXPECT_FALSE(DenseFactor::Cholesky(Matrix{2U, 1U}).HasValue()) | EXPECT_FALSE(DenseFactor::Cholesky(matrix).HasValue()) | EXPECT_DOUBLE_EQ(factor.Value().SolveLower(identity).Value()(1, 1), .5) -Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CholeskyFailureReasonPreservesCandidatesAndResetsOnReuse DenseBlasInternal.CholeskyFailureReasonPreservesCandidatesAndResetsOnReuse; assertion 10개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CholeskyFailureReasonPreservesCandidatesAndResetsOnReuse 이관 raw primitive·TLS 복원 검사를 복원하고 Refactor factor/jet 검사를 유지한다. Cholesky lower·inverse 값은 DenseFactor::Lower와 SolveLower(identity)로 검사한다. 실패한 out-parameter 보존은 이전 owned factor/result 보존으로 검사한다. 옛 mutable reason enum·throw 구조는 typed Result의 shape/nonfinite/pivot 실패와 성공 후 재사용으로 이관한다. 93985fb3800b1c4b43ba914f29d9f9fa12f1b78b99d8c51a53eaf9fb64d6f26c a65d2bc077527a818aa3e8f336f196880b3ca99bed84fe565e3172b8b92791d1 ASSERT_TRUE(CholeskyLowerAndInverse(matrix, lower, inverse, &reason)) | EXPECT_EQ(reason, CholeskyFailure::kNone) | EXPECT_FALSE(CholeskyLowerAndInverse(matrix, lower, inverse, &reason)) | EXPECT_EQ(reason, CholeskyFailure::kPivot) | EXPECT_DOUBLE_EQ(lower(1U, 1U), 3.0) | EXPECT_DOUBLE_EQ(inverse(1U, 1U), 1.0 / 3.0) | EXPECT_TRUE(CholeskyLowerAndInverse(matrix, lower, inverse, &reason)) | EXPECT_EQ(reason, CholeskyFailure::kNone) | EXPECT_THROW(CholeskyLowerAndInverse(Matrix{2U, 1U}, lower, inverse, &reason), std::invalid_argument) | EXPECT_EQ(reason, CholeskyFailure::kNone) "ASSERT_TRUE(accepted.HasValue()) | ASSERT_FALSE(failed.HasValue()) | ASSERT_FALSE(failed.GetStatus().Diagnostics().empty()) | EXPECT_EQ(failed.GetStatus().Diagnostics()[0].code, ""dense-factor-pivot"") | EXPECT_DOUBLE_EQ(accepted.Value().Lower().Value()(1, 1), 3) | EXPECT_DOUBLE_EQ(accepted.Value().SolveLower(identity).Value()(1, 1), 1.0 / 3.0) | EXPECT_TRUE(DenseFactor::Cholesky(matrix).HasValue()) | EXPECT_FALSE(DenseFactor::Cholesky(Matrix{2U, 1U}).HasValue()) | EXPECT_TRUE(DenseFactor::Cholesky(matrix).HasValue())" -Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.SingleEquationScopeRestoresTlsAndRespectsOverrides DenseBlasInternal.SingleEquationScopeRestoresTlsAndRespectsOverrides; assertion 7개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.SingleEquationScopeRestoresTlsAndRespectsOverrides 유지 원문 검사 body 및 assertion 동일. 04f7da1581a7cb9e82ebf7541c0d2c650bead4a06ec89fc962587f7886f7f24c 04f7da1581a7cb9e82ebf7541c0d2c650bead4a06ec89fc962587f7886f7f24c EXPECT_EQ(mkl_get_max_threads(), 1) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_get_max_threads(), 3) | EXPECT_EQ(mkl_get_max_threads(), 3) EXPECT_EQ(mkl_get_max_threads(), 1) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_get_max_threads(), 3) | EXPECT_EQ(mkl_get_max_threads(), 3) -Dev tests/unit/math/dense_blas_internal_test.cpp support@1-13 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/dense_blas_internal_test.cpp file-support 이관 raw primitive·TLS 복원 검사를 복원하고 Refactor factor/jet 검사를 유지한다. Cholesky lower·inverse 값은 DenseFactor::Lower와 SolveLower(identity)로 검사한다. 실패한 out-parameter 보존은 이전 owned factor/result 보존으로 검사한다. 옛 mutable reason enum·throw 구조는 typed Result의 shape/nonfinite/pivot 실패와 성공 후 재사용으로 이관한다. f569be3011275f4abfba749d996ad0a7c0cdfd7504805f62ec6de29351bfdd08 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/math/dense_blas_internal_test.cpp support@297-299 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/dense_blas_internal_test.cpp file-support 유지 raw primitive·TLS 복원 검사를 복원하고 Refactor factor/jet 검사를 유지한다. Cholesky lower·inverse 값은 DenseFactor::Lower와 SolveLower(identity)로 검사한다. 실패한 out-parameter 보존은 이전 owned factor/result 보존으로 검사한다. 옛 mutable reason enum·throw 구조는 typed Result의 shape/nonfinite/pivot 실패와 성공 후 재사용으로 이관한다. 1d8d74ae5cf24c16f28e2d6163baba8a6c1f59dd34f7b385e4f9fd2fda14a56b 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/math/high_low_arithmetic_original.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/unit/math/high_low_arithmetic_original.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e2d9911ce60d0b689c5ebe9fe46c089f5edd05068b62c2b940b37c7cbc1e0ead e2d9911ce60d0b689c5ebe9fe46c089f5edd05068b62c2b940b37c7cbc1e0ead 해당 없음 해당 없음 -Dev tests/unit/math/high_low_arithmetic_original.h support@1-162 helper/oracle/fixture/include/static assertion 구간: fesa, ArithmeticEnvironmentSupported, HighLow, InvalidHighLow, IsFinite, TwoSum, IsNormalized, Rounded, Add, Negate, Subtract, LowestBitExponent, while, TwoProduct, Multiply, Compare, Abs, Divide tests/unit/math/high_low_arithmetic_original.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3c01c8a5c85ec696c3d39b4027401fe16d04fa0fbe3fc70f44336bb242e20339 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/math/high_low_arithmetic_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/math/high_low_arithmetic_test.cpp file 이관 Dev frozen oracle helper 원문을 유지한다. 모든 exponent·finite 분류·raw-bit 검사를 복원하고 Refactor packet dispatch 검사를 함께 남긴다. bb3a73827650ecd71ab92015e1add5c2836c5e9bc6e712068823e228d7389f5f 6e7fafa845bdd0c3a648b846f2ed54bf2fd07d5ec492a7c84b164c93f6e6ecc4 해당 없음 해당 없음 -Dev tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RetainsSubUlpAdditionsAndSignedCancellation HighLowArithmetic.RetainsSubUlpAdditionsAndSignedCancellation; assertion 15개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RetainsSubUlpAdditionsAndSignedCancellation 유지 원문 검사 body 및 assertion 동일. f2a492c6eb8068167a3979f743c32cbc73dfe847846d892e715ed7bfbc9e05ec f2a492c6eb8068167a3979f743c32cbc73dfe847846d892e715ed7bfbc9e05ec ASSERT_TRUE(ArithmeticEnvironmentSupported()) | EXPECT_FALSE(IsNormalized(HighLow{-0.0, -0.0})) | EXPECT_TRUE(IsNormalized(HighLow{-0.0})) | EXPECT_FALSE(std::signbit(HighLow{-0.0}.high)) | EXPECT_FALSE(std::signbit(Negate(HighLow{}).high)) | EXPECT_FALSE(std::signbit(Negate(HighLow{}).low)) | EXPECT_EQ(positive.high, 1) | EXPECT_EQ(positive.low, tiny) | EXPECT_EQ(Rounded(positive), 1) | EXPECT_EQ(difference.high, tiny) | EXPECT_EQ(difference.low, 0) | EXPECT_EQ(Compare(positive, HighLow{1}), 1) | EXPECT_EQ(Compare(HighLow{1, -tiny}, HighLow{1}), -1) | EXPECT_EQ(Compare(Add(positive, Negate(positive)), HighLow{}), 0) | EXPECT_EQ(Abs(HighLow{-1, -tiny}).low, tiny) ASSERT_TRUE(ArithmeticEnvironmentSupported()) | EXPECT_FALSE(IsNormalized(HighLow{-0.0, -0.0})) | EXPECT_TRUE(IsNormalized(HighLow{-0.0})) | EXPECT_FALSE(std::signbit(HighLow{-0.0}.high)) | EXPECT_FALSE(std::signbit(Negate(HighLow{}).high)) | EXPECT_FALSE(std::signbit(Negate(HighLow{}).low)) | EXPECT_EQ(positive.high, 1) | EXPECT_EQ(positive.low, tiny) | EXPECT_EQ(Rounded(positive), 1) | EXPECT_EQ(difference.high, tiny) | EXPECT_EQ(difference.low, 0) | EXPECT_EQ(Compare(positive, HighLow{1}), 1) | EXPECT_EQ(Compare(HighLow{1, -tiny}, HighLow{1}), -1) | EXPECT_EQ(Compare(Add(positive, Negate(positive)), HighLow{}), 0) | EXPECT_EQ(Abs(HighLow{-1, -tiny}).low, tiny) -Dev tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.AllProductTermsAndDivisionResidualReachState HighLowArithmetic.AllProductTermsAndDivisionResidualReachState; assertion 6개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.AllProductTermsAndDivisionResidualReachState 유지 원문 검사 body 및 assertion 동일. 5d464b75e43ed56254ebd034fe40e7d2683352bbe913cd6eaf816614bd3582dd 5d464b75e43ed56254ebd034fe40e7d2683352bbe913cd6eaf816614bd3582dd EXPECT_EQ(product.high, 1) | EXPECT_EQ(product.low, -std::ldexp(1.0, -120)) | ASSERT_TRUE(IsNormalized(quotient)) | EXPECT_LE(std::abs(defect.high), std::ldexp(1.0, -104)) | EXPECT_EQ(cancellation.high, tiny / 2) | EXPECT_EQ(cancellation.low, 0) EXPECT_EQ(product.high, 1) | EXPECT_EQ(product.low, -std::ldexp(1.0, -120)) | ASSERT_TRUE(IsNormalized(quotient)) | EXPECT_LE(std::abs(defect.high), std::ldexp(1.0, -104)) | EXPECT_EQ(cancellation.high, tiny / 2) | EXPECT_EQ(cancellation.low, 0) -Dev tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.NormalizesTiesAndCrossesPowerOfTwoBoundary HighLowArithmetic.NormalizesTiesAndCrossesPowerOfTwoBoundary; assertion 6개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.NormalizesTiesAndCrossesPowerOfTwoBoundary 유지 원문 검사 body 및 assertion 동일. 4bbb8298c7a24ac9be9d05d58a013ed1d2e3ae9602815e911f9596f567694549 4bbb8298c7a24ac9be9d05d58a013ed1d2e3ae9602815e911f9596f567694549 EXPECT_TRUE(IsNormalized(HighLow{1, half_ulp})) | EXPECT_FALSE(IsNormalized(HighLow{std::nextafter(1.0, 2.0), -half_ulp})) | EXPECT_EQ(result.high, std::nextafter(1.0, 2.0)) | EXPECT_EQ(result.low, 0) | EXPECT_EQ(Add(minimum, minimum).high, 2 * minimum.high) | EXPECT_EQ(Multiply(minimum, HighLow{1}).high, minimum.high) EXPECT_TRUE(IsNormalized(HighLow{1, half_ulp})) | EXPECT_FALSE(IsNormalized(HighLow{std::nextafter(1.0, 2.0), -half_ulp})) | EXPECT_EQ(result.high, std::nextafter(1.0, 2.0)) | EXPECT_EQ(result.low, 0) | EXPECT_EQ(Add(minimum, minimum).high, 2 * minimum.high) | EXPECT_EQ(Multiply(minimum, HighLow{1}).high, minimum.high) -Dev tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RejectsUnsupportedDyadicTailAndNonfiniteResults HighLowArithmetic.RejectsUnsupportedDyadicTailAndNonfiniteResults; assertion 8개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RejectsUnsupportedDyadicTailAndNonfiniteResults 유지 원문 검사 body 및 assertion 동일. e13007c60ef0ca2d8c8755035337fb55cecb64bcf7483cb7695ab98c1d5cfaa1 e13007c60ef0ca2d8c8755035337fb55cecb64bcf7483cb7695ab98c1d5cfaa1 EXPECT_FALSE(IsFinite(Multiply(minimum, HighLow{0.5}))) | EXPECT_FALSE(IsFinite(Multiply(HighLow{std::ldexp(1.0, -1022)}, HighLow{std::nextafter(0.5, 1.0)}))) | EXPECT_FALSE(IsFinite(Divide(minimum, HighLow{2}))) | EXPECT_FALSE(IsFinite(Divide(HighLow{1}, HighLow{}))) | EXPECT_FALSE(IsFinite(Add(HighLow{std::numeric_limits::max()}, HighLow{std::numeric_limits::max()}))) | EXPECT_EQ(Compare(InvalidHighLow(), HighLow{}), 2) | EXPECT_FALSE(IsNormalized(HighLow{1, 1})) | EXPECT_TRUE(std::isnan(Rounded(HighLow{1, 1}))) EXPECT_FALSE(IsFinite(Multiply(minimum, HighLow{0.5}))) | EXPECT_FALSE(IsFinite(Multiply(HighLow{std::ldexp(1.0, -1022)}, HighLow{std::nextafter(0.5, 1.0)}))) | EXPECT_FALSE(IsFinite(Divide(minimum, HighLow{2}))) | EXPECT_FALSE(IsFinite(Divide(HighLow{1}, HighLow{}))) | EXPECT_FALSE(IsFinite(Add(HighLow{std::numeric_limits::max()}, HighLow{std::numeric_limits::max()}))) | EXPECT_EQ(Compare(InvalidHighLow(), HighLow{}), 2) | EXPECT_FALSE(IsNormalized(HighLow{1, 1})) | EXPECT_TRUE(std::isnan(Rounded(HighLow{1, 1}))) -Dev tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.ExactDyadicOracleBoundsDiscardedTailAndRefinement HighLowArithmetic.ExactDyadicOracleBoundsDiscardedTailAndRefinement; assertion 13개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.ExactDyadicOracleBoundsDiscardedTailAndRefinement 유지 원문 검사 body 및 assertion 동일. 231d3d1a2023a915af0befbf01924f42b59b43b192520841785ac05d571e9452 231d3d1a2023a915af0befbf01924f42b59b43b192520841785ac05d571e9452 EXPECT_EQ(sum.high, std::ldexp(0x1.0000000000001p+0, scale)) | EXPECT_EQ(sum.low, -std::ldexp(1.0, scale-54)) | EXPECT_EQ(square.high, std::ldexp(1.0, 2*scale)) | EXPECT_EQ(square.low, std::ldexp(1.0, 2*scale-53)) | EXPECT_EQ(third.high, 0x1.5555555555555p-2) | EXPECT_EQ(third.low, 0x1.5555555555555p-56) | EXPECT_EQ(third_residual.high, -std::ldexp(1.0, -108)) | EXPECT_EQ(third_residual.low, 0) | EXPECT_EQ(refined.high, 0x1.999999999999ap-1) | EXPECT_EQ(refined.low, -0x1.8e147ae147ae1p-55) | EXPECT_EQ(boundary.high, 0x1.0000000000002p-970) | EXPECT_EQ(boundary.low, std::numeric_limits::denorm_min()) | EXPECT_FALSE(IsFinite(TwoProduct(std::nextafter(1.0, 2.0), std::nextafter(std::numeric_limits::min(), 1.0)))) EXPECT_EQ(sum.high, std::ldexp(0x1.0000000000001p+0, scale)) | EXPECT_EQ(sum.low, -std::ldexp(1.0, scale-54)) | EXPECT_EQ(square.high, std::ldexp(1.0, 2*scale)) | EXPECT_EQ(square.low, std::ldexp(1.0, 2*scale-53)) | EXPECT_EQ(third.high, 0x1.5555555555555p-2) | EXPECT_EQ(third.low, 0x1.5555555555555p-56) | EXPECT_EQ(third_residual.high, -std::ldexp(1.0, -108)) | EXPECT_EQ(third_residual.low, 0) | EXPECT_EQ(refined.high, 0x1.999999999999ap-1) | EXPECT_EQ(refined.low, -0x1.8e147ae147ae1p-55) | EXPECT_EQ(boundary.high, 0x1.0000000000002p-970) | EXPECT_EQ(boundary.low, std::numeric_limits::denorm_min()) | EXPECT_FALSE(IsFinite(TwoProduct(std::nextafter(1.0, 2.0), std::nextafter(std::numeric_limits::min(), 1.0)))) -Dev tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RejectsChangedRoundingAndFlushToZeroEnvironment HighLowArithmetic.RejectsChangedRoundingAndFlushToZeroEnvironment; assertion 6개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RejectsChangedRoundingAndFlushToZeroEnvironment 유지 원문 검사 body 및 assertion 동일. 356cfeef68419bd3c33a3abd04e7d67b2bc2ea0a1b4c4bb8e0888fda56c6bc48 356cfeef68419bd3c33a3abd04e7d67b2bc2ea0a1b4c4bb8e0888fda56c6bc48 ASSERT_TRUE(ArithmeticEnvironmentSupported()) | ASSERT_EQ(std::fesetround(FE_DOWNWARD), 0) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) | ASSERT_EQ(std::fesetround(FE_TONEAREST), 0) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) ASSERT_TRUE(ArithmeticEnvironmentSupported()) | ASSERT_EQ(std::fesetround(FE_DOWNWARD), 0) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) | ASSERT_EQ(std::fesetround(FE_TONEAREST), 0) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) -Dev tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.FiniteClassificationMatchesBinary64Boundaries HighLowArithmetic.FiniteClassificationMatchesBinary64Boundaries; assertion 2개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.FiniteClassificationMatchesBinary64Boundaries 유지 원문 검사 body 및 assertion 동일. 809bcc24d04c18fe6257e3e6fc7f9e5f7da525fea89edcc83e404457e86c7476 809bcc24d04c18fe6257e3e6fc7f9e5f7da525fea89edcc83e404457e86c7476 EXPECT_EQ(IsFinite(HighLow{value, 0.0}), expected) | EXPECT_EQ(IsFinite(HighLow{1.0, value}), expected) EXPECT_EQ(IsFinite(HighLow{value, 0.0}), expected) | EXPECT_EQ(IsFinite(HighLow{1.0, value}), expected) -Dev tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.BitExponentMatchesFrozenOracleAcrossEveryExponent HighLowArithmetic.BitExponentMatchesFrozenOracleAcrossEveryExponent; assertion 3개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.BitExponentMatchesFrozenOracleAcrossEveryExponent 유지 원문 검사 body 및 assertion 동일. e957ee50fe2731195a1ed42574146561f08c31ed5378594ecbc353cc9891bf3e e957ee50fe2731195a1ed42574146561f08c31ed5378594ecbc353cc9891bf3e ASSERT_TRUE(ArithmeticEnvironmentSupported()) | ASSERT_EQ(LowestBitExponent(value), fesa::high_low_original::LowestBitExponent(value)) | EXPECT_EQ(LowestBitExponent(value), fesa::high_low_original::LowestBitExponent(value)) ASSERT_TRUE(ArithmeticEnvironmentSupported()) | ASSERT_EQ(LowestBitExponent(value), fesa::high_low_original::LowestBitExponent(value)) | EXPECT_EQ(LowestBitExponent(value), fesa::high_low_original::LowestBitExponent(value)) -Dev tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.OptimizedArithmeticMatchesFrozenOriginalBits HighLowArithmetic.OptimizedArithmeticMatchesFrozenOriginalBits; assertion 3개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.OptimizedArithmeticMatchesFrozenOriginalBits 유지 원문 검사 body 및 assertion 동일. 9ed52541f1fcb93b23aee5f64a19cdafb8cb4597e38c3ffb499f2a403d196830 9ed52541f1fcb93b23aee5f64a19cdafb8cb4597e38c3ffb499f2a403d196830 ASSERT_TRUE(ArithmeticEnvironmentSupported()) | EXPECT_EQ(IsNormalized({high, low}), fesa::high_low_original::IsNormalized(original)) | EXPECT_EQ(IsNormalized({high, low}), fesa::high_low_original::IsNormalized({high, low})) ASSERT_TRUE(ArithmeticEnvironmentSupported()) | EXPECT_EQ(IsNormalized({high, low}), fesa::high_low_original::IsNormalized(original)) | EXPECT_EQ(IsNormalized({high, low}), fesa::high_low_original::IsNormalized({high, low})) -Dev tests/unit/math/high_low_arithmetic_test.cpp support@1-16 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/high_low_arithmetic_test.cpp file-support 이관 Dev frozen oracle helper 원문을 유지한다. 모든 exponent·finite 분류·raw-bit 검사를 복원하고 Refactor packet dispatch 검사를 함께 남긴다. 7ae170bf5c29e41cab744307b531ed7e8897a2e5a1439a03fdd0edf109ea355e 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/math/high_low_arithmetic_test.cpp support@134-146 helper/oracle/fixture/include/static assertion 구간: Bits, FromBits tests/unit/math/high_low_arithmetic_test.cpp file-support 유지 Dev frozen oracle helper 원문을 유지한다. 모든 exponent·finite 분류·raw-bit 검사를 복원하고 Refactor packet dispatch 검사를 함께 남긴다. 87b474dadc9ddb92a1941fc7fd43b44b8cb619fbb239255f1bd2caeb85931886 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/math/high_low_arithmetic_test.cpp support@163-169 helper/oracle/fixture/include/static assertion 구간: ExpectSamePair tests/unit/math/high_low_arithmetic_test.cpp file-support 유지 Dev frozen oracle helper 원문을 유지한다. 모든 exponent·finite 분류·raw-bit 검사를 복원하고 Refactor packet dispatch 검사를 함께 남긴다. a9015eafc8fbad91188fc6a987d9a202613cbd3a5ecccc8dc8dc9d425a0c12d5 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/math/high_low_arithmetic_test.cpp support@239-239 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/math/high_low_arithmetic_test.cpp file-support 유지 Dev frozen oracle helper 원문을 유지한다. 모든 exponent·finite 분류·raw-bit 검사를 복원하고 Refactor packet dispatch 검사를 함께 남긴다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/math/matrix_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/math/matrix_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 24d515a2397f12e2951d055c69e82e00f1cef93c2451520a5d180cc8ca02ccf0 e871743665669396e2ff3df6599a7020e1e9009ba325c1341493f4f940da9744 해당 없음 해당 없음 -Dev tests/unit/math/matrix_test.cpp DenseMath.RowMajorMatrixMatchesKnownGemvGemm DenseMath.RowMajorMatrixMatchesKnownGemvGemm; assertion 39개 tests/unit/math/matrix_test.cpp DenseMath.RowMajorMatrixMatchesKnownGemvGemm 유지 원문 검사 body 및 assertion 동일. 80766b5923a34f53328f9a728d5714d0e8fc8448721f558a25f8cc297cae5317 80766b5923a34f53328f9a728d5714d0e8fc8448721f558a25f8cc297cae5317 EXPECT_THROW(static_cast(Matrix{wraparound_rows, 2}), std::length_error) | EXPECT_EQ(zero_row_product.Size(), 0U) | ASSERT_EQ(zero_column_product.Size(), 2U) | EXPECT_DOUBLE_EQ(zero_column_product[0], 0.0) | EXPECT_DOUBLE_EQ(zero_column_product[1], 0.0) | EXPECT_EQ(zero_inner_product.Rows(), 2U) | EXPECT_EQ(zero_inner_product.Columns(), 3U) | EXPECT_DOUBLE_EQ(zero_inner_product(row, column), 0.0) | EXPECT_EQ(&left(0, 0) + 1, &left(0, 1)) | EXPECT_EQ(&left(0, 0) + 2, &left(0, 2)) | EXPECT_EQ(&left(0, 0) + 3, &left(1, 0)) | EXPECT_DOUBLE_EQ(const_left(1, 2), 6.0) | EXPECT_DOUBLE_EQ(left(0, 0), 1.0) | EXPECT_DOUBLE_EQ(left(1, 2), 6.0) | EXPECT_EQ(copied.Rows(), 0U) | EXPECT_EQ(copied.Columns(), 0U) | EXPECT_EQ(moved.Rows(), 2U) | EXPECT_EQ(moved.Columns(), 3U) | EXPECT_DOUBLE_EQ(moved(0, 0), 42.0) | EXPECT_NO_THROW(static_cast(copied.Multiply(Vector{0}))) | EXPECT_EQ(copy_assigned.Rows(), 0U) | EXPECT_EQ(copy_assigned.Columns(), 0U) | EXPECT_EQ(move_assigned.Rows(), 2U) | EXPECT_EQ(move_assigned.Columns(), 3U) | EXPECT_DOUBLE_EQ(move_assigned(1, 2), -7.0) | ASSERT_EQ(matrix_vector_product.Size(), 2U) | EXPECT_DOUBLE_EQ(matrix_vector_product[0], 50.0) | EXPECT_DOUBLE_EQ(matrix_vector_product[1], 122.0) | ASSERT_EQ(matrix_product.Rows(), 2U) | ASSERT_EQ(matrix_product.Columns(), 2U) | EXPECT_DOUBLE_EQ(matrix_product(0, 0), 58.0) | EXPECT_DOUBLE_EQ(matrix_product(0, 1), 64.0) | EXPECT_DOUBLE_EQ(matrix_product(1, 0), 139.0) | EXPECT_DOUBLE_EQ(matrix_product(1, 1), 154.0) | EXPECT_THROW(static_cast(left(2, 0)), std::out_of_range) | EXPECT_THROW(static_cast(left(0, 3)), std::out_of_range) | EXPECT_THROW(static_cast(const_left(2, 0)), std::out_of_range) | EXPECT_THROW(static_cast(left.Multiply(Vector{2})), std::invalid_argument) | EXPECT_THROW(static_cast(left.Multiply(Matrix{4, 1})), std::invalid_argument) EXPECT_THROW(static_cast(Matrix{wraparound_rows, 2}), std::length_error) | EXPECT_EQ(zero_row_product.Size(), 0U) | ASSERT_EQ(zero_column_product.Size(), 2U) | EXPECT_DOUBLE_EQ(zero_column_product[0], 0.0) | EXPECT_DOUBLE_EQ(zero_column_product[1], 0.0) | EXPECT_EQ(zero_inner_product.Rows(), 2U) | EXPECT_EQ(zero_inner_product.Columns(), 3U) | EXPECT_DOUBLE_EQ(zero_inner_product(row, column), 0.0) | EXPECT_EQ(&left(0, 0) + 1, &left(0, 1)) | EXPECT_EQ(&left(0, 0) + 2, &left(0, 2)) | EXPECT_EQ(&left(0, 0) + 3, &left(1, 0)) | EXPECT_DOUBLE_EQ(const_left(1, 2), 6.0) | EXPECT_DOUBLE_EQ(left(0, 0), 1.0) | EXPECT_DOUBLE_EQ(left(1, 2), 6.0) | EXPECT_EQ(copied.Rows(), 0U) | EXPECT_EQ(copied.Columns(), 0U) | EXPECT_EQ(moved.Rows(), 2U) | EXPECT_EQ(moved.Columns(), 3U) | EXPECT_DOUBLE_EQ(moved(0, 0), 42.0) | EXPECT_NO_THROW(static_cast(copied.Multiply(Vector{0}))) | EXPECT_EQ(copy_assigned.Rows(), 0U) | EXPECT_EQ(copy_assigned.Columns(), 0U) | EXPECT_EQ(move_assigned.Rows(), 2U) | EXPECT_EQ(move_assigned.Columns(), 3U) | EXPECT_DOUBLE_EQ(move_assigned(1, 2), -7.0) | ASSERT_EQ(matrix_vector_product.Size(), 2U) | EXPECT_DOUBLE_EQ(matrix_vector_product[0], 50.0) | EXPECT_DOUBLE_EQ(matrix_vector_product[1], 122.0) | ASSERT_EQ(matrix_product.Rows(), 2U) | ASSERT_EQ(matrix_product.Columns(), 2U) | EXPECT_DOUBLE_EQ(matrix_product(0, 0), 58.0) | EXPECT_DOUBLE_EQ(matrix_product(0, 1), 64.0) | EXPECT_DOUBLE_EQ(matrix_product(1, 0), 139.0) | EXPECT_DOUBLE_EQ(matrix_product(1, 1), 154.0) | EXPECT_THROW(static_cast(left(2, 0)), std::out_of_range) | EXPECT_THROW(static_cast(left(0, 3)), std::out_of_range) | EXPECT_THROW(static_cast(const_left(2, 0)), std::out_of_range) | EXPECT_THROW(static_cast(left.Multiply(Vector{2})), std::invalid_argument) | EXPECT_THROW(static_cast(left.Multiply(Matrix{4, 1})), std::invalid_argument) -Dev tests/unit/math/matrix_test.cpp DenseMath.MatrixProductsRejectNonfiniteOperandsAndPreserveValidReuse DenseMath.MatrixProductsRejectNonfiniteOperandsAndPreserveValidReuse; assertion 6개 tests/unit/math/matrix_test.cpp DenseMath.MatrixProductsRejectNonfiniteOperandsAndPreserveValidReuse 유지 원문 검사 body 및 assertion 동일. d7633d3bb1c24ce50b386610f4288a8a597ea067123f4db22d80b7c6254f5d1c d7633d3bb1c24ce50b386610f4288a8a597ea067123f4db22d80b7c6254f5d1c EXPECT_THROW(static_cast(left.Multiply(rhs)), std::invalid_argument) | EXPECT_THROW(static_cast(left.Multiply(rhs)), std::invalid_argument) | EXPECT_THROW(static_cast(left.Multiply(right)), std::invalid_argument) | EXPECT_THROW(static_cast(left.Multiply(right)), std::invalid_argument) | EXPECT_DOUBLE_EQ(left.Multiply(rhs)[0U], 4.0) | EXPECT_DOUBLE_EQ(left.Multiply(right)(1U, 0U), 4.0) EXPECT_THROW(static_cast(left.Multiply(rhs)), std::invalid_argument) | EXPECT_THROW(static_cast(left.Multiply(rhs)), std::invalid_argument) | EXPECT_THROW(static_cast(left.Multiply(right)), std::invalid_argument) | EXPECT_THROW(static_cast(left.Multiply(right)), std::invalid_argument) | EXPECT_DOUBLE_EQ(left.Multiply(rhs)[0U], 4.0) | EXPECT_DOUBLE_EQ(left.Multiply(right)(1U, 0U), 4.0) -Dev tests/unit/math/matrix_test.cpp support@1-11 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/matrix_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e9e369e18cfae13e644c0002a8211b5a6de15cd88d38e91cf313ba994dbe2c5f 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/math/matrix_test.cpp support@129-131 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/matrix_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/math/sparse_matrix_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/unit/math/sparse_matrix_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ce2d95faaa89e5b4887d791745eee4b97e882482fa91e04b787dceaa268d663b ce2d95faaa89e5b4887d791745eee4b97e882482fa91e04b787dceaa268d663b 해당 없음 해당 없음 -Dev tests/unit/math/sparse_matrix_test.cpp SparseAssembly.ValidatesKnownCsrAndMultiply SparseAssembly.ValidatesKnownCsrAndMultiply; assertion 13개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.ValidatesKnownCsrAndMultiply 유지 원문 검사 body 및 assertion 동일. 306be72faf3dbbf425d660063d3847f0d06a43498caa60943e847cc485a5d9c8 306be72faf3dbbf425d660063d3847f0d06a43498caa60943e847cc485a5d9c8 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(matrix.Rows(), 4U) | EXPECT_EQ(matrix.Columns(), 4U) | EXPECT_EQ(matrix.RowOffsets(), pattern.row_offsets) | EXPECT_EQ(matrix.ColumnIndices(), pattern.column_indices) | EXPECT_EQ(matrix.Values(), (std::vector{1.0, 2.0, 3.0, 4.0, 5.0})) | EXPECT_TRUE(matrix.Validate().IsOk()) | ASSERT_EQ(product.Size(), 4U) | EXPECT_DOUBLE_EQ(product[0U], 7.0) | EXPECT_DOUBLE_EQ(product[1U], 0.0) | EXPECT_DOUBLE_EQ(product[2U], 22.0) | EXPECT_DOUBLE_EQ(product[3U], 20.0) | EXPECT_THROW(static_cast(matrix.Multiply(Vector{3U})), std::invalid_argument) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(matrix.Rows(), 4U) | EXPECT_EQ(matrix.Columns(), 4U) | EXPECT_EQ(matrix.RowOffsets(), pattern.row_offsets) | EXPECT_EQ(matrix.ColumnIndices(), pattern.column_indices) | EXPECT_EQ(matrix.Values(), (std::vector{1.0, 2.0, 3.0, 4.0, 5.0})) | EXPECT_TRUE(matrix.Validate().IsOk()) | ASSERT_EQ(product.Size(), 4U) | EXPECT_DOUBLE_EQ(product[0U], 7.0) | EXPECT_DOUBLE_EQ(product[1U], 0.0) | EXPECT_DOUBLE_EQ(product[2U], 22.0) | EXPECT_DOUBLE_EQ(product[3U], 20.0) | EXPECT_THROW(static_cast(matrix.Multiply(Vector{3U})), std::invalid_argument) -Dev tests/unit/math/sparse_matrix_test.cpp SparseAssembly.ReducesDuplicatesInFixedTupleOrder SparseAssembly.ReducesDuplicatesInFixedTupleOrder; assertion 7개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.ReducesDuplicatesInFixedTupleOrder 유지 원문 검사 body 및 assertion 동일. 58ef40306d7a2794d3714329bae3ac32fcb28e31493f45d24c5817813cc07a36 58ef40306d7a2794d3714329bae3ac32fcb28e31493f45d24c5817813cc07a36 ASSERT_TRUE(first.HasValue()) | ASSERT_EQ(first.Value().Values().size(), 1U) | EXPECT_DOUBLE_EQ(first.Value().Values()[0U], 1.0) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(second.Value().RowOffsets(), first.Value().RowOffsets()) | EXPECT_EQ(second.Value().ColumnIndices(), first.Value().ColumnIndices()) | EXPECT_EQ(second.Value().Values(), first.Value().Values()) ASSERT_TRUE(first.HasValue()) | ASSERT_EQ(first.Value().Values().size(), 1U) | EXPECT_DOUBLE_EQ(first.Value().Values()[0U], 1.0) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(second.Value().RowOffsets(), first.Value().RowOffsets()) | EXPECT_EQ(second.Value().ColumnIndices(), first.Value().ColumnIndices()) | EXPECT_EQ(second.Value().Values(), first.Value().Values()) -Dev tests/unit/math/sparse_matrix_test.cpp SparseAssembly.RejectsInvalidIndexPatternAndShape SparseAssembly.RejectsInvalidIndexPatternAndShape; assertion 4개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.RejectsInvalidIndexPatternAndShape 유지 원문 검사 body 및 assertion 동일. 20889c0e8ab98ed0bbfbe684fcf8309c542a55123a6d5f0d7cd97d60cd25d104 20889c0e8ab98ed0bbfbe684fcf8309c542a55123a6d5f0d7cd97d60cd25d104 EXPECT_FALSE(result.HasValue()) | EXPECT_FALSE(result.GetStatus().IsOk()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(result.GetStatus().Diagnostics().empty()) EXPECT_FALSE(result.HasValue()) | EXPECT_FALSE(result.GetStatus().IsOk()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(result.GetStatus().Diagnostics().empty()) -Dev tests/unit/math/sparse_matrix_test.cpp SparseAssembly.PreservesExpectedStructuralZeros SparseAssembly.PreservesExpectedStructuralZeros; assertion 5개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.PreservesExpectedStructuralZeros 유지 원문 검사 body 및 assertion 동일. 8a7bf76b61f4852be9d64fe9358d648f2c8be768942738a0785c52ed047ffd27 8a7bf76b61f4852be9d64fe9358d648f2c8be768942738a0785c52ed047ffd27 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().RowOffsets(), pattern.row_offsets) | EXPECT_EQ(result.Value().ColumnIndices(), pattern.column_indices) | EXPECT_EQ(result.Value().Values(), (std::vector{2.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(std::count(result.Value().Values().begin(), result.Value().Values().end(), 0.0), 4) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().RowOffsets(), pattern.row_offsets) | EXPECT_EQ(result.Value().ColumnIndices(), pattern.column_indices) | EXPECT_EQ(result.Value().Values(), (std::vector{2.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(std::count(result.Value().Values().begin(), result.Value().Values().end(), 0.0), 4) -Dev tests/unit/math/sparse_matrix_test.cpp SparseAssembly.MultipliesRectangularCopyMoveAndConcurrentConstCalls SparseAssembly.MultipliesRectangularCopyMoveAndConcurrentConstCalls; assertion 7개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.MultipliesRectangularCopyMoveAndConcurrentConstCalls 유지 원문 검사 body 및 assertion 동일. 9a21d95b055afbe45ddbca0e8ae2278bc04277601d44be74e7eb09a994134f97 9a21d95b055afbe45ddbca0e8ae2278bc04277601d44be74e7eb09a994134f97 ASSERT_TRUE(assembled.HasValue()) | EXPECT_TRUE(first.get()) | EXPECT_TRUE(second.get()) | EXPECT_TRUE(evaluate(original)) | ASSERT_TRUE(replacement.HasValue()) | EXPECT_DOUBLE_EQ(moved.Multiply(Vector{1U, 3.0})[0U], 21.0) | EXPECT_TRUE(evaluate(original)) ASSERT_TRUE(assembled.HasValue()) | EXPECT_TRUE(first.get()) | EXPECT_TRUE(second.get()) | EXPECT_TRUE(evaluate(original)) | ASSERT_TRUE(replacement.HasValue()) | EXPECT_DOUBLE_EQ(moved.Multiply(Vector{1U, 3.0})[0U], 21.0) | EXPECT_TRUE(evaluate(original)) -Dev tests/unit/math/sparse_matrix_test.cpp SparseAssembly.PreservesZeroShapesAndEmptyRows SparseAssembly.PreservesZeroShapesAndEmptyRows; assertion 8개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.PreservesZeroShapesAndEmptyRows 유지 원문 검사 body 및 assertion 동일. 4f9c2fd65e5d13ec7a449e38fedcd513e0aa6821add64484e873f020d338f8b0 4f9c2fd65e5d13ec7a449e38fedcd513e0aa6821add64484e873f020d338f8b0 ASSERT_TRUE(no_rows.HasValue()) | ASSERT_TRUE(no_columns.HasValue()) | ASSERT_TRUE(no_entries.HasValue()) | EXPECT_EQ(no_rows.Value().Multiply(Vector{3U}).Size(), 0U) | ASSERT_EQ(empty_columns.Size(), 2U) | ASSERT_EQ(empty_entries.Size(), 2U) | EXPECT_DOUBLE_EQ(empty_columns[row], 0.0) | EXPECT_DOUBLE_EQ(empty_entries[row], 0.0) ASSERT_TRUE(no_rows.HasValue()) | ASSERT_TRUE(no_columns.HasValue()) | ASSERT_TRUE(no_entries.HasValue()) | EXPECT_EQ(no_rows.Value().Multiply(Vector{3U}).Size(), 0U) | ASSERT_EQ(empty_columns.Size(), 2U) | ASSERT_EQ(empty_entries.Size(), 2U) | EXPECT_DOUBLE_EQ(empty_columns[row], 0.0) | EXPECT_DOUBLE_EQ(empty_entries[row], 0.0) -Dev tests/unit/math/sparse_matrix_test.cpp SparseAssembly.RejectsNonfiniteRhsAndRecoversAfterFiniteOverflow SparseAssembly.RejectsNonfiniteRhsAndRecoversAfterFiniteOverflow; assertion 7개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.RejectsNonfiniteRhsAndRecoversAfterFiniteOverflow 유지 원문 검사 body 및 assertion 동일. 574f3cfbc416c6240854f801794be36d9ac765e66ac8d06059caff34ed4640c6 574f3cfbc416c6240854f801794be36d9ac765e66ac8d06059caff34ed4640c6 ASSERT_TRUE(matrix.HasValue()) | EXPECT_THROW(static_cast(matrix.Value().Multiply(rhs)), std::invalid_argument) | EXPECT_TRUE(std::isinf(matrix.Value().Multiply(rhs)[0U])) | EXPECT_THROW(static_cast(matrix.Value().Multiply(rhs)), std::invalid_argument) | EXPECT_THROW(static_cast(matrix.Value().Multiply(Vector{1U})), std::invalid_argument) | EXPECT_DOUBLE_EQ(finite[0U], 6.0) | EXPECT_DOUBLE_EQ(finite[1U], 0.0) ASSERT_TRUE(matrix.HasValue()) | EXPECT_THROW(static_cast(matrix.Value().Multiply(rhs)), std::invalid_argument) | EXPECT_TRUE(std::isinf(matrix.Value().Multiply(rhs)[0U])) | EXPECT_THROW(static_cast(matrix.Value().Multiply(rhs)), std::invalid_argument) | EXPECT_THROW(static_cast(matrix.Value().Multiply(Vector{1U})), std::invalid_argument) | EXPECT_DOUBLE_EQ(finite[0U], 6.0) | EXPECT_DOUBLE_EQ(finite[1U], 0.0) -Dev tests/unit/math/sparse_matrix_test.cpp SparseAssembly.MatchesIndependentLongDoubleResidualOnUnevenRows SparseAssembly.MatchesIndependentLongDoubleResidualOnUnevenRows; assertion 2개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.MatchesIndependentLongDoubleResidualOnUnevenRows 유지 원문 검사 body 및 assertion 동일. 53983801555cf34c044b2b28586b54a10fe561855307d30b09ec52d3f01facac 53983801555cf34c044b2b28586b54a10fe561855307d30b09ec52d3f01facac ASSERT_TRUE(matrix.HasValue()) | EXPECT_NEAR(product[row], static_cast(expected), 2.0e-14) ASSERT_TRUE(matrix.HasValue()) | EXPECT_NEAR(product[row], static_cast(expected), 2.0e-14) -Dev tests/unit/math/sparse_matrix_test.cpp support@1-26 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/math/sparse_matrix_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0a4b7e01533c4e8cf0f2da283db812646e50c73bd09c5a8a0a36c87546058462 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/math/sparse_matrix_test.cpp support@235-236 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/math/sparse_matrix_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/math/vector3_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/unit/math/vector3_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 73d76da9064531db15cd5c7aaaafca04cffcc9853b56171055ed35789cf649ae 442331d7ccb19a8f989c48d0f71fdfb0f0a6473adf7af53e7a4b477f45b965a4 해당 없음 해당 없음 -Dev tests/unit/math/vector3_test.cpp Vector3.StoresComponentsWithExactArithmetic Vector3.StoresComponentsWithExactArithmetic; assertion 18개 tests/unit/math/vector3_test.cpp Vector3.StoresComponentsWithExactArithmetic 유지 원문 검사 body 및 assertion 동일. 9a048f9faafa466a70e10b035ee0fe67423b83781ad22e7d0f69c50168b6a353 9a048f9faafa466a70e10b035ee0fe67423b83781ad22e7d0f69c50168b6a353 EXPECT_DOUBLE_EQ(lhs.X(), 1.0) | EXPECT_DOUBLE_EQ(lhs.Y(), -2.0) | EXPECT_DOUBLE_EQ(lhs.Z(), 3.0) | EXPECT_DOUBLE_EQ(lhs[0], 1.0) | EXPECT_DOUBLE_EQ(lhs[1], -2.0) | EXPECT_DOUBLE_EQ(lhs[2], 3.0) | EXPECT_DOUBLE_EQ(sum[0], -3.0) | EXPECT_DOUBLE_EQ(sum[1], 3.0) | EXPECT_DOUBLE_EQ(sum[2], 9.0) | EXPECT_DOUBLE_EQ(difference[0], 5.0) | EXPECT_DOUBLE_EQ(difference[1], -7.0) | EXPECT_DOUBLE_EQ(difference[2], -3.0) | EXPECT_DOUBLE_EQ(scaled[0], -2.0) | EXPECT_DOUBLE_EQ(scaled[1], 4.0) | EXPECT_DOUBLE_EQ(scaled[2], -6.0) | EXPECT_DOUBLE_EQ(divided[0], -0.5) | EXPECT_DOUBLE_EQ(divided[1], 1.0) | EXPECT_DOUBLE_EQ(divided[2], -1.5) EXPECT_DOUBLE_EQ(lhs.X(), 1.0) | EXPECT_DOUBLE_EQ(lhs.Y(), -2.0) | EXPECT_DOUBLE_EQ(lhs.Z(), 3.0) | EXPECT_DOUBLE_EQ(lhs[0], 1.0) | EXPECT_DOUBLE_EQ(lhs[1], -2.0) | EXPECT_DOUBLE_EQ(lhs[2], 3.0) | EXPECT_DOUBLE_EQ(sum[0], -3.0) | EXPECT_DOUBLE_EQ(sum[1], 3.0) | EXPECT_DOUBLE_EQ(sum[2], 9.0) | EXPECT_DOUBLE_EQ(difference[0], 5.0) | EXPECT_DOUBLE_EQ(difference[1], -7.0) | EXPECT_DOUBLE_EQ(difference[2], -3.0) | EXPECT_DOUBLE_EQ(scaled[0], -2.0) | EXPECT_DOUBLE_EQ(scaled[1], 4.0) | EXPECT_DOUBLE_EQ(scaled[2], -6.0) | EXPECT_DOUBLE_EQ(divided[0], -0.5) | EXPECT_DOUBLE_EQ(divided[1], 1.0) | EXPECT_DOUBLE_EQ(divided[2], -1.5) -Dev tests/unit/math/vector3_test.cpp Vector3.ConvertsArrayAndPreservesScalarLeftEvaluationOrder Vector3.ConvertsArrayAndPreservesScalarLeftEvaluationOrder; assertion 6개 tests/unit/math/vector3_test.cpp Vector3.ConvertsArrayAndPreservesScalarLeftEvaluationOrder 유지 원문 검사 body 및 assertion 동일. 1f659f46fd78ea02d6456c20cf865a637d8d3e4f2ac5d5fe89ba27741a28c058 1f659f46fd78ea02d6456c20cf865a637d8d3e4f2ac5d5fe89ba27741a28c058 EXPECT_TRUE(value == Vector3(1.25, -2.5, 5.0)) | EXPECT_FALSE(value == Vector3(1.25, -2.5, 4.0)) | EXPECT_EQ(value.Components(), kComponents) | EXPECT_DOUBLE_EQ(scaled.X(), -2.5) | EXPECT_DOUBLE_EQ(scaled.Y(), 5.0) | EXPECT_DOUBLE_EQ(scaled.Z(), -10.0) EXPECT_TRUE(value == Vector3(1.25, -2.5, 5.0)) | EXPECT_FALSE(value == Vector3(1.25, -2.5, 4.0)) | EXPECT_EQ(value.Components(), kComponents) | EXPECT_DOUBLE_EQ(scaled.X(), -2.5) | EXPECT_DOUBLE_EQ(scaled.Y(), 5.0) | EXPECT_DOUBLE_EQ(scaled.Z(), -10.0) -Dev tests/unit/math/vector3_test.cpp Vector3.ComputesDotProduct Vector3.ComputesDotProduct; assertion 1개 tests/unit/math/vector3_test.cpp Vector3.ComputesDotProduct 유지 원문 검사 body 및 assertion 동일. 6347f32d63b18e488dfb6a66c9bd3efc2c84beb950b8746efb888bbb580722d7 6347f32d63b18e488dfb6a66c9bd3efc2c84beb950b8746efb888bbb580722d7 EXPECT_DOUBLE_EQ(lhs.Dot(rhs), 12.0) EXPECT_DOUBLE_EQ(lhs.Dot(rhs), 12.0) -Dev tests/unit/math/vector3_test.cpp Vector3.UsesRightHandedCrossProductOrientation Vector3.UsesRightHandedCrossProductOrientation; assertion 6개 tests/unit/math/vector3_test.cpp Vector3.UsesRightHandedCrossProductOrientation 유지 원문 검사 body 및 assertion 동일. f179b78f12bc066ce442f293298397b5fcc9fe03fce8fbd348f33c5fcd13a24a f179b78f12bc066ce442f293298397b5fcc9fe03fce8fbd348f33c5fcd13a24a EXPECT_DOUBLE_EQ(positive_z.X(), 0.0) | EXPECT_DOUBLE_EQ(positive_z.Y(), 0.0) | EXPECT_DOUBLE_EQ(positive_z.Z(), 1.0) | EXPECT_DOUBLE_EQ(negative_z.X(), 0.0) | EXPECT_DOUBLE_EQ(negative_z.Y(), 0.0) | EXPECT_DOUBLE_EQ(negative_z.Z(), -1.0) EXPECT_DOUBLE_EQ(positive_z.X(), 0.0) | EXPECT_DOUBLE_EQ(positive_z.Y(), 0.0) | EXPECT_DOUBLE_EQ(positive_z.Z(), 1.0) | EXPECT_DOUBLE_EQ(negative_z.X(), 0.0) | EXPECT_DOUBLE_EQ(negative_z.Y(), 0.0) | EXPECT_DOUBLE_EQ(negative_z.Z(), -1.0) -Dev tests/unit/math/vector3_test.cpp Vector3.ComputesEuclideanNorm Vector3.ComputesEuclideanNorm; assertion 2개 tests/unit/math/vector3_test.cpp Vector3.ComputesEuclideanNorm 유지 원문 검사 body 및 assertion 동일. 2a865b62e7bd8940e5c9db652503bcd28230dfd4abb9f74a4a91282f0d917499 2a865b62e7bd8940e5c9db652503bcd28230dfd4abb9f74a4a91282f0d917499 EXPECT_DOUBLE_EQ(Vector3(2.0, -3.0, 6.0).Norm(), 7.0) | EXPECT_DOUBLE_EQ(Vector3(1.0e308, 1.0e308, 0.0).Norm(), expected) EXPECT_DOUBLE_EQ(Vector3(2.0, -3.0, 6.0).Norm(), 7.0) | EXPECT_DOUBLE_EQ(Vector3(1.0e308, 1.0e308, 0.0).Norm(), expected) -Dev tests/unit/math/vector3_test.cpp Vector3.NormalizesNonzeroVectors Vector3.NormalizesNonzeroVectors; assertion 4개 tests/unit/math/vector3_test.cpp Vector3.NormalizesNonzeroVectors 유지 원문 검사 body 및 assertion 동일. 6aeabf80f8c56ed0db4cfff4658f47caa3550cc1c042a295dd95dce791e6f329 6aeabf80f8c56ed0db4cfff4658f47caa3550cc1c042a295dd95dce791e6f329 ASSERT_TRUE(normalized.has_value()) | EXPECT_DOUBLE_EQ(normalized->X(), 0.6) | EXPECT_DOUBLE_EQ(normalized->Y(), 0.0) | EXPECT_DOUBLE_EQ(normalized->Z(), 0.8) ASSERT_TRUE(normalized.has_value()) | EXPECT_DOUBLE_EQ(normalized->X(), 0.6) | EXPECT_DOUBLE_EQ(normalized->Y(), 0.0) | EXPECT_DOUBLE_EQ(normalized->Z(), 0.8) -Dev tests/unit/math/vector3_test.cpp Vector3.ReportsFiniteComponents Vector3.ReportsFiniteComponents; assertion 3개 tests/unit/math/vector3_test.cpp Vector3.ReportsFiniteComponents 유지 원문 검사 body 및 assertion 동일. 5ff94e5120d1add8e2e3242698c75c0444e4c7d25ea530eb8adca0d48757cd96 5ff94e5120d1add8e2e3242698c75c0444e4c7d25ea530eb8adca0d48757cd96 EXPECT_TRUE(Vector3(1.0, -2.0, 3.0).IsFinite()) | EXPECT_FALSE(Vector3(infinity, 0.0, 0.0).IsFinite()) | EXPECT_FALSE(Vector3(0.0, not_a_number, 0.0).IsFinite()) EXPECT_TRUE(Vector3(1.0, -2.0, 3.0).IsFinite()) | EXPECT_FALSE(Vector3(infinity, 0.0, 0.0).IsFinite()) | EXPECT_FALSE(Vector3(0.0, not_a_number, 0.0).IsFinite()) -Dev tests/unit/math/vector3_test.cpp Vector3.RejectsZeroAndNonfiniteNormalization Vector3.RejectsZeroAndNonfiniteNormalization; assertion 3개 tests/unit/math/vector3_test.cpp Vector3.RejectsZeroAndNonfiniteNormalization 유지 원문 검사 body 및 assertion 동일. cf0551716b1fac7a6af4c3690316df8e7059b681ba04d6a3dbf376c44c8ab8bb cf0551716b1fac7a6af4c3690316df8e7059b681ba04d6a3dbf376c44c8ab8bb EXPECT_FALSE(Vector3().Normalized().has_value()) | EXPECT_FALSE(Vector3(infinity, 0.0, 0.0).Normalized().has_value()) | EXPECT_FALSE(Vector3(0.0, not_a_number, 0.0).Normalized().has_value()) EXPECT_FALSE(Vector3().Normalized().has_value()) | EXPECT_FALSE(Vector3(infinity, 0.0, 0.0).Normalized().has_value()) | EXPECT_FALSE(Vector3(0.0, not_a_number, 0.0).Normalized().has_value()) -Dev tests/unit/math/vector3_test.cpp support@1-12 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/vector3_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6a62e51f185970f04141b3a9d4bb5cda154999b19e74598b53adc1365e34f422 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/math/vector3_test.cpp support@114-116 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/vector3_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/math/vector_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/math/vector_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4b7cd27e186d0cc818854d87e9540d182e952dfc2c3a372f67a656f4d4d4b873 d1f3266cdc2f7f4c586e7512fe090580a641b270ebe8b0525660fa4e737c788c 해당 없음 해당 없음 -Dev tests/unit/math/vector_test.cpp DenseMath.VectorOwnsAndChecksContiguousStorage DenseMath.VectorOwnsAndChecksContiguousStorage; assertion 31개 tests/unit/math/vector_test.cpp DenseMath.VectorOwnsAndChecksContiguousStorage 유지 원문 검사 body 및 assertion 동일. 4633911f5df21402045699292987f7ed2cec457b562c80c628cfaaea6c7d73ca 4633911f5df21402045699292987f7ed2cec457b562c80c628cfaaea6c7d73ca EXPECT_EQ(empty.Size(), 0U) | EXPECT_DOUBLE_EQ(empty.Norm(), 0.0) | EXPECT_NO_THROW(empty.Scale(3.0)) | EXPECT_NO_THROW(empty.Axpy(-2.0, Vector{0})) | EXPECT_THROW(static_cast(empty[0]), std::out_of_range) | EXPECT_EQ(original.Data() + 1, &original[1]) | EXPECT_EQ(original.Data() + 2, &original[2]) | EXPECT_EQ(const_original.Data() + 2, &const_original[2]) | EXPECT_NE(copied.Data(), original.Data()) | EXPECT_DOUBLE_EQ(original[0], 1.0) | EXPECT_NE(copy_assigned.Data(), original.Data()) | EXPECT_DOUBLE_EQ(original[1], -2.0) | EXPECT_EQ(copied.Size(), 0U) | EXPECT_EQ(moved.Size(), 3U) | EXPECT_DOUBLE_EQ(moved[0], 99.0) | EXPECT_NO_THROW(copied.Scale(4.0)) | EXPECT_EQ(copy_assigned.Size(), 0U) | EXPECT_EQ(move_assigned.Size(), 3U) | EXPECT_DOUBLE_EQ(move_assigned[1], 17.0) | EXPECT_DOUBLE_EQ(original.Dot(rhs), -24.0) | EXPECT_NEAR(original.Norm(), std::sqrt(14.0), 1.0e-15) | EXPECT_DOUBLE_EQ(scaled[0], -0.5) | EXPECT_DOUBLE_EQ(scaled[1], 1.0) | EXPECT_DOUBLE_EQ(scaled[2], -1.5) | EXPECT_DOUBLE_EQ(accumulated[0], 9.0) | EXPECT_DOUBLE_EQ(accumulated[1], 0.0) | EXPECT_DOUBLE_EQ(accumulated[2], 4.0) | EXPECT_THROW(static_cast(original[3]), std::out_of_range) | EXPECT_THROW(static_cast(const_original[3]), std::out_of_range) | EXPECT_THROW(static_cast(original.Dot(Vector{2})), std::invalid_argument) | EXPECT_THROW(original.Axpy(1.0, Vector{2}), std::invalid_argument) EXPECT_EQ(empty.Size(), 0U) | EXPECT_DOUBLE_EQ(empty.Norm(), 0.0) | EXPECT_NO_THROW(empty.Scale(3.0)) | EXPECT_NO_THROW(empty.Axpy(-2.0, Vector{0})) | EXPECT_THROW(static_cast(empty[0]), std::out_of_range) | EXPECT_EQ(original.Data() + 1, &original[1]) | EXPECT_EQ(original.Data() + 2, &original[2]) | EXPECT_EQ(const_original.Data() + 2, &const_original[2]) | EXPECT_NE(copied.Data(), original.Data()) | EXPECT_DOUBLE_EQ(original[0], 1.0) | EXPECT_NE(copy_assigned.Data(), original.Data()) | EXPECT_DOUBLE_EQ(original[1], -2.0) | EXPECT_EQ(copied.Size(), 0U) | EXPECT_EQ(moved.Size(), 3U) | EXPECT_DOUBLE_EQ(moved[0], 99.0) | EXPECT_NO_THROW(copied.Scale(4.0)) | EXPECT_EQ(copy_assigned.Size(), 0U) | EXPECT_EQ(move_assigned.Size(), 3U) | EXPECT_DOUBLE_EQ(move_assigned[1], 17.0) | EXPECT_DOUBLE_EQ(original.Dot(rhs), -24.0) | EXPECT_NEAR(original.Norm(), std::sqrt(14.0), 1.0e-15) | EXPECT_DOUBLE_EQ(scaled[0], -0.5) | EXPECT_DOUBLE_EQ(scaled[1], 1.0) | EXPECT_DOUBLE_EQ(scaled[2], -1.5) | EXPECT_DOUBLE_EQ(accumulated[0], 9.0) | EXPECT_DOUBLE_EQ(accumulated[1], 0.0) | EXPECT_DOUBLE_EQ(accumulated[2], 4.0) | EXPECT_THROW(static_cast(original[3]), std::out_of_range) | EXPECT_THROW(static_cast(const_original[3]), std::out_of_range) | EXPECT_THROW(static_cast(original.Dot(Vector{2})), std::invalid_argument) | EXPECT_THROW(original.Axpy(1.0, Vector{2}), std::invalid_argument) -Dev tests/unit/math/vector_test.cpp support@1-11 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/vector_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 96aa1fb84a7742cdba9c1c10cb981ccf1f0ccbadc5dac79505807963fac75708 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/math/vector_test.cpp support@85-87 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/vector_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/model/domain_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/model/domain_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fc0dd95c444cac746db6083b88376bc8365ccd7d26790dd0dd6d51c3f41d6f77 fc0dd95c444cac746db6083b88376bc8365ccd7d26790dd0dd6d51c3f41d6f77 해당 없음 해당 없음 -Dev tests/unit/model/domain_test.cpp ElementDefinition.DomainOwnsMixedDefinitionsInStableBaseOrder ElementDefinition.DomainOwnsMixedDefinitionsInStableBaseOrder; assertion 26개 tests/unit/model/domain_test.cpp ElementDefinition.DomainOwnsMixedDefinitionsInStableBaseOrder 유지 원문 검사 body 및 assertion 동일. f00cd134923f2e7389d5f87d43f04e6608137532bb437bdcc0affa9cae01e560 f00cd134923f2e7389d5f87d43f04e6608137532bb437bdcc0affa9cae01e560 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Elements().Size(), 2U) | EXPECT_EQ(beam.Kind(), fesa::ElementDefinitionKind::kEulerBeam3D) | EXPECT_EQ(beam.SourceId().source_label_text, ""0007"") | EXPECT_EQ(beam.SourceElementType(), ""B33"") | EXPECT_EQ(beam.NodeIndices(), (std::vector{0U, 1U})) | EXPECT_EQ(beam.MaterialIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(beam.PropertyIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(shell.Kind(), fesa::ElementDefinitionKind::kMitc4Shell) | EXPECT_EQ(shell.SourceId().source_label_text, ""0009"") | EXPECT_EQ(shell.SourceElementType(), ""S4R"") | EXPECT_EQ(shell.NodeIndices(), (std::vector{2U, 3U, 4U, 5U})) | EXPECT_EQ(shell.MaterialIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(shell.PropertyIndex(), fesa::EntityIndex{1U}) | ASSERT_EQ(domain.BeamElements().Size(), 1U) | ASSERT_EQ(domain.ShellElements().Size(), 1U) | EXPECT_EQ(&domain.BeamElements()[0U], &beam) | EXPECT_EQ(&domain.ShellElements()[0U], &shell) | ASSERT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Materials()[0U].Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(&domain.LinearElasticMaterials()[0U], &domain.Materials()[0U]) | ASSERT_EQ(domain.Properties().Size(), 2U) | EXPECT_EQ(domain.Properties()[0U].Kind(), fesa::ElementPropertyKind::kGeneralBeamSection) | EXPECT_EQ(domain.Properties()[1U].Kind(), fesa::ElementPropertyKind::kShellSection) | EXPECT_EQ(&domain.Sections()[0U], &domain.Properties()[0U]) | EXPECT_EQ(&domain.ShellSections()[0U], &domain.Properties()[1U])" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Elements().Size(), 2U) | EXPECT_EQ(beam.Kind(), fesa::ElementDefinitionKind::kEulerBeam3D) | EXPECT_EQ(beam.SourceId().source_label_text, ""0007"") | EXPECT_EQ(beam.SourceElementType(), ""B33"") | EXPECT_EQ(beam.NodeIndices(), (std::vector{0U, 1U})) | EXPECT_EQ(beam.MaterialIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(beam.PropertyIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(shell.Kind(), fesa::ElementDefinitionKind::kMitc4Shell) | EXPECT_EQ(shell.SourceId().source_label_text, ""0009"") | EXPECT_EQ(shell.SourceElementType(), ""S4R"") | EXPECT_EQ(shell.NodeIndices(), (std::vector{2U, 3U, 4U, 5U})) | EXPECT_EQ(shell.MaterialIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(shell.PropertyIndex(), fesa::EntityIndex{1U}) | ASSERT_EQ(domain.BeamElements().Size(), 1U) | ASSERT_EQ(domain.ShellElements().Size(), 1U) | EXPECT_EQ(&domain.BeamElements()[0U], &beam) | EXPECT_EQ(&domain.ShellElements()[0U], &shell) | ASSERT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Materials()[0U].Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(&domain.LinearElasticMaterials()[0U], &domain.Materials()[0U]) | ASSERT_EQ(domain.Properties().Size(), 2U) | EXPECT_EQ(domain.Properties()[0U].Kind(), fesa::ElementPropertyKind::kGeneralBeamSection) | EXPECT_EQ(domain.Properties()[1U].Kind(), fesa::ElementPropertyKind::kShellSection) | EXPECT_EQ(&domain.Sections()[0U], &domain.Properties()[0U]) | EXPECT_EQ(&domain.ShellSections()[0U], &domain.Properties()[1U])" -Dev tests/unit/model/domain_test.cpp DomainModel.ImmutableOwnershipPreservesStableOrder DomainModel.ImmutableOwnershipPreservesStableOrder; assertion 33개 tests/unit/model/domain_test.cpp DomainModel.ImmutableOwnershipPreservesStableOrder 유지 원문 검사 body 및 assertion 동일. c6f7163bdaff86cf5fff21c3d9f5a0f5770dbdecd62f5af2fa64376558bc75b3 c6f7163bdaff86cf5fff21c3d9f5a0f5770dbdecd62f5af2fa64376558bc75b3 "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.SourcePath(), std::filesystem::path{""models/owned.inp""}) | EXPECT_EQ(domain.SourceContentIdentity(), ""fnv1a64:fedcba9876543210"") | ASSERT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 20) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""0020"") | EXPECT_DOUBLE_EQ(domain.Nodes()[0].coordinates[0], 2.0) | EXPECT_EQ(domain.Nodes()[1].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes().data(), first_node_address) | ASSERT_EQ(domain.BeamElements().Size(), 1U) | EXPECT_EQ(domain.BeamElements()[0].node_indices[0], 1U) | EXPECT_EQ(domain.BeamElements()[0].node_indices[1], 0U) | ASSERT_EQ(domain.Materials().Size(), 1U) | ASSERT_EQ(domain.Sections().Size(), 1U) | EXPECT_DOUBLE_EQ(domain.Sections()[0].section_points[0][0], -0.1) | ASSERT_EQ(domain.NodeSets().size(), 1U) | EXPECT_EQ(domain.NodeSets()[0].node_indices[0], 0U) | ASSERT_EQ(domain.ElementSets().size(), 1U) | EXPECT_EQ(domain.ElementSets()[0].element_indices[0], 0U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0].Name(), ""Step-1"") | EXPECT_DOUBLE_EQ(domain.Steps()[0].InitialIncrement(), 0.1) | EXPECT_DOUBLE_EQ(domain.Steps()[0].TimePeriod(), 1.0) | EXPECT_DOUBLE_EQ(domain.Steps()[0].MinimumIncrement(), 1.0e-5) | EXPECT_DOUBLE_EQ(domain.Steps()[0].MaximumIncrement(), 1.0) | EXPECT_EQ(domain.Steps()[0].ProcedureKind(), fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(domain.Steps()[0].IsNonlinearStatic()) | ASSERT_EQ(domain.Steps()[0].BoundaryConditions().size(), 6U) | ASSERT_EQ(domain.Steps()[0].Loads().size(), 1U) | ASSERT_EQ(domain.Steps()[0].ConcentratedLoads().Size(), 1U) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[2U], -1000.0) | ASSERT_EQ(domain.Warnings().size(), 1U) | EXPECT_EQ(domain.Warnings()[0].code, ""ignored-output-request"")" "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.SourcePath(), std::filesystem::path{""models/owned.inp""}) | EXPECT_EQ(domain.SourceContentIdentity(), ""fnv1a64:fedcba9876543210"") | ASSERT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 20) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""0020"") | EXPECT_DOUBLE_EQ(domain.Nodes()[0].coordinates[0], 2.0) | EXPECT_EQ(domain.Nodes()[1].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes().data(), first_node_address) | ASSERT_EQ(domain.BeamElements().Size(), 1U) | EXPECT_EQ(domain.BeamElements()[0].node_indices[0], 1U) | EXPECT_EQ(domain.BeamElements()[0].node_indices[1], 0U) | ASSERT_EQ(domain.Materials().Size(), 1U) | ASSERT_EQ(domain.Sections().Size(), 1U) | EXPECT_DOUBLE_EQ(domain.Sections()[0].section_points[0][0], -0.1) | ASSERT_EQ(domain.NodeSets().size(), 1U) | EXPECT_EQ(domain.NodeSets()[0].node_indices[0], 0U) | ASSERT_EQ(domain.ElementSets().size(), 1U) | EXPECT_EQ(domain.ElementSets()[0].element_indices[0], 0U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0].Name(), ""Step-1"") | EXPECT_DOUBLE_EQ(domain.Steps()[0].InitialIncrement(), 0.1) | EXPECT_DOUBLE_EQ(domain.Steps()[0].TimePeriod(), 1.0) | EXPECT_DOUBLE_EQ(domain.Steps()[0].MinimumIncrement(), 1.0e-5) | EXPECT_DOUBLE_EQ(domain.Steps()[0].MaximumIncrement(), 1.0) | EXPECT_EQ(domain.Steps()[0].ProcedureKind(), fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(domain.Steps()[0].IsNonlinearStatic()) | ASSERT_EQ(domain.Steps()[0].BoundaryConditions().size(), 6U) | ASSERT_EQ(domain.Steps()[0].Loads().size(), 1U) | ASSERT_EQ(domain.Steps()[0].ConcentratedLoads().Size(), 1U) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[2U], -1000.0) | ASSERT_EQ(domain.Warnings().size(), 1U) | EXPECT_EQ(domain.Warnings()[0].code, ""ignored-output-request"")" -Dev tests/unit/model/domain_test.cpp DomainModel.MultipleIdentityInstancesDoNotMerge DomainModel.MultipleIdentityInstancesDoNotMerge; assertion 14개 tests/unit/model/domain_test.cpp DomainModel.MultipleIdentityInstancesDoNotMerge 유지 원문 검사 body 및 assertion 동일. af47d90dfe03fde953119eb419e7f2dc83bbc9da3cab2a7a9a4bc70935e11dbb af47d90dfe03fde953119eb419e7f2dc83bbc9da3cab2a7a9a4bc70935e11dbb "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 4U) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[2].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""1"") | EXPECT_EQ(domain.Nodes()[2].source_id.source_label_text, ""1"") | EXPECT_NE(domain.Nodes()[0].source_id.instance_name, domain.Nodes()[2].source_id.instance_name) | ASSERT_EQ(domain.BeamElements().Size(), 2U) | EXPECT_EQ(domain.BeamElements()[0].source_id.source_label, 1) | EXPECT_EQ(domain.BeamElements()[1].source_id.source_label, 1) | EXPECT_EQ(domain.BeamElements()[0].source_id.instance_name, ""Instance-A"") | EXPECT_EQ(domain.BeamElements()[1].source_id.instance_name, ""Instance-B"") | EXPECT_EQ(domain.BeamElements()[0].node_indices[0], 0U) | EXPECT_EQ(domain.BeamElements()[1].node_indices[0], 2U)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 4U) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[2].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""1"") | EXPECT_EQ(domain.Nodes()[2].source_id.source_label_text, ""1"") | EXPECT_NE(domain.Nodes()[0].source_id.instance_name, domain.Nodes()[2].source_id.instance_name) | ASSERT_EQ(domain.BeamElements().Size(), 2U) | EXPECT_EQ(domain.BeamElements()[0].source_id.source_label, 1) | EXPECT_EQ(domain.BeamElements()[1].source_id.source_label, 1) | EXPECT_EQ(domain.BeamElements()[0].source_id.instance_name, ""Instance-A"") | EXPECT_EQ(domain.BeamElements()[1].source_id.instance_name, ""Instance-B"") | EXPECT_EQ(domain.BeamElements()[0].node_indices[0], 0U) | EXPECT_EQ(domain.BeamElements()[1].node_indices[0], 2U)" -Dev tests/unit/model/domain_test.cpp DomainModel.ShellOwnershipPreservesResolvedAssignmentsAndOptionalFrames DomainModel.ShellOwnershipPreservesResolvedAssignmentsAndOptionalFrames; assertion 22개 tests/unit/model/domain_test.cpp DomainModel.ShellOwnershipPreservesResolvedAssignmentsAndOptionalFrames 유지 원문 검사 body 및 assertion 동일. 4809f2a671c479fb442749d6d34966a00045cb2fd1d23f849a78fde2982fb76a 4809f2a671c479fb442749d6d34966a00045cb2fd1d23f849a78fde2982fb76a "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ShellElements().Size(), 2U) | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label, 20) | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label_text, ""0020"") | EXPECT_EQ(domain.ShellElements()[1].source_id.source_label, 10) | EXPECT_EQ(domain.ShellElements()[0].source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_EQ(domain.ShellElements()[1].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[0].node_indices[3], 7U) | EXPECT_EQ(domain.ShellElements()[0].material_index, 0U) | EXPECT_EQ(domain.ShellElements()[0].section_index, 0U) | ASSERT_EQ(domain.ShellSections().Size(), 2U) | EXPECT_EQ(domain.ShellSections()[0].name, ""Section-B"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[0].thickness, 0.02) | EXPECT_EQ(domain.ShellSections()[0].material_index, 0U) | EXPECT_EQ(domain.ShellSections()[1].name, ""Section-A"") | ASSERT_EQ(domain.ShellNodeInitialFrames().size(), 2U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].node_index, 4U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].director, (std::array{0.0, 0.0, 1.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_a, (std::array{1.0, 0.0, 0.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_b, (std::array{0.0, 1.0, 0.0})) | ASSERT_TRUE(no_frames_result.HasValue()) | EXPECT_TRUE(no_frames_result.Value().ShellNodeInitialFrames().empty())" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ShellElements().Size(), 2U) | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label, 20) | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label_text, ""0020"") | EXPECT_EQ(domain.ShellElements()[1].source_id.source_label, 10) | EXPECT_EQ(domain.ShellElements()[0].source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_EQ(domain.ShellElements()[1].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[0].node_indices[3], 7U) | EXPECT_EQ(domain.ShellElements()[0].material_index, 0U) | EXPECT_EQ(domain.ShellElements()[0].section_index, 0U) | ASSERT_EQ(domain.ShellSections().Size(), 2U) | EXPECT_EQ(domain.ShellSections()[0].name, ""Section-B"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[0].thickness, 0.02) | EXPECT_EQ(domain.ShellSections()[0].material_index, 0U) | EXPECT_EQ(domain.ShellSections()[1].name, ""Section-A"") | ASSERT_EQ(domain.ShellNodeInitialFrames().size(), 2U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].node_index, 4U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].director, (std::array{0.0, 0.0, 1.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_a, (std::array{1.0, 0.0, 0.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_b, (std::array{0.0, 1.0, 0.0})) | ASSERT_TRUE(no_frames_result.HasValue()) | EXPECT_TRUE(no_frames_result.Value().ShellNodeInitialFrames().empty())" -Dev tests/unit/model/domain_test.cpp support@1-70 helper/oracle/fixture/include/static assertion 구간: MakeOwnedDefinition tests/unit/model/domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7f7d1304d91efcd8a4c1dd7ba01764f329b43c89d1282657290910bb34a13014 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/model/domain_test.cpp support@294-295 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eb5700ab2d23b38315cc91249e1dafb93f72ad934048c13f25c663dc769e2529 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/model/model_types_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/model/model_types_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8e73c0944e4a0592a63c397fe368b2568b35f9b176af5cb8a5f7eb409dd4556c 8e73c0944e4a0592a63c397fe368b2568b35f9b176af5cb8a5f7eb409dd4556c 해당 없음 해당 없음 -Dev tests/unit/model/model_types_test.cpp DomainModel.SourceAndInternalIdentityRemainDistinct DomainModel.SourceAndInternalIdentityRemainDistinct; assertion 18개 tests/unit/model/model_types_test.cpp DomainModel.SourceAndInternalIdentityRemainDistinct 유지 원문 검사 body 및 assertion 동일. 1a34a5d22cd39f263dbb8fd33c71d7018509fd118804b50f3f683e33c3b8614f 1a34a5d22cd39f263dbb8fd33c71d7018509fd118804b50f3f683e33c3b8614f "EXPECT_EQ( std::make_tuple(first_identity.instance_name, first_identity.source_label, first_identity.source_label_text), std::make_tuple(equal_identity.instance_name, equal_identity.source_label, equal_identity.source_label_text)) | EXPECT_LT( std::make_tuple(first_identity.instance_name, first_identity.source_label, first_identity.source_label_text), std::make_tuple(later_identity.instance_name, later_identity.source_label, later_identity.source_label_text)) | ASSERT_EQ(definition.nodes.size(), 1U) | EXPECT_EQ(definition.nodes[0].source_id.source_label_text, ""0007"") | EXPECT_EQ(definition.nodes[0].location.line, 11U) | ASSERT_EQ(definition.instances.size(), 1U) | EXPECT_EQ(definition.instances[0].part_name, ""BeamPart"") | EXPECT_EQ(definition.instances[0].node_mappings[0].source_label, 7) | EXPECT_EQ(definition.instances[0].node_mappings[0].internal_index, 5U) | EXPECT_EQ(definition.instances[0].element_mappings[0].internal_index, 4U) | EXPECT_EQ(definition.steps[0].initial_increment, 0.1) | EXPECT_EQ(definition.steps[0].time_period, 1.0) | EXPECT_EQ(definition.steps[0].minimum_increment, 1.0e-5) | EXPECT_EQ(definition.steps[0].maximum_increment, 1.0) | EXPECT_EQ(definition.steps[0].procedure_kind, fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(definition.steps[0].nlgeom) | ASSERT_EQ(definition.warnings.size(), 1U) | EXPECT_EQ(definition.warnings[0].location.line, 75U)" "EXPECT_EQ( std::make_tuple(first_identity.instance_name, first_identity.source_label, first_identity.source_label_text), std::make_tuple(equal_identity.instance_name, equal_identity.source_label, equal_identity.source_label_text)) | EXPECT_LT( std::make_tuple(first_identity.instance_name, first_identity.source_label, first_identity.source_label_text), std::make_tuple(later_identity.instance_name, later_identity.source_label, later_identity.source_label_text)) | ASSERT_EQ(definition.nodes.size(), 1U) | EXPECT_EQ(definition.nodes[0].source_id.source_label_text, ""0007"") | EXPECT_EQ(definition.nodes[0].location.line, 11U) | ASSERT_EQ(definition.instances.size(), 1U) | EXPECT_EQ(definition.instances[0].part_name, ""BeamPart"") | EXPECT_EQ(definition.instances[0].node_mappings[0].source_label, 7) | EXPECT_EQ(definition.instances[0].node_mappings[0].internal_index, 5U) | EXPECT_EQ(definition.instances[0].element_mappings[0].internal_index, 4U) | EXPECT_EQ(definition.steps[0].initial_increment, 0.1) | EXPECT_EQ(definition.steps[0].time_period, 1.0) | EXPECT_EQ(definition.steps[0].minimum_increment, 1.0e-5) | EXPECT_EQ(definition.steps[0].maximum_increment, 1.0) | EXPECT_EQ(definition.steps[0].procedure_kind, fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(definition.steps[0].nlgeom) | ASSERT_EQ(definition.warnings.size(), 1U) | EXPECT_EQ(definition.warnings[0].location.line, 75U)" -Dev tests/unit/model/model_types_test.cpp DomainModel.Mitc4ShellRecordsPreserveSourceAndInternalIdentity DomainModel.Mitc4ShellRecordsPreserveSourceAndInternalIdentity; assertion 10개 tests/unit/model/model_types_test.cpp DomainModel.Mitc4ShellRecordsPreserveSourceAndInternalIdentity 유지 원문 검사 body 및 assertion 동일. 3792a5dbf6bafaea0771dd6167e4dad3d5b97f16d4af9fea1beaad7163bd0757 3792a5dbf6bafaea0771dd6167e4dad3d5b97f16d4af9fea1beaad7163bd0757 "EXPECT_EQ(s4_element.source_id.instance_name, ""Shell-Instance"") | EXPECT_EQ(s4_element.source_id.source_label, 41) | EXPECT_EQ(s4_element.source_id.source_label_text, ""0041"") | EXPECT_EQ(s4_element.source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(s4r_element.source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_NE(s4_element.source_type, s4r_element.source_type) | EXPECT_EQ(fesa::kMitc4InternalFormulation, std::string_view{""FESA-MITC4""}) | EXPECT_EQ(s4_element.node_indices, (std::array{3U, 5U, 8U, 13U})) | EXPECT_EQ(s4_element.material_index, 2U) | EXPECT_EQ(s4_element.section_index, 7U)" "EXPECT_EQ(s4_element.source_id.instance_name, ""Shell-Instance"") | EXPECT_EQ(s4_element.source_id.source_label, 41) | EXPECT_EQ(s4_element.source_id.source_label_text, ""0041"") | EXPECT_EQ(s4_element.source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(s4r_element.source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_NE(s4_element.source_type, s4r_element.source_type) | EXPECT_EQ(fesa::kMitc4InternalFormulation, std::string_view{""FESA-MITC4""}) | EXPECT_EQ(s4_element.node_indices, (std::array{3U, 5U, 8U, 13U})) | EXPECT_EQ(s4_element.material_index, 2U) | EXPECT_EQ(s4_element.section_index, 7U)" -Dev tests/unit/model/model_types_test.cpp support@1-32 helper/oracle/fixture/include/static assertion 구간: T, HasEquationId, HasEquationIds tests/unit/model/model_types_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bd6932bd12576c905f4c5d95d7902dba5b9be6626cdbee2a8299ecb10b7238c7 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/model/model_types_test.cpp support@133-134 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/model_types_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7dc636d3db680b7c9af260eae733472a8fbad5992eea8384efe301c7ff01862c 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/model/shell_geometry_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/model/shell_geometry_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9fee2fde5365fea4144fc87591e88e48dfd45376f3dd0ead45f9b7246fff1b3f 3abea01e7cb6543d3f25106cfa97ad5f94c9166a91bf90fbd390a700401d6d9f 해당 없음 해당 없음 -Dev tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.BuildsDeterministicFramesForPlanarRotatedAndWarpedElements Mitc4Geometry.BuildsDeterministicFramesForPlanarRotatedAndWarpedElements; assertion 7개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.BuildsDeterministicFramesForPlanarRotatedAndWarpedElements 유지 원문 검사 body 및 assertion 동일. 89a2ec45af8b97d1f42896e1d0107362659e83a893cf60d7d679786c36f20afe 89a2ec45af8b97d1f42896e1d0107362659e83a893cf60d7d679786c36f20afe ASSERT_TRUE(planar.HasValue()) | ASSERT_EQ(planar.Value().element_data.size(), 1U) | EXPECT_NEAR(planar.Value().element_data[0].surface_area_weight, 1.0, 1.0e-12) | ASSERT_EQ(planar.Value().nodal_frames.size(), 4U) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(warped.HasValue()) | EXPECT_GT(warped.Value().element_data[0].surface_area_weight, 2.0) ASSERT_TRUE(planar.HasValue()) | ASSERT_EQ(planar.Value().element_data.size(), 1U) | EXPECT_NEAR(planar.Value().element_data[0].surface_area_weight, 1.0, 1.0e-12) | ASSERT_EQ(planar.Value().nodal_frames.size(), 4U) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(warped.HasValue()) | EXPECT_GT(warped.Value().element_data[0].surface_area_weight, 2.0) -Dev tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.PreservesExactWarpedResultsAcrossVector3Migration Mitc4Geometry.PreservesExactWarpedResultsAcrossVector3Migration; assertion 14개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.PreservesExactWarpedResultsAcrossVector3Migration 유지 원문 검사 body 및 assertion 동일. c2020cdfcdb7453af2d1504928200ed4e401c22a150f8e0d0b043ef7f27bbdc6 c2020cdfcdb7453af2d1504928200ed4e401c22a150f8e0d0b043ef7f27bbdc6 ASSERT_TRUE(warped.HasValue()) | EXPECT_DOUBLE_EQ(normal.X(), -0x1.97105218e28c2p-5) | EXPECT_DOUBLE_EQ(normal.Y(), -0x1.97105218e28c2p-4) | EXPECT_DOUBLE_EQ(normal.Z(), 0x1.fcd4669f1b2f2p-1) | EXPECT_DOUBLE_EQ(element.surface_area_weight, 0x1.021ebe8f40622p+1) | EXPECT_DOUBLE_EQ(director.X(), -0x1.97105218e28c2p-5) | EXPECT_DOUBLE_EQ(director.Y(), -0x1.97105218e28c2p-4) | EXPECT_DOUBLE_EQ(director.Z(), 0x1.fcd4669f1b2f2p-1) | EXPECT_DOUBLE_EQ(tangent_a.X(), 0x1.ff5e152c2d2abp-1) | EXPECT_DOUBLE_EQ(tangent_a.Y(), -0x1.4408ec773d925p-8) | EXPECT_DOUBLE_EQ(tangent_a.Z(), 0x1.950b27950cf6dp-5) | EXPECT_DOUBLE_EQ(tangent_b.X(), 0.0) | EXPECT_DOUBLE_EQ(tangent_b.Y(), 0x1.fd7583bc82e28p-1) | EXPECT_DOUBLE_EQ(tangent_b.Z(), 0x1.9791363068b53p-4) ASSERT_TRUE(warped.HasValue()) | EXPECT_DOUBLE_EQ(normal.X(), -0x1.97105218e28c2p-5) | EXPECT_DOUBLE_EQ(normal.Y(), -0x1.97105218e28c2p-4) | EXPECT_DOUBLE_EQ(normal.Z(), 0x1.fcd4669f1b2f2p-1) | EXPECT_DOUBLE_EQ(element.surface_area_weight, 0x1.021ebe8f40622p+1) | EXPECT_DOUBLE_EQ(director.X(), -0x1.97105218e28c2p-5) | EXPECT_DOUBLE_EQ(director.Y(), -0x1.97105218e28c2p-4) | EXPECT_DOUBLE_EQ(director.Z(), 0x1.fcd4669f1b2f2p-1) | EXPECT_DOUBLE_EQ(tangent_a.X(), 0x1.ff5e152c2d2abp-1) | EXPECT_DOUBLE_EQ(tangent_a.Y(), -0x1.4408ec773d925p-8) | EXPECT_DOUBLE_EQ(tangent_a.Z(), 0x1.950b27950cf6dp-5) | EXPECT_DOUBLE_EQ(tangent_b.X(), 0.0) | EXPECT_DOUBLE_EQ(tangent_b.Y(), 0x1.fd7583bc82e28p-1) | EXPECT_DOUBLE_EQ(tangent_b.Z(), 0x1.9791363068b53p-4) -Dev tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.AreaWeightsSharedDirectorsInStableSourceIdentityOrder Mitc4Geometry.AreaWeightsSharedDirectorsInStableSourceIdentityOrder; assertion 2개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.AreaWeightsSharedDirectorsInStableSourceIdentityOrder 유지 원문 검사 body 및 assertion 동일. c24fcef294b948a5b0cdbd9fa0822d7d6f18aa2e106569c357417a0f396e89fa c24fcef294b948a5b0cdbd9fa0822d7d6f18aa2e106569c357417a0f396e89fa ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) -Dev tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.RejectsInvalidSurfaceJacobianAndIncidentOrientationCases Mitc4Geometry.RejectsInvalidSurfaceJacobianAndIncidentOrientationCases; assertion 0개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.RejectsInvalidSurfaceJacobianAndIncidentOrientationCases 유지 원문 검사 body 및 assertion 동일. 78afdfd80554bc5d9c2e688f0a7ee1213acaa0be1ba804306d6973825b1447e0 78afdfd80554bc5d9c2e688f0a7ee1213acaa0be1ba804306d6973825b1447e0 해당 없음 해당 없음 -Dev tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.ExposesTheCompleteRequiredValidationPointInventory Mitc4Geometry.ExposesTheCompleteRequiredValidationPointInventory; assertion 12개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.ExposesTheCompleteRequiredValidationPointInventory 유지 원문 검사 body 및 assertion 동일. 0de2e1387e20a29baff982dcaf0fba7b261415b3a5a39c9c635e20f1529aff05 0de2e1387e20a29baff982dcaf0fba7b261415b3a5a39c9c635e20f1529aff05 ASSERT_EQ(points.size(), 17U) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kCenter; }), 1) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kStiffness; }), 8) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kTying; }), 4) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kRecovery; }), 4) | EXPECT_EQ(points.front().natural_coordinates, (Vector3{0.0, 0.0, 0.0})) | EXPECT_EQ(points[1].natural_coordinates, (Vector3{-gauss, -gauss, -gauss})) | EXPECT_EQ(points[8].natural_coordinates, (Vector3{-gauss, gauss, gauss})) | EXPECT_EQ(points[9].natural_coordinates, (Vector3{0.0, -1.0, 0.0})) | EXPECT_EQ(points[12].natural_coordinates, (Vector3{1.0, 0.0, 0.0})) | EXPECT_EQ(points[13].natural_coordinates, (Vector3{-gauss, -gauss, 0.0})) | EXPECT_EQ(points[16].natural_coordinates, (Vector3{-gauss, gauss, 0.0})) ASSERT_EQ(points.size(), 17U) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kCenter; }), 1) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kStiffness; }), 8) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kTying; }), 4) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kRecovery; }), 4) | EXPECT_EQ(points.front().natural_coordinates, (Vector3{0.0, 0.0, 0.0})) | EXPECT_EQ(points[1].natural_coordinates, (Vector3{-gauss, -gauss, -gauss})) | EXPECT_EQ(points[8].natural_coordinates, (Vector3{-gauss, gauss, gauss})) | EXPECT_EQ(points[9].natural_coordinates, (Vector3{0.0, -1.0, 0.0})) | EXPECT_EQ(points[12].natural_coordinates, (Vector3{1.0, 0.0, 0.0})) | EXPECT_EQ(points[13].natural_coordinates, (Vector3{-gauss, -gauss, 0.0})) | EXPECT_EQ(points[16].natural_coordinates, (Vector3{-gauss, gauss, 0.0})) -Dev tests/unit/model/shell_geometry_test.cpp support@1-91 helper/oracle/fixture/include/static assertion 구간: Node, Element, Sections, Dot, Cross, Norm, ExpectVectorNear, ExpectRightHandedFrame, FrameFor, find_if, ExpectFailureCode tests/unit/model/shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7fecde30f91624d167ea26a62c28b4f280b502b07cb5999ed2668cb5db8dcdc8 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/model/shell_geometry_test.cpp support@166-167 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2511c5276f8f705a4d47ef40ba5103972050738b68fd8a2714f3fd319f718b5c 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/model/shell_geometry_test.cpp support@193-194 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3cb49d9660c0150c0645878e98e94da458f371a63d9cf921dafed78d62b6a4a0 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/model/shell_geometry_test.cpp support@247-248 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 05e26e807ccadaa099d4dc20c9590ec3fa57343328b240c1ed2d4dc9086c1321 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/model/source_target_resolver_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/model/source_target_resolver_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0fd2a3f57be9e3dcc6a0710f23d07618b100d9f8fa6d46945bf7951063145ebb 5868bd88560af25dea83f385748c40d274712c9dc28a344fca03f3cab760f8d1 해당 없음 해당 없음 -Dev tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.SeparatesNamespacesAndInstancesAndExpandsInDeclarationOrder SourceTargetResolver.SeparatesNamespacesAndInstancesAndExpandsInDeclarationOrder; assertion 10개 tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.SeparatesNamespacesAndInstancesAndExpandsInDeclarationOrder 유지 원문 검사 body 및 assertion 동일. 371f5279d1b122a9821fe2fa2e841a01f0c7f317f4824c7f1a10eb65bda481be 371f5279d1b122a9821fe2fa2e841a01f0c7f317f4824c7f1a10eb65bda481be "ASSERT_TRUE(nodes.HasValue()) | EXPECT_EQ(Indices(nodes.Value()), (std::vector{0U, 1U})) | EXPECT_EQ(nodes.Value()[0U].source_id.instance_name, ""Beam-1"") | EXPECT_EQ(nodes.Value()[0U].source_id.source_label_text, ""0010"") | ASSERT_TRUE(elements.HasValue()) | EXPECT_EQ(Indices(elements.Value()), (std::vector{4U})) | ASSERT_TRUE(second_instance.HasValue()) | EXPECT_EQ(Indices(second_instance.Value()), (std::vector{2U})) | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(Indices(direct.Value()), (std::vector{0U}))" "ASSERT_TRUE(nodes.HasValue()) | EXPECT_EQ(Indices(nodes.Value()), (std::vector{0U, 1U})) | EXPECT_EQ(nodes.Value()[0U].source_id.instance_name, ""Beam-1"") | EXPECT_EQ(nodes.Value()[0U].source_id.source_label_text, ""0010"") | ASSERT_TRUE(elements.HasValue()) | EXPECT_EQ(Indices(elements.Value()), (std::vector{4U})) | ASSERT_TRUE(second_instance.HasValue()) | EXPECT_EQ(Indices(second_instance.Value()), (std::vector{2U})) | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(Indices(direct.Value()), (std::vector{0U}))" -Dev tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.RejectsMissingAmbiguousAndNonpositiveTargets SourceTargetResolver.RejectsMissingAmbiguousAndNonpositiveTargets; assertion 0개 tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.RejectsMissingAmbiguousAndNonpositiveTargets 유지 원문 검사 body 및 assertion 동일. 7a11d0e9feb5f2c40349b3fc51279e275ea27d6030de1e9489786952e1444aef 7a11d0e9feb5f2c40349b3fc51279e275ea27d6030de1e9489786952e1444aef 해당 없음 해당 없음 -Dev tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.ReportsDuplicateMembershipsInDeterministicDeclarationOrder SourceTargetResolver.ReportsDuplicateMembershipsInDeterministicDeclarationOrder; assertion 7개 tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.ReportsDuplicateMembershipsInDeterministicDeclarationOrder 유지 원문 검사 body 및 assertion 동일. 8f72fa1e1fbb347fed00f0ae99086e57086d43ac80984243f2c5ee20bb141c29 8f72fa1e1fbb347fed00f0ae99086e57086d43ac80984243f2c5ee20bb141c29 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 2U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""duplicate-source-target"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].message, ""Duplicate resolved source target 20."") | EXPECT_EQ(result.GetStatus().Diagnostics()[1U].code, ""duplicate-source-target"") | EXPECT_EQ(result.GetStatus().Diagnostics()[1U].message, ""Duplicate resolved source target 10."")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 2U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""duplicate-source-target"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].message, ""Duplicate resolved source target 20."") | EXPECT_EQ(result.GetStatus().Diagnostics()[1U].code, ""duplicate-source-target"") | EXPECT_EQ(result.GetStatus().Diagnostics()[1U].message, ""Duplicate resolved source target 10."")" -Dev tests/unit/model/source_target_resolver_test.cpp support@1-52 helper/oracle/fixture/include/static assertion 구간: Entry, Indices, for, ExpectFailure tests/unit/model/source_target_resolver_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cea5c6ff21dff6057da6621ea47cd0fcb5ec20f1f524551e8bae951791033aa8 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/model/thermal_semantics_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/model/thermal_semantics_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e35fdae0a9d314a157526b4ebd72ff54eef3f8123b3646fd8f5f3c50b39bbaea e35fdae0a9d314a157526b4ebd72ff54eef3f8123b3646fd8f5f3c50b39bbaea 해당 없음 해당 없음 -Dev tests/unit/model/thermal_semantics_test.cpp ThermalDomain.StructuralDefinitionHasNoThermalStep ThermalDomain.StructuralDefinitionHasNoThermalStep; assertion 2개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.StructuralDefinitionHasNoThermalStep 유지 원문 검사 body 및 assertion 동일. 5109e39fa2bd304e84323c45a63bff6d6948c4f8e385006533847d897edbb852 5109e39fa2bd304e84323c45a63bff6d6948c4f8e385006533847d897edbb852 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().ThermalStep(), nullptr) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().ThermalStep(), nullptr) -Dev tests/unit/model/thermal_semantics_test.cpp IsotropicThermalMaterial.RequiresFinitePositivePropertiesAndIdentity IsotropicThermalMaterial.RequiresFinitePositivePropertiesAndIdentity; assertion 9개 tests/unit/model/thermal_semantics_test.cpp IsotropicThermalMaterial.RequiresFinitePositivePropertiesAndIdentity 유지 원문 검사 body 및 assertion 동일. 3eec96a6aa43b48716c7ef05b78fc8e81f08777ca547164a676e7ba5b64987ee 3eec96a6aa43b48716c7ef05b78fc8e81f08777ca547164a676e7ba5b64987ee "ASSERT_TRUE(valid.HasValue()) | EXPECT_EQ(valid.Value().Kind(), fesa::MaterialKind::kIsotropicThermal) | EXPECT_DOUBLE_EQ(valid.Value().Conductivity(), 45.0) | EXPECT_DOUBLE_EQ(valid.Value().Density(), 7800.0) | EXPECT_DOUBLE_EQ(valid.Value().SpecificHeat(), 500.0) | ASSERT_FALSE(invalid.HasValue()) | EXPECT_EQ(invalid.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(fesa::IsotropicThermalMaterial::Create({"""", 7, ""Thermal-Steel""}, ""Thermal-Steel"", 45.0, 0.0, 500.0, Location()) .HasValue()) | EXPECT_FALSE(fesa::IsotropicThermalMaterial::Create( {"""", 7, ""Thermal-Steel""}, ""Thermal-Steel"", 45.0, 7800.0, std::numeric_limits::quiet_NaN(), Location()) .HasValue())" "ASSERT_TRUE(valid.HasValue()) | EXPECT_EQ(valid.Value().Kind(), fesa::MaterialKind::kIsotropicThermal) | EXPECT_DOUBLE_EQ(valid.Value().Conductivity(), 45.0) | EXPECT_DOUBLE_EQ(valid.Value().Density(), 7800.0) | EXPECT_DOUBLE_EQ(valid.Value().SpecificHeat(), 500.0) | ASSERT_FALSE(invalid.HasValue()) | EXPECT_EQ(invalid.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(fesa::IsotropicThermalMaterial::Create({"""", 7, ""Thermal-Steel""}, ""Thermal-Steel"", 45.0, 0.0, 500.0, Location()) .HasValue()) | EXPECT_FALSE(fesa::IsotropicThermalMaterial::Create( {"""", 7, ""Thermal-Steel""}, ""Thermal-Steel"", 45.0, 7800.0, std::numeric_limits::quiet_NaN(), Location()) .HasValue())" -Dev tests/unit/model/thermal_semantics_test.cpp ThermalDomain.OwnsFiveStationDefinitionsWithoutEquationState ThermalDomain.OwnsFiveStationDefinitionsWithoutEquationState; assertion 11개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.OwnsFiveStationDefinitionsWithoutEquationState 유지 원문 검사 body 및 assertion 동일. e6d226842e76067fc438dfd669bd073c05be7a9be7895ab909ad06d4ab8a0e72 e6d226842e76067fc438dfd669bd073c05be7a9be7895ab909ad06d4ab8a0e72 ASSERT_TRUE(result.HasValue()) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(domain.ThermalElements().Size(), 1U) | EXPECT_EQ(domain.ThermalElements()[0U].Kind(), fesa::ElementDefinitionKind::kDs4Thermal) | EXPECT_EQ(domain.ThermalElements()[0U].PropertyIndex(), fesa::Ds4ThermalDefinition::kNoPropertyIndex) | EXPECT_EQ(domain.ThermalElements()[0U].NodeIndices(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(domain.ThermalInitialConditions()[0U].station_values, (std::array{12.5, 12.5, 12.5, 12.5, 12.5})) | EXPECT_EQ(domain.ThermalStep()->Boundaries()[0U].value, 20.0) | EXPECT_EQ(domain.ThermalStep()->Loads()[0U].source_order, 0U) | EXPECT_EQ(static_cast(fesa::ThermalDofComponent::kBottom), 11) | EXPECT_EQ(static_cast(fesa::ThermalDofComponent::kTop), 15) ASSERT_TRUE(result.HasValue()) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(domain.ThermalElements().Size(), 1U) | EXPECT_EQ(domain.ThermalElements()[0U].Kind(), fesa::ElementDefinitionKind::kDs4Thermal) | EXPECT_EQ(domain.ThermalElements()[0U].PropertyIndex(), fesa::Ds4ThermalDefinition::kNoPropertyIndex) | EXPECT_EQ(domain.ThermalElements()[0U].NodeIndices(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(domain.ThermalInitialConditions()[0U].station_values, (std::array{12.5, 12.5, 12.5, 12.5, 12.5})) | EXPECT_EQ(domain.ThermalStep()->Boundaries()[0U].value, 20.0) | EXPECT_EQ(domain.ThermalStep()->Loads()[0U].source_order, 0U) | EXPECT_EQ(static_cast(fesa::ThermalDofComponent::kBottom), 11) | EXPECT_EQ(static_cast(fesa::ThermalDofComponent::kTop), 15) -Dev tests/unit/model/thermal_semantics_test.cpp ThermalDomain.RejectsInactiveTargetsConflictsAndMixedElements ThermalDomain.RejectsInactiveTargetsConflictsAndMixedElements; assertion 8개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.RejectsInactiveTargetsConflictsAndMixedElements 유지 원문 검사 body 및 assertion 동일. 69b1b68b51176ef0a39d57b5c5899bc6c935fc3e6a82850b7634f13895ae26d6 69b1b68b51176ef0a39d57b5c5899bc6c935fc3e6a82850b7634f13895ae26d6 ASSERT_FALSE(inactive.HasValue()) | EXPECT_EQ(inactive.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(conflicting.HasValue()) | EXPECT_EQ(conflicting.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(mixed.HasValue()) | EXPECT_EQ(mixed.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(invalid_thickness.HasValue()) | EXPECT_EQ(invalid_thickness.GetStatus().Category(), fesa::FailureCategory::kModel) ASSERT_FALSE(inactive.HasValue()) | EXPECT_EQ(inactive.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(conflicting.HasValue()) | EXPECT_EQ(conflicting.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(mixed.HasValue()) | EXPECT_EQ(mixed.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(invalid_thickness.HasValue()) | EXPECT_EQ(invalid_thickness.GetStatus().Category(), fesa::FailureCategory::kModel) -Dev tests/unit/model/thermal_semantics_test.cpp ThermalDomain.AllowsEqualInitialTargetsAndStepBoundaryOverride ThermalDomain.AllowsEqualInitialTargetsAndStepBoundaryOverride; assertion 4개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.AllowsEqualInitialTargetsAndStepBoundaryOverride 유지 원문 검사 body 및 assertion 동일. 7d2f88248ba8df15e130f352f1bcbce0886e513bfd575bcdf66862383f86ce12 7d2f88248ba8df15e130f352f1bcbce0886e513bfd575bcdf66862383f86ce12 EXPECT_TRUE(equal_initial.HasValue()) | ASSERT_FALSE(conflicting_initial.HasValue()) | EXPECT_EQ(conflicting_initial.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_TRUE(overriding_step.HasValue()) EXPECT_TRUE(equal_initial.HasValue()) | ASSERT_FALSE(conflicting_initial.HasValue()) | EXPECT_EQ(conflicting_initial.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_TRUE(overriding_step.HasValue()) -Dev tests/unit/model/thermal_semantics_test.cpp ThermalDomain.RejectsInteriorThermalDofsAndInactiveFluxTargets ThermalDomain.RejectsInteriorThermalDofsAndInactiveFluxTargets; assertion 4개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.RejectsInteriorThermalDofsAndInactiveFluxTargets 유지 원문 검사 body 및 assertion 동일. 1e9cbd5b4303fc6d2706eda68d786d4bec26fe554c7043554f04b8588b7455f3 1e9cbd5b4303fc6d2706eda68d786d4bec26fe554c7043554f04b8588b7455f3 EXPECT_FALSE(boundary.HasValue()) | EXPECT_FALSE(flux.HasValue()) | EXPECT_FALSE(inactive_flux.HasValue()) | EXPECT_FALSE(inactive_boundary.HasValue()) EXPECT_FALSE(boundary.HasValue()) | EXPECT_FALSE(flux.HasValue()) | EXPECT_FALSE(inactive_flux.HasValue()) | EXPECT_FALSE(inactive_boundary.HasValue()) -Dev tests/unit/model/thermal_semantics_test.cpp ThermalDomain.PreservesAdditiveFluxSourceOrder ThermalDomain.PreservesAdditiveFluxSourceOrder; assertion 6개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.PreservesAdditiveFluxSourceOrder 유지 원문 검사 body 및 assertion 동일. dd1914d0d09fc94c82e24118f005fc7d1ff4b5c31ceb318021508b6239a26a79 dd1914d0d09fc94c82e24118f005fc7d1ff4b5c31ceb318021508b6239a26a79 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0U].source_order, 0U) | EXPECT_EQ(loads[1U].source_order, 1U) | EXPECT_DOUBLE_EQ(loads[0U].power, -5.0) | EXPECT_DOUBLE_EQ(loads[1U].power, 3.0) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0U].source_order, 0U) | EXPECT_EQ(loads[1U].source_order, 1U) | EXPECT_DOUBLE_EQ(loads[0U].power, -5.0) | EXPECT_DOUBLE_EQ(loads[1U].power, 3.0) -Dev tests/unit/model/thermal_semantics_test.cpp ThermalAnalysisModel.KeepsThermalSectionMaterialIndicesSeparateFromDomainMaterials ThermalAnalysisModel.KeepsThermalSectionMaterialIndicesSeparateFromDomainMaterials; assertion 12개 tests/unit/model/thermal_semantics_test.cpp ThermalAnalysisModel.KeepsThermalSectionMaterialIndicesSeparateFromDomainMaterials 유지 원문 검사 body 및 assertion 동일. 550c29842bdef0f9518150f2f263f6c2302ce2d0c108607913f3833bfbd9ace2 550c29842bdef0f9518150f2f263f6c2302ce2d0c108607913f3833bfbd9ace2 ASSERT_TRUE(domain_result.HasValue()) | ASSERT_EQ(domain.Materials().Size(), 3U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 2U) | EXPECT_EQ(domain.ThermalSections()[0U].material_index, 1U) | EXPECT_EQ(domain.ThermalSections()[1U].material_index, 0U) | EXPECT_EQ(domain.ThermalElements()[0U].MaterialIndex(), 2U) | EXPECT_EQ(domain.ThermalElements()[1U].MaterialIndex(), 1U) | EXPECT_EQ(domain.ThermalElements()[0U].PropertyIndex(), fesa::Ds4ThermalDefinition::kNoPropertyIndex) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(model_result.Value().ActiveThermalMaterials(), (std::vector{0U, 1U})) | EXPECT_EQ(model_result.Value().ActiveThermalSections(), (std::vector{0U, 1U})) | EXPECT_TRUE(model_result.Value().ActiveProperties().empty()) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_EQ(domain.Materials().Size(), 3U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 2U) | EXPECT_EQ(domain.ThermalSections()[0U].material_index, 1U) | EXPECT_EQ(domain.ThermalSections()[1U].material_index, 0U) | EXPECT_EQ(domain.ThermalElements()[0U].MaterialIndex(), 2U) | EXPECT_EQ(domain.ThermalElements()[1U].MaterialIndex(), 1U) | EXPECT_EQ(domain.ThermalElements()[0U].PropertyIndex(), fesa::Ds4ThermalDefinition::kNoPropertyIndex) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(model_result.Value().ActiveThermalMaterials(), (std::vector{0U, 1U})) | EXPECT_EQ(model_result.Value().ActiveThermalSections(), (std::vector{0U, 1U})) | EXPECT_TRUE(model_result.Value().ActiveProperties().empty()) -Dev tests/unit/model/thermal_semantics_test.cpp ThermalAnalysisModel.ViewsConnectedDs4EntitiesWithoutOwningDomain ThermalAnalysisModel.ViewsConnectedDs4EntitiesWithoutOwningDomain; assertion 17개 tests/unit/model/thermal_semantics_test.cpp ThermalAnalysisModel.ViewsConnectedDs4EntitiesWithoutOwningDomain 유지 원문 검사 body 및 assertion 동일. 509fa86c25fb97bf5c46d2eb7dfe513ac53a0fbceef40979b47ed0a740fbac7c 509fa86c25fb97bf5c46d2eb7dfe513ac53a0fbceef40979b47ed0a740fbac7c ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_TRUE(model.IsThermal()) | EXPECT_EQ(model.ThermalStep(), domain.ThermalStep()) | EXPECT_THROW(model.Step(), std::logic_error) | EXPECT_EQ(model.ActiveThermalElements(), (std::vector{0U})) | EXPECT_EQ(model.ActiveThermalNodes(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(model.ActiveThermalMaterials(), (std::vector{0U})) | EXPECT_EQ(model.ActiveThermalSections(), (std::vector{0U})) | EXPECT_TRUE(model.ActiveProperties().empty()) | EXPECT_EQ(domain.ThermalSections()[0U].material_index, 0U) | EXPECT_EQ(domain.ThermalElements()[0U].MaterialIndex(), 0U) | EXPECT_EQ(&model.GetDomain(), &domain) | ASSERT_TRUE(moved_model.HasValue()) | EXPECT_EQ(&moved_model.Value().GetDomain(), &moved_domain) | EXPECT_DOUBLE_EQ(moved_domain.ThermalMaterials()[0U].Conductivity(), 45.0) | EXPECT_EQ(moved_domain.ThermalElements()[0U].SourceId().source_label, 8) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_TRUE(model.IsThermal()) | EXPECT_EQ(model.ThermalStep(), domain.ThermalStep()) | EXPECT_THROW(model.Step(), std::logic_error) | EXPECT_EQ(model.ActiveThermalElements(), (std::vector{0U})) | EXPECT_EQ(model.ActiveThermalNodes(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(model.ActiveThermalMaterials(), (std::vector{0U})) | EXPECT_EQ(model.ActiveThermalSections(), (std::vector{0U})) | EXPECT_TRUE(model.ActiveProperties().empty()) | EXPECT_EQ(domain.ThermalSections()[0U].material_index, 0U) | EXPECT_EQ(domain.ThermalElements()[0U].MaterialIndex(), 0U) | EXPECT_EQ(&model.GetDomain(), &domain) | ASSERT_TRUE(moved_model.HasValue()) | EXPECT_EQ(&moved_model.Value().GetDomain(), &moved_domain) | EXPECT_DOUBLE_EQ(moved_domain.ThermalMaterials()[0U].Conductivity(), 45.0) | EXPECT_EQ(moved_domain.ThermalElements()[0U].SourceId().source_label, 8) -Dev tests/unit/model/thermal_semantics_test.cpp support@1-50 helper/oracle/fixture/include/static assertion 구간: Location, ValidDefinition tests/unit/model/thermal_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 34019d56ebed3f1fa39477e5c1846c9610f380a4cec751b860088f6e6ce221ba 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/model/thermal_shell_geometry_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/model/thermal_shell_geometry_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 754d05288c9ba4de3c7cba2153621be4af8489b5c7e0946e387ee86ffaa0776c 2011bdeb9d673496a31e6ee31317452fb401fbfefb928cd97d085c99406dd033 해당 없음 해당 없음 -Dev tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.CertifiesAffineDistortedSaddleAndSlenderPatches ThermalShellGeometry.CertifiesAffineDistortedSaddleAndSlenderPatches; assertion 5개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.CertifiesAffineDistortedSaddleAndSlenderPatches 유지 원문 검사 body 및 assertion 동일. 48147bb1a29cb0d24551a12e8a96d748c81fa670f440912e1d99901118128f8c 48147bb1a29cb0d24551a12e8a96d748c81fa670f440912e1d99901118128f8c EXPECT_TRUE(Kernel(kSquare).HasValue()) | EXPECT_TRUE( Kernel({{{0, 0, 0}, {2, 0, 0}, {3, 1, 0}, {1, 1, 0}}}).HasValue()) | EXPECT_TRUE( Kernel({{{0, 0, 0}, {2, 0, 0}, {1.5, 1, 0}, {0, 1, 0}}}).HasValue()) | EXPECT_TRUE(Kernel({{{0, 0, 0}, {1, 0, 0}, {1, std::ldexp(1., -40), 0}, {0, std::ldexp(1., -40), 0}}}) .HasValue()) | EXPECT_TRUE( Kernel({{{-1, -1, a}, {1, -1, -a}, {1, 1, a}, {-1, 1, -a}}}).HasValue()) EXPECT_TRUE(Kernel(kSquare).HasValue()) | EXPECT_TRUE( Kernel({{{0, 0, 0}, {2, 0, 0}, {3, 1, 0}, {1, 1, 0}}}).HasValue()) | EXPECT_TRUE( Kernel({{{0, 0, 0}, {2, 0, 0}, {1.5, 1, 0}, {0, 1, 0}}}).HasValue()) | EXPECT_TRUE(Kernel({{{0, 0, 0}, {1, 0, 0}, {1, std::ldexp(1., -40), 0}, {0, std::ldexp(1., -40), 0}}}) .HasValue()) | EXPECT_TRUE( Kernel({{{-1, -1, a}, {1, -1, -a}, {1, 1, a}, {-1, 1, -a}}}).HasValue()) -Dev tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.PowerOfTwoScalingTranslationAndRotation ThermalShellGeometry.PowerOfTwoScalingTranslationAndRotation; assertion 3개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.PowerOfTwoScalingTranslationAndRotation 유지 원문 검사 body 및 assertion 동일. 5a22e1006b798b2d4a9544a4ee6af30a969558a0bafaba3dfc98634d36b62ff8 5a22e1006b798b2d4a9544a4ee6af30a969558a0bafaba3dfc98634d36b62ff8 EXPECT_TRUE(Kernel(patch).HasValue()) | EXPECT_TRUE(Kernel(translated).HasValue()) | EXPECT_TRUE(Kernel(rotated).HasValue()) EXPECT_TRUE(Kernel(patch).HasValue()) | EXPECT_TRUE(Kernel(translated).HasValue()) | EXPECT_TRUE(Kernel(rotated).HasValue()) -Dev tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsWholePatchSingularityDespiteNonzeroGaussPoints ThermalShellGeometry.RejectsWholePatchSingularityDespiteNonzeroGaussPoints; assertion 4개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsWholePatchSingularityDespiteNonzeroGaussPoints 유지 원문 검사 body 및 assertion 동일. d4f657f21765c36aeb85cb4ef44f7eb0da408aaa215d6264aa01ae008fe24134 d4f657f21765c36aeb85cb4ef44f7eb0da408aaa215d6264aa01ae008fe24134 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].entity_identity, ""part:0027"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, 17U) | EXPECT_GT(std::abs(q - .25), 0.)" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].entity_identity, ""part:0027"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, 17U) | EXPECT_GT(std::abs(q - .25), 0.)" -Dev tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsInvalidAndDoesNotRepairUncertainGeometry ThermalShellGeometry.RejectsInvalidAndDoesNotRepairUncertainGeometry; assertion 6개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsInvalidAndDoesNotRepairUncertainGeometry 유지 원문 검사 body 및 assertion 동일. 8507137261c0e52029ab56b39af1e9434cf478fcf9870c9d474c8f61ffb75f0e 8507137261c0e52029ab56b39af1e9434cf478fcf9870c9d474c8f61ffb75f0e "EXPECT_FALSE( Kernel({{{0, 0, 0}, {1, 1, 0}, {1, 0, 0}, {0, 1, 0}}}).HasValue()) | EXPECT_FALSE( Kernel({{{0, 0, 0}, {1, 0, 0}, {2, 0, 0}, {3, 0, 0}}}).HasValue()) | EXPECT_FALSE(Kernel(repeated).HasValue()) | EXPECT_FALSE(Kernel(patch).HasValue()) | EXPECT_FALSE(duplicate.HasValue()) | EXPECT_EQ(uncertain.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-geometry"")" "EXPECT_FALSE( Kernel({{{0, 0, 0}, {1, 1, 0}, {1, 0, 0}, {0, 1, 0}}}).HasValue()) | EXPECT_FALSE( Kernel({{{0, 0, 0}, {1, 0, 0}, {2, 0, 0}, {3, 0, 0}}}).HasValue()) | EXPECT_FALSE(Kernel(repeated).HasValue()) | EXPECT_FALSE(Kernel(patch).HasValue()) | EXPECT_FALSE(duplicate.HasValue()) | EXPECT_EQ(uncertain.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-geometry"")" -Dev tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainEnforcesOppositeEdgesAndOneVertexLink ThermalShellGeometry.DomainEnforcesOppositeEdgesAndOneVertexLink; assertion 5개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainEnforcesOppositeEdgesAndOneVertexLink 유지 원문 검사 body 및 assertion 동일. 960d6f8e2311e574bde5319cf21f80fd621f40068ceba6271b3341a91f01e523 960d6f8e2311e574bde5319cf21f80fd621f40068ceba6271b3341a91f01e523 EXPECT_TRUE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{1, 4, 5, 2}}}))) | EXPECT_FALSE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{2, 5, 4, 1}}}))) | EXPECT_FALSE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{0, 1, 2, 3}}}))) | EXPECT_FALSE(Accepted(Mesh({{0, 0, 0}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0}, {-1, -1, 0}, {0, -1, 0}, {-1, 0, 0}}, {{{0, 1, 2, 3}}, {{0, 6, 4, 5}}}))) | EXPECT_FALSE( Accepted(Mesh({{0, 0, 0}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0}, {2, 0, 0}, {2, 1, 0}, {1, 0, 1}, {1, 1, 1}}, {{{0, 1, 2, 3}}, {{1, 4, 5, 2}}, {{1, 6, 7, 2}}}))) EXPECT_TRUE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{1, 4, 5, 2}}}))) | EXPECT_FALSE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{2, 5, 4, 1}}}))) | EXPECT_FALSE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{0, 1, 2, 3}}}))) | EXPECT_FALSE(Accepted(Mesh({{0, 0, 0}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0}, {-1, -1, 0}, {0, -1, 0}, {-1, 0, 0}}, {{{0, 1, 2, 3}}, {{0, 6, 4, 5}}}))) | EXPECT_FALSE( Accepted(Mesh({{0, 0, 0}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0}, {2, 0, 0}, {2, 1, 0}, {1, 0, 1}, {1, 1, 1}}, {{{0, 1, 2, 3}}, {{1, 4, 5, 2}}, {{1, 6, 7, 2}}}))) -Dev tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainAllowsFoldAndDisconnectedCoordinateContact ThermalShellGeometry.DomainAllowsFoldAndDisconnectedCoordinateContact; assertion 3개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainAllowsFoldAndDisconnectedCoordinateContact 유지 원문 검사 body 및 assertion 동일. 5249d8d88ee57a712425ba038be3bac4ade7db9c481b522d83c2caade689a80f 5249d8d88ee57a712425ba038be3bac4ade7db9c481b522d83c2caade689a80f EXPECT_TRUE(Accepted(std::move(folded))) | EXPECT_TRUE(Accepted(disconnected)) | EXPECT_TRUE(Accepted(disconnected)) EXPECT_TRUE(Accepted(std::move(folded))) | EXPECT_TRUE(Accepted(disconnected)) | EXPECT_TRUE(Accepted(disconnected)) -Dev tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainRejectsSourceSharingPartialEdgeWithoutGlobalScan ThermalShellGeometry.DomainRejectsSourceSharingPartialEdgeWithoutGlobalScan; assertion 3개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainRejectsSourceSharingPartialEdgeWithoutGlobalScan 유지 원문 검사 body 및 assertion 동일. 0c84d4620600808611f9c67496c87bba5ea2baddc6714c78facfcac24d1d4cfb 0c84d4620600808611f9c67496c87bba5ea2baddc6714c78facfcac24d1d4cfb "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-connection"") | EXPECT_FALSE(Accepted(invalid))" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-connection"") | EXPECT_FALSE(Accepted(invalid))" -Dev tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.SearchesSeparatingDirectionsBeyondCenterAndCorners ThermalShellGeometry.SearchesSeparatingDirectionsBeyondCenterAndCorners; assertion 2개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.SearchesSeparatingDirectionsBeyondCenterAndCorners 유지 원문 검사 body 및 assertion 동일. e9e9cca17d49ca10988a52883efca96de60507cb1cf1af5a467e096037879591 e9e9cca17d49ca10988a52883efca96de60507cb1cf1af5a467e096037879591 EXPECT_TRUE( Kernel({{{3, -9, -3}, {1, 3, -3}, {-1, 3, 3}, {-3, 3, 3}}}).HasValue()) | EXPECT_TRUE( Kernel({{{-1, 4, -4}, {-1, -2, 2}, {3, 2, 4}, {-1, -4, -2}}}).HasValue()) EXPECT_TRUE( Kernel({{{3, -9, -3}, {1, 3, -3}, {-1, 3, 3}, {-3, 3, 3}}}).HasValue()) | EXPECT_TRUE( Kernel({{{-1, 4, -4}, {-1, -2, 2}, {3, 2, 4}, {-1, -4, -2}}}).HasValue()) -Dev tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsAliasedSourceIdentityAndAcceptsClosedVertexLink ThermalShellGeometry.RejectsAliasedSourceIdentityAndAcceptsClosedVertexLink; assertion 2개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsAliasedSourceIdentityAndAcceptsClosedVertexLink 유지 원문 검사 body 및 assertion 동일. 5fc28937a2442f6232fecc5edfa705ee8777c0a5e5a5395d16875e9e7613ea60 5fc28937a2442f6232fecc5edfa705ee8777c0a5e5a5395d16875e9e7613ea60 EXPECT_FALSE(Accepted(aliases)) | EXPECT_TRUE(Accepted( Mesh({{-1, -1, 0}, {0, -1, 0}, {1, -1, 0}, {-1, 0, 0}, {0, 0, 0}, {1, 0, 0}, {-1, 1, 0}, {0, 1, 0}, {1, 1, 0}}, {{{0, 1, 4, 3}}, {{1, 2, 5, 4}}, {{3, 4, 7, 6}}, {{4, 5, 8, 7}}}))) EXPECT_FALSE(Accepted(aliases)) | EXPECT_TRUE(Accepted( Mesh({{-1, -1, 0}, {0, -1, 0}, {1, -1, 0}, {-1, 0, 0}, {0, 0, 0}, {1, 0, 0}, {-1, 1, 0}, {0, 1, 0}, {1, 1, 0}}, {{{0, 1, 4, 3}}, {{1, 2, 5, 4}}, {{3, 4, 7, 6}}, {{4, 5, 8, 7}}}))) -Dev tests/unit/model/thermal_shell_geometry_test.cpp support@1-48 helper/oracle/fixture/include/static assertion 구간: Kernel, Mesh, Accepted tests/unit/model/thermal_shell_geometry_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7d176d82a5793eb18d82939f0cb8aefeb58f83c729b7a7c3bec269a1e90ecbf2 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/properties/element_property_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/properties/element_property_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 37fe800c84baee1240c919337d93fdaf0b06540901fcf27c1de88b3cab07b049 37fe800c84baee1240c919337d93fdaf0b06540901fcf27c1de88b3cab07b049 해당 없음 해당 없음 -Dev tests/unit/properties/element_property_test.cpp ElementProperty.OwnsGeneralBeamSectionThroughVirtualBase ElementProperty.OwnsGeneralBeamSectionThroughVirtualBase; assertion 13개 tests/unit/properties/element_property_test.cpp ElementProperty.OwnsGeneralBeamSectionThroughVirtualBase 유지 원문 검사 body 및 assertion 동일. a82ebec7392b40890b5e5f520cf3384a81f765e1e258cd5c1062052283df0479 a82ebec7392b40890b5e5f520cf3384a81f765e1e258cd5c1062052283df0479 "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(property->Kind(), fesa::ElementPropertyKind::kGeneralBeamSection) | EXPECT_EQ(property->SourceId().source_label, 4) | EXPECT_EQ(property->SourceId().source_label_text, ""BeamSection"") | EXPECT_EQ(section.Name(), ""BeamSection"") | EXPECT_DOUBLE_EQ(section.Area(), 0.02) | EXPECT_DOUBLE_EQ(section.I11(), 1.0e-5) | EXPECT_DOUBLE_EQ(section.I12(), 0.0) | EXPECT_DOUBLE_EQ(section.I22(), 2.0e-5) | EXPECT_DOUBLE_EQ(section.TorsionalConstant(), 5.0e-6) | EXPECT_EQ(section.FirstAxis(), (std::array{0.0, 1.0, 0.0})) | EXPECT_EQ(section.SectionPoints(), (std::vector>{{-0.1, 0.0}, {0.1, 0.0}})) | EXPECT_EQ(section.Location().line, 40U)" "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(property->Kind(), fesa::ElementPropertyKind::kGeneralBeamSection) | EXPECT_EQ(property->SourceId().source_label, 4) | EXPECT_EQ(property->SourceId().source_label_text, ""BeamSection"") | EXPECT_EQ(section.Name(), ""BeamSection"") | EXPECT_DOUBLE_EQ(section.Area(), 0.02) | EXPECT_DOUBLE_EQ(section.I11(), 1.0e-5) | EXPECT_DOUBLE_EQ(section.I12(), 0.0) | EXPECT_DOUBLE_EQ(section.I22(), 2.0e-5) | EXPECT_DOUBLE_EQ(section.TorsionalConstant(), 5.0e-6) | EXPECT_EQ(section.FirstAxis(), (std::array{0.0, 1.0, 0.0})) | EXPECT_EQ(section.SectionPoints(), (std::vector>{{-0.1, 0.0}, {0.1, 0.0}})) | EXPECT_EQ(section.Location().line, 40U)" -Dev tests/unit/properties/element_property_test.cpp ElementProperty.OwnsShellSectionThroughVirtualBase ElementProperty.OwnsShellSectionThroughVirtualBase; assertion 7개 tests/unit/properties/element_property_test.cpp ElementProperty.OwnsShellSectionThroughVirtualBase 유지 원문 검사 body 및 assertion 동일. f875a0e085b3368db099095f0bbce5ff999ecaaefc8f542b5f048a2cb965a65d f875a0e085b3368db099095f0bbce5ff999ecaaefc8f542b5f048a2cb965a65d "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(property->Kind(), fesa::ElementPropertyKind::kShellSection) | EXPECT_EQ(property->SourceId().source_label, 8) | EXPECT_EQ(section.Name(), ""ShellSection"") | EXPECT_DOUBLE_EQ(section.Thickness(), 0.01) | EXPECT_EQ(section.MaterialIndex(), fesa::EntityIndex{3}) | EXPECT_EQ(section.Location().file, ""models/property.inp"")" "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(property->Kind(), fesa::ElementPropertyKind::kShellSection) | EXPECT_EQ(property->SourceId().source_label, 8) | EXPECT_EQ(section.Name(), ""ShellSection"") | EXPECT_DOUBLE_EQ(section.Thickness(), 0.01) | EXPECT_EQ(section.MaterialIndex(), fesa::EntityIndex{3}) | EXPECT_EQ(section.Location().file, ""models/property.inp"")" -Dev tests/unit/properties/element_property_test.cpp ElementProperty.PreservesEmptyOptionalSectionPointInventory ElementProperty.PreservesEmptyOptionalSectionPointInventory; assertion 2개 tests/unit/properties/element_property_test.cpp ElementProperty.PreservesEmptyOptionalSectionPointInventory 유지 원문 검사 body 및 assertion 동일. eb36af0169c99936f509a091e38bf8c4e4c7d8fb663887478c6b4453ce21a252 eb36af0169c99936f509a091e38bf8c4e4c7d8fb663887478c6b4453ce21a252 ASSERT_TRUE(section.HasValue()) | EXPECT_TRUE(section.Value().SectionPoints().empty()) ASSERT_TRUE(section.HasValue()) | EXPECT_TRUE(section.Value().SectionPoints().empty()) -Dev tests/unit/properties/element_property_test.cpp ElementProperty.RejectsInvalidCurrentSectionFields ElementProperty.RejectsInvalidCurrentSectionFields; assertion 6개 tests/unit/properties/element_property_test.cpp ElementProperty.RejectsInvalidCurrentSectionFields 유지 원문 검사 body 및 assertion 동일. 0e388bbbd8142343bb098f7b6df8b4dc8079f90e5c73447c09e43c4dbce0f610 0e388bbbd8142343bb098f7b6df8b4dc8079f90e5c73447c09e43c4dbce0f610 ASSERT_FALSE(invalid_beam.HasValue()) | EXPECT_EQ(invalid_beam.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(coupled_beam.HasValue()) | EXPECT_FALSE(nonfinite_point.HasValue()) | ASSERT_FALSE(invalid_shell.HasValue()) | EXPECT_EQ(invalid_shell.GetStatus().Category(), fesa::FailureCategory::kModel) ASSERT_FALSE(invalid_beam.HasValue()) | EXPECT_EQ(invalid_beam.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(coupled_beam.HasValue()) | EXPECT_FALSE(nonfinite_point.HasValue()) | ASSERT_FALSE(invalid_shell.HasValue()) | EXPECT_EQ(invalid_shell.GetStatus().Category(), fesa::FailureCategory::kModel) -Dev tests/unit/properties/element_property_test.cpp support@1-19 helper/oracle/fixture/include/static assertion 구간: PropertyLocation tests/unit/properties/element_property_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 433c8d2313668bc7e4780f44dca84936eae188a3c75110af9182756aa419efad 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/results/result_records_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/results/result_records_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ee0513e6ac8e92851a82d5f5bc932f841483b2640413b105465b71bb77cb1ccb bb72829dd1c5a3b89f5fcca9ae669acf8bc90697a26a5aa0c4ad0cddd14ac83e 해당 없음 해당 없음 -Dev tests/unit/results/result_records_test.cpp AnalysisState.PreservesStepFrameAndStableRowOrder AnalysisState.PreservesStepFrameAndStableRowOrder; assertion 25개 tests/unit/results/result_records_test.cpp AnalysisState.PreservesStepFrameAndStableRowOrder 유지 원문 검사 body 및 assertion 동일. 869b5c0c01c92f41cc3dd8a80fa5fe57725d2ce8581d61c8dcf3ac36ed0d8d8f 869b5c0c01c92f41cc3dd8a80fa5fe57725d2ce8581d61c8dcf3ac36ed0d8d8f "EXPECT_EQ(const_state.Identity().step_name, ""Step-1"") | EXPECT_EQ(const_state.Identity().frame_index, 0U) | ASSERT_EQ(const_state.EndpointResults().size(), 2U) | EXPECT_EQ(const_state.EndpointResults().data(), endpoint_storage) | EXPECT_EQ(const_state.EndpointResults()[0].element, 2U) | EXPECT_EQ(const_state.EndpointResults()[0].endpoint, -1) | EXPECT_EQ(const_state.EndpointResults()[0].node.instance_name, ""Beam-1"") | EXPECT_EQ(const_state.EndpointResults()[0].node.source_label, 10) | EXPECT_EQ(const_state.EndpointResults()[0].node.source_label_text, ""010"") | EXPECT_EQ(const_state.EndpointResults()[0].end_action, (std::array{1.0, 2.0, 3.0, 4.0, 5.0, 6.0})) | EXPECT_EQ(const_state.EndpointResults()[1].section_resultant, (std::array{17.0, 18.0, 19.0, 20.0})) | ASSERT_EQ(const_state.GaussResults().size(), 2U) | EXPECT_EQ(const_state.GaussResults().data(), gauss_storage) | EXPECT_EQ(const_state.GaussResults()[0].gauss_point, 1) | EXPECT_EQ(const_state.GaussResults()[1].gauss_point, 2) | EXPECT_EQ(const_state.GaussResults()[0].generalized_strain, (std::array{0.1, 0.2, 0.3, 0.4})) | EXPECT_EQ(const_state.GaussResults()[1].generalized_resultant, (std::array{1.5, 1.6, 1.7, 1.8})) | ASSERT_EQ(const_state.StressResults().size(), 2U) | EXPECT_EQ(const_state.StressResults().data(), stress_storage) | EXPECT_EQ(const_state.StressResults()[0].section_point, 1U) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].x1, -0.25) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].x2, 0.5) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].s11, 12.5) | EXPECT_EQ(const_state.StressResults()[0].source, ""input"") | EXPECT_EQ(const_state.StressResults()[1].section_point, 2U)" "EXPECT_EQ(const_state.Identity().step_name, ""Step-1"") | EXPECT_EQ(const_state.Identity().frame_index, 0U) | ASSERT_EQ(const_state.EndpointResults().size(), 2U) | EXPECT_EQ(const_state.EndpointResults().data(), endpoint_storage) | EXPECT_EQ(const_state.EndpointResults()[0].element, 2U) | EXPECT_EQ(const_state.EndpointResults()[0].endpoint, -1) | EXPECT_EQ(const_state.EndpointResults()[0].node.instance_name, ""Beam-1"") | EXPECT_EQ(const_state.EndpointResults()[0].node.source_label, 10) | EXPECT_EQ(const_state.EndpointResults()[0].node.source_label_text, ""010"") | EXPECT_EQ(const_state.EndpointResults()[0].end_action, (std::array{1.0, 2.0, 3.0, 4.0, 5.0, 6.0})) | EXPECT_EQ(const_state.EndpointResults()[1].section_resultant, (std::array{17.0, 18.0, 19.0, 20.0})) | ASSERT_EQ(const_state.GaussResults().size(), 2U) | EXPECT_EQ(const_state.GaussResults().data(), gauss_storage) | EXPECT_EQ(const_state.GaussResults()[0].gauss_point, 1) | EXPECT_EQ(const_state.GaussResults()[1].gauss_point, 2) | EXPECT_EQ(const_state.GaussResults()[0].generalized_strain, (std::array{0.1, 0.2, 0.3, 0.4})) | EXPECT_EQ(const_state.GaussResults()[1].generalized_resultant, (std::array{1.5, 1.6, 1.7, 1.8})) | ASSERT_EQ(const_state.StressResults().size(), 2U) | EXPECT_EQ(const_state.StressResults().data(), stress_storage) | EXPECT_EQ(const_state.StressResults()[0].section_point, 1U) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].x1, -0.25) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].x2, 0.5) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].s11, 12.5) | EXPECT_EQ(const_state.StressResults()[0].source, ""input"") | EXPECT_EQ(const_state.StressResults()[1].section_point, 2U)" -Dev tests/unit/results/result_records_test.cpp AnalysisState.OwnsExactShellRowsInStableElementAndLocationOrder AnalysisState.OwnsExactShellRowsInStableElementAndLocationOrder; assertion 13개 tests/unit/results/result_records_test.cpp AnalysisState.OwnsExactShellRowsInStableElementAndLocationOrder 유지 원문 검사 body 및 assertion 동일. a0f71e39ab3e0d800b26636fca67c30c58ad846b26a9684454a311322065c4f1 a0f71e39ab3e0d800b26636fca67c30c58ad846b26a9684454a311322065c4f1 ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(const_state.ShellResults().size(), 8U) | EXPECT_EQ(const_state.ShellResults()[0].element, 3U) | EXPECT_EQ(const_state.ShellResults()[0].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(const_state.ShellResults()[3].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(const_state.ShellResults()[4].element, 7U) | EXPECT_EQ(const_state.ShellResults()[4].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ( const_state.ShellResults()[0].natural_coordinates, (std::array{-1.0 / std::sqrt(3.0), -1.0 / std::sqrt(3.0)})) | EXPECT_EQ(const_state.ShellResults()[2].generalized_strain, (std::array{321.0, 322.0, 323.0, 324.0, 325.0, 326.0, 327.0, 328.0})) | EXPECT_EQ(const_state.ShellResults()[7].section_resultant, (std::array{741.0, 742.0, 743.0, 744.0, 745.0, 746.0, 747.0, 748.0})) | EXPECT_EQ(const_state.ShellResults()[7].stress[0].position, fesa::ShellSectionPosition::kBottom) | EXPECT_DOUBLE_EQ(const_state.ShellResults()[7].stress[0].zeta, -1.0) | EXPECT_EQ(const_state.ShellResults()[7].stress[2].components, (std::array{757.0, 758.0, 759.0})) ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(const_state.ShellResults().size(), 8U) | EXPECT_EQ(const_state.ShellResults()[0].element, 3U) | EXPECT_EQ(const_state.ShellResults()[0].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(const_state.ShellResults()[3].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(const_state.ShellResults()[4].element, 7U) | EXPECT_EQ(const_state.ShellResults()[4].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ( const_state.ShellResults()[0].natural_coordinates, (std::array{-1.0 / std::sqrt(3.0), -1.0 / std::sqrt(3.0)})) | EXPECT_EQ(const_state.ShellResults()[2].generalized_strain, (std::array{321.0, 322.0, 323.0, 324.0, 325.0, 326.0, 327.0, 328.0})) | EXPECT_EQ(const_state.ShellResults()[7].section_resultant, (std::array{741.0, 742.0, 743.0, 744.0, 745.0, 746.0, 747.0, 748.0})) | EXPECT_EQ(const_state.ShellResults()[7].stress[0].position, fesa::ShellSectionPosition::kBottom) | EXPECT_DOUBLE_EQ(const_state.ShellResults()[7].stress[0].zeta, -1.0) | EXPECT_EQ(const_state.ShellResults()[7].stress[2].components, (std::array{757.0, 758.0, 759.0})) -Dev tests/unit/results/result_records_test.cpp AnalysisState.CommitsFiniteShellGlobalEvidence AnalysisState.CommitsFiniteShellGlobalEvidence; assertion 4개 tests/unit/results/result_records_test.cpp AnalysisState.CommitsFiniteShellGlobalEvidence 유지 원문 검사 body 및 assertion 동일. 62ed08387eb7eff71c91920c4bebabfbed05791ab18a4fe8cbbf463396f7be15 62ed08387eb7eff71c91920c4bebabfbed05791ab18a4fe8cbbf463396f7be15 ASSERT_TRUE(status.IsOk()) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), 35.5) | EXPECT_EQ(state.Equilibrium(), (std::array{1.0, -2.0, 3.0, -4.0, 5.0, -6.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{1.0e-11, 2.0e-11, 3.0e-11})) ASSERT_TRUE(status.IsOk()) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), 35.5) | EXPECT_EQ(state.Equilibrium(), (std::array{1.0, -2.0, 3.0, -4.0, 5.0, -6.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{1.0e-11, 2.0e-11, 3.0e-11})) -Dev tests/unit/results/result_records_test.cpp AnalysisState.InvalidShellCandidatesLeavePriorStateUnchanged AnalysisState.InvalidShellCandidatesLeavePriorStateUnchanged; assertion 1개 tests/unit/results/result_records_test.cpp AnalysisState.InvalidShellCandidatesLeavePriorStateUnchanged 유지 원문 검사 body 및 assertion 동일. 707b9669e1d0cb266cfbba53e13210c339cea51e651d10b1b57991ece003a113 707b9669e1d0cb266cfbba53e13210c339cea51e651d10b1b57991ece003a113 ASSERT_TRUE(state.CommitShellResults(expected_elements, committed).IsOk()) ASSERT_TRUE(state.CommitShellResults(expected_elements, committed).IsOk()) -Dev tests/unit/results/result_records_test.cpp support@1-125 helper/oracle/fixture/include/static assertion 구간: MakeEmptyDofs, MakeShellRow, MakeShellCandidate, for, ExpectShellStateEquals, ExpectShellCandidateRejectedWithoutMutation tests/unit/results/result_records_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9162214cc858ebe9d01e80e8166b2b73aae3991688b1fb9fa0f40f51298a59b6 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/results/result_records_test.cpp support@192-193 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_records_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 99cfd7cc1cbfee5f6699e5f92a5190f79a531c7be18944fe4cda2e9e2579c67c 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/results/result_records_test.cpp support@228-229 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_records_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8e9919be7709179a6da34b5355c75a2a62ae000d17bf61c217fc31533b110324 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/results/result_records_test.cpp support@245-246 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_records_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5553b473143aa6f5d1e0b9c4ab38b9d66e43c689916066d068f42b2635b92413 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/results/result_recovery_components_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/results/result_recovery_components_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e5f882061497e99d8210a474c7f662c17de029fc7542ae8b4c7334a2be162c6d e5f882061497e99d8210a474c7f662c17de029fc7542ae8b4c7334a2be162c6d 해당 없음 해당 없음 -Dev tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.GlobalEquilibriumUsesFullResidualAndGlobalOriginMoment ResultRecoveryComponents.GlobalEquilibriumUsesFullResidualAndGlobalOriginMoment; assertion 8개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.GlobalEquilibriumUsesFullResidualAndGlobalOriginMoment 유지 원문 검사 body 및 assertion 동일. 4b1d44d2f31879ee4c18e1f4cb5cdedafa0cb332e8c635b697fbcc02bef96a81 4b1d44d2f31879ee4c18e1f4cb5cdedafa0cb332e8c635b697fbcc02bef96a81 ASSERT_TRUE(centered_global.HasValue()) | ASSERT_TRUE(translated_global.HasValue()) | EXPECT_NEAR(centered_global.Value().residual[0U], -1.0e-9, 1.0e-14) | EXPECT_DOUBLE_EQ(centered_global.Value().reaction[0U], centered_global.Value().residual[0U]) | ASSERT_TRUE(centered_status.IsOk()) | ASSERT_TRUE(translated_status.IsOk()) | EXPECT_NEAR(translated_candidate.shell.equilibrium[component], centered_force[component], 1.0e-12) | EXPECT_NEAR(translated_candidate.shell.equilibrium[3U + component] - centered_candidate.shell.equilibrium[3U + component], translated_moment_delta[component], 5.0e-12) ASSERT_TRUE(centered_global.HasValue()) | ASSERT_TRUE(translated_global.HasValue()) | EXPECT_NEAR(centered_global.Value().residual[0U], -1.0e-9, 1.0e-14) | EXPECT_DOUBLE_EQ(centered_global.Value().reaction[0U], centered_global.Value().residual[0U]) | ASSERT_TRUE(centered_status.IsOk()) | ASSERT_TRUE(translated_status.IsOk()) | EXPECT_NEAR(translated_candidate.shell.equilibrium[component], centered_force[component], 1.0e-12) | EXPECT_NEAR(translated_candidate.shell.equilibrium[3U + component] - centered_candidate.shell.equilibrium[3U + component], translated_moment_delta[component], 5.0e-12) -Dev tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.PartitionedScaleKeepsCancelledInternalTerms ResultRecoveryComponents.PartitionedScaleKeepsCancelledInternalTerms; assertion 6개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.PartitionedScaleKeepsCancelledInternalTerms 유지 원문 검사 body 및 assertion 동일. a8b1656706d840fa532862cac33f4009cb7679d2b2bb01156ebace368402ec2c a8b1656706d840fa532862cac33f4009cb7679d2b2bb01156ebace368402ec2c ASSERT_TRUE(matrix.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().internal_force[1U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().normalized_free_residual, 1.0e-12) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().reaction[1U], -1.0e-12) ASSERT_TRUE(matrix.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().internal_force[1U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().normalized_free_residual, 1.0e-12) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().reaction[1U], -1.0e-12) -Dev tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.BeamResultRecoveryKeepsEndpointGaussAndStressIdentities ResultRecoveryComponents.BeamResultRecoveryKeepsEndpointGaussAndStressIdentities; assertion 18개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.BeamResultRecoveryKeepsEndpointGaussAndStressIdentities 유지 원문 검사 body 및 assertion 동일. 08f945a80aa1b49a9352f010897f1f0843eae7e8567334daf13602824dc12039 08f945a80aa1b49a9352f010897f1f0843eae7e8567334daf13602824dc12039 ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(candidate.endpoint_rows.size(), 2U) | ASSERT_EQ(candidate.gauss_rows.size(), 2U) | ASSERT_EQ(candidate.stress_rows.size(), 2U) | EXPECT_TRUE(candidate.has_beam_results) | EXPECT_EQ(candidate.endpoint_rows[0U].endpoint, 0) | EXPECT_EQ(candidate.endpoint_rows[1U].endpoint, 1) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[0U].end_action[0U], -2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[0U].section_resultant[0U], 2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[1U].end_action[0U], 2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[1U].section_resultant[0U], 2.0) | EXPECT_EQ(candidate.gauss_rows[0U].gauss_point, 1) | EXPECT_EQ(candidate.gauss_rows[1U].gauss_point, 2) | EXPECT_EQ(candidate.stress_rows[0U].section_point, 0U) | EXPECT_EQ(candidate.stress_rows[1U].section_point, 1U) | EXPECT_TRUE(rejected.endpoint_rows.empty()) | EXPECT_TRUE(rejected.gauss_rows.empty()) | EXPECT_TRUE(rejected.stress_rows.empty()) ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(candidate.endpoint_rows.size(), 2U) | ASSERT_EQ(candidate.gauss_rows.size(), 2U) | ASSERT_EQ(candidate.stress_rows.size(), 2U) | EXPECT_TRUE(candidate.has_beam_results) | EXPECT_EQ(candidate.endpoint_rows[0U].endpoint, 0) | EXPECT_EQ(candidate.endpoint_rows[1U].endpoint, 1) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[0U].end_action[0U], -2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[0U].section_resultant[0U], 2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[1U].end_action[0U], 2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[1U].section_resultant[0U], 2.0) | EXPECT_EQ(candidate.gauss_rows[0U].gauss_point, 1) | EXPECT_EQ(candidate.gauss_rows[1U].gauss_point, 2) | EXPECT_EQ(candidate.stress_rows[0U].section_point, 0U) | EXPECT_EQ(candidate.stress_rows[1U].section_point, 1U) | EXPECT_TRUE(rejected.endpoint_rows.empty()) | EXPECT_TRUE(rejected.gauss_rows.empty()) | EXPECT_TRUE(rejected.stress_rows.empty()) -Dev tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.BeamResultRecoveryRejectsMalformedB33IdentityBeforeAppending ResultRecoveryComponents.BeamResultRecoveryRejectsMalformedB33IdentityBeforeAppending; assertion 4개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.BeamResultRecoveryRejectsMalformedB33IdentityBeforeAppending 유지 원문 검사 body 및 assertion 동일. 3f5b0c41e2ce77b59609c26e60409445ddd24bd89e0bf55f7f9c30736fdd5f35 3f5b0c41e2ce77b59609c26e60409445ddd24bd89e0bf55f7f9c30736fdd5f35 EXPECT_TRUE(candidate.endpoint_rows.empty()) | EXPECT_TRUE(candidate.gauss_rows.empty()) | EXPECT_TRUE(candidate.stress_rows.empty()) | EXPECT_FALSE(candidate.has_beam_results) EXPECT_TRUE(candidate.endpoint_rows.empty()) | EXPECT_TRUE(candidate.gauss_rows.empty()) | EXPECT_TRUE(candidate.stress_rows.empty()) | EXPECT_FALSE(candidate.has_beam_results) -Dev tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.ShellResultRecoveryKeepsGpStressOrderAndPhysicalEnergy ResultRecoveryComponents.ShellResultRecoveryKeepsGpStressOrderAndPhysicalEnergy; assertion 13개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.ShellResultRecoveryKeepsGpStressOrderAndPhysicalEnergy 유지 원문 검사 body 및 assertion 동일. 6c9a8476d2005420d8bd58a3f3a3558cfadbd6c158bd213b0047e821bdd2d991 6c9a8476d2005420d8bd58a3f3a3558cfadbd6c158bd213b0047e821bdd2d991 ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(candidate.has_shell_results) | EXPECT_EQ(candidate.expected_shell_elements, (std::vector{element})) | ASSERT_EQ(candidate.shell.rows.size(), 4U) | EXPECT_EQ(candidate.shell.rows[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(candidate.shell.rows[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(candidate.shell.rows[0U].stress[0U].position, fesa::ShellSectionPosition::kBottom) | EXPECT_EQ(candidate.shell.rows[0U].stress[1U].position, fesa::ShellSectionPosition::kMiddle) | EXPECT_EQ(candidate.shell.rows[0U].stress[2U].position, fesa::ShellSectionPosition::kTop) | EXPECT_DOUBLE_EQ(candidate.shell.physical_strain_energy, 12.5) | EXPECT_TRUE(rejected.shell.rows.empty()) | EXPECT_TRUE(rejected.expected_shell_elements.empty()) | EXPECT_DOUBLE_EQ(rejected.shell.physical_strain_energy, 0.0) ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(candidate.has_shell_results) | EXPECT_EQ(candidate.expected_shell_elements, (std::vector{element})) | ASSERT_EQ(candidate.shell.rows.size(), 4U) | EXPECT_EQ(candidate.shell.rows[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(candidate.shell.rows[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(candidate.shell.rows[0U].stress[0U].position, fesa::ShellSectionPosition::kBottom) | EXPECT_EQ(candidate.shell.rows[0U].stress[1U].position, fesa::ShellSectionPosition::kMiddle) | EXPECT_EQ(candidate.shell.rows[0U].stress[2U].position, fesa::ShellSectionPosition::kTop) | EXPECT_DOUBLE_EQ(candidate.shell.physical_strain_energy, 12.5) | EXPECT_TRUE(rejected.shell.rows.empty()) | EXPECT_TRUE(rejected.expected_shell_elements.empty()) | EXPECT_DOUBLE_EQ(rejected.shell.physical_strain_energy, 0.0) -Dev tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.CommitRecoveryCandidateRollsBackLaterInvalidShellBundle ResultRecoveryComponents.CommitRecoveryCandidateRollsBackLaterInvalidShellBundle; assertion 9개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.CommitRecoveryCandidateRollsBackLaterInvalidShellBundle 유지 원문 검사 body 및 assertion 동일. 55b6230e61eb0fc7cb6bdd7be3ad9832e2f1ec16cc1a95bf67ed1266f52d1cfe 55b6230e61eb0fc7cb6bdd7be3ad9832e2f1ec16cc1a95bf67ed1266f52d1cfe ASSERT_TRUE(state.CommitShellResults({0U}, std::move(prior_shell)).IsOk()) | ASSERT_EQ(state.EndpointResults().size(), prior.EndpointResults().size()) | EXPECT_EQ(state.EndpointResults()[0U].end_action, prior.EndpointResults()[0U].end_action) | ASSERT_EQ(state.ShellResults().size(), prior.ShellResults().size()) | EXPECT_EQ(state.ShellResults()[0U].location, prior.ShellResults()[0U].location) | EXPECT_EQ(state.ShellResults()[0U].section_resultant, prior.ShellResults()[0U].section_resultant) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior.PhysicalStrainEnergy()) | EXPECT_EQ(state.Equilibrium(), prior.Equilibrium()) | EXPECT_EQ(state.VerificationMetrics(), prior.VerificationMetrics()) ASSERT_TRUE(state.CommitShellResults({0U}, std::move(prior_shell)).IsOk()) | ASSERT_EQ(state.EndpointResults().size(), prior.EndpointResults().size()) | EXPECT_EQ(state.EndpointResults()[0U].end_action, prior.EndpointResults()[0U].end_action) | ASSERT_EQ(state.ShellResults().size(), prior.ShellResults().size()) | EXPECT_EQ(state.ShellResults()[0U].location, prior.ShellResults()[0U].location) | EXPECT_EQ(state.ShellResults()[0U].section_resultant, prior.ShellResults()[0U].section_resultant) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior.PhysicalStrainEnergy()) | EXPECT_EQ(state.Equilibrium(), prior.Equilibrium()) | EXPECT_EQ(state.VerificationMetrics(), prior.VerificationMetrics()) -Dev tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.CommitRecoveryCandidateRejectsNonfiniteVectorAndPreservesWholeState ResultRecoveryComponents.CommitRecoveryCandidateRejectsNonfiniteVectorAndPreservesWholeState; assertion 1개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.CommitRecoveryCandidateRejectsNonfiniteVectorAndPreservesWholeState 유지 원문 검사 body 및 assertion 동일. 7fbd3ba0038bb7588dd981c89f1ebdb358900d942bf246d26295b1417082cf38 7fbd3ba0038bb7588dd981c89f1ebdb358900d942bf246d26295b1417082cf38 ASSERT_TRUE(state.CommitShellResults({0U}, std::move(prior_shell)).IsOk()) ASSERT_TRUE(state.CommitShellResults({0U}, std::move(prior_shell)).IsOk()) -Dev tests/unit/results/result_recovery_components_test.cpp support@1-288 helper/oracle/fixture/include/static assertion 구간: ShellFixture, MakeSourceId, MakeBeamRows, MakeShellRows, MakeShellDefinition, MakeShellFixture, if, MakeShellPhysicalState, ExpectStatusCode, ExpectVectorEqual, ExpectAnalysisStateEqual tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 71c5386212b72927040f93cba4949f34f14d9fc36633ce2b7fe1bfbcec2ee692 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/results/result_recovery_components_test.cpp support@391-392 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84e6d9367513adf07b62324adc589f360532892eb863dd167e0cf83cdda8477b 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/results/result_recovery_components_test.cpp support@430-431 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84e6d9367513adf07b62324adc589f360532892eb863dd167e0cf83cdda8477b 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/results/result_recovery_components_test.cpp support@488-489 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84e6d9367513adf07b62324adc589f360532892eb863dd167e0cf83cdda8477b 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/results/result_recovery_components_test.cpp support@524-525 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84e6d9367513adf07b62324adc589f360532892eb863dd167e0cf83cdda8477b 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/results/result_recovery_components_test.cpp support@589-590 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84e6d9367513adf07b62324adc589f360532892eb863dd167e0cf83cdda8477b 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/results/result_recovery_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 17개 tests/unit/results/result_recovery_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7b9358cc8459e3ec9c7fd6384982951ff5520dca7ee1b41eb671976c79c254e6 7b9358cc8459e3ec9c7fd6384982951ff5520dca7ee1b41eb671976c79c254e6 해당 없음 해당 없음 -Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.AggregatesFakeBeamBundlesInStableRuntimeOrder ResultRecovery.AggregatesFakeBeamBundlesInStableRuntimeOrder; assertion 25개 tests/unit/results/result_recovery_test.cpp ResultRecovery.AggregatesFakeBeamBundlesInStableRuntimeOrder 유지 원문 검사 body 및 assertion 동일. 61908298d8e691deb7066229f9dd58426ca57647ebabc07023e1a31ac0cda782 61908298d8e691deb7066229f9dd58426ca57647ebabc07023e1a31ac0cda782 ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(first.ObservedDisplacement().Size(), 12U) | EXPECT_DOUBLE_EQ(first.ObservedDisplacement()[0U], 0.1) | EXPECT_DOUBLE_EQ(first.ObservedDisplacement()[6U], 0.3) | ASSERT_EQ(second.ObservedDisplacement().Size(), 12U) | EXPECT_DOUBLE_EQ(second.ObservedDisplacement()[0U], 0.3) | EXPECT_DOUBLE_EQ(second.ObservedDisplacement()[6U], 0.0) | ASSERT_EQ(state.EndpointResults().size(), 4U) | ASSERT_EQ(state.GaussResults().size(), 4U) | ASSERT_EQ(state.StressResults().size(), 4U) | EXPECT_EQ(negative_endpoint.element, element) | EXPECT_EQ(negative_endpoint.endpoint, 0) | EXPECT_DOUBLE_EQ(negative_endpoint.end_action[0U], -value) | EXPECT_DOUBLE_EQ(negative_endpoint.section_resultant[0U], value) | EXPECT_EQ(positive_endpoint.element, element) | EXPECT_EQ(positive_endpoint.endpoint, 1) | EXPECT_DOUBLE_EQ(positive_endpoint.end_action[0U], value) | EXPECT_DOUBLE_EQ(positive_endpoint.section_resultant[0U], value) | EXPECT_EQ(state.GaussResults()[2U * element].element, element) | EXPECT_EQ(state.GaussResults()[2U * element].gauss_point, 1) | EXPECT_EQ(state.GaussResults()[2U * element + 1U].element, element) | EXPECT_EQ(state.GaussResults()[2U * element + 1U].gauss_point, 2) | EXPECT_EQ(state.StressResults()[2U * element].element, element) | EXPECT_EQ(state.StressResults()[2U * element + 1U].element, element) | EXPECT_TRUE(state.ShellResults().empty()) ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(first.ObservedDisplacement().Size(), 12U) | EXPECT_DOUBLE_EQ(first.ObservedDisplacement()[0U], 0.1) | EXPECT_DOUBLE_EQ(first.ObservedDisplacement()[6U], 0.3) | ASSERT_EQ(second.ObservedDisplacement().Size(), 12U) | EXPECT_DOUBLE_EQ(second.ObservedDisplacement()[0U], 0.3) | EXPECT_DOUBLE_EQ(second.ObservedDisplacement()[6U], 0.0) | ASSERT_EQ(state.EndpointResults().size(), 4U) | ASSERT_EQ(state.GaussResults().size(), 4U) | ASSERT_EQ(state.StressResults().size(), 4U) | EXPECT_EQ(negative_endpoint.element, element) | EXPECT_EQ(negative_endpoint.endpoint, 0) | EXPECT_DOUBLE_EQ(negative_endpoint.end_action[0U], -value) | EXPECT_DOUBLE_EQ(negative_endpoint.section_resultant[0U], value) | EXPECT_EQ(positive_endpoint.element, element) | EXPECT_EQ(positive_endpoint.endpoint, 1) | EXPECT_DOUBLE_EQ(positive_endpoint.end_action[0U], value) | EXPECT_DOUBLE_EQ(positive_endpoint.section_resultant[0U], value) | EXPECT_EQ(state.GaussResults()[2U * element].element, element) | EXPECT_EQ(state.GaussResults()[2U * element].gauss_point, 1) | EXPECT_EQ(state.GaussResults()[2U * element + 1U].element, element) | EXPECT_EQ(state.GaussResults()[2U * element + 1U].gauss_point, 2) | EXPECT_EQ(state.StressResults()[2U * element].element, element) | EXPECT_EQ(state.StressResults()[2U * element + 1U].element, element) | EXPECT_TRUE(state.ShellResults().empty()) -Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.AggregatesFakeShellBundleAndPhysicalEnergy ResultRecovery.AggregatesFakeShellBundleAndPhysicalEnergy; assertion 10개 tests/unit/results/result_recovery_test.cpp ResultRecovery.AggregatesFakeShellBundleAndPhysicalEnergy 유지 원문 검사 body 및 assertion 동일. 6010abc24720e7277736bbd3f31bc425d908c7545447ce70f5d5c1dc45880d8e 6010abc24720e7277736bbd3f31bc425d908c7545447ce70f5d5c1dc45880d8e ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(state.EndpointResults().empty()) | EXPECT_TRUE(state.GaussResults().empty()) | EXPECT_TRUE(state.StressResults().empty()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_EQ(state.ShellResults()[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(state.ShellResults()[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_DOUBLE_EQ(state.ShellResults()[0U].generalized_strain[0U], 1.0) | EXPECT_DOUBLE_EQ(state.ShellResults()[3U].section_resultant[0U], 40.0) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), physical_energy) ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(state.EndpointResults().empty()) | EXPECT_TRUE(state.GaussResults().empty()) | EXPECT_TRUE(state.StressResults().empty()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_EQ(state.ShellResults()[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(state.ShellResults()[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_DOUBLE_EQ(state.ShellResults()[0U].generalized_strain[0U], 1.0) | EXPECT_DOUBLE_EQ(state.ShellResults()[3U].section_resultant[0U], 40.0) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), physical_energy) -Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.FailingFakeBundleRollsBackTheWholeState ResultRecovery.FailingFakeBundleRollsBackTheWholeState; assertion 15개 tests/unit/results/result_recovery_test.cpp ResultRecovery.FailingFakeBundleRollsBackTheWholeState 유지 원문 검사 body 및 assertion 동일. 39c57c8c046735efba89779244e8a951423224037d0d5e5798550b3a057aaa61 39c57c8c046735efba89779244e8a951423224037d0d5e5798550b3a057aaa61 ASSERT_TRUE( state.CommitShellResults({0U}, std::move(stale_shell_candidate)).IsOk()) | EXPECT_EQ(state.Identity().step_name, prior.Identity().step_name) | EXPECT_EQ(state.Identity().frame_index, prior.Identity().frame_index) | ASSERT_EQ(state.EndpointResults().size(), prior.EndpointResults().size()) | EXPECT_EQ(state.EndpointResults()[0U].element, prior.EndpointResults()[0U].element) | EXPECT_EQ(state.EndpointResults()[0U].end_action, prior.EndpointResults()[0U].end_action) | ASSERT_EQ(state.GaussResults().size(), prior.GaussResults().size()) | EXPECT_EQ(state.GaussResults()[0U].generalized_resultant, prior.GaussResults()[0U].generalized_resultant) | ASSERT_EQ(state.StressResults().size(), prior.StressResults().size()) | EXPECT_DOUBLE_EQ(state.StressResults()[0U].s11, prior.StressResults()[0U].s11) | ASSERT_EQ(state.ShellResults().size(), prior.ShellResults().size()) | EXPECT_EQ(state.ShellResults()[0U].generalized_strain, prior.ShellResults()[0U].generalized_strain) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior.PhysicalStrainEnergy()) | EXPECT_EQ(state.Equilibrium(), prior.Equilibrium()) | EXPECT_EQ(state.VerificationMetrics(), prior.VerificationMetrics()) ASSERT_TRUE( state.CommitShellResults({0U}, std::move(stale_shell_candidate)).IsOk()) | EXPECT_EQ(state.Identity().step_name, prior.Identity().step_name) | EXPECT_EQ(state.Identity().frame_index, prior.Identity().frame_index) | ASSERT_EQ(state.EndpointResults().size(), prior.EndpointResults().size()) | EXPECT_EQ(state.EndpointResults()[0U].element, prior.EndpointResults()[0U].element) | EXPECT_EQ(state.EndpointResults()[0U].end_action, prior.EndpointResults()[0U].end_action) | ASSERT_EQ(state.GaussResults().size(), prior.GaussResults().size()) | EXPECT_EQ(state.GaussResults()[0U].generalized_resultant, prior.GaussResults()[0U].generalized_resultant) | ASSERT_EQ(state.StressResults().size(), prior.StressResults().size()) | EXPECT_DOUBLE_EQ(state.StressResults()[0U].s11, prior.StressResults()[0U].s11) | ASSERT_EQ(state.ShellResults().size(), prior.ShellResults().size()) | EXPECT_EQ(state.ShellResults()[0U].generalized_strain, prior.ShellResults()[0U].generalized_strain) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior.PhysicalStrainEnergy()) | EXPECT_EQ(state.Equilibrium(), prior.Equilibrium()) | EXPECT_EQ(state.VerificationMetrics(), prior.VerificationMetrics()) -Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.ComputesResidualReactionForNonzeroPrescription ResultRecovery.ComputesResidualReactionForNonzeroPrescription; assertion 12개 tests/unit/results/result_recovery_test.cpp ResultRecovery.ComputesResidualReactionForNonzeroPrescription 유지 원문 검사 body 및 assertion 동일. 08216ddb5db36bbc534126bdf775ee7846b18b311b89da188e0e53b71af49608 08216ddb5db36bbc534126bdf775ee7846b18b311b89da188e0e53b71af49608 ASSERT_TRUE(state.CommitShellResults({}, stale_shell_evidence).IsOk()) | ASSERT_TRUE(status.IsOk()) | EXPECT_DOUBLE_EQ(state.InternalForce()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[6U], 20.0) | EXPECT_DOUBLE_EQ(state.Residual()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.Residual()[6U], 0.0) | EXPECT_DOUBLE_EQ(state.Reaction()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.Reaction()[full_dof], 0.0) | EXPECT_TRUE(state.ShellResults().empty()) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), 0.0) | EXPECT_EQ(state.Equilibrium(), (std::array{0.0, 0.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{0.0, 0.0, 0.0})) ASSERT_TRUE(state.CommitShellResults({}, stale_shell_evidence).IsOk()) | ASSERT_TRUE(status.IsOk()) | EXPECT_DOUBLE_EQ(state.InternalForce()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[6U], 20.0) | EXPECT_DOUBLE_EQ(state.Residual()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.Residual()[6U], 0.0) | EXPECT_DOUBLE_EQ(state.Reaction()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.Reaction()[full_dof], 0.0) | EXPECT_TRUE(state.ShellResults().empty()) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), 0.0) | EXPECT_EQ(state.Equilibrium(), (std::array{0.0, 0.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{0.0, 0.0, 0.0})) -Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.EnforcesNormalizedFreeResidual ResultRecovery.EnforcesNormalizedFreeResidual; assertion 9개 tests/unit/results/result_recovery_test.cpp ResultRecovery.EnforcesNormalizedFreeResidual 유지 원문 검사 body 및 assertion 동일. 1e96704cc4b176ba73193a9853cc81c56fd130dd92540b88fbc71bef07655032 1e96704cc4b176ba73193a9853cc81c56fd130dd92540b88fbc71bef07655032 EXPECT_DOUBLE_EQ(failed.InternalForce()[0U], 91.0) | EXPECT_DOUBLE_EQ(failed.Residual()[0U], 92.0) | EXPECT_DOUBLE_EQ(failed.Reaction()[0U], 93.0) | EXPECT_DOUBLE_EQ(failed.Reaction()[6U], 94.0) | EXPECT_EQ(failed.EndpointResults().size(), 1U) | ASSERT_TRUE(threshold_status.IsOk()) | EXPECT_NE(threshold_pass.Residual()[6U], 0.0) | EXPECT_DOUBLE_EQ(threshold_pass.Reaction()[6U], threshold_pass.Residual()[6U]) | EXPECT_TRUE( fesa::ResultRecovery::Recover(*zero_fixture.model, *zero_fixture.dofs, *zero_fixture.stiffness, zero_equilibrium) .IsOk()) EXPECT_DOUBLE_EQ(failed.InternalForce()[0U], 91.0) | EXPECT_DOUBLE_EQ(failed.Residual()[0U], 92.0) | EXPECT_DOUBLE_EQ(failed.Reaction()[0U], 93.0) | EXPECT_DOUBLE_EQ(failed.Reaction()[6U], 94.0) | EXPECT_EQ(failed.EndpointResults().size(), 1U) | ASSERT_TRUE(threshold_status.IsOk()) | EXPECT_NE(threshold_pass.Residual()[6U], 0.0) | EXPECT_DOUBLE_EQ(threshold_pass.Reaction()[6U], threshold_pass.Residual()[6U]) | EXPECT_TRUE( fesa::ResultRecovery::Recover(*zero_fixture.model, *zero_fixture.dofs, *zero_fixture.stiffness, zero_equilibrium) .IsOk()) -Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.KeepsEndActionSectionAndGaussResultsDistinct ResultRecovery.KeepsEndActionSectionAndGaussResultsDistinct; assertion 10개 tests/unit/results/result_recovery_test.cpp ResultRecovery.KeepsEndActionSectionAndGaussResultsDistinct 유지 원문 검사 body 및 assertion 동일. 8202381a9f03eaa3d8d5a513ff7109d219c64045aa63639c3d67d6a1a1990838 8202381a9f03eaa3d8d5a513ff7109d219c64045aa63639c3d67d6a1a1990838 ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.EndpointResults().size(), 2U) | ASSERT_EQ(state.GaussResults().size(), 2U) | EXPECT_EQ(state.EndpointResults()[0U].endpoint, 0) | EXPECT_EQ(state.EndpointResults()[1U].endpoint, 1) | EXPECT_EQ(state.GaussResults()[0U].gauss_point, 1) | EXPECT_EQ(state.GaussResults()[1U].gauss_point, 2) | EXPECT_DOUBLE_EQ(state.EndpointResults()[0U].end_action[0U], -state.EndpointResults()[0U].section_resultant[0U]) | EXPECT_DOUBLE_EQ(state.EndpointResults()[1U].end_action[0U], state.EndpointResults()[1U].section_resultant[0U]) | EXPECT_DOUBLE_EQ(state.GaussResults()[0U].generalized_resultant[0U], state.EndpointResults()[0U].section_resultant[0U]) ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.EndpointResults().size(), 2U) | ASSERT_EQ(state.GaussResults().size(), 2U) | EXPECT_EQ(state.EndpointResults()[0U].endpoint, 0) | EXPECT_EQ(state.EndpointResults()[1U].endpoint, 1) | EXPECT_EQ(state.GaussResults()[0U].gauss_point, 1) | EXPECT_EQ(state.GaussResults()[1U].gauss_point, 2) | EXPECT_DOUBLE_EQ(state.EndpointResults()[0U].end_action[0U], -state.EndpointResults()[0U].section_resultant[0U]) | EXPECT_DOUBLE_EQ(state.EndpointResults()[1U].end_action[0U], state.EndpointResults()[1U].section_resultant[0U]) | EXPECT_DOUBLE_EQ(state.GaussResults()[0U].generalized_resultant[0U], state.EndpointResults()[0U].section_resultant[0U]) -Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.MatchesAxialTorsionAndTwoPlaneEndSigns ResultRecovery.MatchesAxialTorsionAndTwoPlaneEndSigns; assertion 1개 tests/unit/results/result_recovery_test.cpp ResultRecovery.MatchesAxialTorsionAndTwoPlaneEndSigns 유지 원문 검사 body 및 assertion 동일. 180b227a99c3cf6f4fc40c9dafa7a98cafcc456ef146b083300d66db8187a98e 180b227a99c3cf6f4fc40c9dafa7a98cafcc456ef146b083300d66db8187a98e ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) -Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.OrdersStressPointsAndDefaultCentroid ResultRecovery.OrdersStressPointsAndDefaultCentroid; assertion 14개 tests/unit/results/result_recovery_test.cpp ResultRecovery.OrdersStressPointsAndDefaultCentroid 유지 원문 검사 body 및 assertion 동일. 27b9a3f6418687d3b2b4d657ae2c41df972cefae91ec474d642f4f8664dea77b 27b9a3f6418687d3b2b4d657ae2c41df972cefae91ec474d642f4f8664dea77b "ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.StressResults().size(), 4U) | EXPECT_EQ(row.element, 0U) | EXPECT_EQ(row.gauss_point, static_cast(gauss + 1U)) | EXPECT_EQ(row.section_point, point + 1U) | EXPECT_DOUBLE_EQ(row.x1, section_points[point][0U]) | EXPECT_DOUBLE_EQ(row.x2, section_points[point][1U]) | EXPECT_EQ(row.source, ""input"") | ASSERT_TRUE(fesa::ResultRecovery::Recover( *default_fixture.model, *default_fixture.dofs, *default_fixture.stiffness, default_state) .IsOk()) | ASSERT_EQ(default_state.StressResults().size(), 2U) | EXPECT_EQ(row.section_point, 0U) | EXPECT_DOUBLE_EQ(row.x1, 0.0) | EXPECT_DOUBLE_EQ(row.x2, 0.0) | EXPECT_EQ(row.source, ""fesa-default"")" "ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.StressResults().size(), 4U) | EXPECT_EQ(row.element, 0U) | EXPECT_EQ(row.gauss_point, static_cast(gauss + 1U)) | EXPECT_EQ(row.section_point, point + 1U) | EXPECT_DOUBLE_EQ(row.x1, section_points[point][0U]) | EXPECT_DOUBLE_EQ(row.x2, section_points[point][1U]) | EXPECT_EQ(row.source, ""input"") | ASSERT_TRUE(fesa::ResultRecovery::Recover( *default_fixture.model, *default_fixture.dofs, *default_fixture.stiffness, default_state) .IsOk()) | ASSERT_EQ(default_state.StressResults().size(), 2U) | EXPECT_EQ(row.section_point, 0U) | EXPECT_DOUBLE_EQ(row.x1, 0.0) | EXPECT_DOUBLE_EQ(row.x2, 0.0) | EXPECT_EQ(row.source, ""fesa-default"")" -Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.RequiresInteriorEndpointConsistencyWithoutAveraging ResultRecovery.RequiresInteriorEndpointConsistencyWithoutAveraging; assertion 10개 tests/unit/results/result_recovery_test.cpp ResultRecovery.RequiresInteriorEndpointConsistencyWithoutAveraging 유지 원문 검사 body 및 assertion 동일. aa4603901819c039277bbba8fe36bfcecb9264320ae115f7e9e2d4e6d873a1b1 aa4603901819c039277bbba8fe36bfcecb9264320ae115f7e9e2d4e6d873a1b1 ASSERT_TRUE(normalized.HasValue()) | ASSERT_EQ(normalized.Value().size(), 3U) | EXPECT_EQ(normalized.Value()[1U].representative_element, 0U) | EXPECT_DOUBLE_EQ(normalized.Value()[1U].section_resultant[0U], 5.0) | ASSERT_FALSE(mismatch.HasValue()) | ASSERT_FALSE(nonfinite.HasValue()) | ASSERT_FALSE(invalid_tolerance.HasValue()) | ASSERT_FALSE(loaded.HasValue()) | ASSERT_FALSE(reversed.HasValue()) | ASSERT_FALSE(jumped.HasValue()) ASSERT_TRUE(normalized.HasValue()) | ASSERT_EQ(normalized.Value().size(), 3U) | EXPECT_EQ(normalized.Value()[1U].representative_element, 0U) | EXPECT_DOUBLE_EQ(normalized.Value()[1U].section_resultant[0U], 5.0) | ASSERT_FALSE(mismatch.HasValue()) | ASSERT_FALSE(nonfinite.HasValue()) | ASSERT_FALSE(invalid_tolerance.HasValue()) | ASSERT_FALSE(loaded.HasValue()) | ASSERT_FALSE(reversed.HasValue()) | ASSERT_FALSE(jumped.HasValue()) -Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.RecoversShellRowsInStableElementAndGpOrder ResultRecovery.RecoversShellRowsInStableElementAndGpOrder; assertion 8개 tests/unit/results/result_recovery_test.cpp ResultRecovery.RecoversShellRowsInStableElementAndGpOrder 유지 원문 검사 body 및 assertion 동일. 9b8de6c23bd1314478b477a76540282c66318f375a6ea2d344cdf3521ba57569 9b8de6c23bd1314478b477a76540282c66318f375a6ea2d344cdf3521ba57569 ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(state.ShellResults().size(), 8U) | EXPECT_EQ(row.element, element) | EXPECT_EQ(row.location, locations[point]) | EXPECT_EQ(row.natural_coordinates, coordinates[point]) | EXPECT_EQ(row.local_frame, expected_frame) | EXPECT_NEAR(row.generalized_strain[component], expected_strain[component], 1.0e-12) | EXPECT_NEAR(row.section_resultant[component], expected_resultant[component], 1.0e-12) ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(state.ShellResults().size(), 8U) | EXPECT_EQ(row.element, element) | EXPECT_EQ(row.location, locations[point]) | EXPECT_EQ(row.natural_coordinates, coordinates[point]) | EXPECT_EQ(row.local_frame, expected_frame) | EXPECT_NEAR(row.generalized_strain[component], expected_strain[component], 1.0e-12) | EXPECT_NEAR(row.section_resultant[component], expected_resultant[component], 1.0e-12) -Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.RecoversDirectBottomMiddleTopShellStress ResultRecovery.RecoversDirectBottomMiddleTopShellStress; assertion 5개 tests/unit/results/result_recovery_test.cpp ResultRecovery.RecoversDirectBottomMiddleTopShellStress 유지 원문 검사 body 및 assertion 동일. b3e0100d6b0502831741ebd4ba7e572f405e0fa496e7a864df24df615e6a681a b3e0100d6b0502831741ebd4ba7e572f405e0fa496e7a864df24df615e6a681a ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_EQ(row.stress[position].position, positions[position]) | EXPECT_DOUBLE_EQ(row.stress[position].zeta, zeta[position]) | EXPECT_NEAR(row.stress[position].components[component], expected_stress[position][component], 1.0e-12) ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_EQ(row.stress[position].position, positions[position]) | EXPECT_DOUBLE_EQ(row.stress[position].zeta, zeta[position]) | EXPECT_NEAR(row.stress[position].components[component], expected_stress[position][component], 1.0e-12) -Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.SumsOnlyPhysicalShellEnergyInSourceOrder ResultRecovery.SumsOnlyPhysicalShellEnergyInSourceOrder; assertion 3개 tests/unit/results/result_recovery_test.cpp ResultRecovery.SumsOnlyPhysicalShellEnergyInSourceOrder 유지 원문 검사 body 및 assertion 동일. 00b5b24a4976ce98df0b3e5204d6c3e1295111aa571f737aa02b5c59d7b9c4d8 00b5b24a4976ce98df0b3e5204d6c3e1295111aa571f737aa02b5c59d7b9c4d8 ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | EXPECT_NEAR(state.PhysicalStrainEnergy(), 72.16, 1.0e-12) | EXPECT_GT(stabilized_energy, state.PhysicalStrainEnergy()) ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | EXPECT_NEAR(state.PhysicalStrainEnergy(), 72.16, 1.0e-12) | EXPECT_GT(stabilized_energy, state.PhysicalStrainEnergy()) -Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.KeepsFullResidualAndComputesGlobalShellEquilibrium ResultRecovery.KeepsFullResidualAndComputesGlobalShellEquilibrium; assertion 11개 tests/unit/results/result_recovery_test.cpp ResultRecovery.KeepsFullResidualAndComputesGlobalShellEquilibrium 유지 원문 검사 body 및 assertion 동일. 26ba2a3d96f0e02c4b251de544b76a99d82d3346023d01b17cf80133ca3c067e 26ba2a3d96f0e02c4b251de544b76a99d82d3346023d01b17cf80133ca3c067e ASSERT_TRUE(full_load.HasValue()) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_DOUBLE_EQ(state.InternalForce()[full_dof], 0.0) | EXPECT_DOUBLE_EQ(state.Residual()[full_dof], -state.ExternalForce()[full_dof]) | EXPECT_DOUBLE_EQ(state.Reaction()[full_dof], state.Residual()[full_dof]) | EXPECT_EQ(state.Equilibrium(), (std::array{0.0, 0.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{0.0, 0.0, 0.0})) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*free_fixture.model, *free_fixture.dofs, *free_fixture.stiffness, perturbed) .IsOk()) | EXPECT_GT(metric, 0.0) | EXPECT_LE(metric, 1.0e-10) ASSERT_TRUE(full_load.HasValue()) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_DOUBLE_EQ(state.InternalForce()[full_dof], 0.0) | EXPECT_DOUBLE_EQ(state.Residual()[full_dof], -state.ExternalForce()[full_dof]) | EXPECT_DOUBLE_EQ(state.Reaction()[full_dof], state.Residual()[full_dof]) | EXPECT_EQ(state.Equilibrium(), (std::array{0.0, 0.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{0.0, 0.0, 0.0})) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*free_fixture.model, *free_fixture.dofs, *free_fixture.stiffness, perturbed) .IsOk()) | EXPECT_GT(metric, 0.0) | EXPECT_LE(metric, 1.0e-10) -Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.UsesGlobalOriginForShellMomentBalance ResultRecovery.UsesGlobalOriginForShellMomentBalance; assertion 5개 tests/unit/results/result_recovery_test.cpp ResultRecovery.UsesGlobalOriginForShellMomentBalance 유지 원문 검사 body 및 assertion 동일. 91bda66039ec2ad9dd1d554d2fec6de249e3b4327105a883b94dc64877e091b5 91bda66039ec2ad9dd1d554d2fec6de249e3b4327105a883b94dc64877e091b5 ASSERT_TRUE(fesa::ResultRecovery::Recover( *centered_fixture.model, *centered_fixture.dofs, *centered_fixture.stiffness, centered) .IsOk()) | ASSERT_TRUE(fesa::ResultRecovery::Recover( *translated_fixture.model, *translated_fixture.dofs, *translated_fixture.stiffness, translated) .IsOk()) | EXPECT_NEAR(translated.Equilibrium()[component], centered_force[component], 1.0e-12) | EXPECT_NEAR(translated.Equilibrium()[3U + component] - centered.Equilibrium()[3U + component], translated_moment_delta[component], 5.0e-12) | EXPECT_GT(std::abs(translated_moment_delta[2U]), 1.0e-9) ASSERT_TRUE(fesa::ResultRecovery::Recover( *centered_fixture.model, *centered_fixture.dofs, *centered_fixture.stiffness, centered) .IsOk()) | ASSERT_TRUE(fesa::ResultRecovery::Recover( *translated_fixture.model, *translated_fixture.dofs, *translated_fixture.stiffness, translated) .IsOk()) | EXPECT_NEAR(translated.Equilibrium()[component], centered_force[component], 1.0e-12) | EXPECT_NEAR(translated.Equilibrium()[3U + component] - centered.Equilibrium()[3U + component], translated_moment_delta[component], 5.0e-12) | EXPECT_GT(std::abs(translated_moment_delta[2U]), 1.0e-9) -Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.UsesScaleAwareShellMetricsAndRejectsExcess ResultRecovery.UsesScaleAwareShellMetricsAndRejectsExcess; assertion 6개 tests/unit/results/result_recovery_test.cpp ResultRecovery.UsesScaleAwareShellMetricsAndRejectsExcess 유지 원문 검사 body 및 assertion 동일. 1a8b5c99778239402aa2e0e22d9f40513451781fbc64d04853b30ab367af26a9 1a8b5c99778239402aa2e0e22d9f40513451781fbc64d04853b30ab367af26a9 ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, subunit) .IsOk()) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, large) .IsOk()) | EXPECT_GT(subunit.VerificationMetrics()[metric], 0.0) | EXPECT_GT(large.VerificationMetrics()[metric], 0.0) | EXPECT_NEAR(subunit.VerificationMetrics()[metric], large.VerificationMetrics()[metric], 1.0e-13) | ASSERT_TRUE(unbalanced_stiffness.HasValue()) ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, subunit) .IsOk()) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, large) .IsOk()) | EXPECT_GT(subunit.VerificationMetrics()[metric], 0.0) | EXPECT_GT(large.VerificationMetrics()[metric], 0.0) | EXPECT_NEAR(subunit.VerificationMetrics()[metric], large.VerificationMetrics()[metric], 1.0e-13) | ASSERT_TRUE(unbalanced_stiffness.HasValue()) -Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.InvalidLaterShellLeavesEntirePriorStateUnchanged ResultRecovery.InvalidLaterShellLeavesEntirePriorStateUnchanged; assertion 15개 tests/unit/results/result_recovery_test.cpp ResultRecovery.InvalidLaterShellLeavesEntirePriorStateUnchanged 유지 원문 검사 body 및 assertion 동일. cdc079f64476222e15342ee83a53f02ad11ba110191fcc7b334c22cccd03aaba cdc079f64476222e15342ee83a53f02ad11ba110191fcc7b334c22cccd03aaba ASSERT_TRUE(fesa::ResultRecovery::Recover(*valid_fixture.model, *valid_fixture.dofs, *valid_fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 8U) | ASSERT_TRUE(zero_stiffness.HasValue()) | EXPECT_DOUBLE_EQ(state.InternalForce()[0U], 91.0) | EXPECT_DOUBLE_EQ(state.Residual()[0U], 92.0) | EXPECT_DOUBLE_EQ(state.Reaction()[0U], 93.0) | EXPECT_EQ(state.EndpointResults().size(), 1U) | ASSERT_EQ(state.ShellResults().size(), 8U) | EXPECT_EQ(state.ShellResults().front().element, prior_first_row.element) | EXPECT_EQ(state.ShellResults().front().location, prior_first_row.location) | EXPECT_EQ(state.ShellResults().front().generalized_strain, prior_first_row.generalized_strain) | EXPECT_EQ(state.ShellResults().front().section_resultant, prior_first_row.section_resultant) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior_energy) | EXPECT_EQ(state.Equilibrium(), prior_equilibrium) | EXPECT_EQ(state.VerificationMetrics(), prior_metrics) ASSERT_TRUE(fesa::ResultRecovery::Recover(*valid_fixture.model, *valid_fixture.dofs, *valid_fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 8U) | ASSERT_TRUE(zero_stiffness.HasValue()) | EXPECT_DOUBLE_EQ(state.InternalForce()[0U], 91.0) | EXPECT_DOUBLE_EQ(state.Residual()[0U], 92.0) | EXPECT_DOUBLE_EQ(state.Reaction()[0U], 93.0) | EXPECT_EQ(state.EndpointResults().size(), 1U) | ASSERT_EQ(state.ShellResults().size(), 8U) | EXPECT_EQ(state.ShellResults().front().element, prior_first_row.element) | EXPECT_EQ(state.ShellResults().front().location, prior_first_row.location) | EXPECT_EQ(state.ShellResults().front().generalized_strain, prior_first_row.generalized_strain) | EXPECT_EQ(state.ShellResults().front().section_resultant, prior_first_row.section_resultant) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior_energy) | EXPECT_EQ(state.Equilibrium(), prior_equilibrium) | EXPECT_EQ(state.VerificationMetrics(), prior_metrics) -Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.RealSolidPayloadFailsClosedAndPreservesLegacyState ResultRecovery.RealSolidPayloadFailsClosedAndPreservesLegacyState; assertion 9개 tests/unit/results/result_recovery_test.cpp ResultRecovery.RealSolidPayloadFailsClosedAndPreservesLegacyState 유지 원문 검사 body 및 assertion 동일. b141c6cecbdb1ae52c1c6d824f368ca38f6d56aef54f660dac80dd383e2dd22d b141c6cecbdb1ae52c1c6d824f368ca38f6d56aef54f660dac80dd383e2dd22d "ASSERT_TRUE(solid.HasValue()) | ASSERT_TRUE(recovered.HasValue()) | ASSERT_EQ(std::get(recovered.Value().payload) .rows.size(), 8U) | EXPECT_DOUBLE_EQ(state.Displacement()[0], 37.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[0], 19.0) | ASSERT_EQ(state.EndpointResults().size(), 2U) | EXPECT_DOUBLE_EQ(state.EndpointResults()[0].section_resultant[0], 11.0) | EXPECT_EQ(state.Identity().step_name, ""prior-step"") | EXPECT_EQ(state.Identity().frame_index, 9U)" "ASSERT_TRUE(solid.HasValue()) | ASSERT_TRUE(recovered.HasValue()) | ASSERT_EQ(std::get(recovered.Value().payload) .rows.size(), 8U) | EXPECT_DOUBLE_EQ(state.Displacement()[0], 37.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[0], 19.0) | ASSERT_EQ(state.EndpointResults().size(), 2U) | EXPECT_DOUBLE_EQ(state.EndpointResults()[0].section_resultant[0], 11.0) | EXPECT_EQ(state.Identity().step_name, ""prior-step"") | EXPECT_EQ(state.Identity().frame_index, 9U)" -Dev tests/unit/results/result_recovery_test.cpp support@1-486 helper/oracle/fixture/include/static assertion 구간: RecoveryFixture, ShellRecoveryFixture, FakeRecoveryElement, if, FullNodeComponents, MakeRuntimeLayout, MakeFakeBeamBundle, MakeFakeShellBundle, ExpectVectorEqual, MakeShellFixture, MakeShellPhysicalState, MakeAxialEquilibriumState, for, MakePatchState, ExpectStatusCode, ExpectScaledNear, MakeStationRows tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eb7cc3528f2f1b6ff89196b0aa6af7976ed75a3e979be52ea96ad2bdc358192a 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/results/result_recovery_test.cpp support@536-537 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 212a78df598b1f4fe28beea4828a6b61a489b64fdcab0d4dac8e166621522216 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/results/result_recovery_test.cpp support@567-568 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 212a78df598b1f4fe28beea4828a6b61a489b64fdcab0d4dac8e166621522216 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/results/result_recovery_test.cpp support@873-874 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. be9695a1dfd710a92ce4bd7a28b2ff4722998e936a18a40b7ad3b0924d6db21b 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/results/result_recovery_test.cpp support@922-923 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5b2f4ea71173df2f4c511be4321417651647b1f1d79e724c3bd99c3dc2ab8106 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/results/result_recovery_test.cpp support@950-951 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 77d8fb9f45d9b90eb930d818340de8b1fd2f4478fc8093bfbdeb0303184ca57f 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/results/result_recovery_test.cpp support@970-971 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 685f08a7676bc65e1f3c60ee0bba4f30043ab66b05381db014971b3a9376382e 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/results/result_recovery_test.cpp support@1014-1015 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. edf7cabe953adfaded5d4481da649c54147c680bae27dfe27563b87d850789f0 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/results/result_recovery_test.cpp support@1058-1059 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 685f08a7676bc65e1f3c60ee0bba4f30043ab66b05381db014971b3a9376382e 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/results/result_recovery_test.cpp support@1108-1109 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fa11ba7d5f866feb0c6e224aba5f382047c5f0c223ccedf90498730c1edf3fe8 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/results/results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/unit/results/results_writer_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. dab162df80e0126149d6fd61a4d6a18b71935517fd6f4567da8ab998310ebdb2 afa4f1287a951645a1e9bd2c4cc5cb8603615670944362cf89f3780befd82dee 해당 없음 해당 없음 -Dev tests/unit/results/results_writer_test.cpp support@1-23 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/results_writer_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 33272c49028087f879e966999cc2bcc48bc7750881a4eee92a48d84618909e6c 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 34개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eaebae0e4350e20ce66e07f762b7d2c867a06db4ad89afaac90c92bfc1d4ca61 eaebae0e4350e20ce66e07f762b7d2c867a06db4ad89afaac90c92bfc1d4ca61 해당 없음 해당 없음 -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.SolvesN1AndRetainsBackendEvidence MklFeastEigenSolver.SolvesN1AndRetainsBackendEvidence; assertion 19개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.SolvesN1AndRetainsBackendEvidence 유지 원문 검사 body 및 assertion 동일. a5e6952b5e691cd318758a58e51cc8c0cadbf6992466d2919582d812f7efc0fa a5e6952b5e691cd318758a58e51cc8c0cadbf6992466d2919582d812f7efc0fa "EXPECT_EQ(result.Value().requested_modes, 1U) | ASSERT_EQ(result.Value().eigenvalues.size(), 1U) | EXPECT_NEAR(result.Value().eigenvalues[0U], 4.0, 1.0e-10) | EXPECT_DOUBLE_EQ(result.Value().operator_scale, 4.0) | EXPECT_EQ(result.Value().eigenvectors.Rows(), 1U) | EXPECT_EQ(result.Value().eigenvectors.Columns(), 1U) | EXPECT_EQ(result.Value().thread_count, 1U) | ASSERT_EQ(result.Value().base_fpm.size(), 128U) | EXPECT_EQ(result.Value().base_fpm[5U], 0) | ASSERT_FALSE(result.Value().backend_calls.empty()) | EXPECT_EQ(result.Value().backend_calls.front().purpose, ""total-enclosure"") | EXPECT_EQ(result.Value().backend_calls.back().kind, ""solve"") | EXPECT_TRUE(result.Value().backend_calls.back().count_available) | EXPECT_EQ(result.Value().backend_calls.back().count, result.Value().eigenvalues.size()) | EXPECT_TRUE(result.Value().backend_calls.back().loop_available) | EXPECT_TRUE(result.Value().backend_calls.back().epsout_available) | EXPECT_EQ(result.Value().backend_calls.back().outcome, ""accepted"") | EXPECT_EQ(result.Value().backend_calls.back().decision_reason, ""accepted"") | EXPECT_FALSE(result.Value().upper_search_termination.empty())" "EXPECT_EQ(result.Value().requested_modes, 1U) | ASSERT_EQ(result.Value().eigenvalues.size(), 1U) | EXPECT_NEAR(result.Value().eigenvalues[0U], 4.0, 1.0e-10) | EXPECT_DOUBLE_EQ(result.Value().operator_scale, 4.0) | EXPECT_EQ(result.Value().eigenvectors.Rows(), 1U) | EXPECT_EQ(result.Value().eigenvectors.Columns(), 1U) | EXPECT_EQ(result.Value().thread_count, 1U) | ASSERT_EQ(result.Value().base_fpm.size(), 128U) | EXPECT_EQ(result.Value().base_fpm[5U], 0) | ASSERT_FALSE(result.Value().backend_calls.empty()) | EXPECT_EQ(result.Value().backend_calls.front().purpose, ""total-enclosure"") | EXPECT_EQ(result.Value().backend_calls.back().kind, ""solve"") | EXPECT_TRUE(result.Value().backend_calls.back().count_available) | EXPECT_EQ(result.Value().backend_calls.back().count, result.Value().eigenvalues.size()) | EXPECT_TRUE(result.Value().backend_calls.back().loop_available) | EXPECT_TRUE(result.Value().backend_calls.back().epsout_available) | EXPECT_EQ(result.Value().backend_calls.back().outcome, ""accepted"") | EXPECT_EQ(result.Value().backend_calls.back().decision_reason, ""accepted"") | EXPECT_FALSE(result.Value().upper_search_termination.empty())" -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.SolvesAllZeroWithExplicitPhysicalScale MklFeastEigenSolver.SolvesAllZeroWithExplicitPhysicalScale; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.SolvesAllZeroWithExplicitPhysicalScale 유지 원문 검사 body 및 assertion 동일. 9132a899409f4f8bb3a08c9f5c18c3f0ff1a4857bf1f98571340163e4553f691 9132a899409f4f8bb3a08c9f5c18c3f0ff1a4857bf1f98571340163e4553f691 ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_DOUBLE_EQ(result.Value().operator_scale, 7.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[0U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[1U], 0.0) ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_DOUBLE_EQ(result.Value().operator_scale, 7.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[0U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[1U], 0.0) -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesRepeatedMultiplicityAndStableOrder MklFeastEigenSolver.PreservesRepeatedMultiplicityAndStableOrder; assertion 8개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesRepeatedMultiplicityAndStableOrder 유지 원문 검사 body 및 assertion 동일. 569416623ee5b90db9c898f92f589b8eb7bda065baaf7f777feb8245b14f19a8 569416623ee5b90db9c898f92f589b8eb7bda065baaf7f777feb8245b14f19a8 ASSERT_EQ(first.Value().eigenvalues.size(), 3U) | EXPECT_NEAR(first.Value().eigenvalues[0U], 2.0, 1.0e-10) | EXPECT_NEAR(first.Value().eigenvalues[1U], 2.0, 1.0e-10) | EXPECT_NEAR(first.Value().eigenvalues[2U], 5.0, 1.0e-10) | EXPECT_EQ(first.Value().column_ids, second.Value().column_ids) | EXPECT_EQ(first.Value().column_ids, third.Value().column_ids) | EXPECT_EQ(first.Value().eigenvalues, second.Value().eigenvalues) | EXPECT_EQ(first.Value().eigenvalues, third.Value().eigenvalues) ASSERT_EQ(first.Value().eigenvalues.size(), 3U) | EXPECT_NEAR(first.Value().eigenvalues[0U], 2.0, 1.0e-10) | EXPECT_NEAR(first.Value().eigenvalues[1U], 2.0, 1.0e-10) | EXPECT_NEAR(first.Value().eigenvalues[2U], 5.0, 1.0e-10) | EXPECT_EQ(first.Value().column_ids, second.Value().column_ids) | EXPECT_EQ(first.Value().column_ids, third.Value().column_ids) | EXPECT_EQ(first.Value().eigenvalues, second.Value().eigenvalues) | EXPECT_EQ(first.Value().eigenvalues, third.Value().eigenvalues) -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.UsesGuardedPrefixWithoutDroppingRepeatedCluster MklFeastEigenSolver.UsesGuardedPrefixWithoutDroppingRepeatedCluster; assertion 6개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.UsesGuardedPrefixWithoutDroppingRepeatedCluster 유지 원문 검사 body 및 assertion 동일. 56315bd7fccef615e71cc32988f93ec30232ca90502bf20c0402180d597c0685 56315bd7fccef615e71cc32988f93ec30232ca90502bf20c0402180d597c0685 "EXPECT_GE(one_mode.Value().eigenvalues.size(), 40U) | EXPECT_GE(forty_first.Value().eigenvalues.size(), 41U) | EXPECT_NEAR(one_mode.Value().eigenvalues[index], 1.0, 1.0e-10) | EXPECT_NEAR(forty_first.Value().eigenvalues[40U], 2.0, 1.0e-10) | EXPECT_EQ(one_mode.Value().backend_calls.back().kind, ""solve"") | EXPECT_EQ(forty_first.Value().backend_calls.back().kind, ""solve"")" "EXPECT_GE(one_mode.Value().eigenvalues.size(), 40U) | EXPECT_GE(forty_first.Value().eigenvalues.size(), 41U) | EXPECT_NEAR(one_mode.Value().eigenvalues[index], 1.0, 1.0e-10) | EXPECT_NEAR(forty_first.Value().eigenvalues[40U], 2.0, 1.0e-10) | EXPECT_EQ(one_mode.Value().backend_calls.back().kind, ""solve"") | EXPECT_EQ(forty_first.Value().backend_calls.back().kind, ""solve"")" -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsSignificantNegativeSpectrum MklFeastEigenSolver.RejectsSignificantNegativeSpectrum; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsSignificantNegativeSpectrum 유지 원문 검사 body 및 assertion 동일. 0c5373e53f768aa91e99580e4d48e737a8b3ed32c98f141d8c4d2faa02a523d6 0c5373e53f768aa91e99580e4d48e737a8b3ed32c98f141d8c4d2faa02a523d6 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""negative-eigenvalue-spectrum"")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""negative-eigenvalue-spectrum"")" -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.KeepsCloseDistinctModesSeparated MklFeastEigenSolver.KeepsCloseDistinctModesSeparated; assertion 5개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.KeepsCloseDistinctModesSeparated 유지 원문 검사 body 및 assertion 동일. 14aacceeae53faa7a062beccd27707e37541fd4a20e7ccd64ad38f6bbacf57f0 14aacceeae53faa7a062beccd27707e37541fd4a20e7ccd64ad38f6bbacf57f0 ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(result.Value().eigenvalues[0U], 1.0, 1.0e-10) | EXPECT_NEAR(result.Value().eigenvalues[1U], 1.001, 1.0e-10) | EXPECT_NEAR(std::abs(result.Value().eigenvectors(0U, 0U)), 1.0, 1.0e-10) | EXPECT_NEAR(std::abs(result.Value().eigenvectors(1U, 1U)), 1.0, 1.0e-10) ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(result.Value().eigenvalues[0U], 1.0, 1.0e-10) | EXPECT_NEAR(result.Value().eigenvalues[1U], 1.001, 1.0e-10) | EXPECT_NEAR(std::abs(result.Value().eigenvectors(0U, 0U)), 1.0, 1.0e-10) | EXPECT_NEAR(std::abs(result.Value().eigenvectors(1U, 1U)), 1.0, 1.0e-10) -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RestoresCallingThreadLocalSetting MklFeastEigenSolver.RestoresCallingThreadLocalSetting; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RestoresCallingThreadLocalSetting 유지 원문 검사 body 및 assertion 동일. 83ad3e485cd51a75937fe2c31aa9ca90a33b7dddd67acdfeea5e2c8b21a3bb7f 83ad3e485cd51a75937fe2c31aa9ca90a33b7dddd67acdfeea5e2c8b21a3bb7f EXPECT_EQ(restored, 2) EXPECT_EQ(restored, 2) -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsInvalidRequestAndZeroScale MklFeastEigenSolver.RejectsInvalidRequestAndZeroScale; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsInvalidRequestAndZeroScale 유지 원문 검사 body 및 assertion 동일. 8689fda7e7994805ac76572196bc34cf736664e5b643b71233cacc3e6a29d13b 8689fda7e7994805ac76572196bc34cf736664e5b643b71233cacc3e6a29d13b "ASSERT_FALSE(zero_request.HasValue()) | EXPECT_EQ(zero_request.GetStatus().Diagnostics()[0U].code, ""feast-invalid-dimension"") | ASSERT_FALSE(invalid_scale.HasValue()) | EXPECT_EQ(invalid_scale.GetStatus().Diagnostics()[0U].code, ""feast-invalid-zero-scale"")" "ASSERT_FALSE(zero_request.HasValue()) | EXPECT_EQ(zero_request.GetStatus().Diagnostics()[0U].code, ""feast-invalid-dimension"") | ASSERT_FALSE(invalid_scale.HasValue()) | EXPECT_EQ(invalid_scale.GetStatus().Diagnostics()[0U].code, ""feast-invalid-zero-scale"")" -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesLowestPrefixForZeroAndPositiveSpectra MklFeastEigenSolver.PreservesLowestPrefixForZeroAndPositiveSpectra; assertion 3개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesLowestPrefixForZeroAndPositiveSpectra 유지 원문 검사 body 및 assertion 동일. aa89c5b6a3123bea8bd03219a4334166bf4f607ff70abfab02cb536b18768f5d aa89c5b6a3123bea8bd03219a4334166bf4f607ff70abfab02cb536b18768f5d ASSERT_TRUE(result.HasValue()) | ASSERT_GE(result.Value().eigenvalues.size(), requested) | EXPECT_NEAR(result.Value().eigenvalues[i], spectrum[i], 1e-10) ASSERT_TRUE(result.HasValue()) | ASSERT_GE(result.Value().eigenvalues.size(), requested) | EXPECT_NEAR(result.Value().eigenvalues[i], spectrum[i], 1e-10) -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.ResolvesCloseDistinctSpectrumAfterGivensCongruence MklFeastEigenSolver.ResolvesCloseDistinctSpectrumAfterGivensCongruence; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.ResolvesCloseDistinctSpectrumAfterGivensCongruence 유지 원문 검사 body 및 assertion 동일. b173141930f9c7d787cee4d5715c4f4fcf346e6fe947e9e8b1fa60784764641d b173141930f9c7d787cee4d5715c4f4fcf346e6fe947e9e8b1fa60784764641d ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().eigenvalues.size(), 4U) | EXPECT_NEAR(result.Value().eigenvalues[i], spectrum[i], 1e-12) | EXPECT_GT(result.Value().eigenvalues[1U] - result.Value().eigenvalues[0U], 1e-9) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().eigenvalues.size(), 4U) | EXPECT_NEAR(result.Value().eigenvalues[i], spectrum[i], 1e-12) | EXPECT_GT(result.Value().eigenvalues[1U] - result.Value().eigenvalues[0U], 1e-9) -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsFatalCountStatusWithoutRetry MklFeastEigenSolver.RejectsFatalCountStatusWithoutRetry; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsFatalCountStatusWithoutRetry 유지 원문 검사 body 및 assertion 동일. 23ef85953cd9408cae46249383f429500ae4234067387d6c8d0a3aa9eb5b96bf 23ef85953cd9408cae46249383f429500ae4234067387d6c8d0a3aa9eb5b96bf EXPECT_EQ(hook_calls, 1U) EXPECT_EQ(hook_calls, 1U) -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.BoundsCountCallsAndUpperSearchReservations MklFeastEigenSolver.BoundsCountCallsAndUpperSearchReservations; assertion 6개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.BoundsCountCallsAndUpperSearchReservations 유지 원문 검사 body 및 assertion 동일. 2e3d9cc28ce1c4d1909d0afc2950f88e8be5ba66d8f4344829561fe06601e8ca 2e3d9cc28ce1c4d1909d0afc2950f88e8be5ba66d8f4344829561fe06601e8ca EXPECT_TRUE(fesa::internal::CanCallFeast(511U)) | EXPECT_FALSE(fesa::internal::CanCallFeast(512U)) | EXPECT_FALSE(fesa::internal::CanCallFeast(kMaximum)) | EXPECT_TRUE(fesa::internal::CanStartUpperCandidate(363U)) | EXPECT_FALSE(fesa::internal::CanStartUpperCandidate(364U)) | EXPECT_FALSE(fesa::internal::CanStartUpperCandidate(kMaximum)) EXPECT_TRUE(fesa::internal::CanCallFeast(511U)) | EXPECT_FALSE(fesa::internal::CanCallFeast(512U)) | EXPECT_FALSE(fesa::internal::CanCallFeast(kMaximum)) | EXPECT_TRUE(fesa::internal::CanStartUpperCandidate(363U)) | EXPECT_FALSE(fesa::internal::CanStartUpperCandidate(364U)) | EXPECT_FALSE(fesa::internal::CanStartUpperCandidate(kMaximum)) -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.BoundsPrivateWorkspaceProductsBeforeAllocation MklFeastEigenSolver.BoundsPrivateWorkspaceProductsBeforeAllocation; assertion 7개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.BoundsPrivateWorkspaceProductsBeforeAllocation 유지 원문 검사 body 및 assertion 동일. 69110366294c0c4a271e8295fa2352576136369334a1db1c9346511d5496e742 69110366294c0c4a271e8295fa2352576136369334a1db1c9346511d5496e742 EXPECT_TRUE(fesa::internal::ProductFits(0U, kMaximum)) | EXPECT_TRUE(fesa::internal::ProductFits(1U, kMaximum)) | EXPECT_FALSE(fesa::internal::ProductFits(kMaximum, 2U)) | EXPECT_TRUE(fesa::internal::FitsDoubleStorage(0U)) | EXPECT_TRUE(fesa::internal::FitsDoubleStorage(storage_limit)) | EXPECT_FALSE(fesa::internal::FitsDoubleStorage(kMaximum)) | EXPECT_FALSE(fesa::internal::FitsDoubleStorage(storage_limit + 1U)) EXPECT_TRUE(fesa::internal::ProductFits(0U, kMaximum)) | EXPECT_TRUE(fesa::internal::ProductFits(1U, kMaximum)) | EXPECT_FALSE(fesa::internal::ProductFits(kMaximum, 2U)) | EXPECT_TRUE(fesa::internal::FitsDoubleStorage(0U)) | EXPECT_TRUE(fesa::internal::FitsDoubleStorage(storage_limit)) | EXPECT_FALSE(fesa::internal::FitsDoubleStorage(kMaximum)) | EXPECT_FALSE(fesa::internal::FitsDoubleStorage(storage_limit + 1U)) -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.TranslatesCountWorkspaceAllocationFailure MklFeastEigenSolver.TranslatesCountWorkspaceAllocationFailure; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.TranslatesCountWorkspaceAllocationFailure 유지 원문 검사 body 및 assertion 동일. 6653c1ccf3f12cf12023f4ed701c5a2dc2eac565ab6e4ab2da403e6f3a9dae65 6653c1ccf3f12cf12023f4ed701c5a2dc2eac565ab6e4ab2da403e6f3a9dae65 해당 없음 해당 없음 -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.TranslatesSolveWorkspaceAllocationFailure MklFeastEigenSolver.TranslatesSolveWorkspaceAllocationFailure; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.TranslatesSolveWorkspaceAllocationFailure 유지 원문 검사 body 및 assertion 동일. e6817b904d15200de1dc8c70b40668142140bdc4adb47c239509b16c4f911842 e6817b904d15200de1dc8c70b40668142140bdc4adb47c239509b16c4f911842 해당 없음 해당 없음 -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.StopsInitialInfoOneAfterThreeCountCalls MklFeastEigenSolver.StopsInitialInfoOneAfterThreeCountCalls; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.StopsInitialInfoOneAfterThreeCountCalls 유지 원문 검사 body 및 assertion 동일. 10672f977ec5bdc9692c2dfabec9acb4435e639b18d49cc197a2ccea7b53ff97 10672f977ec5bdc9692c2dfabec9acb4435e639b18d49cc197a2ccea7b53ff97 EXPECT_EQ(count_calls, 3U) EXPECT_EQ(count_calls, 3U) -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsFinalCountHistoryMismatch MklFeastEigenSolver.RejectsFinalCountHistoryMismatch; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsFinalCountHistoryMismatch 유지 원문 검사 body 및 assertion 동일. caea386d5db1999417f7d1140ee543ea3a5cd1398399815033afd2f1b45ebcd6 caea386d5db1999417f7d1140ee543ea3a5cd1398399815033afd2f1b45ebcd6 해당 없음 해당 없음 -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsDecreasingCountAcrossDistinctUpperGuards MklFeastEigenSolver.RejectsDecreasingCountAcrossDistinctUpperGuards; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsDecreasingCountAcrossDistinctUpperGuards 유지 원문 검사 body 및 assertion 동일. 1c401c1682daa62d7105287575a7eac825c905e53825c3ea124477f3a823be7b 1c401c1682daa62d7105287575a7eac825c905e53825c3ea124477f3a823be7b 해당 없음 해당 없음 -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesRawNegativeBoundaryAndRejectsBelowIt MklFeastEigenSolver.PreservesRawNegativeBoundaryAndRejectsBelowIt; assertion 5개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesRawNegativeBoundaryAndRejectsBelowIt 유지 원문 검사 body 및 assertion 동일. b6c6927ededce6c56a882de187bb35bbfa8c258b533098f90c7e54e6f0d5a324 b6c6927ededce6c56a882de187bb35bbfa8c258b533098f90c7e54e6f0d5a324 ASSERT_EQ(outputs.eigenvalues.size(), 3U) | ASSERT_EQ(result.Value().eigenvalues.size(), 3U) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[0U], negative) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[1U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[2U], 1.0) ASSERT_EQ(outputs.eigenvalues.size(), 3U) | ASSERT_EQ(result.Value().eigenvalues.size(), 3U) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[0U], negative) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[1U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[2U], 1.0) -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.DoesNotRepeatUnchangedSolveAfterReturnedMismatch MklFeastEigenSolver.DoesNotRepeatUnchangedSolveAfterReturnedMismatch; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.DoesNotRepeatUnchangedSolveAfterReturnedMismatch 유지 원문 검사 body 및 assertion 동일. bdfe92002dfd17522f8dd7038fd290fbe28018d76ea65976ca086695a056b013 bdfe92002dfd17522f8dd7038fd290fbe28018d76ea65976ca086695a056b013 EXPECT_EQ(solve_calls, 1U) EXPECT_EQ(solve_calls, 1U) -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RetriesSolveInfoTwoOnlyWithLargerInterval MklFeastEigenSolver.RetriesSolveInfoTwoOnlyWithLargerInterval; assertion 2개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RetriesSolveInfoTwoOnlyWithLargerInterval 유지 원문 검사 body 및 assertion 동일. bdab428a83baf0a5524548d01ca60a6c4b4383aad9358a756131de3b356e0d5a bdab428a83baf0a5524548d01ca60a6c4b4383aad9358a756131de3b356e0d5a ASSERT_EQ(solve_uppers.size(), 2U) | EXPECT_LT(solve_uppers[0U], solve_uppers[1U]) ASSERT_EQ(solve_uppers.size(), 2U) | EXPECT_LT(solve_uppers[0U], solve_uppers[1U]) -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsNonfiniteSolveOutputWithoutRetry MklFeastEigenSolver.RejectsNonfiniteSolveOutputWithoutRetry; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsNonfiniteSolveOutputWithoutRetry 유지 원문 검사 body 및 assertion 동일. 53d5c4a3981593c4552579e14bee4aaf3fd5e74c49b9fc74df3191bd3be660ad 53d5c4a3981593c4552579e14bee4aaf3fd5e74c49b9fc74df3191bd3be660ad EXPECT_EQ(solve_calls, 1U) EXPECT_EQ(solve_calls, 1U) -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsResidualFailureWithoutSolveRetry MklFeastEigenSolver.RejectsResidualFailureWithoutSolveRetry; assertion 2개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsResidualFailureWithoutSolveRetry 유지 원문 검사 body 및 assertion 동일. 5a606ee1a05bafe19f30255199a3379d849a730c837ae9e2d5b53c4a26c4aa91 5a606ee1a05bafe19f30255199a3379d849a730c837ae9e2d5b53c4a26c4aa91 "EXPECT_NE(result.GetStatus().Diagnostics().front().message.find( ""Independent whitened residual exceeds""), std::string::npos) | EXPECT_EQ(solve_calls, 1U)" "EXPECT_NE(result.GetStatus().Diagnostics().front().message.find( ""Independent whitened residual exceeds""), std::string::npos) | EXPECT_EQ(solve_calls, 1U)" -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsNonfiniteVectorAndEpsoutWithoutRetry MklFeastEigenSolver.RejectsNonfiniteVectorAndEpsoutWithoutRetry; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsNonfiniteVectorAndEpsoutWithoutRetry 유지 원문 검사 body 및 assertion 동일. 12662d8693c0d8389fc39fd1558d7d26688e89a1d30ccb5cd7ace90035fe7f3f 12662d8693c0d8389fc39fd1558d7d26688e89a1d30ccb5cd7ace90035fe7f3f EXPECT_EQ(solve_calls, 1U) EXPECT_EQ(solve_calls, 1U) -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsGramFailureWithoutSolveRetry MklFeastEigenSolver.RejectsGramFailureWithoutSolveRetry; assertion 2개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsGramFailureWithoutSolveRetry 유지 원문 검사 body 및 assertion 동일. 8e1f6270e69957b1ff42bd0c5c39722bbf98eb6392b7c4dea913ace4f900787a 8e1f6270e69957b1ff42bd0c5c39722bbf98eb6392b7c4dea913ace4f900787a ASSERT_EQ(outputs.vectors.size(), 4U) | EXPECT_EQ(solve_calls, 1U) ASSERT_EQ(outputs.vectors.size(), 4U) | EXPECT_EQ(solve_calls, 1U) -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.UsesCertifiedEnclosureAfterOptionalInfoOne MklFeastEigenSolver.UsesCertifiedEnclosureAfterOptionalInfoOne; assertion 3개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.UsesCertifiedEnclosureAfterOptionalInfoOne 유지 원문 검사 body 및 assertion 동일. 9cf4debc6123a3d0b3c8e8be2d275202c80cc9698fdc2583b3d3038995a98c3a 9cf4debc6123a3d0b3c8e8be2d275202c80cc9698fdc2583b3d3038995a98c3a "EXPECT_EQ(result.Value().upper_search_termination, ""optional-status"") | ASSERT_GE(result.Value().backend_calls.size(), 2U) | EXPECT_EQ(result.Value().backend_calls[1U].outcome, ""optional-abandoned"")" "EXPECT_EQ(result.Value().upper_search_termination, ""optional-status"") | ASSERT_GE(result.Value().backend_calls.size(), 2U) | EXPECT_EQ(result.Value().backend_calls[1U].outcome, ""optional-abandoned"")" -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.GenuineNonDiagonalMassPencil MklFeastGeneralized.GenuineNonDiagonalMassPencil; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.GenuineNonDiagonalMassPencil 유지 원문 검사 body 및 assertion 동일. 72baededa1bfdef264afcc9f4314a0886488e2c44bfe259c7ca37bfdb7de2118 72baededa1bfdef264afcc9f4314a0886488e2c44bfe259c7ca37bfdb7de2118 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(result.Value().eigenvalues[0], 8.0 / 3.0, 1e-11) | EXPECT_NEAR(result.Value().eigenvalues[1], 4.0, 1e-11) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(result.Value().eigenvalues[0], 8.0 / 3.0, 1e-11) | EXPECT_NEAR(result.Value().eigenvalues[1], 4.0, 1e-11) -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.RejectsIndefiniteMassAndInvalidBound MklFeastGeneralized.RejectsIndefiniteMassAndInvalidBound; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.RejectsIndefiniteMassAndInvalidBound 유지 원문 검사 body 및 assertion 동일. 5e8a9f7f9837fd0d117abee37fc9630d32c9c751a38c6163015a164f6b405ac3 5e8a9f7f9837fd0d117abee37fc9630d32c9c751a38c6163015a164f6b405ac3 해당 없음 해당 없음 -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.ValidatesPairsBeyondRequestedPrefix MklFeastGeneralized.ValidatesPairsBeyondRequestedPrefix; assertion 2개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.ValidatesPairsBeyondRequestedPrefix 유지 원문 검사 body 및 assertion 동일. 7f4b3d16aa4060b46421f1418006fddc70e34df70fd0d5e6186a7ca38a9e0841 7f4b3d16aa4060b46421f1418006fddc70e34df70fd0d5e6186a7ca38a9e0841 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().eigenvalues.size(), 3U) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().eigenvalues.size(), 3U) -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.RejectsCorruptUnselectedDirectionAndFatalCount MklFeastGeneralized.RejectsCorruptUnselectedDirectionAndFatalCount; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.RejectsCorruptUnselectedDirectionAndFatalCount 유지 원문 검사 body 및 assertion 동일. eefa09383f9cc94be8f9bf448ec69929396275705094abb5fa2355aeb2251473 eefa09383f9cc94be8f9bf448ec69929396275705094abb5fa2355aeb2251473 "EXPECT_NE( result.GetStatus().Diagnostics()[0].message.find(""Backend calls=""), std::string::npos)" "EXPECT_NE( result.GetStatus().Diagnostics()[0].message.find(""Backend calls=""), std::string::npos)" -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.LowestPrefixPreservesRepeatedBoundary MklFeastGeneralized.LowestPrefixPreservesRepeatedBoundary; assertion 3개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.LowestPrefixPreservesRepeatedBoundary 유지 원문 검사 body 및 assertion 동일. 2019942540740122b91b048dbd378523a47a784cfe5f3b959078ebad7131af05 2019942540740122b91b048dbd378523a47a784cfe5f3b959078ebad7131af05 ASSERT_TRUE(result.HasValue()) | ASSERT_GE(result.Value().eigenvalues.size(), 5U) | EXPECT_NEAR(result.Value().eigenvalues[i], 1.0, 1e-11) ASSERT_TRUE(result.HasValue()) | ASSERT_GE(result.Value().eigenvalues.size(), 5U) | EXPECT_NEAR(result.Value().eigenvalues[i], 1.0, 1e-11) -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.AllocationAndCountMismatchFailClosed MklFeastGeneralized.AllocationAndCountMismatchFailClosed; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.AllocationAndCountMismatchFailClosed 유지 원문 검사 body 및 assertion 동일. 1271827bfda37b6a706c22d62f642e48bdc6e3435a5bde4f99371889c0656158 1271827bfda37b6a706c22d62f642e48bdc6e3435a5bde4f99371889c0656158 해당 없음 해당 없음 -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.GeneralizedRetryRetainsCertifiedCountTrace MklFeastGeneralized.GeneralizedRetryRetainsCertifiedCountTrace; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.GeneralizedRetryRetainsCertifiedCountTrace 유지 원문 검사 body 및 assertion 동일. 658084530e78efa037f951551979e1681c86fa168014db6a798207bfee031bcf 658084530e78efa037f951551979e1681c86fa168014db6a798207bfee031bcf ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(injected) | EXPECT_NEAR(result.Value().eigenvalues[0], 1.0, 1e-11) | EXPECT_TRUE(retried) ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(injected) | EXPECT_NEAR(result.Value().eigenvalues[0], 1.0, 1e-11) | EXPECT_TRUE(retried) -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.LowerPrefixCountsProveNoOmittedModesAndRejectNegative MklFeastGeneralized.LowerPrefixCountsProveNoOmittedModesAndRejectNegative; assertion 8개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.LowerPrefixCountsProveNoOmittedModesAndRejectNegative 유지 원문 검사 body 및 assertion 동일. 8b1ef84c46097b604c26548141d8285b664a47537ed1df79c068f5623f7018f3 8b1ef84c46097b604c26548141d8285b664a47537ed1df79c068f5623f7018f3 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(call.info, 0) | EXPECT_TRUE(call.count_available) | EXPECT_EQ(call.count, 0U) | EXPECT_LT(call.upper, 0.0) | EXPECT_LT(call.lower, call.upper) | EXPECT_EQ(guards, 3U) | EXPECT_NEAR(result.Value().eigenvalues[0], 0.0, 1e-12) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(call.info, 0) | EXPECT_TRUE(call.count_available) | EXPECT_EQ(call.count, 0U) | EXPECT_LT(call.upper, 0.0) | EXPECT_LT(call.lower, call.upper) | EXPECT_EQ(guards, 3U) | EXPECT_NEAR(result.Value().eigenvalues[0], 0.0, 1e-12) -Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp support@1-115 helper/oracle/fixture/include/static assertion 구간: MakeDenseCsr, ExpectUnitGram, RequireSuccess, ExpectFailureCode, ExpectSameBackendCalls, ExpectSameProjector, ExpectThreadSettingRestored tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 91b74d929d69e24c9a0382a7498e011486ba87f933cd35ca4a433e1ceadb2a0c 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/solvers/linear/linear_solver_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/solvers/linear/linear_solver_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f8ac257d9699d9c10673fcf5d315a0be18b2a37c88a245a16683b2cdca2bf6b3 a5aa18ef7c3aedac56b92f87740e0fa5b59acdb8ccd714ae16cc54b732ddcee0 해당 없음 해당 없음 -Dev tests/unit/solvers/linear/linear_solver_test.cpp MklPardisoSolver.RejectsInvalidCsrStateAndDimensions MklPardisoSolver.RejectsInvalidCsrStateAndDimensions; assertion 20개 tests/unit/solvers/linear/linear_solver_test.cpp MklPardisoSolver.RejectsInvalidCsrStateAndDimensions 유지 원문 검사 body 및 assertion 동일. 026abcfd859f19c844cf0c0ebd698138e53fb66f1846dae2c7bf8e387db960f1 026abcfd859f19c844cf0c0ebd698138e53fb66f1846dae2c7bf8e387db960f1 "EXPECT_EQ(before_factorize.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(untouched[0U], 17.0) | EXPECT_DOUBLE_EQ(untouched[1U], -4.0) | ASSERT_TRUE(solver.Factorize(empty).IsOk()) | EXPECT_TRUE(solver.Solve(fesa::Vector{0U}, empty_solution).IsOk()) | EXPECT_EQ(empty_solution.Size(), 0U) | ASSERT_TRUE(solver.Factorize(spd).IsOk()) | ASSERT_TRUE(solver.Solve(fesa::Vector{2U, 1.0}, solution).IsOk()) | EXPECT_NEAR(solution[0U], 2.0 / 11.0, 1.0e-14) | EXPECT_NEAR(solution[1U], 3.0 / 11.0, 1.0e-14) | EXPECT_DOUBLE_EQ(solution[0U], solved_first) | EXPECT_DOUBLE_EQ(solution[1U], solved_second) | EXPECT_DOUBLE_EQ(wrong_solution[0U], 41.0) | EXPECT_EQ(rectangular_status.Diagnostics().front().code, ""solver-matrix-not-square"") | EXPECT_FALSE(invalid_csr.HasValue()) | EXPECT_EQ(nonsymmetric_status.Diagnostics().front().code, ""solver-matrix-not-symmetric"") | ASSERT_FALSE(scaled_nonsymmetric_status.IsOk()) | EXPECT_EQ(scaled_nonsymmetric_status.Diagnostics().front().code, ""solver-matrix-not-symmetric"") | ASSERT_TRUE(no_diagonal.HasValue()) | EXPECT_EQ(no_diagonal_status.Diagnostics().front().code, ""solver-missing-diagonal"")" "EXPECT_EQ(before_factorize.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(untouched[0U], 17.0) | EXPECT_DOUBLE_EQ(untouched[1U], -4.0) | ASSERT_TRUE(solver.Factorize(empty).IsOk()) | EXPECT_TRUE(solver.Solve(fesa::Vector{0U}, empty_solution).IsOk()) | EXPECT_EQ(empty_solution.Size(), 0U) | ASSERT_TRUE(solver.Factorize(spd).IsOk()) | ASSERT_TRUE(solver.Solve(fesa::Vector{2U, 1.0}, solution).IsOk()) | EXPECT_NEAR(solution[0U], 2.0 / 11.0, 1.0e-14) | EXPECT_NEAR(solution[1U], 3.0 / 11.0, 1.0e-14) | EXPECT_DOUBLE_EQ(solution[0U], solved_first) | EXPECT_DOUBLE_EQ(solution[1U], solved_second) | EXPECT_DOUBLE_EQ(wrong_solution[0U], 41.0) | EXPECT_EQ(rectangular_status.Diagnostics().front().code, ""solver-matrix-not-square"") | EXPECT_FALSE(invalid_csr.HasValue()) | EXPECT_EQ(nonsymmetric_status.Diagnostics().front().code, ""solver-matrix-not-symmetric"") | ASSERT_FALSE(scaled_nonsymmetric_status.IsOk()) | EXPECT_EQ(scaled_nonsymmetric_status.Diagnostics().front().code, ""solver-matrix-not-symmetric"") | ASSERT_TRUE(no_diagonal.HasValue()) | EXPECT_EQ(no_diagonal_status.Diagnostics().front().code, ""solver-missing-diagonal"")" -Dev tests/unit/solvers/linear/linear_solver_test.cpp support@1-47 helper/oracle/fixture/include/static assertion 구간: MakeDenseCsr, ExpectSolverFailure tests/unit/solvers/linear/linear_solver_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ace53a49bc5a95e9e3410de2815ce48ac5f275a180da13873590ccdcd1bf2018 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b278df4853fd35b4a609df18ba48bf7d27eeba7a88d58b7ff00d759f5461ccff b278df4853fd35b4a609df18ba48bf7d27eeba7a88d58b7ff00d759f5461ccff 해당 없음 해당 없음 -Dev tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.SolvesKnownSpdWithNormalizedResidual MklPardisoSolver.SolvesKnownSpdWithNormalizedResidual; assertion 4개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.SolvesKnownSpdWithNormalizedResidual 유지 원문 검사 body 및 assertion 동일. 0dd88a78ef239ae0d316f9fc4ecbfe7e6baba99a61eda7cc8f42e6616c09915c 0dd88a78ef239ae0d316f9fc4ecbfe7e6baba99a61eda7cc8f42e6616c09915c ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs, solution).IsOk()) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs, solution).IsOk()) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) -Dev tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ReusesOneFactorizationForRepeatedRhs MklPardisoSolver.ReusesOneFactorizationForRepeatedRhs; assertion 7개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ReusesOneFactorizationForRepeatedRhs 유지 원문 검사 body 및 assertion 동일. 0d5dd1f6b920c6201997eef647077b4039020a9adaa93483733c395ce55ecaed 0d5dd1f6b920c6201997eef647077b4039020a9adaa93483733c395ce55ecaed ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs_first, first).IsOk()) | ASSERT_TRUE(solver.Solve(rhs_second, second).IsOk()) | EXPECT_LE(RelativeError(first, expected_first), 1.0e-9) | EXPECT_LE(RelativeError(second, expected_second), 1.0e-9) | EXPECT_LE(NormalizedResidual(matrix, first, rhs_first), 1.0e-10) | EXPECT_LE(NormalizedResidual(matrix, second, rhs_second), 1.0e-10) ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs_first, first).IsOk()) | ASSERT_TRUE(solver.Solve(rhs_second, second).IsOk()) | EXPECT_LE(RelativeError(first, expected_first), 1.0e-9) | EXPECT_LE(RelativeError(second, expected_second), 1.0e-9) | EXPECT_LE(NormalizedResidual(matrix, first, rhs_first), 1.0e-10) | EXPECT_LE(NormalizedResidual(matrix, second, rhs_second), 1.0e-10) -Dev tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.SingleEquationPolicyPreservesLifecycleAndConcurrentTls MklPardisoSolver.SingleEquationPolicyPreservesLifecycleAndConcurrentTls; assertion 2개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.SingleEquationPolicyPreservesLifecycleAndConcurrentTls 유지 원문 검사 body 및 assertion 동일. 610428d0485f986f40ec3a364113402a796b3d858236de908e2542bf5ebcc35f 610428d0485f986f40ec3a364113402a796b3d858236de908e2542bf5ebcc35f EXPECT_TRUE(first.get()) | EXPECT_TRUE(second.get()) EXPECT_TRUE(first.get()) | EXPECT_TRUE(second.get()) -Dev tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.StillRejectsNonsymmetricPublicCsr MklPardisoSolver.StillRejectsNonsymmetricPublicCsr; assertion 1개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.StillRejectsNonsymmetricPublicCsr 유지 원문 검사 body 및 assertion 동일. 2d3aeaa63b4de4a45b8b553f51fe2223bb64e4c36e107c154ea333382d3ef052 2d3aeaa63b4de4a45b8b553f51fe2223bb64e4c36e107c154ea333382d3ef052 "EXPECT_EQ(status.Diagnostics()[0U].code, ""solver-matrix-not-symmetric"")" "EXPECT_EQ(status.Diagnostics()[0U].code, ""solver-matrix-not-symmetric"")" -Dev tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.RefactorizesWithoutLeakingState MklPardisoSolver.RefactorizesWithoutLeakingState; assertion 7개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.RefactorizesWithoutLeakingState 유지 원문 검사 body 및 assertion 동일. 72be7b9a87610a6d9dcb1324dc15b4d400c837e097dee540c00dd3e510921f35 72be7b9a87610a6d9dcb1324dc15b4d400c837e097dee540c00dd3e510921f35 ASSERT_TRUE(solver.Factorize(first_matrix).IsOk()) | ASSERT_TRUE( solver.Solve(first_matrix.Multiply(first_expected), first_solution) .IsOk()) | EXPECT_LE(RelativeError(first_solution, first_expected), 1.0e-9) | ASSERT_TRUE(solver.Factorize(second_matrix).IsOk()) | ASSERT_TRUE(solver.Solve(second_rhs, second_solution).IsOk()) | EXPECT_LE(RelativeError(second_solution, second_expected), 1.0e-9) | EXPECT_LE(NormalizedResidual(second_matrix, second_solution, second_rhs), 1.0e-10) ASSERT_TRUE(solver.Factorize(first_matrix).IsOk()) | ASSERT_TRUE( solver.Solve(first_matrix.Multiply(first_expected), first_solution) .IsOk()) | EXPECT_LE(RelativeError(first_solution, first_expected), 1.0e-9) | ASSERT_TRUE(solver.Factorize(second_matrix).IsOk()) | ASSERT_TRUE(solver.Solve(second_rhs, second_solution).IsOk()) | EXPECT_LE(RelativeError(second_solution, second_expected), 1.0e-9) | EXPECT_LE(NormalizedResidual(second_matrix, second_solution, second_rhs), 1.0e-10) -Dev tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.SingleEquationScopeTransitionsBetweenRetainedSizes MklPardisoSolver.SingleEquationScopeTransitionsBetweenRetainedSizes; assertion 14개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.SingleEquationScopeTransitionsBetweenRetainedSizes 유지 원문 검사 body 및 assertion 동일. 42f17887618436bdd6cead4d4cd14c2d887057a8571044d2a07b9d7e3c65abcb 42f17887618436bdd6cead4d4cd14c2d887057a8571044d2a07b9d7e3c65abcb ASSERT_TRUE(solver.Factorize(MakeDenseCsr(1U, {2.0})).IsOk()) | ASSERT_TRUE(solver.Solve(MakeVector({4.0}), single).IsOk()) | EXPECT_DOUBLE_EQ(single[0U], 2.0) | ASSERT_TRUE(solver.Factorize(MakeDenseCsr(2U, {2, 0, 0, 3})).IsOk()) | ASSERT_TRUE(solver.Solve(MakeVector({4, 6}), pair).IsOk()) | EXPECT_NEAR(pair[0U], 2, 1e-14) | EXPECT_NEAR(pair[1U], 2, 1e-14) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | ASSERT_TRUE(solver.Factorize(MakeDenseCsr(1U, {4.0})).IsOk()) | ASSERT_TRUE(solver.Solve(MakeVector({8.0}), single).IsOk()) | EXPECT_DOUBLE_EQ(single[0U], 2.0) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) ASSERT_TRUE(solver.Factorize(MakeDenseCsr(1U, {2.0})).IsOk()) | ASSERT_TRUE(solver.Solve(MakeVector({4.0}), single).IsOk()) | EXPECT_DOUBLE_EQ(single[0U], 2.0) | ASSERT_TRUE(solver.Factorize(MakeDenseCsr(2U, {2, 0, 0, 3})).IsOk()) | ASSERT_TRUE(solver.Solve(MakeVector({4, 6}), pair).IsOk()) | EXPECT_NEAR(pair[0U], 2, 1e-14) | EXPECT_NEAR(pair[1U], 2, 1e-14) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | ASSERT_TRUE(solver.Factorize(MakeDenseCsr(1U, {4.0})).IsOk()) | ASSERT_TRUE(solver.Solve(MakeVector({8.0}), single).IsOk()) | EXPECT_DOUBLE_EQ(single[0U], 2.0) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) -Dev tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ClassifiesSingularIndefiniteAndNonfiniteFailures MklPardisoSolver.ClassifiesSingularIndefiniteAndNonfiniteFailures; assertion 10개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ClassifiesSingularIndefiniteAndNonfiniteFailures 유지 원문 검사 body 및 assertion 동일. 007dec8a37d6956c242634b01f7e6f8f496f0e02082a94437a15dd3caaf89673 007dec8a37d6956c242634b01f7e6f8f496f0e02082a94437a15dd3caaf89673 "EXPECT_TRUE(singular_status.Diagnostics()[0U].code == ""pardiso-zero-or-negative-pivot"" || singular_status.Diagnostics()[0U].code == ""pardiso-singular-diagonal"") | EXPECT_NE( singular_status.Diagnostics()[0U].entity_identity.find(""phase=22,error=""), std::string::npos) | EXPECT_TRUE(indefinite_status.Diagnostics()[0U].code == ""pardiso-zero-or-negative-pivot"" || indefinite_status.Diagnostics()[0U].code == ""pardiso-singular-diagonal"") | EXPECT_NE(indefinite_status.Diagnostics()[0U].entity_identity.find( ""phase=22,error=""), std::string::npos) | ASSERT_TRUE(solver.Factorize(spd).IsOk()) | EXPECT_EQ(rhs_status.Diagnostics()[0U].code, ""nonfinite-solver-rhs"") | EXPECT_DOUBLE_EQ(solution[0U], 23.0) | EXPECT_DOUBLE_EQ(solution[1U], -9.0) | EXPECT_FALSE(nonfinite_matrix.HasValue()) | EXPECT_EQ(nonfinite_matrix.GetStatus().Diagnostics()[0U].code, ""nonfinite-sparse-value"")" "EXPECT_TRUE(singular_status.Diagnostics()[0U].code == ""pardiso-zero-or-negative-pivot"" || singular_status.Diagnostics()[0U].code == ""pardiso-singular-diagonal"") | EXPECT_NE( singular_status.Diagnostics()[0U].entity_identity.find(""phase=22,error=""), std::string::npos) | EXPECT_TRUE(indefinite_status.Diagnostics()[0U].code == ""pardiso-zero-or-negative-pivot"" || indefinite_status.Diagnostics()[0U].code == ""pardiso-singular-diagonal"") | EXPECT_NE(indefinite_status.Diagnostics()[0U].entity_identity.find( ""phase=22,error=""), std::string::npos) | ASSERT_TRUE(solver.Factorize(spd).IsOk()) | EXPECT_EQ(rhs_status.Diagnostics()[0U].code, ""nonfinite-solver-rhs"") | EXPECT_DOUBLE_EQ(solution[0U], 23.0) | EXPECT_DOUBLE_EQ(solution[1U], -9.0) | EXPECT_FALSE(nonfinite_matrix.HasValue()) | EXPECT_EQ(nonfinite_matrix.GetStatus().Diagnostics()[0U].code, ""nonfinite-sparse-value"")" -Dev tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ConditioningSweepPassesResolvedCasesAndFailsUnresolvedCasesExplicitly MklPardisoSolver.ConditioningSweepPassesResolvedCasesAndFailsUnresolvedCasesExplicitly; assertion 10개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ConditioningSweepPassesResolvedCasesAndFailsUnresolvedCasesExplicitly 유지 원문 검사 body 및 assertion 동일. 2e4b58fe2ef908b1c53f3dd40639f2423afb8429d5bdc7fdb80675b3efeceee2 2e4b58fe2ef908b1c53f3dd40639f2423afb8429d5bdc7fdb80675b3efeceee2 ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs, solution).IsOk()) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) | ASSERT_TRUE(resolved_solver.Factorize(resolved_matrix).IsOk()) | ASSERT_TRUE(resolved_solver.Solve(resolved_rhs, resolved_solution).IsOk()) | EXPECT_LE( NormalizedResidual(resolved_matrix, resolved_solution, resolved_rhs), 1.0e-10) | EXPECT_LE(RelativeError(resolved_solution, resolved_expected), 1.0e-9) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs, solution).IsOk()) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) | ASSERT_TRUE(resolved_solver.Factorize(resolved_matrix).IsOk()) | ASSERT_TRUE(resolved_solver.Solve(resolved_rhs, resolved_solution).IsOk()) | EXPECT_LE( NormalizedResidual(resolved_matrix, resolved_solution, resolved_rhs), 1.0e-10) | EXPECT_LE(RelativeError(resolved_solution, resolved_expected), 1.0e-9) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) -Dev tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp support@1-91 helper/oracle/fixture/include/static assertion 구간: MakeDenseCsr, MakeVector, for, NormalizedResidual, if, RelativeError, ExpectStructuredSolverFailure tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 241634dd09f31bc235ee1bee6826c8fb24128d7490f926a518d4f2b220c92164 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/solvers/linear/tangent_solver_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/unit/solvers/linear/tangent_solver_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c457f80368b1e01bab7e7d177c0bda8283d0590e7150e064c270f86c9a95e858 c457f80368b1e01bab7e7d177c0bda8283d0590e7150e064c270f86c9a95e858 해당 없음 해당 없음 -Dev tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SolvesNonsymmetricKnownCorrection TangentSolver.SolvesNonsymmetricKnownCorrection; assertion 4개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SolvesNonsymmetricKnownCorrection 유지 원문 검사 body 및 assertion 동일. 838690231b74c1b272bda475dea0234187495f7e8c045ee449f04ae3ac0d1233 838690231b74c1b272bda475dea0234187495f7e8c045ee449f04ae3ac0d1233 ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(rhs, correction).IsOk()) | EXPECT_NEAR(correction[0U], 1.0, 1.0e-14) | EXPECT_NEAR(correction[1U], 2.0, 1.0e-14) ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(rhs, correction).IsOk()) | EXPECT_NEAR(correction[0U], 1.0, 1.0e-14) | EXPECT_NEAR(correction[1U], 2.0, 1.0e-14) -Dev tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SolvesTrivialZeroEquationSystem TangentSolver.SolvesTrivialZeroEquationSystem; assertion 3개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SolvesTrivialZeroEquationSystem 유지 원문 검사 body 및 assertion 동일. 271ea5671ba0adda4eab6af4646dda04cf09d9a77c2f0857c1a1216458a9d1d1 271ea5671ba0adda4eab6af4646dda04cf09d9a77c2f0857c1a1216458a9d1d1 ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | EXPECT_TRUE(solver.SolveCorrection(fesa::Vector{0U}, correction).IsOk()) | EXPECT_EQ(correction.Size(), 0U) ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | EXPECT_TRUE(solver.SolveCorrection(fesa::Vector{0U}, correction).IsOk()) | EXPECT_EQ(correction.Size(), 0U) -Dev tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.RejectsNonfiniteInputsWithoutModifyingCorrection TangentSolver.RejectsNonfiniteInputsWithoutModifyingCorrection; assertion 6개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.RejectsNonfiniteInputsWithoutModifyingCorrection 유지 원문 검사 body 및 assertion 동일. 11e41d7e1b0f4715dfddd024f947c926155d20ba0b4fa3d6734756afe8603bd6 11e41d7e1b0f4715dfddd024f947c926155d20ba0b4fa3d6734756afe8603bd6 "EXPECT_FALSE(nonfinite_matrix.HasValue()) | EXPECT_EQ(nonfinite_matrix.GetStatus().Diagnostics().front().code, ""nonfinite-sparse-value"") | ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(2U, {2.0, 1.0, 0.0, 3.0})) .IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""nonfinite-solver-rhs"") | EXPECT_DOUBLE_EQ(correction[0U], 17.0) | EXPECT_DOUBLE_EQ(correction[1U], -4.0)" "EXPECT_FALSE(nonfinite_matrix.HasValue()) | EXPECT_EQ(nonfinite_matrix.GetStatus().Diagnostics().front().code, ""nonfinite-sparse-value"") | ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(2U, {2.0, 1.0, 0.0, 3.0})) .IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""nonfinite-solver-rhs"") | EXPECT_DOUBLE_EQ(correction[0U], 17.0) | EXPECT_DOUBLE_EQ(correction[1U], -4.0)" -Dev tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.ReportsSingularFactorizationDeterministically TangentSolver.ReportsSingularFactorizationDeterministically; assertion 3개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.ReportsSingularFactorizationDeterministically 유지 원문 검사 body 및 assertion 동일. 54a59242a6753c254e6f1e9b3b87783b30b47329241c5dda5d053a57eae851bc 54a59242a6753c254e6f1e9b3b87783b30b47329241c5dda5d053a57eae851bc "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""pardiso-perturbed-pivot"") | EXPECT_EQ(status.Diagnostics().front().entity_identity, ""phase=22"")" "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""pardiso-perturbed-pivot"") | EXPECT_EQ(status.Diagnostics().front().entity_identity, ""phase=22"")" -Dev tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.RejectsSolveBeforeSuccessfulFactorization TangentSolver.RejectsSolveBeforeSuccessfulFactorization; assertion 3개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.RejectsSolveBeforeSuccessfulFactorization 유지 원문 검사 body 및 assertion 동일. eb2b17bad95e253fe1e9c3a8aed6f6fbf92e2921643507f4a11862c36c28d0d7 eb2b17bad95e253fe1e9c3a8aed6f6fbf92e2921643507f4a11862c36c28d0d7 "EXPECT_EQ(status.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(correction[0U], 23.0) | EXPECT_DOUBLE_EQ(correction[1U], -9.0)" "EXPECT_EQ(status.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(correction[0U], 23.0) | EXPECT_DOUBLE_EQ(correction[1U], -9.0)" -Dev tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.ReusesRhsButFreshValuesAndFailureCannotReuseStaleState TangentSolver.ReusesRhsButFreshValuesAndFailureCannotReuseStaleState; assertion 24개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.ReusesRhsButFreshValuesAndFailureCannotReuseStaleState 유지 원문 검사 body 및 assertion 동일. 0620a93cebd9927d8dafb60fa155a868c1f7bda81def578bbe163deeca63327f 0620a93cebd9927d8dafb60fa155a868c1f7bda81def578bbe163deeca63327f "ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(2U, {2.0, 1.0, 0.0, 3.0})) .IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({4.0 * scale, 6.0 * scale}), correction).IsOk()) | EXPECT_NEAR(correction[0U], scale, 1.0e-14) | EXPECT_NEAR(correction[1U], 2.0 * scale, 1.0e-14) | EXPECT_FALSE(solver.SolveCorrection(bad_rhs, correction).IsOk()) | EXPECT_DOUBLE_EQ(correction[0U], 17) | EXPECT_DOUBLE_EQ(correction[1U], -4) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({4, 6}), correction).IsOk()) | ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(2U, {4, 0, 1, 2})).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({4, 5}), correction).IsOk()) | EXPECT_NEAR(correction[0U], 1, 1.0e-14) | EXPECT_NEAR(correction[1U], 2, 1.0e-14) | ASSERT_TRUE(diagonal.HasValue()) | ASSERT_TRUE(solver.FactorizeFresh(diagonal.Value()).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({10, -7}), correction).IsOk()) | EXPECT_NEAR(correction[0U], 2, 1.0e-14) | EXPECT_NEAR(correction[1U], -1, 1.0e-14) | EXPECT_FALSE(solver.FactorizeFresh(MakeDenseCsr(2U, {0, 0, 0, 0})).IsOk()) | ASSERT_FALSE(stale.IsOk()) | EXPECT_EQ(stale.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(correction[0U], 19) | EXPECT_DOUBLE_EQ(correction[1U], -8) | ASSERT_TRUE(solver.FactorizeFresh(diagonal.Value()).IsOk()) | EXPECT_TRUE(solver.SolveCorrection(MakeVector({10, -7}), correction).IsOk())" "ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(2U, {2.0, 1.0, 0.0, 3.0})) .IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({4.0 * scale, 6.0 * scale}), correction).IsOk()) | EXPECT_NEAR(correction[0U], scale, 1.0e-14) | EXPECT_NEAR(correction[1U], 2.0 * scale, 1.0e-14) | EXPECT_FALSE(solver.SolveCorrection(bad_rhs, correction).IsOk()) | EXPECT_DOUBLE_EQ(correction[0U], 17) | EXPECT_DOUBLE_EQ(correction[1U], -4) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({4, 6}), correction).IsOk()) | ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(2U, {4, 0, 1, 2})).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({4, 5}), correction).IsOk()) | EXPECT_NEAR(correction[0U], 1, 1.0e-14) | EXPECT_NEAR(correction[1U], 2, 1.0e-14) | ASSERT_TRUE(diagonal.HasValue()) | ASSERT_TRUE(solver.FactorizeFresh(diagonal.Value()).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({10, -7}), correction).IsOk()) | EXPECT_NEAR(correction[0U], 2, 1.0e-14) | EXPECT_NEAR(correction[1U], -1, 1.0e-14) | EXPECT_FALSE(solver.FactorizeFresh(MakeDenseCsr(2U, {0, 0, 0, 0})).IsOk()) | ASSERT_FALSE(stale.IsOk()) | EXPECT_EQ(stale.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(correction[0U], 19) | EXPECT_DOUBLE_EQ(correction[1U], -8) | ASSERT_TRUE(solver.FactorizeFresh(diagonal.Value()).IsOk()) | EXPECT_TRUE(solver.SolveCorrection(MakeVector({10, -7}), correction).IsOk())" -Dev tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SingleEquationScopeRestoresTlsAcrossFreshFailureAndReuse TangentSolver.SingleEquationScopeRestoresTlsAcrossFreshFailureAndReuse; assertion 2개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SingleEquationScopeRestoresTlsAcrossFreshFailureAndReuse 유지 원문 검사 body 및 assertion 동일. ba2b6cb4441315add1a892267c7ebb3fef2cc4b57acd19c3f44a83e3901ff683 ba2b6cb4441315add1a892267c7ebb3fef2cc4b57acd19c3f44a83e3901ff683 EXPECT_TRUE(first.get()) | EXPECT_TRUE(second.get()) EXPECT_TRUE(first.get()) | EXPECT_TRUE(second.get()) -Dev tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SingleEquationScopeTransitionsBetweenRetainedSizes TangentSolver.SingleEquationScopeTransitionsBetweenRetainedSizes; assertion 14개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SingleEquationScopeTransitionsBetweenRetainedSizes 유지 원문 검사 body 및 assertion 동일. 019a17f836a3e89734270637cb77ef60079ed664964b391a6dbcaf67f8679d0d 019a17f836a3e89734270637cb77ef60079ed664964b391a6dbcaf67f8679d0d ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(1U, {2.0})).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({4.0}), single).IsOk()) | EXPECT_DOUBLE_EQ(single[0U], 2.0) | ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(2U, {2, 1, 0, 3})).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({6, 6}), pair).IsOk()) | EXPECT_NEAR(pair[0U], 2, 1e-14) | EXPECT_NEAR(pair[1U], 2, 1e-14) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(1U, {4.0})).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({8.0}), single).IsOk()) | EXPECT_DOUBLE_EQ(single[0U], 2.0) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(1U, {2.0})).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({4.0}), single).IsOk()) | EXPECT_DOUBLE_EQ(single[0U], 2.0) | ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(2U, {2, 1, 0, 3})).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({6, 6}), pair).IsOk()) | EXPECT_NEAR(pair[0U], 2, 1e-14) | EXPECT_NEAR(pair[1U], 2, 1e-14) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(1U, {4.0})).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({8.0}), single).IsOk()) | EXPECT_DOUBLE_EQ(single[0U], 2.0) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) -Dev tests/unit/solvers/linear/tangent_solver_test.cpp support@1-59 helper/oracle/fixture/include/static assertion 구간: MakeDenseCsr, MakeVector, for, ExpectSolverFailure tests/unit/solvers/linear/tangent_solver_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b1a9077360df14d9d4b53850333227e49660e5d327b9e4d103c8dec17f7548f8 최종 파일 SHA 참조 해당 없음 해당 없음 -Dev tests/unit/solvers/linear/tangent_solver_test.cpp support@233-234 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/solvers/linear/tangent_solver_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/AGENTS.md file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/AGENTS.md file 이관 Dev의 현재 검사 정책을 유지한다. Refactor의 과거 실행별 지시는 이번 승인 범위를 대체하지 않는다. afbc4a6eb7bfc01c099c4b15c5907a2782043a63a2de03e37a84159e5f4acdb0 c2413bbcde33dad56ffd227536b79b9b9c707a5eb4a7874f0bc840824c4abfd5 해당 없음 해당 없음 -Refactor tests/AGENTS.md support@1-19 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/AGENTS.md file-support 이관 Dev의 현재 검사 정책을 유지한다. Refactor의 과거 실행별 지시는 이번 승인 범위를 대체하지 않는다. d370a6fb7284dde3c41c1d5b117abccf69dfb790823ef224b52c855307512bff 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/CMakeLists.txt file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/CMakeLists.txt file 유지 Refactor capability source 등록을 유지한다. 실제 native/CMake source 목록이 세 target 모두 일치하므로 본문 복원에 따른 translation unit 추가는 없다. 8c8c0b8343ada0c1ea259c017a5332bfa0e0a313adbfaabe84406327bc9dc8c9 8c8c0b8343ada0c1ea259c017a5332bfa0e0a313adbfaabe84406327bc9dc8c9 해당 없음 해당 없음 -Refactor tests/CMakeLists.txt support@1-258 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/CMakeLists.txt file-support 유지 Refactor capability source 등록을 유지한다. 실제 native/CMake source 목록이 세 target 모두 일치하므로 본문 복원에 따른 translation unit 추가는 없다. 570b4fa84b4b84fa0460427565d6de7ac835cca29f1e98c10cc4566b838ce5b8 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/linear_frequency_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/integration/analysis/linear_frequency_procedure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 73da42092ea16d533f8a1725f6e925338fb4d8ff6901c5a462004aef3cacc770 73da42092ea16d533f8a1725f6e925338fb4d8ff6901c5a462004aef3cacc770 해당 없음 해당 없음 -Refactor tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.RejectsDomainWithoutFrequencyStep LinearFrequencyProcedureExecutor.RejectsDomainWithoutFrequencyStep; assertion 5개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.RejectsDomainWithoutFrequencyStep 유지 원문 검사 body 및 assertion 동일. e35f98ccd120a34e369c9100a4b68bc5f2bd57a79f0516fe8aace490a6157623 e35f98ccd120a34e369c9100a4b68bc5f2bd57a79f0516fe8aace490a6157623 "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-frequency-procedure"")" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-frequency-procedure"")" -Refactor tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.MatchesPartialBoundaryPencilAndFullResidualCovariance LinearFrequencyProcedureExecutor.MatchesPartialBoundaryPencilAndFullResidualCovariance; assertion 25개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.MatchesPartialBoundaryPencilAndFullResidualCovariance 유지 원문 검사 body 및 assertion 동일. 8112af69b3ed3bf699174664e3f50bc7fe4927aa4d8a1e3841e3c840ed29bbbe 8112af69b3ed3bf699174664e3f50bc7fe4927aa4d8a1e3841e3c840ed29bbbe ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(state.modes.size(), 1U) | EXPECT_EQ(state.mass_null_dimension, 0U) | EXPECT_EQ(state.finite_dimension, 1U) | EXPECT_NEAR(state.modes[0].eigenvalue, 10369.0 / 450.0, 1e-10) | EXPECT_EQ(state.modes[0].classification, 1U) | EXPECT_EQ(state.vectors.Rows(), 1U) | EXPECT_EQ(state.vectors.Columns(), 24U) | EXPECT_NEAR(state.vectors(0U, 5U), std::sqrt(50.0 / 3.0), 1e-12) | EXPECT_EQ(state.vectors(0U, dof), 0.0) | ASSERT_EQ(state.eigenpair_checks.size(), 1U) | EXPECT_NEAR(state.eigenpair_checks[0].modal_mass, 1.0, 1e-12) | EXPECT_LE(state.eigenpair_checks[0].eta_r, 1e-10) | EXPECT_LE(state.eigenpair_checks[0].eta_energy, 1e-10) | EXPECT_LE(state.eigenpair_checks[0].rho_b, 1e-10) | EXPECT_EQ(state.backend.eigenvectors.Rows(), 0U) | ASSERT_TRUE(static_domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_NEAR(kff, 10369.0 / 7500.0, 1e-12) | EXPECT_NEAR(displacement[5U], 7500.0 / 10369.0, 1e-12) | EXPECT_NEAR(residual[5U], 0.0, 1e-12) | EXPECT_NEAR(residual[i], expected, 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(state.modes.size(), 1U) | EXPECT_EQ(state.mass_null_dimension, 0U) | EXPECT_EQ(state.finite_dimension, 1U) | EXPECT_NEAR(state.modes[0].eigenvalue, 10369.0 / 450.0, 1e-10) | EXPECT_EQ(state.modes[0].classification, 1U) | EXPECT_EQ(state.vectors.Rows(), 1U) | EXPECT_EQ(state.vectors.Columns(), 24U) | EXPECT_NEAR(state.vectors(0U, 5U), std::sqrt(50.0 / 3.0), 1e-12) | EXPECT_EQ(state.vectors(0U, dof), 0.0) | ASSERT_EQ(state.eigenpair_checks.size(), 1U) | EXPECT_NEAR(state.eigenpair_checks[0].modal_mass, 1.0, 1e-12) | EXPECT_LE(state.eigenpair_checks[0].eta_r, 1e-10) | EXPECT_LE(state.eigenpair_checks[0].eta_energy, 1e-10) | EXPECT_LE(state.eigenpair_checks[0].rho_b, 1e-10) | EXPECT_EQ(state.backend.eigenvectors.Rows(), 0U) | ASSERT_TRUE(static_domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_NEAR(kff, 10369.0 / 7500.0, 1e-12) | EXPECT_NEAR(displacement[5U], 7500.0 / 10369.0, 1e-12) | EXPECT_NEAR(residual[5U], 0.0, 1e-12) | EXPECT_NEAR(residual[i], expected, 1e-12) -Refactor tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.PartialBoundaryStaticRejectsUnbalancedDrillingMoment LinearFrequencyProcedureExecutor.PartialBoundaryStaticRejectsUnbalancedDrillingMoment; assertion 3개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.PartialBoundaryStaticRejectsUnbalancedDrillingMoment 유지 원문 검사 body 및 assertion 동일. 3257ad730d16550e25ba4286cfa165f6b4e84d2a54d3cc6b5d8163feea05465d 3257ad730d16550e25ba4286cfa165f6b4e84d2a54d3cc6b5d8163feea05465d "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_NE(StatusText(result.GetStatus()) .find(""global-equilibrium-tolerance-failure""), std::string::npos)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_NE(StatusText(result.GetStatus()) .find(""global-equilibrium-tolerance-failure""), std::string::npos)" -Refactor tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.FreePanelRetainsSixRigidModesAndAllComputedEvidence LinearFrequencyProcedureExecutor.FreePanelRetainsSixRigidModesAndAllComputedEvidence; assertion 15개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.FreePanelRetainsSixRigidModesAndAllComputedEvidence 유지 원문 검사 body 및 assertion 동일. 9606266d6f08472c9d911615beddbfed51886ef04a943c708901bb30e245a992 9606266d6f08472c9d911615beddbfed51886ef04a943c708901bb30e245a992 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(state.mass_null_dimension, 4U) | EXPECT_EQ(state.finite_dimension, 20U) | ASSERT_EQ(state.modes.size(), 6U) | EXPECT_GE(state.eigenpair_checks.size(), 6U) | EXPECT_EQ(mode.classification, 0U) | EXPECT_EQ(mode.cluster_id, 1U) | EXPECT_LE(state.eta_gram, 1e-10) | EXPECT_LE(state.max_eta_orth, 1e-10) | EXPECT_LE(state.eta_mz, 1e-12) | EXPECT_LE(state.eta_kz, 1e-12) | EXPECT_LE(check.eta_r, 1e-10) | EXPECT_LE(check.eta_norm, 1e-10) | EXPECT_LE(check.eta_energy, 1e-10) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(state.mass_null_dimension, 4U) | EXPECT_EQ(state.finite_dimension, 20U) | ASSERT_EQ(state.modes.size(), 6U) | EXPECT_GE(state.eigenpair_checks.size(), 6U) | EXPECT_EQ(mode.classification, 0U) | EXPECT_EQ(mode.cluster_id, 1U) | EXPECT_LE(state.eta_gram, 1e-10) | EXPECT_LE(state.max_eta_orth, 1e-10) | EXPECT_LE(state.eta_mz, 1e-12) | EXPECT_LE(state.eta_kz, 1e-12) | EXPECT_LE(check.eta_r, 1e-10) | EXPECT_LE(check.eta_norm, 1e-10) | EXPECT_LE(check.eta_energy, 1e-10) -Refactor tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.ExcessRequestedModesFailsWithSourceContext LinearFrequencyProcedureExecutor.ExcessRequestedModesFailsWithSourceContext; assertion 6개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.ExcessRequestedModesFailsWithSourceContext 유지 원문 검사 body 및 assertion 동일. a384ea179cd4b72a4bedea2b8a465ff0e824a37858da50dfe0702d96c91b6c55 a384ea179cd4b72a4bedea2b8a465ff0e824a37858da50dfe0702d96c91b6c55 "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""insufficient-finite-modes"") | EXPECT_GT(result.GetStatus().Diagnostics()[0].location.line, 0U)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""insufficient-finite-modes"") | EXPECT_GT(result.GetStatus().Diagnostics()[0].location.line, 0U)" -Refactor tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.PreservesDensityAndPhysicalUnitScaling LinearFrequencyProcedureExecutor.PreservesDensityAndPhysicalUnitScaling; assertion 12개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.PreservesDensityAndPhysicalUnitScaling 유지 원문 검사 body 및 assertion 동일. 54d62ee92fd5f41120fda65ddaeb341ba1f3bd0390e7cdf03c81b5f13b9f4fcd 54d62ee92fd5f41120fda65ddaeb341ba1f3bd0390e7cdf03c81b5f13b9f4fcd ASSERT_TRUE(baseline_domain.HasValue()) | ASSERT_TRUE(dense_domain.HasValue()) | ASSERT_TRUE(units_domain.HasValue()) | ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(dense.HasValue()) | ASSERT_TRUE(units.HasValue()) | EXPECT_NEAR( dense.Value().modes[0].eigenvalue / baseline.Value().modes[0].eigenvalue, 0.25, 1e-12) | EXPECT_NEAR(dense.Value().vectors(0U, 5U) / baseline.Value().vectors(0U, 5U), 0.5, 1e-12) | EXPECT_NEAR( units.Value().modes[0].eigenvalue / baseline.Value().modes[0].eigenvalue, 1.0, 1e-12) | EXPECT_NEAR( units.Value().vectors(0U, 5U) * length / baseline.Value().vectors(0U, 5U), 1.0, 1e-12) | EXPECT_LE(units.Value().eigenpair_checks[0].eta_r, 1e-10) | EXPECT_LE(units.Value().eigenpair_checks[0].eta_energy, 1e-10) ASSERT_TRUE(baseline_domain.HasValue()) | ASSERT_TRUE(dense_domain.HasValue()) | ASSERT_TRUE(units_domain.HasValue()) | ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(dense.HasValue()) | ASSERT_TRUE(units.HasValue()) | EXPECT_NEAR( dense.Value().modes[0].eigenvalue / baseline.Value().modes[0].eigenvalue, 0.25, 1e-12) | EXPECT_NEAR(dense.Value().vectors(0U, 5U) / baseline.Value().vectors(0U, 5U), 0.5, 1e-12) | EXPECT_NEAR( units.Value().modes[0].eigenvalue / baseline.Value().modes[0].eigenvalue, 1.0, 1e-12) | EXPECT_NEAR( units.Value().vectors(0U, 5U) * length / baseline.Value().vectors(0U, 5U), 1.0, 1e-12) | EXPECT_LE(units.Value().eigenpair_checks[0].eta_r, 1e-10) | EXPECT_LE(units.Value().eigenpair_checks[0].eta_energy, 1e-10) -Refactor tests/integration/analysis/linear_frequency_procedure_test.cpp support@1-25 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_frequency_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a51e24264f3ae36759924761dd98817a3de835465648e49acff3d7c0b74e8f7c 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/linear_frequency_procedure_test.cpp support@42-124 helper/oracle/fixture/include/static assertion 구간: StatusText, PanelDomain, if tests/integration/analysis/linear_frequency_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d9beda2ab213d77168db3de7088b66badb8266554add0a1df0249a3f53e814b2 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/linear_frequency_procedure_test.cpp support@191-193 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_frequency_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d7ebb4e7a53ff4630e82b0c32bb66fd1bae66f119405d224a134d6256734b442 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/linear_static_analysis_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/integration/analysis/linear_static_analysis_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c796815b0cdc8b655da47ddab48bb3df2ef5d7334d949c9ede355e046b12294b c796815b0cdc8b655da47ddab48bb3df2ef5d7334d949c9ede355e046b12294b 해당 없음 해당 없음 -Refactor tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.FactorizesBeforeLoadAndSolvesWithoutRefactorization LinearStaticCli.FactorizesBeforeLoadAndSolvesWithoutRefactorization; assertion 5개 tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.FactorizesBeforeLoadAndSolvesWithoutRefactorization 유지 원문 검사 body 및 assertion 동일. 6da58cc645e25d2814d2622f68d964c8320625f00110b2e16ba19e5b1522ccc2 6da58cc645e25d2814d2622f68d964c8320625f00110b2e16ba19e5b1522ccc2 "ASSERT_TRUE(analysis->Run({input, output}).IsOk()) | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 1) | EXPECT_EQ(writer.WriteCalls(), 1) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize"", ""solver-solve"", ""writer-write""}))" "ASSERT_TRUE(analysis->Run({input, output}).IsOk()) | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 1) | EXPECT_EQ(writer.WriteCalls(), 1) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize"", ""solver-solve"", ""writer-write""}))" -Refactor tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.FactorizesBeforeRejectingAnInvalidLoad LinearStaticCli.FactorizesBeforeRejectingAnInvalidLoad; assertion 8개 tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.FactorizesBeforeRejectingAnInvalidLoad 유지 원문 검사 body 및 assertion 동일. 65404a724a1ea299f6ceec1870dfa2b75eff091a7e83809aa589613be7e4e2fc 65404a724a1ea299f6ceec1870dfa2b75eff091a7e83809aa589613be7e4e2fc "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""unsupported-drilling-load"") | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 0) | EXPECT_EQ(writer.WriteCalls(), 0) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize""}))" "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""unsupported-drilling-load"") | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 0) | EXPECT_EQ(writer.WriteCalls(), 0) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize""}))" -Refactor tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.RealPipelineHandlesAnalyticalAndNonzeroPrescription LinearStaticCli.RealPipelineHandlesAnalyticalAndNonzeroPrescription; assertion 17개 tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.RealPipelineHandlesAnalyticalAndNonzeroPrescription 유지 원문 검사 body 및 assertion 동일. 34f491015c713169674ef652f3e235e52cff78d9c55158b3dfa94614562c2a94 34f491015c713169674ef652f3e235e52cff78d9c55158b3dfa94614562c2a94 "ASSERT_TRUE(status.IsOk()) | EXPECT_EQ(writer.OutputPath(), output) | EXPECT_EQ(writer.NodeCount(), 2U) | EXPECT_TRUE(writer.Diagnostics().empty()) | ASSERT_EQ(state.Displacement().Size(), 12U) | EXPECT_EQ(state.Identity().step_name, ""Step-1"") | EXPECT_EQ(state.Identity().frame_index, 0U) | EXPECT_NEAR(state.Displacement()[0U], 0.1, 1.0e-12) | EXPECT_NEAR(state.Displacement()[6U], 0.2, 2.0e-10) | EXPECT_NEAR(state.ExternalForce()[6U], 10.0, 1.0e-12) | EXPECT_NEAR(state.InternalForce()[0U], -10.0, 1.0e-9) | EXPECT_NEAR(state.InternalForce()[6U], 10.0, 1.0e-9) | EXPECT_NEAR(state.Reaction()[0U], -10.0, 1.0e-9) | EXPECT_NEAR(state.Residual()[6U], 0.0, 1.0e-9) | EXPECT_EQ(state.EndpointResults().size(), 2U) | EXPECT_EQ(state.GaussResults().size(), 2U) | EXPECT_EQ(state.StressResults().size(), 2U)" "ASSERT_TRUE(status.IsOk()) | EXPECT_EQ(writer.OutputPath(), output) | EXPECT_EQ(writer.NodeCount(), 2U) | EXPECT_TRUE(writer.Diagnostics().empty()) | ASSERT_EQ(state.Displacement().Size(), 12U) | EXPECT_EQ(state.Identity().step_name, ""Step-1"") | EXPECT_EQ(state.Identity().frame_index, 0U) | EXPECT_NEAR(state.Displacement()[0U], 0.1, 1.0e-12) | EXPECT_NEAR(state.Displacement()[6U], 0.2, 2.0e-10) | EXPECT_NEAR(state.ExternalForce()[6U], 10.0, 1.0e-12) | EXPECT_NEAR(state.InternalForce()[0U], -10.0, 1.0e-9) | EXPECT_NEAR(state.InternalForce()[6U], 10.0, 1.0e-9) | EXPECT_NEAR(state.Reaction()[0U], -10.0, 1.0e-9) | EXPECT_NEAR(state.Residual()[6U], 0.0, 1.0e-9) | EXPECT_EQ(state.EndpointResults().size(), 2U) | EXPECT_EQ(state.GaussResults().size(), 2U) | EXPECT_EQ(state.StressResults().size(), 2U)" -Refactor tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.UsesExistingLifecycleAndExactlyOneFactorization Mitc4ShellCli.UsesExistingLifecycleAndExactlyOneFactorization; assertion 5개 tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.UsesExistingLifecycleAndExactlyOneFactorization 유지 원문 검사 body 및 assertion 동일. 1dea412548e1077c66d10536f0f8640b34a5b0eadc19bb0cebbf47878b4c0b9b 1dea412548e1077c66d10536f0f8640b34a5b0eadc19bb0cebbf47878b4c0b9b "ASSERT_TRUE(analysis->Run({input, output}).IsOk()) | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 1) | EXPECT_EQ(writer.WriteCalls(), 1) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize"", ""solver-solve"", ""writer-write""}))" "ASSERT_TRUE(analysis->Run({input, output}).IsOk()) | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 1) | EXPECT_EQ(writer.WriteCalls(), 1) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize"", ""solver-solve"", ""writer-write""}))" -Refactor tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.AppliesKfcForNonzeroPrescribedDisplacement Mitc4ShellCli.AppliesKfcForNonzeroPrescribedDisplacement; assertion 17개 tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.AppliesKfcForNonzeroPrescribedDisplacement 유지 원문 검사 body 및 assertion 동일. 221c877473ceb9bc29a9ba1386ab2485083b7474572a5ba936ae3b9524c1e15a 221c877473ceb9bc29a9ba1386ab2485083b7474572a5ba936ae3b9524c1e15a EXPECT_TRUE(status.IsOk()) | ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(solver.FactorizeCalls(), 1) | ASSERT_EQ(solver.SolveCalls(), 1) | ASSERT_EQ(solver.FactorizedDimension(), 1U) | ASSERT_EQ(solver.Rhs().size(), 1U) | EXPECT_NEAR(solver.ScalarStiffness(), 440.0 / 9.0, 1.0e-12) | EXPECT_NEAR(solver.Rhs()[0U], -4.0 / 9.0, 1.0e-12) | EXPECT_EQ(writer.OutputPath(), output) | EXPECT_EQ(writer.NodeCount(), 4U) | EXPECT_EQ(writer.ShellElementCount(), 1U) | 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) | EXPECT_EQ(state.ShellResults().size(), 4U) | EXPECT_GT(state.PhysicalStrainEnergy(), 0.0) EXPECT_TRUE(status.IsOk()) | ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(solver.FactorizeCalls(), 1) | ASSERT_EQ(solver.SolveCalls(), 1) | ASSERT_EQ(solver.FactorizedDimension(), 1U) | ASSERT_EQ(solver.Rhs().size(), 1U) | EXPECT_NEAR(solver.ScalarStiffness(), 440.0 / 9.0, 1.0e-12) | EXPECT_NEAR(solver.Rhs()[0U], -4.0 / 9.0, 1.0e-12) | EXPECT_EQ(writer.OutputPath(), output) | EXPECT_EQ(writer.NodeCount(), 4U) | EXPECT_EQ(writer.ShellElementCount(), 1U) | 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) | EXPECT_EQ(state.ShellResults().size(), 4U) | EXPECT_GT(state.PhysicalStrainEnergy(), 0.0) -Refactor tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.RejectsSingularAndAcceptsZeroByZeroFreeSystem Mitc4ShellCli.RejectsSingularAndAcceptsZeroByZeroFreeSystem; assertion 9개 tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.RejectsSingularAndAcceptsZeroByZeroFreeSystem 유지 원문 검사 body 및 assertion 동일. 9bc841e0fc20cccf0cec07e025f03be672a5123d4c9fa5fcf23f9d0072fd34d6 9bc841e0fc20cccf0cec07e025f03be672a5123d4c9fa5fcf23f9d0072fd34d6 ASSERT_FALSE(singular.IsOk()) | EXPECT_EQ(singular.Category(), fesa::FailureCategory::kSolver) | EXPECT_EQ(singular_writer.WriteCalls(), 0) | ASSERT_TRUE(constrained.IsOk()) | EXPECT_EQ(constrained_solver.FactorizeCalls(), 1) | EXPECT_EQ(constrained_solver.FactorizedDimension(), 0U) | EXPECT_EQ(constrained_solver.SolveCalls(), 1) | EXPECT_TRUE(constrained_solver.Rhs().empty()) | EXPECT_EQ(constrained_writer.State().ShellResults().size(), 4U) ASSERT_FALSE(singular.IsOk()) | EXPECT_EQ(singular.Category(), fesa::FailureCategory::kSolver) | EXPECT_EQ(singular_writer.WriteCalls(), 0) | ASSERT_TRUE(constrained.IsOk()) | EXPECT_EQ(constrained_solver.FactorizeCalls(), 1) | EXPECT_EQ(constrained_solver.FactorizedDimension(), 0U) | EXPECT_EQ(constrained_solver.SolveCalls(), 1) | EXPECT_TRUE(constrained_solver.Rhs().empty()) | EXPECT_EQ(constrained_writer.State().ShellResults().size(), 4U) -Refactor tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.DoesNotWriteAnInvalidRecoveryCandidate Mitc4ShellCli.DoesNotWriteAnInvalidRecoveryCandidate; assertion 6개 tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.DoesNotWriteAnInvalidRecoveryCandidate 유지 원문 검사 body 및 assertion 동일. 8c9ed32ac29d2ce92de257c1fe16ae692ff037e47ae1e267ceb47d2e14fb3999 8c9ed32ac29d2ce92de257c1fe16ae692ff037e47ae1e267ceb47d2e14fb3999 "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(adapter_events.empty())" "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(adapter_events.empty())" -Refactor tests/integration/analysis/linear_static_analysis_test.cpp support@1-306 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, WriteText, AxialDeck, AllConstrainedShellDeck, PrescribedShellDeck, SpyLinearSolver, RecordingMklSolver, NonfiniteLinearSolver, SpyResultsWriter, CapturingResultsWriter, State tests/integration/analysis/linear_static_analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 09f71dbb33b22661eb43b04ddd7730f00b09cf63202093cb5008f37fe51a59f2 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/linear_static_analysis_test.cpp support@388-389 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_static_analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 36bbca6d939f00341c98ba573a4fdc3cfc85b6ef660852c5b0a862bfcfc0fd6c 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/linear_static_analysis_test.cpp support@411-412 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_static_analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 58066e545facf79db27e598db7e91f24ed93b6771efa3ca779ecfe4df76a7344 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/linear_static_analysis_test.cpp support@449-450 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_static_analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. dd0e363915792cde8bf2d8793ddaec5a8c40204888921d46f70f1f507387ac4a 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/linear_static_analysis_test.cpp support@485-486 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_static_analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 83bce9b68552044428c9e22ca488475bf399b515887403c179e0f49d9230a028 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/nonlinear_static_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/integration/analysis/nonlinear_static_procedure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 88175e6ca8c6905e7706f40141e85676d7ce3c1763b49e2ebfb7beecd6d9feab 88175e6ca8c6905e7706f40141e85676d7ce3c1763b49e2ebfb7beecd6d9feab 해당 없음 해당 없음 -Refactor tests/integration/analysis/nonlinear_static_procedure_test.cpp NonlinearStaticProcedure.AllConstrainedNlgeomRunWritesSchemaV1AfterAcceptedFrames NonlinearStaticProcedure.AllConstrainedNlgeomRunWritesSchemaV1AfterAcceptedFrames; assertion 6개 tests/integration/analysis/nonlinear_static_procedure_test.cpp NonlinearStaticProcedure.AllConstrainedNlgeomRunWritesSchemaV1AfterAcceptedFrames 유지 원문 검사 body 및 assertion 동일. f26bd90fa30e1fa68296b58bf1a76cc5630c88cda15c0ef729d651d3395c74ec f26bd90fa30e1fa68296b58bf1a76cc5630c88cda15c0ef729d651d3395c74ec "ASSERT_EQ(exit_code, 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(metadata, 0) | EXPECT_EQ(ReadStringAttribute(metadata, ""feature_id""), ""nonlinear-static-newton-raphson"") | EXPECT_GT(H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0)" "ASSERT_EQ(exit_code, 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(metadata, 0) | EXPECT_EQ(ReadStringAttribute(metadata, ""feature_id""), ""nonlinear-static-newton-raphson"") | EXPECT_GT(H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0)" -Refactor tests/integration/analysis/nonlinear_static_procedure_test.cpp NonlinearStaticProcedure.NonzeroPrescribedMotionWritesCurrentArmSpatialAppliedPlusReactionBalance NonlinearStaticProcedure.NonzeroPrescribedMotionWritesCurrentArmSpatialAppliedPlusReactionBalance; assertion 4개 tests/integration/analysis/nonlinear_static_procedure_test.cpp NonlinearStaticProcedure.NonzeroPrescribedMotionWritesCurrentArmSpatialAppliedPlusReactionBalance 유지 원문 검사 body 및 assertion 동일. 9ff42852bb00d02f437a4da95165fdf5d26e6b838001a0d5ab14a85a04317640 9ff42852bb00d02f437a4da95165fdf5d26e6b838001a0d5ab14a85a04317640 ASSERT_EQ(exit_code, 0) | ASSERT_GE(dataset, 0) | ASSERT_GE(H5Dread(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, actual.data()), 0) | EXPECT_NEAR(actual[component], expected[component], 1.0e-10) ASSERT_EQ(exit_code, 0) | ASSERT_GE(dataset, 0) | ASSERT_GE(H5Dread(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, actual.data()), 0) | EXPECT_NEAR(actual[component], expected[component], 1.0e-10) -Refactor tests/integration/analysis/nonlinear_static_procedure_test.cpp support@1-291 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, WriteText, AllConstrainedNonlinearShellDeck, NonzeroPrescribedNonlinearShellDeck, Hdf5File, ReadStringAttribute, ReadNodalDataset, ReadConstraintMask, SpatialMoment, ReconstructGlobalBalance tests/integration/analysis/nonlinear_static_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eb91f236855802e13777ec66a775468f3b978d2a12cd33882b5eae574242a0ca 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/nonlinear_static_procedure_test.cpp support@315-316 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/nonlinear_static_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 185679e57938f51bc52ac8004de60266decc8599baf2c9e6aac91a3cec7811be 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/nonlinear_static_procedure_test.cpp support@344-345 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/nonlinear_static_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/shell_surface_pressure_linear_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f160a13c739276bb27b6b769f4b5d7fc53ab6bbe0e4917b1388aa171313f834e f160a13c739276bb27b6b769f4b5d7fc53ab6bbe0e4917b1388aa171313f834e 해당 없음 해당 없음 -Refactor tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.UsesReferenceNormalAndAreaAfterPrescribedDisplacement LinearShellSurfacePressure.UsesReferenceNormalAndAreaAfterPrescribedDisplacement; assertion 2개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.UsesReferenceNormalAndAreaAfterPrescribedDisplacement 유지 원문 검사 body 및 assertion 동일. e721439d9254d983e65489ab2bbc4fb02e07d31658fc561f5401bfbd83abaa10 e721439d9254d983e65489ab2bbc4fb02e07d31658fc561f5401bfbd83abaa10 EXPECT_DOUBLE_EQ(state.Displacement()[8U], 5.0) | EXPECT_EQ(SumTranslation(state.ExternalForce()), (std::array{0.0, 0.0, -4.0})) EXPECT_DOUBLE_EQ(state.Displacement()[8U], 5.0) | EXPECT_EQ(SumTranslation(state.ExternalForce()), (std::array{0.0, 0.0, -4.0})) -Refactor tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.AssemblesBeforeProjectionAndIncludesConstrainedReaction LinearShellSurfacePressure.AssemblesBeforeProjectionAndIncludesConstrainedReaction; assertion 2개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.AssemblesBeforeProjectionAndIncludesConstrainedReaction 유지 원문 검사 body 및 assertion 동일. ba222e9848a5e378bcf9c71a3c33243ac8771e3fac0c5822851e2102ed967c4d ba222e9848a5e378bcf9c71a3c33243ac8771e3fac0c5822851e2102ed967c4d EXPECT_EQ(SumTranslation(state.ExternalForce()), (std::array{0.0, 0.0, -4.0})) | EXPECT_EQ(SumTranslation(state.Reaction()), (std::array{0.0, 0.0, 4.0})) EXPECT_EQ(SumTranslation(state.ExternalForce()), (std::array{0.0, 0.0, -4.0})) | EXPECT_EQ(SumTranslation(state.Reaction()), (std::array{0.0, 0.0, 4.0})) -Refactor tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.SatisfiesFreeResidualGlobalResultantAndMoment LinearShellSurfacePressure.SatisfiesFreeResidualGlobalResultantAndMoment; assertion 2개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.SatisfiesFreeResidualGlobalResultantAndMoment 유지 원문 검사 body 및 assertion 동일. 171514cf20d839500b5919fd98671a3c0f805d8552929fcc111886400eb35cb3 171514cf20d839500b5919fd98671a3c0f805d8552929fcc111886400eb35cb3 EXPECT_NEAR(value, 0.0, 1.0e-8) | EXPECT_NEAR(state.VerificationMetrics()[0U], 0.0, 1.0e-10) EXPECT_NEAR(value, 0.0, 1.0e-8) | EXPECT_NEAR(state.VerificationMetrics()[0U], 0.0, 1.0e-10) -Refactor tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.PreservesS4S4rMeshAndCyclicOrderInvariance LinearShellSurfacePressure.PreservesS4S4rMeshAndCyclicOrderInvariance; assertion 6개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.PreservesS4S4rMeshAndCyclicOrderInvariance 유지 원문 검사 body 및 assertion 동일. 1439f391357b0fe3f6dd44f5b7ce79f74d7ed2df71d6eb5a3b1f4c7081cf4237 1439f391357b0fe3f6dd44f5b7ce79f74d7ed2df71d6eb5a3b1f4c7081cf4237 ASSERT_EQ(s4.ExternalForce().Size(), s4r.ExternalForce().Size()) | ASSERT_EQ(s4.ExternalForce().Size(), cyclic.ExternalForce().Size()) | EXPECT_DOUBLE_EQ(s4.ExternalForce()[index], s4r.ExternalForce()[index]) | EXPECT_DOUBLE_EQ(s4.ExternalForce()[index], cyclic.ExternalForce()[index]) | EXPECT_DOUBLE_EQ(s4.Reaction()[index], s4r.Reaction()[index]) | EXPECT_DOUBLE_EQ(s4.Reaction()[index], cyclic.Reaction()[index]) ASSERT_EQ(s4.ExternalForce().Size(), s4r.ExternalForce().Size()) | ASSERT_EQ(s4.ExternalForce().Size(), cyclic.ExternalForce().Size()) | EXPECT_DOUBLE_EQ(s4.ExternalForce()[index], s4r.ExternalForce()[index]) | EXPECT_DOUBLE_EQ(s4.ExternalForce()[index], cyclic.ExternalForce()[index]) | EXPECT_DOUBLE_EQ(s4.Reaction()[index], s4r.Reaction()[index]) | EXPECT_DOUBLE_EQ(s4.Reaction()[index], cyclic.Reaction()[index]) -Refactor tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.WritesSchemaZeroWithoutPressureDataset LinearShellSurfacePressure.WritesSchemaZeroWithoutPressureDataset; assertion 12개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.WritesSchemaZeroWithoutPressureDataset 유지 원문 검사 body 및 assertion 동일. a1753dcd30b46c5386bcb0198661ae6982efcbbce8c4b8deb2ab12729c7cd5c0 a1753dcd30b46c5386bcb0198661ae6982efcbbce8c4b8deb2ab12729c7cd5c0 "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | ASSERT_GE(metadata, 0) | ASSERT_GE(schema, 0) | ASSERT_GE(H5Aread(schema, H5T_NATIVE_UINT64, &schema_version), 0) | EXPECT_EQ(schema_version, 0U) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Aclose(schema), 0) | EXPECT_GE(H5Gclose(metadata), 0) | EXPECT_GE(H5Fclose(file), 0)" "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | ASSERT_GE(metadata, 0) | ASSERT_GE(schema, 0) | ASSERT_GE(H5Aread(schema, H5T_NATIVE_UINT64, &schema_version), 0) | EXPECT_EQ(schema_version, 0U) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Aclose(schema), 0) | EXPECT_GE(H5Gclose(metadata), 0) | EXPECT_GE(H5Fclose(file), 0)" -Refactor tests/integration/analysis/shell_surface_pressure_linear_test.cpp support@1-176 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, WriteText, ShellDeck, CapturingResultsWriter, State, RunLinear, SumTranslation tests/integration/analysis/shell_surface_pressure_linear_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e57c8ba9f74968a8c7ca06c327d4bae2312eb212b552414c2365975b785c1ef3 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 10개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 76f0d621c519f1ca1cb68fafd700bca52c94c69ac975a274eac995298ff77df3 76f0d621c519f1ca1cb68fafd700bca52c94c69ac975a274eac995298ff77df3 해당 없음 해당 없음 -Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.AssemblesFollowerForceFromCurrentTrialGeometry NonlinearShellSurfacePressure.AssemblesFollowerForceFromCurrentTrialGeometry; assertion 1개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.AssemblesFollowerForceFromCurrentTrialGeometry 유지 원문 검사 body 및 assertion 동일. 275b59b0a99ff5bcb4936eac0dd4373eb3fb04e88d56a47ff1aff8a27b2c86f9 275b59b0a99ff5bcb4936eac0dd4373eb3fb04e88d56a47ff1aff8a27b2c86f9 EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) -Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.FormsResidualAndTangentWithApprovedExternalSigns NonlinearShellSurfacePressure.FormsResidualAndTangentWithApprovedExternalSigns; assertion 2개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.FormsResidualAndTangentWithApprovedExternalSigns 유지 원문 검사 body 및 assertion 동일. 0a6136e7ba03b60316d311f5f6b42f16252978acda71b7d0b56f16eb12b209ba 0a6136e7ba03b60316d311f5f6b42f16252978acda71b7d0b56f16eb12b209ba EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_NEAR(SumTranslation(residual, 2U), 6.0, 1.0e-12) EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_NEAR(SumTranslation(residual, 2U), 6.0, 1.0e-12) -Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.AppliesIncrementFactorExactlyOnce NonlinearShellSurfacePressure.AppliesIncrementFactorExactlyOnce; assertion 1개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.AppliesIncrementFactorExactlyOnce 유지 원문 검사 body 및 assertion 동일. fd422711071867040b064e56df5df62d50a20128bb59e934095f3657cf85f95e fd422711071867040b064e56df5df62d50a20128bb59e934095f3657cf85f95e EXPECT_NEAR(SumTranslation(external, 2U), -0.42, 1.0e-12) EXPECT_NEAR(SumTranslation(external, 2U), -0.42, 1.0e-12) -Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.UsesFullUnsymmetricTangentSolverPath NonlinearShellSurfacePressure.UsesFullUnsymmetricTangentSolverPath; assertion 7개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.UsesFullUnsymmetricTangentSolverPath 유지 원문 검사 body 및 assertion 동일. 63a34f032cb16dd83f579b4dd4b484e3c326615ba25fa1133eee16013843c11f 63a34f032cb16dd83f579b4dd4b484e3c326615ba25fa1133eee16013843c11f EXPECT_NE(SumTranslation(external, 2U), 0.0) | EXPECT_NE(SumTranslation(residual, 2U), 0.0) | ASSERT_TRUE(central.HasValue()) | ASSERT_TRUE(forward.HasValue()) | ASSERT_TRUE(backward.HasValue()) | EXPECT_NEAR(finite_difference, central.Value().external_tangent[row * 24U + 12U], 1.0e-8) | EXPECT_TRUE(has_antisymmetric_entry) EXPECT_NE(SumTranslation(external, 2U), 0.0) | EXPECT_NE(SumTranslation(residual, 2U), 0.0) | ASSERT_TRUE(central.HasValue()) | ASSERT_TRUE(forward.HasValue()) | ASSERT_TRUE(backward.HasValue()) | EXPECT_NEAR(finite_difference, central.Value().external_tangent[row * 24U + 12U], 1.0e-8) | EXPECT_TRUE(has_antisymmetric_entry) -Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.ConvergesOpenPatchAndPreservesAntisymmetricEvidence NonlinearShellSurfacePressure.ConvergesOpenPatchAndPreservesAntisymmetricEvidence; assertion 2개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.ConvergesOpenPatchAndPreservesAntisymmetricEvidence 유지 원문 검사 body 및 assertion 동일. 04b9fe95ba4947d608fc9a7ec79b1740e70ecfbbcd3a01e2e16606d5243818ae 04b9fe95ba4947d608fc9a7ec79b1740e70ecfbbcd3a01e2e16606d5243818ae "EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_GT(H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0)" "EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_GT(H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0)" -Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.SatisfiesAcceptedFreeResidualAndFactorOneGlobalBalance NonlinearShellSurfacePressure.SatisfiesAcceptedFreeResidualAndFactorOneGlobalBalance; assertion 1개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.SatisfiesAcceptedFreeResidualAndFactorOneGlobalBalance 유지 원문 검사 body 및 assertion 동일. 57b26b0b13a3b8aeb13983659e70fa74ee28ce08b9657ee48534d4357dec6986 57b26b0b13a3b8aeb13983659e70fa74ee28ce08b9657ee48534d4357dec6986 EXPECT_LE(MaximumAbs(equilibrium), 1.0e-8) EXPECT_LE(MaximumAbs(equilibrium), 1.0e-8) -Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.IsObjectiveUnderRigidMotionAndTracksCurrentArea NonlinearShellSurfacePressure.IsObjectiveUnderRigidMotionAndTracksCurrentArea; assertion 4개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.IsObjectiveUnderRigidMotionAndTracksCurrentArea 유지 원문 검사 body 및 assertion 동일. bf38184a7460af3225ecdfb1d17c748cb2827953f7ab20cb0d09aa512b765102 bf38184a7460af3225ecdfb1d17c748cb2827953f7ab20cb0d09aa512b765102 ASSERT_TRUE(contribution.HasValue()) | EXPECT_NEAR(force_x, 0.0, 1.0e-12) | EXPECT_NEAR(force_y, 4.0, 1.0e-12) | EXPECT_NEAR(force_z, 0.0, 1.0e-12) ASSERT_TRUE(contribution.HasValue()) | EXPECT_NEAR(force_x, 0.0, 1.0e-12) | EXPECT_NEAR(force_y, 4.0, 1.0e-12) | EXPECT_NEAR(force_z, 0.0, 1.0e-12) -Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.ReducesSerialAndParallelContributionsDeterministically NonlinearShellSurfacePressure.ReducesSerialAndParallelContributionsDeterministically; assertion 2개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.ReducesSerialAndParallelContributionsDeterministically 유지 원문 검사 body 및 assertion 동일. 7221071e8ff084a8b909b3820cf880025e76e8d17c003c07e58ce9bac6e812b5 7221071e8ff084a8b909b3820cf880025e76e8d17c003c07e58ce9bac6e812b5 EXPECT_EQ(first_force, second_force) | EXPECT_NE(SumTranslation(first_force, 2U), 0.0) EXPECT_EQ(first_force, second_force) | EXPECT_NE(SumTranslation(first_force, 2U), 0.0) -Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.InvalidTrialRollsBackCommittedFrameAndFinalOutput NonlinearShellSurfacePressure.InvalidTrialRollsBackCommittedFrameAndFinalOutput; assertion 2개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.InvalidTrialRollsBackCommittedFrameAndFinalOutput 유지 원문 검사 body 및 assertion 동일. 36e810eaf381a43605bffdffe6997ad85e7b0ed2e01de1c00989cbbb49d0f80d 36e810eaf381a43605bffdffe6997ad85e7b0ed2e01de1c00989cbbb49d0f80d EXPECT_NE(exit_code, 0) | EXPECT_EQ(ReadBytes(output), previous) EXPECT_NE(exit_code, 0) | EXPECT_EQ(ReadBytes(output), previous) -Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.WritesSchemaOneExternalInternalResidualReactionAndEquilibrium NonlinearShellSurfacePressure.WritesSchemaOneExternalInternalResidualReactionAndEquilibrium; assertion 3개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.WritesSchemaOneExternalInternalResidualReactionAndEquilibrium 유지 원문 검사 body 및 assertion 동일. 43eabc099c0167988e47483e5a56b5be6f7af1257dc4992ee64c812b925d6ad9 43eabc099c0167988e47483e5a56b5be6f7af1257dc4992ee64c812b925d6ad9 "EXPECT_GT(H5Lexists(file.Get(), (root + suffix).c_str(), H5P_DEFAULT), 0) | EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_EQ(H5Lexists(file.Get(), ""/surface_pressure"", H5P_DEFAULT), 0)" "EXPECT_GT(H5Lexists(file.Get(), (root + suffix).c_str(), H5P_DEFAULT), 0) | EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_EQ(H5Lexists(file.Get(), ""/surface_pressure"", H5P_DEFAULT), 0)" -Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp support@1-224 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, Hdf5File, WriteText, ReadBytes, NonlinearPressureDeck, ReadFrameDataset, ReadEquilibrium, SumTranslation, MaximumAbs, for, CurrentPressureInput, RunNonlinearPressure tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ef95b2da7f58bff98fb85e60df3206dec9935f7f1af799fca4fade510af8a9aa 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/thermal_gauss_oracle.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/integration/analysis/thermal_gauss_oracle.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d788dbffcaedabfd16337b9683fd30803efb69cee2e64da08c09c4ccff29d12f d788dbffcaedabfd16337b9683fd30803efb69cee2e64da08c09c4ccff29d12f 해당 없음 해당 없음 -Refactor tests/integration/analysis/thermal_gauss_oracle.h support@1-70 helper/oracle/fixture/include/static assertion 구간: thermal_oracle, GaussPoint tests/integration/analysis/thermal_gauss_oracle.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eefed1217413733d2b6f2c59534a7501f9a2256dddd8140f1b6fc970af8bcec6 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/thermal_oracle_generator.py file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/integration/analysis/thermal_oracle_generator.py file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9c7d218fb43f93b77f0b84d158fcdc32033931a63f67b46e0e8adbac48b678dd 9c7d218fb43f93b77f0b84d158fcdc32033931a63f67b46e0e8adbac48b678dd 해당 없음 해당 없음 -Refactor tests/integration/analysis/thermal_oracle_generator.py add fixture/oracle/helper add tests/integration/analysis/thermal_oracle_generator.py add 유지 원문 검사 body 및 assertion 동일. 23e1150085d3fe1a5d74d2299831c98dd48f86eb9930a91b18600fc30d590845 23e1150085d3fe1a5d74d2299831c98dd48f86eb9930a91b18600fc30d590845 해당 없음 해당 없음 -Refactor tests/integration/analysis/thermal_oracle_generator.py neg fixture/oracle/helper neg tests/integration/analysis/thermal_oracle_generator.py neg 유지 원문 검사 body 및 assertion 동일. 7f7c8cb6ea41ea38bda49db120a6d2cd2848779150281160c8d32c61b566b46e 7f7c8cb6ea41ea38bda49db120a6d2cd2848779150281160c8d32c61b566b46e 해당 없음 해당 없음 -Refactor tests/integration/analysis/thermal_oracle_generator.py mul fixture/oracle/helper mul tests/integration/analysis/thermal_oracle_generator.py mul 유지 원문 검사 body 및 assertion 동일. 8be987139da7dda1626167aab28c0cff97553f2597f44e6e365ceab74df9bf11 8be987139da7dda1626167aab28c0cff97553f2597f44e6e365ceab74df9bf11 해당 없음 해당 없음 -Refactor tests/integration/analysis/thermal_oracle_generator.py div fixture/oracle/helper div tests/integration/analysis/thermal_oracle_generator.py div 유지 원문 검사 body 및 assertion 동일. f88c22b7ecdac33d93b72af346a9809c1076dff336d7fe05e45a8ea0ce5cda98 f88c22b7ecdac33d93b72af346a9809c1076dff336d7fe05e45a8ea0ce5cda98 assert b[0] > 0 or b[1] < 0 assert b[0] > 0 or b[1] < 0 -Refactor tests/integration/analysis/thermal_oracle_generator.py scale fixture/oracle/helper scale tests/integration/analysis/thermal_oracle_generator.py scale 유지 원문 검사 body 및 assertion 동일. b2d4e44e7198bea03d4b8e9aa478db99139a37e2df97553ad90c222e6c2d363e b2d4e44e7198bea03d4b8e9aa478db99139a37e2df97553ad90c222e6c2d363e 해당 없음 해당 없음 -Refactor tests/integration/analysis/thermal_oracle_generator.py legendre fixture/oracle/helper legendre tests/integration/analysis/thermal_oracle_generator.py legendre 유지 원문 검사 body 및 assertion 동일. ac998c8e064d80b57bf76d7a32e7414ee2a98bc41f5bf66df11460e2a866ded5 ac998c8e064d80b57bf76d7a32e7414ee2a98bc41f5bf66df11460e2a866ded5 해당 없음 해당 없음 -Refactor tests/integration/analysis/thermal_oracle_generator.py bracket fixture/oracle/helper bracket tests/integration/analysis/thermal_oracle_generator.py bracket 유지 원문 검사 body 및 assertion 동일. 6547b8bc55d38c8fc5108617a4b670ec13e1a35ff637dc4c2b49d4a89a27d47a 6547b8bc55d38c8fc5108617a4b670ec13e1a35ff637dc4c2b49d4a89a27d47a 해당 없음 해당 없음 -Refactor tests/integration/analysis/thermal_oracle_generator.py rule fixture/oracle/helper rule tests/integration/analysis/thermal_oracle_generator.py rule 유지 원문 검사 body 및 assertion 동일. 66e3896608075721c4941eace553b6bd6dfb46f4035079736663145c9fe97998 66e3896608075721c4941eace553b6bd6dfb46f4035079736663145c9fe97998 assert pl * ph < 0 | assert all(a[1] < b[0] for a, b in zip(result, result[1:])) | assert sum(F(r[2]) for r in result) < 2 < sum(F(r[3]) for r in result) assert pl * ph < 0 | assert all(a[1] < b[0] for a, b in zip(result, result[1:])) | assert sum(F(r[2]) for r in result) < 2 < sum(F(r[3]) for r in result) -Refactor tests/integration/analysis/thermal_oracle_generator.py slab_fixtures fixture/oracle/helper slab_fixtures tests/integration/analysis/thermal_oracle_generator.py slab_fixtures 유지 원문 검사 body 및 assertion 동일. 975f511ac674e3b180991c3f72b487234ce8712cb424a85094be969c99361561 975f511ac674e3b180991c3f72b487234ce8712cb424a85094be969c99361561 해당 없음 해당 없음 -Refactor tests/integration/analysis/thermal_oracle_generator.py support@1-14 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/thermal_oracle_generator.py file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a3be554d66397807817915492b0f6e5d20acf5873a97c99032017cd6cc6d01a5 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/thermal_oracle_generator.py support@215-244 helper/oracle/fixture/include/static assertion 구간: thermal_oracle, GaussPoint, Bracket, SlabCase tests/integration/analysis/thermal_oracle_generator.py file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5d91b01795d7cc5fbaa1b6c701fdd468978526c523b9a5d14136b3d82b5e9279 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/thermal_physics_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/integration/analysis/thermal_physics_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fd272656d0a4bfda4a8cf075b0064a27ac6f493cb32d73c32f7e308844148c81 fd272656d0a4bfda4a8cf075b0064a27ac6f493cb32d73c32f7e308844148c81 해당 없음 해당 없음 -Refactor tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.InsulatedUniformAndZeroRetainAllFramesWithConservation ThermalPhysics.InsulatedUniformAndZeroRetainAllFramesWithConservation; assertion 5개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.InsulatedUniformAndZeroRetainAllFramesWithConservation 유지 원문 검사 body 및 assertion 동일. edf0f539db5122e88db306402c100c973d9367d15826ff41df5831b9874050c7 edf0f539db5122e88db306402c100c973d9367d15826ff41df5831b9874050c7 EXPECT_LE(std::abs(frame.temperature[i] - temperature), bound) | EXPECT_EQ(metrics.capacity_budget, 0) | EXPECT_EQ(metrics.energy_defect, 0) | EXPECT_EQ(metrics.dissipation_defect, 0) | EXPECT_EQ(metrics.flux_values, 8U * 4U * 72U) EXPECT_LE(std::abs(frame.temperature[i] - temperature), bound) | EXPECT_EQ(metrics.capacity_budget, 0) | EXPECT_EQ(metrics.energy_defect, 0) | EXPECT_EQ(metrics.dissipation_defect, 0) | EXPECT_EQ(metrics.flux_values, 8U * 4U * 72U) -Refactor tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.DiscreteEigenmodeHasFirstOrderTimeConvergence ThermalPhysics.DiscreteEigenmodeHasFirstOrderTimeConvergence; assertion 4개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.DiscreteEigenmodeHasFirstOrderTimeConvergence 유지 원문 검사 body 및 assertion 동일. 1d52f524f76f2684bb44a8432cd192d154ee2cc3246fbea4cbe564c74132a60d 1d52f524f76f2684bb44a8432cd192d154ee2cc3246fbea4cbe564c74132a60d EXPECT_LE(agreement.hi, total_budget.hi) | EXPECT_LE((total_budget / mode_norm).hi, error_norm.lo / 1000) | EXPECT_GE(order, .97) | EXPECT_LE(order, 1.02) EXPECT_LE(agreement.hi, total_budget.hi) | EXPECT_LE((total_budget / mode_norm).hi, error_norm.lo / 1000) | EXPECT_GE(order, .97) | EXPECT_LE(order, 1.02) -Refactor tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.SignedOverlappingAndConstrainedPowerBalanceByComponent ThermalPhysics.SignedOverlappingAndConstrainedPowerBalanceByComponent; assertion 6개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.SignedOverlappingAndConstrainedPowerBalanceByComponent 유지 원문 검사 body 및 assertion 동일. 2d2c5cc010b1987f2ab8df39ea5a39746869dd7c226da2fdfe5f0337a2adbe16 2d2c5cc010b1987f2ab8df39ea5a39746869dd7c226da2fdfe5f0337a2adbe16 EXPECT_EQ(p.assembly.HeatInput()[20], 5) | EXPECT_EQ(p.assembly.HeatInput()[34], -5) | EXPECT_DOUBLE_EQ(frame.temperature[i], other_frame.temperature[i]) | EXPECT_LE(first.Abs(), metrics.steps[step - 1].energy_bound) | EXPECT_LE(energy[1].Abs(), metrics.steps[step - 1].energy_bound) | EXPECT_LE(reaction_shift.Abs(), subtraction.hi) EXPECT_EQ(p.assembly.HeatInput()[20], 5) | EXPECT_EQ(p.assembly.HeatInput()[34], -5) | EXPECT_DOUBLE_EQ(frame.temperature[i], other_frame.temperature[i]) | EXPECT_LE(first.Abs(), metrics.steps[step - 1].energy_bound) | EXPECT_LE(energy[1].Abs(), metrics.steps[step - 1].energy_bound) | EXPECT_LE(reaction_shift.Abs(), subtraction.hi) -Refactor tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.PrivateFullEndStripRespectsThicknessMaterialJumpAndFoldResistance ThermalPhysics.PrivateFullEndStripRespectsThicknessMaterialJumpAndFoldResistance; assertion 7개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.PrivateFullEndStripRespectsThicknessMaterialJumpAndFoldResistance 유지 원문 검사 body 및 assertion 동일. 98716955c3d594ac8083ae9a474374c5888912c98ba4d073f991296e2b65c1ae 98716955c3d594ac8083ae9a474374c5888912c98ba4d073f991296e2b65c1ae ASSERT_GT(denominator.lo, 0) | EXPECT_LE((I{result.temperature[i]} - mid).Abs(), bound.hi + (mid - I{mid.Mid()}).Abs()) | EXPECT_LE((right - mid).Abs(), reaction_budget.hi) | EXPECT_LE((left + mid).Abs(), reaction_budget.hi) | EXPECT_LE((left + right).Abs(), result.evidence.energy_bound) | EXPECT_LE((I{q.X()} + mid).Abs(), 24 * bound.hi + Gamma(2048).hi * 24) | EXPECT_LE((I{component} + I{5} / I{3}).Abs(), 400 * bound.hi + Gamma(2048).hi * 400) ASSERT_GT(denominator.lo, 0) | EXPECT_LE((I{result.temperature[i]} - mid).Abs(), bound.hi + (mid - I{mid.Mid()}).Abs()) | EXPECT_LE((right - mid).Abs(), reaction_budget.hi) | EXPECT_LE((left + mid).Abs(), reaction_budget.hi) | EXPECT_LE((left + right).Abs(), result.evidence.energy_bound) | EXPECT_LE((I{q.X()} + mid).Abs(), 24 * bound.hi + Gamma(2048).hi * 24) | EXPECT_LE((I{component} + I{5} / I{3}).Abs(), 400 * bound.hi + Gamma(2048).hi * 400) -Refactor tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.PrivateAffineFieldRotationNormalAndUnaveragedMidplaneTraces ThermalPhysics.PrivateAffineFieldRotationNormalAndUnaveragedMidplaneTraces; assertion 7개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.PrivateAffineFieldRotationNormalAndUnaveragedMidplaneTraces 유지 원문 검사 body 및 assertion 동일. 0149790ce0000a7f3bfa36e529afff49efc9d2cd79b3a2fa2038d5eaf5765773 0149790ce0000a7f3bfa36e529afff49efc9d2cd79b3a2fa2038d5eaf5765773 EXPECT_FALSE(cache.matrix.has_value()) | EXPECT_LE((dot - I{static_cast(a == b)}).Abs(), (Gamma(2048) * absolute).hi) | EXPECT_GT(r[0].Cross(r[1]).Dot(r[2]), 0) | EXPECT_LE(std::abs(q[c] - expected[c]), budget) | EXPECT_LE((actual_local - expected_local).Abs(), budget + Gamma(16).hi * k * (8 + 16 / h) * scale) | EXPECT_EQ(traces[0][6 * point + 2].Dot(normal), 0) | EXPECT_LE( std::abs(traces[0][6 * point + 3].Dot(normal) + 4 * k / h), (Gamma(2048) * I{2 * k * (8 + 16 / h)}).hi) EXPECT_FALSE(cache.matrix.has_value()) | EXPECT_LE((dot - I{static_cast(a == b)}).Abs(), (Gamma(2048) * absolute).hi) | EXPECT_GT(r[0].Cross(r[1]).Dot(r[2]), 0) | EXPECT_LE(std::abs(q[c] - expected[c]), budget) | EXPECT_LE((actual_local - expected_local).Abs(), budget + Gamma(16).hi * k * (8 + 16 / h) * scale) | EXPECT_EQ(traces[0][6 * point + 2].Dot(normal), 0) | EXPECT_LE( std::abs(traces[0][6 * point + 3].Dot(normal) + 4 * k / h), (Gamma(2048) * I{2 * k * (8 + 16 / h)}).hi) -Refactor tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.FullTwoDimensionalMeshesHaveSecondOrderTemperatureAndFirstOrderGradient ThermalPhysics.FullTwoDimensionalMeshesHaveSecondOrderTemperatureAndFirstOrderGradient; assertion 11개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.FullTwoDimensionalMeshesHaveSecondOrderTemperatureAndFirstOrderGradient 유지 원문 검사 body 및 assertion 동일. 0ceca38a5febc9b2b1dd637a6fdc3c6bade908c088a878422dd93f60377d48e4 0ceca38a5febc9b2b1dd637a6fdc3c6bade908c088a878422dd93f60377d48e4 EXPECT_LE((twelve.temperature - sixteen.temperature).Abs(), sixteen.temperature.lo * 1e-8) | EXPECT_LE((twelve.gradient - sixteen.gradient).Abs(), sixteen.gradient.lo * 1e-8) | EXPECT_LE(agreement.hi, forward.hi) | EXPECT_LE(forward.hi, sixteen.temperature.lo / 1000) | EXPECT_LE((Sqrt(I{24. * n * n + 1280}) * forward).hi, sixteen.gradient.lo / 1000) | EXPECT_LE(temporal.hi, spatial_error.temperature.lo / 32) | EXPECT_GE(temperature_order, 1.95) | EXPECT_LE(temperature_order, 2.05) | EXPECT_GE(gradient_order, .98) | EXPECT_LE(gradient_order, 1.03) | EXPECT_EQ(8 * (metrics.temperature_values + metrics.flux_values), 81074472U) EXPECT_LE((twelve.temperature - sixteen.temperature).Abs(), sixteen.temperature.lo * 1e-8) | EXPECT_LE((twelve.gradient - sixteen.gradient).Abs(), sixteen.gradient.lo * 1e-8) | EXPECT_LE(agreement.hi, forward.hi) | EXPECT_LE(forward.hi, sixteen.temperature.lo / 1000) | EXPECT_LE((Sqrt(I{24. * n * n + 1280}) * forward).hi, sixteen.gradient.lo / 1000) | EXPECT_LE(temporal.hi, spatial_error.temperature.lo / 32) | EXPECT_GE(temperature_order, 1.95) | EXPECT_LE(temperature_order, 2.05) | EXPECT_GE(gradient_order, .98) | EXPECT_LE(gradient_order, 1.03) | EXPECT_EQ(8 * (metrics.temperature_values + metrics.flux_values), 81074472U) -Refactor tests/integration/analysis/thermal_physics_test.cpp ThermalSlab.ActualMeshesMatchCertifiedP2AndSeparateFourierError ThermalSlab.ActualMeshesMatchCertifiedP2AndSeparateFourierError; assertion 10개 tests/integration/analysis/thermal_physics_test.cpp ThermalSlab.ActualMeshesMatchCertifiedP2AndSeparateFourierError 유지 원문 검사 body 및 assertion 동일. 35d85f768c1c0df7ccdf1dcfe80c2a8294bffdfc09fc9f32bef7e529eaa29491 35d85f768c1c0df7ccdf1dcfe80c2a8294bffdfc09fc9f32bef7e529eaa29491 EXPECT_EQ(p.state.CommittedState().temperature[row], 0) | ASSERT_GT(inverse_denominator.lo, 0) | EXPECT_LE(std::abs(element[sample][0]), flux_budget.hi) | EXPECT_LE(std::abs(element[sample][1]), flux_budget.hi) | EXPECT_LE((samples[quantity] - first_mesh[quantity]).Abs(), (I{first_budget[group]} + I{solver_budget[group]}).hi) | EXPECT_LE(roundoff.hi, oracle.space[group] / 1000) | EXPECT_LE(agreement[group], roundoff.hi) | EXPECT_LE(physical[group], (I{oracle.space[group]} + I{time_error[group]} + roundoff).hi) | EXPECT_LE((I{physical[group]} - I{space_error[group]}).Abs(), (I{time_error[group]} + roundoff).hi) | EXPECT_TRUE(plateau) EXPECT_EQ(p.state.CommittedState().temperature[row], 0) | ASSERT_GT(inverse_denominator.lo, 0) | EXPECT_LE(std::abs(element[sample][0]), flux_budget.hi) | EXPECT_LE(std::abs(element[sample][1]), flux_budget.hi) | EXPECT_LE((samples[quantity] - first_mesh[quantity]).Abs(), (I{first_budget[group]} + I{solver_budget[group]}).hi) | EXPECT_LE(roundoff.hi, oracle.space[group] / 1000) | EXPECT_LE(agreement[group], roundoff.hi) | EXPECT_LE(physical[group], (I{oracle.space[group]} + I{time_error[group]} + roundoff).hi) | EXPECT_LE((I{physical[group]} - I{space_error[group]}).Abs(), (I{time_error[group]} + roundoff).hi) | EXPECT_TRUE(plateau) -Refactor tests/integration/analysis/thermal_physics_test.cpp support@1-337 helper/oracle/fixture/include/static assertion 구간: ti, Down, Up, I, Mid, Abs, Sqrt, Square, Gamma, Pi, Cos, if, ExpNegative, while, Power, T, Take, Checked, Mesh, Prepared, RunMetrics, Advance, for, Print, CapacityNorm tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ab404661df8fb79566243b654ea29e927bfecaa40967268a503305ab70dc37d9 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/thermal_physics_test.cpp support@357-431 helper/oracle/fixture/include/static assertion 구간: VerifyDiscreteEigenmode tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 302213d4b2826eec0d855386a82aa934f7517ca58b5a648eee7d7312b379e6a7 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/thermal_physics_test.cpp support@539-602 helper/oracle/fixture/include/static assertion 구간: ZeroLike, CertifiedInverse, if tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ed80a8f1fe0a8a5a570f4eee10c069f506b9a07b7e1187cae5bd9481521fb22a 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/thermal_physics_test.cpp support@799-870 helper/oracle/fixture/include/static assertion 구간: ThicknessMass, ThicknessGradient, SpatialError, IntegrateSpatialError, for tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6fe84510f8e89a0b45ac65e8b403973d1a9f3333b13d9c73deaf7076f9ca12ee 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/thermal_physics_test.cpp support@959-961 helper/oracle/fixture/include/static assertion 구간: Bracket, ThermalSlab tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 132c3f6724f847d2eb1cb70298ba8cbba9a8d0a5f070b51734e71be7e07e0616 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/thermal_physics_test.cpp support@1133-1141 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e43aa8e23b2faf52e75adc8f5647bf291d27a232530b2c49b1bb17df2d2e329e 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/analysis/thermal_slab_oracle.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/integration/analysis/thermal_slab_oracle.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2d4d4f58df2a9f08b25f850c59617100f2a8af10ba7bdebb7ee80e15b079ad27 2d4d4f58df2a9f08b25f850c59617100f2a8af10ba7bdebb7ee80e15b079ad27 해당 없음 해당 없음 -Refactor tests/integration/analysis/thermal_slab_oracle.h support@1-359 helper/oracle/fixture/include/static assertion 구간: thermal_oracle, Bracket, SlabCase tests/integration/analysis/thermal_slab_oracle.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3dfe0819fc272857692d3de89c30080b4f509c425b6169550bba89114be56c1f 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/app/eigen_application_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/integration/app/eigen_application_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7632397db2daf06eb0ff79a311f4f61832f415ebee4aebe334c8bf5d97e83772 7632397db2daf06eb0ff79a311f4f61832f415ebee4aebe334c8bf5d97e83772 해당 없음 해당 없음 -Refactor tests/integration/app/eigen_application_test.cpp EigenApplicationTest.DispatchesFrequencyAndWritesModalSibling EigenApplicationTest.DispatchesFrequencyAndWritesModalSibling; assertion 9개 tests/integration/app/eigen_application_test.cpp EigenApplicationTest.DispatchesFrequencyAndWritesModalSibling 유지 원문 검사 body 및 assertion 동일. 68264a89e2eea378557e983ac8734ba58b464af83c2ac2b3628f1f1fafa70ee3 68264a89e2eea378557e983ac8734ba58b464af83c2ac2b3628f1f1fafa70ee3 "ASSERT_EQ(fesa::FesaApplication{}.Run({input_.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output_)) | ASSERT_TRUE(std::filesystem::exists(log_)) | EXPECT_EQ(std::filesystem::file_size(log_), 0U) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/modes"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/vectors"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" "ASSERT_EQ(fesa::FesaApplication{}.Run({input_.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output_)) | ASSERT_TRUE(std::filesystem::exists(log_)) | EXPECT_EQ(std::filesystem::file_size(log_), 0U) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/modes"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/vectors"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" -Refactor tests/integration/app/eigen_application_test.cpp EigenApplicationTest.EmptyPencilPreservesPreviousFinalAndEmptyLog EigenApplicationTest.EmptyPencilPreservesPreviousFinalAndEmptyLog; assertion 3개 tests/integration/app/eigen_application_test.cpp EigenApplicationTest.EmptyPencilPreservesPreviousFinalAndEmptyLog 유지 원문 검사 body 및 assertion 동일. c919926a783cca5aacef016773b325fbad92557b269875233aa77feb5f4cf253 c919926a783cca5aacef016773b325fbad92557b269875233aa77feb5f4cf253 EXPECT_EQ(fesa::FesaApplication{}.Run({input_.string()}), 4) | EXPECT_TRUE(std::string(std::istreambuf_iterator{previous}, {}) == original) | EXPECT_EQ(std::filesystem::file_size(log_), 0U) EXPECT_EQ(fesa::FesaApplication{}.Run({input_.string()}), 4) | EXPECT_TRUE(std::string(std::istreambuf_iterator{previous}, {}) == original) | EXPECT_EQ(std::filesystem::file_size(log_), 0U) -Refactor tests/integration/app/eigen_application_test.cpp support@1-81 helper/oracle/fixture/include/static assertion 구간: EigenApplicationTest, WriteDeck tests/integration/app/eigen_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 34d85c877e290ff9094967418cedc08e2751fe6074e5f3007b0b1dd16a22e861 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/app/eigen_application_test.cpp support@110-111 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/eigen_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/app/fesa_application_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/integration/app/fesa_application_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 07d63eb93467254f069d6ae86e2af022287e1ff0dba8272dbb08e830709a9ff0 07d63eb93467254f069d6ae86e2af022287e1ff0dba8272dbb08e830709a9ff0 해당 없음 해당 없음 -Refactor tests/integration/app/fesa_application_test.cpp LinearStaticCli.DefaultOutputUsesInputSiblingDerivedName LinearStaticCli.DefaultOutputUsesInputSiblingDerivedName; assertion 2개 tests/integration/app/fesa_application_test.cpp LinearStaticCli.DefaultOutputUsesInputSiblingDerivedName 유지 원문 검사 body 및 assertion 동일. 32a254e96576eb69d5fa023125fa0bf941cf0d2a73be539df402feb8687b097f 32a254e96576eb69d5fa023125fa0bf941cf0d2a73be539df402feb8687b097f "ASSERT_EQ(result.exit_code, 0) | EXPECT_FALSE(std::filesystem::exists(directory.Path() / ""results.h5""))" "ASSERT_EQ(result.exit_code, 0) | EXPECT_FALSE(std::filesystem::exists(directory.Path() / ""results.h5""))" -Refactor tests/integration/app/fesa_application_test.cpp FesaApplication.OpensDerivedLogBeforeInputMapping FesaApplication.OpensDerivedLogBeforeInputMapping; assertion 3개 tests/integration/app/fesa_application_test.cpp FesaApplication.OpensDerivedLogBeforeInputMapping 유지 원문 검사 body 및 assertion 동일. 0ff45e4e3ddc200c86c04a2c7aeafc773da2345f78afda2eadc06eddd4d6d006 0ff45e4e3ddc200c86c04a2c7aeafc773da2345f78afda2eadc06eddd4d6d006 EXPECT_EQ(result.exit_code, 3) | ASSERT_TRUE(std::filesystem::exists(log)) | EXPECT_EQ(std::filesystem::file_size(log), 0U) EXPECT_EQ(result.exit_code, 3) | ASSERT_TRUE(std::filesystem::exists(log)) | EXPECT_EQ(std::filesystem::file_size(log), 0U) -Refactor tests/integration/app/fesa_application_test.cpp LinearStaticCli.ReturnsEveryExactExitCodeAndOrderedDiagnostic LinearStaticCli.ReturnsEveryExactExitCodeAndOrderedDiagnostic; assertion 9개 tests/integration/app/fesa_application_test.cpp LinearStaticCli.ReturnsEveryExactExitCodeAndOrderedDiagnostic 유지 원문 검사 body 및 assertion 동일. 466456fe6183443de50011587199f89bcfe4345da298f5ffcb6fb3bf21b27f83 466456fe6183443de50011587199f89bcfe4345da298f5ffcb6fb3bf21b27f83 "EXPECT_EQ(success.exit_code, 0) | EXPECT_EQ(usage.exit_code, 2) | EXPECT_EQ(input.exit_code, 3) | EXPECT_EQ(model.exit_code, 4) | EXPECT_EQ(solver.exit_code, 5) | EXPECT_EQ(repeated_output.exit_code, 2) | EXPECT_NE(repeated_output.standard_error.find(""code=cli-usage""), std::string::npos) | EXPECT_EQ(unknown_output_option.exit_code, 2) | EXPECT_NE(unknown_output_option.standard_error.find(""code=cli-usage""), std::string::npos)" "EXPECT_EQ(success.exit_code, 0) | EXPECT_EQ(usage.exit_code, 2) | EXPECT_EQ(input.exit_code, 3) | EXPECT_EQ(model.exit_code, 4) | EXPECT_EQ(solver.exit_code, 5) | EXPECT_EQ(repeated_output.exit_code, 2) | EXPECT_NE(repeated_output.standard_error.find(""code=cli-usage""), std::string::npos) | EXPECT_EQ(unknown_output_option.exit_code, 2) | EXPECT_NE(unknown_output_option.standard_error.find(""code=cli-usage""), std::string::npos)" -Refactor tests/integration/app/fesa_application_test.cpp LinearStaticCli.OutputSubstringRejectionLeavesDerivedFilesUnchanged LinearStaticCli.OutputSubstringRejectionLeavesDerivedFilesUnchanged; assertion 7개 tests/integration/app/fesa_application_test.cpp LinearStaticCli.OutputSubstringRejectionLeavesDerivedFilesUnchanged 유지 원문 검사 body 및 assertion 동일. 15e900377c4aa714bb7d75ea9dcefa8e379107ec7b3aae46f27c39781c4d73e4 15e900377c4aa714bb7d75ea9dcefa8e379107ec7b3aae46f27c39781c4d73e4 "EXPECT_EQ(result.exit_code, 2) | EXPECT_EQ( std::count(result.standard_error.begin(), result.standard_error.end(), '\n'), 1U) | EXPECT_NE(result.standard_error.find(""code=cli-usage""), std::string::npos) | EXPECT_EQ(SnapshotFile(results).contents, previous_results.contents) | EXPECT_EQ(SnapshotFile(results).write_time, previous_results.write_time) | EXPECT_EQ(SnapshotFile(log).contents, previous_log.contents) | EXPECT_EQ(SnapshotFile(log).write_time, previous_log.write_time)" "EXPECT_EQ(result.exit_code, 2) | EXPECT_EQ( std::count(result.standard_error.begin(), result.standard_error.end(), '\n'), 1U) | EXPECT_NE(result.standard_error.find(""code=cli-usage""), std::string::npos) | EXPECT_EQ(SnapshotFile(results).contents, previous_results.contents) | EXPECT_EQ(SnapshotFile(results).write_time, previous_results.write_time) | EXPECT_EQ(SnapshotFile(log).contents, previous_log.contents) | EXPECT_EQ(SnapshotFile(log).write_time, previous_log.write_time)" -Refactor tests/integration/app/fesa_application_test.cpp LinearStaticCli.BusyOutputLeaseLeavesDerivedFilesUnchanged LinearStaticCli.BusyOutputLeaseLeavesDerivedFilesUnchanged; assertion 7개 tests/integration/app/fesa_application_test.cpp LinearStaticCli.BusyOutputLeaseLeavesDerivedFilesUnchanged 유지 원문 검사 body 및 assertion 동일. 28fec91071cedec614407118354e3d04c18bccaf67210f5351846382380f4def 28fec91071cedec614407118354e3d04c18bccaf67210f5351846382380f4def "ASSERT_TRUE(lease.HasValue()) | EXPECT_EQ(result.exit_code, 6) | EXPECT_NE(result.standard_error.find(""code=output-busy""), std::string::npos) | EXPECT_EQ(SnapshotFile(results).contents, previous_results.contents) | EXPECT_EQ(SnapshotFile(results).write_time, previous_results.write_time) | EXPECT_EQ(SnapshotFile(log).contents, previous_log.contents) | EXPECT_EQ(SnapshotFile(log).write_time, previous_log.write_time)" "ASSERT_TRUE(lease.HasValue()) | EXPECT_EQ(result.exit_code, 6) | EXPECT_NE(result.standard_error.find(""code=output-busy""), std::string::npos) | EXPECT_EQ(SnapshotFile(results).contents, previous_results.contents) | EXPECT_EQ(SnapshotFile(results).write_time, previous_results.write_time) | EXPECT_EQ(SnapshotFile(log).contents, previous_log.contents) | EXPECT_EQ(SnapshotFile(log).write_time, previous_log.write_time)" -Refactor tests/integration/app/fesa_application_test.cpp LinearStaticCli.OutputRequestsDoNotFilterMandatoryResults LinearStaticCli.OutputRequestsDoNotFilterMandatoryResults; assertion 6개 tests/integration/app/fesa_application_test.cpp LinearStaticCli.OutputRequestsDoNotFilterMandatoryResults 유지 원문 검사 body 및 assertion 동일. 36ab47846953b9f89467d79516155a88696bf76e752f34933d9dc6169a28f6a3 36ab47846953b9f89467d79516155a88696bf76e752f34933d9dc6169a28f6a3 "ASSERT_EQ(plain.exit_code, 0) | ASSERT_EQ(requested.exit_code, 0) | EXPECT_EQ(ReadDoubleDataset(requested_file.Get(), path), ReadDoubleDataset(plain_file.Get(), path)) | EXPECT_EQ(DatasetDimensions(plain_file.Get(), ""/diagnostics""), std::vector({0U})) | ASSERT_EQ(requested_diagnostics.size(), 1U) | EXPECT_GT(requested_diagnostics[0U], 0U)" "ASSERT_EQ(plain.exit_code, 0) | ASSERT_EQ(requested.exit_code, 0) | EXPECT_EQ(ReadDoubleDataset(requested_file.Get(), path), ReadDoubleDataset(plain_file.Get(), path)) | EXPECT_EQ(DatasetDimensions(plain_file.Get(), ""/diagnostics""), std::vector({0U})) | ASSERT_EQ(requested_diagnostics.size(), 1U) | EXPECT_GT(requested_diagnostics[0U], 0U)" -Refactor tests/integration/app/fesa_application_test.cpp Mitc4ShellCli.WritesShellHdf5ThroughTheExistingApplicationRoute Mitc4ShellCli.WritesShellHdf5ThroughTheExistingApplicationRoute; assertion 1개 tests/integration/app/fesa_application_test.cpp Mitc4ShellCli.WritesShellHdf5ThroughTheExistingApplicationRoute 유지 원문 검사 body 및 assertion 동일. f437d9ab3ce6cc9db9242318e612bb8e0f5acdf70ce8ca47910c24a6e2fefbf9 f437d9ab3ce6cc9db9242318e612bb8e0f5acdf70ce8ca47910c24a6e2fefbf9 ASSERT_EQ(result.exit_code, 0) ASSERT_EQ(result.exit_code, 0) -Refactor tests/integration/app/fesa_application_test.cpp support@1-355 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, CurrentDirectoryGuard, Hdf5Handle, WriteText, AxialDeck, AllConstrainedShellDeck, OpenFile, OpenDataset, DatasetDimensions, ReadDoubleDataset, for, ReadStringAttribute, ExpectMandatoryInventory, ExpectFesaHdf5Identity, ExpectShellHdf5Identity, AppRun, RunApplication, catch, ExpectDiagnosticFieldOrder, FileSnapshot, SnapshotFile tests/integration/app/fesa_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 86ad01a4a2d9c96621b43860360f5db1b874f41c64a92f5331a7d2c5f7a090b2 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/app/fesa_application_test.cpp support@370-371 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/fesa_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0d9a57af3a9392fe92e3468c81957fece71dccadbc9c5c1d2ae25abcdcfcbf96 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/app/fesa_application_test.cpp support@424-426 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/fesa_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2e743f1bbe2074a4e496d4e18d5f0fb1d01581db88662ac2b7000cbbf3235f48 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/app/fesa_application_test.cpp support@454-456 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/fesa_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 485a5a091491fa984b66ae21431bff2ac7e5bd7b5981645f350c41c4c4d1ceff 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/app/fesa_application_test.cpp support@517-518 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/fesa_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7210dc43217ee6c97222f26b3a7441a44ac19ae603a5360e08ac32b4c466f12d 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/app/shell_surface_pressure_application_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/integration/app/shell_surface_pressure_application_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 369cc07b69791c67f80fefdfebd3b3986bdd7ec3ddae0fc20cc7f9f01f1e4d07 369cc07b69791c67f80fefdfebd3b3986bdd7ec3ddae0fc20cc7f9f01f1e4d07 해당 없음 해당 없음 -Refactor tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.LinearFailurePreservesExistingFinalAndNoCandidate ShellSurfacePressureApplication.LinearFailurePreservesExistingFinalAndNoCandidate; assertion 2개 tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.LinearFailurePreservesExistingFinalAndNoCandidate 유지 원문 검사 body 및 assertion 동일. 4352e654ee0cbb33ae714e1d066609c2a6e2daf28d16df65df2da019d8af4e50 4352e654ee0cbb33ae714e1d066609c2a6e2daf28d16df65df2da019d8af4e50 EXPECT_NE(exit_code, 0) | EXPECT_EQ(ReadBytes(output), previous) EXPECT_NE(exit_code, 0) | EXPECT_EQ(ReadBytes(output), previous) -Refactor tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingLinearBehavior ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingLinearBehavior; assertion 7개 tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingLinearBehavior 유지 원문 검사 body 및 assertion 동일. 53128674e01206097130820f16e2df3d01c24e0961f07bad72972d923ed96683 53128674e01206097130820f16e2df3d01c24e0961f07bad72972d923ed96683 "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/frames/0/nodal/displacement"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/frames/0/nodal/displacement"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" -Refactor tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingNonlinearBehavior ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingNonlinearBehavior; assertion 7개 tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingNonlinearBehavior 유지 원문 검사 body 및 assertion 동일. a92cd868028262e66a83bd771b9a654819e00285b03907d87f49c87ae6ceb5fe a92cd868028262e66a83bd771b9a654819e00285b03907d87f49c87ae6ceb5fe "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" -Refactor tests/integration/app/shell_surface_pressure_application_test.cpp support@1-137 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, WriteText, ReadBytes, ShellDeck, NonlinearShellDeck tests/integration/app/shell_surface_pressure_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 018b3c3f47b9ffbf3ee6fc438e63618a745aef6195e249c4b5acf8cbfd00ac04 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/app/solid_application_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/integration/app/solid_application_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4fe3fa020951bd776343af5d26def36392794dd74c5e19ca3d57427c489c6831 4fe3fa020951bd776343af5d26def36392794dd74c5e19ca3d57427c489c6831 해당 없음 해당 없음 -Refactor tests/integration/app/solid_application_test.cpp SolidApplication.AllFiveActualProceduresWriteOfficialSolidSchema SolidApplication.AllFiveActualProceduresWriteOfficialSolidSchema; assertion 6개 tests/integration/app/solid_application_test.cpp SolidApplication.AllFiveActualProceduresWriteOfficialSolidSchema 유지 원문 검사 body 및 assertion 동일. 0cddac0e04be42a231c5f6677e088fd87072a425b750a23aab5690b0ed8c84bd 0cddac0e04be42a231c5f6677e088fd87072a425b750a23aab5690b0ed8c84bd ASSERT_EQ(fesa::FesaApplication{}.Run({files.input.string()}), 0) | ASSERT_GE(f, 0) | ASSERT_GE(g, 0) | ASSERT_GE(a, 0) | ASSERT_GE(H5Aread(a, t, &value), 0) | EXPECT_STREQ(value, solid_output_test::Procedure(p)) ASSERT_EQ(fesa::FesaApplication{}.Run({files.input.string()}), 0) | ASSERT_GE(f, 0) | ASSERT_GE(g, 0) | ASSERT_GE(a, 0) | ASSERT_GE(H5Aread(a, t, &value), 0) | EXPECT_STREQ(value, solid_output_test::Procedure(p)) -Refactor tests/integration/app/solid_application_test.cpp SolidApplication.NativeExecutableRunsAllFiveAndKeepsWarningsAndTypedLogs SolidApplication.NativeExecutableRunsAllFiveAndKeepsWarningsAndTypedLogs; assertion 20개 tests/integration/app/solid_application_test.cpp SolidApplication.NativeExecutableRunsAllFiveAndKeepsWarningsAndTypedLogs 유지 원문 검사 body 및 assertion 동일. 6fa687c0d3ddc09ca8dfdbe276e14156ffb4b98874acb4e66b2a3a815956eb96 6fa687c0d3ddc09ca8dfdbe276e14156ffb4b98874acb4e66b2a3a815956eb96 "ASSERT_GT(length, 0u) | ASSERT_LT(length, module.size()) | ASSERT_TRUE(std::filesystem::exists(executable)) | ASSERT_EQ(fesa::FesaApplication{}.Run({files.input.string()}), 0) | ASSERT_TRUE(CreateProcessW(executable.c_str(), command.data(), nullptr, nullptr, FALSE, CREATE_NO_WINDOW, nullptr, nullptr, &startup, &process)) | EXPECT_TRUE(GetExitCodeProcess(process.hProcess, &exit)) | ASSERT_EQ(wait, WAIT_OBJECT_0) | ASSERT_EQ(exit, 0u) | EXPECT_GT(H5Fis_hdf5(files.output.string().c_str()), 0) | EXPECT_EQ(NumericSnapshot(files.output, p), expected) | EXPECT_EQ(log.find(""correction_rotation""), std::string::npos) | EXPECT_EQ(log.find(""residual_moment""), std::string::npos) | EXPECT_NE(log.find(""schema=solid-static-log-v1""), std::string::npos) | EXPECT_NE(log.find(""schema=solid-hht-log-v1""), std::string::npos) | EXPECT_NE(log.find(""h2_physical_da_over_L=""), std::string::npos) | EXPECT_NE(log.find(""h2_algorithmic_dA_over_L=""), std::string::npos) | EXPECT_NE(log.find(""normalized-high-low-physical-state;RN64-observables""), std::string::npos) | ASSERT_GE(file, 0) | ASSERT_GE(diagnostics, 0) | EXPECT_GT(rows, 0u)" "ASSERT_GT(length, 0u) | ASSERT_LT(length, module.size()) | ASSERT_TRUE(std::filesystem::exists(executable)) | ASSERT_EQ(fesa::FesaApplication{}.Run({files.input.string()}), 0) | ASSERT_TRUE(CreateProcessW(executable.c_str(), command.data(), nullptr, nullptr, FALSE, CREATE_NO_WINDOW, nullptr, nullptr, &startup, &process)) | EXPECT_TRUE(GetExitCodeProcess(process.hProcess, &exit)) | ASSERT_EQ(wait, WAIT_OBJECT_0) | ASSERT_EQ(exit, 0u) | EXPECT_GT(H5Fis_hdf5(files.output.string().c_str()), 0) | EXPECT_EQ(NumericSnapshot(files.output, p), expected) | EXPECT_EQ(log.find(""correction_rotation""), std::string::npos) | EXPECT_EQ(log.find(""residual_moment""), std::string::npos) | EXPECT_NE(log.find(""schema=solid-static-log-v1""), std::string::npos) | EXPECT_NE(log.find(""schema=solid-hht-log-v1""), std::string::npos) | EXPECT_NE(log.find(""h2_physical_da_over_L=""), std::string::npos) | EXPECT_NE(log.find(""h2_algorithmic_dA_over_L=""), std::string::npos) | EXPECT_NE(log.find(""normalized-high-low-physical-state;RN64-observables""), std::string::npos) | ASSERT_GE(file, 0) | ASSERT_GE(diagnostics, 0) | EXPECT_GT(rows, 0u)" -Refactor tests/integration/app/solid_application_test.cpp SolidApplication.SuccessfulWarningsRetainSourceLocationAndTarget SolidApplication.SuccessfulWarningsRetainSourceLocationAndTarget; assertion 5개 tests/integration/app/solid_application_test.cpp SolidApplication.SuccessfulWarningsRetainSourceLocationAndTarget 유지 원문 검사 body 및 assertion 동일. cb7efd965f709cfc1e66b1751aaaf1c95e875fafa95a45ce6b96ab5f92a47918 cb7efd965f709cfc1e66b1751aaaf1c95e875fafa95a45ce6b96ab5f92a47918 "ASSERT_EQ(exit, 0) | EXPECT_NE(diagnostics.find(""code=inactive-solid-rotation-boundary""), std::string::npos) | EXPECT_NE(diagnostics.find(""entity_identity=Fixed""), std::string::npos) | EXPECT_NE(diagnostics.find(""line=30""), std::string::npos) | EXPECT_NE(diagnostics.find(files.input.generic_u8string()), std::string::npos)" "ASSERT_EQ(exit, 0) | EXPECT_NE(diagnostics.find(""code=inactive-solid-rotation-boundary""), std::string::npos) | EXPECT_NE(diagnostics.find(""entity_identity=Fixed""), std::string::npos) | EXPECT_NE(diagnostics.find(""line=30""), std::string::npos) | EXPECT_NE(diagnostics.find(files.input.generic_u8string()), std::string::npos)" -Refactor tests/integration/app/solid_application_test.cpp support@1-73 helper/oracle/fixture/include/static assertion 구간: NumericSnapshot, for, if tests/integration/app/solid_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fae87db4332db2d58466c577879e346b24a315f8b02442f98f89f063011d1cdf 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/app/solid_application_test.cpp support@174-174 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/solid_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/app/thermal_application_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/integration/app/thermal_application_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 921d9686ce735dc7e44d0e9bd61580838f969ce08e3f858550a099c9fc98cbef 921d9686ce735dc7e44d0e9bd61580838f969ce08e3f858550a099c9fc98cbef 해당 없음 해당 없음 -Refactor tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.ExecutesThermalInputThroughAtomicOutput ThermalApplicationTest.ExecutesThermalInputThroughAtomicOutput; assertion 27개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.ExecutesThermalInputThroughAtomicOutput 유지 원문 검사 body 및 assertion 동일. f6df36c87719748f81960dad63fa6e838d8bc71a7814c36d0d7cb28449bed204 f6df36c87719748f81960dad63fa6e838d8bc71a7814c36d0d7cb28449bed204 "ASSERT_EQ(run.exit_code, 0) | EXPECT_GT(H5Fis_hdf5(Path(""Heat.Model_results.h5"").string().c_str()), 0) | EXPECT_EQ(std::filesystem::file_size(Path(""Heat.Model_log.txt"")), 0U) | EXPECT_EQ(StringAttribute(metadata.Get(), ""source_step_name""), ""Raw Heat"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""feature_id""), ""shell-transient-heat-transfer"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""analysis_procedure""), ""uncoupled-transient-heat-transfer"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""source_input_identity"") .find(""path="" + Path(""Heat.Model.INP"").generic_u8string() + "";content_identity=""), 0U) | ASSERT_EQ(frames.size(), 4U) | EXPECT_EQ(frame.frame_index, index) | EXPECT_EQ(frame.increment_index, index) | EXPECT_EQ(frame.is_initial, index == 0 ? 1 : 0) | EXPECT_DOUBLE_EQ(frame.time, index == 3 ? .7 : static_cast(index) * .3) | EXPECT_DOUBLE_EQ(frame.time_increment, index == 0 ? 0 : index == 3 ? std::fma(-2., .3, .7) : .3) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/temperature""), (std::vector{4, 5})) | EXPECT_TRUE(std::isfinite(value)) | EXPECT_LT(value, 0.) | EXPECT_DOUBLE_EQ(value, -2.) | EXPECT_EQ( H5Lexists(file.Get(), (root + ""/nodal/reaction_heat_rate"").c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), (root + ""/element"").c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/reaction_heat_rate""), (std::vector{0})) | EXPECT_EQ(Shape(file.Get(), root + ""/element/heat_flux""), (std::vector{1, 4, 6, 3})) | EXPECT_EQ(Shape(file.Get(), ""/diagnostics""), (std::vector{1})) | ASSERT_GE(H5Tset_size(string_type.Get(), H5T_VARIABLE), 0) | ASSERT_GE(H5Tset_cset(string_type.Get(), H5T_CSET_UTF8), 0) | ASSERT_GE(H5Tinsert(row_type.Get(), ""code"", 0, string_type.Get()), 0) | ASSERT_GE(H5Dread(diagnostics.Get(), row_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &code), 0) | EXPECT_STREQ(code, ""ignored-input-keyword"")" "ASSERT_EQ(run.exit_code, 0) | EXPECT_GT(H5Fis_hdf5(Path(""Heat.Model_results.h5"").string().c_str()), 0) | EXPECT_EQ(std::filesystem::file_size(Path(""Heat.Model_log.txt"")), 0U) | EXPECT_EQ(StringAttribute(metadata.Get(), ""source_step_name""), ""Raw Heat"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""feature_id""), ""shell-transient-heat-transfer"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""analysis_procedure""), ""uncoupled-transient-heat-transfer"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""source_input_identity"") .find(""path="" + Path(""Heat.Model.INP"").generic_u8string() + "";content_identity=""), 0U) | ASSERT_EQ(frames.size(), 4U) | EXPECT_EQ(frame.frame_index, index) | EXPECT_EQ(frame.increment_index, index) | EXPECT_EQ(frame.is_initial, index == 0 ? 1 : 0) | EXPECT_DOUBLE_EQ(frame.time, index == 3 ? .7 : static_cast(index) * .3) | EXPECT_DOUBLE_EQ(frame.time_increment, index == 0 ? 0 : index == 3 ? std::fma(-2., .3, .7) : .3) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/temperature""), (std::vector{4, 5})) | EXPECT_TRUE(std::isfinite(value)) | EXPECT_LT(value, 0.) | EXPECT_DOUBLE_EQ(value, -2.) | EXPECT_EQ( H5Lexists(file.Get(), (root + ""/nodal/reaction_heat_rate"").c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), (root + ""/element"").c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/reaction_heat_rate""), (std::vector{0})) | EXPECT_EQ(Shape(file.Get(), root + ""/element/heat_flux""), (std::vector{1, 4, 6, 3})) | EXPECT_EQ(Shape(file.Get(), ""/diagnostics""), (std::vector{1})) | ASSERT_GE(H5Tset_size(string_type.Get(), H5T_VARIABLE), 0) | ASSERT_GE(H5Tset_cset(string_type.Get(), H5T_CSET_UTF8), 0) | ASSERT_GE(H5Tinsert(row_type.Get(), ""code"", 0, string_type.Get()), 0) | ASSERT_GE(H5Dread(diagnostics.Get(), row_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &code), 0) | EXPECT_STREQ(code, ""ignored-input-keyword"")" -Refactor tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.EndpointCloseUsesActualDeltaAndLargeIncrementUsesPeriod ThermalApplicationTest.EndpointCloseUsesActualDeltaAndLargeIncrementUsesPeriod; assertion 8개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.EndpointCloseUsesActualDeltaAndLargeIncrementUsesPeriod 유지 원문 검사 body 및 assertion 동일. ad5bd959038bf1bc1167ca2796d5badbb5ec663f87fe89df335c5b8acb760992 ad5bd959038bf1bc1167ca2796d5badbb5ec663f87fe89df335c5b8acb760992 ASSERT_EQ(run.exit_code, 0) | ASSERT_EQ(frames.size(), 4U) | EXPECT_DOUBLE_EQ(frames.back().time, .9) | EXPECT_DOUBLE_EQ(frames.back().time_increment, .3) | EXPECT_NE(frames.back().time_increment, frames[3].time - frames[2].time) | ASSERT_EQ(frames.size(), 2U) | EXPECT_DOUBLE_EQ(frames.back().time, .7) | EXPECT_DOUBLE_EQ(frames.back().time_increment, .7) ASSERT_EQ(run.exit_code, 0) | ASSERT_EQ(frames.size(), 4U) | EXPECT_DOUBLE_EQ(frames.back().time, .9) | EXPECT_DOUBLE_EQ(frames.back().time_increment, .3) | EXPECT_NE(frames.back().time_increment, frames[3].time - frames[2].time) | ASSERT_EQ(frames.size(), 2U) | EXPECT_DOUBLE_EQ(frames.back().time, .7) | EXPECT_DOUBLE_EQ(frames.back().time_increment, .7) -Refactor tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.RawInitialPrecedesPrescribedBoundaryProjection ThermalApplicationTest.RawInitialPrecedesPrescribedBoundaryProjection; assertion 5개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.RawInitialPrecedesPrescribedBoundaryProjection 유지 원문 검사 body 및 assertion 동일. 28ecc20ef5539e10837bbd26888c6c4700394e032a556a72b3732e7322abaad7 28ecc20ef5539e10837bbd26888c6c4700394e032a556a72b3732e7322abaad7 "ASSERT_EQ(run.exit_code, 0) | EXPECT_DOUBLE_EQ(value, -2) | EXPECT_DOUBLE_EQ(temperature[5 * node], 1) | EXPECT_DOUBLE_EQ(temperature[5 * node + 4], 1) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/reaction_heat_rate""), (std::vector{8}))" "ASSERT_EQ(run.exit_code, 0) | EXPECT_DOUBLE_EQ(value, -2) | EXPECT_DOUBLE_EQ(temperature[5 * node], 1) | EXPECT_DOUBLE_EQ(temperature[5 * node + 4], 1) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/reaction_heat_rate""), (std::vector{8}))" -Refactor tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.InputAndSolverFailuresPreservePreviousFinal ThermalApplicationTest.InputAndSolverFailuresPreservePreviousFinal; assertion 4개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.InputAndSolverFailuresPreservePreviousFinal 유지 원문 검사 body 및 assertion 동일. cfe5e9a34c0cbd33635c6d35935173a280c1378f0735dfc9e5a5777696c1bc7b cfe5e9a34c0cbd33635c6d35935173a280c1378f0735dfc9e5a5777696c1bc7b "EXPECT_EQ(run.exit_code, test.second) | EXPECT_FALSE(run.error.empty()) | EXPECT_EQ(ReadBytes(Path(""model_results.h5"")), previous) | EXPECT_EQ(std::filesystem::file_size(Path(""model_log.txt"")), 0U)" "EXPECT_EQ(run.exit_code, test.second) | EXPECT_FALSE(run.error.empty()) | EXPECT_EQ(ReadBytes(Path(""model_results.h5"")), previous) | EXPECT_EQ(std::filesystem::file_size(Path(""model_log.txt"")), 0U)" -Refactor tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.BusyLeasePrecedesParsingAndPreservesBothOutputs ThermalApplicationTest.BusyLeasePrecedesParsingAndPreservesBothOutputs; assertion 5개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.BusyLeasePrecedesParsingAndPreservesBothOutputs 유지 원문 검사 body 및 assertion 동일. be71949b43487d6eed86586a4994ed0d9fd08e1263cb47f5d13b7c995aaf01a0 be71949b43487d6eed86586a4994ed0d9fd08e1263cb47f5d13b7c995aaf01a0 "ASSERT_TRUE(lease.HasValue()) | EXPECT_EQ(run.exit_code, 6) | EXPECT_NE(run.error.find(""code=output-busy""), std::string::npos) | EXPECT_EQ(ReadBytes(paths.results_path), ""previous final"") | EXPECT_EQ(ReadBytes(paths.log_path), ""previous log"")" "ASSERT_TRUE(lease.HasValue()) | EXPECT_EQ(run.exit_code, 6) | EXPECT_NE(run.error.find(""code=output-busy""), std::string::npos) | EXPECT_EQ(ReadBytes(paths.results_path), ""previous final"") | EXPECT_EQ(ReadBytes(paths.log_path), ""previous log"")" -Refactor tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.RealFinalizeFailurePreservesFinalAndRemovesCandidate ThermalApplicationTest.RealFinalizeFailurePreservesFinalAndRemovesCandidate; assertion 6개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.RealFinalizeFailurePreservesFinalAndRemovesCandidate 유지 원문 검사 body 및 assertion 동일. 5f48d5b0464432fadf5f0f9522ae62bb204c588633cc77c86517b58a81667be0 5f48d5b0464432fadf5f0f9522ae62bb204c588633cc77c86517b58a81667be0 "ASSERT_NE(locked, INVALID_HANDLE_VALUE) | EXPECT_TRUE(CloseHandle(locked)) | EXPECT_EQ(run.exit_code, 6) | EXPECT_EQ(ReadBytes(Path(""model_results.h5"")), ""previous final"") | EXPECT_EQ(std::filesystem::file_size(Path(""model_log.txt"")), 0U) | EXPECT_EQ(entry.path().filename().string().find("".tmp.""), std::string::npos)" "ASSERT_NE(locked, INVALID_HANDLE_VALUE) | EXPECT_TRUE(CloseHandle(locked)) | EXPECT_EQ(run.exit_code, 6) | EXPECT_EQ(ReadBytes(Path(""model_results.h5"")), ""previous final"") | EXPECT_EQ(std::filesystem::file_size(Path(""model_log.txt"")), 0U) | EXPECT_EQ(entry.path().filename().string().find("".tmp.""), std::string::npos)" -Refactor tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.MissingAdaptersHaveSpecificFailureCategories ThermalApplicationTest.MissingAdaptersHaveSpecificFailureCategories; assertion 14개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.MissingAdaptersHaveSpecificFailureCategories 유지 원문 검사 body 및 assertion 동일. 96329adf31d0773e0ed5ee9335cb9c21be7908e2179d2c8abb4a74f7a5ba71c1 96329adf31d0773e0ed5ee9335cb9c21be7908e2179d2c8abb4a74f7a5ba71c1 "ASSERT_TRUE(prepared.HasValue()) | ASSERT_EQ(prepared.Value().domain.Steps().Size(), 0U) | ASSERT_TRUE(log.Open(Path(""model_log.txt"")).IsOk()) | ASSERT_FALSE(missing.HasValue()) | EXPECT_EQ(missing.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(missing.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].code, ""missing-thermal-executor"") | ASSERT_TRUE(outcome.HasValue()) | ASSERT_TRUE( std::holds_alternative(outcome.Value())) | ASSERT_TRUE(log.Close().IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0].code, ""missing-thermal-writer"") | EXPECT_EQ(ReadBytes(paths.results_path), ""previous final"")" "ASSERT_TRUE(prepared.HasValue()) | ASSERT_EQ(prepared.Value().domain.Steps().Size(), 0U) | ASSERT_TRUE(log.Open(Path(""model_log.txt"")).IsOk()) | ASSERT_FALSE(missing.HasValue()) | EXPECT_EQ(missing.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(missing.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].code, ""missing-thermal-executor"") | ASSERT_TRUE(outcome.HasValue()) | ASSERT_TRUE( std::holds_alternative(outcome.Value())) | ASSERT_TRUE(log.Close().IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0].code, ""missing-thermal-writer"") | EXPECT_EQ(ReadBytes(paths.results_path), ""previous final"")" -Refactor tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.ExistingStructuralStaticNonlinearAndHhtRoutesRemainAvailable ThermalApplicationTest.ExistingStructuralStaticNonlinearAndHhtRoutesRemainAvailable; assertion 2개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.ExistingStructuralStaticNonlinearAndHhtRoutesRemainAvailable 유지 원문 검사 body 및 assertion 동일. b103892efb098072fe2035f37dbc8731fa5d2819279d54cc1cc3a7e0dfc3b29d b103892efb098072fe2035f37dbc8731fa5d2819279d54cc1cc3a7e0dfc3b29d "ASSERT_EQ(run.exit_code, 0) | EXPECT_GT(H5Fis_hdf5(Path(""model_results.h5"").string().c_str()), 0)" "ASSERT_EQ(run.exit_code, 0) | EXPECT_GT(H5Fis_hdf5(Path(""model_results.h5"").string().c_str()), 0)" -Refactor tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.NativeExecutableAcceptsThermalInputAndRejectsInteriorBoundary ThermalApplicationTest.NativeExecutableAcceptsThermalInputAndRejectsInteriorBoundary; assertion 9개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.NativeExecutableAcceptsThermalInputAndRejectsInteriorBoundary 유지 원문 검사 body 및 assertion 동일. 24830ff7dc3c76bc4465be558297597f8626d2f17796512e86b1853983bb48da 24830ff7dc3c76bc4465be558297597f8626d2f17796512e86b1853983bb48da "ASSERT_GT(length, 0U) | ASSERT_LT(length, module.size()) | ASSERT_TRUE(std::filesystem::exists(executable)) | ASSERT_TRUE(CreateProcessW(executable.c_str(), command.data(), nullptr, nullptr, FALSE, CREATE_NO_WINDOW, nullptr, nullptr, &startup, &process)) | EXPECT_TRUE(GetExitCodeProcess(process.hProcess, &exit)) | ASSERT_EQ(wait, WAIT_OBJECT_0) | EXPECT_EQ(exit, valid ? 0U : 3U) | EXPECT_GT(H5Fis_hdf5(Path(""native_results.h5"").string().c_str()), 0) | EXPECT_EQ(ReadBytes(Path(""native_results.h5"")), previous)" "ASSERT_GT(length, 0U) | ASSERT_LT(length, module.size()) | ASSERT_TRUE(std::filesystem::exists(executable)) | ASSERT_TRUE(CreateProcessW(executable.c_str(), command.data(), nullptr, nullptr, FALSE, CREATE_NO_WINDOW, nullptr, nullptr, &startup, &process)) | EXPECT_TRUE(GetExitCodeProcess(process.hProcess, &exit)) | ASSERT_EQ(wait, WAIT_OBJECT_0) | EXPECT_EQ(exit, valid ? 0U : 3U) | EXPECT_GT(H5Fis_hdf5(Path(""native_results.h5"").string().c_str()), 0) | EXPECT_EQ(ReadBytes(Path(""native_results.h5"")), previous)" -Refactor tests/integration/app/thermal_application_test.cpp support@1-210 helper/oracle/fixture/include/static assertion 구간: HdfHandle, Get, Shape, Doubles, StringAttribute, FrameRow, Frames, ReadBytes, Replace, AppRun, RunApplication, ThermalApplicationTest, Path, Write, Deck tests/integration/app/thermal_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c9bedffeff261fb62a5b5b120bbf06fa4662699a430a6974de8875b45fd134ff 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/integration/app/thermal_application_test.cpp support@492-493 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/thermal_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/b33_reference_comparison_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/reference/b33_reference_comparison_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8de80a54713f644fb3f7e0d4a1f2d633cf05973b3fcb71ad23bb9e3b318b5296 8de80a54713f644fb3f7e0d4a1f2d633cf05973b3fcb71ad23bb9e3b318b5296 해당 없음 해당 없음 -Refactor tests/reference/b33_reference_comparison_test.cpp B33ReferenceComparison.GeneratesAuthoritativeHdf5AndComparisonEvidence B33ReferenceComparison.GeneratesAuthoritativeHdf5AndComparisonEvidence; assertion 35개 tests/reference/b33_reference_comparison_test.cpp B33ReferenceComparison.GeneratesAuthoritativeHdf5AndComparisonEvidence 유지 원문 검사 body 및 assertion 동일. 082a94dba1c41737c5aad55d0f5f0c0e94a339a24de29e3dfba6d70ddf48f0ea 082a94dba1c41737c5aad55d0f5f0c0e94a339a24de29e3dfba6d70ddf48f0ea "ASSERT_TRUE(std::filesystem::create_directories(output_directory, error)) | ASSERT_FALSE(error) | ASSERT_EQ(reference_before.size(), 4U) | EXPECT_EQ(reference_before[0U].relative_path, std::filesystem::path{""cantilever beam displacements.csv""}) | EXPECT_EQ(reference_before[1U].relative_path, std::filesystem::path{""cantilever beam elemental forces.csv""}) | EXPECT_EQ(reference_before[2U].relative_path, std::filesystem::path{""cantilever beam reactions.csv""}) | EXPECT_EQ(reference_before[3U].relative_path, std::filesystem::path{""cantilever beam.inp""}) | ASSERT_TRUE(std::filesystem::copy_file(input, execution_input, error)) | ASSERT_FALSE(error) | ASSERT_EQ(application.Run({execution_input.string()}), 0) | ASSERT_TRUE(std::filesystem::is_regular_file(results)) | ASSERT_GT(H5Fis_hdf5(results.string().c_str()), 0) | EXPECT_GT(StressRowCount(results), 0U) | ASSERT_TRUE(comparison_result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.rows.size(), kExpectedRowCount) | ASSERT_EQ(report.metrics.size(), kExpectedMetricCount) | EXPECT_TRUE(std::all_of( report.rows.begin(), report.rows.end(), [](const fesa::test::RowDecision& row) { return row.passed && std::isfinite(row.absolute_error) && std::isfinite(row.tolerance) && row.tolerance >= 0.0 && std::isfinite(row.reference_scale) && std::isfinite(row.near_zero_band) && std::isfinite(row.relative_error) && row.fesa.model_id == ""cantilever-beam-b33"" && row.reference.model_id == ""cantilever-beam-b33"" && row.fesa.step_name == ""Step-1"" && row.reference.step_name == ""Step-1"" && row.fesa.frame_index == 0U && row.reference.frame_index == 0U && row.fesa.instance_name == ""PART-1_1-1"" && row.reference.instance_name == ""PART-1_1-1"" && !row.fesa.hdf5_dataset_path.empty(); })) | EXPECT_TRUE( std::all_of(report.metrics.begin(), report.metrics.end(), [](const fesa::test::ComponentMetrics& metric) { return std::isfinite(metric.reference_scale) && std::isfinite(metric.near_zero_band) && std::isfinite(metric.maximum_absolute_error) && std::isfinite(metric.relative_rms) && metric.rms_passed && metric.passed && metric.row_count > 0U && !metric.components.empty(); })) | EXPECT_FALSE(report.stress_comparison_applicable) | EXPECT_NE(report.stress_comparison_reason.find(""N/A""), std::string::npos) | EXPECT_NE(report.stress_comparison_reason.find(""HDF5""), std::string::npos) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | EXPECT_TRUE(std::isfinite(report.physics_evidence.free_residual_norm)) | EXPECT_LE(report.physics_evidence.free_residual_norm, 1.0e-3) | EXPECT_LE(Norm(Sum(report.physics_evidence.applied_force, report.physics_evidence.reaction_force)), 1.0e-3) | EXPECT_LE(Norm(Sum(report.physics_evidence.applied_moment_about_origin, report.physics_evidence.reaction_moment_about_origin)), 1.0e-2) | ASSERT_TRUE(fesa::test::ReferenceComparison::WriteDeterministicJson( report, comparison) .IsOk()) | ASSERT_TRUE(std::filesystem::is_regular_file(comparison)) | EXPECT_NE(json.find(""\""stress_comparison_applicable\"":false""), std::string::npos) | EXPECT_NE(json.find(""\""physics_evidence\""""), std::string::npos) | EXPECT_NE(json.find(""\""source_element_label\""""), std::string::npos) | EXPECT_NE(json.find(""\""family_identity\""""), std::string::npos) | EXPECT_NE(json.find(""\""row_count\""""), std::string::npos) | EXPECT_EQ(generated_names, (std::vector{""cantilever beam.inp"", ""cantilever beam_log.txt"", ""cantilever beam_results.h5"", ""comparison.json""}))" "ASSERT_TRUE(std::filesystem::create_directories(output_directory, error)) | ASSERT_FALSE(error) | ASSERT_EQ(reference_before.size(), 4U) | EXPECT_EQ(reference_before[0U].relative_path, std::filesystem::path{""cantilever beam displacements.csv""}) | EXPECT_EQ(reference_before[1U].relative_path, std::filesystem::path{""cantilever beam elemental forces.csv""}) | EXPECT_EQ(reference_before[2U].relative_path, std::filesystem::path{""cantilever beam reactions.csv""}) | EXPECT_EQ(reference_before[3U].relative_path, std::filesystem::path{""cantilever beam.inp""}) | ASSERT_TRUE(std::filesystem::copy_file(input, execution_input, error)) | ASSERT_FALSE(error) | ASSERT_EQ(application.Run({execution_input.string()}), 0) | ASSERT_TRUE(std::filesystem::is_regular_file(results)) | ASSERT_GT(H5Fis_hdf5(results.string().c_str()), 0) | EXPECT_GT(StressRowCount(results), 0U) | ASSERT_TRUE(comparison_result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.rows.size(), kExpectedRowCount) | ASSERT_EQ(report.metrics.size(), kExpectedMetricCount) | EXPECT_TRUE(std::all_of( report.rows.begin(), report.rows.end(), [](const fesa::test::RowDecision& row) { return row.passed && std::isfinite(row.absolute_error) && std::isfinite(row.tolerance) && row.tolerance >= 0.0 && std::isfinite(row.reference_scale) && std::isfinite(row.near_zero_band) && std::isfinite(row.relative_error) && row.fesa.model_id == ""cantilever-beam-b33"" && row.reference.model_id == ""cantilever-beam-b33"" && row.fesa.step_name == ""Step-1"" && row.reference.step_name == ""Step-1"" && row.fesa.frame_index == 0U && row.reference.frame_index == 0U && row.fesa.instance_name == ""PART-1_1-1"" && row.reference.instance_name == ""PART-1_1-1"" && !row.fesa.hdf5_dataset_path.empty(); })) | EXPECT_TRUE( std::all_of(report.metrics.begin(), report.metrics.end(), [](const fesa::test::ComponentMetrics& metric) { return std::isfinite(metric.reference_scale) && std::isfinite(metric.near_zero_band) && std::isfinite(metric.maximum_absolute_error) && std::isfinite(metric.relative_rms) && metric.rms_passed && metric.passed && metric.row_count > 0U && !metric.components.empty(); })) | EXPECT_FALSE(report.stress_comparison_applicable) | EXPECT_NE(report.stress_comparison_reason.find(""N/A""), std::string::npos) | EXPECT_NE(report.stress_comparison_reason.find(""HDF5""), std::string::npos) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | EXPECT_TRUE(std::isfinite(report.physics_evidence.free_residual_norm)) | EXPECT_LE(report.physics_evidence.free_residual_norm, 1.0e-3) | EXPECT_LE(Norm(Sum(report.physics_evidence.applied_force, report.physics_evidence.reaction_force)), 1.0e-3) | EXPECT_LE(Norm(Sum(report.physics_evidence.applied_moment_about_origin, report.physics_evidence.reaction_moment_about_origin)), 1.0e-2) | ASSERT_TRUE(fesa::test::ReferenceComparison::WriteDeterministicJson( report, comparison) .IsOk()) | ASSERT_TRUE(std::filesystem::is_regular_file(comparison)) | EXPECT_NE(json.find(""\""stress_comparison_applicable\"":false""), std::string::npos) | EXPECT_NE(json.find(""\""physics_evidence\""""), std::string::npos) | EXPECT_NE(json.find(""\""source_element_label\""""), std::string::npos) | EXPECT_NE(json.find(""\""family_identity\""""), std::string::npos) | EXPECT_NE(json.find(""\""row_count\""""), std::string::npos) | EXPECT_EQ(generated_names, (std::vector{""cantilever beam.inp"", ""cantilever beam_log.txt"", ""cantilever beam_results.h5"", ""comparison.json""}))" -Refactor tests/reference/b33_reference_comparison_test.cpp support@1-147 helper/oracle/fixture/include/static assertion 구간: Hdf5Handle, if, ReferenceSnapshotEntry, ReadBytes, SnapshotTree, sort, ExpectTreeUnchanged, Norm, Sum, StressRowCount tests/reference/b33_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 08f0770f5aeb24b1560b8da3f35b583cbf85abfbf36dded9d21e96dfb54c38c3 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/eigen_reference_cases_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/reference/eigen_reference_cases_test.cpp file 유지 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 modal identity·수치 기준은 유지한다. 4890fe18f1ff259890fbc9baf6f4f1c39fabd3bc0a42b8059581dfff7604aeb6 4890fe18f1ff259890fbc9baf6f4f1c39fabd3bc0a42b8059581dfff7604aeb6 해당 없음 해당 없음 -Refactor tests/reference/eigen_reference_cases_test.cpp EigenReference.RunsOriginalInputAndComparesAllModalFrameIdentities EigenReference.RunsOriginalInputAndComparesAllModalFrameIdentities; assertion 16개 tests/reference/eigen_reference_cases_test.cpp EigenReference.RunsOriginalInputAndComparesAllModalFrameIdentities 유지 원문 검사 body 및 assertion 동일. e4f451acf146ec42a498f137080e48e956b4c57c5dbbbaff1a880d95123d254c e4f451acf146ec42a498f137080e48e956b4c57c5dbbbaff1a880d95123d254c "EXPECT_EQ(ReadBytes(input), input_before) | EXPECT_EQ(ReadBytes(text), text_before) | ASSERT_EQ(exit_code, 0) | ASSERT_TRUE(std::filesystem::is_regular_file(results)) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().passed) | EXPECT_EQ(comparison.Value().source_step_name, ""Step-2"") | EXPECT_EQ(comparison.Value().requested_mode_count, 10U) | ASSERT_EQ(comparison.Value().rows.size(), 10U) | ASSERT_EQ(comparison.Value().families.size(), 10U) | EXPECT_EQ(comparison.Value().rows[index].mode_id, index + 1U) | EXPECT_EQ(comparison.Value().rows[index].component, ""Value"") | EXPECT_EQ(comparison.Value().families[index].row_count, 1U) | EXPECT_TRUE(comparison.Value().families[index].passed) | EXPECT_EQ(ReadBytes(input), input_before) | EXPECT_EQ(ReadBytes(text), text_before)" "EXPECT_EQ(ReadBytes(input), input_before) | EXPECT_EQ(ReadBytes(text), text_before) | ASSERT_EQ(exit_code, 0) | ASSERT_TRUE(std::filesystem::is_regular_file(results)) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().passed) | EXPECT_EQ(comparison.Value().source_step_name, ""Step-2"") | EXPECT_EQ(comparison.Value().requested_mode_count, 10U) | ASSERT_EQ(comparison.Value().rows.size(), 10U) | ASSERT_EQ(comparison.Value().families.size(), 10U) | EXPECT_EQ(comparison.Value().rows[index].mode_id, index + 1U) | EXPECT_EQ(comparison.Value().rows[index].component, ""Value"") | EXPECT_EQ(comparison.Value().families[index].row_count, 1U) | EXPECT_TRUE(comparison.Value().families[index].passed) | EXPECT_EQ(ReadBytes(input), input_before) | EXPECT_EQ(ReadBytes(text), text_before)" -Refactor tests/reference/eigen_reference_cases_test.cpp support@1-31 helper/oracle/fixture/include/static assertion 구간: ReadBytes, if tests/reference/eigen_reference_cases_test.cpp file-support 유지 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 modal identity·수치 기준은 유지한다. e6d5ed00a9bcbd734a958a0c92005773d61527a1f2fdad5e04571e08bb892da2 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/eigen_reference_cases_test.cpp support@78-79 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/eigen_reference_cases_test.cpp file-support 유지 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 modal identity·수치 기준은 유지한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/eigen_reference_comparison.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/eigen_reference_comparison.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b46d4b18fcbf3bbcba3547c41cdecc3f206eb6ed6d2df44b7de4f3a8c2c86000 b46d4b18fcbf3bbcba3547c41cdecc3f206eb6ed6d2df44b7de4f3a8c2c86000 해당 없음 해당 없음 -Refactor tests/reference/eigen_reference_comparison.cpp support@1-436 helper/oracle/fixture/include/static assertion 구간: fesa, ComparisonFailure, Fail, FailureStatus, Hdf5Handle, if, RequireId, RequireHdf, ReadUtf8Attribute, ReadUint64Attribute, Hdf5Mode, ReadModes, ParseFiniteNumber, data, RequireNumberSyntax, ReadReferenceText, while, Result, Compare, for, catch tests/reference/eigen_reference_comparison.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f8341d7432300658ef47c07672af81668f135597ea1bad54b73a9c9000e3c51b 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/eigen_reference_comparison.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/eigen_reference_comparison.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 96423b9a6c85e87752a28c38eed575c834c724caad6692122523f49888391a15 96423b9a6c85e87752a28c38eed575c834c724caad6692122523f49888391a15 해당 없음 해당 없음 -Refactor tests/reference/eigen_reference_comparison.h support@1-51 helper/oracle/fixture/include/static assertion 구간: fesa, EigenReferenceCase, EigenReferenceRowDecision, EigenReferenceComparisonReport, EigenReferenceComparison tests/reference/eigen_reference_comparison.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c66c08bae4956e9e12aa43fd98fcb70678b043ac7046cd085f1662494f61f0e0 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/eigen_reference_comparison_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/reference/eigen_reference_comparison_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f71ba9da827ff4740ce536149fef0f03dcd226f6c61f72a721973cae2b159e2a f71ba9da827ff4740ce536149fef0f03dcd226f6c61f72a721973cae2b159e2a 해당 없음 해당 없음 -Refactor tests/reference/eigen_reference_comparison_test.cpp EigenReferenceComparison.DirectSchemaFixtureAcceptsRepeatedReorderedModes EigenReferenceComparison.DirectSchemaFixtureAcceptsRepeatedReorderedModes; assertion 14개 tests/reference/eigen_reference_comparison_test.cpp EigenReferenceComparison.DirectSchemaFixtureAcceptsRepeatedReorderedModes 유지 원문 검사 body 및 assertion 동일. c756a589e4eb9b1be73380851a5bf8e12dae19900777b023aa6929938a0f7db5 c756a589e4eb9b1be73380851a5bf8e12dae19900777b023aa6929938a0f7db5 "ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(ok.HasValue()) | EXPECT_EQ(ok.Value().policy_id, ""mitc4-eigen-first-implementation"") | EXPECT_DOUBLE_EQ(ok.Value().relative_rms_tolerance, 0.05) | EXPECT_EQ(ok.Value().families.size(), 2U) | ASSERT_GE(H5Dwrite(ds, t, H5S_ALL, H5S_ALL, H5P_DEFAULT, v), 0) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_EQ(comparison.Value().passed, sample.second) | EXPECT_EQ(comparison.Value().families[0].rms_passed, sample.second) | EXPECT_TRUE(comparison.Value().families[1].passed) | ASSERT_FALSE(comparison.HasValue()) | ASSERT_EQ(comparison.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(comparison.GetStatus().Diagnostics()[0U].code, invalid_text.expected_code) | EXPECT_FALSE( fesa::test::EigenReferenceComparison::Compare(reference_case).HasValue())" "ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(ok.HasValue()) | EXPECT_EQ(ok.Value().policy_id, ""mitc4-eigen-first-implementation"") | EXPECT_DOUBLE_EQ(ok.Value().relative_rms_tolerance, 0.05) | EXPECT_EQ(ok.Value().families.size(), 2U) | ASSERT_GE(H5Dwrite(ds, t, H5S_ALL, H5S_ALL, H5P_DEFAULT, v), 0) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_EQ(comparison.Value().passed, sample.second) | EXPECT_EQ(comparison.Value().families[0].rms_passed, sample.second) | EXPECT_TRUE(comparison.Value().families[1].passed) | ASSERT_FALSE(comparison.HasValue()) | ASSERT_EQ(comparison.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(comparison.GetStatus().Diagnostics()[0U].code, invalid_text.expected_code) | EXPECT_FALSE( fesa::test::EigenReferenceComparison::Compare(reference_case).HasValue())" -Refactor tests/reference/eigen_reference_comparison_test.cpp support@1-54 helper/oracle/fixture/include/static assertion 구간: UniqueFixtureDirectory, Mode, Str, U tests/reference/eigen_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c8f66a74f9a84a0ee73ed94a47674bcef6637bcbda68daa9b9cac52cd0715989 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/eigen_reference_comparison_test.cpp support@193-193 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/eigen_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/mitc4_reference_cases_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/reference/mitc4_reference_cases_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 60c30a9f9b735df4571ef7bc262710fc3c1e84fb98b86b2d25611ff1406cb745 60c30a9f9b735df4571ef7bc262710fc3c1e84fb98b86b2d25611ff1406cb745 해당 없음 해당 없음 -Refactor tests/reference/mitc4_reference_cases_test.cpp Mitc4S4Reference.PreservesS4AndWritesCommonMitc4Metadata Mitc4S4Reference.PreservesS4AndWritesCommonMitc4Metadata; assertion 0개 tests/reference/mitc4_reference_cases_test.cpp Mitc4S4Reference.PreservesS4AndWritesCommonMitc4Metadata 유지 원문 검사 body 및 assertion 동일. 0a439f95ff0f8ff6baf1784c2b8286af7c5e9abe4027f6ab711e7cfd274dd297 0a439f95ff0f8ff6baf1784c2b8286af7c5e9abe4027f6ab711e7cfd274dd297 해당 없음 해당 없음 -Refactor tests/reference/mitc4_reference_cases_test.cpp Mitc4S4Reference.PassesBlockingUAndReportsEveryUrRow Mitc4S4Reference.PassesBlockingUAndReportsEveryUrRow; assertion 0개 tests/reference/mitc4_reference_cases_test.cpp Mitc4S4Reference.PassesBlockingUAndReportsEveryUrRow 유지 원문 검사 body 및 assertion 동일. 4305a332a97418a4548f580e4efd059145ba1f826292cc21d959bbeb55443add 4305a332a97418a4548f580e4efd059145ba1f826292cc21d959bbeb55443add 해당 없음 해당 없음 -Refactor tests/reference/mitc4_reference_cases_test.cpp support@1-177 helper/oracle/fixture/include/static assertion 구간: ReadBytes, if, ArtifactSnapshot, Snapshot, ExpectUnchanged, CaseEvidence, RunCase, for, ExpectCommonMetadata, ExpectComparisonCoverage, count_if, EXPECT_TRUE, find_if tests/reference/mitc4_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 00c52267b127eef3d2cd68d7bf6171119e37f97b63bd848ff0448f70687590f3 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/mitc4_reference_cases_test.cpp support@186-187 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 60b4486538263f1db4cc916d19cd7fe382e843507683db5da9f99168f7336722 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/mitc4_reference_cases_test.cpp support@197-198 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/mitc4_reference_comparison.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/mitc4_reference_comparison.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1e23f52e7a9ff7172bf67f5f9c3e460a05b86089b4df1f91566e502b3f7a3c69 1e23f52e7a9ff7172bf67f5f9c3e460a05b86089b4df1f91566e502b3f7a3c69 해당 없음 해당 없음 -Refactor tests/reference/mitc4_reference_comparison.cpp support@1-984 helper/oracle/fixture/include/static assertion 구간: fesa, ComparisonFailure, Fail, FailureStatus, Trim, find_if_not, SplitCsvLine, while, if, ParsePositiveLabel, ParseFiniteDouble, UppercaseAscii, transform, IdentityKey, WideRow, ReadReferenceCsv, Hdf5Handle, Hdf5ErrorSilencer, Hdf5VlenReclaimer, Reclaim, RequireId, RequireHdf, MakeUtf8StringType, OpenDataset, Dimensions, ReadStringAttribute, ReadUint64Attribute, RequireStringAttribute, RequireExactCompoundMembers, NodeReadRow, ReadNodes, ElementIdentityReadRow, RequireElementIdentity, for, ReadDisplacement, Hdf5Projection, ReadHdf5, RequireArtifacts, FiniteText, BranchName, switch, JsonEscape, WriteJsonStrings, Result, Compare, catch, WriteDeterministicJson tests/reference/mitc4_reference_comparison.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ba7f7e025e2dad0fa22b02dc44d600c2edb732f2bec5f89856fb2dab648b0958 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/mitc4_reference_comparison.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/mitc4_reference_comparison.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 51c8b78b44583986eeb175a839fd72a11ca5f3405bf016432da9563878c8f1f6 51c8b78b44583986eeb175a839fd72a11ca5f3405bf016432da9563878c8f1f6 해당 없음 해당 없음 -Refactor tests/reference/mitc4_reference_comparison.h support@1-93 helper/oracle/fixture/include/static assertion 구간: fesa, Mitc4ReferenceCase, Mitc4RowDecision, Mitc4ComponentMetrics, Mitc4VectorMetrics, Mitc4Warning, Mitc4ComparisonReport, Mitc4ReferenceComparison tests/reference/mitc4_reference_comparison.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 66926b7d72ccfcf4d1a0a42bfa456a43a8b71eac6b7dea8b91f381aff620cb5f 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/mitc4_reference_comparison_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/reference/mitc4_reference_comparison_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b886b3cf9a6d3569e73f6792ce8ff0a84052c81eb21d78a31245fc74033bf370 b886b3cf9a6d3569e73f6792ce8ff0a84052c81eb21d78a31245fc74033bf370 해당 없음 해당 없음 -Refactor tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.MapsTrimmedHeaderAndSixComponentsBySourceIdentity Mitc4ReferenceComparison.MapsTrimmedHeaderAndSixComponentsBySourceIdentity; assertion 11개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.MapsTrimmedHeaderAndSixComponentsBySourceIdentity 유지 원문 검사 body 및 assertion 동일. 44461d859079ddd35dd95bcca00277017ed16033e7164b9e62d27f9d98e54836 44461d859079ddd35dd95bcca00277017ed16033e7164b9e62d27f9d98e54836 "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.rows.size(), 12U) | EXPECT_EQ(report.rows[0U].source_node_label, 1) | EXPECT_EQ(report.rows[0U].component, ""U1"") | EXPECT_EQ(report.rows[5U].component, ""UR3"") | EXPECT_EQ(report.rows[6U].source_node_label, 2) | ASSERT_EQ(report.metrics.size(), 2U) | EXPECT_EQ(report.metrics[0U].row_count, 6U) | EXPECT_EQ(report.metrics[1U].row_count, 6U) | EXPECT_TRUE(std::all_of(report.rows.begin(), report.rows.end(), [](const fesa::test::Mitc4RowDecision& row) { return row.case_id == ""shell-contract"" && row.instance_name == kInstanceName && row.within_tolerance; }))" "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.rows.size(), 12U) | EXPECT_EQ(report.rows[0U].source_node_label, 1) | EXPECT_EQ(report.rows[0U].component, ""U1"") | EXPECT_EQ(report.rows[5U].component, ""UR3"") | EXPECT_EQ(report.rows[6U].source_node_label, 2) | ASSERT_EQ(report.metrics.size(), 2U) | EXPECT_EQ(report.metrics[0U].row_count, 6U) | EXPECT_EQ(report.metrics[1U].row_count, 6U) | EXPECT_TRUE(std::all_of(report.rows.begin(), report.rows.end(), [](const fesa::test::Mitc4RowDecision& row) { return row.case_id == ""shell-contract"" && row.instance_name == kInstanceName && row.within_tolerance; }))" -Refactor tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RejectsInvalidInventoryBeforeNumericComparison Mitc4ReferenceComparison.RejectsInvalidInventoryBeforeNumericComparison; assertion 1개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RejectsInvalidInventoryBeforeNumericComparison 유지 원문 검사 body 및 assertion 동일. d4d1ef19df229bad1f14847b9c437910e324f55f638cb91dbec9ec9815681c09 d4d1ef19df229bad1f14847b9c437910e324f55f638cb91dbec9ec9815681c09 ASSERT_TRUE(std::filesystem::remove(fixture.Input())) ASSERT_TRUE(std::filesystem::remove(fixture.Input())) -Refactor tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.SharesTranslationScaleAcrossUComponentsAndUsesNearZeroBranches Mitc4ReferenceComparison.SharesTranslationScaleAcrossUComponentsAndUsesNearZeroBranches; assertion 19개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.SharesTranslationScaleAcrossUComponentsAndUsesNearZeroBranches 유지 원문 검사 body 및 assertion 동일. 3dbbc317c15107ab849cb8e39ca1a7f85c3a111c899a6074f98efcda9b6b5311 3dbbc317c15107ab849cb8e39ca1a7f85c3a111c899a6074f98efcda9b6b5311 "ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(report.passed) | ASSERT_NE(u1_zero, nullptr) | ASSERT_NE(u1_scaled, nullptr) | ASSERT_NE(u2_near, nullptr) | ASSERT_NE(u2_over, nullptr) | EXPECT_DOUBLE_EQ(u1_zero->tolerance, 8.0e-2) | EXPECT_TRUE(u1_zero->within_tolerance) | EXPECT_FALSE(u1_zero->relative_error_applicable) | EXPECT_FALSE(u1_scaled->within_tolerance) | EXPECT_NEAR(u1_scaled->normalized_error, 0.05005, 1.0e-12) | EXPECT_DOUBLE_EQ(u2_near->tolerance, 8.0e-2) | EXPECT_TRUE(u2_near->within_tolerance) | EXPECT_FALSE(u2_near->relative_error_applicable) | EXPECT_FALSE(u2_over->within_tolerance) | EXPECT_DOUBLE_EQ(u2_over->tolerance, 8.0e-2) | ASSERT_NE(translation, nullptr) | EXPECT_DOUBLE_EQ(translation->reference_scale, 8.0) | EXPECT_EQ(translation->components, (std::vector{""U1"", ""U2"", ""U3""}))" "ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(report.passed) | ASSERT_NE(u1_zero, nullptr) | ASSERT_NE(u1_scaled, nullptr) | ASSERT_NE(u2_near, nullptr) | ASSERT_NE(u2_over, nullptr) | EXPECT_DOUBLE_EQ(u1_zero->tolerance, 8.0e-2) | EXPECT_TRUE(u1_zero->within_tolerance) | EXPECT_FALSE(u1_zero->relative_error_applicable) | EXPECT_FALSE(u1_scaled->within_tolerance) | EXPECT_NEAR(u1_scaled->normalized_error, 0.05005, 1.0e-12) | EXPECT_DOUBLE_EQ(u2_near->tolerance, 8.0e-2) | EXPECT_TRUE(u2_near->within_tolerance) | EXPECT_FALSE(u2_near->relative_error_applicable) | EXPECT_FALSE(u2_over->within_tolerance) | EXPECT_DOUBLE_EQ(u2_over->tolerance, 8.0e-2) | ASSERT_NE(translation, nullptr) | EXPECT_DOUBLE_EQ(translation->reference_scale, 8.0) | EXPECT_EQ(translation->components, (std::vector{""U1"", ""U2"", ""U3""}))" -Refactor tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationExceedanceWarnsWithoutBlockingTranslationVerdict Mitc4ReferenceComparison.RotationExceedanceWarnsWithoutBlockingTranslationVerdict; assertion 11개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationExceedanceWarnsWithoutBlockingTranslationVerdict 유지 원문 검사 body 및 assertion 동일. 0a685f2a0ea27dcdc95dc89c981067220e0418afd2c3cc242569d38d86212613 0a685f2a0ea27dcdc95dc89c981067220e0418afd2c3cc242569d38d86212613 "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 2U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-exceedance"") | EXPECT_EQ(report.warnings[1U].code, ""rotation-reference-rms-exceedance"") | ASSERT_NE(row, nullptr) | EXPECT_FALSE(row->blocking) | EXPECT_FALSE(row->within_tolerance) | EXPECT_EQ(report.warnings[0U].row, static_cast(row - report.rows.data())) | EXPECT_NE(report.warnings[0U].message.find(""shell-contract""), std::string::npos) | EXPECT_NE(report.warnings[0U].message.find(""UR1""), std::string::npos)" "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 2U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-exceedance"") | EXPECT_EQ(report.warnings[1U].code, ""rotation-reference-rms-exceedance"") | ASSERT_NE(row, nullptr) | EXPECT_FALSE(row->blocking) | EXPECT_FALSE(row->within_tolerance) | EXPECT_EQ(report.warnings[0U].row, static_cast(row - report.rows.data())) | EXPECT_NE(report.warnings[0U].message.find(""shell-contract""), std::string::npos) | EXPECT_NE(report.warnings[0U].message.find(""UR1""), std::string::npos)" -Refactor tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationRmsExceedanceWarnsWhenEveryRotationRowPasses Mitc4ReferenceComparison.RotationRmsExceedanceWarnsWhenEveryRotationRowPasses; assertion 5개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationRmsExceedanceWarnsWhenEveryRotationRowPasses 유지 원문 검사 body 및 assertion 동일. b300a3ed2c250fb7fe702e7abdc96b7f2d90a9231c2f09107719e9be524a4521 b300a3ed2c250fb7fe702e7abdc96b7f2d90a9231c2f09107719e9be524a4521 "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 1U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-rms-exceedance"") | EXPECT_TRUE(std::all_of(report.rows.begin(), report.rows.end(), [](const fesa::test::Mitc4RowDecision& row) { return row.within_tolerance; }))" "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 1U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-rms-exceedance"") | EXPECT_TRUE(std::all_of(report.rows.begin(), report.rows.end(), [](const fesa::test::Mitc4RowDecision& row) { return row.within_tolerance; }))" -Refactor tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationRowAndRmsExceedancesProduceSeparateWarnings Mitc4ReferenceComparison.RotationRowAndRmsExceedancesProduceSeparateWarnings; assertion 7개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationRowAndRmsExceedancesProduceSeparateWarnings 유지 원문 검사 body 및 assertion 동일. deca37dbcad9f79f872439a23d198ead553f7e589eddb78d69f9c74acd722c39 deca37dbcad9f79f872439a23d198ead553f7e589eddb78d69f9c74acd722c39 "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 2U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-exceedance"") | EXPECT_EQ(report.warnings[1U].code, ""rotation-reference-rms-exceedance"") | EXPECT_LT(report.warnings[0U].row, report.rows.size()) | EXPECT_LT(report.warnings[1U].row, report.rows.size())" "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 2U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-exceedance"") | EXPECT_EQ(report.warnings[1U].code, ""rotation-reference-rms-exceedance"") | EXPECT_LT(report.warnings[0U].row, report.rows.size()) | EXPECT_LT(report.warnings[1U].row, report.rows.size())" -Refactor tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.ReportsMetricsVectorsWorstRowAndJsonDeterministically Mitc4ReferenceComparison.ReportsMetricsVectorsWorstRowAndJsonDeterministically; assertion 18개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.ReportsMetricsVectorsWorstRowAndJsonDeterministically 유지 원문 검사 body 및 assertion 동일. cff2c517222a6a1e2b7e9aba2c8336edfcb6740cb671e64b4a0ab0cb9c1172c6 cff2c517222a6a1e2b7e9aba2c8336edfcb6740cb671e64b4a0ab0cb9c1172c6 "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.metrics.size(), 2U) | ASSERT_EQ(report.vector_metrics.size(), 2U) | EXPECT_NEAR(report.vector_metrics[0U].displacement_norm_error, std::sqrt(0.3125) * 1.0e-9, 1.0e-21) | EXPECT_DOUBLE_EQ(report.vector_metrics[0U].rotation_norm_error, 0.75e-9) | ASSERT_LT(report.worst_row, report.rows.size()) | EXPECT_EQ(report.rows[report.worst_row].component, ""UR1"") | EXPECT_TRUE(std::isfinite(metric.reference_scale)) | EXPECT_TRUE(std::isfinite(metric.near_zero_band)) | EXPECT_TRUE(std::isfinite(metric.maximum_absolute_error)) | EXPECT_TRUE(std::isfinite(metric.relative_rms)) | EXPECT_FALSE(metric.components.empty()) | EXPECT_LT(metric.worst_row, report.rows.size()) | ASSERT_TRUE(fesa::test::Mitc4ReferenceComparison::WriteDeterministicJson( report, json_a) .IsOk()) | ASSERT_TRUE(fesa::test::Mitc4ReferenceComparison::WriteDeterministicJson( report, json_b) .IsOk()) | EXPECT_EQ(first, ReadBytes(json_b)) | EXPECT_NE(first.find(key), std::string::npos)" "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.metrics.size(), 2U) | ASSERT_EQ(report.vector_metrics.size(), 2U) | EXPECT_NEAR(report.vector_metrics[0U].displacement_norm_error, std::sqrt(0.3125) * 1.0e-9, 1.0e-21) | EXPECT_DOUBLE_EQ(report.vector_metrics[0U].rotation_norm_error, 0.75e-9) | ASSERT_LT(report.worst_row, report.rows.size()) | EXPECT_EQ(report.rows[report.worst_row].component, ""UR1"") | EXPECT_TRUE(std::isfinite(metric.reference_scale)) | EXPECT_TRUE(std::isfinite(metric.near_zero_band)) | EXPECT_TRUE(std::isfinite(metric.maximum_absolute_error)) | EXPECT_TRUE(std::isfinite(metric.relative_rms)) | EXPECT_FALSE(metric.components.empty()) | EXPECT_LT(metric.worst_row, report.rows.size()) | ASSERT_TRUE(fesa::test::Mitc4ReferenceComparison::WriteDeterministicJson( report, json_a) .IsOk()) | ASSERT_TRUE(fesa::test::Mitc4ReferenceComparison::WriteDeterministicJson( report, json_b) .IsOk()) | EXPECT_EQ(first, ReadBytes(json_b)) | EXPECT_NE(first.find(key), std::string::npos)" -Refactor tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RequiresOnlyDeclaredInputCsvAndHdf5 Mitc4ReferenceComparison.RequiresOnlyDeclaredInputCsvAndHdf5; assertion 3개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RequiresOnlyDeclaredInputCsvAndHdf5 유지 원문 검사 body 및 assertion 동일. 5e8e14898d5f4d7dc448a30743686c8627513240f85ab704fe3dc6e23c603a55 5e8e14898d5f4d7dc448a30743686c8627513240f85ab704fe3dc6e23c603a55 "EXPECT_EQ(names, (std::vector{""case.inp"", ""displacements.csv"", ""results.h5""})) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().passed)" "EXPECT_EQ(names, (std::vector{""case.inp"", ""displacements.csv"", ""results.h5""})) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().passed)" -Refactor tests/reference/mitc4_reference_comparison_test.cpp support@1-476 helper/oracle/fixture/include/static assertion 구간: Hdf5Handle, if, RequireId, RequireHdf, MakeUtf8StringType, WriteStringAttribute, WriteUint64Attribute, CreateGroup, ComparisonValueRow, DefaultRows, Hdf5Options, NodeWriteRow, ElementWriteRow, WriteNodes, for, WriteElements, WriteDisplacement, WriteCsv, ContractFixture, ReferenceCase, ExpectFailureCode, FindRow, find_if, FindMetric, ReadBytes tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 37402c89c01cf3d2cc2e8ab77859308b01ab38311dacae197ad4bc1c5b5ab9f9 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/mitc4_reference_comparison_test.cpp support@509-510 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0395266b04005731c3a8af3c854de2e8675b475916ea8b790258cd372ba59d80 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/mitc4_reference_comparison_test.cpp support@591-592 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bbe05c4478ba04dae1068ff83f56d7e512486c768824cd8b6645449c28f0076c 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/mitc4_reference_comparison_test.cpp support@638-639 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ee84c2fb6946961d9421c461d0c0de38916103a6aa11929f0b95ecb0bae198a2 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/mitc4_reference_comparison_test.cpp support@706-707 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 54b3ad86c7b60c18d9bd032f8ba2e7e827c96c6da35e0194fb82dc04afcbae8e 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/mitc4_reference_comparison_test.cpp support@755-756 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b1f4e55b34b476926e1cf7fe2ada3941a66cdc5cd6e79bd7e94ad257167f6dcc 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/mitc4_reference_comparison_test.cpp support@772-773 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/nonlinear_static_reference_cases_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/reference/nonlinear_static_reference_cases_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d50d0cc07497cb23b71c50e59b5eba6896d601f76c57a416cb5d8fe2f950b269 d50d0cc07497cb23b71c50e59b5eba6896d601f76c57a416cb5d8fe2f950b269 해당 없음 해당 없음 -Refactor tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.AuditsEveryDeclaredArtifactBeforeExecution NonlinearStaticReference.AuditsEveryDeclaredArtifactBeforeExecution; assertion 8개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.AuditsEveryDeclaredArtifactBeforeExecution 유지 원문 검사 body 및 assertion 동일. 188bdb8763fbe96d17021a85b71a95d57a69789bc2d7a07ca0d86dbceb1d6c70 188bdb8763fbe96d17021a85b71a95d57a69789bc2d7a07ca0d86dbceb1d6c70 "ASSERT_TRUE(nonlinear_artifacts.HasValue()) | ASSERT_EQ(nonlinear_artifacts.Value().size(), 4U) | EXPECT_EQ(nonlinear_artifacts.Value()[0U].sha256, ""4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2"") | EXPECT_EQ(nonlinear_artifacts.Value()[3U].sha256, ""5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F"") | ASSERT_TRUE(linear_artifacts.HasValue()) | ASSERT_EQ(linear_artifacts.Value().size(), 4U) | EXPECT_EQ(linear_artifacts.Value()[0U].sha256, ""4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF"") | EXPECT_EQ(linear_artifacts.Value()[3U].sha256, ""2B75A5B0DEB045A283C9BB7E9B1153B79F7537FF487214BF4A23316B59B660A7"")" "ASSERT_TRUE(nonlinear_artifacts.HasValue()) | ASSERT_EQ(nonlinear_artifacts.Value().size(), 4U) | EXPECT_EQ(nonlinear_artifacts.Value()[0U].sha256, ""4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2"") | EXPECT_EQ(nonlinear_artifacts.Value()[3U].sha256, ""5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F"") | ASSERT_TRUE(linear_artifacts.HasValue()) | ASSERT_EQ(linear_artifacts.Value().size(), 4U) | EXPECT_EQ(linear_artifacts.Value()[0U].sha256, ""4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF"") | EXPECT_EQ(linear_artifacts.Value()[3U].sha256, ""2B75A5B0DEB045A283C9BB7E9B1153B79F7537FF487214BF4A23316B59B660A7"")" -Refactor tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.CopiesRunsComparesAndPreservesTheReadOnlyReferenceInventory NonlinearStaticReference.CopiesRunsComparesAndPreservesTheReadOnlyReferenceInventory; assertion 16개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.CopiesRunsComparesAndPreservesTheReadOnlyReferenceInventory 유지 원문 검사 body 및 assertion 동일. 2eede76606712cf98bc621846084840a3172005b4d3d556415eeb01cef3e286a 2eede76606712cf98bc621846084840a3172005b4d3d556415eeb01cef3e286a "ASSERT_TRUE(before.HasValue()) | ASSERT_TRUE(copied.HasValue()) | EXPECT_NE(copied.Value().parent_path(), reference_case.original_input_path.parent_path()) | EXPECT_EQ(ReadBytes(copied.Value()), ReadBytes(reference_case.original_input_path)) | ASSERT_TRUE(generated.HasValue()) | EXPECT_EQ(generated.Value().copied_input_path, copied.Value()) | EXPECT_TRUE(std::filesystem::is_regular_file( generated.Value().generated_results_hdf5)) | EXPECT_TRUE( std::filesystem::is_regular_file(generated.Value().generated_log_path)) | EXPECT_EQ(generated.Value().generated_results_hdf5.filename(), case_id == ""shellnl-s4-final"" ? ""shellNL_results.h5"" : ""shell_results.h5"") | EXPECT_EQ( generated.Value().generated_log_path.filename(), case_id == ""shellnl-s4-final"" ? ""shellNL_log.txt"" : ""shell_log.txt"") | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().blocking_passed) | EXPECT_EQ(comparison.Value().copied_input_path, copied.Value()) | EXPECT_EQ(comparison.Value().generated_log_path, generated.Value().generated_log_path) | EXPECT_EQ(FindFamily(comparison.Value(), ""RM3""), nullptr) | ASSERT_TRUE(after.HasValue())" "ASSERT_TRUE(before.HasValue()) | ASSERT_TRUE(copied.HasValue()) | EXPECT_NE(copied.Value().parent_path(), reference_case.original_input_path.parent_path()) | EXPECT_EQ(ReadBytes(copied.Value()), ReadBytes(reference_case.original_input_path)) | ASSERT_TRUE(generated.HasValue()) | EXPECT_EQ(generated.Value().copied_input_path, copied.Value()) | EXPECT_TRUE(std::filesystem::is_regular_file( generated.Value().generated_results_hdf5)) | EXPECT_TRUE( std::filesystem::is_regular_file(generated.Value().generated_log_path)) | EXPECT_EQ(generated.Value().generated_results_hdf5.filename(), case_id == ""shellnl-s4-final"" ? ""shellNL_results.h5"" : ""shell_results.h5"") | EXPECT_EQ( generated.Value().generated_log_path.filename(), case_id == ""shellnl-s4-final"" ? ""shellNL_log.txt"" : ""shell_log.txt"") | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().blocking_passed) | EXPECT_EQ(comparison.Value().copied_input_path, copied.Value()) | EXPECT_EQ(comparison.Value().generated_log_path, generated.Value().generated_log_path) | EXPECT_EQ(FindFamily(comparison.Value(), ""RM3""), nullptr) | ASSERT_TRUE(after.HasValue())" -Refactor tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.RejectsInvalidHdf5BeforeToleranceAndKeepsWarningOnlyClassification NonlinearStaticReference.RejectsInvalidHdf5BeforeToleranceAndKeepsWarningOnlyClassification; assertion 4개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.RejectsInvalidHdf5BeforeToleranceAndKeepsWarningOnlyClassification 유지 원문 검사 body 및 assertion 동일. c212189f32ba963e3f1464a12d8527079d439ef8c08cf77fa6186ab4c701cf1d c212189f32ba963e3f1464a12d8527079d439ef8c08cf77fa6186ab4c701cf1d ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | EXPECT_FALSE( fesa::test::CompareHdf5ToReferenceCsv(reference_case, invalid_hdf5) .HasValue()) | EXPECT_EQ( fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kWarningOnlyDifferences) ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | EXPECT_FALSE( fesa::test::CompareHdf5ToReferenceCsv(reference_case, invalid_hdf5) .HasValue()) | EXPECT_EQ( fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kWarningOnlyDifferences) -Refactor tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.AuditsRetainedStaticArtifacts NonlinearStaticReference.AuditsRetainedStaticArtifacts; assertion 7개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.AuditsRetainedStaticArtifacts 유지 원문 검사 body 및 assertion 동일. d8455237b6913bfc17eb366ce869732b1034a695dbc6da8104f52942fa5fa6fb d8455237b6913bfc17eb366ce869732b1034a695dbc6da8104f52942fa5fa6fb ASSERT_TRUE(before.HasValue()) | ASSERT_EQ(before.Value().size(), 4U) | ASSERT_TRUE(copied.HasValue()) | EXPECT_NE(copied.Value().parent_path(), reference_case.original_input_path.parent_path()) | ASSERT_TRUE(generated.HasValue()) | EXPECT_TRUE(std::filesystem::is_regular_file( generated.Value().generated_results_hdf5)) | ASSERT_TRUE(after.HasValue()) ASSERT_TRUE(before.HasValue()) | ASSERT_EQ(before.Value().size(), 4U) | ASSERT_TRUE(copied.HasValue()) | EXPECT_NE(copied.Value().parent_path(), reference_case.original_input_path.parent_path()) | ASSERT_TRUE(generated.HasValue()) | EXPECT_TRUE(std::filesystem::is_regular_file( generated.Value().generated_results_hdf5)) | ASSERT_TRUE(after.HasValue()) -Refactor tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.ReviewOnlyLocalReactionsCannotChangeBlockingVerdict NonlinearStaticReference.ReviewOnlyLocalReactionsCannotChangeBlockingVerdict; assertion 4개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.ReviewOnlyLocalReactionsCannotChangeBlockingVerdict 유지 원문 검사 body 및 assertion 동일. 65b04d41c62639181a36905c13090411b957dc30b224c524136459e7b051deb4 65b04d41c62639181a36905c13090411b957dc30b224c524136459e7b051deb4 ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().external_blocking_passed) ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().external_blocking_passed) -Refactor tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.BlocksOnGlobalBalanceAndAcceptedFreeResidual NonlinearStaticReference.BlocksOnGlobalBalanceAndAcceptedFreeResidual; assertion 7개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.BlocksOnGlobalBalanceAndAcceptedFreeResidual 유지 원문 검사 body 및 assertion 동일. 007fcebce090b5bf09d568e58cd17470b556ad70894f09e2dc2703f4cec41e51 007fcebce090b5bf09d568e58cd17470b556ad70894f09e2dc2703f4cec41e51 ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | ASSERT_TRUE(comparison.HasValue()) | ASSERT_NE(found, comparison.Value().internal_equilibrium.end()) | EXPECT_TRUE(found->passed) | EXPECT_TRUE(comparison.Value().internal_blocking_passed) | EXPECT_NE(comparison.Value().constrained_reaction_resultant.force, zero_resultant) ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | ASSERT_TRUE(comparison.HasValue()) | ASSERT_NE(found, comparison.Value().internal_equilibrium.end()) | EXPECT_TRUE(found->passed) | EXPECT_TRUE(comparison.Value().internal_blocking_passed) | EXPECT_NE(comparison.Value().constrained_reaction_resultant.force, zero_resultant) -Refactor tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.RejectsMissingExtraDuplicateAndNonfiniteRowsBeforeToleranceAndRecordsReviewOnlyFindings NonlinearStaticReference.RejectsMissingExtraDuplicateAndNonfiniteRowsBeforeToleranceAndRecordsReviewOnlyFindings; assertion 3개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.RejectsMissingExtraDuplicateAndNonfiniteRowsBeforeToleranceAndRecordsReviewOnlyFindings 유지 원문 검사 body 및 assertion 동일. f98dddaed34ee9b825986ce96db9d50e870ce4a58ceaa9e262995c448f58d601 f98dddaed34ee9b825986ce96db9d50e870ce4a58ceaa9e262995c448f58d601 "EXPECT_EQ(fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kFailed) | EXPECT_EQ(report.precheck_findings[1U].diagnostic_code, ""duplicate-row"") | EXPECT_EQ(report.precheck_findings[2U].diagnostic_code, ""nonfinite-row"")" "EXPECT_EQ(fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kFailed) | EXPECT_EQ(report.precheck_findings[1U].diagnostic_code, ""duplicate-row"") | EXPECT_EQ(report.precheck_findings[2U].diagnostic_code, ""nonfinite-row"")" -Refactor tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.GlobalForceAndMomentBalanceUseApprovedInclusiveOneEighthGate NonlinearStaticReference.GlobalForceAndMomentBalanceUseApprovedInclusiveOneEighthGate; assertion 9개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.GlobalForceAndMomentBalanceUseApprovedInclusiveOneEighthGate 유지 원문 검사 body 및 assertion 동일. 37b6f0097c7fdc4525f9c98325a913cc1c66be9a852f7ec7ea8d6dbe8e973336 37b6f0097c7fdc4525f9c98325a913cc1c66be9a852f7ec7ea8d6dbe8e973336 EXPECT_TRUE(below.passed) | ASSERT_TRUE(below.normalized_metric.has_value()) | EXPECT_EQ(*below.normalized_metric, 5.0e-9) | EXPECT_TRUE(boundary.passed) | ASSERT_TRUE(boundary.normalized_metric.has_value()) | EXPECT_EQ(*boundary.normalized_metric, 1.0e-8) | EXPECT_FALSE(above.passed) | ASSERT_TRUE(above.normalized_metric.has_value()) | EXPECT_GT(*above.normalized_metric, 1.0e-8) EXPECT_TRUE(below.passed) | ASSERT_TRUE(below.normalized_metric.has_value()) | EXPECT_EQ(*below.normalized_metric, 5.0e-9) | EXPECT_TRUE(boundary.passed) | ASSERT_TRUE(boundary.normalized_metric.has_value()) | EXPECT_EQ(*boundary.normalized_metric, 1.0e-8) | EXPECT_FALSE(above.passed) | ASSERT_TRUE(above.normalized_metric.has_value()) | EXPECT_GT(*above.normalized_metric, 1.0e-8) -Refactor tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.GlobalForceAndMomentExactZeroScaleRequiresExactZeroBalance NonlinearStaticReference.GlobalForceAndMomentExactZeroScaleRequiresExactZeroBalance; assertion 6개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.GlobalForceAndMomentExactZeroScaleRequiresExactZeroBalance 유지 원문 검사 body 및 assertion 동일. 04cc9d2dc3f468c5abd9317787db0c7dea8bb935021cf0bc51375c2e8a90d1bc 04cc9d2dc3f468c5abd9317787db0c7dea8bb935021cf0bc51375c2e8a90d1bc EXPECT_TRUE(exact_zero.passed) | EXPECT_EQ(exact_zero.scale, 0.0) | EXPECT_FALSE(exact_zero.normalized_metric.has_value()) | EXPECT_FALSE(nonzero.passed) | EXPECT_EQ(nonzero.scale, 0.0) | EXPECT_FALSE(nonzero.normalized_metric.has_value()) EXPECT_TRUE(exact_zero.passed) | EXPECT_EQ(exact_zero.scale, 0.0) | EXPECT_FALSE(exact_zero.normalized_metric.has_value()) | EXPECT_FALSE(nonzero.passed) | EXPECT_EQ(nonzero.scale, 0.0) | EXPECT_FALSE(nonzero.normalized_metric.has_value()) -Refactor tests/reference/nonlinear_static_reference_cases_test.cpp support@1-113 helper/oracle/fixture/include/static assertion 구간: ReadBytes, if, MakeCase, ExpectSnapshotsEqual, FindFamily, find_if, ExpectFamily, ExpectBlockingFamiliesPassed, for, ExpectInternalFamiliesPassed tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 287a99d8f479a4d4ed54bfe04a80c303dd3ef8d3b6dd67665ce65ec0404d6d3b 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/nonlinear_static_reference_cases_test.cpp support@134-135 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 90e14ecb07fccdcf231e83a52c8f744d9319ba16ae7f04c27256c406a6429dac 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/nonlinear_static_reference_cases_test.cpp support@202-203 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 87ef91571b7fcd7d7161bb8b385c8e0bfdc90da3dc29f8a77c0e4592e5be6f83 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/nonlinear_static_reference_cases_test.cpp support@246-247 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 75ed650921b2a719d01db3b9a8699b87ebb403589335c0dab3766f91a93dd189 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/nonlinear_static_reference_cases_test.cpp support@273-274 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3989248f6a5e57cdd68d8ef2bf85830b385196f16f2e293b504208192705563c 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/nonlinear_static_reference_cases_test.cpp support@295-296 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f580803fc945d7c5cc37b9dcda1e262d1c4026b9a5b6544073525786b07f48be 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/nonlinear_static_reference_cases_test.cpp support@338-339 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a7955cbfd2f91685d3d922391e61a1c415c6daed4cf7b2eddc4407e3fe715bc0 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/nonlinear_static_reference_cases_test.cpp support@366-367 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3e9b6724351d2c4044c018875a3878cef2b85ee06c40f3ad50c76fe5acc6c8fb 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/nonlinear_static_reference_cases_test.cpp support@393-394 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d365ebad227c3cdf28bfb737c8976d06bc3484e90b5556e13a91605a5367aabe 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/nonlinear_static_reference_comparison.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/nonlinear_static_reference_comparison.cpp file 유지 SpatialMoment helper는 production inverse API 제거에 따라 독립 closed-form oracle로 이관한다. 비교 family·global balance·RF/RM review-only·finite 사전 gate는 유지한다. 64d9fa7d7067830bedd7316e66d68c32839c7e701fa8f6a49421cbbcce3938a2 64d9fa7d7067830bedd7316e66d68c32839c7e701fa8f6a49421cbbcce3938a2 해당 없음 해당 없음 -Refactor tests/reference/nonlinear_static_reference_comparison.cpp support@1-1721 helper/oracle/fixture/include/static assertion 구간: fesa, CaseContract, ContractFor, if, ComparisonFailure, Fail, FailureStatus, Normalized, IsDescendantOf, GenericPath, Trim, find_if_not, UppercaseAscii, transform, ReadBytes, RotateRight, Sha256, for, while, Fnv1a64, DeclaredArtifact, DeclaredArtifacts, Snapshot, SplitCsv, ParsePositiveLabel, ParseFiniteDouble, CsvWideRow, ReadCsvWideRows, Hdf5Handle, Hdf5ErrorSilencer, Hdf5VlenReclaimer, Reclaim, RequireId, RequireHdf, OpenDataset, Dimensions, MakeUtf8StringType, ReadStringAttribute, ReadUint64Attribute, RequireStringAttribute, NodeReadRow, Hdf5Node, ReadNodes, AcceptedFrameReadRow, ReadFactorOneFrame, ReadNodalDataset, ReadConstraintMask, Hdf5Projection, CopiedInputPathFor, ReadGlobalBalance, ReadNonlinearHdf5, RequireExactNodeLabels, RequirePressureInstance, Key, IsSelected, ProjectCsv, ProjectHdf5, EvaluateFamily, AppendFamily, ExpectedConstrainedLabels, RequiredConstrainedLabels, VectorAt, SpatialMoment, MaskedResidual, InfinityNorm, FreeRowCount, AppendInternal, AppendFreeResidual, AppendGlobalBalance, AppendInternalEquilibrium, DerivedLogPath, DerivedResultsPath, MakeReport, CompareLinearCase, CompareNonlinearCase, ComparePressureCase, NonlinearInternalEquilibriumReport, EvaluateGlobalBalance, ArtifactCheck, catch, CopyInputToExecutionDirectory, RunFesaApplicationOnCopiedInput, CompareHdf5ToReferenceCsv, ClassifyReferenceComparison, any_of, BuildReferenceComparisonReport tests/reference/nonlinear_static_reference_comparison.cpp file-support 유지 SpatialMoment helper는 production inverse API 제거에 따라 독립 closed-form oracle로 이관한다. 비교 family·global balance·RF/RM review-only·finite 사전 gate는 유지한다. 97dfe70f99b977337fc72e71aec2c6097d686525bd022b595ba95f7343275488 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/nonlinear_static_reference_comparison.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/nonlinear_static_reference_comparison.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6f3832cec9b2ab5770948480045b2e454a5d0bc8fd2b6c38f0e134fbaf2983be 6f3832cec9b2ab5770948480045b2e454a5d0bc8fd2b6c38f0e134fbaf2983be 해당 없음 해당 없음 -Refactor tests/reference/nonlinear_static_reference_comparison.h support@1-143 helper/oracle/fixture/include/static assertion 구간: fesa, NonlinearReferenceArtifactDisposition, NonlinearReferenceCase, ArtifactSnapshot, NonlinearReferenceDisposition, NonlinearReferenceRowKey, NonlinearReferenceFamilyReport, NonlinearReferencePrecheckFinding, NonlinearInternalEquilibriumReport, ConstrainedReactionResultantReport, GeneratedRunArtifacts, NonlinearReferenceComparisonReport, NonlinearReferenceClassification tests/reference/nonlinear_static_reference_comparison.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e61520b0bf03ec971e428abd42887d86bd74ee157eb174f0da25be3ca00d20ae 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/reference_comparison.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/reference_comparison.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9680d6dd2deef156b5c8d000167cd6d3f6e29fe1b1fecc5a0f9cd6ebc0fa1602 9680d6dd2deef156b5c8d000167cd6d3f6e29fe1b1fecc5a0f9cd6ebc0fa1602 해당 없음 해당 없음 -Refactor tests/reference/reference_comparison.cpp support@1-1519 helper/oracle/fixture/include/static assertion 구간: fesa, ComparisonFailure, Fail, ComparisonFailureStatus, Trim, find_if_not, CollapseWhitespace, for, if, AsciiLower, transform, SplitCsvLine, while, ParsePositiveLabel, ParseFiniteDouble, WideReferenceRow, ReferenceTable, SectionReferenceRow, SectionReferenceTable, ReadReferenceCsv, find_if, ReadSectionReferenceCsv, RequireExactArtifactInventory, increment, ReadApprovedDomain, Hdf5Handle, Hdf5ErrorSilencer, Hdf5VlenReclaimer, RequireId, RequireHdf, OpenDataset, DatasetDimensions, ReadStringAttribute, ReadUint64Attribute, RequireStringAttribute, RequireResultAttributes, ReadDoubleDataset, RequireCompoundMembers, MakeVariableStringType, NodeMemoryRow, ElementMemoryRow, HdfNode, HdfElement, ReadNodeRows, ReadElementRows, RequireFiniteStress, StressValue, ExpectedLocalAxes, HdfProjection, ReadHdfProjection, OrderedRows, OrderedSectionRows, CanonicalRow, AppendNodalRows, AppendSectionRows, BranchName, switch, EvaluateFamily, MakePhysicsEvidence, QuantityName, WriteJsonString, WriteCanonicalRow, WriteArray, WriteStrings, FiniteReport, all_of, Result, Compare, catch, WriteDeterministicJson tests/reference/reference_comparison.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4f6eadb9f7705f35da852e0f4cf63f1af16a1f951faf90b6895841a4a7b12380 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/reference_comparison.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/reference_comparison.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1ca9383ffed095fdb372fe7d16ec3d9c6fbace46c7a103e94c27220fc99b56b0 1ca9383ffed095fdb372fe7d16ec3d9c6fbace46c7a103e94c27220fc99b56b0 해당 없음 해당 없음 -Refactor tests/reference/reference_comparison.h support@1-102 helper/oracle/fixture/include/static assertion 구간: fesa, ComparisonQuantity, CanonicalComparisonRow, RowDecision, ComponentMetrics, PhysicsEvidence, ComparisonReport, ReferenceComparison tests/reference/reference_comparison.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1f39624e67c37926b656243337baed8a87b43b96547388e0d41dd6a25db0e37e 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/reference_comparison_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/reference/reference_comparison_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e39732a6cb8747725a43f7fc6341fd4688d04cd3f9f936ec33cbc79b232886af e39732a6cb8747725a43f7fc6341fd4688d04cd3f9f936ec33cbc79b232886af 해당 없음 해당 없음 -Refactor tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.PrecheckRejectsMissingSchemaDuplicateAndNonfiniteRows ReferenceComparisonContract.PrecheckRejectsMissingSchemaDuplicateAndNonfiniteRows; assertion 7개 tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.PrecheckRejectsMissingSchemaDuplicateAndNonfiniteRows 유지 원문 검사 body 및 assertion 동일. 810238882b3a881527ffba11344288d641d606f3538f88d2f5e55adba4409905 810238882b3a881527ffba11344288d641d606f3538f88d2f5e55adba4409905 ASSERT_TRUE(std::filesystem::remove(fixture.Legacy() / kDisplacementName)) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_GT(lines.size(), 2U) ASSERT_TRUE(std::filesystem::remove(fixture.Legacy() / kDisplacementName)) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_GT(lines.size(), 2U) -Refactor tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.AppliesSharedFamilyScaleAndNearZeroBranchesWithoutAnAbsoluteGate ReferenceComparisonContract.AppliesSharedFamilyScaleAndNearZeroBranchesWithoutAnAbsoluteGate; assertion 28개 tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.AppliesSharedFamilyScaleAndNearZeroBranchesWithoutAnAbsoluteGate 유지 원문 검사 body 및 assertion 동일. f6ca0c5aae73df95b70d24611a1948a63e24dc842bc9da29f03f7182f05ad9fd f6ca0c5aae73df95b70d24611a1948a63e24dc842bc9da29f03f7182f05ad9fd "ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(report.passed) | EXPECT_EQ(report.rows.size(), kExpectedRowCount) | EXPECT_EQ(report.metrics.size(), kExpectedMetricCount) | ASSERT_NE(zero, nullptr) | ASSERT_NE(near_zero, nullptr) | ASSERT_NE(deliberate_failure, nullptr) | EXPECT_DOUBLE_EQ(zero->reference.value, 0.0) | EXPECT_DOUBLE_EQ(zero->fesa.value, 0.0) | EXPECT_DOUBLE_EQ(zero->tolerance, near_zero_band) | EXPECT_TRUE(zero->passed) | EXPECT_TRUE(near_zero->passed) | EXPECT_FALSE(deliberate_failure->passed) | EXPECT_EQ(near_zero->tolerance_branch, ""near-zero"") | EXPECT_FALSE(near_zero->relative_error_applicable) | ASSERT_NE(my_metric, nullptr) | EXPECT_DOUBLE_EQ(my_metric->reference_scale, 1.0e7) | EXPECT_EQ(my_metric->components, (std::vector{""T"", ""My"", ""Mz""})) | ASSERT_NE(scaled, nullptr) | ASSERT_NE(residue, nullptr) | EXPECT_DOUBLE_EQ(scaled->tolerance, 5.0e5) | EXPECT_DOUBLE_EQ(scaled->absolute_error, 4.999e5) | EXPECT_TRUE(scaled->passed) | EXPECT_DOUBLE_EQ(residue->reference.value, -1.5625e-2) | EXPECT_DOUBLE_EQ(residue->fesa.value, 0.0) | EXPECT_DOUBLE_EQ(residue->absolute_error, 1.5625e-2) | EXPECT_DOUBLE_EQ(residue->tolerance, 1.0e5) | EXPECT_TRUE(residue->passed)" "ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(report.passed) | EXPECT_EQ(report.rows.size(), kExpectedRowCount) | EXPECT_EQ(report.metrics.size(), kExpectedMetricCount) | ASSERT_NE(zero, nullptr) | ASSERT_NE(near_zero, nullptr) | ASSERT_NE(deliberate_failure, nullptr) | EXPECT_DOUBLE_EQ(zero->reference.value, 0.0) | EXPECT_DOUBLE_EQ(zero->fesa.value, 0.0) | EXPECT_DOUBLE_EQ(zero->tolerance, near_zero_band) | EXPECT_TRUE(zero->passed) | EXPECT_TRUE(near_zero->passed) | EXPECT_FALSE(deliberate_failure->passed) | EXPECT_EQ(near_zero->tolerance_branch, ""near-zero"") | EXPECT_FALSE(near_zero->relative_error_applicable) | ASSERT_NE(my_metric, nullptr) | EXPECT_DOUBLE_EQ(my_metric->reference_scale, 1.0e7) | EXPECT_EQ(my_metric->components, (std::vector{""T"", ""My"", ""Mz""})) | ASSERT_NE(scaled, nullptr) | ASSERT_NE(residue, nullptr) | EXPECT_DOUBLE_EQ(scaled->tolerance, 5.0e5) | EXPECT_DOUBLE_EQ(scaled->absolute_error, 4.999e5) | EXPECT_TRUE(scaled->passed) | EXPECT_DOUBLE_EQ(residue->reference.value, -1.5625e-2) | EXPECT_DOUBLE_EQ(residue->fesa.value, 0.0) | EXPECT_DOUBLE_EQ(residue->absolute_error, 1.5625e-2) | EXPECT_DOUBLE_EQ(residue->tolerance, 1.0e5) | EXPECT_TRUE(residue->passed)" -Refactor tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.ReportsEveryRowAndAggregateMetricDeterministically ReferenceComparisonContract.ReportsEveryRowAndAggregateMetricDeterministically; assertion 24개 tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.ReportsEveryRowAndAggregateMetricDeterministically 유지 원문 검사 body 및 assertion 동일. 3aeb231f836acf51af5432b7c06df1e786278ff6fceeb3a53d50a9377653df3c 3aeb231f836acf51af5432b7c06df1e786278ff6fceeb3a53d50a9377653df3c "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.metrics.size(), kExpectedMetricCount) | EXPECT_TRUE(std::all_of( report.rows.begin(), report.rows.end(), [](const fesa::test::RowDecision& row) { return row.passed; })) | ASSERT_NE(metric, nullptr) | ASSERT_NE(worst, nullptr) | EXPECT_EQ(metric->row_count, kNodeCount * 3U) | EXPECT_DOUBLE_EQ(metric->reference_scale, 1.90476272e-2) | EXPECT_DOUBLE_EQ(metric->maximum_absolute_error, 1.0e-9) | EXPECT_NEAR(metric->relative_rms, std::sqrt(1.25 / static_cast(kNodeCount * 3U)) * 1.0e-9 / metric->reference_scale, 1.0e-21) | EXPECT_EQ(metric->worst_row, static_cast(worst - report.rows.data())) | EXPECT_FALSE(report.stress_comparison_applicable) | EXPECT_NE(report.stress_comparison_reason.find(""N/A""), std::string::npos) | EXPECT_NE(report.stress_comparison_reason.find(""HDF5""), std::string::npos) | EXPECT_DOUBLE_EQ(report.physics_evidence.free_residual_norm, 0.0) | EXPECT_EQ(report.physics_evidence.applied_force, (std::array{0.0, 0.0, -1.0e6})) | EXPECT_EQ(report.physics_evidence.reaction_force, (std::array{0.0, 0.0, 1.0e6})) | EXPECT_EQ(report.physics_evidence.applied_moment_about_origin, (std::array{0.0, 1.0e7, 0.0})) | EXPECT_EQ(report.physics_evidence.reaction_moment_about_origin, (std::array{0.0, -1.0e7, 0.0})) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | ASSERT_TRUE( fesa::test::ReferenceComparison::WriteDeterministicJson(report, json_a) .IsOk()) | ASSERT_TRUE( fesa::test::ReferenceComparison::WriteDeterministicJson(report, json_b) .IsOk()) | EXPECT_EQ(first, ReadBytes(json_b)) | EXPECT_NE(first.find(required), std::string::npos)" "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.metrics.size(), kExpectedMetricCount) | EXPECT_TRUE(std::all_of( report.rows.begin(), report.rows.end(), [](const fesa::test::RowDecision& row) { return row.passed; })) | ASSERT_NE(metric, nullptr) | ASSERT_NE(worst, nullptr) | EXPECT_EQ(metric->row_count, kNodeCount * 3U) | EXPECT_DOUBLE_EQ(metric->reference_scale, 1.90476272e-2) | EXPECT_DOUBLE_EQ(metric->maximum_absolute_error, 1.0e-9) | EXPECT_NEAR(metric->relative_rms, std::sqrt(1.25 / static_cast(kNodeCount * 3U)) * 1.0e-9 / metric->reference_scale, 1.0e-21) | EXPECT_EQ(metric->worst_row, static_cast(worst - report.rows.data())) | EXPECT_FALSE(report.stress_comparison_applicable) | EXPECT_NE(report.stress_comparison_reason.find(""N/A""), std::string::npos) | EXPECT_NE(report.stress_comparison_reason.find(""HDF5""), std::string::npos) | EXPECT_DOUBLE_EQ(report.physics_evidence.free_residual_norm, 0.0) | EXPECT_EQ(report.physics_evidence.applied_force, (std::array{0.0, 0.0, -1.0e6})) | EXPECT_EQ(report.physics_evidence.reaction_force, (std::array{0.0, 0.0, 1.0e6})) | EXPECT_EQ(report.physics_evidence.applied_moment_about_origin, (std::array{0.0, 1.0e7, 0.0})) | EXPECT_EQ(report.physics_evidence.reaction_moment_about_origin, (std::array{0.0, -1.0e7, 0.0})) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | ASSERT_TRUE( fesa::test::ReferenceComparison::WriteDeterministicJson(report, json_a) .IsOk()) | ASSERT_TRUE( fesa::test::ReferenceComparison::WriteDeterministicJson(report, json_b) .IsOk()) | EXPECT_EQ(first, ReadBytes(json_b)) | EXPECT_NE(first.find(required), std::string::npos)" -Refactor tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.PreservesSectionEndpointIdentityWithoutStationNormalization ReferenceComparisonContract.PreservesSectionEndpointIdentityWithoutStationNormalization; assertion 10개 tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.PreservesSectionEndpointIdentityWithoutStationNormalization 유지 원문 검사 body 및 assertion 동일. 35b078826866908199d78ce70bc394087ad8ad257cc7db971e29412a67ab19d2 35b078826866908199d78ce70bc394087ad8ad257cc7db971e29412a67ab19d2 ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | ASSERT_NE(interior, nullptr) | EXPECT_DOUBLE_EQ(interior->fesa.value, 9.0e6 - 5.0) | EXPECT_DOUBLE_EQ(interior->reference.value, 9.0e6) | EXPECT_DOUBLE_EQ(interior->absolute_error, 5.0) | ASSERT_NE(adjacent, nullptr) | EXPECT_DOUBLE_EQ(adjacent->fesa.value, 9.0e6) | EXPECT_DOUBLE_EQ(adjacent->reference.value, 9.0e6) ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | ASSERT_NE(interior, nullptr) | EXPECT_DOUBLE_EQ(interior->fesa.value, 9.0e6 - 5.0) | EXPECT_DOUBLE_EQ(interior->reference.value, 9.0e6) | EXPECT_DOUBLE_EQ(interior->absolute_error, 5.0) | ASSERT_NE(adjacent, nullptr) | EXPECT_DOUBLE_EQ(adjacent->fesa.value, 9.0e6) | EXPECT_DOUBLE_EQ(adjacent->reference.value, 9.0e6) -Refactor tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.MapsEachSectionCsvComponentToItsDirectEndpointResultant ReferenceComparisonContract.MapsEachSectionCsvComponentToItsDirectEndpointResultant; assertion 15개 tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.MapsEachSectionCsvComponentToItsDirectEndpointResultant 유지 원문 검사 body 및 assertion 동일. cb0ba7caae79f4c0d6d33c2fe7d29658710974c27d49edc9d208987cd21dcb73 cb0ba7caae79f4c0d6d33c2fe7d29658710974c27d49edc9d208987cd21dcb73 ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_NE(n, nullptr) | ASSERT_NE(t, nullptr) | ASSERT_NE(my, nullptr) | ASSERT_NE(mz, nullptr) | EXPECT_DOUBLE_EQ(n->reference.value, 11.0) | EXPECT_DOUBLE_EQ(t->reference.value, 22.0) | EXPECT_DOUBLE_EQ(my->reference.value, 33.0) | EXPECT_DOUBLE_EQ(mz->reference.value, 44.0) | EXPECT_DOUBLE_EQ(n->fesa.value, 11.0) | EXPECT_DOUBLE_EQ(t->fesa.value, 22.0) | EXPECT_DOUBLE_EQ(my->fesa.value, 33.0) | EXPECT_DOUBLE_EQ(mz->fesa.value, 44.0) ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_NE(n, nullptr) | ASSERT_NE(t, nullptr) | ASSERT_NE(my, nullptr) | ASSERT_NE(mz, nullptr) | EXPECT_DOUBLE_EQ(n->reference.value, 11.0) | EXPECT_DOUBLE_EQ(t->reference.value, 22.0) | EXPECT_DOUBLE_EQ(my->reference.value, 33.0) | EXPECT_DOUBLE_EQ(mz->reference.value, 44.0) | EXPECT_DOUBLE_EQ(n->fesa.value, 11.0) | EXPECT_DOUBLE_EQ(t->fesa.value, 22.0) | EXPECT_DOUBLE_EQ(my->fesa.value, 33.0) | EXPECT_DOUBLE_EQ(mz->fesa.value, 44.0) -Refactor tests/reference/reference_comparison_test.cpp support@1-424 helper/oracle/fixture/include/static assertion 구간: ComparisonValues, SourceRoot, BinaryRoot, ReadBytes, if, WriteBytes, ReadLines, WriteLines, for, ReplaceFirst, ReferenceValues, MakeDefinition, WriteResultsFixture, ContractFixture, ExpectFailureCode, FindRow, find_if, FindMetric, FindSectionRow, ExpectExactRowInventory tests/reference/reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 26a9f2cdd31fc7384d94d10efdfe1ab22d82b8c620ee16874094069b4671958b 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/reference_tolerance_policy.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/reference_tolerance_policy.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b2e6065df0d673be20fb10fbf0ef58705fc04c1788b5e52d1faaf7ebda33274f b2e6065df0d673be20fb10fbf0ef58705fc04c1788b5e52d1faaf7ebda33274f 해당 없음 해당 없음 -Refactor tests/reference/reference_tolerance_policy.cpp support@1-138 helper/oracle/fixture/include/static assertion 구간: fesa, IsFiniteFamily, if, all_of, EvaluateFamilies, for, ReferenceToleranceEvaluation, Evaluate, EvaluateMitc4EigenFirstImplementation tests/reference/reference_tolerance_policy.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 27b71db22073ee923ba13a8c32bff7ea14ab488d80c2ceefb7767747b68d52f0 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/reference_tolerance_policy.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/reference_tolerance_policy.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9918e9b43e9b777dae620fc552badccc5570bb246a6499756df83b1c207f9e24 9918e9b43e9b777dae620fc552badccc5570bb246a6499756df83b1c207f9e24 해당 없음 해당 없음 -Refactor tests/reference/reference_tolerance_policy.h support@1-80 helper/oracle/fixture/include/static assertion 구간: fesa, ReferenceToleranceBranch, ReferenceToleranceRow, ReferenceToleranceFamily, ReferenceToleranceRowDecision, ReferenceToleranceFamilyDecision, ReferenceToleranceEvaluation, ReferenceTolerancePolicy tests/reference/reference_tolerance_policy.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. de2c46296fb2b5947a46c739ae21ad66802622b97ee4845543d3cd2a50ba03ac 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/reference_tolerance_policy_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/reference/reference_tolerance_policy_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. be4a8896f4847dec26c07578c91d97f23f132c8a97c2507e5614011f70aa600f be4a8896f4847dec26c07578c91d97f23f132c8a97c2507e5614011f70aa600f 해당 없음 해당 없음 -Refactor tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.AppliesRelativeAndNearZeroThresholdsAtTheirInclusiveBoundaries ReferenceTolerancePolicy.AppliesRelativeAndNearZeroThresholdsAtTheirInclusiveBoundaries; assertion 19개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.AppliesRelativeAndNearZeroThresholdsAtTheirInclusiveBoundaries 유지 원문 검사 body 및 assertion 동일. 0796acda78954b1bf9b52659b043f23a0435245c7198961ebd96d84b241c9265 0796acda78954b1bf9b52659b043f23a0435245c7198961ebd96d84b241c9265 ASSERT_TRUE(evaluation.valid) | ASSERT_EQ(evaluation.families.size(), 1U) | EXPECT_EQ(family.row_count, 4U) | EXPECT_DOUBLE_EQ(family.reference_scale, 100.0) | EXPECT_DOUBLE_EQ(family.near_zero_band, 1.0) | EXPECT_EQ(family.near_zero_count, 2U) | EXPECT_FALSE(family.passed) | ASSERT_EQ(family.rows.size(), 4U) | EXPECT_EQ(family.rows[0U].branch, ReferenceToleranceBranch::kRelative) | EXPECT_TRUE(family.rows[0U].relative_error_applicable) | EXPECT_DOUBLE_EQ(family.rows[0U].relative_error, 0.05) | EXPECT_DOUBLE_EQ(family.rows[0U].threshold, 5.0) | EXPECT_TRUE(family.rows[0U].passed) | EXPECT_FALSE(family.rows[1U].passed) | EXPECT_EQ(family.rows[2U].branch, ReferenceToleranceBranch::kNearZero) | EXPECT_FALSE(family.rows[2U].relative_error_applicable) | EXPECT_DOUBLE_EQ(family.rows[2U].threshold, 1.0) | EXPECT_TRUE(family.rows[2U].passed) | EXPECT_FALSE(family.rows[3U].passed) ASSERT_TRUE(evaluation.valid) | ASSERT_EQ(evaluation.families.size(), 1U) | EXPECT_EQ(family.row_count, 4U) | EXPECT_DOUBLE_EQ(family.reference_scale, 100.0) | EXPECT_DOUBLE_EQ(family.near_zero_band, 1.0) | EXPECT_EQ(family.near_zero_count, 2U) | EXPECT_FALSE(family.passed) | ASSERT_EQ(family.rows.size(), 4U) | EXPECT_EQ(family.rows[0U].branch, ReferenceToleranceBranch::kRelative) | EXPECT_TRUE(family.rows[0U].relative_error_applicable) | EXPECT_DOUBLE_EQ(family.rows[0U].relative_error, 0.05) | EXPECT_DOUBLE_EQ(family.rows[0U].threshold, 5.0) | EXPECT_TRUE(family.rows[0U].passed) | EXPECT_FALSE(family.rows[1U].passed) | EXPECT_EQ(family.rows[2U].branch, ReferenceToleranceBranch::kNearZero) | EXPECT_FALSE(family.rows[2U].relative_error_applicable) | EXPECT_DOUBLE_EQ(family.rows[2U].threshold, 1.0) | EXPECT_TRUE(family.rows[2U].passed) | EXPECT_FALSE(family.rows[3U].passed) -Refactor tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.RejectsFamiliesWhoseScaleRelativeRmsExceedsOnePercent ReferenceTolerancePolicy.RejectsFamiliesWhoseScaleRelativeRmsExceedsOnePercent; assertion 7개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.RejectsFamiliesWhoseScaleRelativeRmsExceedsOnePercent 유지 원문 검사 body 및 assertion 동일. c92918fb5b5c06da814ac1213a2b80b8af1ffd52bd0f11339468ab1ff87eed5f c92918fb5b5c06da814ac1213a2b80b8af1ffd52bd0f11339468ab1ff87eed5f ASSERT_TRUE(evaluation.valid) | EXPECT_EQ(family.row_count, 4U) | EXPECT_TRUE(std::all_of(family.rows.begin(), family.rows.end(), [](const auto& row) { return row.passed; })) | EXPECT_NEAR(family.relative_rms, 0.011, 1.0e-15) | EXPECT_FALSE(family.rms_passed) | EXPECT_FALSE(family.passed) | EXPECT_FALSE(evaluation.passed) ASSERT_TRUE(evaluation.valid) | EXPECT_EQ(family.row_count, 4U) | EXPECT_TRUE(std::all_of(family.rows.begin(), family.rows.end(), [](const auto& row) { return row.passed; })) | EXPECT_NEAR(family.relative_rms, 0.011, 1.0e-15) | EXPECT_FALSE(family.rms_passed) | EXPECT_FALSE(family.passed) | EXPECT_FALSE(evaluation.passed) -Refactor tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.FailsClosedForZeroScaleNonzeroErrorWithoutNonfiniteMetrics ReferenceTolerancePolicy.FailsClosedForZeroScaleNonzeroErrorWithoutNonfiniteMetrics; assertion 14개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.FailsClosedForZeroScaleNonzeroErrorWithoutNonfiniteMetrics 유지 원문 검사 body 및 assertion 동일. 38ca8bda67fdaa127b1694bc937e3ca56f701ea313ab767da299fc747b33c7de 38ca8bda67fdaa127b1694bc937e3ca56f701ea313ab767da299fc747b33c7de "ASSERT_TRUE(evaluation.valid) | EXPECT_EQ(family.row_count, 2U) | EXPECT_DOUBLE_EQ(family.reference_scale, 0.0) | EXPECT_DOUBLE_EQ(family.near_zero_band, 0.0) | EXPECT_EQ(family.near_zero_count, 2U) | EXPECT_EQ(family.diagnostic_code, ""zero-reference-scale-nonzero-error"") | EXPECT_EQ(family.rows[0U].branch, ReferenceToleranceBranch::kZeroScaleExact) | EXPECT_TRUE(family.rows[0U].passed) | EXPECT_FALSE(family.rows[1U].passed) | EXPECT_FALSE(family.rows[1U].relative_error_applicable) | EXPECT_TRUE(std::isfinite(family.relative_rms)) | EXPECT_DOUBLE_EQ(family.relative_rms, 0.0) | EXPECT_FALSE(family.rms_passed) | EXPECT_FALSE(family.passed)" "ASSERT_TRUE(evaluation.valid) | EXPECT_EQ(family.row_count, 2U) | EXPECT_DOUBLE_EQ(family.reference_scale, 0.0) | EXPECT_DOUBLE_EQ(family.near_zero_band, 0.0) | EXPECT_EQ(family.near_zero_count, 2U) | EXPECT_EQ(family.diagnostic_code, ""zero-reference-scale-nonzero-error"") | EXPECT_EQ(family.rows[0U].branch, ReferenceToleranceBranch::kZeroScaleExact) | EXPECT_TRUE(family.rows[0U].passed) | EXPECT_FALSE(family.rows[1U].passed) | EXPECT_FALSE(family.rows[1U].relative_error_applicable) | EXPECT_TRUE(std::isfinite(family.relative_rms)) | EXPECT_DOUBLE_EQ(family.relative_rms, 0.0) | EXPECT_FALSE(family.rms_passed) | EXPECT_FALSE(family.passed)" -Refactor tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.KeepsWarningOnlyFamilyExceedanceOutOfBlockingVerdict ReferenceTolerancePolicy.KeepsWarningOnlyFamilyExceedanceOutOfBlockingVerdict; assertion 5개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.KeepsWarningOnlyFamilyExceedanceOutOfBlockingVerdict 유지 원문 검사 body 및 assertion 동일. ea07bf7d6def7cbd89bc911f979f710846ad558b1711613f3abcc97e14be0b8a ea07bf7d6def7cbd89bc911f979f710846ad558b1711613f3abcc97e14be0b8a ASSERT_TRUE(evaluation.valid) | ASSERT_EQ(evaluation.families.size(), 2U) | EXPECT_TRUE(evaluation.families[0U].passed) | EXPECT_FALSE(evaluation.families[1U].passed) | EXPECT_TRUE(evaluation.passed) ASSERT_TRUE(evaluation.valid) | ASSERT_EQ(evaluation.families.size(), 2U) | EXPECT_TRUE(evaluation.families[0U].passed) | EXPECT_FALSE(evaluation.families[1U].passed) | EXPECT_TRUE(evaluation.passed) -Refactor tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.RejectsNonfiniteInputsBeforeToleranceEvaluation ReferenceTolerancePolicy.RejectsNonfiniteInputsBeforeToleranceEvaluation; assertion 3개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.RejectsNonfiniteInputsBeforeToleranceEvaluation 유지 원문 검사 body 및 assertion 동일. 42628fe515d6debce07e8553911bb1a6b74e316265a0702267056258db827b45 42628fe515d6debce07e8553911bb1a6b74e316265a0702267056258db827b45 "EXPECT_FALSE(evaluation.valid) | EXPECT_EQ(evaluation.diagnostic_code, ""nonfinite-comparison-value"") | EXPECT_TRUE(evaluation.families.empty())" "EXPECT_FALSE(evaluation.valid) | EXPECT_EQ(evaluation.diagnostic_code, ""nonfinite-comparison-value"") | EXPECT_TRUE(evaluation.families.empty())" -Refactor tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationDoesNotRelaxCommonPolicy ReferenceTolerancePolicy.EigenFirstImplementationDoesNotRelaxCommonPolicy; assertion 6개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationDoesNotRelaxCommonPolicy 유지 원문 검사 body 및 assertion 동일. d4090ddd26b57509606e7f1dfdbfd22996f95d19c5d761d6368b6c07a467aca2 d4090ddd26b57509606e7f1dfdbfd22996f95d19c5d761d6368b6c07a467aca2 ASSERT_TRUE(common.valid) | ASSERT_TRUE(eigen.valid) | EXPECT_FALSE(common.passed) | EXPECT_TRUE(eigen.passed) | EXPECT_DOUBLE_EQ(eigen.families[0].relative_rms, 0.05) | EXPECT_DOUBLE_EQ(common.families[0].relative_rms, eigen.families[0].relative_rms) ASSERT_TRUE(common.valid) | ASSERT_TRUE(eigen.valid) | EXPECT_FALSE(common.passed) | EXPECT_TRUE(eigen.passed) | EXPECT_DOUBLE_EQ(eigen.families[0].relative_rms, 0.05) | EXPECT_DOUBLE_EQ(common.families[0].relative_rms, eigen.families[0].relative_rms) -Refactor tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationPreservesZeroAndFiniteChecks ReferenceTolerancePolicy.EigenFirstImplementationPreservesZeroAndFiniteChecks; assertion 5개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationPreservesZeroAndFiniteChecks 유지 원문 검사 body 및 assertion 동일. 463cda2ec4b8c4b83cc64d2b655af56b24f310add1ee6bc486c3f319e6ad076a 463cda2ec4b8c4b83cc64d2b655af56b24f310add1ee6bc486c3f319e6ad076a "EXPECT_FALSE(result.valid) | EXPECT_FALSE(result.passed) | ASSERT_TRUE(result.valid) | EXPECT_EQ(result.passed, row.fesa_value == 0.0) | EXPECT_EQ(result.families[0].diagnostic_code, ""zero-reference-scale-nonzero-error"")" "EXPECT_FALSE(result.valid) | EXPECT_FALSE(result.passed) | ASSERT_TRUE(result.valid) | EXPECT_EQ(result.passed, row.fesa_value == 0.0) | EXPECT_EQ(result.families[0].diagnostic_code, ""zero-reference-scale-nonzero-error"")" -Refactor tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationRejectsNonmodalFamilies ReferenceTolerancePolicy.EigenFirstImplementationRejectsNonmodalFamilies; assertion 3개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationRejectsNonmodalFamilies 유지 원문 검사 body 및 assertion 동일. cacd7f2e9c5bdc6c907786187817305395ce12155fa51e4e10ce01d364df2741 cacd7f2e9c5bdc6c907786187817305395ce12155fa51e4e10ce01d364df2741 "EXPECT_FALSE(result.valid) | EXPECT_FALSE(result.passed) | EXPECT_EQ(result.diagnostic_code, ""invalid-eigen-tolerance-family"")" "EXPECT_FALSE(result.valid) | EXPECT_FALSE(result.passed) | EXPECT_EQ(result.diagnostic_code, ""invalid-eigen-tolerance-family"")" -Refactor tests/reference/reference_tolerance_policy_test.cpp support@1-26 helper/oracle/fixture/include/static assertion 구간: MakeFamily tests/reference/reference_tolerance_policy_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9c2d3b770c78989b0bbe4bf618d87e318a4ddd8322aa0debfffe7cc932d3f028 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/reference_tolerance_policy_test.cpp support@172-173 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/reference_tolerance_policy_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 804f89fc0ec98c9824183e795d3edd19e930f7bc471f9012aa3d503be2f8974b 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/shell_surface_pressure_reference_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/reference/shell_surface_pressure_reference_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 45a004e6e7ab3dba315796d54e1347b54fca3e1cad3b637a2dda6884ab846d7d 45a004e6e7ab3dba315796d54e1347b54fca3e1cad3b637a2dda6884ab846d7d 해당 없음 해당 없음 -Refactor tests/reference/shell_surface_pressure_reference_test.cpp ShellSurfacePressureReference.ClassifiesTranslationBlockingAndRotationWarningOnly ShellSurfacePressureReference.ClassifiesTranslationBlockingAndRotationWarningOnly; assertion 1개 tests/reference/shell_surface_pressure_reference_test.cpp ShellSurfacePressureReference.ClassifiesTranslationBlockingAndRotationWarningOnly 유지 원문 검사 body 및 assertion 동일. ed6f0cea1655c6b579fecd966c3c2b1b62812f1e69475b98610c093cd4229455 ed6f0cea1655c6b579fecd966c3c2b1b62812f1e69475b98610c093cd4229455 EXPECT_EQ( fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kWarningOnlyDifferences) EXPECT_EQ( fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kWarningOnlyDifferences) -Refactor tests/reference/shell_surface_pressure_reference_test.cpp support@1-12 helper/oracle/fixture/include/static assertion 구간: MakeTolerance tests/reference/shell_surface_pressure_reference_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8d9d1942187a363e8bc49004c4b7df1b110071843d5cdf55dccc741ee6066ea7 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/shell_surface_pressure_reference_test.cpp support@31-32 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/shell_surface_pressure_reference_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/thermal_reference_cases_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/reference/thermal_reference_cases_test.cpp file 유지 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 기존 diagnostic/nonblocking 판정은 유지한다. 8b340c31cb028e1cf8e676f35869cb74d923c7e3f05d5ed8d3cc428722b4aed3 8b340c31cb028e1cf8e676f35869cb74d923c7e3f05d5ed8d3cc428722b4aed3 해당 없음 해당 없음 -Refactor tests/reference/thermal_reference_cases_test.cpp ThermalReference.OriginalAbaqusNt11RemainsAnExplicitFailingDiagnostic ThermalReference.OriginalAbaqusNt11RemainsAnExplicitFailingDiagnostic; assertion 16개 tests/reference/thermal_reference_cases_test.cpp ThermalReference.OriginalAbaqusNt11RemainsAnExplicitFailingDiagnostic 유지 원문 검사 body 및 assertion 동일. 86884d662acf255866202f5682b4e95db4785ee4a0da1ae2e83fc410f36a4290 86884d662acf255866202f5682b4e95db4785ee4a0da1ae2e83fc410f36a4290 ASSERT_FALSE(before_input.empty()) | ASSERT_FALSE(before_csv.empty()) | EXPECT_EQ(Bytes(input), before_input) | EXPECT_EQ(Bytes(csv), before_csv) | ASSERT_EQ(exit, 0) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(r.rows.size(), 729U) | ASSERT_TRUE(rows.good()) | EXPECT_EQ(r.family.reference_scale, 1000) | EXPECT_EQ(r.family.near_zero_band, 10) | EXPECT_FALSE(r.family.blocking) | EXPECT_FALSE(r.passed) | EXPECT_FALSE(r.family.rms_passed) | EXPECT_EQ(failed, 87U) | EXPECT_GT(r.family.relative_rms, fesa::test::ReferenceTolerancePolicy::kRelativeRmsTolerance) | EXPECT_GT(r.family.maximum_absolute_error, r.family.near_zero_band) ASSERT_FALSE(before_input.empty()) | ASSERT_FALSE(before_csv.empty()) | EXPECT_EQ(Bytes(input), before_input) | EXPECT_EQ(Bytes(csv), before_csv) | ASSERT_EQ(exit, 0) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(r.rows.size(), 729U) | ASSERT_TRUE(rows.good()) | EXPECT_EQ(r.family.reference_scale, 1000) | EXPECT_EQ(r.family.near_zero_band, 10) | EXPECT_FALSE(r.family.blocking) | EXPECT_FALSE(r.passed) | EXPECT_FALSE(r.family.rms_passed) | EXPECT_EQ(failed, 87U) | EXPECT_GT(r.family.relative_rms, fesa::test::ReferenceTolerancePolicy::kRelativeRmsTolerance) | EXPECT_GT(r.family.maximum_absolute_error, r.family.near_zero_band) -Refactor tests/reference/thermal_reference_cases_test.cpp support@1-15 helper/oracle/fixture/include/static assertion 구간: Bytes tests/reference/thermal_reference_cases_test.cpp file-support 유지 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 기존 diagnostic/nonblocking 판정은 유지한다. d748735499aeda58e97d6652289f5ba2fb3a8b1143f03a04e6159b38f93dbf0b 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/thermal_reference_cases_test.cpp support@75-75 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/thermal_reference_cases_test.cpp file-support 유지 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 기존 diagnostic/nonblocking 판정은 유지한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/thermal_reference_comparison.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/thermal_reference_comparison.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0cb4c1b8595a16219808d6fe661571b59f7b7f2e100749d83baf2506dc0a61a0 0cb4c1b8595a16219808d6fe661571b59f7b7f2e100749d83baf2506dc0a61a0 해당 없음 해당 없음 -Refactor tests/reference/thermal_reference_comparison.cpp support@1-417 helper/oracle/fixture/include/static assertion 구간: fesa, Failure, Require, H, Id, Shape, Attr, if, T, Scalar, Primitive, Field, Label, Trim, Result, CompareThermalSnapshots, for, catch, ReadThermalReferenceCsv, while, ReadThermalReferenceHdf5, NodeRow, Frame, CompareThermalReferenceFiles tests/reference/thermal_reference_comparison.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 56b6cc4aad9b0122c1a0d266048c889280113757493d372501e163005bab9e1f 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/thermal_reference_comparison.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/thermal_reference_comparison.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c0e30c7bdd6ef3fad7e0d69159888a15e35a096adbd77c8481913063d703a9e0 c0e30c7bdd6ef3fad7e0d69159888a15e35a096adbd77c8481913063d703a9e0 해당 없음 해당 없음 -Refactor tests/reference/thermal_reference_comparison.h support@1-57 helper/oracle/fixture/include/static assertion 구간: fesa, ThermalReferenceRow, ThermalReferenceSnapshot, ThermalReferenceRowDecision, ThermalReferenceReport tests/reference/thermal_reference_comparison.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c1ecc31681e11d2a2b9a7f64773dc821acd8b3678d77c6063044b481a7f2409d 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/thermal_reference_comparison_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/reference/thermal_reference_comparison_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d98e4228c027b4cedd45cc97c75fbd56694f91ecff32c875e32da384faa9a19e d98e4228c027b4cedd45cc97c75fbd56694f91ecff32c875e32da384faa9a19e 해당 없음 해당 없음 -Refactor tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.HdfSchemaMappingRejectsMalformedStationFrameAndNodeData ThermalReferenceComparison.HdfSchemaMappingRejectsMalformedStationFrameAndNodeData; assertion 4개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.HdfSchemaMappingRejectsMalformedStationFrameAndNodeData 유지 원문 검사 body 및 assertion 동일. b5991ec2a055de6dd67134f1cbf7445a7cfe8618f7089e1fe9968a22b3df1aaa b5991ec2a055de6dd67134f1cbf7445a7cfe8618f7089e1fe9968a22b3df1aaa ASSERT_TRUE(read.HasValue()) | EXPECT_EQ(result.HasValue(), defect == 0) | EXPECT_TRUE(result.Value().passed) | EXPECT_FALSE(read.HasValue()) ASSERT_TRUE(read.HasValue()) | EXPECT_EQ(result.HasValue(), defect == 0) | EXPECT_TRUE(result.Value().passed) | EXPECT_FALSE(read.HasValue()) -Refactor tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.MapsSourceLabelsWithoutRowOrderAndPreservesSignedValues ThermalReferenceComparison.MapsSourceLabelsWithoutRowOrderAndPreservesSignedValues; assertion 9개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.MapsSourceLabelsWithoutRowOrderAndPreservesSignedValues 유지 원문 검사 body 및 assertion 동일. 9fbe3d06c90283b2e1b9473474b689354f9dbd1bd2eca8c120e10127bfc472b9 9fbe3d06c90283b2e1b9473474b689354f9dbd1bd2eca8c120e10127bfc472b9 ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().passed) | ASSERT_EQ(result.Value().rows.size(), 3U) | EXPECT_EQ(result.Value().rows[1].label, 7U) | EXPECT_EQ(result.Value().rows[1].reference, -15.5742216) | EXPECT_EQ(result.Value().rows[1].tolerance.branch, fesa::test::ReferenceToleranceBranch::kRelative) | EXPECT_EQ(result.Value().family.reference_scale, 1000) | EXPECT_EQ(result.Value().family.near_zero_band, 10) | EXPECT_FALSE(result.Value().family.blocking) ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().passed) | ASSERT_EQ(result.Value().rows.size(), 3U) | EXPECT_EQ(result.Value().rows[1].label, 7U) | EXPECT_EQ(result.Value().rows[1].reference, -15.5742216) | EXPECT_EQ(result.Value().rows[1].tolerance.branch, fesa::test::ReferenceToleranceBranch::kRelative) | EXPECT_EQ(result.Value().family.reference_scale, 1000) | EXPECT_EQ(result.Value().family.near_zero_band, 10) | EXPECT_FALSE(result.Value().family.blocking) -Refactor tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.RejectsMissingExtraDuplicateAndNonfiniteBeforeTolerance ThermalReferenceComparison.RejectsMissingExtraDuplicateAndNonfiniteBeforeTolerance; assertion 1개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.RejectsMissingExtraDuplicateAndNonfiniteBeforeTolerance 유지 원문 검사 body 및 assertion 동일. bb8b648993b9f4ae838901f9566db7ca32f22e6bdbd6018213d68e1ff48dfc46 bb8b648993b9f4ae838901f9566db7ca32f22e6bdbd6018213d68e1ff48dfc46 "EXPECT_FALSE(fesa::test::CompareThermalSnapshots(actual, reference, {3, 7, 20}, ""Part-1-1"") .HasValue())" "EXPECT_FALSE(fesa::test::CompareThermalSnapshots(actual, reference, {3, 7, 20}, ""Part-1-1"") .HasValue())" -Refactor tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.RejectsWrongStepTimeIncrementInstanceAndStation ThermalReferenceComparison.RejectsWrongStepTimeIncrementInstanceAndStation; assertion 1개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.RejectsWrongStepTimeIncrementInstanceAndStation 유지 원문 검사 body 및 assertion 동일. e9b3d7890b38b8ac9d7124ef7b38cea8037bd5f2977145231c47928af3112462 e9b3d7890b38b8ac9d7124ef7b38cea8037bd5f2977145231c47928af3112462 "EXPECT_FALSE(fesa::test::CompareThermalSnapshots(actual, reference, {3, 7, 20}, ""Part-1-1"") .HasValue())" "EXPECT_FALSE(fesa::test::CompareThermalSnapshots(actual, reference, {3, 7, 20}, ""Part-1-1"") .HasValue())" -Refactor tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.UsesUnmodifiedFivePercentOnePercentAndExactZeroPolicy ThermalReferenceComparison.UsesUnmodifiedFivePercentOnePercentAndExactZeroPolicy; assertion 5개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.UsesUnmodifiedFivePercentOnePercentAndExactZeroPolicy 유지 원문 검사 body 및 assertion 동일. 6fa4b28f03af7accaa46980c8de1e428a784bed83de862984ec5c1fed45ea9db 6fa4b28f03af7accaa46980c8de1e428a784bed83de862984ec5c1fed45ea9db ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(result.Value().passed) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(result.Value().passed) | EXPECT_EQ(result.Value().family.reference_scale, 0) ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(result.Value().passed) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(result.Value().passed) | EXPECT_EQ(result.Value().family.reference_scale, 0) -Refactor tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.CsvRequiresExactHeaderFrameFiniteValuesAndSoleInstance ThermalReferenceComparison.CsvRequiresExactHeaderFrameFiniteValuesAndSoleInstance; assertion 2개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.CsvRequiresExactHeaderFrameFiniteValuesAndSoleInstance 유지 원문 검사 body 및 assertion 동일. 6a725850decb91c07895b0f8e6513e95e866004b4885a6f9cd0959b79b3d05f8 6a725850decb91c07895b0f8e6513e95e866004b4885a6f9cd0959b79b3d05f8 "EXPECT_EQ(result.HasValue(), text == header + valid) | EXPECT_FALSE(fesa::test::ReadThermalReferenceCsv(path, """").HasValue())" "EXPECT_EQ(result.HasValue(), text == header + valid) | EXPECT_FALSE(fesa::test::ReadThermalReferenceCsv(path, """").HasValue())" -Refactor tests/reference/thermal_reference_comparison_test.cpp support@1-170 helper/oracle/fixture/include/static assertion 구간: TemporaryFolder, Handle, StringAttribute, T, ScalarAttribute, Dataset, comparator, Node, Frame tests/reference/thermal_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8fe742ff0a0ff661b374df3df48724fad479ad1702325197a6ff058cd08f3942 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/thermal_reference_comparison_test.cpp support@196-204 helper/oracle/fixture/include/static assertion 구간: Snapshot tests/reference/thermal_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 32bf1858c73c1cbf1f65ee1adc11e7230a993eb21b972a8b16916a5fe4eb2d21 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/reference/thermal_reference_comparison_test.cpp support@330-330 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/thermal_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/test_compare_hex8.py file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 60개 tests/test_compare_hex8.py file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 48770f6e83f1b7c34a15e396fd7f21bc02c2c102f47f7bab520203d4ac4d872c 48770f6e83f1b7c34a15e396fd7f21bc02c2c102f47f7bab520203d4ac4d872c 해당 없음 해당 없음 -Refactor tests/test_compare_hex8.py family fixture/oracle/helper family tests/test_compare_hex8.py family 유지 원문 검사 body 및 assertion 동일. 470c4ffd359ca492fe0f676adef5096d760aa885da86bfea548cf66668911061 470c4ffd359ca492fe0f676adef5096d760aa885da86bfea548cf66668911061 해당 없음 해당 없음 -Refactor tests/test_compare_hex8.py test_zero_reference_scale_requires_exact_zero test_zero_reference_scale_requires_exact_zero; assertion 0개 tests/test_compare_hex8.py test_zero_reference_scale_requires_exact_zero 유지 원문 검사 body 및 assertion 동일. acffff10b5ecba2f553c11e2b6b170454e0622ae88c80e848c35e5a2657fb973 acffff10b5ecba2f553c11e2b6b170454e0622ae88c80e848c35e5a2657fb973 "assert not report[""passed""] | assert report[""diagnostic_code""] == ""zero-reference-scale-nonzero-error""" "assert not report[""passed""] | assert report[""diagnostic_code""] == ""zero-reference-scale-nonzero-error""" -Refactor tests/test_compare_hex8.py test_row_pass_does_not_override_one_percent_rms test_row_pass_does_not_override_one_percent_rms; assertion 0개 tests/test_compare_hex8.py test_row_pass_does_not_override_one_percent_rms 유지 원문 검사 body 및 assertion 동일. 37a10f25ff36684717173aa3133bad3199da22251c4eede4c32926cb162248f1 37a10f25ff36684717173aa3133bad3199da22251c4eede4c32926cb162248f1 "assert report[""rows_passed""] | assert not report[""rms_passed""] | assert not report[""passed""]" "assert report[""rows_passed""] | assert not report[""rms_passed""] | assert not report[""passed""]" -Refactor tests/test_compare_hex8.py test_near_zero_band_uses_reference_scale_only test_near_zero_band_uses_reference_scale_only; assertion 0개 tests/test_compare_hex8.py test_near_zero_band_uses_reference_scale_only 유지 원문 검사 body 및 assertion 동일. 048405550e540c6604cc5f747bf2601f3a2ca7f18361f1a5b93c5e9ed2354674 048405550e540c6604cc5f747bf2601f3a2ca7f18361f1a5b93c5e9ed2354674 "assert report[""passed""] | assert report[""rows""][1][""branch""] == ""near-zero"" | assert not family([100.0, 1.0001], [100.0, 0.0])[""passed""]" "assert report[""passed""] | assert report[""rows""][1][""branch""] == ""near-zero"" | assert not family([100.0, 1.0001], [100.0, 0.0])[""passed""]" -Refactor tests/test_compare_hex8.py test_nonfinite_family_fails_before_tolerance test_nonfinite_family_fails_before_tolerance; assertion 0개 tests/test_compare_hex8.py test_nonfinite_family_fails_before_tolerance 유지 원문 검사 body 및 assertion 동일. d6a5a081bc6210e5bf9d8abf51bfb34dbc4216f72afaed67fcb2dd34bd0367de d6a5a081bc6210e5bf9d8abf51bfb34dbc4216f72afaed67fcb2dd34bd0367de 해당 없음 해당 없음 -Refactor tests/test_compare_hex8.py test_header_strip_collision_rejected_before_bad_numeric test_header_strip_collision_rejected_before_bad_numeric; assertion 0개 tests/test_compare_hex8.py test_header_strip_collision_rejected_before_bad_numeric 유지 원문 검사 body 및 assertion 동일. c563f3f16975c19d7cefff2d423156520212de85fc08c6efea140482cbf171a2 c563f3f16975c19d7cefff2d423156520212de85fc08c6efea140482cbf171a2 "assert error.value.code == ""duplicate-reference-header""" "assert error.value.code == ""duplicate-reference-header""" -Refactor tests/test_compare_hex8.py test_modal_quantity_and_units_are_explicit test_modal_quantity_and_units_are_explicit; assertion 0개 tests/test_compare_hex8.py test_modal_quantity_and_units_are_explicit 유지 원문 검사 body 및 assertion 동일. 69224345be705ed0e5ddc73a0097e2cbde7fe40ae0767c3e366285b855b6f0c5 69224345be705ed0e5ddc73a0097e2cbde7fe40ae0767c3e366285b855b6f0c5 "assert error.value.code == ""wrong-modal-quantity""" "assert error.value.code == ""wrong-modal-quantity""" -Refactor tests/test_compare_hex8.py test_modal_singletons_use_common_one_percent_rms test_modal_singletons_use_common_one_percent_rms; assertion 0개 tests/test_compare_hex8.py test_modal_singletons_use_common_one_percent_rms 유지 원문 검사 body 및 assertion 동일. 12414f36bfd7c2b85119a129cfadc5a621337125523d3e12f79239c235df245e 12414f36bfd7c2b85119a129cfadc5a621337125523d3e12f79239c235df245e "assert not report[""passed""] | assert len(report[""families""]) == 10 | assert all(row[""rows_passed""] and not row[""rms_passed""] for row in report[""families""])" "assert not report[""passed""] | assert len(report[""families""]) == 10 | assert all(row[""rows_passed""] and not row[""rms_passed""] for row in report[""families""])" -Refactor tests/test_compare_hex8.py write_strings fixture/oracle/helper write_strings tests/test_compare_hex8.py write_strings 유지 원문 검사 body 및 assertion 동일. 276c5761682166fbc7c118aec375743a4a95f58bc89d842e3115cd0f205c6192 276c5761682166fbc7c118aec375743a4a95f58bc89d842e3115cd0f205c6192 해당 없음 해당 없음 -Refactor tests/test_compare_hex8.py compound fixture/oracle/helper compound tests/test_compare_hex8.py compound 유지 원문 검사 body 및 assertion 동일. 24a2ff98b03ced8d9940d466b856caaa2aa4e4946964d331c183a39b97472f1c 24a2ff98b03ced8d9940d466b856caaa2aa4e4946964d331c183a39b97472f1c 해당 없음 해당 없음 -Refactor tests/test_compare_hex8.py source_models fixture/oracle/helper source_models tests/test_compare_hex8.py source_models 유지 원문 검사 body 및 assertion 동일. 49ff1623a3a5e4c6ae82fb11badea5f7c4a9c91c250effb7a622cd8b65a5de92 49ff1623a3a5e4c6ae82fb11badea5f7c4a9c91c250effb7a622cd8b65a5de92 해당 없음 해당 없음 -Refactor tests/test_compare_hex8.py source_rows fixture/oracle/helper source_rows tests/test_compare_hex8.py source_rows 유지 원문 검사 body 및 assertion 동일. a37f3e15cda5217583236cbba542b086d7167ec604698a3f920d9a8d4e89d570 a37f3e15cda5217583236cbba542b086d7167ec604698a3f920d9a8d4e89d570 해당 없음 해당 없음 -Refactor tests/test_compare_hex8.py make_result fixture/oracle/helper make_result tests/test_compare_hex8.py make_result 유지 원문 검사 body 및 assertion 동일. 331007a19dc4d4fe252e38c7aac4c31371b60f3e33dbe052ef1a6ed7ad41a8c6 331007a19dc4d4fe252e38c7aac4c31371b60f3e33dbe052ef1a6ed7ad41a8c6 해당 없음 해당 없음 -Refactor tests/test_compare_hex8.py result_fixtures fixture/oracle/helper result_fixtures tests/test_compare_hex8.py result_fixtures 유지 원문 검사 body 및 assertion 동일. 08b2a69b873b21100a21e05395ab04849091de70c7248b281c4bd803d067e0a6 08b2a69b873b21100a21e05395ab04849091de70c7248b281c4bd803d067e0a6 해당 없음 해당 없음 -Refactor tests/test_compare_hex8.py copy_result fixture/oracle/helper copy_result tests/test_compare_hex8.py copy_result 유지 원문 검사 body 및 assertion 동일. c050dd11768c91e970fbcc94d7c4dd2d83f5fb89df8b0c894446683f59be8e4c c050dd11768c91e970fbcc94d7c4dd2d83f5fb89df8b0c894446683f59be8e4c 해당 없음 해당 없음 -Refactor tests/test_compare_hex8.py compare_fixture fixture/oracle/helper compare_fixture tests/test_compare_hex8.py compare_fixture 유지 원문 검사 body 및 assertion 동일. 2c8a6c16b7f44b4ca2cf499b3564b53df1c0fdff6cb5470e192724ddf7267b65 2c8a6c16b7f44b4ca2cf499b3564b53df1c0fdff6cb5470e192724ddf7267b65 해당 없음 해당 없음 -Refactor tests/test_compare_hex8.py mutate_csv fixture/oracle/helper mutate_csv tests/test_compare_hex8.py mutate_csv 유지 원문 검사 body 및 assertion 동일. b240a6dce17c82736f4e531a9b7d741a44d9bfeac4aff82419842c5d2b0b4f24 b240a6dce17c82736f4e531a9b7d741a44d9bfeac4aff82419842c5d2b0b4f24 해당 없음 해당 없음 -Refactor tests/test_compare_hex8.py test_all_original_sized_schema_fixtures_compare_by_identity test_all_original_sized_schema_fixtures_compare_by_identity; assertion 0개 tests/test_compare_hex8.py test_all_original_sized_schema_fixtures_compare_by_identity 유지 원문 검사 body 및 assertion 동일. 25f539a154d3685491c6b4eebcdfbe580ef2fa1ab98b3cee67b29d8f8a2a667c 25f539a154d3685491c6b4eebcdfbe580ef2fa1ab98b3cee67b29d8f8a2a667c "assert report[""precheck""][""passed""], report[""precheck""] | assert report[""verdict""] == ""passed"" | assert report[""execution""][""verified""] is False | assert len(report[""families""]) == (101 if case.startswith(""hexa_dyn"") else 3) | assert [family[""row_count""] for family in report[""families""]] == [1326, 51, 14400] | assert report[""precheck""][""reference_row_counts""][""RF""] == 442 | assert [family[""increment""] for family in report[""families""]] == list(range(101)) | assert all(family[""row_count""] == 1326 for family in report[""families""]) | assert report[""families""][0][""reference_scale""] == 0." "assert report[""precheck""][""passed""], report[""precheck""] | assert report[""verdict""] == ""passed"" | assert report[""execution""][""verified""] is False | assert len(report[""families""]) == (101 if case.startswith(""hexa_dyn"") else 3) | assert [family[""row_count""] for family in report[""families""]] == [1326, 51, 14400] | assert report[""precheck""][""reference_row_counts""][""RF""] == 442 | assert [family[""increment""] for family in report[""families""]] == list(range(101)) | assert all(family[""row_count""] == 1326 for family in report[""families""]) | assert report[""families""][0][""reference_scale""] == 0." -Refactor tests/test_compare_hex8.py test_static_final_factor_maps_to_increment10_not_storage_frame test_static_final_factor_maps_to_increment10_not_storage_frame; assertion 0개 tests/test_compare_hex8.py test_static_final_factor_maps_to_increment10_not_storage_frame 유지 원문 검사 body 및 assertion 동일. 7aa3392c943620fcf98de2866021d09008a01ba106f1d2c396d84e0cf2b747f7 7aa3392c943620fcf98de2866021d09008a01ba106f1d2c396d84e0cf2b747f7 "assert {family[""increment""] for family in report[""families""]} == {10} | assert all(family[""passed""] for family in report[""families""])" "assert {family[""increment""] for family in report[""families""]} == {10} | assert all(family[""passed""] for family in report[""families""])" -Refactor tests/test_compare_hex8.py test_csv_order_does_not_supply_identity test_csv_order_does_not_supply_identity; assertion 0개 tests/test_compare_hex8.py test_csv_order_does_not_supply_identity 유지 원문 검사 body 및 assertion 동일. 140999c1e06c6c5c0bd3b013af006f60671ccf6385c9f147f082d70d9ee27725 140999c1e06c6c5c0bd3b013af006f60671ccf6385c9f147f082d70d9ee27725 "assert COMPARE.reference_values(rows, quantity, source_models[""hexa_linearstatic""]) == COMPARE.reference_values(original, quantity, source_models[""hexa_linearstatic""])" "assert COMPARE.reference_values(rows, quantity, source_models[""hexa_linearstatic""]) == COMPARE.reference_values(original, quantity, source_models[""hexa_linearstatic""])" -Refactor tests/test_compare_hex8.py test_reference_identity_errors_precede_nonfinite test_reference_identity_errors_precede_nonfinite; assertion 0개 tests/test_compare_hex8.py test_reference_identity_errors_precede_nonfinite 유지 원문 검사 body 및 assertion 동일. 6cd9376817bc9787434e7936ae23d00acad81a8679b5a5f53db429eb3fd335b9 6cd9376817bc9787434e7936ae23d00acad81a8679b5a5f53db429eb3fd335b9 assert error.value.code == code assert error.value.code == code -Refactor tests/test_compare_hex8.py test_rf_entire_inventory_precedes_constraint_projection test_rf_entire_inventory_precedes_constraint_projection; assertion 0개 tests/test_compare_hex8.py test_rf_entire_inventory_precedes_constraint_projection 유지 원문 검사 body 및 assertion 동일. 2a07dc3e967642c71bda95de58e1f31891d31d056b300fd6066499e045a79688 2a07dc3e967642c71bda95de58e1f31891d31d056b300fd6066499e045a79688 "assert int(rows[0][""Node Label""]) == 1 # A free node, absent from projected RF family. | assert error.value.code == ""reference-inventory""" "assert int(rows[0][""Node Label""]) == 1 # A free node, absent from projected RF family. | assert error.value.code == ""reference-inventory""" -Refactor tests/test_compare_hex8.py test_duplicate_reference_identity_precedes_bad_numeric test_duplicate_reference_identity_precedes_bad_numeric; assertion 0개 tests/test_compare_hex8.py test_duplicate_reference_identity_precedes_bad_numeric 유지 원문 검사 body 및 assertion 동일. b8160b12d894a2c7aafcb8eb961995755fd8fb0dd739258a52252e56ccaceb71 b8160b12d894a2c7aafcb8eb961995755fd8fb0dd739258a52252e56ccaceb71 "assert error.value.code == ""duplicate-reference-identity""" "assert error.value.code == ""duplicate-reference-identity""" -Refactor tests/test_compare_hex8.py test_invalid_stress_point_is_never_rematched test_invalid_stress_point_is_never_rematched; assertion 0개 tests/test_compare_hex8.py test_invalid_stress_point_is_never_rematched 유지 원문 검사 body 및 assertion 동일. d22612e0ce45e17242b4c97aa8d0d5d2adf7a7d3f712751b6d309f2cc4470a30 d22612e0ce45e17242b4c97aa8d0d5d2adf7a7d3f712751b6d309f2cc4470a30 해당 없음 해당 없음 -Refactor tests/test_compare_hex8.py test_stress_point_order_coordinates_are_auxiliary_not_identity test_stress_point_order_coordinates_are_auxiliary_not_identity; assertion 0개 tests/test_compare_hex8.py test_stress_point_order_coordinates_are_auxiliary_not_identity 유지 원문 검사 body 및 assertion 동일. 0b4282275b0eedfe1f8f2e20135d3f679b7ee5038d912776f9ce9e14e2884466 0b4282275b0eedfe1f8f2e20135d3f679b7ee5038d912776f9ce9e14e2884466 "assert error.value.code == ""reference-coordinate-convention""" "assert error.value.code == ""reference-coordinate-convention""" -Refactor tests/test_compare_hex8.py test_wrong_component_columns_rejected test_wrong_component_columns_rejected; assertion 0개 tests/test_compare_hex8.py test_wrong_component_columns_rejected 유지 원문 검사 body 및 assertion 동일. f3c962f00fd73f46fb8ff3c38ad0c1cfc18b8eb1fd8788b069d17e58019eb126 f3c962f00fd73f46fb8ff3c38ad0c1cfc18b8eb1fd8788b069d17e58019eb126 "assert error.value.code == ""wrong-reference-columns""" "assert error.value.code == ""wrong-reference-columns""" -Refactor tests/test_compare_hex8.py test_dynamic_decimal_time_requires_exact_integer_frame test_dynamic_decimal_time_requires_exact_integer_frame; assertion 0개 tests/test_compare_hex8.py test_dynamic_decimal_time_requires_exact_integer_frame 유지 원문 검사 body 및 assertion 동일. 06f5140c6a935a5342af4a214007ccf4bac66cf353827e55fe8485f5cefef15f 06f5140c6a935a5342af4a214007ccf4bac66cf353827e55fe8485f5cefef15f "assert error.value.code == ""wrong-reference-frame-time""" "assert error.value.code == ""wrong-reference-frame-time""" -Refactor tests/test_compare_hex8.py test_nonfinite_free_reference_rf_is_not_discarded test_nonfinite_free_reference_rf_is_not_discarded; assertion 0개 tests/test_compare_hex8.py test_nonfinite_free_reference_rf_is_not_discarded 유지 원문 검사 body 및 assertion 동일. ad89da9e96e0415c98e715ab0a87b8c97e921b5bec4c545f8e24b5edceeb2dc8 ad89da9e96e0415c98e715ab0a87b8c97e921b5bec4c545f8e24b5edceeb2dc8 "assert error.value.code == ""nonfinite-reference-value""" "assert error.value.code == ""nonfinite-reference-value""" -Refactor tests/test_compare_hex8.py test_inclusive_row_and_rms_boundaries_are_independent test_inclusive_row_and_rms_boundaries_are_independent; assertion 0개 tests/test_compare_hex8.py test_inclusive_row_and_rms_boundaries_are_independent 유지 원문 검사 body 및 assertion 동일. cc19b85a5d142f0c8f65b2b1ee9d5f6f14cdb4b0a071c0c70f92142de45d8e92 cc19b85a5d142f0c8f65b2b1ee9d5f6f14cdb4b0a071c0c70f92142de45d8e92 "assert report[""passed""] and report[""rows""][0][""relative_error""] == .05 | assert not family([21.00001] + [20.] * 99, [20.] * 100)[""rows_passed""] | assert family([101.], [100.])[""passed""] | assert not family([101.00001], [100.])[""rms_passed""] | assert family([100., 2.], [100., 1.])[""rows""][1][""branch""] == ""near-zero""" "assert report[""passed""] and report[""rows""][0][""relative_error""] == .05 | assert not family([21.00001] + [20.] * 99, [20.] * 100)[""rows_passed""] | assert family([101.], [100.])[""passed""] | assert not family([101.00001], [100.])[""rms_passed""] | assert family([100., 2.], [100., 1.])[""rows""][1][""branch""] == ""near-zero""" -Refactor tests/test_compare_hex8.py test_overflow_cannot_create_passing_metric test_overflow_cannot_create_passing_metric; assertion 0개 tests/test_compare_hex8.py test_overflow_cannot_create_passing_metric 유지 원문 검사 body 및 assertion 동일. ea8571675e864411a18189b384b7fa253f49feba9e9d05585c1807eec00e535f ea8571675e864411a18189b384b7fa253f49feba9e9d05585c1807eec00e535f 해당 없음 해당 없음 -Refactor tests/test_compare_hex8.py test_wrong_result_node_beats_nonfinite_displacement test_wrong_result_node_beats_nonfinite_displacement; assertion 0개 tests/test_compare_hex8.py test_wrong_result_node_beats_nonfinite_displacement 유지 원문 검사 body 및 assertion 동일. 76c7756b8724d4c2364d64dcd7123768ba0c191288989e6a5111fbd805dedfc5 76c7756b8724d4c2364d64dcd7123768ba0c191288989e6a5111fbd805dedfc5 "assert report[""precheck""][""code""] == ""result-node-inventory"" | assert report[""families""] == []" "assert report[""precheck""][""code""] == ""result-node-inventory"" | assert report[""families""] == []" -Refactor tests/test_compare_hex8.py test_metadata_identity_rejects_other_model test_metadata_identity_rejects_other_model; assertion 0개 tests/test_compare_hex8.py test_metadata_identity_rejects_other_model 유지 원문 검사 body 및 assertion 동일. c40c79702d38d5f4ef675590d8b9b7ae40c1e41ce5e691cad6430866d583e1e4 c40c79702d38d5f4ef675590d8b9b7ae40c1e41ce5e691cad6430866d583e1e4 "assert compare_fixture(path)[""precheck""][""code""] == code" "assert compare_fixture(path)[""precheck""][""code""] == code" -Refactor tests/test_compare_hex8.py test_result_quantity_semantics_must_match test_result_quantity_semantics_must_match; assertion 0개 tests/test_compare_hex8.py test_result_quantity_semantics_must_match 유지 원문 검사 body 및 assertion 동일. e636737d8798f7c35df431feb03f9716b52bc784a175e9d4337b0f8757f18991 e636737d8798f7c35df431feb03f9716b52bc784a175e9d4337b0f8757f18991 "assert compare_fixture(path)[""precheck""][""code""] == ""wrong-result-attribute""" "assert compare_fixture(path)[""precheck""][""code""] == ""wrong-result-attribute""" -Refactor tests/test_compare_hex8.py test_wrong_shape_or_dtype_is_not_sliced_into_supported_components test_wrong_shape_or_dtype_is_not_sliced_into_supported_components; assertion 0개 tests/test_compare_hex8.py test_wrong_shape_or_dtype_is_not_sliced_into_supported_components 유지 원문 검사 body 및 assertion 동일. 7bc82a71594a9faff7998ef731fd43085ff7bdb862796cc4709b73be5677bfb6 7bc82a71594a9faff7998ef731fd43085ff7bdb862796cc4709b73be5677bfb6 "assert compare_fixture(path)[""precheck""][""code""] == code" "assert compare_fixture(path)[""precheck""][""code""] == code" -Refactor tests/test_compare_hex8.py test_signed_ids_and_fixed_ascii_are_not_official_compound_schema test_signed_ids_and_fixed_ascii_are_not_official_compound_schema; assertion 0개 tests/test_compare_hex8.py test_signed_ids_and_fixed_ascii_are_not_official_compound_schema 유지 원문 검사 body 및 assertion 동일. 326c204371abb9ac125cf2d879a1e5e303f46584342a9b5332c26ab41d27d893 326c204371abb9ac125cf2d879a1e5e303f46584342a9b5332c26ab41d27d893 "assert compare_fixture(path)[""precheck""][""code""] == ""wrong-result-table-schema""" "assert compare_fixture(path)[""precheck""][""code""] == ""wrong-result-table-schema""" -Refactor tests/test_compare_hex8.py test_dynamic_frame_inventory_is_exact test_dynamic_frame_inventory_is_exact; assertion 0개 tests/test_compare_hex8.py test_dynamic_frame_inventory_is_exact 유지 원문 검사 body 및 assertion 동일. 7d3cdb79af00089850401f5f3ffe9fb0b6ab71a67a876ef91141c7e65d07d3bc 7d3cdb79af00089850401f5f3ffe9fb0b6ab71a67a876ef91141c7e65d07d3bc "assert compare_fixture(path, ""hexa_dynlinear"")[""precheck""][""code""] == ""result-frame-inventory""" "assert compare_fixture(path, ""hexa_dynlinear"")[""precheck""][""code""] == ""result-frame-inventory""" -Refactor tests/test_compare_hex8.py test_dynamic_binary_schedule_not_nearest_time test_dynamic_binary_schedule_not_nearest_time; assertion 0개 tests/test_compare_hex8.py test_dynamic_binary_schedule_not_nearest_time 유지 원문 검사 body 및 assertion 동일. 3368eac157758a820c6b4bb5bc95da45047e81e23d6bdf323683e77ee4b879f4 3368eac157758a820c6b4bb5bc95da45047e81e23d6bdf323683e77ee4b879f4 "assert compare_fixture(path, ""hexa_dynlinear"")[""precheck""][""code""] == ""wrong-result-frame-schedule""" "assert compare_fixture(path, ""hexa_dynlinear"")[""precheck""][""code""] == ""wrong-result-frame-schedule""" -Refactor tests/test_compare_hex8.py test_result_point_id_mismatch_rejected_before_nan_stress test_result_point_id_mismatch_rejected_before_nan_stress; assertion 0개 tests/test_compare_hex8.py test_result_point_id_mismatch_rejected_before_nan_stress 유지 원문 검사 body 및 assertion 동일. 4e46b65fbed4063d375d07afc69d281201bddcd455b4313d31bb75fee88828ce 4e46b65fbed4063d375d07afc69d281201bddcd455b4313d31bb75fee88828ce "assert compare_fixture(path)[""precheck""][""code""] == ""wrong-result-point-identity""" "assert compare_fixture(path)[""precheck""][""code""] == ""wrong-result-point-identity""" -Refactor tests/test_compare_hex8.py test_result_free_reaction_is_not_free_residual test_result_free_reaction_is_not_free_residual; assertion 0개 tests/test_compare_hex8.py test_result_free_reaction_is_not_free_residual 유지 원문 검사 body 및 assertion 동일. 96f0a2ad9860091e2b8f7f08e6a041166cf9da1ed854f0206b39bd0e8daa8379 96f0a2ad9860091e2b8f7f08e6a041166cf9da1ed854f0206b39bd0e8daa8379 "assert compare_fixture(path)[""verdict""] == ""passed"" | assert compare_fixture(path)[""precheck""][""code""] == ""nonzero-free-result-reaction""" "assert compare_fixture(path)[""verdict""] == ""passed"" | assert compare_fixture(path)[""precheck""][""code""] == ""nonzero-free-result-reaction""" -Refactor tests/test_compare_hex8.py test_nonfinite_uncompared_quantity_is_schema_failure test_nonfinite_uncompared_quantity_is_schema_failure; assertion 0개 tests/test_compare_hex8.py test_nonfinite_uncompared_quantity_is_schema_failure 유지 원문 검사 body 및 assertion 동일. 7d8b2c00b5d320dc0383c2b280d291ee67e39b4f3d6800a9942efa71bf457acf 7d8b2c00b5d320dc0383c2b280d291ee67e39b4f3d6800a9942efa71bf457acf "assert compare_fixture(path)[""precheck""][""code""] == ""nonfinite-result-value""" "assert compare_fixture(path)[""precheck""][""code""] == ""nonfinite-result-value""" -Refactor tests/test_compare_hex8.py test_source_copy_must_be_byte_identical test_source_copy_must_be_byte_identical; assertion 0개 tests/test_compare_hex8.py test_source_copy_must_be_byte_identical 유지 원문 검사 body 및 assertion 동일. ca309837ae5901ff7b9ed075ed34361571c2364f92b7f513b6a27ba70daf9a9d ca309837ae5901ff7b9ed075ed34361571c2364f92b7f513b6a27ba70daf9a9d "assert report[""precheck""][""code""] == ""source-input-hash-mismatch""" "assert report[""precheck""][""code""] == ""source-input-hash-mismatch""" -Refactor tests/test_compare_hex8.py test_report_is_deterministic_and_keeps_family_boundaries test_report_is_deterministic_and_keeps_family_boundaries; assertion 0개 tests/test_compare_hex8.py test_report_is_deterministic_and_keeps_family_boundaries 유지 원문 검사 body 및 assertion 동일. 83672aa126a31dc439b6013d1c0243cacd84420a98288d151475336dee22a335 83672aa126a31dc439b6013d1c0243cacd84420a98288d151475336dee22a335 "assert json.dumps(first, sort_keys=True, allow_nan=False) == json.dumps(second, sort_keys=True, allow_nan=False) | assert [row[""quantity""] for row in first[""families""]] == [""U"", ""RF"", ""S""] | assert len({row[""reference_sha256""] for row in first[""families""]}) == 3" "assert json.dumps(first, sort_keys=True, allow_nan=False) == json.dumps(second, sort_keys=True, allow_nan=False) | assert [row[""quantity""] for row in first[""families""]] == [""U"", ""RF"", ""S""] | assert len({row[""reference_sha256""] for row in first[""families""]}) == 3" -Refactor tests/test_compare_hex8.py test_modal_original_absence_is_not_pass test_modal_original_absence_is_not_pass; assertion 0개 tests/test_compare_hex8.py test_modal_original_absence_is_not_pass 유지 원문 검사 body 및 assertion 동일. 8f020cb160e1da7c98ea588a1ac9a18f661f2b3c8985d79da286d3a952e28676 8f020cb160e1da7c98ea588a1ac9a18f661f2b3c8985d79da286d3a952e28676 "assert report[""precheck""][""passed""], report[""precheck""] | assert report[""verdict""] == ""not-run"" and not report[""blocking_passed""] | assert report[""families""] == []" "assert report[""precheck""][""passed""], report[""precheck""] | assert report[""verdict""] == ""not-run"" and not report[""blocking_passed""] | assert report[""families""] == []" -Refactor tests/test_compare_hex8.py test_supplied_modal_values_are_compared_not_reported_missing test_supplied_modal_values_are_compared_not_reported_missing; assertion 0개 tests/test_compare_hex8.py test_supplied_modal_values_are_compared_not_reported_missing 유지 원문 검사 body 및 assertion 동일. a7a7696b247f603796274c8b69b4a9bcdc3812e23c5ee73d4d0be7ad8f35d364 a7a7696b247f603796274c8b69b4a9bcdc3812e23c5ee73d4d0be7ad8f35d364 "assert report[""precheck""][""passed""], report[""precheck""] | assert report[""verdict""] == ""failed"" | assert len(report[""blocking_failures""]) == 10 | assert report[""precheck""][""reference_row_counts""][""Value""] == 10 | assert [f[""mode""] for f in report[""families""]] == list(range(1, 11)) | assert all(f[""quantity""] == ""eigenvalue"" for f in report[""families""])" "assert report[""precheck""][""passed""], report[""precheck""] | assert report[""verdict""] == ""failed"" | assert len(report[""blocking_failures""]) == 10 | assert report[""precheck""][""reference_row_counts""][""Value""] == 10 | assert [f[""mode""] for f in report[""families""]] == list(range(1, 11)) | assert all(f[""quantity""] == ""eigenvalue"" for f in report[""families""])" -Refactor tests/test_compare_hex8.py test_modal_eigenvalue_matches_pass_with_ten_independent_families test_modal_eigenvalue_matches_pass_with_ten_independent_families; assertion 0개 tests/test_compare_hex8.py test_modal_eigenvalue_matches_pass_with_ten_independent_families 유지 원문 검사 body 및 assertion 동일. 15c1cf8449841503ddd4ec0cea73280634781696ea2eb95fcdbed7ea21a9c11f 15c1cf8449841503ddd4ec0cea73280634781696ea2eb95fcdbed7ea21a9c11f "assert first[""verdict""] == ""passed"", first | assert first[""blocking_passed""] and first[""blocking_failures""] == [] | assert len({f[""identity""] for f in first[""families""]}) == 10 | assert all(f[""relative_rms""] == 0 and f[""row_count""] == 1 for f in first[""families""]) | assert first == compare_fixture(path, ""hexa_freq"")" "assert first[""verdict""] == ""passed"", first | assert first[""blocking_passed""] and first[""blocking_failures""] == [] | assert len({f[""identity""] for f in first[""families""]}) == 10 | assert all(f[""relative_rms""] == 0 and f[""row_count""] == 1 for f in first[""families""]) | assert first == compare_fixture(path, ""hexa_freq"")" -Refactor tests/test_compare_hex8.py test_modal_text_reads_value_not_cycles_per_time test_modal_text_reads_value_not_cycles_per_time; assertion 0개 tests/test_compare_hex8.py test_modal_text_reads_value_not_cycles_per_time 유지 원문 검사 body 및 assertion 동일. f99481938f41cc81ea04e50441b26e6a48f2e3f0648e7d906ef1457296b8fbb7 f99481938f41cc81ea04e50441b26e6a48f2e3f0648e7d906ef1457296b8fbb7 "assert rows[0] == {""step"": ""Step-1"", ""mode"": 1, ""quantity"": ""eigenvalue"", | assert rows[-1][""value""] == 449260.0 | assert COMPARE.read_modal_reference(reversed_path) == rows" "assert rows[0] == {""step"": ""Step-1"", ""mode"": 1, ""quantity"": ""eigenvalue"", | assert rows[-1][""value""] == 449260.0 | assert COMPARE.read_modal_reference(reversed_path) == rows" -Refactor tests/test_compare_hex8.py test_modal_text_rejects_invalid_source test_modal_text_rejects_invalid_source; assertion 0개 tests/test_compare_hex8.py test_modal_text_rejects_invalid_source 유지 원문 검사 body 및 assertion 동일. dacd9a4c8381da554f965861f1475cb12ba5219b061223fcc307eb43d779796b dacd9a4c8381da554f965861f1475cb12ba5219b061223fcc307eb43d779796b assert error.value.code == code assert error.value.code == code -Refactor tests/test_compare_hex8.py test_modified_modal_reference_is_precheck_failure test_modified_modal_reference_is_precheck_failure; assertion 0개 tests/test_compare_hex8.py test_modified_modal_reference_is_precheck_failure 유지 원문 검사 body 및 assertion 동일. 6b06ccce353b338e48690a346c912469d3e2647863855943bb8c472c71cd2a8a 6b06ccce353b338e48690a346c912469d3e2647863855943bb8c472c71cd2a8a "assert report[""verdict""] == ""failed"" | assert report[""precheck""][""code""] == ""reference-hash-mismatch""" "assert report[""verdict""] == ""failed"" | assert report[""precheck""][""code""] == ""reference-hash-mismatch""" -Refactor tests/test_compare_hex8.py test_modal_identity_before_nonfinite test_modal_identity_before_nonfinite; assertion 0개 tests/test_compare_hex8.py test_modal_identity_before_nonfinite 유지 원문 검사 body 및 assertion 동일. 893568688885b010fbd9a3be2c4d9627f481e17be01702926fb2732a43c2b115 893568688885b010fbd9a3be2c4d9627f481e17be01702926fb2732a43c2b115 assert error.value.code == code assert error.value.code == code -Refactor tests/test_compare_hex8.py test_closed_execution_record_hashes_are_checked test_closed_execution_record_hashes_are_checked; assertion 0개 tests/test_compare_hex8.py test_closed_execution_record_hashes_are_checked 유지 원문 검사 body 및 assertion 동일. 306414b617f9e0617b63b3b788805ae7c77ea9069ab5120b5fad61f5f73d2f59 306414b617f9e0617b63b3b788805ae7c77ea9069ab5120b5fad61f5f73d2f59 "assert compare_fixture(path, execution=record)[""execution""][""verified""] | assert compare_fixture(path, execution=record)[""precheck""][""code""] == ""invalid-execution-evidence"" | assert compare_fixture(path, execution=record)[""precheck""][""code""] == ""invalid-execution-evidence""" "assert compare_fixture(path, execution=record)[""execution""][""verified""] | assert compare_fixture(path, execution=record)[""precheck""][""code""] == ""invalid-execution-evidence"" | assert compare_fixture(path, execution=record)[""precheck""][""code""] == ""invalid-execution-evidence""" -Refactor tests/test_compare_hex8.py test_cli_protects_reference_and_has_deterministic_exit test_cli_protects_reference_and_has_deterministic_exit; assertion 0개 tests/test_compare_hex8.py test_cli_protects_reference_and_has_deterministic_exit 유지 원문 검사 body 및 assertion 동일. d9b7e54c8824ebd960062ee77e0f438c6ba8a67d9b212884748873bdfd001f95 d9b7e54c8824ebd960062ee77e0f438c6ba8a67d9b212884748873bdfd001f95 "assert denied.returncode == 2 | assert COMPARE.sha256(REFERENCE / ""hexa_linearstatic_U.csv"") == original_hash | assert completed.returncode == 0, completed.stderr | assert json.loads(report_path.read_text())[""verdict""] == ""passed""" "assert denied.returncode == 2 | assert COMPARE.sha256(REFERENCE / ""hexa_linearstatic_U.csv"") == original_hash | assert completed.returncode == 0, completed.stderr | assert json.loads(report_path.read_text())[""verdict""] == ""passed""" -Refactor tests/test_compare_hex8.py test_result_projection_joins_source_identities_not_storage_order test_result_projection_joins_source_identities_not_storage_order; assertion 0개 tests/test_compare_hex8.py test_result_projection_joins_source_identities_not_storage_order 유지 원문 검사 body 및 assertion 동일. 11573010c8678557897930e563fa8f9074b8b07af5a5eba26b972696d968d8b7 11573010c8678557897930e563fa8f9074b8b07af5a5eba26b972696d968d8b7 "assert report[""verdict""] == ""passed"", report[""precheck""]" "assert report[""verdict""] == ""passed"", report[""precheck""]" -Refactor tests/test_compare_hex8.py test_model_geometry_and_properties_match_frozen_input test_model_geometry_and_properties_match_frozen_input; assertion 0개 tests/test_compare_hex8.py test_model_geometry_and_properties_match_frozen_input 유지 원문 검사 body 및 assertion 동일. 8bbc10c2dbf029c6223beee9f01e0c7155579348a5dc91a486f0e4c111354761 8bbc10c2dbf029c6223beee9f01e0c7155579348a5dc91a486f0e4c111354761 "assert compare_fixture(path)[""precheck""][""code""] == code" "assert compare_fixture(path)[""precheck""][""code""] == code" -Refactor tests/test_compare_hex8.py test_required_types_and_complete_dataset_inventory test_required_types_and_complete_dataset_inventory; assertion 0개 tests/test_compare_hex8.py test_required_types_and_complete_dataset_inventory 유지 원문 검사 body 및 assertion 동일. 114fead25988359420b99d9a58edd0514cb669077b0120c85604346ea2b9b479 114fead25988359420b99d9a58edd0514cb669077b0120c85604346ea2b9b479 "assert compare_fixture(path)[""precheck""][""code""] == code" "assert compare_fixture(path)[""precheck""][""code""] == code" -Refactor tests/test_compare_hex8.py test_reference_raw_hash_rejects_modified_original_copy test_reference_raw_hash_rejects_modified_original_copy; assertion 0개 tests/test_compare_hex8.py test_reference_raw_hash_rejects_modified_original_copy 유지 원문 검사 body 및 assertion 동일. a1a2f799343ed1504cac751a71ab566919a4a9007dbd9446a216f2ff6bef4d4e a1a2f799343ed1504cac751a71ab566919a4a9007dbd9446a216f2ff6bef4d4e "assert report[""precheck""][""code""] == ""reference-hash-mismatch""" "assert report[""precheck""][""code""] == ""reference-hash-mismatch""" -Refactor tests/test_compare_hex8.py test_case_families_cannot_share_scale_or_cancel_sign_errors test_case_families_cannot_share_scale_or_cancel_sign_errors; assertion 0개 tests/test_compare_hex8.py test_case_families_cannot_share_scale_or_cancel_sign_errors 유지 원문 검사 body 및 assertion 동일. ecc0b0b8f4f8eefe0d2bc111db41930d0b621e835796926a00b55285521960d2 ecc0b0b8f4f8eefe0d2bc111db41930d0b621e835796926a00b55285521960d2 "assert family([100.], [100.])[""passed""] | assert not family([.001], [0.])[""passed""] | assert report[""rows_passed""] | assert report[""absolute_rms""] == 1. | assert report[""relative_rms""] == .05 | assert not report[""rms_passed""]" "assert family([100.], [100.])[""passed""] | assert not family([.001], [0.])[""passed""] | assert report[""rows_passed""] | assert report[""absolute_rms""] == 1. | assert report[""relative_rms""] == .05 | assert not report[""rms_passed""]" -Refactor tests/test_compare_hex8.py test_alternate_reference_directory_cannot_make_original_report_writable test_alternate_reference_directory_cannot_make_original_report_writable; assertion 0개 tests/test_compare_hex8.py test_alternate_reference_directory_cannot_make_original_report_writable 유지 원문 검사 body 및 assertion 동일. 88cf4804dc26e3b48b04fe37cd50db943db4128f1377f94d83617daf41233f07 88cf4804dc26e3b48b04fe37cd50db943db4128f1377f94d83617daf41233f07 assert error.value.code == 2 | assert COMPARE.sha256(original) == original_sha assert error.value.code == 2 | assert COMPARE.sha256(original) == original_sha -Refactor tests/test_compare_hex8.py test_modal_pair_rank_errors_produce_failed_precheck test_modal_pair_rank_errors_produce_failed_precheck; assertion 0개 tests/test_compare_hex8.py test_modal_pair_rank_errors_produce_failed_precheck 유지 원문 검사 body 및 assertion 동일. a80e0ea9fcb695c665ee25e589e3c77e59ec6e2fc21f94f50b6c1723e450e622 a80e0ea9fcb695c665ee25e589e3c77e59ec6e2fc21f94f50b6c1723e450e622 "assert not report[""precheck""][""passed""] | assert report[""precheck""][""code""] == ""wrong-modal-pair-shape"" | assert report[""families""] == []" "assert not report[""precheck""][""passed""] | assert report[""precheck""][""code""] == ""wrong-modal-pair-shape"" | assert report[""families""] == []" -Refactor tests/test_compare_hex8.py test_hardlink_report_alias_cannot_overwrite_known_source test_hardlink_report_alias_cannot_overwrite_known_source; assertion 0개 tests/test_compare_hex8.py test_hardlink_report_alias_cannot_overwrite_known_source 유지 원문 검사 body 및 assertion 동일. 72307938889302e35f061b0f2cbd70a3aa780360f32b4d04deb6f6bb2c5ead36 72307938889302e35f061b0f2cbd70a3aa780360f32b4d04deb6f6bb2c5ead36 assert error.value.code == 2 | assert COMPARE.sha256(original) == original_sha assert error.value.code == 2 | assert COMPARE.sha256(original) == original_sha -Refactor tests/test_compare_hex8.py test_lexically_equivalent_input_path_preserves_writer_identity test_lexically_equivalent_input_path_preserves_writer_identity; assertion 0개 tests/test_compare_hex8.py test_lexically_equivalent_input_path_preserves_writer_identity 유지 원문 검사 body 및 assertion 동일. b25f45a465c21132bb6f2972f0c4047e36fecfda3da5c400a7370479a0b9bc95 b25f45a465c21132bb6f2972f0c4047e36fecfda3da5c400a7370479a0b9bc95 "assert report[""verdict""] == ""passed"", report[""precheck""]" "assert report[""verdict""] == ""passed"", report[""precheck""]" -Refactor tests/test_compare_hex8.py support@1-25 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/test_compare_hex8.py file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1181192f9dce7bde37bbe1b2babf9a029df220d85ae832d623cfa7e8657231b4 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/test_compare_hex8.py support@84-89 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/test_compare_hex8.py file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 19003de235fbe57439674b70bbb66a1b8b296722c91ede8ebe79e269db9e6a2e 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/test_compare_hht_dynamic.py file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 12개 tests/test_compare_hht_dynamic.py file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 717065b241e599f704598cf92f1fdab29dfea77ee0fc7ed8e6f95c215d0354c4 717065b241e599f704598cf92f1fdab29dfea77ee0fc7ed8e6f95c215d0354c4 해당 없음 해당 없음 -Refactor tests/test_compare_hht_dynamic.py artifacts fixture/oracle/helper artifacts tests/test_compare_hht_dynamic.py artifacts 유지 원문 검사 body 및 assertion 동일. c2f9c40bf1524935da18d0426e5a09e3f00ef7bd417c2e1be8b55a04b5e9397f c2f9c40bf1524935da18d0426e5a09e3f00ef7bd417c2e1be8b55a04b5e9397f 해당 없음 해당 없음 -Refactor tests/test_compare_hht_dynamic.py changed_result fixture/oracle/helper changed_result tests/test_compare_hht_dynamic.py changed_result 유지 원문 검사 body 및 assertion 동일. 4dd2b5dcd04aea78c3995ac0f1c8dc4bfd249311251b8d6969dc3b2c416369cd 4dd2b5dcd04aea78c3995ac0f1c8dc4bfd249311251b8d6969dc3b2c416369cd 해당 없음 해당 없음 -Refactor tests/test_compare_hht_dynamic.py reduced_result fixture/oracle/helper reduced_result tests/test_compare_hht_dynamic.py reduced_result 유지 원문 검사 body 및 assertion 동일. fb941274cf24a5f6fe4ef37b24f1d304b9ee1062fba979d32dd7eda5825b5273 fb941274cf24a5f6fe4ef37b24f1d304b9ee1062fba979d32dd7eda5825b5273 해당 없음 해당 없음 -Refactor tests/test_compare_hht_dynamic.py test_reduced_schema_preserves_displacement_comparison test_reduced_schema_preserves_displacement_comparison; assertion 0개 tests/test_compare_hht_dynamic.py test_reduced_schema_preserves_displacement_comparison 유지 원문 검사 body 및 assertion 동일. 8ae92fbafbac4a8d8b1427a1722af164d9e4ade93b5c5ad94369091ac42c1040 8ae92fbafbac4a8d8b1427a1722af164d9e4ade93b5c5ad94369091ac42c1040 "assert result[""precheck""][""passed""], result[""precheck""] | assert result[""verdict""] == ""passed""" "assert result[""precheck""][""passed""], result[""precheck""] | assert result[""verdict""] == ""passed""" -Refactor tests/test_compare_hht_dynamic.py test_reduced_schema_rejects_inconsistent_auxiliary_history test_reduced_schema_rejects_inconsistent_auxiliary_history; assertion 0개 tests/test_compare_hht_dynamic.py test_reduced_schema_rejects_inconsistent_auxiliary_history 유지 원문 검사 body 및 assertion 동일. 5ad1dc6319074a157cf8df0e2817fe65b198aa8ab8121dbf1d250fc13a6bc7f5 5ad1dc6319074a157cf8df0e2817fe65b198aa8ab8121dbf1d250fc13a6bc7f5 "assert not result[""precheck""][""passed""] | assert result[""families""] == []" "assert not result[""precheck""][""passed""] | assert result[""families""] == []" -Refactor tests/test_compare_hht_dynamic.py test_original_csv_exact_matching_history_and_deterministic_report test_original_csv_exact_matching_history_and_deterministic_report; assertion 0개 tests/test_compare_hht_dynamic.py test_original_csv_exact_matching_history_and_deterministic_report 유지 원문 검사 body 및 assertion 동일. e55e00c524c66f78ec00f4f3bbbd16383ad322afde9e9d1e36b76dda1074c682 e55e00c524c66f78ec00f4f3bbbd16383ad322afde9e9d1e36b76dda1074c682 "assert first == second | assert first[""precheck""][""passed""], first[""precheck""] | assert first[""precheck""][""reference_row_count""] == 909 | assert first[""precheck""][""checked_result_scalars""] == 441774 | assert first[""verdict""] == ""passed"" | assert first[""warnings""] == [] | assert len(first[""families""]) == 202 | assert sum(family[""row_count""] for family in first[""families""]) == 5454 | assert [family[""quantity""] for family in first[""families""][:4]] == [""U"", ""UR"", ""U"", ""UR""] | assert all(family[""passed""] for family in first[""families""]) | assert first[""families""][0][""reference_scale""] == 0.0 | assert first[""families""][6][""hdf5_time""] == 3 * 0.1 | assert first[""families""][6][""reference_decimal_time""] == ""0.3"" | assert 3 * 0.1 != float(""0.3"") # Both legitimate representations were validated independently." "assert first == second | assert first[""precheck""][""passed""], first[""precheck""] | assert first[""precheck""][""reference_row_count""] == 909 | assert first[""precheck""][""checked_result_scalars""] == 441774 | assert first[""verdict""] == ""passed"" | assert first[""warnings""] == [] | assert len(first[""families""]) == 202 | assert sum(family[""row_count""] for family in first[""families""]) == 5454 | assert [family[""quantity""] for family in first[""families""][:4]] == [""U"", ""UR"", ""U"", ""UR""] | assert all(family[""passed""] for family in first[""families""]) | assert first[""families""][0][""reference_scale""] == 0.0 | assert first[""families""][6][""hdf5_time""] == 3 * 0.1 | assert first[""families""][6][""reference_decimal_time""] == ""0.3"" | assert 3 * 0.1 != float(""0.3"") # Both legitimate representations were validated independently." -Refactor tests/test_compare_hht_dynamic.py test_hdf5_precheck_rejects_before_tolerance test_hdf5_precheck_rejects_before_tolerance; assertion 0개 tests/test_compare_hht_dynamic.py test_hdf5_precheck_rejects_before_tolerance 유지 원문 검사 body 및 assertion 동일. fda55efd6e0d44ea147b97e855a8c039b26d96b790a7b6f0a97930e45f2c19b5 fda55efd6e0d44ea147b97e855a8c039b26d96b790a7b6f0a97930e45f2c19b5 "assert report[""precheck""][""passed""] is False | assert report[""precheck""][""code""] == code, report[""precheck""] | assert report[""families""] == [] | assert report[""verdict""] == ""failed""" "assert report[""precheck""][""passed""] is False | assert report[""precheck""][""code""] == code, report[""precheck""] | assert report[""families""] == [] | assert report[""verdict""] == ""failed""" -Refactor tests/test_compare_hht_dynamic.py test_reference_precheck_rejects_before_tolerance test_reference_precheck_rejects_before_tolerance; assertion 0개 tests/test_compare_hht_dynamic.py test_reference_precheck_rejects_before_tolerance 유지 원문 검사 body 및 assertion 동일. d243b045242334bc6b410f278e139b1f8f49f37f9c3d1b4c0562966c0893d344 d243b045242334bc6b410f278e139b1f8f49f37f9c3d1b4c0562966c0893d344 "assert not report[""precheck""][""passed""] | assert report[""precheck""][""code""] == code, report[""precheck""] | assert report[""families""] == []" "assert not report[""precheck""][""passed""] | assert report[""precheck""][""code""] == code, report[""precheck""] | assert report[""families""] == []" -Refactor tests/test_compare_hht_dynamic.py test_projection_joins_source_identity_and_csv_order_is_irrelevant test_projection_joins_source_identity_and_csv_order_is_irrelevant; assertion 0개 tests/test_compare_hht_dynamic.py test_projection_joins_source_identity_and_csv_order_is_irrelevant 유지 원문 검사 body 및 assertion 동일. 62ffbc38263b6589b55b4a28098b5150d949b590393e23f1de7f225836705742 62ffbc38263b6589b55b4a28098b5150d949b590393e23f1de7f225836705742 "assert report[""precheck""][""passed""], report[""precheck""] | assert report[""verdict""] == ""passed""" "assert report[""precheck""][""passed""], report[""precheck""] | assert report[""verdict""] == ""passed""" -Refactor tests/test_compare_hht_dynamic.py test_translation_blocks_rotation_warns test_translation_blocks_rotation_warns; assertion 0개 tests/test_compare_hht_dynamic.py test_translation_blocks_rotation_warns 유지 원문 검사 body 및 assertion 동일. aa638d6ff3d660e834fb941a5ab49c7dca6e131afe6531e0937c933b17c721c2 aa638d6ff3d660e834fb941a5ab49c7dca6e131afe6531e0937c933b17c721c2 "assert report[""precheck""][""passed""] | assert report[""blocking_passed""] is passed | assert len(report[""warnings""]) == (2 if passed else 0) | assert [warning[""code""] for warning in report[""warnings""]] == [""row-tolerance-failure"", ""relative-rms-failure""] | assert report[""blocking_failures""] == [""U-global:Step-1:increment-1""]" "assert report[""precheck""][""passed""] | assert report[""blocking_passed""] is passed | assert len(report[""warnings""]) == (2 if passed else 0) | assert [warning[""code""] for warning in report[""warnings""]] == [""row-tolerance-failure"", ""relative-rms-failure""] | assert report[""blocking_failures""] == [""U-global:Step-1:increment-1""]" -Refactor tests/test_compare_hht_dynamic.py test_common_policy_boundaries_and_zero_scale test_common_policy_boundaries_and_zero_scale; assertion 0개 tests/test_compare_hht_dynamic.py test_common_policy_boundaries_and_zero_scale 유지 원문 검사 body 및 assertion 동일. 626203451410090b9aff637c9d93892a57f99a387fa004f091a6f66044929ea5 626203451410090b9aff637c9d93892a57f99a387fa004f091a6f66044929ea5 "assert near[""passed""] | assert [row[""branch""] for row in near[""rows""]] == [""relative"", ""near-zero"", ""near-zero""] | assert relative[""rows_passed""] and not relative[""rms_passed""] | assert boundary[""passed""] | assert boundary[""relative_rms""] == 0.01 | assert outside[""rows_passed""] and not outside[""rms_passed""] | assert zero[""passed""] and zero[""relative_rms""] is None | assert not nonzero[""passed""] | assert nonzero[""diagnostic_code""] == ""zero-reference-scale-nonzero-error""" "assert near[""passed""] | assert [row[""branch""] for row in near[""rows""]] == [""relative"", ""near-zero"", ""near-zero""] | assert relative[""rows_passed""] and not relative[""rms_passed""] | assert boundary[""passed""] | assert boundary[""relative_rms""] == 0.01 | assert outside[""rows_passed""] and not outside[""rms_passed""] | assert zero[""passed""] and zero[""relative_rms""] is None | assert not nonzero[""passed""] | assert nonzero[""diagnostic_code""] == ""zero-reference-scale-nonzero-error""" -Refactor tests/test_compare_hht_dynamic.py test_cli_writes_json_and_exit_two_for_missing_results test_cli_writes_json_and_exit_two_for_missing_results; assertion 0개 tests/test_compare_hht_dynamic.py test_cli_writes_json_and_exit_two_for_missing_results 유지 원문 검사 body 및 assertion 동일. 7c7fb2cc6f1f7c6611d524de5342a2ad2ebbd4a7fab21595190d6373f16e91c8 7c7fb2cc6f1f7c6611d524de5342a2ad2ebbd4a7fab21595190d6373f16e91c8 "assert completed.returncode == 2, completed.stderr | assert not evidence[""precheck""][""passed""] | assert evidence[""families""] == []" "assert completed.returncode == 2, completed.stderr | assert not evidence[""precheck""][""passed""] | assert evidence[""families""] == []" -Refactor tests/test_compare_hht_dynamic.py support@1-17 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/test_compare_hht_dynamic.py file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8915eca10fabc7d88e164dc7e9fe54e9f9485a879b4b05a29eed1b655a6695fd 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/analysis_model_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/analysis/analysis_model_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 008c38d245f54595a9a057575e264b408f235df5e9ff4fad3ef342ab6ff4301a 008c38d245f54595a9a057575e264b408f235df5e9ff4fad3ef342ab6ff4301a 해당 없음 해당 없음 -Refactor tests/unit/analysis/analysis_model_test.cpp AnalysisModel.ClassifiesActiveEntitiesInStableOrder AnalysisModel.ClassifiesActiveEntitiesInStableOrder; assertion 9개 tests/unit/analysis/analysis_model_test.cpp AnalysisModel.ClassifiesActiveEntitiesInStableOrder 유지 원문 검사 body 및 assertion 동일. a295d00387546de59b989c3ac1abc3835489a6a9cc331a2b564b4ab6f5b76497 a295d00387546de59b989c3ac1abc3835489a6a9cc331a2b564b4ab6f5b76497 ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(model.ActiveElements(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(model.ActiveMaterials(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveSections(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveBoundaryConditions(), (std::vector{0U, 1U, 2U, 3U, 4U, 5U})) | EXPECT_EQ(model.ActiveLoads(), (std::vector{0U, 1U, 2U})) | ASSERT_EQ(model.Step().Loads().size(), 3U) | EXPECT_EQ(&model.Step().Loads()[0U].get(), &domain_result.Value().Steps()[0U].Loads()[0U].get()) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(model.ActiveElements(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(model.ActiveMaterials(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveSections(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveBoundaryConditions(), (std::vector{0U, 1U, 2U, 3U, 4U, 5U})) | EXPECT_EQ(model.ActiveLoads(), (std::vector{0U, 1U, 2U})) | ASSERT_EQ(model.Step().Loads().size(), 3U) | EXPECT_EQ(&model.Step().Loads()[0U].get(), &domain_result.Value().Steps()[0U].Loads()[0U].get()) -Refactor tests/unit/analysis/analysis_model_test.cpp AnalysisModel.ReferencesWithoutCopyingOrMutatingDomain AnalysisModel.ReferencesWithoutCopyingOrMutatingDomain; assertion 12개 tests/unit/analysis/analysis_model_test.cpp AnalysisModel.ReferencesWithoutCopyingOrMutatingDomain 유지 원문 검사 body 및 assertion 동일. f48acbdd2020c7f7dcf6795c0bcb2efd01e531fca508a98469183cadaa6af312 f48acbdd2020c7f7dcf6795c0bcb2efd01e531fca508a98469183cadaa6af312 ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(&model.GetDomain(), &domain) | EXPECT_EQ(&model.Step(), &domain.Steps()[0]) | EXPECT_EQ(&model.GetDomain().Elements()[0U], element_address) | EXPECT_EQ(&model.GetDomain().Materials()[0U], material_address) | EXPECT_EQ(&model.GetDomain().Sections()[0U], section_address) | EXPECT_EQ(&model.GetDomain().Elements()[model.ActiveElements()[1]], &domain.Elements()[1]) | EXPECT_EQ(&model.GetDomain().Materials()[model.ActiveMaterials()[2]], &domain.Materials()[2]) | EXPECT_EQ(&model.GetDomain().Sections()[model.ActiveSections()[1]], &domain.Sections()[1]) | EXPECT_EQ(domain.Steps()[0].Name(), step_name) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[0U], first_load_magnitude) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(&model.GetDomain(), &domain) | EXPECT_EQ(&model.Step(), &domain.Steps()[0]) | EXPECT_EQ(&model.GetDomain().Elements()[0U], element_address) | EXPECT_EQ(&model.GetDomain().Materials()[0U], material_address) | EXPECT_EQ(&model.GetDomain().Sections()[0U], section_address) | EXPECT_EQ(&model.GetDomain().Elements()[model.ActiveElements()[1]], &domain.Elements()[1]) | EXPECT_EQ(&model.GetDomain().Materials()[model.ActiveMaterials()[2]], &domain.Materials()[2]) | EXPECT_EQ(&model.GetDomain().Sections()[model.ActiveSections()[1]], &domain.Sections()[1]) | EXPECT_EQ(domain.Steps()[0].Name(), step_name) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[0U], first_load_magnitude) -Refactor tests/unit/analysis/analysis_model_test.cpp AnalysisModel.KeepsNonOwningMixedDefinitionAndPropertyIndices AnalysisModel.KeepsNonOwningMixedDefinitionAndPropertyIndices; assertion 9개 tests/unit/analysis/analysis_model_test.cpp AnalysisModel.KeepsNonOwningMixedDefinitionAndPropertyIndices 유지 원문 검사 body 및 assertion 동일. 36df6ff3f545836b79af2c8987b7bc0042b748e43cc1a2a8a83f2679904abb16 36df6ff3f545836b79af2c8987b7bc0042b748e43cc1a2a8a83f2679904abb16 ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(&model.GetDomain(), &domain) | EXPECT_EQ(model.ActiveElements(), (std::vector{0U, 1U, 2U, 3U, 4U})) | EXPECT_EQ(model.ActiveMaterials(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveProperties(), (std::vector{0U, 1U, 2U, 4U})) | EXPECT_EQ(&model.GetDomain().Elements()[model.ActiveElements()[4U]], &domain.Elements()[4U]) | EXPECT_EQ(&model.GetDomain().Materials()[model.ActiveMaterials()[1U]], &domain.Materials()[1U]) | EXPECT_EQ(&model.GetDomain().Properties()[model.ActiveProperties()[3U]], &domain.Properties()[4U]) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(&model.GetDomain(), &domain) | EXPECT_EQ(model.ActiveElements(), (std::vector{0U, 1U, 2U, 3U, 4U})) | EXPECT_EQ(model.ActiveMaterials(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveProperties(), (std::vector{0U, 1U, 2U, 4U})) | EXPECT_EQ(&model.GetDomain().Elements()[model.ActiveElements()[4U]], &domain.Elements()[4U]) | EXPECT_EQ(&model.GetDomain().Materials()[model.ActiveMaterials()[1U]], &domain.Materials()[1U]) | EXPECT_EQ(&model.GetDomain().Properties()[model.ActiveProperties()[3U]], &domain.Properties()[4U]) -Refactor tests/unit/analysis/analysis_model_test.cpp AnalysisModel.RejectsMissingOrMultipleStep AnalysisModel.RejectsMissingOrMultipleStep; assertion 15개 tests/unit/analysis/analysis_model_test.cpp AnalysisModel.RejectsMissingOrMultipleStep 유지 원문 검사 body 및 assertion 동일. 0815824dc498c89c2c43b00880b4458ce2b620a55e337c0a65de481074bb5318 0815824dc498c89c2c43b00880b4458ce2b620a55e337c0a65de481074bb5318 "ASSERT_TRUE(missing_domain.HasValue()) | ASSERT_FALSE(missing.HasValue()) | EXPECT_EQ(missing.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(missing.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].code, ""invalid-model-cardinality"") | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].keyword, ""STEP"") | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].entity_identity, ""0"") | ASSERT_TRUE(multiple_domain.HasValue()) | ASSERT_FALSE(multiple.HasValue()) | EXPECT_EQ(multiple.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(multiple.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].code, ""unsupported-multiple-step"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].keyword, ""STEP"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].entity_identity, ""Step-2"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].location.line, 60U)" "ASSERT_TRUE(missing_domain.HasValue()) | ASSERT_FALSE(missing.HasValue()) | EXPECT_EQ(missing.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(missing.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].code, ""invalid-model-cardinality"") | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].keyword, ""STEP"") | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].entity_identity, ""0"") | ASSERT_TRUE(multiple_domain.HasValue()) | ASSERT_FALSE(multiple.HasValue()) | EXPECT_EQ(multiple.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(multiple.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].code, ""unsupported-multiple-step"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].keyword, ""STEP"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].entity_identity, ""Step-2"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].location.line, 60U)" -Refactor tests/unit/analysis/analysis_model_test.cpp support@1-94 helper/oracle/fixture/include/static assertion 구간: MakeDefinition, MakeMixedDefinition tests/unit/analysis/analysis_model_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 06aad822bf2ade2c6877393bd23043babd0680f2b0dd2fb85a7f4cda1d5a6287 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/analysis_model_test.cpp support@148-149 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/analysis_model_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c4948f64c25c201003b0122f19efe90f365b9e8c9e4aeb1f21a6cffa974d706a 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/analysis_state_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/analysis/analysis_state_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cc752a188e4daa7862e6602271a728de64f67de407ab7e573e9f87380d2b5bbb cc752a188e4daa7862e6602271a728de64f67de407ab7e573e9f87380d2b5bbb 해당 없음 해당 없음 -Refactor tests/unit/analysis/analysis_state_test.cpp AnalysisState.AllocatesOnlyV0FullVectors AnalysisState.AllocatesOnlyV0FullVectors; assertion 14개 tests/unit/analysis/analysis_state_test.cpp AnalysisState.AllocatesOnlyV0FullVectors 유지 원문 검사 body 및 assertion 동일. 42f5f3563e7bf05df3559cd1173b200e4625be35cbe6ebf91140bb4275cc7961 42f5f3563e7bf05df3559cd1173b200e4625be35cbe6ebf91140bb4275cc7961 ASSERT_EQ(dofs.FullDofCount(), 12U) | ASSERT_EQ(dofs.ConstrainedDofCount(), 6U) | EXPECT_EQ(vector->Size(), dofs.FullDofCount()) | EXPECT_NE(vectors[left]->Data(), vectors[right]->Data()) | EXPECT_DOUBLE_EQ(state.Displacement()[0], 4.0) | EXPECT_DOUBLE_EQ(state.Reaction()[11], -9.0) | EXPECT_DOUBLE_EQ(state.ExternalForce()[0], 0.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[0], 0.0) | EXPECT_DOUBLE_EQ(state.Residual()[0], 0.0) | EXPECT_FALSE(HasVelocity::value) | EXPECT_FALSE(HasAcceleration::value) | EXPECT_FALSE(HasTemperature::value) | EXPECT_FALSE(HasIterationHistory::value) | EXPECT_FALSE(HasNonlinearState::value) ASSERT_EQ(dofs.FullDofCount(), 12U) | ASSERT_EQ(dofs.ConstrainedDofCount(), 6U) | EXPECT_EQ(vector->Size(), dofs.FullDofCount()) | EXPECT_NE(vectors[left]->Data(), vectors[right]->Data()) | EXPECT_DOUBLE_EQ(state.Displacement()[0], 4.0) | EXPECT_DOUBLE_EQ(state.Reaction()[11], -9.0) | EXPECT_DOUBLE_EQ(state.ExternalForce()[0], 0.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[0], 0.0) | EXPECT_DOUBLE_EQ(state.Residual()[0], 0.0) | EXPECT_FALSE(HasVelocity::value) | EXPECT_FALSE(HasAcceleration::value) | EXPECT_FALSE(HasTemperature::value) | EXPECT_FALSE(HasIterationHistory::value) | EXPECT_FALSE(HasNonlinearState::value) -Refactor tests/unit/analysis/analysis_state_test.cpp AnalysisState.CopiesOrMovesWithoutAliasing AnalysisState.CopiesOrMovesWithoutAliasing; assertion 17개 tests/unit/analysis/analysis_state_test.cpp AnalysisState.CopiesOrMovesWithoutAliasing 유지 원문 검사 body 및 assertion 동일. 20bcbe30286b42f64657a68599fd57793c882e3a0a1e6eab8a654ad6909dc75b 20bcbe30286b42f64657a68599fd57793c882e3a0a1e6eab8a654ad6909dc75b "EXPECT_NE(copied.Displacement().Data(), original.Displacement().Data()) | EXPECT_NE(copied.Reaction().Data(), original.Reaction().Data()) | EXPECT_NE(copied.EndpointResults().data(), original.EndpointResults().data()) | EXPECT_NE(copied.GaussResults().data(), original.GaussResults().data()) | EXPECT_NE(copied.StressResults().data(), original.StressResults().data()) | EXPECT_DOUBLE_EQ(original.Displacement()[0], 3.0) | EXPECT_DOUBLE_EQ(original.EndpointResults()[0].end_action[0], 1.0) | EXPECT_EQ(moved.Identity().step_name, ""Step-1"") | EXPECT_DOUBLE_EQ(moved.Displacement()[0], 30.0) | EXPECT_DOUBLE_EQ(moved.EndpointResults()[0].end_action[0], 20.0) | EXPECT_NE(moved.Displacement().Data(), original.Displacement().Data()) | EXPECT_NE(moved.EndpointResults().data(), original.EndpointResults().data()) | EXPECT_DOUBLE_EQ(original.Reaction()[11], -2.0) | EXPECT_EQ(copy_assigned.Identity().step_name, ""Step-1"") | EXPECT_EQ(move_assigned.Identity().step_name, ""Step-1"") | EXPECT_DOUBLE_EQ(move_assigned.Reaction()[11], -20.0) | EXPECT_NE(move_assigned.Reaction().Data(), original.Reaction().Data())" "EXPECT_NE(copied.Displacement().Data(), original.Displacement().Data()) | EXPECT_NE(copied.Reaction().Data(), original.Reaction().Data()) | EXPECT_NE(copied.EndpointResults().data(), original.EndpointResults().data()) | EXPECT_NE(copied.GaussResults().data(), original.GaussResults().data()) | EXPECT_NE(copied.StressResults().data(), original.StressResults().data()) | EXPECT_DOUBLE_EQ(original.Displacement()[0], 3.0) | EXPECT_DOUBLE_EQ(original.EndpointResults()[0].end_action[0], 1.0) | EXPECT_EQ(moved.Identity().step_name, ""Step-1"") | EXPECT_DOUBLE_EQ(moved.Displacement()[0], 30.0) | EXPECT_DOUBLE_EQ(moved.EndpointResults()[0].end_action[0], 20.0) | EXPECT_NE(moved.Displacement().Data(), original.Displacement().Data()) | EXPECT_NE(moved.EndpointResults().data(), original.EndpointResults().data()) | EXPECT_DOUBLE_EQ(original.Reaction()[11], -2.0) | EXPECT_EQ(copy_assigned.Identity().step_name, ""Step-1"") | EXPECT_EQ(move_assigned.Identity().step_name, ""Step-1"") | EXPECT_DOUBLE_EQ(move_assigned.Reaction()[11], -20.0) | EXPECT_NE(move_assigned.Reaction().Data(), original.Reaction().Data())" -Refactor tests/unit/analysis/analysis_state_test.cpp support@1-86 helper/oracle/fixture/include/static assertion 구간: T, HasVelocity, HasAcceleration, HasTemperature, HasIterationHistory, HasNonlinearState, MakeDofs, ExpectAllZero tests/unit/analysis/analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 01765d678413b708d354a9af35eb64ecfc588a1ed7d472b484ac590a620701ff 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/analysis_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/unit/analysis/analysis_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7fa4c3708ec692f95b5c230c7d7c36f1ef665363228d1d26eea41fe5560eedfd 7fa4c3708ec692f95b5c230c7d7c36f1ef665363228d1d26eea41fe5560eedfd 해당 없음 해당 없음 -Refactor tests/unit/analysis/analysis_test.cpp Analysis.PropagatesStatusAndDestroysThroughMinimalAnalysis Analysis.PropagatesStatusAndDestroysThroughMinimalAnalysis; assertion 7개 tests/unit/analysis/analysis_test.cpp Analysis.PropagatesStatusAndDestroysThroughMinimalAnalysis 유지 원문 검사 body 및 assertion 동일. 946fa72dea150d4bb8404a904b626c9d3037ae9eb3b765a68e288560e7b21975 946fa72dea150d4bb8404a904b626c9d3037ae9eb3b765a68e288560e7b21975 "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""analysis-test-failure"") | EXPECT_EQ(concrete_observer->Request().input_path, request.input_path) | EXPECT_EQ(concrete_observer->Request().output_path, request.output_path) | EXPECT_TRUE(destroyed)" "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""analysis-test-failure"") | EXPECT_EQ(concrete_observer->Request().input_path, request.input_path) | EXPECT_EQ(concrete_observer->Request().output_path, request.output_path) | EXPECT_TRUE(destroyed)" -Refactor tests/unit/analysis/analysis_test.cpp AnalysisProcedure.PreparedConsumerPreservesDomainFailureAndLifetime AnalysisProcedure.PreparedConsumerPreservesDomainFailureAndLifetime; assertion 11개 tests/unit/analysis/analysis_test.cpp AnalysisProcedure.PreparedConsumerPreservesDomainFailureAndLifetime 유지 원문 검사 body 및 assertion 동일. 0835fdd74c95442a58be5105ad47ca39d84a8591a9fef11dc839820f2e02c01a 0835fdd74c95442a58be5105ad47ca39d84a8591a9fef11dc839820f2e02c01a "ASSERT_TRUE(domain_result.HasValue()) | EXPECT_EQ(observed, &domain) | ASSERT_FALSE(outcome.HasValue()) | EXPECT_EQ(outcome.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(outcome.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""procedure-original-failure"") | EXPECT_EQ(diagnostic.keyword, ""ORIGINAL"") | EXPECT_EQ(diagnostic.entity_identity, ""source-identity"") | EXPECT_EQ(diagnostic.message, ""Original failure message."") | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed)" "ASSERT_TRUE(domain_result.HasValue()) | EXPECT_EQ(observed, &domain) | ASSERT_FALSE(outcome.HasValue()) | EXPECT_EQ(outcome.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(outcome.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""procedure-original-failure"") | EXPECT_EQ(diagnostic.keyword, ""ORIGINAL"") | EXPECT_EQ(diagnostic.entity_identity, ""source-identity"") | EXPECT_EQ(diagnostic.message, ""Original failure message."") | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed)" -Refactor tests/unit/analysis/analysis_test.cpp EquilibriumAlgorithm.RetainsMoveOnlyCandidateUntilProcedureTakesIt EquilibriumAlgorithm.RetainsMoveOnlyCandidateUntilProcedureTakesIt; assertion 6개 tests/unit/analysis/analysis_test.cpp EquilibriumAlgorithm.RetainsMoveOnlyCandidateUntilProcedureTakesIt 유지 원문 검사 body 및 assertion 동일. cf0bd4a0f259033db8884adb1d02051869fff7d04d8d7f1049d54fcc0b5000f4 cf0bd4a0f259033db8884adb1d02051869fff7d04d8d7f1049d54fcc0b5000f4 EXPECT_FALSE(step.HasCandidate()) | ASSERT_TRUE(step.Solve(base).IsOk()) | EXPECT_EQ(observed, (std::vector{1U, 2U, 3U})) | ASSERT_TRUE(step.HasCandidate()) | ASSERT_NE(accepted, nullptr) | EXPECT_EQ(*accepted, 42) EXPECT_FALSE(step.HasCandidate()) | ASSERT_TRUE(step.Solve(base).IsOk()) | EXPECT_EQ(observed, (std::vector{1U, 2U, 3U})) | ASSERT_TRUE(step.HasCandidate()) | ASSERT_NE(accepted, nullptr) | EXPECT_EQ(*accepted, 42) -Refactor tests/unit/analysis/analysis_test.cpp EquilibriumAlgorithm.FirstFailedEvaluationLeavesNoAcceptedCandidate EquilibriumAlgorithm.FirstFailedEvaluationLeavesNoAcceptedCandidate; assertion 7개 tests/unit/analysis/analysis_test.cpp EquilibriumAlgorithm.FirstFailedEvaluationLeavesNoAcceptedCandidate 유지 원문 검사 body 및 assertion 동일. a9ea9287cab2c7c7d29f9c4f7a9fa4b157574c53b3ecf22937fe7194ecfbd0c8 a9ea9287cab2c7c7d29f9c4f7a9fa4b157574c53b3ecf22937fe7194ecfbd0c8 "EXPECT_EQ(observed, (std::vector{1U})) | EXPECT_FALSE(step.HasCandidate()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0].code, ""first-evaluation-failure"") | EXPECT_EQ(status.Diagnostics()[0].entity_identity, ""original-owner"") | EXPECT_EQ(status.Diagnostics()[0].message, ""Original evaluation failure."")" "EXPECT_EQ(observed, (std::vector{1U})) | EXPECT_FALSE(step.HasCandidate()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0].code, ""first-evaluation-failure"") | EXPECT_EQ(status.Diagnostics()[0].entity_identity, ""original-owner"") | EXPECT_EQ(status.Diagnostics()[0].message, ""Original evaluation failure."")" -Refactor tests/unit/analysis/analysis_test.cpp EquilibriumAlgorithm.InjectsAlternativeOrderAndPreservesTypedPendingOnFailure EquilibriumAlgorithm.InjectsAlternativeOrderAndPreservesTypedPendingOnFailure; assertion 11개 tests/unit/analysis/analysis_test.cpp EquilibriumAlgorithm.InjectsAlternativeOrderAndPreservesTypedPendingOnFailure 유지 원문 검사 body 및 assertion 동일. 0f11b4a60c58ba9d453161dc48b5fbdff6b859ac9328111c05b28a152a3b6de0 0f11b4a60c58ba9d453161dc48b5fbdff6b859ac9328111c05b28a152a3b6de0 ASSERT_TRUE(step.Solve(*policy).IsOk()) | EXPECT_EQ(observed, (std::vector{0U, 3U})) | EXPECT_EQ(observed, (std::vector{0U, 3U})) | ASSERT_TRUE(step.HasCandidate()) | EXPECT_EQ(*step.TakeCandidate(), 42) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed) | ASSERT_TRUE(zero_step.Solve(zero_algorithm).IsOk()) | EXPECT_EQ(zero_observed, (std::vector{0U, 1U, 2U})) | ASSERT_TRUE(zero_step.HasCandidate()) | EXPECT_EQ(zero_step.TakeCandidate(), 7) ASSERT_TRUE(step.Solve(*policy).IsOk()) | EXPECT_EQ(observed, (std::vector{0U, 3U})) | EXPECT_EQ(observed, (std::vector{0U, 3U})) | ASSERT_TRUE(step.HasCandidate()) | EXPECT_EQ(*step.TakeCandidate(), 42) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed) | ASSERT_TRUE(zero_step.Solve(zero_algorithm).IsOk()) | EXPECT_EQ(zero_observed, (std::vector{0U, 1U, 2U})) | ASSERT_TRUE(zero_step.HasCandidate()) | EXPECT_EQ(zero_step.TakeCandidate(), 7) -Refactor tests/unit/analysis/analysis_test.cpp ProcedureIntegratorInjection.ShellValuesUseProductionStepAndPreserveHistory ProcedureIntegratorInjection.ShellValuesUseProductionStepAndPreserveHistory; assertion 28개 tests/unit/analysis/analysis_test.cpp ProcedureIntegratorInjection.ShellValuesUseProductionStepAndPreserveHistory 유지 원문 검사 body 및 assertion 동일. a94f0fe856ad7d4058f5f31a03c1f0f08ef2ecc3d75114c505ff8d8bce4c820d a94f0fe856ad7d4058f5f31a03c1f0f08ef2ecc3d75114c505ff8d8bce4c820d "EXPECT_EQ(&history, &old) | EXPECT_EQ(&p, ¶meters) | EXPECT_DOUBLE_EQ(h, 17) | EXPECT_EQ(&request.history, &old) | EXPECT_EQ(&request.chart, &chart) | EXPECT_EQ(&request.trial_algorithmic, &algorithmic) | EXPECT_EQ(&request.retained_velocity, &retained_v) | EXPECT_EQ(&request.retained_acceleration, &retained_a) | EXPECT_EQ(&request.parameters, ¶meters) | EXPECT_DOUBLE_EQ(request.h, 17) | EXPECT_FALSE(request.copy_translation_rates) | EXPECT_NE(velocity.Data(), acceleration.Data()) | EXPECT_NE(velocity.Data(), request.vpp.Data()) | EXPECT_NE(acceleration.Data(), request.trial_algorithmic.Data()) | EXPECT_EQ(&c, &chart) | EXPECT_EQ(&r, &root) | EXPECT_EQ(&backend, &solver) | EXPECT_EQ(v_data, rates.velocity.Data()) | EXPECT_EQ(a_data, rates.acceleration.Data()) | ASSERT_TRUE(shell_value::RunReducedHhtStep(*integrator, old, 17, parameters, evaluate, commit).IsOk()) | EXPECT_EQ(events, (std::vector{""predict"", ""rates"", ""reconstruct"", ""commit""})) | ASSERT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""predict"", ""rates"", ""reconstruct""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""predict"", ""rates"", ""reconstruct"", ""commit""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed)" "EXPECT_EQ(&history, &old) | EXPECT_EQ(&p, ¶meters) | EXPECT_DOUBLE_EQ(h, 17) | EXPECT_EQ(&request.history, &old) | EXPECT_EQ(&request.chart, &chart) | EXPECT_EQ(&request.trial_algorithmic, &algorithmic) | EXPECT_EQ(&request.retained_velocity, &retained_v) | EXPECT_EQ(&request.retained_acceleration, &retained_a) | EXPECT_EQ(&request.parameters, ¶meters) | EXPECT_DOUBLE_EQ(request.h, 17) | EXPECT_FALSE(request.copy_translation_rates) | EXPECT_NE(velocity.Data(), acceleration.Data()) | EXPECT_NE(velocity.Data(), request.vpp.Data()) | EXPECT_NE(acceleration.Data(), request.trial_algorithmic.Data()) | EXPECT_EQ(&c, &chart) | EXPECT_EQ(&r, &root) | EXPECT_EQ(&backend, &solver) | EXPECT_EQ(v_data, rates.velocity.Data()) | EXPECT_EQ(a_data, rates.acceleration.Data()) | ASSERT_TRUE(shell_value::RunReducedHhtStep(*integrator, old, 17, parameters, evaluate, commit).IsOk()) | EXPECT_EQ(events, (std::vector{""predict"", ""rates"", ""reconstruct"", ""commit""})) | ASSERT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""predict"", ""rates"", ""reconstruct""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""predict"", ""rates"", ""reconstruct"", ""commit""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed)" -Refactor tests/unit/analysis/analysis_test.cpp ProcedureIntegratorInjection.SolidPairedValuesUseProductionStepAndPreserveHistory ProcedureIntegratorInjection.SolidPairedValuesUseProductionStepAndPreserveHistory; assertion 18개 tests/unit/analysis/analysis_test.cpp ProcedureIntegratorInjection.SolidPairedValuesUseProductionStepAndPreserveHistory 유지 원문 검사 body 및 assertion 동일. c1f6fefeb375372f008e812939ed19d2821d59b71d633de05ea6caded90255a5 c1f6fefeb375372f008e812939ed19d2821d59b71d633de05ea6caded90255a5 "EXPECT_EQ(&frame, &old) | EXPECT_EQ(&p, ¶meters) | EXPECT_DOUBLE_EQ(h, 17) | EXPECT_EQ(&old_a, &old.acceleration) | EXPECT_EQ(&old_a_low, &old.low.acceleration) | EXPECT_EQ(&p, ¶meters) | EXPECT_DOUBLE_EQ(h, 17) | ASSERT_TRUE(fesa::detail::RunSolidHhtStep(*integrator, old, 17, parameters, failure, evaluate, commit).IsOk()) | EXPECT_EQ(events, (std::vector{""predict"", ""rates"", ""commit""})) | ASSERT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""predict"", ""predict-failure""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""predict"", ""rates""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""predict"", ""rates"", ""commit""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed)" "EXPECT_EQ(&frame, &old) | EXPECT_EQ(&p, ¶meters) | EXPECT_DOUBLE_EQ(h, 17) | EXPECT_EQ(&old_a, &old.acceleration) | EXPECT_EQ(&old_a_low, &old.low.acceleration) | EXPECT_EQ(&p, ¶meters) | EXPECT_DOUBLE_EQ(h, 17) | ASSERT_TRUE(fesa::detail::RunSolidHhtStep(*integrator, old, 17, parameters, failure, evaluate, commit).IsOk()) | EXPECT_EQ(events, (std::vector{""predict"", ""rates"", ""commit""})) | ASSERT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""predict"", ""predict-failure""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""predict"", ""rates""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""predict"", ""rates"", ""commit""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed)" -Refactor tests/unit/analysis/analysis_test.cpp ProcedureIntegratorInjection.HeatValuesUseProductionRecoveryCommitAndPreserveHistory ProcedureIntegratorInjection.HeatValuesUseProductionRecoveryCommitAndPreserveHistory; assertion 44개 tests/unit/analysis/analysis_test.cpp ProcedureIntegratorInjection.HeatValuesUseProductionRecoveryCommitAndPreserveHistory 유지 원문 검사 body 및 assertion 동일. ca98008566955e437f9faaa1aabf54305988d72549a7440880ffbf244c57949a ca98008566955e437f9faaa1aabf54305988d72549a7440880ffbf244c57949a "ASSERT_TRUE(matrix.HasValue()) | EXPECT_EQ(&supplied, &system) | EXPECT_EQ(&p, &partition) | EXPECT_EQ(&previous, &old) | EXPECT_EQ(&backend, &solver) | EXPECT_EQ(&workspace, &cache) | EXPECT_DOUBLE_EQ(delta, 17) | EXPECT_EQ(&supplied.k, &k) | EXPECT_EQ(&supplied.c, &c) | EXPECT_EQ(&supplied.q, &q) | EXPECT_EQ(supplied.k_error, nullptr) | EXPECT_EQ(supplied.c_error, nullptr) | EXPECT_EQ(supplied.q_error, nullptr) | EXPECT_EQ(p.free, (std::vector{0, 1})) | EXPECT_TRUE(p.constrained.empty()) | EXPECT_EQ(p.prescribed.Size(), 0U) | EXPECT_DOUBLE_EQ(e.beta_cert, 31) | EXPECT_DOUBLE_EQ(e.beta_limit, 32) | EXPECT_DOUBLE_EQ(e.free_residual_cert, 33) | EXPECT_DOUBLE_EQ(e.full_free_residual_cert, 34) | EXPECT_DOUBLE_EQ(e.full_beta_cert, 35) | EXPECT_DOUBLE_EQ(e.operator_construction_error, 36) | EXPECT_DOUBLE_EQ(e.rhs_construction_error, 37) | EXPECT_DOUBLE_EQ(e.construction_identity_bound, 38) | EXPECT_DOUBLE_EQ(e.energy_change, 39) | EXPECT_DOUBLE_EQ(e.energy_defect, 40) | EXPECT_DOUBLE_EQ(e.energy_bound, 41) | EXPECT_TRUE(e.dissipation_checked) | EXPECT_DOUBLE_EQ(e.dissipation_defect, 42) | EXPECT_DOUBLE_EQ(e.dissipation_bound, 43) | EXPECT_EQ(flux.size(), 1U) | EXPECT_EQ(value.Components(), (std::array{51, 52, 53})) | ASSERT_TRUE(heat_value::RunThermalStep(*integrator, system, partition, old, 17, solver, cache, recovery, commit).IsOk()) | EXPECT_EQ(events, (std::vector{""solve"", ""recovery"", ""commit""})) | ASSERT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""solve""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""solve"", ""recovery""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""solve"", ""recovery"", ""commit""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_FALSE(cache.matrix.has_value()) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed)" "ASSERT_TRUE(matrix.HasValue()) | EXPECT_EQ(&supplied, &system) | EXPECT_EQ(&p, &partition) | EXPECT_EQ(&previous, &old) | EXPECT_EQ(&backend, &solver) | EXPECT_EQ(&workspace, &cache) | EXPECT_DOUBLE_EQ(delta, 17) | EXPECT_EQ(&supplied.k, &k) | EXPECT_EQ(&supplied.c, &c) | EXPECT_EQ(&supplied.q, &q) | EXPECT_EQ(supplied.k_error, nullptr) | EXPECT_EQ(supplied.c_error, nullptr) | EXPECT_EQ(supplied.q_error, nullptr) | EXPECT_EQ(p.free, (std::vector{0, 1})) | EXPECT_TRUE(p.constrained.empty()) | EXPECT_EQ(p.prescribed.Size(), 0U) | EXPECT_DOUBLE_EQ(e.beta_cert, 31) | EXPECT_DOUBLE_EQ(e.beta_limit, 32) | EXPECT_DOUBLE_EQ(e.free_residual_cert, 33) | EXPECT_DOUBLE_EQ(e.full_free_residual_cert, 34) | EXPECT_DOUBLE_EQ(e.full_beta_cert, 35) | EXPECT_DOUBLE_EQ(e.operator_construction_error, 36) | EXPECT_DOUBLE_EQ(e.rhs_construction_error, 37) | EXPECT_DOUBLE_EQ(e.construction_identity_bound, 38) | EXPECT_DOUBLE_EQ(e.energy_change, 39) | EXPECT_DOUBLE_EQ(e.energy_defect, 40) | EXPECT_DOUBLE_EQ(e.energy_bound, 41) | EXPECT_TRUE(e.dissipation_checked) | EXPECT_DOUBLE_EQ(e.dissipation_defect, 42) | EXPECT_DOUBLE_EQ(e.dissipation_bound, 43) | EXPECT_EQ(flux.size(), 1U) | EXPECT_EQ(value.Components(), (std::array{51, 52, 53})) | ASSERT_TRUE(heat_value::RunThermalStep(*integrator, system, partition, old, 17, solver, cache, recovery, commit).IsOk()) | EXPECT_EQ(events, (std::vector{""solve"", ""recovery"", ""commit""})) | ASSERT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""solve""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""solve"", ""recovery""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""solve"", ""recovery"", ""commit""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_FALSE(cache.matrix.has_value()) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed)" -Refactor tests/unit/analysis/analysis_test.cpp support@1-51 helper/oracle/fixture/include/static assertion 구간: StatusAnalysis tests/unit/analysis/analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1f9bcf41d5b9d4c5c4dd1f5f6fc2f59e4256ec4061745837f86e04644e130450 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/analysis_test.cpp support@79-113 helper/oracle/fixture/include/static assertion 구간: ObservedProcedure tests/unit/analysis/analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4502cb928dc48ff07cc73fa7959747b8297a3f4cff51595860a4e2600f6a18a1 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/analysis_test.cpp support@183-340 helper/oracle/fixture/include/static assertion 구간: InjectionFailure, ExpectInjectionFailure, ExpectValueVector, NeverCalledLinear, NeverCalledTangent, SelectedOrderAlgorithm, shell_value, ValueShellIntegrator, ValueSolidIntegrator, heat_value, ValueHeatIntegrator tests/unit/analysis/analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8f3567a998f77ac0108671b3754e8bff34b3b5488709883977373db21caefd18 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/dynamic_analysis_state_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/analysis/dynamic_analysis_state_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 25e30b540c37be5c7699132ddf7c5da319a4a1bf3fb8988b054c8e9941ca594f 25e30b540c37be5c7699132ddf7c5da319a4a1bf3fb8988b054c8e9941ca594f 해당 없음 해당 없음 -Refactor tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsUnknownOrChangingIntegrationFormulation DynamicAnalysisState.RejectsUnknownOrChangingIntegrationFormulation; assertion 6개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsUnknownOrChangingIntegrationFormulation 유지 원문 검사 body 및 assertion 동일. b299952d9c0f3e19395a6d489944cf36625188d909376ec71022cdfc3c04478e b299952d9c0f3e19395a6d489944cf36625188d909376ec71022cdfc3c04478e EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_TRUE(fixture.state.AcceptedFrames().empty()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(next).IsOk()) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), 1U) | EXPECT_TRUE(fixture.state.CommitAcceptedFrame(next).IsOk()) EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_TRUE(fixture.state.AcceptedFrames().empty()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(next).IsOk()) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), 1U) | EXPECT_TRUE(fixture.state.CommitAcceptedFrame(next).IsOk()) -Refactor tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.DefaultStateRejectsTrialAndCommit DynamicAnalysisState.DefaultStateRejectsTrialAndCommit; assertion 7개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.DefaultStateRejectsTrialAndCommit 유지 원문 검사 body 및 assertion 동일. b4737286e2144fd021d33353dc82bdd2e178140858c8f7abd06756e0ce44a186 b4737286e2144fd021d33353dc82bdd2e178140858c8f7abd06756e0ce44a186 "EXPECT_FALSE(state.IsInitialized()) | EXPECT_TRUE(state.AcceptedFrames().empty()) | EXPECT_FALSE(state.BeginTrialFromCommitted().HasValue()) | EXPECT_THROW((void)state.CommittedState(), std::logic_error) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-invalid-state"")" "EXPECT_FALSE(state.IsInitialized()) | EXPECT_TRUE(state.AcceptedFrames().empty()) | EXPECT_FALSE(state.BeginTrialFromCommitted().HasValue()) | EXPECT_THROW((void)state.CommittedState(), std::logic_error) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-invalid-state"")" -Refactor tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.CommitsCompleteZeroCorrectionHistoryAndCopiesTrials DynamicAnalysisState.CommitsCompleteZeroCorrectionHistoryAndCopiesTrials; assertion 11개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.CommitsCompleteZeroCorrectionHistoryAndCopiesTrials 유지 원문 검사 body 및 assertion 동일. 6724599255887b6bf6c6e95acb67cf1a050081f3bbb2af3617e3abd7d2c2f4be 6724599255887b6bf6c6e95acb67cf1a050081f3bbb2af3617e3abd7d2c2f4be EXPECT_TRUE(fixture.state.IsInitialized()) | EXPECT_FALSE(fixture.state.BeginTrialFromCommitted().HasValue()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().reaction[2U], -4.0) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), index + 1U) | ASSERT_TRUE(trial.HasValue()) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().generalized_coordinates[0U], 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState() .shell_results[0U] .stress[0U] .components[0U], 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().time, 0.5) | EXPECT_FALSE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 3U)).IsOk()) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), 3U) EXPECT_TRUE(fixture.state.IsInitialized()) | EXPECT_FALSE(fixture.state.BeginTrialFromCommitted().HasValue()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().reaction[2U], -4.0) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), index + 1U) | ASSERT_TRUE(trial.HasValue()) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().generalized_coordinates[0U], 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState() .shell_results[0U] .stress[0U] .components[0U], 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().time, 0.5) | EXPECT_FALSE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 3U)).IsOk()) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), 3U) -Refactor tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsMalformedInventoryScheduleAndPreservesEndpoint DynamicAnalysisState.RejectsMalformedInventoryScheduleAndPreservesEndpoint; assertion 8개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsMalformedInventoryScheduleAndPreservesEndpoint 유지 원문 검사 body 및 assertion 동일. ebf23f327fb58c09d0aa92da9d41f6059c31e1ff89f221511925e93e12b65922 ebf23f327fb58c09d0aa92da9d41f6059c31e1ff89f221511925e93e12b65922 "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-invalid-state"") | ASSERT_EQ(fixture.state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().time, 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().reaction[2U], -4.0) | EXPECT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 1U)).IsOk())" "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-invalid-state"") | ASSERT_EQ(fixture.state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().time, 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().reaction[2U], -4.0) | EXPECT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 1U)).IsOk())" -Refactor tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsInvalidInitialStateAndFreeReaction DynamicAnalysisState.RejectsInvalidInitialStateAndFreeReaction; assertion 6개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsInvalidInitialStateAndFreeReaction 유지 원문 검사 body 및 assertion 동일. 7651255fed1f126aeef752981e055c05207296c59c2ea57c8ece5b759bf5050e 7651255fed1f126aeef752981e055c05207296c59c2ea57c8ece5b759bf5050e EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_TRUE(fixture.state.AcceptedFrames().empty()) | EXPECT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_TRUE(fixture.state.AcceptedFrames().empty()) | EXPECT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) -Refactor tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.CreateRejectsInvalidScheduleAndNonzeroBoundary DynamicAnalysisState.CreateRejectsInvalidScheduleAndNonzeroBoundary; assertion 4개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.CreateRejectsInvalidScheduleAndNonzeroBoundary 유지 원문 검사 body 및 assertion 동일. bbfb29c502216154504e82bbab6dc0df768128bc6ce0543958c4637ea1f32ef6 bbfb29c502216154504e82bbab6dc0df768128bc6ce0543958c4637ea1f32ef6 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_FALSE( fesa::DynamicAnalysisState::Create(domain.Value(), dofs.Value()) .HasValue()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_FALSE( fesa::DynamicAnalysisState::Create(domain.Value(), dofs.Value()) .HasValue()) -Refactor tests/unit/analysis/dynamic_analysis_state_test.cpp support@1-142 helper/oracle/fixture/include/static assertion 구간: MakeDefinition, if, Fixture, MakeFixture, MakeFrame tests/unit/analysis/dynamic_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7a11e3f45e7410305d59981204ce69f453199fac55bfeaf62d2a5c8e6c409fa2 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/dynamic_analysis_state_test.cpp support@321-322 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/dynamic_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/eigen_mass_assembly_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/analysis/eigen_mass_assembly_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8489602024286b7c66c26750ecbf627d361b893fa9083c7d2dd97d34bbe3c25e 8489602024286b7c66c26750ecbf627d361b893fa9083c7d2dd97d34bbe3c25e 해당 없음 해당 없음 -Refactor tests/unit/analysis/eigen_mass_assembly_test.cpp EigenMassAssembly.ScattersHeterogeneousSharedNodeMassInSourceOrder EigenMassAssembly.ScattersHeterogeneousSharedNodeMassInSourceOrder; assertion 9개 tests/unit/analysis/eigen_mass_assembly_test.cpp EigenMassAssembly.ScattersHeterogeneousSharedNodeMassInSourceOrder 유지 원문 검사 body 및 assertion 동일. 6d9e4d731b921c8e3a160847675ebe72b28977b65f3abdee8fc959a4a183b62f 6d9e4d731b921c8e3a160847675ebe72b28977b65f3abdee8fc959a4a183b62f ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(expected.HasValue()) | EXPECT_LE(std::abs(expected.Value().mass - analytic_shared_rotary_mass) / analytic_shared_rotary_mass, 1e-12) | ASSERT_TRUE(state.HasValue()) | ASSERT_EQ(state.Value().free_dof_count, 1U) | ASSERT_EQ(state.Value().modes.size(), 1U) | EXPECT_LE(std::abs(state.Value().modes[0U].eigenvalue - expected_eigenvalue) / (std::abs(state.Value().modes[0U].eigenvalue) + std::abs(expected_eigenvalue)), 1e-12) | EXPECT_LE(std::abs(amplitude * amplitude * analytic_shared_rotary_mass - 1.0), 1e-12) | EXPECT_NEAR(eigenvalues[0U], eigenvalues[1U], 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(expected.HasValue()) | EXPECT_LE(std::abs(expected.Value().mass - analytic_shared_rotary_mass) / analytic_shared_rotary_mass, 1e-12) | ASSERT_TRUE(state.HasValue()) | ASSERT_EQ(state.Value().free_dof_count, 1U) | ASSERT_EQ(state.Value().modes.size(), 1U) | EXPECT_LE(std::abs(state.Value().modes[0U].eigenvalue - expected_eigenvalue) / (std::abs(state.Value().modes[0U].eigenvalue) + std::abs(expected_eigenvalue)), 1e-12) | EXPECT_LE(std::abs(amplitude * amplitude * analytic_shared_rotary_mass - 1.0), 1e-12) | EXPECT_NEAR(eigenvalues[0U], eigenvalues[1U], 1e-12) -Refactor tests/unit/analysis/eigen_mass_assembly_test.cpp support@1-148 helper/oracle/fixture/include/static assertion 구간: StatusText, SharedNodeDomain, SharedDofPencil, DirectSharedDofPencil tests/unit/analysis/eigen_mass_assembly_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 53cc183efe17e5050e7ea520df0757fe7dfdc9eba5668b6a1a2bcb51ae107667 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/eigen_mass_assembly_test.cpp support@179-180 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/eigen_mass_assembly_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/eigen_reduction_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/unit/analysis/eigen_reduction_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c6d306df8de16086aaa2c1b8135de697180ed6576dce01cbbc550c0147469c30 deeb284988187961964b2a213d19e3b2655f399294debdc175e43be75dada796 해당 없음 해당 없음 -Refactor tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.KeepsPositivePartialGlobalRotationAndOriginalPencil EigenReduction.KeepsPositivePartialGlobalRotationAndOriginalPencil; assertion 6개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.KeepsPositivePartialGlobalRotationAndOriginalPencil 유지 원문 검사 body 및 assertion 동일. 399fa920a441080dca52e78288f339ef61c0a5a2ffd35eac3374a02d2732c42a 399fa920a441080dca52e78288f339ef61c0a5a2ffd35eac3374a02d2732c42a ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 0U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 1U) | EXPECT_NEAR(result.Value().whitened_operator.Values()[0], 10369.0 / 450.0, 1e-12) | EXPECT_DOUBLE_EQ(y[i], 0.0) | EXPECT_NEAR(y[5U] * y[5U] * (3.0 / 50.0), 1.0, 1e-12) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 0U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 1U) | EXPECT_NEAR(result.Value().whitened_operator.Values()[0], 10369.0 / 450.0, 1e-12) | EXPECT_DOUBLE_EQ(y[i], 0.0) | EXPECT_NEAR(y[5U] * y[5U] * (3.0 / 50.0), 1.0, 1e-12) -Refactor tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.RemovesOnlyActualFreeDirectorNull EigenReduction.RemovesOnlyActualFreeDirectorNull; assertion 7개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.RemovesOnlyActualFreeDirectorNull 유지 원문 검사 body 및 assertion 동일. 471fdf9ca8aeae5af42703e726987365971308fc83bc8104410a6a1840e1082a 471fdf9ca8aeae5af42703e726987365971308fc83bc8104410a6a1840e1082a ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().free_count, 6U) | EXPECT_EQ(result.Value().null_count, 1U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 5U) | EXPECT_NEAR(action[i], 7.0, 1e-12) | EXPECT_LE(result.Value().eta_kz, 1e-12) | EXPECT_FALSE(fesa::eigen_internal::BuildEigenReduction( Sparse(stiffness), {mass}, {frame}, std::vector(6U, 0U), {0.25}, 2.0) .HasValue()) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().free_count, 6U) | EXPECT_EQ(result.Value().null_count, 1U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 5U) | EXPECT_NEAR(action[i], 7.0, 1e-12) | EXPECT_LE(result.Value().eta_kz, 1e-12) | EXPECT_FALSE(fesa::eigen_internal::BuildEigenReduction( Sparse(stiffness), {mass}, {frame}, std::vector(6U, 0U), {0.25}, 2.0) .HasValue()) -Refactor tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.RejectsPositiveButUnresolvableMassWithoutDeletingDofs EigenReduction.RejectsPositiveButUnresolvableMassWithoutDeletingDofs; assertion 2개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.RejectsPositiveButUnresolvableMassWithoutDeletingDofs 유지 원문 검사 body 및 assertion 동일. f6d11adf25938f2049286ead08de4b4714864ca4b1322e18bf3633bcf7854c31 f6d11adf25938f2049286ead08de4b4714864ca4b1322e18bf3633bcf7854c31 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""eigen-mass-conditioning"")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""eigen-mass-conditioning"")" -Refactor tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.WhitensOffDiagonalMassAndRestoresOriginalPencil EigenReduction.WhitensOffDiagonalMassAndRestoresOriginalPencil; assertion 7개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.WhitensOffDiagonalMassAndRestoresOriginalPencil 유지 원문 검사 body 및 assertion 동일. b5a7c3d712f378cd6568ccd879c6c7390686b963b0528af91c9a20bf8353e277 b5a7c3d712f378cd6568ccd879c6c7390686b963b0528af91c9a20bf8353e277 ASSERT_TRUE(reduction.HasValue()) | ASSERT_TRUE(eigen.HasValue()) | ASSERT_EQ(eigen.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(eigen.Value().eigenvalues[0], 2.0, 1e-12) | EXPECT_NEAR(eigen.Value().eigenvalues[1], 10.0 / 3.0, 1e-12) | EXPECT_NEAR(q.Dot(mq), 1.0, 1e-12) | EXPECT_LE(residual.Norm(), 1e-12) ASSERT_TRUE(reduction.HasValue()) | ASSERT_TRUE(eigen.HasValue()) | ASSERT_EQ(eigen.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(eigen.Value().eigenvalues[0], 2.0, 1e-12) | EXPECT_NEAR(eigen.Value().eigenvalues[1], 10.0 / 3.0, 1e-12) | EXPECT_NEAR(q.Dot(mq), 1.0, 1e-12) | EXPECT_LE(residual.Norm(), 1e-12) -Refactor tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.PreservesSmallResolvablePositivePartialRotationMass EigenReduction.PreservesSmallResolvablePositivePartialRotationMass; assertion 4개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.PreservesSmallResolvablePositivePartialRotationMass 유지 원문 검사 body 및 assertion 동일. aff919e78c5664fb5231773c44978a9d7cbf02ee6f62c4a2a94d2abb33948434 aff919e78c5664fb5231773c44978a9d7cbf02ee6f62c4a2a94d2abb33948434 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 0U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 5U) | EXPECT_GE(result.Value().nodes[0].record.rcond_inf, 0x1p-32) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 0U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 5U) | EXPECT_GE(result.Value().nodes[0].record.rcond_inf, 0x1p-32) -Refactor tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.HandlesTwoFreeRotationsAndRejectsEmptyFiniteSpace EigenReduction.HandlesTwoFreeRotationsAndRejectsEmptyFiniteSpace; assertion 7개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.HandlesTwoFreeRotationsAndRejectsEmptyFiniteSpace 유지 원문 검사 body 및 assertion 동일. 9291ee1eebaa0910609397a4c53ac7f706ee44b9c19994ed2c1976a7c0e8befe 9291ee1eebaa0910609397a4c53ac7f706ee44b9c19994ed2c1976a7c0e8befe "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 1U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 1U) | EXPECT_FALSE(fesa::eigen_internal::BuildEigenReduction( Sparse(stiffness), {mass}, {frame}, mask, {0.25}, 1.0) .HasValue()) | ASSERT_FALSE(empty.HasValue()) | EXPECT_EQ(empty.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_EQ(empty.GetStatus().Diagnostics()[0].code, ""empty-eigenproblem"")" "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 1U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 1U) | EXPECT_FALSE(fesa::eigen_internal::BuildEigenReduction( Sparse(stiffness), {mass}, {frame}, mask, {0.25}, 1.0) .HasValue()) | ASSERT_FALSE(empty.HasValue()) | EXPECT_EQ(empty.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_EQ(empty.GetStatus().Diagnostics()[0].code, ""empty-eigenproblem"")" -Refactor tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.PureMassWhiteningRetainsInclusiveInfinityConditionGate EigenReduction.PureMassWhiteningRetainsInclusiveInfinityConditionGate; assertion 5개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.PureMassWhiteningRetainsInclusiveInfinityConditionGate 유지 원문 검사 body 및 assertion 동일. 8d5801bc22534356f71705e0e72244253b4a9c9aae2bd601ca8e86d65824f457 8d5801bc22534356f71705e0e72244253b4a9c9aae2bd601ca8e86d65824f457 "EXPECT_EQ(reduced.HasValue(), diagonal >= 0x1p-32) | EXPECT_DOUBLE_EQ(reduced.Value().nodes[0].record.rcond_inf, diagonal) | EXPECT_NEAR(applied[0], 3.0, 1e-12) | EXPECT_NEAR(applied[1], 3.0, 1e-12) | EXPECT_EQ(reduced.GetStatus().Diagnostics()[0].code, ""eigen-mass-conditioning"")" "EXPECT_EQ(reduced.HasValue(), diagonal >= 0x1p-32) | EXPECT_DOUBLE_EQ(reduced.Value().nodes[0].record.rcond_inf, diagonal) | EXPECT_NEAR(applied[0], 3.0, 1e-12) | EXPECT_NEAR(applied[1], 3.0, 1e-12) | EXPECT_EQ(reduced.GetStatus().Diagnostics()[0].code, ""eigen-mass-conditioning"")" -Refactor tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.PureOffDiagonalWhiteningMatchesAnalyticGramAndPencil EigenReduction.PureOffDiagonalWhiteningMatchesAnalyticGramAndPencil; assertion 8개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.PureOffDiagonalWhiteningMatchesAnalyticGramAndPencil 유지 원문 검사 body 및 assertion 동일. e1fd9603a07186b94bc73be8913ab26c440e3383f2dffa976e8de8454fd4e545 e1fd9603a07186b94bc73be8913ab26c440e3383f2dffa976e8de8454fd4e545 ASSERT_TRUE(reduced.HasValue()) | EXPECT_NEAR(physical[0][0], 1.0 / std::sqrt(2.0), 1e-12) | EXPECT_NEAR(physical[0][1], 0.0, 1e-12) | EXPECT_NEAR(physical[1][0], -1.0 / std::sqrt(6.0), 1e-12) | EXPECT_NEAR(physical[1][1], 2.0 / std::sqrt(6.0), 1e-12) | EXPECT_NEAR(physical[row].Dot(mq), row == column ? 1.0 : 0.0, 1e-12) | EXPECT_NEAR(action[row], expected[row][column], 1e-12) | EXPECT_NEAR(action[row], physical[row].Dot(kq), 1e-12) ASSERT_TRUE(reduced.HasValue()) | EXPECT_NEAR(physical[0][0], 1.0 / std::sqrt(2.0), 1e-12) | EXPECT_NEAR(physical[0][1], 0.0, 1e-12) | EXPECT_NEAR(physical[1][0], -1.0 / std::sqrt(6.0), 1e-12) | EXPECT_NEAR(physical[1][1], 2.0 / std::sqrt(6.0), 1e-12) | EXPECT_NEAR(physical[row].Dot(mq), row == column ? 1.0 : 0.0, 1e-12) | EXPECT_NEAR(action[row], expected[row][column], 1e-12) | EXPECT_NEAR(action[row], physical[row].Dot(kq), 1e-12) -Refactor tests/unit/analysis/eigen_reduction_test.cpp support@1-50 helper/oracle/fixture/include/static assertion 구간: Sparse, NodalMass, TiltedFrame tests/unit/analysis/eigen_reduction_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ec071e4e6d7f4391202a3a9d93789568081129769ce79baf2093b17de991fbca 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 20개 tests/unit/analysis/hht_dynamic_algebra_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e926831b44741880a7a729c57266c668eeeccc9130be07eacdb97c5330338ad2 e926831b44741880a7a729c57266c668eeeccc9130be07eacdb97c5330338ad2 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidPredictorPreservesRatesFixedDofsAndOldState HhtNewtonStart.ValidPredictorPreservesRatesFixedDofsAndOldState; assertion 16개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidPredictorPreservesRatesFixedDofsAndOldState 유지 원문 검사 body 및 assertion 동일. 83ff51b06a72feea0d70aa1de3e1d8fa07f7128d4c4194861b5bb148ba8813f9 83ff51b06a72feea0d70aa1de3e1d8fa07f7128d4c4194861b5bb148ba8813f9 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_GT(frame.generalized_coordinates[2U], 0.0) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], predictor.coordinates[i]) | EXPECT_DOUBLE_EQ(frame.velocity[i], predictor.velocity[i]) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], parameters.alpha * old.acceleration[i] / (1.0 + parameters.alpha)) | EXPECT_DOUBLE_EQ(old.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.velocity[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(old.velocity[2U], 0.2) | EXPECT_DOUBLE_EQ(old.acceleration[2U], 0.3) | EXPECT_EQ(old.iteration_count, 7U) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_GT(frame.generalized_coordinates[2U], 0.0) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], predictor.coordinates[i]) | EXPECT_DOUBLE_EQ(frame.velocity[i], predictor.velocity[i]) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], parameters.alpha * old.acceleration[i] / (1.0 + parameters.alpha)) | EXPECT_DOUBLE_EQ(old.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.velocity[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(old.velocity[2U], 0.2) | EXPECT_DOUBLE_EQ(old.acceleration[2U], 0.3) | EXPECT_EQ(old.iteration_count, 7U) -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.InvalidPredictorGeometryUsesUnchangedAcceptedCoordinates HhtNewtonStart.InvalidPredictorGeometryUsesUnchangedAcceptedCoordinates; assertion 6개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.InvalidPredictorGeometryUsesUnchangedAcceptedCoordinates 유지 원문 검사 body 및 assertion 동일. 7f1ecc04486786cb084db0832cdaf162e71ddcf7e8ad02c3193dbb36d5d195f3 7f1ecc04486786cb084db0832cdaf162e71ddcf7e8ad02c3193dbb36d5d195f3 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(old.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(start.Value().frame.algorithmic_acceleration[i], auxiliary) | EXPECT_DOUBLE_EQ(start.Value().frame.acceleration[i], auxiliary / (1.0 + parameters.alpha)) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(old.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(start.Value().frame.algorithmic_acceleration[i], auxiliary) | EXPECT_DOUBLE_EQ(start.Value().frame.acceleration[i], auxiliary / (1.0 + parameters.alpha)) -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidChartRateOverflowIsNotReplacedByAcceptedGeometry HhtNewtonStart.ValidChartRateOverflowIsNotReplacedByAcceptedGeometry; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidChartRateOverflowIsNotReplacedByAcceptedGeometry 유지 원문 검사 body 및 assertion 동일. 52556a58a35b9a39362efc3fd2fff266da52dea44cfdea0e89c4c1c288705fee 52556a58a35b9a39362efc3fd2fff266da52dea44cfdea0e89c4c1c288705fee "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-dynamic-rotation"")" "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-dynamic-rotation"")" -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.LaterOutsideChartNodeDoesNotHideEarlierRateOverflow HhtNewtonStart.LaterOutsideChartNodeDoesNotHideEarlierRateOverflow; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.LaterOutsideChartNodeDoesNotHideEarlierRateOverflow 유지 원문 검사 body 및 assertion 동일. 30d8bdf6512795f74fb1e1322a2a7266e83e2545f10f4cc95ecde8c83530594e 30d8bdf6512795f74fb1e1322a2a7266e83e2545f10f4cc95ecde8c83530594e "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-dynamic-rotation"")" "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-dynamic-rotation"")" -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.UsesTheExistingPrincipalChartMarginForInitialSelection HhtNewtonStart.UsesTheExistingPrincipalChartMarginForInitialSelection; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.UsesTheExistingPrincipalChartMarginForInitialSelection 유지 원문 검사 body 및 assertion 동일. aad0befacc29ae3638004bedd9fcd0c4a0be3dcd89ec1c4a5f2b4ff45d505b57 aad0befacc29ae3638004bedd9fcd0c4a0be3dcd89ec1c4a5f2b4ff45d505b57 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], inside ? predictor.coordinates[5U] : 0.0) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], inside ? predictor.coordinates[5U] : 0.0) -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.CommonEnergyScalingSelectsTheSmallerFreeResidual HhtNewtonStart.CommonEnergyScalingSelectsTheSmallerFreeResidual; assertion 5개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.CommonEnergyScalingSelectsTheSmallerFreeResidual 유지 원문 검사 body 및 assertion 동일. c81160bc3e25344f04144572f3efb18f086dfca03dab2442ab766da8e00fbb69 c81160bc3e25344f04144572f3efb18f086dfca03dab2442ab766da8e00fbb69 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(evaluated.HasValue()) | ASSERT_GT(drill_residual, 0.0) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], 0.25) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(evaluated.HasValue()) | ASSERT_GT(drill_residual, 0.0) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], 0.25) -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ConstrainedReactionDoesNotChangeNontrivialFreeResidualTie HhtNewtonStart.ConstrainedReactionDoesNotChangeNontrivialFreeResidualTie; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ConstrainedReactionDoesNotChangeNontrivialFreeResidualTie 유지 원문 검사 body 및 assertion 동일. 82af7082c22c2e465b2b74e21b3fab82eebce0a797ce924fb0e62a7a6e4b8977 82af7082c22c2e465b2b74e21b3fab82eebce0a797ce924fb0e62a7a6e4b8977 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(evaluated.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], 0.25) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(evaluated.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], 0.25) -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ScaledResidualOverflowRemainsAFailure HhtNewtonStart.ScaledResidualOverflowRemainsAFailure; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ScaledResidualOverflowRemainsAFailure 유지 원문 검사 body 및 assertion 동일. db53879667603238b22caad54b437d6e9355b60a01d62fcc5895c0ea29bd2206 db53879667603238b22caad54b437d6e9355b60a01d62fcc5895c0ea29bd2206 "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.AcceptedStartArithmeticFailureIsNotIgnoredDuringComparison HhtNewtonStart.AcceptedStartArithmeticFailureIsNotIgnoredDuringComparison; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.AcceptedStartArithmeticFailureIsNotIgnoredDuringComparison 유지 원문 검사 body 및 assertion 동일. ae45e703f39d5173207289f5bac55b10d4912d7faaeb7e31b0828c6c3d84bd59 ae45e703f39d5173207289f5bac55b10d4912d7faaeb7e31b0828c6c3d84bd59 "ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(valid_predictor.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" "ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(valid_predictor.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.RejectedPredictorDoesNotHideInvalidAcceptedStartRates HhtNewtonStart.RejectedPredictorDoesNotHideInvalidAcceptedStartRates; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.RejectedPredictorDoesNotHideInvalidAcceptedStartRates 유지 원문 검사 body 및 assertion 동일. 87af7acedf54a8bacd7dc709d4cf98bab2e8dd55c6033d7decfc9edf545cd69e 87af7acedf54a8bacd7dc709d4cf98bab2e8dd55c6033d7decfc9edf545cd69e "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"") | EXPECT_DOUBLE_EQ(old.generalized_coordinates[5U], 0.0)" "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"") | EXPECT_DOUBLE_EQ(old.generalized_coordinates[5U], 0.0)" -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidGeometryStressOverflowRemainsARecoveryFailure HhtNewtonStart.ValidGeometryStressOverflowRemainsARecoveryFailure; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidGeometryStressOverflowRemainsARecoveryFailure 유지 원문 검사 body 및 assertion 동일. 608c3757178a373edae163916eb616d060f80ed87e569f1a747ef533fba5e841 608c3757178a373edae163916eb616d060f80ed87e569f1a747ef533fba5e841 "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-nonlinear-shell-recovery"")" "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-nonlinear-shell-recovery"")" -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.InitializesCoupledMasslessAccelerationFromHiddenEquation HhtDynamicAlgebra.InitializesCoupledMasslessAccelerationFromHiddenEquation; assertion 10개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.InitializesCoupledMasslessAccelerationFromHiddenEquation 유지 원문 검사 body 및 assertion 동일. dca81e4f5956f5fd2a869a3a5b03c9e15df863b98e40c9cf8489678b3d516a02 dca81e4f5956f5fd2a869a3a5b03c9e15df863b98e40c9cf8489678b3d516a02 ASSERT_TRUE(acceleration.HasValue()) | EXPECT_NEAR(acceleration.Value()[0], 1.0, 1.0e-12) | EXPECT_NEAR(acceleration.Value()[5], 0.7, 1.0e-12) | EXPECT_EQ(acceleration.Value()[full], 0.0) | ASSERT_EQ(nodes, std::vector{0U}) | EXPECT_TRUE(fesa::hht_internal::CompleteConstraintEvidence( *fixture.domain, fixture.dofs, assembly, 2.0, nodes, positive, tangent, &frame) .IsOk()) | ASSERT_EQ(frame.hidden_acceleration_defect.Size(), 1U) | EXPECT_NEAR(frame.hidden_acceleration_defect[0], 0.0, 1.0e-12) | EXPECT_GT(frame.hidden_acceleration_defect_scale[0], 0.0) | EXPECT_FALSE(pseudoinverse.IsOk()) ASSERT_TRUE(acceleration.HasValue()) | EXPECT_NEAR(acceleration.Value()[0], 1.0, 1.0e-12) | EXPECT_NEAR(acceleration.Value()[5], 0.7, 1.0e-12) | EXPECT_EQ(acceleration.Value()[full], 0.0) | ASSERT_EQ(nodes, std::vector{0U}) | EXPECT_TRUE(fesa::hht_internal::CompleteConstraintEvidence( *fixture.domain, fixture.dofs, assembly, 2.0, nodes, positive, tangent, &frame) .IsOk()) | ASSERT_EQ(frame.hidden_acceleration_defect.Size(), 1U) | EXPECT_NEAR(frame.hidden_acceleration_defect[0], 0.0, 1.0e-12) | EXPECT_GT(frame.hidden_acceleration_defect_scale[0], 0.0) | EXPECT_FALSE(pseudoinverse.IsOk()) -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsMissingCanonicalHiddenGradient HhtDynamicAlgebra.RejectsMissingCanonicalHiddenGradient; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsMissingCanonicalHiddenGradient 유지 원문 검사 body 및 assertion 동일. 74a7c54d874d6dc0045725cdb30a80de28ba7e3bfb9624462ed9234575436bbd 74a7c54d874d6dc0045725cdb30a80de28ba7e3bfb9624462ed9234575436bbd "ASSERT_FALSE(acceleration.HasValue()) | ASSERT_FALSE(acceleration.GetStatus().Diagnostics().empty()) | EXPECT_EQ(acceleration.GetStatus().Diagnostics().front().code, ""dynamic-algebraic-gradient"")" "ASSERT_FALSE(acceleration.HasValue()) | ASSERT_FALSE(acceleration.GetStatus().Diagnostics().empty()) | EXPECT_EQ(acceleration.GetStatus().Diagnostics().front().code, ""dynamic-algebraic-gradient"")" -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.ChecksInitialConstraintAndVelocityWithoutRepair HhtDynamicAlgebra.ChecksInitialConstraintAndVelocityWithoutRepair; assertion 2개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.ChecksInitialConstraintAndVelocityWithoutRepair 유지 원문 검사 body 및 assertion 동일. 1f8d68dac0766ed6cfd75b6e55633612751022e7d9c6e8f77d67c06a694973a4 1f8d68dac0766ed6cfd75b6e55633612751022e7d9c6e8f77d67c06a694973a4 EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, inconsistent, 2.0, positive, tangent) .HasValue()) | EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, inconsistent, 2.0, positive, tangent) .HasValue()) EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, inconsistent, 2.0, positive, tangent) .HasValue()) | EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, inconsistent, 2.0, positive, tangent) .HasValue()) -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.KeepsAcceptedHiddenRateDefectsAsDiagnostics HhtDynamicAlgebra.KeepsAcceptedHiddenRateDefectsAsDiagnostics; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.KeepsAcceptedHiddenRateDefectsAsDiagnostics 유지 원문 검사 body 및 assertion 동일. b6656cadbd8eff4fe59cb6e649da8b73f332d6371a24e089e51a502fd701812a b6656cadbd8eff4fe59cb6e649da8b73f332d6371a24e089e51a502fd701812a ASSERT_TRUE(result.IsOk()) | EXPECT_NEAR(frame.hidden_velocity_defect[0], 0.3, 1.0e-12) | EXPECT_NEAR(frame.hidden_acceleration_defect[0], -0.6, 1.0e-12) ASSERT_TRUE(result.IsOk()) | EXPECT_NEAR(frame.hidden_velocity_defect[0], 0.3, 1.0e-12) | EXPECT_NEAR(frame.hidden_acceleration_defect[0], -0.6, 1.0e-12) -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsNegativePhysicalMassAndAlgebraicRankLoss HhtDynamicAlgebra.RejectsNegativePhysicalMassAndAlgebraicRankLoss; assertion 2개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsNegativePhysicalMassAndAlgebraicRankLoss 유지 원문 검사 body 및 assertion 동일. 78d8a27b28858536af53be59122d7afd794a448f30eee56de369e82b20ecb0a8 78d8a27b28858536af53be59122d7afd794a448f30eee56de369e82b20ecb0a8 EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, negative, 2.0, positive, tangent) .HasValue()) | EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, singular, 2.0, positive, tangent) .HasValue()) EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, negative, 2.0, positive, tangent) .HasValue()) | EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, singular, 2.0, positive, tangent) .HasValue()) -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.AppliesTheExactRegularityConditionBoundary HhtDynamicAlgebra.AppliesTheExactRegularityConditionBoundary; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.AppliesTheExactRegularityConditionBoundary 유지 원문 검사 body 및 assertion 동일. 6c6023800e47f2dee4b1e70509312f6286db2bb011b24117d285dca77fb219e3 6c6023800e47f2dee4b1e70509312f6286db2bb011b24117d285dca77fb219e3 "EXPECT_EQ(result.HasValue(), exponent <= 32) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""dynamic-algebraic-conditioning"")" "EXPECT_EQ(result.HasValue(), exponent <= 32) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""dynamic-algebraic-conditioning"")" -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.AllFixedModelHasAnEmptyValidAccelerationSolve HhtDynamicAlgebra.AllFixedModelHasAnEmptyValidAccelerationSolve; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.AllFixedModelHasAnEmptyValidAccelerationSolve 유지 원문 검사 body 및 assertion 동일. b46d03f9802058ea1af7e6fb69903168a20526878111f1e1994389b609273c36 b46d03f9802058ea1af7e6fb69903168a20526878111f1e1994389b609273c36 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().Norm(), 0.0) | EXPECT_TRUE(fesa::hht_internal::CompleteConstraintEvidence( *fixture.domain, fixture.dofs, assembly, 2.0, {}, positive, tangent, &frame) .IsOk()) | EXPECT_EQ(frame.hidden_constraint.Size(), 0U) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().Norm(), 0.0) | EXPECT_TRUE(fesa::hht_internal::CompleteConstraintEvidence( *fixture.domain, fixture.dofs, assembly, 2.0, {}, positive, tangent, &frame) .IsOk()) | EXPECT_EQ(frame.hidden_constraint.Size(), 0U) -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.PartialBoundaryRetainsEveryNonzeroPhysicalDirection HhtDynamicAlgebra.PartialBoundaryRetainsEveryNonzeroPhysicalDirection; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.PartialBoundaryRetainsEveryNonzeroPhysicalDirection 유지 원문 검사 body 및 assertion 동일. 7d72f765cafbf817a9f26d9f8abd9d654664b17589b1824d0bdc885f35ffd953 7d72f765cafbf817a9f26d9f8abd9d654664b17589b1824d0bdc885f35ffd953 "EXPECT_EQ(nodes.size(), p == 0.0 ? 1U : 0U) | EXPECT_EQ(result.HasValue(), expected) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""dynamic-positive-mass-conditioning"")" "EXPECT_EQ(nodes.size(), p == 0.0 ? 1U : 0U) | EXPECT_EQ(result.HasValue(), expected) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""dynamic-positive-mass-conditioning"")" -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsAdmissibleNullRankChangeBeforeAcceptingFrame HhtDynamicAlgebra.RejectsAdmissibleNullRankChangeBeforeAcceptingFrame; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsAdmissibleNullRankChangeBeforeAcceptingFrame 유지 원문 검사 body 및 assertion 동일. 614b49ef2166dc30907a57a85d9ecada764ca8a1864a6c55562c7e645b410611 614b49ef2166dc30907a57a85d9ecada764ca8a1864a6c55562c7e645b410611 "ASSERT_EQ(initial_nodes.size(), 1U) | ASSERT_FALSE(result.IsOk()) | EXPECT_EQ(result.Diagnostics()[0].code, ""dynamic-mass-null-rank-change"") | EXPECT_EQ(frame.hidden_constraint[0], 23.0)" "ASSERT_EQ(initial_nodes.size(), 1U) | ASSERT_FALSE(result.IsOk()) | EXPECT_EQ(result.Diagnostics()[0].code, ""dynamic-mass-null-rank-change"") | EXPECT_EQ(frame.hidden_constraint[0], 23.0)" -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp support@1-161 helper/oracle/fixture/include/static assertion 구간: Fixture, MakeFixture, if, Sparse, Assembly, EmptyTrial tests/unit/analysis/hht_dynamic_algebra_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b54e2c2f814694abbd26a1b4accdd404cb99fbcdb05093dd7f89602ee20ba702 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp support@671-672 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_dynamic_algebra_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_dynamic_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/analysis/hht_dynamic_procedure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7b16fff8a3edd6482b56b0c6ac02cbac5b292aecb05c82d51ac460f691befd3a 7b16fff8a3edd6482b56b0c6ac02cbac5b292aecb05c82d51ac460f691befd3a 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.ClampedStepLoadHasPhysicalReactionAndZeroMotion HhtDynamicProcedure.ClampedStepLoadHasPhysicalReactionAndZeroMotion; assertion 13개 tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.ClampedStepLoadHasPhysicalReactionAndZeroMotion 유지 원문 검사 body 및 assertion 동일. af10ef2634dd693ac1345389ffd20c559b5cab842c16135d6ee600f40b749c52 af10ef2634dd693ac1345389ffd20c559b5cab842c16135d6ee600f40b749c52 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 3U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.reaction[2U], -4.0) | EXPECT_DOUBLE_EQ(frame.external_force[2U], 4.0) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.energy_defect, 0.0) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0.0) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 3U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.reaction[2U], -4.0) | EXPECT_DOUBLE_EQ(frame.external_force[2U], 4.0) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.energy_defect, 0.0) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0.0) -Refactor tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.UnloadedFreeChannelsRemainExactlyAtRest HhtDynamicProcedure.UnloadedFreeChannelsRemainExactlyAtRest; assertion 13개 tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.UnloadedFreeChannelsRemainExactlyAtRest 유지 원문 검사 body 및 assertion 동일. 16d814c3946a314c5b19636f0dda7cbe9d6c7702feaf70a007d2e9546e81ab56 16d814c3946a314c5b19636f0dda7cbe9d6c7702feaf70a007d2e9546e81ab56 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 3U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ((*values)[i], 0.0) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.drilling_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.energy_defect, 0.0) | EXPECT_DOUBLE_EQ(metric, 0.0) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 3U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ((*values)[i], 0.0) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.drilling_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.energy_defect, 0.0) | EXPECT_DOUBLE_EQ(metric, 0.0) -Refactor tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.LargeDirectStepStartsFromAcceptedGeometry HhtDynamicProcedure.LargeDirectStepStartsFromAcceptedGeometry; assertion 10개 tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.LargeDirectStepStartsFromAcceptedGeometry 유지 원문 검사 body 및 assertion 동일. 03acc1280ba57f65c34c10dcee9d444861d413107a82328c271e8affa1349c9e 03acc1280ba57f65c34c10dcee9d444861d413107a82328c271e8affa1349c9e ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GT( std::abs(result.Value().state.AcceptedFrames()[0U].acceleration[14U]), 1e5) | EXPECT_LT(result.Value().state.CommittedState().generalized_coordinates[14U], 0.0) | EXPECT_LE(metric, 1e-10) | EXPECT_GT(result.Value().state.CommittedState().iteration_count, 0U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[dof], (1.0 + alpha) * frame.acceleration[dof] - alpha * frames[frame_index - 1U].acceleration[dof]) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GT( std::abs(result.Value().state.AcceptedFrames()[0U].acceleration[14U]), 1e5) | EXPECT_LT(result.Value().state.CommittedState().generalized_coordinates[14U], 0.0) | EXPECT_LE(metric, 1e-10) | EXPECT_GT(result.Value().state.CommittedState().iteration_count, 0U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[dof], (1.0 + alpha) * frame.acceleration[dof] - alpha * frames[frame_index - 1U].acceleration[dof]) -Refactor tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.PreservesBackendCauseAndAddsInitialFailureContext HhtDynamicProcedure.PreservesBackendCauseAndAddsInitialFailureContext; assertion 13개 tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.PreservesBackendCauseAndAddsInitialFailureContext 유지 원문 검사 body 및 assertion 동일. b869904675bfc24f3eff1a042534df660eca2c47b484a361461060c349de2e1f b869904675bfc24f3eff1a042534df660eca2c47b484a361461060c349de2e1f "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics().front().code, ""injected-tangent-backend"") | ASSERT_NE(found, result.GetStatus().Diagnostics().end()) | EXPECT_EQ(found->location.file, std::filesystem::path{""dynamic-state.inp""}) | EXPECT_EQ(found->location.line, 13U) | EXPECT_EQ(found->entity_identity, ""Transient Load"") | EXPECT_NE(found->message.find(""stage=initial""), std::string::npos) | EXPECT_NE(found->message.find(""increment=0""), std::string::npos) | EXPECT_NE(found->message.find(""time=0""), std::string::npos)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics().front().code, ""injected-tangent-backend"") | ASSERT_NE(found, result.GetStatus().Diagnostics().end()) | EXPECT_EQ(found->location.file, std::filesystem::path{""dynamic-state.inp""}) | EXPECT_EQ(found->location.line, 13U) | EXPECT_EQ(found->entity_identity, ""Transient Load"") | EXPECT_NE(found->message.find(""stage=initial""), std::string::npos) | EXPECT_NE(found->message.find(""increment=0""), std::string::npos) | EXPECT_NE(found->message.find(""time=0""), std::string::npos)" -Refactor tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.UniformTranslationHasNoShellStrainAndIsDeterministicAcrossPartitions HhtDynamicProcedure.UniformTranslationHasNoShellStrainAndIsDeterministicAcrossPartitions; assertion 15개 tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.UniformTranslationHasNoShellStrainAndIsDeterministicAcrossPartitions 유지 원문 검사 body 및 assertion 동일. b0478c8b2a601459afa174f5b801ee5cfd08d11a8a971e979ef7ba8cde76dc28 b0478c8b2a601459afa174f5b801ee5cfd08d11a8a971e979ef7ba8cde76dc28 ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(partitioned.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(finite_rotation.HasValue()) | ASSERT_TRUE(rotated_finite_rotation.HasValue()) | ASSERT_EQ(frames.size(), 3U) | EXPECT_LE(std::abs(frame.physical_strain_energy) / kReferenceEnergy, 1e-10) | EXPECT_LE(std::abs(frame.drilling_energy) / kReferenceEnergy, 1e-10) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node] - frame.generalized_coordinates[0U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + 1U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + 2U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + rotation]), 1e-12) | EXPECT_GT(frames.back().generalized_coordinates[0U], 0.0) | EXPECT_GT(maximum_rotation, 0.0) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(partitioned.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(finite_rotation.HasValue()) | ASSERT_TRUE(rotated_finite_rotation.HasValue()) | ASSERT_EQ(frames.size(), 3U) | EXPECT_LE(std::abs(frame.physical_strain_energy) / kReferenceEnergy, 1e-10) | EXPECT_LE(std::abs(frame.drilling_energy) / kReferenceEnergy, 1e-10) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node] - frame.generalized_coordinates[0U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + 1U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + 2U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + rotation]), 1e-12) | EXPECT_GT(frames.back().generalized_coordinates[0U], 0.0) | EXPECT_GT(maximum_rotation, 0.0) -Refactor tests/unit/analysis/hht_dynamic_procedure_test.cpp support@1-330 helper/oracle/fixture/include/static assertion 구간: InjectedTangentFailure, FailingTangent, FailureText, for, MakeRigidTranslationDefinition, RotateGlobal, MakeRotatedRigidTranslationDefinition, MakeFiniteRotationDefinition, MakeRotatedFiniteRotationDefinition, RigidTranslationRun, ExpectSameSourceIds, RunRigidTranslation, ExpectSameDynamicHistory, ExpectRotatedDofVector, ExpectCovariantDynamicHistory, MakeDefinition, if tests/unit/analysis/hht_dynamic_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 678fa0e4df0f56e62f9a30783ffbf7e564661fc06a0fbc9bbf69bd6e25c8123c 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_dynamic_procedure_test.cpp support@570-571 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_dynamic_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_energy_verification_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/analysis/hht_energy_verification_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9d0c672737a65b301b38b949aef26d0099451719a7fd98ffa7c5d1171e97a885 9d0c672737a65b301b38b949aef26d0099451719a7fd98ffa7c5d1171e97a885 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07AlphaZeroConservesLinearOscillatorEnergy HhtEnergyVerification.C07AlphaZeroConservesLinearOscillatorEnergy; assertion 2개 tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07AlphaZeroConservesLinearOscillatorEnergy 유지 원문 검사 body 및 assertion 동일. c212f946ce9196b35236724d344066dbfcb8d3df5910b001c265f1f5e8ef53b3 c212f946ce9196b35236724d344066dbfcb8d3df5910b001c265f1f5e8ef53b3 ASSERT_TRUE(parameters.HasValue()) | EXPECT_LE(maximum, 1.0e-10) ASSERT_TRUE(parameters.HasValue()) | EXPECT_LE(maximum, 1.0e-10) -Refactor tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07DefaultAlphaReportsEnergyAndPhaseChanges HhtEnergyVerification.C07DefaultAlphaReportsEnergyAndPhaseChanges; assertion 3개 tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07DefaultAlphaReportsEnergyAndPhaseChanges 유지 원문 검사 body 및 assertion 동일. 683b5ca010185dc76cd3ecf37078c479637fd0a00c07ed5a1a80a5a116c14933 683b5ca010185dc76cd3ecf37078c479637fd0a00c07ed5a1a80a5a116c14933 ASSERT_TRUE(parameters.HasValue()) | EXPECT_TRUE(std::isfinite(energy)) | EXPECT_LT(energy, 2.0) ASSERT_TRUE(parameters.HasValue()) | EXPECT_TRUE(std::isfinite(energy)) | EXPECT_LT(energy, 2.0) -Refactor tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07IndependentAmplificationHasThePrescribedSpectrum HhtEnergyVerification.C07IndependentAmplificationHasThePrescribedSpectrum; assertion 4개 tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07IndependentAmplificationHasThePrescribedSpectrum 유지 원문 검사 body 및 assertion 동일. a96cd1993dfff2d5f5c40fdaf6139af7e5f6aa82dfc5cc784de896f1df437bca a96cd1993dfff2d5f5c40fdaf6139af7e5f6aa82dfc5cc784de896f1df437bca EXPECT_NEAR(std::abs(roots[1]), 1.0, 1.0e-10) | EXPECT_NEAR(std::abs(roots[2]), 1.0, 1.0e-10) | EXPECT_LE(radius, 1.0 + 1.0e-10) | EXPECT_LT(error, previous_limit_error) EXPECT_NEAR(std::abs(roots[1]), 1.0, 1.0e-10) | EXPECT_NEAR(std::abs(roots[2]), 1.0, 1.0e-10) | EXPECT_LE(radius, 1.0 + 1.0e-10) | EXPECT_LT(error, previous_limit_error) -Refactor tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07SupportReactionUsesPhysicalAccelerationAndCoupling HhtEnergyVerification.C07SupportReactionUsesPhysicalAccelerationAndCoupling; assertion 4개 tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07SupportReactionUsesPhysicalAccelerationAndCoupling 유지 원문 검사 body 및 assertion 동일. 3462a480370c4e1ef1adba61c8cecbd490c5a188b1c0f71c8f381a648f7717f7 3462a480370c4e1ef1adba61c8cecbd490c5a188b1c0f71c8f381a648f7717f7 ASSERT_TRUE(parameters.HasValue()) | EXPECT_EQ(reaction, 0.5 * state.a[0]) | EXPECT_LE(std::abs(balance) / scale, 1.0e-10) | EXPECT_GT(mutation_difference, 1.0e-6) ASSERT_TRUE(parameters.HasValue()) | EXPECT_EQ(reaction, 0.5 * state.a[0]) | EXPECT_LE(std::abs(balance) / scale, 1.0e-10) | EXPECT_GT(mutation_difference, 1.0e-6) -Refactor tests/unit/analysis/hht_energy_verification_test.cpp support@1-119 helper/oracle/fixture/include/static assertion 구간: Oscillator, Advance, Amplification, Eigenvalues, if, for tests/unit/analysis/hht_energy_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 85df404875102d22dc4c86031757dd24174a652f4dc39cf7ce0f561c59a977b4 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_energy_verification_test.cpp support@222-223 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_energy_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 19개 tests/unit/analysis/hht_reduced_shell_test.cpp file 이관 Dev trial cache·context 변경·copy/move 소유권·실패 우선순위·left-association 검사를 복원한다. 같은 trial의 독립 local 평가만 ShellTrialElement::EvaluateTrial 호출로 이관한다. d4ad83f9f7c7f4ba18942abb13ef3838edb8e39eea2d32a5cc2b8870a85f81d5 243fb1edd3dfd485e824cf11291087e0e6daf469a9c8d0f2ed04ce893e385129 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.SelectsCanonicalPivotAndLiftsCoordinates HhtReducedChart.SelectsCanonicalPivotAndLiftsCoordinates; assertion 7개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.SelectsCanonicalPivotAndLiftsCoordinates 유지 원문 검사 body 및 assertion 동일. 9be1e26c0f12a99552fa2c7e2a706eb69bf9829d16cea9fda53f6d60ed62dd86 9be1e26c0f12a99552fa2c7e2a706eb69bf9829d16cea9fda53f6d60ed62dd86 ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(chart.Value().null_nodes.size(), 4U) | EXPECT_EQ(chart.Value().pivot_components[node], 2U) | EXPECT_EQ(chart.Value().z_dofs[node], 6U * node + 5U) | ASSERT_TRUE(full.HasValue()) | EXPECT_DOUBLE_EQ(full.Value()[chart.Value().p_dofs[i]], p[i]) | EXPECT_DOUBLE_EQ(full.Value()[chart.Value().z_dofs[i]], z[i]) ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(chart.Value().null_nodes.size(), 4U) | EXPECT_EQ(chart.Value().pivot_components[node], 2U) | EXPECT_EQ(chart.Value().z_dofs[node], 6U * node + 5U) | ASSERT_TRUE(full.HasValue()) | EXPECT_DOUBLE_EQ(full.Value()[chart.Value().p_dofs[i]], p[i]) | EXPECT_DOUBLE_EQ(full.Value()[chart.Value().z_dofs[i]], z[i]) -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.RetainsNodeWhenItsPartialBoundaryCutsTheNull HhtReducedChart.RetainsNodeWhenItsPartialBoundaryCutsTheNull; assertion 9개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.RetainsNodeWhenItsPartialBoundaryCutsTheNull 유지 원문 검사 body 및 assertion 동일. 6233920d1de0cb982482e84f4acac2853c5d4b5f8b76431c4e52cc215134cc89 6233920d1de0cb982482e84f4acac2853c5d4b5f8b76431c4e52cc215134cc89 ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(chart.Value().null_nodes.size(), 3U) | EXPECT_TRUE(std::find(chart.Value().null_nodes.begin(), chart.Value().null_nodes.end(), 0U) == chart.Value().null_nodes.end()) | EXPECT_TRUE(std::find(chart.Value().p_dofs.begin(), chart.Value().p_dofs.end(), 3U) != chart.Value().p_dofs.end()) | EXPECT_TRUE(std::find(chart.Value().p_dofs.begin(), chart.Value().p_dofs.end(), 4U) != chart.Value().p_dofs.end()) | ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(operators.HasValue()) | EXPECT_EQ(operators.Value().rows.size(), 3U) ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(chart.Value().null_nodes.size(), 3U) | EXPECT_TRUE(std::find(chart.Value().null_nodes.begin(), chart.Value().null_nodes.end(), 0U) == chart.Value().null_nodes.end()) | EXPECT_TRUE(std::find(chart.Value().p_dofs.begin(), chart.Value().p_dofs.end(), 3U) != chart.Value().p_dofs.end()) | EXPECT_TRUE(std::find(chart.Value().p_dofs.begin(), chart.Value().p_dofs.end(), 4U) != chart.Value().p_dofs.end()) | ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(operators.HasValue()) | EXPECT_EQ(operators.Value().rows.size(), 3U) -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.UsesActualFiniteInitialNullAndPreservesTransposeActions HhtReducedChart.UsesActualFiniteInitialNullAndPreservesTransposeActions; assertion 13개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.UsesActualFiniteInitialNullAndPreservesTransposeActions 유지 원문 검사 body 및 assertion 동일. 3a0cce3ce539ccc6181768741375eed175e179b4e875a97b2369e6bd7f6a4c2f 3a0cce3ce539ccc6181768741375eed175e179b4e875a97b2369e6bd7f6a4c2f ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(built.HasValue()) | EXPECT_EQ(chart.minimum_axes.front(), axis) | ASSERT_EQ(chart.z_columns.front().support.size(), 3U) | EXPECT_NEAR(column.support[i].value, raw[i] / norm, 1e-15) | EXPECT_TRUE(std::isfinite(column.support_radii[i])) | EXPECT_GE(column.support_radii[i], 0.0) | EXPECT_GT(std::abs(chart.z_columns.front().support[0U].value), 0.01) | ASSERT_TRUE(full.HasValue()) | ASSERT_TRUE(projected_p.HasValue()) | ASSERT_TRUE(projected_z.HasValue()) | EXPECT_NEAR(projected_p.Value()[i], p[i], 1e-15) | EXPECT_NEAR(projected_z.Value()[i], z[i], 1e-15) ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(built.HasValue()) | EXPECT_EQ(chart.minimum_axes.front(), axis) | ASSERT_EQ(chart.z_columns.front().support.size(), 3U) | EXPECT_NEAR(column.support[i].value, raw[i] / norm, 1e-15) | EXPECT_TRUE(std::isfinite(column.support_radii[i])) | EXPECT_GE(column.support_radii[i], 0.0) | EXPECT_GT(std::abs(chart.z_columns.front().support[0U].value), 0.01) | ASSERT_TRUE(full.HasValue()) | ASSERT_TRUE(projected_p.HasValue()) | ASSERT_TRUE(projected_z.HasValue()) | EXPECT_NEAR(projected_p.Value()[i], p[i], 1e-15) | EXPECT_NEAR(projected_z.Value()[i], z[i], 1e-15) -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.MinimumAxisTieAndPartialBoundaryRetainExactZeros HhtReducedChart.MinimumAxisTieAndPartialBoundaryRetainExactZeros; assertion 5개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.MinimumAxisTieAndPartialBoundaryRetainExactZeros 유지 원문 검사 body 및 assertion 동일. 199055f0e67f5c20880dc18741e1294140016db419e6a95628c00e1cb1277f8b 199055f0e67f5c20880dc18741e1294140016db419e6a95628c00e1cb1277f8b ASSERT_TRUE(chart.HasValue()) | EXPECT_EQ(axis, 0U) | ASSERT_TRUE(full.HasValue()) | EXPECT_DOUBLE_EQ(full.Value()[5U], 0.0) | EXPECT_FALSE(column.fixed_plane) ASSERT_TRUE(chart.HasValue()) | EXPECT_EQ(axis, 0U) | ASSERT_TRUE(full.HasValue()) | EXPECT_DOUBLE_EQ(full.Value()[5U], 0.0) | EXPECT_FALSE(column.fixed_plane) -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.ProperRotationRelatesRetainedPlanesByConstantOrthogonalMap HhtReducedChart.ProperRotationRelatesRetainedPlanesByConstantOrthogonalMap; assertion 8개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.ProperRotationRelatesRetainedPlanesByConstantOrthogonalMap 유지 원문 검사 body 및 assertion 동일. 0a3d19b8bfc9be9ba9e6f6d45bf817a8cde05698c75a9ae3355fb4c74ac52e62 0a3d19b8bfc9be9ba9e6f6d45bf817a8cde05698c75a9ae3355fb4c74ac52e62 ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(transformed.HasValue()) | ASSERT_TRUE(source.HasValue()) | ASSERT_TRUE(target.HasValue()) | ASSERT_EQ(si, 2U) | ASSERT_EQ(ti, 2U) | EXPECT_NEAR(target_plane[0U][k] * t[0U][j] + target_plane[1U][k] * t[1U][j], rotated[k], 1e-14) | EXPECT_NEAR(t[0U][i] * t[0U][j] + t[1U][i] * t[1U][j], i == j ? 1.0 : 0.0, 1e-14) ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(transformed.HasValue()) | ASSERT_TRUE(source.HasValue()) | ASSERT_TRUE(target.HasValue()) | ASSERT_EQ(si, 2U) | ASSERT_EQ(ti, 2U) | EXPECT_NEAR(target_plane[0U][k] * t[0U][j] + target_plane[1U][k] * t[1U][j], rotated[k], 1e-14) | EXPECT_NEAR(t[0U][i] * t[0U][j] + t[1U][i] * t[1U][j], i == j ? 1.0 : 0.0, 1e-14) -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.RejectsSubnormalNormWithoutAValidCoefficientCertificate HhtReducedChart.RejectsSubnormalNormWithoutAValidCoefficientCertificate; assertion 1개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.RejectsSubnormalNormWithoutAValidCoefficientCertificate 유지 원문 검사 body 및 assertion 동일. c8389950eef75e9147da8658be67e71bb4c52c46db7991d0488a4937ac82c439 c8389950eef75e9147da8658be67e71bb4c52c46db7991d0488a4937ac82c439 EXPECT_FALSE(fesa::hht_reduced_internal::BuildFixedChart(fixture.dofs, rotations).HasValue()) EXPECT_FALSE(fesa::hht_reduced_internal::BuildFixedChart(fixture.dofs, rotations).HasValue()) -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.NativeCoefficientRadiiExportFixedInputReplay HhtReducedChart.NativeCoefficientRadiiExportFixedInputReplay; assertion 7개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.NativeCoefficientRadiiExportFixedInputReplay 유지 원문 검사 body 및 assertion 동일. 9c220fc2bc4ffd53650d9c3af693560d6beeaf06b5631d766ae082ff5ec3e8fb 9c220fc2bc4ffd53650d9c3af693560d6beeaf06b5631d766ae082ff5ec3e8fb ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(column, 2U) | ASSERT_EQ(p->support.size(), 3U) | EXPECT_TRUE(std::isfinite(radius)) | EXPECT_GE(radius, 0.0) | EXPECT_FALSE(fesa::hht_reduced_internal::BuildFixedChart(fixture.dofs, invalid).HasValue()) ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(column, 2U) | ASSERT_EQ(p->support.size(), 3U) | EXPECT_TRUE(std::isfinite(radius)) | EXPECT_GE(radius, 0.0) | EXPECT_FALSE(fesa::hht_reduced_internal::BuildFixedChart(fixture.dofs, invalid).HasValue()) -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.InvertibleGraphDoesNotCertifySelectorTransversality HhtReducedChart.InvertibleGraphDoesNotCertifySelectorTransversality; assertion 6개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.InvertibleGraphDoesNotCertifySelectorTransversality 유지 원문 검사 body 및 assertion 동일. 23c5ac02ecae6f1ee4b38528c74d1fe93200138fd51a2ab0d23b694c7e04abbe 23c5ac02ecae6f1ee4b38528c74d1fe93200138fd51a2ab0d23b694c7e04abbe ASSERT_TRUE(chart.HasValue()) | EXPECT_TRUE(fesa::hht_reduced_internal::SolveGraphSystem( fesa::hht_reduced_internal::GraphJacobian(operators, chart.Value()), fesa::Vector(4U, 1.0), solver).HasValue()) | ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::CheckSelectorTransversality( assembly, chart.Value(), solver).HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::CheckSelectorTransversality( assembly, chart.Value(), solver).HasValue()) ASSERT_TRUE(chart.HasValue()) | EXPECT_TRUE(fesa::hht_reduced_internal::SolveGraphSystem( fesa::hht_reduced_internal::GraphJacobian(operators, chart.Value()), fesa::Vector(4U, 1.0), solver).HasValue()) | ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::CheckSelectorTransversality( assembly, chart.Value(), solver).HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::CheckSelectorTransversality( assembly, chart.Value(), solver).HasValue()) -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.ScatterShellDerivativesByConstraintRow HhtReducedOperators.ScatterShellDerivativesByConstraintRow; assertion 15개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.ScatterShellDerivativesByConstraintRow 유지 원문 검사 body 및 assertion 동일. b57a6ce0864234af355f619fb8be4a19898393df437f5b314c8f1e2ee79dc0bd b57a6ce0864234af355f619fb8be4a19898393df437f5b314c8f1e2ee79dc0bd ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(operators.HasValue()) | ASSERT_EQ(operators.Value().rows.size(), 4U) | ASSERT_TRUE(graph_condition.HasValue()) | EXPECT_GE(graph_condition.Value(), std::ldexp(1.0, -32)) | EXPECT_DOUBLE_EQ(row.value, 0.0) | EXPECT_DOUBLE_EQ(row.value_scale, expected_scale) | EXPECT_FALSE(row.gradient.empty()) | EXPECT_FALSE(row.hessian.empty()) | EXPECT_LT(row.gradient.size(), fixture.dofs.FullDofCount()) | EXPECT_LT(entry.row, fixture.dofs.FullDofCount()) | EXPECT_LT(entry.column, fixture.dofs.FullDofCount()) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(operators.HasValue()) | ASSERT_EQ(operators.Value().rows.size(), 4U) | ASSERT_TRUE(graph_condition.HasValue()) | EXPECT_GE(graph_condition.Value(), std::ldexp(1.0, -32)) | EXPECT_DOUBLE_EQ(row.value, 0.0) | EXPECT_DOUBLE_EQ(row.value_scale, expected_scale) | EXPECT_FALSE(row.gradient.empty()) | EXPECT_FALSE(row.hessian.empty()) | EXPECT_LT(row.gradient.size(), fixture.dofs.FullDofCount()) | EXPECT_LT(entry.row, fixture.dofs.FullDofCount()) | EXPECT_LT(entry.column, fixture.dofs.FullDofCount()) -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.RejectsNonfiniteGraphResidualBeforeAcceptance HhtReducedEmbedding.RejectsNonfiniteGraphResidualBeforeAcceptance; assertion 4개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.RejectsNonfiniteGraphResidualBeforeAcceptance 유지 원문 검사 body 및 assertion 동일. aba990268187a0cee9fe762ab5acefe258144c3a8bcaf27245174b8cc87d6ac6 aba990268187a0cee9fe762ab5acefe258144c3a8bcaf27245174b8cc87d6ac6 "ASSERT_TRUE(chart.HasValue()) | ASSERT_FALSE(root.HasValue()) | ASSERT_FALSE(root.GetStatus().Diagnostics().empty()) | EXPECT_EQ(root.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" "ASSERT_TRUE(chart.HasValue()) | ASSERT_FALSE(root.HasValue()) | ASSERT_FALSE(root.GetStatus().Diagnostics().empty()) | EXPECT_EQ(root.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReturnsExactTwoCycleForFullHiddenCertification HhtReducedEmbedding.ReturnsExactTwoCycleForFullHiddenCertification; assertion 4개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReturnsExactTwoCycleForFullHiddenCertification 유지 원문 검사 body 및 assertion 동일. 1c20656897f7812ce5cf1b2993fc07ba03b3b4c04bcc5d9b8111bffb775607ab 1c20656897f7812ce5cf1b2993fc07ba03b3b4c04bcc5d9b8111bffb775607ab ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], -1.0) | EXPECT_DOUBLE_EQ(root.Value().q[0U], -1.0) | EXPECT_DOUBLE_EQ(root.Value().operators.rows[0U].value, -2.0) ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], -1.0) | EXPECT_DOUBLE_EQ(root.Value().q[0U], -1.0) | EXPECT_DOUBLE_EQ(root.Value().operators.rows[0U].value, -2.0) -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReturnsEvaluatedTrialWhenLiftAbsorbsAChangedPrivateRoot HhtReducedEmbedding.ReturnsEvaluatedTrialWhenLiftAbsorbsAChangedPrivateRoot; assertion 12개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReturnsEvaluatedTrialWhenLiftAbsorbsAChangedPrivateRoot 유지 원문 검사 body 및 assertion 동일. 72f50cedc425b3beda1ad7a34363c76203e2792acbf3eff5bfdc4c3dee43c148 72f50cedc425b3beda1ad7a34363c76203e2792acbf3eff5bfdc4c3dee43c148 ASSERT_TRUE(built.HasValue()) | ASSERT_EQ(angular, 2U) | ASSERT_TRUE(original.HasValue()) | EXPECT_NE(changed[0U], seed[0U]) | ASSERT_TRUE(absorbed.HasValue()) | EXPECT_EQ(original.Value()[i], absorbed.Value()[i]) | ASSERT_TRUE(root.HasValue()) | EXPECT_EQ(root.Value().z[0U], seed[0U]) | EXPECT_NE(root.Value().operators.rows[0U].value, 0.0) | EXPECT_GT(root.Value().graph_residual_relative, 1e-10) | EXPECT_EQ(root.Value().graph_iteration_count, 0U) | EXPECT_EQ(root.Value().q[i], original.Value()[i]) ASSERT_TRUE(built.HasValue()) | ASSERT_EQ(angular, 2U) | ASSERT_TRUE(original.HasValue()) | EXPECT_NE(changed[0U], seed[0U]) | ASSERT_TRUE(absorbed.HasValue()) | EXPECT_EQ(original.Value()[i], absorbed.Value()[i]) | ASSERT_TRUE(root.HasValue()) | EXPECT_EQ(root.Value().z[0U], seed[0U]) | EXPECT_NE(root.Value().operators.rows[0U].value, 0.0) | EXPECT_GT(root.Value().graph_residual_relative, 1e-10) | EXPECT_EQ(root.Value().graph_iteration_count, 0U) | EXPECT_EQ(root.Value().q[i], original.Value()[i]) -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.StopsAtExistingScaledPositionCertificate HhtReducedEmbedding.StopsAtExistingScaledPositionCertificate; assertion 5개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.StopsAtExistingScaledPositionCertificate 유지 원문 검사 body 및 assertion 동일. 40399a56a3e5ee5dd124159d271c7c833a7fb9bf4de311a17d44b0752fe90716 40399a56a3e5ee5dd124159d271c7c833a7fb9bf4de311a17d44b0752fe90716 ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], 0.0) | EXPECT_DOUBLE_EQ(root.Value().graph_residual_infinity, 5.0e-11) | EXPECT_DOUBLE_EQ(root.Value().graph_residual_relative, 5.0e-11) | EXPECT_DOUBLE_EQ(root.Value().graph_correction_infinity, 0.0) ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], 0.0) | EXPECT_DOUBLE_EQ(root.Value().graph_residual_infinity, 5.0e-11) | EXPECT_DOUBLE_EQ(root.Value().graph_residual_relative, 5.0e-11) | EXPECT_DOUBLE_EQ(root.Value().graph_correction_infinity, 0.0) -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.RequiresExactZeroWhenPositionScaleIsZero HhtReducedEmbedding.RequiresExactZeroWhenPositionScaleIsZero; assertion 3개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.RequiresExactZeroWhenPositionScaleIsZero 유지 원문 검사 body 및 assertion 동일. 781274b693d154f790a5b856ea36ce7faf58048779d75a99636edfed40153d2d 781274b693d154f790a5b856ea36ce7faf58048779d75a99636edfed40153d2d ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], 0.0) | EXPECT_DOUBLE_EQ(root.Value().operators.rows[0U].value, 0.0) ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], 0.0) | EXPECT_DOUBLE_EQ(root.Value().operators.rows[0U].value, 0.0) -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReconstructsRatesAcrossSelectedPartitionCancellation HhtReducedEmbedding.ReconstructsRatesAcrossSelectedPartitionCancellation; assertion 11개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReconstructsRatesAcrossSelectedPartitionCancellation 유지 원문 검사 body 및 assertion 동일. 99f396cb603db35827fd7516d26285d29dfd1fc5149f7f1ae100caf12b3c027f 99f396cb603db35827fd7516d26285d29dfd1fc5149f7f1ae100caf12b3c027f EXPECT_DOUBLE_EQ(plain_velocity_rhs, 0.0) | EXPECT_DOUBLE_EQ(plain_acceleration_rhs, 0.0) | ASSERT_TRUE(rates.HasValue()) | EXPECT_DOUBLE_EQ(rates.Value().velocity[0U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().velocity[1U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().velocity[2U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[0U], 0.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[1U], 0.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[2U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().z_velocity[0U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().z_acceleration[0U], 1.0) EXPECT_DOUBLE_EQ(plain_velocity_rhs, 0.0) | EXPECT_DOUBLE_EQ(plain_acceleration_rhs, 0.0) | ASSERT_TRUE(rates.HasValue()) | EXPECT_DOUBLE_EQ(rates.Value().velocity[0U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().velocity[1U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().velocity[2U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[0U], 0.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[1U], 0.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[2U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().z_velocity[0U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().z_acceleration[0U], 1.0) -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReconstructsActualShellRatesWithMixedTimeLoad HhtReducedEmbedding.ReconstructsActualShellRatesWithMixedTimeLoad; assertion 53개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReconstructsActualShellRatesWithMixedTimeLoad 유지 원문 검사 body 및 assertion 동일. d7e9c115b48ed36f68722faa84b348585d6fd80567b49019bbac78cde25cd8b9 d7e9c115b48ed36f68722faa84b348585d6fd80567b49019bbac78cde25cd8b9 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(initial.HasValue()) | ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().q[2U], 0.01) | ASSERT_TRUE(rates.HasValue()) | ASSERT_TRUE(actual.HasValue()) | ASSERT_TRUE(operators.HasValue()) | EXPECT_NEAR(hidden[0U], 0.0, 1.0e-9) | EXPECT_NEAR(hidden[1U], 0.0, 1.0e-9) | EXPECT_NEAR(hidden[2U], 0.0, 1.0e-8) | EXPECT_TRUE(saw_time_term) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(reference_length.HasValue()) | ASSERT_TRUE(system.HasValue()) | ASSERT_EQ(system.Value().physical_count, chart.Value().p_dofs.size()) | ASSERT_EQ(system.Value().algebraic_count, chart.Value().z_dofs.size()) | ASSERT_TRUE(mapped.HasValue()) | EXPECT_DOUBLE_EQ(mapped.Value().coordinate[0U], 0.004) | EXPECT_DOUBLE_EQ(mapped.Value().velocity[0U], cv * 0.004) | EXPECT_DOUBLE_EQ(mapped.Value().acceleration[0U], ca * 0.004) | EXPECT_NEAR(mapped.Value().coordinate[entry.dof], -0.003 * entry.value, 1e-17) | EXPECT_NEAR(mapped.Value().velocity[entry.dof], 0.002 * entry.value, 1e-17) | EXPECT_NEAR(mapped.Value().acceleration[entry.dof], -0.001 * entry.value, 1e-17) | ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(projected_base.HasValue()) | EXPECT_NEAR(base.Value()[i], system.Value().row_scale[i] * projected_base.Value()[i], 1e-13 * system.Value().row_scale[i] * uncancelled) | ASSERT_GT(direction_norm, 0.0) | ASSERT_TRUE(mapped_direction.HasValue()) | ASSERT_GT(tangent_frobenius, 0.0) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_EQ(consecutive, expected_pass) | ASSERT_TRUE(no_force_actual.HasValue()) | ASSERT_TRUE(no_force_operators.HasValue()) | ASSERT_EQ(omitted_external_gradient.rows.size(), no_force_operators.Value().rows.size()) | ASSERT_EQ(omitted.size(), no_force.size()) | ASSERT_EQ(omitted[entry].dof, no_force[entry].dof) | ASSERT_TRUE(saw_external_position_gradient) | ASSERT_TRUE(omitted_external_gradient_system.HasValue()) | ASSERT_TRUE(ha_actual.HasValue()) | ASSERT_TRUE(ha_operators.HasValue()) | ASSERT_TRUE(ha_system.HasValue()) | ASSERT_TRUE(omitted_ha_system.HasValue()) | ASSERT_TRUE(hw_actual.HasValue()) | ASSERT_TRUE(hw_operators.HasValue()) | ASSERT_TRUE(hw_system.HasValue()) | ASSERT_TRUE(omitted_hw_system.HasValue()) | ASSERT_TRUE(third_system.HasValue()) | ASSERT_TRUE(mixed_time_system.HasValue()) | ASSERT_TRUE(omitted_second_time_rates.HasValue()) | EXPECT_GT(omitted_second_time_hidden, 1.0e-8) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(initial.HasValue()) | ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().q[2U], 0.01) | ASSERT_TRUE(rates.HasValue()) | ASSERT_TRUE(actual.HasValue()) | ASSERT_TRUE(operators.HasValue()) | EXPECT_NEAR(hidden[0U], 0.0, 1.0e-9) | EXPECT_NEAR(hidden[1U], 0.0, 1.0e-9) | EXPECT_NEAR(hidden[2U], 0.0, 1.0e-8) | EXPECT_TRUE(saw_time_term) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(reference_length.HasValue()) | ASSERT_TRUE(system.HasValue()) | ASSERT_EQ(system.Value().physical_count, chart.Value().p_dofs.size()) | ASSERT_EQ(system.Value().algebraic_count, chart.Value().z_dofs.size()) | ASSERT_TRUE(mapped.HasValue()) | EXPECT_DOUBLE_EQ(mapped.Value().coordinate[0U], 0.004) | EXPECT_DOUBLE_EQ(mapped.Value().velocity[0U], cv * 0.004) | EXPECT_DOUBLE_EQ(mapped.Value().acceleration[0U], ca * 0.004) | EXPECT_NEAR(mapped.Value().coordinate[entry.dof], -0.003 * entry.value, 1e-17) | EXPECT_NEAR(mapped.Value().velocity[entry.dof], 0.002 * entry.value, 1e-17) | EXPECT_NEAR(mapped.Value().acceleration[entry.dof], -0.001 * entry.value, 1e-17) | ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(projected_base.HasValue()) | EXPECT_NEAR(base.Value()[i], system.Value().row_scale[i] * projected_base.Value()[i], 1e-13 * system.Value().row_scale[i] * uncancelled) | ASSERT_GT(direction_norm, 0.0) | ASSERT_TRUE(mapped_direction.HasValue()) | ASSERT_GT(tangent_frobenius, 0.0) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_EQ(consecutive, expected_pass) | ASSERT_TRUE(no_force_actual.HasValue()) | ASSERT_TRUE(no_force_operators.HasValue()) | ASSERT_EQ(omitted_external_gradient.rows.size(), no_force_operators.Value().rows.size()) | ASSERT_EQ(omitted.size(), no_force.size()) | ASSERT_EQ(omitted[entry].dof, no_force[entry].dof) | ASSERT_TRUE(saw_external_position_gradient) | ASSERT_TRUE(omitted_external_gradient_system.HasValue()) | ASSERT_TRUE(ha_actual.HasValue()) | ASSERT_TRUE(ha_operators.HasValue()) | ASSERT_TRUE(ha_system.HasValue()) | ASSERT_TRUE(omitted_ha_system.HasValue()) | ASSERT_TRUE(hw_actual.HasValue()) | ASSERT_TRUE(hw_operators.HasValue()) | ASSERT_TRUE(hw_system.HasValue()) | ASSERT_TRUE(omitted_hw_system.HasValue()) | ASSERT_TRUE(third_system.HasValue()) | ASSERT_TRUE(mixed_time_system.HasValue()) | ASSERT_TRUE(omitted_second_time_rates.HasValue()) | EXPECT_GT(omitted_second_time_hidden, 1.0e-8) -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RequiresEveryTranslationGateAndThaws HhtReducedChannelNewton.RequiresEveryTranslationGateAndThaws; assertion 10개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RequiresEveryTranslationGateAndThaws 유지 원문 검사 body 및 assertion 동일. 635a7b5bdebdb547e60223694971085c31ae50c328a17ee943f24d0f968e86b3 635a7b5bdebdb547e60223694971085c31ae50c328a17ee943f24d0f968e86b3 EXPECT_TRUE(refine({1e-10, 2e-10}, zero)) | EXPECT_FALSE(refine({2e-10, 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, 1e-10}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero, false)) | EXPECT_FALSE(refine({0.0, 2e-10}, correction)) | EXPECT_FALSE(refine({0.0, 2e-10}, correction)) | EXPECT_FALSE(refine({std::numeric_limits::infinity(), 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, std::numeric_limits::quiet_NaN()}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero)) EXPECT_TRUE(refine({1e-10, 2e-10}, zero)) | EXPECT_FALSE(refine({2e-10, 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, 1e-10}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero, false)) | EXPECT_FALSE(refine({0.0, 2e-10}, correction)) | EXPECT_FALSE(refine({0.0, 2e-10}, correction)) | EXPECT_FALSE(refine({std::numeric_limits::infinity(), 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, std::numeric_limits::quiet_NaN()}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero)) -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RetainsAllAuxiliaryBlocksAndFullModelDefect HhtReducedChannelNewton.RetainsAllAuxiliaryBlocksAndFullModelDefect; assertion 22개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RetainsAllAuxiliaryBlocksAndFullModelDefect 유지 원문 검사 body 및 assertion 동일. e1aa1e05ebaeb7f832033a6db8283163510c5d3266ee5a5863a445694b12e3d7 e1aa1e05ebaeb7f832033a6db8283163510c5d3266ee5a5863a445694b12e3d7 ASSERT_TRUE(tangent.HasValue()) | ASSERT_TRUE(selected.HasValue()) | EXPECT_EQ(selected.Value().full_indices, (std::vector{1U, 2U, 3U, 4U, 5U})) | ASSERT_TRUE(solver.FactorizeFresh(selected.Value().tangent).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(selected.Value().rhs, step).IsOk()) | EXPECT_TRUE(fesa::hht_internal::CheckLinearSolve( selected.Value().tangent, selected.Value().rhs, step).IsOk()) | ASSERT_TRUE(embedded.HasValue()) | EXPECT_DOUBLE_EQ(embedded.Value()[0U], 0.0) | EXPECT_NEAR(embedded.Value()[i], expected[i], 1e-14) | EXPECT_FALSE(fesa::hht_internal::CheckLinearSolve( full.tangent, full.rhs, embedded.Value()).IsOk()) | ASSERT_TRUE(mapped.HasValue()) | EXPECT_DOUBLE_EQ(mapped.Value().coordinate[0U], 0.0) | EXPECT_DOUBLE_EQ(mapped.Value().velocity[0U], 0.0) | EXPECT_DOUBLE_EQ(mapped.Value().acceleration[0U], 0.0) | EXPECT_NEAR(mapped.Value().coordinate[5U], 0.4, 1e-14) | EXPECT_NEAR(mapped.Value().velocity[5U], 0.2, 1e-14) | EXPECT_NEAR(mapped.Value().acceleration[5U], -0.3, 1e-14) | ASSERT_TRUE(thawed.HasValue()) | EXPECT_EQ(thawed.Value().full_indices.size(), 6U) | EXPECT_DOUBLE_EQ(thawed.Value().rhs[0U], rhs[0U]) | EXPECT_FALSE(fesa::hht_reduced_internal::SelectAugmentedSolve( invalid, chart, true).HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::EmbedAugmentedSolution( selected.Value(), step, 6U).HasValue()) ASSERT_TRUE(tangent.HasValue()) | ASSERT_TRUE(selected.HasValue()) | EXPECT_EQ(selected.Value().full_indices, (std::vector{1U, 2U, 3U, 4U, 5U})) | ASSERT_TRUE(solver.FactorizeFresh(selected.Value().tangent).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(selected.Value().rhs, step).IsOk()) | EXPECT_TRUE(fesa::hht_internal::CheckLinearSolve( selected.Value().tangent, selected.Value().rhs, step).IsOk()) | ASSERT_TRUE(embedded.HasValue()) | EXPECT_DOUBLE_EQ(embedded.Value()[0U], 0.0) | EXPECT_NEAR(embedded.Value()[i], expected[i], 1e-14) | EXPECT_FALSE(fesa::hht_internal::CheckLinearSolve( full.tangent, full.rhs, embedded.Value()).IsOk()) | ASSERT_TRUE(mapped.HasValue()) | EXPECT_DOUBLE_EQ(mapped.Value().coordinate[0U], 0.0) | EXPECT_DOUBLE_EQ(mapped.Value().velocity[0U], 0.0) | EXPECT_DOUBLE_EQ(mapped.Value().acceleration[0U], 0.0) | EXPECT_NEAR(mapped.Value().coordinate[5U], 0.4, 1e-14) | EXPECT_NEAR(mapped.Value().velocity[5U], 0.2, 1e-14) | EXPECT_NEAR(mapped.Value().acceleration[5U], -0.3, 1e-14) | ASSERT_TRUE(thawed.HasValue()) | EXPECT_EQ(thawed.Value().full_indices.size(), 6U) | EXPECT_DOUBLE_EQ(thawed.Value().rhs[0U], rhs[0U]) | EXPECT_FALSE(fesa::hht_reduced_internal::SelectAugmentedSolve( invalid, chart, true).HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::EmbedAugmentedSolution( selected.Value(), step, 6U).HasValue()) -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RestrictedSingularityIsNotFullInvertibility HhtReducedChannelNewton.RestrictedSingularityIsNotFullInvertibility; assertion 4개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RestrictedSingularityIsNotFullInvertibility 유지 원문 검사 body 및 assertion 동일. 929b1e67526d7ea5095985c949c85d901e3f90db028afcd2bdd3826dba226d7b 929b1e67526d7ea5095985c949c85d901e3f90db028afcd2bdd3826dba226d7b ASSERT_TRUE(matrix.HasValue()) | ASSERT_TRUE(restricted.HasValue()) | ASSERT_TRUE(solver.FactorizeFresh(full.tangent).IsOk()) | EXPECT_FALSE(solver.FactorizeFresh(restricted.Value().tangent).IsOk()) ASSERT_TRUE(matrix.HasValue()) | ASSERT_TRUE(restricted.HasValue()) | ASSERT_TRUE(solver.FactorizeFresh(full.tangent).IsOk()) | EXPECT_FALSE(solver.FactorizeFresh(restricted.Value().tangent).IsOk()) -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp support@1-154 helper/oracle/fixture/include/static assertion 구간: Fixture, MakeFixture, if, Rotations, Assemble, SetComponentColumns, PIndex, Hidden, for tests/unit/analysis/hht_reduced_shell_test.cpp file-support 이관 Dev trial cache·context 변경·copy/move 소유권·실패 우선순위·left-association 검사를 복원한다. 같은 trial의 독립 local 평가만 ShellTrialElement::EvaluateTrial 호출로 이관한다. f4776f384d43392262250a14b547685114913e28225a2510142dd854f147b4ca 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_reduced_shell_test.cpp support@1143-1144 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_reduced_shell_test.cpp file-support 유지 Dev trial cache·context 변경·copy/move 소유권·실패 우선순위·left-association 검사를 복원한다. 같은 trial의 독립 local 평가만 ShellTrialElement::EvaluateTrial 호출로 이관한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_shell_physics_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 27개 tests/unit/analysis/hht_shell_physics_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 029bc0a2ece9780b1c904e966bf71a2a43741317000b7bd1ea3544c2d07968a1 029bc0a2ece9780b1c904e966bf71a2a43741317000b7bd1ea3544c2d07968a1 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.NodalRigidForceRatesMatchIndependentTimeDifferences HhtShellPhysics.NodalRigidForceRatesMatchIndependentTimeDifferences; assertion 2개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.NodalRigidForceRatesMatchIndependentTimeDifferences 유지 원문 검사 body 및 assertion 동일. 8e7bbb65a70d3694839108bc430e01ae3292d6b4ab980922f7c9577af3185f6c 8e7bbb65a70d3694839108bc430e01ae3292d6b4ab980922f7c9577af3185f6c ASSERT_GT(scale, 0.0) | EXPECT_LE(error / scale, 1.0e-6) ASSERT_GT(scale, 0.0) | EXPECT_LE(error / scale, 1.0e-6) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ExternalDrillingHessianBalancesGradientAcceleration HhtShellPhysics.ExternalDrillingHessianBalancesGradientAcceleration; assertion 8개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ExternalDrillingHessianBalancesGradientAcceleration 유지 원문 검사 body 및 assertion 동일. 9456fd3f90ad9a3f30a93fd5e5d513eb2798f88ae63df197d1c0db7471c84a53 9456fd3f90ad9a3f30a93fd5e5d513eb2798f88ae63df197d1c0db7471c84a53 ASSERT_TRUE(external.HasValue()) | EXPECT_NEAR(external.Value().directional_second, -1.0 / 6.0, 1.0e-14) | EXPECT_NEAR(gradient_acceleration, 1.0 / 6.0, 1.0e-14) | EXPECT_NEAR(external.Value().directional_second + gradient_acceleration, 0.0, 1.0e-14) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(middle.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_NEAR(finite_difference, external.Value().directional_second, 1.0e-8) ASSERT_TRUE(external.HasValue()) | EXPECT_NEAR(external.Value().directional_second, -1.0 / 6.0, 1.0e-14) | EXPECT_NEAR(gradient_acceleration, 1.0 / 6.0, 1.0e-14) | EXPECT_NEAR(external.Value().directional_second + gradient_acceleration, 0.0, 1.0e-14) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(middle.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_NEAR(finite_difference, external.Value().directional_second, 1.0e-8) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ManufacturedHiddenCountsExternalHessianOnce HhtShellPhysics.ManufacturedHiddenCountsExternalHessianOnce; assertion 2개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ManufacturedHiddenCountsExternalHessianOnce 유지 원문 검사 body 및 assertion 동일. 66c7a72b17bea62b6f47d56a3ad1c08c66eec8169ebaaa0adcdc71e7b85a892c 66c7a72b17bea62b6f47d56a3ad1c08c66eec8169ebaaa0adcdc71e7b85a892c ASSERT_GT(scale, 0.0) | EXPECT_LE(std::abs(balance.hidden_acceleration_defect[node] - expected) / scale, 1.0e-12) ASSERT_GT(scale, 0.0) | EXPECT_LE(std::abs(balance.hidden_acceleration_defect[node] - expected) / scale, 1.0e-12) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08aRigidOrbitMatchesIndependentVolumeForcePowerAndMomentum HhtShellPhysics.C08aRigidOrbitMatchesIndependentVolumeForcePowerAndMomentum; assertion 14개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08aRigidOrbitMatchesIndependentVolumeForcePowerAndMomentum 유지 원문 검사 body 및 assertion 동일. fcb752c10cea7eb76dfcbb5e2035bb3eb8392589fafa6e8673656dd5ecfe934f fcb752c10cea7eb76dfcbb5e2035bb3eb8392589fafa6e8673656dd5ecfe934f EXPECT_LE(difference.Norm() / oracle.force.Norm(), 1.0e-12) | EXPECT_LE(std::abs(assembly.frame.kinetic_energy - static_cast(oracle.kinetic)) / static_cast(oracle.kinetic), 1.0e-12) | EXPECT_LE(std::abs(oracle.force.Dot(exact.velocity) - static_cast(oracle.power)) / static_cast(oracle.power_scale), 1.0e-10) | EXPECT_LE(assembly.frame.physical_strain_energy / 800.0, 1.0e-10) | EXPECT_LE(assembly.frame.drilling_energy / 800.0, 1.0e-10) | EXPECT_DOUBLE_EQ(scaled_force.Norm(), 0.0) | EXPECT_LE(scaled_force.Norm() / force_scale, 1.0e-10) | EXPECT_LE(momentum_error / static_cast(oracle.momentum_scale), 1.0e-12) | EXPECT_LE( angular_error / static_cast(oracle.angular_momentum_scale), 1.0e-12) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_LE(value / scale, 1.0e-10) | EXPECT_TRUE(fesa::hht_internal::CompleteEquilibrium( *fixture.domain, fixture.dofs, assembly, &balance) .IsOk()) | EXPECT_LE(assembly.mass.Multiply(null).Norm() / mass_norm, 1.0e-12) | EXPECT_GT(maximum_rotation, 0.5) EXPECT_LE(difference.Norm() / oracle.force.Norm(), 1.0e-12) | EXPECT_LE(std::abs(assembly.frame.kinetic_energy - static_cast(oracle.kinetic)) / static_cast(oracle.kinetic), 1.0e-12) | EXPECT_LE(std::abs(oracle.force.Dot(exact.velocity) - static_cast(oracle.power)) / static_cast(oracle.power_scale), 1.0e-10) | EXPECT_LE(assembly.frame.physical_strain_energy / 800.0, 1.0e-10) | EXPECT_LE(assembly.frame.drilling_energy / 800.0, 1.0e-10) | EXPECT_DOUBLE_EQ(scaled_force.Norm(), 0.0) | EXPECT_LE(scaled_force.Norm() / force_scale, 1.0e-10) | EXPECT_LE(momentum_error / static_cast(oracle.momentum_scale), 1.0e-12) | EXPECT_LE( angular_error / static_cast(oracle.angular_momentum_scale), 1.0e-12) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_LE(value / scale, 1.0e-10) | EXPECT_TRUE(fesa::hht_internal::CompleteEquilibrium( *fixture.domain, fixture.dofs, assembly, &balance) .IsOk()) | EXPECT_LE(assembly.mass.Multiply(null).Norm() / mass_norm, 1.0e-12) | EXPECT_GT(maximum_rotation, 0.5) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisCoefficientRadiusSurvivesSparseProjectionAndLift HhtShellPhysics.BasisCoefficientRadiusSurvivesSparseProjectionAndLift; assertion 4개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisCoefficientRadiusSurvivesSparseProjectionAndLift 유지 원문 검사 body 및 assertion 동일. 28a447ddb306564c9364deaf08aacaeeb7189e3b604a6c594230eae915501a84 28a447ddb306564c9364deaf08aacaeeb7189e3b604a6c594230eae915501a84 EXPECT_GT(lifted[3U], 0.0) | EXPECT_GE(lifted[4U], 4.0 * 0x1p-53) | EXPECT_GE(lifted[5U], 4.0 * 0x1p-53) | EXPECT_GT(projected[0U], 2.0 * 0x1p-53) EXPECT_GT(lifted[3U], 0.0) | EXPECT_GE(lifted[4U], 4.0 * 0x1p-53) | EXPECT_GE(lifted[5U], 4.0 * 0x1p-53) | EXPECT_GT(projected[0U], 2.0 * 0x1p-53) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisRadiusReplayMatchesCompensatedProjectionAndCombinedLift HhtShellPhysics.BasisRadiusReplayMatchesCompensatedProjectionAndCombinedLift; assertion 11개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisRadiusReplayMatchesCompensatedProjectionAndCombinedLift 유지 원문 검사 body 및 assertion 동일. 31474d755fe7fa0af870a6fbb2bbba642858fd2250d3d8c7e01158e109379958 31474d755fe7fa0af870a6fbb2bbba642858fd2250d3d8c7e01158e109379958 EXPECT_DOUBLE_EQ(projected[0U], 1.0) | EXPECT_DOUBLE_EQ(projection_center[0U], projected[0U]) | EXPECT_GT(projection_radius[0U], 0.0) | EXPECT_DOUBLE_EQ(lifted[0U], 1.0) | EXPECT_DOUBLE_EQ(replay.center[0U], lifted[0U]) | EXPECT_DOUBLE_EQ(plain, 0.0) | EXPECT_GE(target_radius, 0.25) | EXPECT_DOUBLE_EQ(small_replay.center[0U], small_lifted[0U]) | EXPECT_DOUBLE_EQ(small_replay.center[0U], 1.0) | ASSERT_LT(small_replay.radius[0U], 0.25) | EXPECT_GE(small_target_radius, 0.25) EXPECT_DOUBLE_EQ(projected[0U], 1.0) | EXPECT_DOUBLE_EQ(projection_center[0U], projected[0U]) | EXPECT_GT(projection_radius[0U], 0.0) | EXPECT_DOUBLE_EQ(lifted[0U], 1.0) | EXPECT_DOUBLE_EQ(replay.center[0U], lifted[0U]) | EXPECT_DOUBLE_EQ(plain, 0.0) | EXPECT_GE(target_radius, 0.25) | EXPECT_DOUBLE_EQ(small_replay.center[0U], small_lifted[0U]) | EXPECT_DOUBLE_EQ(small_replay.center[0U], 1.0) | ASSERT_LT(small_replay.radius[0U], 0.25) | EXPECT_GE(small_target_radius, 0.25) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisLiftedAlgorithmicCorrectionUsesHhtFilterFactor HhtShellPhysics.BasisLiftedAlgorithmicCorrectionUsesHhtFilterFactor; assertion 3개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisLiftedAlgorithmicCorrectionUsesHhtFilterFactor 유지 원문 검사 body 및 assertion 동일. 1135c210293ec3de4a84aed758353386e122ef4db703182ee03e2b48fca4340c 1135c210293ec3de4a84aed758353386e122ef4db703182ee03e2b48fca4340c EXPECT_NEAR(projected[0U], delta_ar, 1.0e-15) | ASSERT_GT(omission_scale, 0.0) | EXPECT_GT(std::abs(omitted[0U] - delta_ar) / omission_scale, 1.0e-12) EXPECT_NEAR(projected[0U], delta_ar, 1.0e-15) | ASSERT_GT(omission_scale, 0.0) | EXPECT_GT(std::abs(omitted[0U] - delta_ar) / omission_scale, 1.0e-12) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.CarriedArRadiiIncludeAbsorbedUpdatesAndInputHistory HhtShellPhysics.CarriedArRadiiIncludeAbsorbedUpdatesAndInputHistory; assertion 10개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.CarriedArRadiiIncludeAbsorbedUpdatesAndInputHistory 유지 원문 검사 body 및 assertion 동일. b6ca11dc0cf68db6fc9d0a966480453e8c85dff9d3588962557189cb91cf455b b6ca11dc0cf68db6fc9d0a966480453e8c85dff9d3588962557189cb91cf455b ASSERT_EQ(std::fegetround(), FE_TONEAREST) | ASSERT_DOUBLE_EQ(doubled, 2.0 * std::numeric_limits::denorm_min()) | ASSERT_DOUBLE_EQ(rounded, 1.0) | EXPECT_GE(first, tiny) | EXPECT_GT(second, first) | EXPECT_GE(second, 2.0 * tiny) | EXPECT_GE(ProductRadius(2.0, tiny, 4.0, tiny), 6.0 * tiny) | EXPECT_GE(QuotientRadius(1.0, tiny, 2.0, 0.0), 0.5 * tiny) | EXPECT_THROW(QuotientRadius(1.0, 0.0, 1.0, 1.0), std::runtime_error) | EXPECT_TRUE(std::isinf(AddRadius(std::numeric_limits::max(), std::numeric_limits::max(), 0.0))) ASSERT_EQ(std::fegetround(), FE_TONEAREST) | ASSERT_DOUBLE_EQ(doubled, 2.0 * std::numeric_limits::denorm_min()) | ASSERT_DOUBLE_EQ(rounded, 1.0) | EXPECT_GE(first, tiny) | EXPECT_GT(second, first) | EXPECT_GE(second, 2.0 * tiny) | EXPECT_GE(ProductRadius(2.0, tiny, 4.0, tiny), 6.0 * tiny) | EXPECT_GE(QuotientRadius(1.0, tiny, 2.0, 0.0), 0.5 * tiny) | EXPECT_THROW(QuotientRadius(1.0, 0.0, 1.0, 1.0), std::runtime_error) | EXPECT_TRUE(std::isinf(AddRadius(std::numeric_limits::max(), std::numeric_limits::max(), 0.0))) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.PrimaryCoordinateRetainsCorrectionAbsorbedByCarriedAr HhtShellPhysics.PrimaryCoordinateRetainsCorrectionAbsorbedByCarriedAr; assertion 6개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.PrimaryCoordinateRetainsCorrectionAbsorbedByCarriedAr 유지 원문 검사 body 및 assertion 동일. 4b84aaf12146380cfb61eeebe617e119bce3a1155aa3ea45d9c020bda2c1cb42 4b84aaf12146380cfb61eeebe617e119bce3a1155aa3ea45d9c020bda2c1cb42 EXPECT_DOUBLE_EQ(pp + factor * next_ar, initial_p) | EXPECT_GT(next_p, initial_p) | EXPECT_DOUBLE_EQ(next_p - initial_p, delta_p) | EXPECT_LE(std::abs(next_p - (pp + factor * next_ar)) / scale, 1.0e-12) | EXPECT_GT(first_radius, inherited_radius) | EXPECT_GT(AddRadius(next_p + delta_p, first_radius, 0.0), first_radius) EXPECT_DOUBLE_EQ(pp + factor * next_ar, initial_p) | EXPECT_GT(next_p, initial_p) | EXPECT_DOUBLE_EQ(next_p - initial_p, delta_p) | EXPECT_LE(std::abs(next_p - (pp + factor * next_ar)) / scale, 1.0e-12) | EXPECT_GT(first_radius, inherited_radius) | EXPECT_GT(AddRadius(next_p + delta_p, first_radius, 0.0), first_radius) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.CompensatedCoordinateRetainsAbsorbedNewtonCorrections HhtShellPhysics.CompensatedCoordinateRetainsAbsorbedNewtonCorrections; assertion 12개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.CompensatedCoordinateRetainsAbsorbedNewtonCorrections 유지 원문 검사 body 및 assertion 동일. f9679eaf06ac657dba93fb8d8bcd5d4b9942deb7d677c1fe4ffe86fc6f7fd072 f9679eaf06ac657dba93fb8d8bcd5d4b9942deb7d677c1fe4ffe86fc6f7fd072 EXPECT_DOUBLE_EQ(high, 1.0) | EXPECT_DOUBLE_EQ(low, delta) | EXPECT_DOUBLE_EQ(high, 1.0 + std::ldexp(1.0, -52)) | EXPECT_DOUBLE_EQ(low, 0.0) | EXPECT_GT(radius, inherited_radius) | EXPECT_GE(UpSum(radius, std::abs(low)), inherited_radius) | EXPECT_DOUBLE_EQ(high, 1.0 + std::ldexp(1.0, -52)) | EXPECT_DOUBLE_EQ(low, -delta) | EXPECT_DOUBLE_EQ(high, 2.0 * std::numeric_limits::denorm_min()) | EXPECT_DOUBLE_EQ(low, 0.0) | EXPECT_FALSE(std::isfinite(high)) | EXPECT_FALSE(std::isfinite(radius)) EXPECT_DOUBLE_EQ(high, 1.0) | EXPECT_DOUBLE_EQ(low, delta) | EXPECT_DOUBLE_EQ(high, 1.0 + std::ldexp(1.0, -52)) | EXPECT_DOUBLE_EQ(low, 0.0) | EXPECT_GT(radius, inherited_radius) | EXPECT_GE(UpSum(radius, std::abs(low)), inherited_radius) | EXPECT_DOUBLE_EQ(high, 1.0 + std::ldexp(1.0, -52)) | EXPECT_DOUBLE_EQ(low, -delta) | EXPECT_DOUBLE_EQ(high, 2.0 * std::numeric_limits::denorm_min()) | EXPECT_DOUBLE_EQ(low, 0.0) | EXPECT_FALSE(std::isfinite(high)) | EXPECT_FALSE(std::isfinite(radius)) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.FrozenGraphIndicatorIncludesCoordinateAndRateCurvature HhtShellPhysics.FrozenGraphIndicatorIncludesCoordinateAndRateCurvature; assertion 8개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.FrozenGraphIndicatorIncludesCoordinateAndRateCurvature 유지 원문 검사 body 및 assertion 동일. 5f98ecd78623006a570c8acf4c252ad547abf5c9d490d0888e9ec4ccb39baa08 5f98ecd78623006a570c8acf4c252ad547abf5c9d490d0888e9ec4ccb39baa08 EXPECT_GE(indicator.coordinates[1U], 2.0e-6) | EXPECT_GE(indicator.velocity[1U], 2.0e-6 + 2.0e-7) | EXPECT_GE(indicator.acceleration[1U], 4.0e-6 + 4.0e-7 + 2.0e-8) | EXPECT_TRUE(std::isfinite(indicator.acceleration[1U])) | EXPECT_GE(indicator.algorithmic_acceleration[1U], (1.0 + parameters.alpha) * indicator.acceleration[1U]) | EXPECT_TRUE(std::isinf(unresolved.coordinates[1U])) | EXPECT_TRUE(std::isinf(unresolved.velocity[1U])) | EXPECT_TRUE(std::isinf(unresolved.acceleration[1U])) EXPECT_GE(indicator.coordinates[1U], 2.0e-6) | EXPECT_GE(indicator.velocity[1U], 2.0e-6 + 2.0e-7) | EXPECT_GE(indicator.acceleration[1U], 4.0e-6 + 4.0e-7 + 2.0e-8) | EXPECT_TRUE(std::isfinite(indicator.acceleration[1U])) | EXPECT_GE(indicator.algorithmic_acceleration[1U], (1.0 + parameters.alpha) * indicator.acceleration[1U]) | EXPECT_TRUE(std::isinf(unresolved.coordinates[1U])) | EXPECT_TRUE(std::isinf(unresolved.velocity[1U])) | EXPECT_TRUE(std::isinf(unresolved.acceleration[1U])) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.GraphBasisCertificateBoundsMatrixAndRhsPerturbations HhtShellPhysics.GraphBasisCertificateBoundsMatrixAndRhsPerturbations; assertion 13개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.GraphBasisCertificateBoundsMatrixAndRhsPerturbations 유지 원문 검사 body 및 assertion 동일. d620963924f330ab1f029380440d739230f3c3341475bcdbf97a3453f7fe5339 d620963924f330ab1f029380440d739230f3c3341475bcdbf97a3453f7fe5339 ASSERT_TRUE(inverse.complete) | EXPECT_LE(std::abs(actual[0U] - center[0U]), bound[0U]) | EXPECT_GT(bound[0U], 0.0) | EXPECT_GE(centered[0U], std::ldexp(1.0, -30)) | EXPECT_EQ(UpProduct(0.0, std::numeric_limits::infinity()), 0.0) | EXPECT_TRUE(std::isinf(UpProduct(0.0, std::numeric_limits::quiet_NaN()))) | EXPECT_FALSE(CertifyGraphInverse(products, &solver).complete) | EXPECT_THROW(BoundGraphSolution(products, inverse, rhs, fesa::Vector(1U), center), std::runtime_error) | ASSERT_TRUE(inverse.complete) | EXPECT_LE(std::abs(actual[i] - center[i]), bound[i]) | EXPECT_GT(bound[i], 9.0) | ASSERT_TRUE(invalid_inverse.complete) | EXPECT_THROW(BoundGraphSolution(products, invalid_inverse, rhs, fesa::Vector(4U), center), std::runtime_error) ASSERT_TRUE(inverse.complete) | EXPECT_LE(std::abs(actual[0U] - center[0U]), bound[0U]) | EXPECT_GT(bound[0U], 0.0) | EXPECT_GE(centered[0U], std::ldexp(1.0, -30)) | EXPECT_EQ(UpProduct(0.0, std::numeric_limits::infinity()), 0.0) | EXPECT_TRUE(std::isinf(UpProduct(0.0, std::numeric_limits::quiet_NaN()))) | EXPECT_FALSE(CertifyGraphInverse(products, &solver).complete) | EXPECT_THROW(BoundGraphSolution(products, inverse, rhs, fesa::Vector(1U), center), std::runtime_error) | ASSERT_TRUE(inverse.complete) | EXPECT_LE(std::abs(actual[i] - center[i]), bound[i]) | EXPECT_GT(bound[i], 9.0) | ASSERT_TRUE(invalid_inverse.complete) | EXPECT_THROW(BoundGraphSolution(products, invalid_inverse, rhs, fesa::Vector(4U), center), std::runtime_error) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.RestrictedLastSolvePreservesOmittedTranslationDefect HhtShellPhysics.RestrictedLastSolvePreservesOmittedTranslationDefect; assertion 10개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.RestrictedLastSolvePreservesOmittedTranslationDefect 유지 원문 검사 body 및 assertion 동일. c779af538471833c822bd7697c9114c63dcca6dbaa3ba7953dd8abadf7c306f2 c779af538471833c822bd7697c9114c63dcca6dbaa3ba7953dd8abadf7c306f2 ASSERT_TRUE(reduced::ShouldRefineAngular(chart, {0.0, 1.0}, {0.0, 0.0, 0.0, 0.0}, true)) | ASSERT_TRUE(selected.angular_only) | ASSERT_EQ(selected.full_indices, std::vector({1U})) | EXPECT_EQ(embedded[0U], 0.0) | EXPECT_EQ(embedded[1U], 1.0) | EXPECT_EQ(selected_residual[0U] - selected.rhs[0U], 0.0) | EXPECT_EQ(full_defect[0U], -2.0) | EXPECT_EQ(full_defect[1U], 0.0) | EXPECT_GT(std::abs(full_model[0U]), 0.0) | EXPECT_GT(std::abs(full_model[1U]), 0.0) ASSERT_TRUE(reduced::ShouldRefineAngular(chart, {0.0, 1.0}, {0.0, 0.0, 0.0, 0.0}, true)) | ASSERT_TRUE(selected.angular_only) | ASSERT_EQ(selected.full_indices, std::vector({1U})) | EXPECT_EQ(embedded[0U], 0.0) | EXPECT_EQ(embedded[1U], 1.0) | EXPECT_EQ(selected_residual[0U] - selected.rhs[0U], 0.0) | EXPECT_EQ(full_defect[0U], -2.0) | EXPECT_EQ(full_defect[1U], 0.0) | EXPECT_GT(std::abs(full_model[0U]), 0.0) | EXPECT_GT(std::abs(full_model[1U]), 0.0) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.RestrictedRecordNoiseIncludesFullModelOmittedUDefect HhtShellPhysics.RestrictedRecordNoiseIncludesFullModelOmittedUDefect; assertion 6개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.RestrictedRecordNoiseIncludesFullModelOmittedUDefect 유지 원문 검사 body 및 assertion 동일. 2deecf4d898da2c40d311b18173e7ae7a11f75f87024cc2f64e1cf63d0caedd1 2deecf4d898da2c40d311b18173e7ae7a11f75f87024cc2f64e1cf63d0caedd1 ASSERT_LT(u, chart.p_columns.size()) | ASSERT_LT(angular, chart.p_columns.size()) | ASSERT_EQ(restricted_selected.full_indices, baseline_selected.full_indices) | ASSERT_NE(full_defect[u], 0.0) | EXPECT_GT(mapped_model.coordinate.Norm(), 0.0) | EXPECT_GT(restricted_noise, baseline_noise) ASSERT_LT(u, chart.p_columns.size()) | ASSERT_LT(angular, chart.p_columns.size()) | ASSERT_EQ(restricted_selected.full_indices, baseline_selected.full_indices) | ASSERT_NE(full_defect[u], 0.0) | EXPECT_GT(mapped_model.coordinate.Norm(), 0.0) | EXPECT_GT(restricted_noise, baseline_noise) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ReducedManufacturedControllerKeepsExactInitialOrbit HhtShellPhysics.ReducedManufacturedControllerKeepsExactInitialOrbit; assertion 16개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ReducedManufacturedControllerKeepsExactInitialOrbit 유지 원문 검사 body 및 assertion 동일. 9bc51b902d77a1dbb6f75c292ca75f05e1bf8beb71bc73aef1176005d73804fd 9bc51b902d77a1dbb6f75c292ca75f05e1bf8beb71bc73aef1176005d73804fd ASSERT_EQ(grid.history.size(), 65U) | EXPECT_DOUBLE_EQ(grid.history.front().generalized_coordinates[i], exact.generalized_coordinates[i]) | EXPECT_DOUBLE_EQ(grid.history.front().velocity[i], exact.velocity[i]) | EXPECT_DOUBLE_EQ(grid.history.front().acceleration[i], exact.acceleration[i]) | EXPECT_DOUBLE_EQ(grid.history.front().algorithmic_acceleration[i], exact.acceleration[i]) | EXPECT_DOUBLE_EQ(frame.time, static_cast(index) / 64.0) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.generalized_coordinates.Size(), fixture.dofs.FullDofCount()) | EXPECT_EQ(frame.velocity.Size(), fixture.dofs.FullDofCount()) | EXPECT_EQ(frame.acceleration.Size(), fixture.dofs.FullDofCount()) | EXPECT_TRUE(std::isfinite((*channel)[i])) | EXPECT_LE(residual, 1.0e-10) | EXPECT_TRUE(std::isfinite((*defect)[i])) | EXPECT_EQ(grid.history.back().time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_DOUBLE_EQ(grid.history.back().time, 1.0) | EXPECT_GT(grid.maximum_rotation, 0.5) ASSERT_EQ(grid.history.size(), 65U) | EXPECT_DOUBLE_EQ(grid.history.front().generalized_coordinates[i], exact.generalized_coordinates[i]) | EXPECT_DOUBLE_EQ(grid.history.front().velocity[i], exact.velocity[i]) | EXPECT_DOUBLE_EQ(grid.history.front().acceleration[i], exact.acceleration[i]) | EXPECT_DOUBLE_EQ(grid.history.front().algorithmic_acceleration[i], exact.acceleration[i]) | EXPECT_DOUBLE_EQ(frame.time, static_cast(index) / 64.0) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.generalized_coordinates.Size(), fixture.dofs.FullDofCount()) | EXPECT_EQ(frame.velocity.Size(), fixture.dofs.FullDofCount()) | EXPECT_EQ(frame.acceleration.Size(), fixture.dofs.FullDofCount()) | EXPECT_TRUE(std::isfinite((*channel)[i])) | EXPECT_LE(residual, 1.0e-10) | EXPECT_TRUE(std::isfinite((*defect)[i])) | EXPECT_EQ(grid.history.back().time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_DOUBLE_EQ(grid.history.back().time, 1.0) | EXPECT_GT(grid.maximum_rotation, 0.5) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08aRigidManufacturedOrbitReducedCoordinateTimeConvergence HhtShellPhysics.C08aRigidManufacturedOrbitReducedCoordinateTimeConvergence; assertion 15개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08aRigidManufacturedOrbitReducedCoordinateTimeConvergence 유지 원문 검사 body 및 assertion 동일. 19dc62f139091fea4190eb7e7034119c9b725c4e46570f8acb6af9d590471c22 19dc62f139091fea4190eb7e7034119c9b725c4e46570f8acb6af9d590471c22 EXPECT_GT(grid.maximum_rotation, 0.5) | ASSERT_EQ(frame.hidden_velocity_defect.Size(), fixture.domain->Nodes().size()) | ASSERT_EQ(frame.hidden_velocity_defect_scale.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_EQ(frame.hidden_acceleration_defect.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_EQ(frame.hidden_acceleration_defect_scale.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_TRUE(std::isfinite(values.first)) | ASSERT_TRUE(std::isfinite(values.second)) | ASSERT_GE(values.second, 0.0) | EXPECT_DOUBLE_EQ(values.first, 0.0) | EXPECT_LE(std::abs(values.first) / values.second, 1.0e-10) | EXPECT_LE(errors.back()[channel], 1.0e-4) | ASSERT_GT(errors[grid][channel], 0.0) | ASSERT_GT(errors[grid + 1U][channel], 0.0) | EXPECT_GE(std::log2(errors[grid][channel] / errors[grid + 1U][channel]), 1.8) | EXPECT_GT(errors[grid][channel], 100.0 * std::max(grids[grid].solve_noise[channel], grids[grid].arithmetic_noise[channel])) EXPECT_GT(grid.maximum_rotation, 0.5) | ASSERT_EQ(frame.hidden_velocity_defect.Size(), fixture.domain->Nodes().size()) | ASSERT_EQ(frame.hidden_velocity_defect_scale.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_EQ(frame.hidden_acceleration_defect.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_EQ(frame.hidden_acceleration_defect_scale.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_TRUE(std::isfinite(values.first)) | ASSERT_TRUE(std::isfinite(values.second)) | ASSERT_GE(values.second, 0.0) | EXPECT_DOUBLE_EQ(values.first, 0.0) | EXPECT_LE(std::abs(values.first) / values.second, 1.0e-10) | EXPECT_LE(errors.back()[channel], 1.0e-4) | ASSERT_GT(errors[grid][channel], 0.0) | ASSERT_GT(errors[grid + 1U][channel], 0.0) | EXPECT_GE(std::log2(errors[grid][channel] / errors[grid + 1U][channel]), 1.8) | EXPECT_GT(errors[grid][channel], 100.0 * std::max(grids[grid].solve_noise[channel], grids[grid].arithmetic_noise[channel])) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08bInitialPhysicalSpectrumProbe HhtShellPhysics.C08bInitialPhysicalSpectrumProbe; assertion 4개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08bInitialPhysicalSpectrumProbe 유지 원문 검사 body 및 assertion 동일. 7673da377048ad5e617480ff75b5ef812d216306aa82ee6bd55e576582ea3551 7673da377048ad5e617480ff75b5ef812d216306aa82ee6bd55e576582ea3551 ASSERT_EQ(matrix.Rows(), 54U) | ASSERT_EQ(matrix.Columns(), 54U) | ASSERT_EQ(matrix.RowOffsets().size(), 55U) | ASSERT_LT(column, values.size()) ASSERT_EQ(matrix.Rows(), 54U) | ASSERT_EQ(matrix.Columns(), 54U) | ASSERT_EQ(matrix.RowOffsets().size(), 55U) | ASSERT_LT(column, values.size()) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.PredictorStartCompletesPreviouslyFailingLumpedFreePlateGrid HhtShellPhysics.PredictorStartCompletesPreviouslyFailingLumpedFreePlateGrid; assertion 4개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.PredictorStartCompletesPreviouslyFailingLumpedFreePlateGrid 유지 원문 검사 body 및 assertion 동일. 874c85b16464eb1986a4f6579949282d69aec903ef832d63d9212c6eb545d4f0 874c85b16464eb1986a4f6579949282d69aec903ef832d63d9212c6eb545d4f0 ASSERT_EQ(evidence.history.size(), 65U) | EXPECT_DOUBLE_EQ(evidence.history.back().time, kEndTime) | EXPECT_GE(evidence.maximum_rotation, 0.2) | EXPECT_LT(evidence.maximum_rotation, std::acos(-1.0)) ASSERT_EQ(evidence.history.size(), 65U) | EXPECT_DOUBLE_EQ(evidence.history.back().time, kEndTime) | EXPECT_GE(evidence.maximum_rotation, 0.2) | EXPECT_LT(evidence.maximum_rotation, std::acos(-1.0)) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08bFreeFiniteRotationPlateSelfConvergenceAndPhysicalInvariants HhtShellPhysics.C08bFreeFiniteRotationPlateSelfConvergenceAndPhysicalInvariants; assertion 11개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08bFreeFiniteRotationPlateSelfConvergenceAndPhysicalInvariants 유지 원문 검사 body 및 assertion 동일. 33dea1e6e2f44f6945fb386065b0319493f3658f049437474babe90c53736d20 33dea1e6e2f44f6945fb386065b0319493f3658f049437474babe90c53736d20 EXPECT_GE(grids.back().maximum_rotation, 0.2) | EXPECT_LE(differences.back()[channel], 1.0e-4) | ASSERT_GT(first, 0.0) | ASSERT_GT(second, 0.0) | EXPECT_GE(first / second, threshold) | EXPECT_GT(differences[pair][channel], 100.0 * noise) | EXPECT_LT(grids[final - 1U].*member, grids[final - 2U].*member) | EXPECT_LT(grids[final].*member, grids[final - 1U].*member) | EXPECT_LE(grids[final].*member, 0.6 * (grids[final - 1U].*member)) | EXPECT_LE(grids[final].*member, 1.0e-3) | EXPECT_LE(grids.back().momentum_error, 1.0e-3) EXPECT_GE(grids.back().maximum_rotation, 0.2) | EXPECT_LE(differences.back()[channel], 1.0e-4) | ASSERT_GT(first, 0.0) | ASSERT_GT(second, 0.0) | EXPECT_GE(first / second, threshold) | EXPECT_GT(differences[pair][channel], 100.0 * noise) | EXPECT_LT(grids[final - 1U].*member, grids[final - 2U].*member) | EXPECT_LT(grids[final].*member, grids[final - 1U].*member) | EXPECT_LE(grids[final].*member, 0.6 * (grids[final - 1U].*member)) | EXPECT_LE(grids[final].*member, 1.0e-3) | EXPECT_LE(grids.back().momentum_error, 1.0e-3) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.FrozenNearestCoordinatesPassPairArithmeticWithoutChangingHigh HhtReducedIncrement.FrozenNearestCoordinatesPassPairArithmeticWithoutChangingHigh; assertion 7개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.FrozenNearestCoordinatesPassPairArithmeticWithoutChangingHigh 유지 원문 검사 body 및 assertion 동일. ba5a3f724636ab75d38249cfc9c5583f72f8a08b3c0d67109c843892031a85d2 ba5a3f724636ab75d38249cfc9c5583f72f8a08b3c0d67109c843892031a85d2 EXPECT_TRUE(first.storage_pass) | EXPECT_TRUE(first.arithmetic_pass) | EXPECT_EQ(first.defect, 0.0) | EXPECT_TRUE(worst.storage_pass) | EXPECT_TRUE(worst.arithmetic_pass) | EXPECT_EQ(worst.defect, 0.0) | EXPECT_FALSE(missing_low.arithmetic_pass) EXPECT_TRUE(first.storage_pass) | EXPECT_TRUE(first.arithmetic_pass) | EXPECT_EQ(first.defect, 0.0) | EXPECT_TRUE(worst.storage_pass) | EXPECT_TRUE(worst.arithmetic_pass) | EXPECT_EQ(worst.defect, 0.0) | EXPECT_FALSE(missing_low.arithmetic_pass) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.StorageRequiresNearestEvenIncludingBothMidpointDirections HhtReducedIncrement.StorageRequiresNearestEvenIncludingBothMidpointDirections; assertion 8개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.StorageRequiresNearestEvenIncludingBothMidpointDirections 유지 원문 검사 body 및 assertion 동일. 01ead07c8dcec86cc541b6c45ad646cb7c1d2dd4d9eef28ba89436d7082a2954 01ead07c8dcec86cc541b6c45ad646cb7c1d2dd4d9eef28ba89436d7082a2954 EXPECT_TRUE(reduced::CheckPairIncrement(1.0, half_upper_spacing, 1.0, {half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(reduced::CheckPairIncrement(1.0, -std::ldexp(1.0, -54), 1.0, {-std::ldexp(1.0, -54)}, std::ldexp(1.0, -54)).storage_pass) | EXPECT_TRUE(reduced::CheckPairIncrement(-1.0, -half_upper_spacing, -1.0, {-half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(odd_tie.arithmetic_pass) | EXPECT_FALSE(odd_tie.storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(-odd, half_upper_spacing, -1.0, {-half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(misplaced_high.arithmetic_pass) | EXPECT_FALSE(misplaced_high.storage_pass) EXPECT_TRUE(reduced::CheckPairIncrement(1.0, half_upper_spacing, 1.0, {half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(reduced::CheckPairIncrement(1.0, -std::ldexp(1.0, -54), 1.0, {-std::ldexp(1.0, -54)}, std::ldexp(1.0, -54)).storage_pass) | EXPECT_TRUE(reduced::CheckPairIncrement(-1.0, -half_upper_spacing, -1.0, {-half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(odd_tie.arithmetic_pass) | EXPECT_FALSE(odd_tie.storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(-odd, half_upper_spacing, -1.0, {-half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(misplaced_high.arithmetic_pass) | EXPECT_FALSE(misplaced_high.storage_pass) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.WholeUpdateAndIndependentTraceRejectMissingCorrection HhtReducedIncrement.WholeUpdateAndIndependentTraceRejectMissingCorrection; assertion 5개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.WholeUpdateAndIndependentTraceRejectMissingCorrection 유지 원문 검사 body 및 assertion 동일. 262933302f3210cf4380812f75addf653e952d4ba8595c66d7d3b5772c59b6b5 262933302f3210cf4380812f75addf653e952d4ba8595c66d7d3b5772c59b6b5 EXPECT_TRUE(valid_whole.arithmetic_pass && valid_whole.storage_pass) | EXPECT_TRUE(valid_trace.arithmetic_pass && valid_trace.storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, correction, 1.0, {correction, 0.0, correction}, 2.0 * correction).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, correction, 1.0, {2.0 * correction, 0.0}, 2.0 * correction).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, -2.0 * correction, 1.0, {2.0 * correction, 0.0}, 2.0 * correction).arithmetic_pass) EXPECT_TRUE(valid_whole.arithmetic_pass && valid_whole.storage_pass) | EXPECT_TRUE(valid_trace.arithmetic_pass && valid_trace.storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, correction, 1.0, {correction, 0.0, correction}, 2.0 * correction).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, correction, 1.0, {2.0 * correction, 0.0}, 2.0 * correction).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, -2.0 * correction, 1.0, {2.0 * correction, 0.0}, 2.0 * correction).arithmetic_pass) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.ExactThresholdRejectsTailHiddenByRoundedRatio HhtReducedIncrement.ExactThresholdRejectsTailHiddenByRoundedRatio; assertion 8개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.ExactThresholdRejectsTailHiddenByRoundedRatio 유지 원문 검사 body 및 assertion 동일. a91408b59790f93c59b20fc737d66f81ae8f8cfe1e8502b13836b5ad0efbb24e a91408b59790f93c59b20fc737d66f81ae8f8cfe1e8502b13836b5ad0efbb24e EXPECT_TRUE(equality.arithmetic_pass) | EXPECT_EQ(above.ratio, threshold) | EXPECT_FALSE(above.arithmetic_pass) | EXPECT_EQ(above_decimal.ratio, threshold) | EXPECT_FALSE(above_decimal.arithmetic_pass) | EXPECT_TRUE(below.arithmetic_pass) | EXPECT_TRUE(maximum.arithmetic_pass) | EXPECT_FALSE(unsupported.arithmetic_pass) EXPECT_TRUE(equality.arithmetic_pass) | EXPECT_EQ(above.ratio, threshold) | EXPECT_FALSE(above.arithmetic_pass) | EXPECT_EQ(above_decimal.ratio, threshold) | EXPECT_FALSE(above_decimal.arithmetic_pass) | EXPECT_TRUE(below.arithmetic_pass) | EXPECT_TRUE(maximum.arithmetic_pass) | EXPECT_FALSE(unsupported.arithmetic_pass) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.ZeroScaleAndSubnormalArithmeticRemainExact HhtReducedIncrement.ZeroScaleAndSubnormalArithmeticRemainExact; assertion 8개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.ZeroScaleAndSubnormalArithmeticRemainExact 유지 원문 검사 body 및 assertion 동일. 6c6c8a54ef0f513faca05e189ae080d712597fbe859edf9c0df7169058d7086d 6c6c8a54ef0f513faca05e189ae080d712597fbe859edf9c0df7169058d7086d EXPECT_TRUE(zero.arithmetic_pass && zero.storage_pass) | EXPECT_TRUE(fixed_zero.arithmetic_pass && fixed_zero.storage_pass) | EXPECT_TRUE(tiny_valid.arithmetic_pass && tiny_valid.storage_pass) | EXPECT_EQ(tiny_valid.defect, 0.0) | EXPECT_TRUE(tiny_nonzero.storage_pass) | EXPECT_FALSE(tiny_nonzero.arithmetic_pass) | EXPECT_EQ(tiny_nonzero.defect, tiny) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, tiny, 0.0, {tiny}, tiny).storage_pass) EXPECT_TRUE(zero.arithmetic_pass && zero.storage_pass) | EXPECT_TRUE(fixed_zero.arithmetic_pass && fixed_zero.storage_pass) | EXPECT_TRUE(tiny_valid.arithmetic_pass && tiny_valid.storage_pass) | EXPECT_EQ(tiny_valid.defect, 0.0) | EXPECT_TRUE(tiny_nonzero.storage_pass) | EXPECT_FALSE(tiny_nonzero.arithmetic_pass) | EXPECT_EQ(tiny_nonzero.defect, tiny) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, tiny, 0.0, {tiny}, tiny).storage_pass) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.NonfiniteAndOverflowFailBeforeAcceptance HhtReducedIncrement.NonfiniteAndOverflowFailBeforeAcceptance; assertion 9개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.NonfiniteAndOverflowFailBeforeAcceptance 유지 원문 검사 body 및 assertion 동일. fb5fe44c1510d94b22e68a48f545271af54787ba6f38e7d57105f584b02eda1f fb5fe44c1510d94b22e68a48f545271af54787ba6f38e7d57105f584b02eda1f EXPECT_FALSE(reduced::CheckPairIncrement(invalid, 0.0, 0.0, {0.0}, 0.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, invalid, 0.0, {0.0}, 0.0).storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, invalid, {0.0}, 0.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, 0.0, {invalid}, 1.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, 0.0, {0.0}, invalid).arithmetic_pass) | EXPECT_FALSE(overflow.arithmetic_pass) | EXPECT_FALSE(overflow.storage_pass) | EXPECT_FALSE(unsupported.arithmetic_pass) | EXPECT_FALSE(unsupported.storage_pass) EXPECT_FALSE(reduced::CheckPairIncrement(invalid, 0.0, 0.0, {0.0}, 0.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, invalid, 0.0, {0.0}, 0.0).storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, invalid, {0.0}, 0.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, 0.0, {invalid}, 1.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, 0.0, {0.0}, invalid).arithmetic_pass) | EXPECT_FALSE(overflow.arithmetic_pass) | EXPECT_FALSE(overflow.storage_pass) | EXPECT_FALSE(unsupported.arithmetic_pass) | EXPECT_FALSE(unsupported.storage_pass) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedLifecycle.AllowsEvaluationAfterCorrection100ButNeverCorrection101 HhtReducedLifecycle.AllowsEvaluationAfterCorrection100ButNeverCorrection101; assertion 7개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedLifecycle.AllowsEvaluationAfterCorrection100ButNeverCorrection101 유지 원문 검사 body 및 assertion 동일. 60a86b1cfb0b9cc5f37aec09bacc49496468028cdff28ddf5010a1f482add364 60a86b1cfb0b9cc5f37aec09bacc49496468028cdff28ddf5010a1f482add364 EXPECT_TRUE(CanApplyOuterCorrection(0U)) | EXPECT_TRUE(CanApplyOuterCorrection(99U)) | EXPECT_FALSE(CanApplyOuterCorrection(100U)) | EXPECT_FALSE(CanApplyOuterCorrection(101U)) | EXPECT_EQ(corrections, 100U) | EXPECT_EQ(last_evaluation, 100U) | EXPECT_EQ(accepted, accept_at_100) EXPECT_TRUE(CanApplyOuterCorrection(0U)) | EXPECT_TRUE(CanApplyOuterCorrection(99U)) | EXPECT_FALSE(CanApplyOuterCorrection(100U)) | EXPECT_FALSE(CanApplyOuterCorrection(101U)) | EXPECT_EQ(corrections, 100U) | EXPECT_EQ(last_evaluation, 100U) | EXPECT_EQ(accepted, accept_at_100) -Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedLifecycle.FailedExecutionDoesNotPublishCandidateOrContaminateRetry HhtReducedLifecycle.FailedExecutionDoesNotPublishCandidateOrContaminateRetry; assertion 18개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedLifecycle.FailedExecutionDoesNotPublishCandidateOrContaminateRetry 유지 원문 검사 body 및 assertion 동일. 200703a9b2cc195cf471123955a0f052d0732809a02789d894ab9df46002879a 200703a9b2cc195cf471123955a0f052d0732809a02789d894ab9df46002879a "ASSERT_TRUE(baseline.HasValue()) | ASSERT_EQ(baseline.Value().state.AcceptedFrames().size(), 3U) | EXPECT_GT(baseline.Value().state.AcceptedFrames()[1U].generalized_coordinates[0U], 0.0) | ASSERT_FALSE(failed.HasValue()) | EXPECT_EQ(failing.failures, 1U) | EXPECT_EQ(failed.GetStatus().Diagnostics().front().code, ""c10-injected-backend"") | EXPECT_NE(partial_log.find(""\tincrement=2\t""), std::string::npos) | EXPECT_NE(partial_log.find(""\toutcome=failed""), std::string::npos) | EXPECT_NE(ReadLifecycleLog(baseline_path).find(line + '\n'), std::string::npos) | EXPECT_EQ(line.find(""\tincrement=2\t""), std::string::npos) | ASSERT_TRUE(retry.HasValue()) | ASSERT_EQ(actual.size(), expected.size()) | EXPECT_EQ(actual[frame].frame_index, expected[frame].frame_index) | EXPECT_EQ(actual[frame].iteration_count, expected[frame].iteration_count) | EXPECT_EQ(actual[frame].time, expected[frame].time) | ASSERT_EQ(left.Size(), right.Size()) | EXPECT_EQ(left[i], right[i]) | EXPECT_EQ(ReadLifecycleLog(retry_path), ReadLifecycleLog(baseline_path))" "ASSERT_TRUE(baseline.HasValue()) | ASSERT_EQ(baseline.Value().state.AcceptedFrames().size(), 3U) | EXPECT_GT(baseline.Value().state.AcceptedFrames()[1U].generalized_coordinates[0U], 0.0) | ASSERT_FALSE(failed.HasValue()) | EXPECT_EQ(failing.failures, 1U) | EXPECT_EQ(failed.GetStatus().Diagnostics().front().code, ""c10-injected-backend"") | EXPECT_NE(partial_log.find(""\tincrement=2\t""), std::string::npos) | EXPECT_NE(partial_log.find(""\toutcome=failed""), std::string::npos) | EXPECT_NE(ReadLifecycleLog(baseline_path).find(line + '\n'), std::string::npos) | EXPECT_EQ(line.find(""\tincrement=2\t""), std::string::npos) | ASSERT_TRUE(retry.HasValue()) | ASSERT_EQ(actual.size(), expected.size()) | EXPECT_EQ(actual[frame].frame_index, expected[frame].frame_index) | EXPECT_EQ(actual[frame].iteration_count, expected[frame].iteration_count) | EXPECT_EQ(actual[frame].time, expected[frame].time) | ASSERT_EQ(left.Size(), right.Size()) | EXPECT_EQ(left[i], right[i]) | EXPECT_EQ(ReadLifecycleLog(retry_path), ReadLifecycleLog(baseline_path))" -Refactor tests/unit/analysis/hht_shell_physics_test.cpp support@1-528 helper/oracle/fixture/include/static assertion 구간: Message, Require, Add, Scale, Cross, Dot, Norm, Triple, Coordinates, Store, Fixture, MakeFixture, if, EmptyFrame, Evaluate, VolumeOracle, Integrate, OrbitChart, RigidOrbit, OrbitPhysicalRates, RigidForceRates, SparseNorm, ManufacturedHidden, CompleteManufacturedConstraints tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bff094dc63055b397162f08ce704ce39f346436a57378522c8c80557b71d9529 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_shell_physics_test.cpp support@734-983 helper/oracle/fixture/include/static assertion 구간: InitializeNullVelocity, GridEvidence, RecoveredAcceleration, ArithmeticRadii, Up, UpSum, UpProduct, RoundoffRadius, AddRadius, ProductRadius, RateSumRadius, Add, Value, Radius, QuotientRadius, reduced, ProjectBasisRadii, AccumulateLiftBasisRadii, BasisLiftReplay, ReplayLiftBasisRadii, LiftBasisRadii tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 13a1ff8e33d6400d5bdcf494a3a6abe02fdbf33582c3f5de2ef4f71bf5bd18d7 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_shell_physics_test.cpp support@1133-1153 helper/oracle/fixture/include/static assertion 구간: AdditionLowPart, AdvanceCoordinate tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 61ed0abe9524b8e3099608f9f117ed4ed88fb40aa98039f13024486c80f3d640 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_shell_physics_test.cpp support@1185-1669 helper/oracle/fixture/include/static assertion 구간: HhtCoordinateFactorRadius, RadiusNorm, GraphBasisProducts, GraphInverseCertificate, ContractGraphBasis, for, SparseFromDense, UpperRowSum, FiniteMatrix, FiniteNonnegativeMatrix, FiniteVector, FiniteNonnegativeVector, HasInfiniteRadius, FillInfinite, CertifyGraphInverse, AddPhysicalContractionRadius, BoundGraphSolution, GraphArithmeticIndicator, if tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b2e045bbe0fa0615cde9321d1f050fb0e003242df9c3c54c8ad5fa110caf906a 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_shell_physics_test.cpp support@1795-1925 helper/oracle/fixture/include/static assertion 구간: LastSolve, RecordNoise, for tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6b9392a417c11f51d48a97f27a0dc0542c4f005b1063414cb4b9403d1550a5e3 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_shell_physics_test.cpp support@2055-3075 helper/oracle/fixture/include/static assertion 구간: RecoverAcceleration, if, CompleteOriginalConstraints, RunPlate, for, Require, Trial, UpdateTrace, Differences, FrameError, RecoveredFrameError, RecoveredDifferences, AccelerationSplit tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 82a60a9bab9a1165f469ca2106a81e8e004ec8c859ea5301ab896f1da9329e8e 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_shell_physics_test.cpp support@3561-3596 helper/oracle/fixture/include/static assertion 구간: ReadLifecycleLog, FailAfterAcceptedIncrement, while, if tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fdaacc9c5e36ed4d024ff28652880353526b01b1ea8bb6ab1fb4b1a86e0279f5 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_shell_physics_test.cpp support@3665-3666 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_temporal_verification_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/analysis/hht_temporal_verification_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 03565773d95b6bad350d360bb1b2b2489c81b19c5877a5c7bcc6362c951fb013 03565773d95b6bad350d360bb1b2b2489c81b19c5877a5c7bcc6362c951fb013 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C01MatchesConstantMassRecurrenceAndSecondOrder HhtTemporalVerification.C01MatchesConstantMassRecurrenceAndSecondOrder; assertion 1개 tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C01MatchesConstantMassRecurrenceAndSecondOrder 유지 원문 검사 body 및 assertion 동일. 17fe998913063fd19bb6401c48b979bf998384569d88bb14e42ce753c13ca7e6 17fe998913063fd19bb6401c48b979bf998384569d88bb14e42ce753c13ca7e6 EXPECT_LE(error.constant_mass_recurrence_difference, 1.0e-12) EXPECT_LE(error.constant_mass_recurrence_difference, 1.0e-12) -Refactor tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C03VariableMassIsSecondOrderAndNaiveWeightingIsNot HhtTemporalVerification.C03VariableMassIsSecondOrderAndNaiveWeightingIsNot; assertion 2개 tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C03VariableMassIsSecondOrderAndNaiveWeightingIsNot 유지 원문 검사 body 및 assertion 동일. c1215c7361ecf522a71c80084595558d3433a6afa624d162f76e2d3535f641f7 c1215c7361ecf522a71c80084595558d3433a6afa624d162f76e2d3535f641f7 EXPECT_GT(errors.back().auxiliary_difference, 0.0) | EXPECT_LT(order, 1.5) EXPECT_GT(errors.back().auxiliary_difference, 0.0) | EXPECT_LT(order, 1.5) -Refactor tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04aCoupledMasslessCoordinatesHaveSecondOrder HhtTemporalVerification.C04aCoupledMasslessCoordinatesHaveSecondOrder; assertion 2개 tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04aCoupledMasslessCoordinatesHaveSecondOrder 유지 원문 검사 body 및 assertion 동일. 3b88debb5cff0df98f0085bd9f58e4fc847d99251be567cee3fb1e277d42e2c0 3b88debb5cff0df98f0085bd9f58e4fc847d99251be567cee3fb1e277d42e2c0 EXPECT_LE(errors[grid].constant_mass_recurrence_difference, 1.0e-12) | EXPECT_LE(errors[grid].reduced_difference, 1.0e-10) EXPECT_LE(errors[grid].constant_mass_recurrence_difference, 1.0e-12) | EXPECT_LE(errors[grid].reduced_difference, 1.0e-10) -Refactor tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04aFinestReductionComparisonIsNumericallyResolved HhtTemporalVerification.C04aFinestReductionComparisonIsNumericallyResolved; assertion 1개 tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04aFinestReductionComparisonIsNumericallyResolved 유지 원문 검사 body 및 assertion 동일. 29e3b4fcb4310f058433aebe1547c1b5df41000e2e29b6cae9506c8dc4960555 29e3b4fcb4310f058433aebe1547c1b5df41000e2e29b6cae9506c8dc4960555 EXPECT_LE(error.reduced_difference, 1.0e-10) EXPECT_LE(error.reduced_difference, 1.0e-10) -Refactor tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04bFullCartesianMovingNullConverges HhtTemporalVerification.C04bFullCartesianMovingNullConverges; assertion 5개 tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04bFullCartesianMovingNullConverges 유지 원문 검사 body 및 assertion 동일. d6e5f3a57a0983661a209be99ff249fae0ce28d7343f1a2d0e74de29a2ccfc95 d6e5f3a57a0983661a209be99ff249fae0ce28d7343f1a2d0e74de29a2ccfc95 EXPECT_LE(error.position_constraint, 1.0e-10) | EXPECT_LT(errors[grid].hidden_velocity, errors[grid - 1U].hidden_velocity) | EXPECT_LT(errors[grid].hidden_acceleration, errors[grid - 1U].hidden_acceleration) | EXPECT_LE(errors.back().hidden_velocity, 1.0e-6) | EXPECT_LE(errors.back().hidden_acceleration, 1.0e-4) EXPECT_LE(error.position_constraint, 1.0e-10) | EXPECT_LT(errors[grid].hidden_velocity, errors[grid - 1U].hidden_velocity) | EXPECT_LT(errors[grid].hidden_acceleration, errors[grid - 1U].hidden_acceleration) | EXPECT_LE(errors.back().hidden_velocity, 1.0e-6) | EXPECT_LE(errors.back().hidden_acceleration, 1.0e-4) -Refactor tests/unit/analysis/hht_temporal_verification_test.cpp support@1-451 helper/oracle/fixture/include/static assertion 구간: Case, ExactState, Dimension, Exact, if, Amplitudes, Equation, Evaluate, Multiply, Solve, Effective, Errors, Integrate, Sweep tests/unit/analysis/hht_temporal_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c427466b945f2d0b9cbfec1a629323a8f2d81fd7574c29f611baa1e6c07860ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_temporal_verification_test.cpp support@506-507 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_temporal_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_time_integration_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/analysis/hht_time_integration_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 068a7d057ec10b7f70a883d56ad54bb12f20873028b3bd7c34a1eb5c29adce20 068a7d057ec10b7f70a883d56ad54bb12f20873028b3bd7c34a1eb5c29adce20 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.KeepsPhysicalAndAlgorithmicAccelerationDistinct HhtTimeIntegrationTest.KeepsPhysicalAndAlgorithmicAccelerationDistinct; assertion 6개 tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.KeepsPhysicalAndAlgorithmicAccelerationDistinct 유지 원문 검사 body 및 assertion 동일. bc5623fd45c2fb228f48298ee47d4f1c5a287a1d18591f8e4f618814f7ffd9b8 bc5623fd45c2fb228f48298ee47d4f1c5a287a1d18591f8e4f618814f7ffd9b8 ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_NEAR(rates.Value().algorithmic_acceleration[0U], 2.0, 1e-14) | EXPECT_NEAR(rates.Value().acceleration[0U], 1.95 / 0.95, 1e-14) | EXPECT_NEAR(rates.Value().velocity[0U], 0.155, 1e-14) ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_NEAR(rates.Value().algorithmic_acceleration[0U], 2.0, 1e-14) | EXPECT_NEAR(rates.Value().acceleration[0U], 1.95 / 0.95, 1e-14) | EXPECT_NEAR(rates.Value().velocity[0U], 0.155, 1e-14) -Refactor tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.RejectsInvalidParametersAndTime HhtTimeIntegrationTest.RejectsInvalidParametersAndTime; assertion 7개 tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.RejectsInvalidParametersAndTime 유지 원문 검사 body 및 assertion 동일. 8f052b7f1a3b8fb822dc564e2365883b6827c3e9f566e2fd07dc2a67c9246816 8f052b7f1a3b8fb822dc564e2365883b6827c3e9f566e2fd07dc2a67c9246816 EXPECT_FALSE(MakeHhtParameters(0.01).HasValue()) | EXPECT_FALSE(MakeHhtParameters(-0.34).HasValue()) | ASSERT_TRUE(MakeHhtParameters(-1.0 / 3.0).HasValue()) | ASSERT_TRUE(parameters.HasValue()) | EXPECT_EQ(parameters.Value().beta, 0.25) | EXPECT_EQ(parameters.Value().gamma, 0.5) | EXPECT_FALSE(PredictHht(zero, zero, zero, 0.0, parameters.Value()).HasValue()) EXPECT_FALSE(MakeHhtParameters(0.01).HasValue()) | EXPECT_FALSE(MakeHhtParameters(-0.34).HasValue()) | ASSERT_TRUE(MakeHhtParameters(-1.0 / 3.0).HasValue()) | ASSERT_TRUE(parameters.HasValue()) | EXPECT_EQ(parameters.Value().beta, 0.25) | EXPECT_EQ(parameters.Value().gamma, 0.5) | EXPECT_FALSE(PredictHht(zero, zero, zero, 0.0, parameters.Value()).HasValue()) -Refactor tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.StepOscillatorHasSecondOrderMaximumError HhtTimeIntegrationTest.StepOscillatorHasSecondOrderMaximumError; assertion 9개 tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.StepOscillatorHasSecondOrderMaximumError 유지 원문 검사 body 및 assertion 동일. 75ff32c40233ae10ed77f6cd3ffb13361d13d1c6a0acb05720d450f0d5f4d053 75ff32c40233ae10ed77f6cd3ffb13361d13d1c6a0acb05720d450f0d5f4d053 ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_GE(std::log2(previous_q / error_q), 1.8) | EXPECT_GE(std::log2(previous_v / error_v), 1.8) | EXPECT_GE(std::log2(previous_a / error_a), 1.8) | EXPECT_LT(error_q, 1e-4) | EXPECT_LT(error_v, 1e-4) | EXPECT_LT(error_a, 1e-4) ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_GE(std::log2(previous_q / error_q), 1.8) | EXPECT_GE(std::log2(previous_v / error_v), 1.8) | EXPECT_GE(std::log2(previous_a / error_a), 1.8) | EXPECT_LT(error_q, 1e-4) | EXPECT_LT(error_v, 1e-4) | EXPECT_LT(error_a, 1e-4) -Refactor tests/unit/analysis/hht_time_integration_test.cpp support@1-9 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/analysis/hht_time_integration_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ae92a1fab37e019e61be13e7179238f0a1920b5d84bd46e196d22971dc9f979d 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_time_integration_test.cpp support@40-41 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_time_integration_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5f00a39140d4b7cac4217349f6c92160b11694234e9665516332598cd78d2637 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/hht_time_integration_test.cpp support@95-97 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/analysis/hht_time_integration_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/newton_iteration_log_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 11개 tests/unit/analysis/newton_iteration_log_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d3101c094646165ee241aa223245bcbf7d58accb1a8f018d2c83fed3f484b9dc d3101c094646165ee241aa223245bcbf7d58accb1a8f018d2c83fed3f484b9dc 해당 없음 해당 없음 -Refactor tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.WritesOneLfTerminated39FieldRecordInApprovedOrder NewtonIterationLog.WritesOneLfTerminated39FieldRecordInApprovedOrder; assertion 4개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.WritesOneLfTerminated39FieldRecordInApprovedOrder 유지 원문 검사 body 및 assertion 동일. 478006c691de24dd68fd00fb670f08f3df30134ddab9b8d2c1300bcb3bbf9b9b 478006c691de24dd68fd00fb670f08f3df30134ddab9b8d2c1300bcb3bbf9b9b "ASSERT_EQ(fields.size(), labels.size()) | EXPECT_EQ(fields[index].substr(0U, fields[index].find('=')), labels[index]) | EXPECT_EQ(FieldValue(fields, ""record""), ""record=newton-iteration"") | EXPECT_EQ(FieldValue(fields, ""schema""), ""schema=nsnr-log-v1"")" "ASSERT_EQ(fields.size(), labels.size()) | EXPECT_EQ(fields[index].substr(0U, fields[index].find('=')), labels[index]) | EXPECT_EQ(FieldValue(fields, ""record""), ""record=newton-iteration"") | EXPECT_EQ(FieldValue(fields, ""schema""), ""schema=nsnr-log-v1"")" -Refactor tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.FormatsFiniteNumbersForLocaleIndependentRoundTrip NewtonIterationLog.FormatsFiniteNumbersForLocaleIndependentRoundTrip; assertion 5개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.FormatsFiniteNumbersForLocaleIndependentRoundTrip 유지 원문 검사 body 및 assertion 동일. af49c065bc4263fecd936356c425497319528bab0b5bbf04bcc82a252eac4ed0 af49c065bc4263fecd936356c425497319528bab0b5bbf04bcc82a252eac4ed0 EXPECT_EQ(result.ec, std::errc{}) | EXPECT_EQ(result.ptr, value.data() + value.size()) | EXPECT_DOUBLE_EQ(parsed, 0.12345678901234567) | EXPECT_NE(value.find('.'), std::string::npos) | EXPECT_EQ(value.find(','), std::string::npos) EXPECT_EQ(result.ec, std::errc{}) | EXPECT_EQ(result.ptr, value.data() + value.size()) | EXPECT_DOUBLE_EQ(parsed, 0.12345678901234567) | EXPECT_NE(value.find('.'), std::string::npos) | EXPECT_EQ(value.find(','), std::string::npos) -Refactor tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesChannelDecisionsAndExplicitOutcomeFields NewtonIterationLog.SerializesChannelDecisionsAndExplicitOutcomeFields; assertion 13개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesChannelDecisionsAndExplicitOutcomeFields 유지 원문 검사 body 및 assertion 동일. a72dbdfb59417fdad8806c162889401a17f516cfe5f527c4b08d6bfd1c12d076 a72dbdfb59417fdad8806c162889401a17f516cfe5f527c4b08d6bfd1c12d076 "EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_channel""), std::string{prefix} + ""_channel="" + std::string{prefix}) | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_numerator_norm""), std::string{prefix} + ""_numerator_norm=0.0012345678901234567"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_denominator_scale""), std::string{prefix} + ""_denominator_scale=1.2345678901234567"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_branch""), std::string{prefix} + ""_branch=relative"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold""), std::string{prefix} + ""_threshold=0.01"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold_unit""), std::string{prefix} + ""_threshold_unit=1"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_pass""), std::string{prefix} + ""_pass=1"") | EXPECT_EQ(FieldValue(fields, ""last_completed_stage""), ""last_completed_stage=convergence-gates"") | EXPECT_EQ(FieldValue(fields, ""failing_stage""), ""failing_stage=none"") | EXPECT_EQ(FieldValue(fields, ""combined_pass""), ""combined_pass=1"") | EXPECT_EQ(FieldValue(fields, ""transition""), ""transition=accept"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=accepted"") | EXPECT_EQ(FieldValue(fields, ""diagnostic_code""), ""diagnostic_code=none"")" "EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_channel""), std::string{prefix} + ""_channel="" + std::string{prefix}) | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_numerator_norm""), std::string{prefix} + ""_numerator_norm=0.0012345678901234567"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_denominator_scale""), std::string{prefix} + ""_denominator_scale=1.2345678901234567"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_branch""), std::string{prefix} + ""_branch=relative"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold""), std::string{prefix} + ""_threshold=0.01"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold_unit""), std::string{prefix} + ""_threshold_unit=1"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_pass""), std::string{prefix} + ""_pass=1"") | EXPECT_EQ(FieldValue(fields, ""last_completed_stage""), ""last_completed_stage=convergence-gates"") | EXPECT_EQ(FieldValue(fields, ""failing_stage""), ""failing_stage=none"") | EXPECT_EQ(FieldValue(fields, ""combined_pass""), ""combined_pass=1"") | EXPECT_EQ(FieldValue(fields, ""transition""), ""transition=accept"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=accepted"") | EXPECT_EQ(FieldValue(fields, ""diagnostic_code""), ""diagnostic_code=none"")" -Refactor tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesEmptyChannelsAsTypedZeroScaleDecisions NewtonIterationLog.SerializesEmptyChannelsAsTypedZeroScaleDecisions; assertion 8개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesEmptyChannelsAsTypedZeroScaleDecisions 유지 원문 검사 body 및 assertion 동일. 52595116ab45dfc4a15efc3027ebda7ed94578e61ba5516a49952da4787b3aea 52595116ab45dfc4a15efc3027ebda7ed94578e61ba5516a49952da4787b3aea "EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_numerator_norm""), std::string{prefix} + ""_numerator_norm=0"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_denominator_scale""), std::string{prefix} + ""_denominator_scale=0"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_branch""), std::string{prefix} + ""_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold""), std::string{prefix} + ""_threshold=0.001"") | EXPECT_EQ(FieldValue(fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=force"") | EXPECT_EQ(FieldValue(fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=force*length"") | EXPECT_EQ(FieldValue(fields, ""correction_translation_threshold_unit""), ""correction_translation_threshold_unit=length"") | EXPECT_EQ(FieldValue(fields, ""correction_rotation_threshold_unit""), ""correction_rotation_threshold_unit=1"")" "EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_numerator_norm""), std::string{prefix} + ""_numerator_norm=0"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_denominator_scale""), std::string{prefix} + ""_denominator_scale=0"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_branch""), std::string{prefix} + ""_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold""), std::string{prefix} + ""_threshold=0.001"") | EXPECT_EQ(FieldValue(fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=force"") | EXPECT_EQ(FieldValue(fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=force*length"") | EXPECT_EQ(FieldValue(fields, ""correction_translation_threshold_unit""), ""correction_translation_threshold_unit=length"") | EXPECT_EQ(FieldValue(fields, ""correction_rotation_threshold_unit""), ""correction_rotation_threshold_unit=1"")" -Refactor tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.EscapesStringsAndOmitsUnevaluatedFailureFields NewtonIterationLog.EscapesStringsAndOmitsUnevaluatedFailureFields; assertion 5개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.EscapesStringsAndOmitsUnevaluatedFailureFields 유지 원문 검사 body 및 assertion 동일. 2f3470b4d8bf9aacf7f50890f7b53816dfe990193f8af3a6d0cc066b88f7037d 2f3470b4d8bf9aacf7f50890f7b53816dfe990193f8af3a6d0cc066b88f7037d "EXPECT_EQ(ValueAfterEquals(fields[index]), not_evaluated) | EXPECT_EQ(FieldValue(fields, ""failing_stage""), ""failing_stage=load-boundary"") | EXPECT_EQ(FieldValue(fields, ""transition""), ""transition=fail\\ttransition"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=failed\\nrecord"") | EXPECT_EQ(FieldValue(fields, ""diagnostic_code""), ""diagnostic_code=external\\\\load\\r\\0"")" "EXPECT_EQ(ValueAfterEquals(fields[index]), not_evaluated) | EXPECT_EQ(FieldValue(fields, ""failing_stage""), ""failing_stage=load-boundary"") | EXPECT_EQ(FieldValue(fields, ""transition""), ""transition=fail\\ttransition"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=failed\\nrecord"") | EXPECT_EQ(FieldValue(fields, ""diagnostic_code""), ""diagnostic_code=external\\\\load\\r\\0"")" -Refactor tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.ReportsWriteFlushAndCloseStateFailures NewtonIterationLog.ReportsWriteFlushAndCloseStateFailures; assertion 2개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.ReportsWriteFlushAndCloseStateFailures 유지 원문 검사 body 및 assertion 동일. af4d515b9dc0ca7b6af0fa1cfae5d26577b3efc5ab172f3ee816db7044509e96 af4d515b9dc0ca7b6af0fa1cfae5d26577b3efc5ab172f3ee816db7044509e96 ASSERT_TRUE(closed_writer.Open(path).IsOk()) | ASSERT_TRUE(closed_writer.Close().IsOk()) ASSERT_TRUE(closed_writer.Open(path).IsOk()) | ASSERT_TRUE(closed_writer.Close().IsOk()) -Refactor tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.LeavesZeroByteLogForNonNewtonControlledFailurePath NewtonIterationLog.LeavesZeroByteLogForNonNewtonControlledFailurePath; assertion 4개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.LeavesZeroByteLogForNonNewtonControlledFailurePath 유지 원문 검사 body 및 assertion 동일. 6e9b83153024bcd0b3e29402a533faf17fa26d708db7bc574ee13b8a1ffa9902 6e9b83153024bcd0b3e29402a533faf17fa26d708db7bc574ee13b8a1ffa9902 ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | EXPECT_TRUE(std::filesystem::exists(path)) | EXPECT_EQ(std::filesystem::file_size(path), 0U) ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | EXPECT_TRUE(std::filesystem::exists(path)) | EXPECT_EQ(std::filesystem::file_size(path), 0U) -Refactor tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesEvaluatorProducedExternalScaleResidualDecisions NewtonIterationLog.SerializesEvaluatorProducedExternalScaleResidualDecisions; assertion 19개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesEvaluatorProducedExternalScaleResidualDecisions 유지 원문 검사 body 및 assertion 동일. 883a7d046a0275863ab3ba8717420a46120cd4730070a07ebf692cad2fdc6b1c 883a7d046a0275863ab3ba8717420a46120cd4730070a07ebf692cad2fdc6b1c "ASSERT_EQ(zero_fields.size(), 39U) | EXPECT_EQ(FieldValue(zero_fields, ""schema""), ""schema=nsnr-log-v1"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_denominator_scale""), ""residual_force_denominator_scale=0"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_denominator_scale""), ""residual_moment_denominator_scale=0"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_branch""), ""residual_force_branch=zero-scale"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_branch""), ""residual_moment_branch=zero-scale"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_threshold""), ""residual_force_threshold=0.001"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_threshold""), ""residual_moment_threshold=0.001"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=force"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=force*length"") | ASSERT_EQ(relative_fields.size(), 39U) | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_denominator_scale""), ""residual_force_denominator_scale=2"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_denominator_scale""), ""residual_moment_denominator_scale=2"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_branch""), ""residual_force_branch=relative"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_branch""), ""residual_moment_branch=relative"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_threshold""), ""residual_force_threshold=0.01"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_threshold""), ""residual_moment_threshold=0.01"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=1"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=1"")" "ASSERT_EQ(zero_fields.size(), 39U) | EXPECT_EQ(FieldValue(zero_fields, ""schema""), ""schema=nsnr-log-v1"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_denominator_scale""), ""residual_force_denominator_scale=0"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_denominator_scale""), ""residual_moment_denominator_scale=0"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_branch""), ""residual_force_branch=zero-scale"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_branch""), ""residual_moment_branch=zero-scale"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_threshold""), ""residual_force_threshold=0.001"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_threshold""), ""residual_moment_threshold=0.001"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=force"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=force*length"") | ASSERT_EQ(relative_fields.size(), 39U) | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_denominator_scale""), ""residual_force_denominator_scale=2"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_denominator_scale""), ""residual_moment_denominator_scale=2"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_branch""), ""residual_force_branch=relative"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_branch""), ""residual_moment_branch=relative"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_threshold""), ""residual_force_threshold=0.01"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_threshold""), ""residual_moment_threshold=0.01"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=1"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=1"")" -Refactor tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.WritesTimeAndAllTwoChannelMetrics DynamicNewtonIterationLog.WritesTimeAndAllTwoChannelMetrics; assertion 24개 tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.WritesTimeAndAllTwoChannelMetrics 유지 원문 검사 body 및 assertion 동일. 21230f3c31871e11f03f9fb62d0be2dc01e29447bf22847af4e642acd48094d0 21230f3c31871e11f03f9fb62d0be2dc01e29447bf22847af4e642acd48094d0 "ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(record).IsOk()) | ASSERT_TRUE(writer.Flush().IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | ASSERT_FALSE(bytes.empty()) | EXPECT_EQ(bytes.back(), '\n') | EXPECT_EQ(std::count(bytes.begin(), bytes.end(), '\n'), 1) | EXPECT_EQ(bytes.find('\r'), std::string::npos) | EXPECT_EQ(bytes.find(""target_factor""), std::string::npos) | EXPECT_EQ(bytes.find(""nsnr-log-v1""), std::string::npos) | EXPECT_EQ(fields.size(), 24U) | EXPECT_EQ(FieldValue(fields, ""record""), ""record=dynamic-newton-iteration"") | EXPECT_EQ(FieldValue(fields, ""schema""), ""schema=hht-log-v1"") | EXPECT_EQ(FieldValue(fields, ""increment""), ""increment=2"") | EXPECT_EQ(FieldValue(fields, ""iteration""), ""iteration=3"") | EXPECT_EQ(FieldValue(fields, ""time""), ""time=0.25"") | EXPECT_EQ(FieldValue(fields, ""stage""), ""stage=convergence"") | EXPECT_EQ(FieldValue(fields, ""residual_u_branch""), ""residual_u_branch=relative"") | EXPECT_EQ(FieldValue(fields, ""residual_phi_branch""), ""residual_phi_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, ""residual_pass""), ""residual_pass=1"") | EXPECT_EQ(FieldValue(fields, ""correction_pass""), ""correction_pass=1"") | EXPECT_EQ(parsed.ec, std::errc{}) | EXPECT_EQ(parsed.ptr, text.data() + text.size()) | EXPECT_DOUBLE_EQ(value, metric.second)" "ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(record).IsOk()) | ASSERT_TRUE(writer.Flush().IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | ASSERT_FALSE(bytes.empty()) | EXPECT_EQ(bytes.back(), '\n') | EXPECT_EQ(std::count(bytes.begin(), bytes.end(), '\n'), 1) | EXPECT_EQ(bytes.find('\r'), std::string::npos) | EXPECT_EQ(bytes.find(""target_factor""), std::string::npos) | EXPECT_EQ(bytes.find(""nsnr-log-v1""), std::string::npos) | EXPECT_EQ(fields.size(), 24U) | EXPECT_EQ(FieldValue(fields, ""record""), ""record=dynamic-newton-iteration"") | EXPECT_EQ(FieldValue(fields, ""schema""), ""schema=hht-log-v1"") | EXPECT_EQ(FieldValue(fields, ""increment""), ""increment=2"") | EXPECT_EQ(FieldValue(fields, ""iteration""), ""iteration=3"") | EXPECT_EQ(FieldValue(fields, ""time""), ""time=0.25"") | EXPECT_EQ(FieldValue(fields, ""stage""), ""stage=convergence"") | EXPECT_EQ(FieldValue(fields, ""residual_u_branch""), ""residual_u_branch=relative"") | EXPECT_EQ(FieldValue(fields, ""residual_phi_branch""), ""residual_phi_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, ""residual_pass""), ""residual_pass=1"") | EXPECT_EQ(FieldValue(fields, ""correction_pass""), ""correction_pass=1"") | EXPECT_EQ(parsed.ec, std::errc{}) | EXPECT_EQ(parsed.ptr, text.data() + text.size()) | EXPECT_DOUBLE_EQ(value, metric.second)" -Refactor tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.EscapesFailureContextAndKeepsZeroScaleFailure DynamicNewtonIterationLog.EscapesFailureContextAndKeepsZeroScaleFailure; assertion 11개 tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.EscapesFailureContextAndKeepsZeroScaleFailure 유지 원문 검사 body 및 assertion 동일. 0f65cd37830b1416f99088775f625be1000782b62f4d62110c4c68d39859d164 0f65cd37830b1416f99088775f625be1000782b62f4d62110c4c68d39859d164 "ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(record).IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | EXPECT_EQ(std::count(bytes.begin(), bytes.end(), '\n'), 1) | EXPECT_EQ(FieldValue(fields, ""stage""), ""stage=mass\\tcheck"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=failed\\ntrial"") | EXPECT_EQ(FieldValue(fields, ""failure_code""), ""failure_code=dynamic\\\\mass\\rregularity"") | EXPECT_EQ(FieldValue(fields, ""residual_u_numerator""), ""residual_u_numerator=1"") | EXPECT_EQ(FieldValue(fields, ""residual_u_scale""), ""residual_u_scale=0"") | EXPECT_EQ(FieldValue(fields, ""residual_u_branch""), ""residual_u_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, ""residual_pass""), ""residual_pass=0"")" "ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(record).IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | EXPECT_EQ(std::count(bytes.begin(), bytes.end(), '\n'), 1) | EXPECT_EQ(FieldValue(fields, ""stage""), ""stage=mass\\tcheck"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=failed\\ntrial"") | EXPECT_EQ(FieldValue(fields, ""failure_code""), ""failure_code=dynamic\\\\mass\\rregularity"") | EXPECT_EQ(FieldValue(fields, ""residual_u_numerator""), ""residual_u_numerator=1"") | EXPECT_EQ(FieldValue(fields, ""residual_u_scale""), ""residual_u_scale=0"") | EXPECT_EQ(FieldValue(fields, ""residual_u_branch""), ""residual_u_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, ""residual_pass""), ""residual_pass=0"")" -Refactor tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.InvalidEvidencePreservesFlushedPrefixAndFailsLifecycle DynamicNewtonIterationLog.InvalidEvidencePreservesFlushedPrefixAndFailsLifecycle; assertion 4개 tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.InvalidEvidencePreservesFlushedPrefixAndFailsLifecycle 유지 원문 검사 body 및 assertion 동일. 6b1f341aed7b1b9de8b7a2a0f6a8da67a51219a45b3cd7d50ed8535e224165bc 6b1f341aed7b1b9de8b7a2a0f6a8da67a51219a45b3cd7d50ed8535e224165bc ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(CompleteDynamicRecord()).IsOk()) | ASSERT_TRUE(writer.Flush().IsOk()) | EXPECT_EQ(ReadLogBytes(path), prefix) ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(CompleteDynamicRecord()).IsOk()) | ASSERT_TRUE(writer.Flush().IsOk()) | EXPECT_EQ(ReadLogBytes(path), prefix) -Refactor tests/unit/analysis/newton_iteration_log_test.cpp support@1-148 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, ExpectLogOutputFailure, SplitTabs, while, FieldValue, for, ValueAfterEquals, VectorFrom, MakeDecision, CompleteRecord, WriteAndRead tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3f36093d9eeb5955577586d7074fcf8e441c479b923ff29b85d93f9fa0a014db 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/newton_iteration_log_test.cpp support@181-182 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 19386ea2961b53078a1506ac96caf435499c2ce389a6c4bc8b1d1334e3450291 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/newton_iteration_log_test.cpp support@198-199 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f968f62ecd764a93d0aebdeb90b34d4f95aea19862f1025a8f99eeaa0f513e90 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/newton_iteration_log_test.cpp support@233-234 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 66bb75d8fde94c7f7e4f4ae4f2d8b281f4bd149a8cda9b86613f7499da6a8973 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/newton_iteration_log_test.cpp support@275-276 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 71ce16e6c3d23ad2f7d4620ddc39c24e95471753e20be5b664c828f13cb2ebb1 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/newton_iteration_log_test.cpp support@303-304 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2289d04b1dccb850b21a2112940a26b854cfb47de6032c0404ffd2a9a1257809 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/newton_iteration_log_test.cpp support@324-325 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ed7ec9f2fea8c0942706f056482e9ebbdd7f1c498b5b8ba0a274bdb7a0e1705b 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/newton_iteration_log_test.cpp support@336-337 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 611c87e9e2a44fb7f16bfcb907f0ca1acf1ffc4101a78393551ee362850e63bf 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/newton_iteration_log_test.cpp support@416-439 helper/oracle/fixture/include/static assertion 구간: CompleteDynamicRecord, ReadLogBytes tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9f652c12fbac5b067b0d88e3ec7dcfe31f9bb9bdad34b6a378d15c84ae567c39 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/newton_iteration_log_test.cpp support@564-565 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/analysis/nonlinear_analysis_state_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 71de713d652861fd086471944762c2ce289442e6e2ba2e259db76fad20e63db1 71de713d652861fd086471944762c2ce289442e6e2ba2e259db76fad20e63db1 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.CreatesFactorZeroBaselineInStableIdentityOrder NonlinearAnalysisState.CreatesFactorZeroBaselineInStableIdentityOrder; assertion 10개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.CreatesFactorZeroBaselineInStableIdentityOrder 유지 원문 검사 body 및 assertion 동일. e055bd3a2aa163dedf599de37840273eb34bd74e59a8a94225360994929673f3 e055bd3a2aa163dedf599de37840273eb34bd74e59a8a94225360994929673f3 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(committed.increment_index, 0U) | EXPECT_DOUBLE_EQ(committed.load_factor, 0.0) | EXPECT_TRUE(committed.is_factor_zero_baseline) | EXPECT_TRUE(result.Value().AcceptedFrames().empty()) | ASSERT_EQ(committed.nodal_internal_order.size(), fixture.domain->Nodes().size()) | ASSERT_EQ(committed.nodal_source_ids.size(), fixture.domain->Nodes().size()) | EXPECT_EQ(committed.nodal_internal_order[node], node) | ASSERT_EQ(vector->Size(), fixture.dofs->FullDofCount()) | EXPECT_DOUBLE_EQ((*vector)[index], 0.0) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(committed.increment_index, 0U) | EXPECT_DOUBLE_EQ(committed.load_factor, 0.0) | EXPECT_TRUE(committed.is_factor_zero_baseline) | EXPECT_TRUE(result.Value().AcceptedFrames().empty()) | ASSERT_EQ(committed.nodal_internal_order.size(), fixture.domain->Nodes().size()) | ASSERT_EQ(committed.nodal_source_ids.size(), fixture.domain->Nodes().size()) | EXPECT_EQ(committed.nodal_internal_order[node], node) | ASSERT_EQ(vector->Size(), fixture.dofs->FullDofCount()) | EXPECT_DOUBLE_EQ((*vector)[index], 0.0) -Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.RejectsInvalidBaselineInventoryBeforeStateCreation NonlinearAnalysisState.RejectsInvalidBaselineInventoryBeforeStateCreation; assertion 1개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.RejectsInvalidBaselineInventoryBeforeStateCreation 유지 원문 검사 body 및 assertion 동일. 4ec9496b06d3904c913dea2c3ce00de01fbb8f56585ffc969b4c3ef52fcd464d 4ec9496b06d3904c913dea2c3ce00de01fbb8f56585ffc969b4c3ef52fcd464d EXPECT_FALSE(result.HasValue()) EXPECT_FALSE(result.HasValue()) -Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.RejectsNonfiniteBaselineAndDofMismatch NonlinearAnalysisState.RejectsNonfiniteBaselineAndDofMismatch; assertion 4개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.RejectsNonfiniteBaselineAndDofMismatch 유지 원문 검사 body 및 assertion 동일. 3ba1563177a1cb2640413807396826918fd0e25aa71517fdf1ec53fb5054735a 3ba1563177a1cb2640413807396826918fd0e25aa71517fdf1ec53fb5054735a EXPECT_FALSE(fesa::NonlinearAnalysisState::Create( *fixture.domain, *fixture.dofs, nonfinite_triad) .HasValue()) | EXPECT_FALSE(fesa::NonlinearAnalysisState::Create( *fixture.domain, *fixture.dofs, nonfinite_director) .HasValue()) | ASSERT_TRUE(empty_domain_result.HasValue()) | EXPECT_FALSE(dof_mismatch.HasValue()) EXPECT_FALSE(fesa::NonlinearAnalysisState::Create( *fixture.domain, *fixture.dofs, nonfinite_triad) .HasValue()) | EXPECT_FALSE(fesa::NonlinearAnalysisState::Create( *fixture.domain, *fixture.dofs, nonfinite_director) .HasValue()) | ASSERT_TRUE(empty_domain_result.HasValue()) | EXPECT_FALSE(dof_mismatch.HasValue()) -Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.PreservesDuplicateLabelsWhenInstancesDiffer NonlinearAnalysisState.PreservesDuplicateLabelsWhenInstancesDiffer; assertion 7개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.PreservesDuplicateLabelsWhenInstancesDiffer 유지 원문 검사 body 및 assertion 동일. e5a32acb933b1e65d2b1efef48bdee5223bd4276460d245229bf10410bfbf59b e5a32acb933b1e65d2b1efef48bdee5223bd4276460d245229bf10410bfbf59b ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | ASSERT_TRUE(dofs_result.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().CommittedState().nodal_source_ids.size(), 2U) | EXPECT_EQ(result.Value().CommittedState().nodal_source_ids[0U].source_label, result.Value().CommittedState().nodal_source_ids[1U].source_label) | EXPECT_NE(result.Value().CommittedState().nodal_source_ids[0U].instance_name, result.Value().CommittedState().nodal_source_ids[1U].instance_name) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | ASSERT_TRUE(dofs_result.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().CommittedState().nodal_source_ids.size(), 2U) | EXPECT_EQ(result.Value().CommittedState().nodal_source_ids[0U].source_label, result.Value().CommittedState().nodal_source_ids[1U].source_label) | EXPECT_NE(result.Value().CommittedState().nodal_source_ids[0U].instance_name, result.Value().CommittedState().nodal_source_ids[1U].instance_name) -Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.StartsIndependentTrialAndDiscardPreservesCommit NonlinearAnalysisState.StartsIndependentTrialAndDiscardPreservesCommit; assertion 3개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.StartsIndependentTrialAndDiscardPreservesCommit 유지 원문 검사 body 및 assertion 동일. c8246ffc811a47dcc57b704918eb2f14188fef66dd65d0f63ce0892482986949 c8246ffc811a47dcc57b704918eb2f14188fef66dd65d0f63ce0892482986949 ASSERT_TRUE(trial.HasValue()) | EXPECT_NE(trial.Value().displacement.Data(), state.CommittedState().displacement.Data()) | EXPECT_DOUBLE_EQ(state.CommittedState().nodal_director[0U][2U], 1.0) ASSERT_TRUE(trial.HasValue()) | EXPECT_NE(trial.Value().displacement.Data(), state.CommittedState().displacement.Data()) | EXPECT_DOUBLE_EQ(state.CommittedState().nodal_director[0U][2U], 1.0) -Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.CommitsOnlyStableCompleteAcceptedFrames NonlinearAnalysisState.CommitsOnlyStableCompleteAcceptedFrames; assertion 16개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.CommitsOnlyStableCompleteAcceptedFrames 유지 원문 검사 body 및 assertion 동일. c2c798a56a4a0a3e7e44c9a7208e608f5244ce3ba8f2e2204f03adf4dafdbac9 c2c798a56a4a0a3e7e44c9a7208e608f5244ce3ba8f2e2204f03adf4dafdbac9 ASSERT_TRUE(state.CommitAcceptedFrame(first).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_EQ(state.AcceptedFrames()[0U].frame_index, 0U) | EXPECT_EQ(state.AcceptedFrames()[0U].increment_index, 1U) | EXPECT_FALSE(state.AcceptedFrames()[0U].is_factor_one) | EXPECT_EQ(state.CommittedState().increment_index, 1U) | EXPECT_FALSE(state.CommittedState().is_factor_zero_baseline) | EXPECT_DOUBLE_EQ(state.CommittedState().residual[0U], 5.0) | EXPECT_DOUBLE_EQ(state.CommittedState().reaction[0U], 5.0) | ASSERT_EQ(state.CommittedState().shell_results.size(), 4U) | EXPECT_EQ(state.CommittedState().shell_results[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(state.CommittedState().shell_results[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | ASSERT_TRUE(state.CommitAcceptedFrame(final_frame).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 2U) | EXPECT_EQ(state.AcceptedFrames()[1U].frame_index, 1U) | EXPECT_TRUE(state.AcceptedFrames()[1U].is_factor_one) ASSERT_TRUE(state.CommitAcceptedFrame(first).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_EQ(state.AcceptedFrames()[0U].frame_index, 0U) | EXPECT_EQ(state.AcceptedFrames()[0U].increment_index, 1U) | EXPECT_FALSE(state.AcceptedFrames()[0U].is_factor_one) | EXPECT_EQ(state.CommittedState().increment_index, 1U) | EXPECT_FALSE(state.CommittedState().is_factor_zero_baseline) | EXPECT_DOUBLE_EQ(state.CommittedState().residual[0U], 5.0) | EXPECT_DOUBLE_EQ(state.CommittedState().reaction[0U], 5.0) | ASSERT_EQ(state.CommittedState().shell_results.size(), 4U) | EXPECT_EQ(state.CommittedState().shell_results[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(state.CommittedState().shell_results[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | ASSERT_TRUE(state.CommitAcceptedFrame(final_frame).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 2U) | EXPECT_EQ(state.AcceptedFrames()[1U].frame_index, 1U) | EXPECT_TRUE(state.AcceptedFrames()[1U].is_factor_one) -Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.AtomicallyRejectsMalformedAcceptedFrames NonlinearAnalysisState.AtomicallyRejectsMalformedAcceptedFrames; assertion 7개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.AtomicallyRejectsMalformedAcceptedFrames 유지 원문 검사 body 및 assertion 동일. c5236c5ae93e09ba72c3ae4a4deefec8eff58282d70ec1a3125f9895785189f5 c5236c5ae93e09ba72c3ae4a4deefec8eff58282d70ec1a3125f9895785189f5 "ASSERT_TRUE(state.CommitAcceptedFrame(first).IsOk()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-accepted-state"") | EXPECT_EQ(state.AcceptedFrames().size(), frame_count) | EXPECT_EQ(state.CommittedState().increment_index, before.increment_index) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, before.load_factor)" "ASSERT_TRUE(state.CommitAcceptedFrame(first).IsOk()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-accepted-state"") | EXPECT_EQ(state.AcceptedFrames().size(), frame_count) | EXPECT_EQ(state.CommittedState().increment_index, before.increment_index) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, before.load_factor)" -Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.AtomicallyRejectsNonfiniteAcceptedFrame NonlinearAnalysisState.AtomicallyRejectsNonfiniteAcceptedFrame; assertion 6개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.AtomicallyRejectsNonfiniteAcceptedFrame 유지 원문 검사 body 및 assertion 동일. cc5e4a6773c3318499122f00929c214489dbb84190929c6eb5997ced2860c51c cc5e4a6773c3318499122f00929c214489dbb84190929c6eb5997ced2860c51c "ASSERT_TRUE(state.CommitAcceptedFrame(valid).IsOk()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-accepted-state"") | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, before.load_factor)" "ASSERT_TRUE(state.CommitAcceptedFrame(valid).IsOk()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-accepted-state"") | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, before.load_factor)" -Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.StoresNoUnapprovedVerificationMetrics NonlinearAnalysisState.StoresNoUnapprovedVerificationMetrics; assertion 2개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.StoresNoUnapprovedVerificationMetrics 유지 원문 검사 body 및 assertion 동일. b69ab505986f7c4e96d680112f051eb4ad264b5a4b0d00534017599fbcec886d b69ab505986f7c4e96d680112f051eb4ad264b5a4b0d00534017599fbcec886d EXPECT_FALSE((HasVerificationMetrics::value)) | EXPECT_FALSE((HasVerificationMetrics::value)) EXPECT_FALSE((HasVerificationMetrics::value)) | EXPECT_FALSE((HasVerificationMetrics::value)) -Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp support@1-184 helper/oracle/fixture/include/static assertion 구간: Fixture, MakeFixture, if, MakeBaseline, MakeState, MakeShellRow, MakeShellRows, MakeFrame, T, HasVerificationMetrics, ExpectSourceIdEqual, ExpectVectorEqual tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2e56a14c0097a3200d0e43093dd79e3af9fbde80419d3561620f97d79996642e 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp support@215-216 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bd37a239145c5cebe3e142065918acfbe17a8b4a9038df01ef0c3dc0653dd7a6 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp support@251-252 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8fe7a38902e0f0554e724e21bd6626055452ad1f94713ee1115cc0415d753fb2 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp support@276-277 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 284e6386154a0d7de7b977bffbccc58a0cccdd9f7d48f388d64f6bedeab4288e 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp support@318-319 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 00e2be860cc981a9ca4aa4ec18c34ff5e6071b8d9df6a4e02a2b41acdfb1cb7c 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp support@336-338 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7926abaabd465ec5f2df8c1281d0d9f682d634e296091035784916bea8ca5ed0 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp support@369-370 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 15735dfe66660b9315679d163a8e4573eb57893a4db8bf85e7542c4cf8cc664b 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp support@431-432 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 44e172af12e1ad94ad0079a1ed7dcc3e57c9ad141594f6626542163024522747 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp support@451-452 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5064d5792cabc37a1beb0d4085f57716fdb52851fdf8bff86383f061be0fd2ae 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 13개 tests/unit/analysis/nonlinear_static_control_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d12853400861a54e112f715d41be7470bf32caff38740282301f452c636a668c d12853400861a54e112f715d41be7470bf32caff38740282301f452c636a668c 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearStaticControl.BuildsFixedFactorSequenceWithExactEndpoint NonlinearStaticControl.BuildsFixedFactorSequenceWithExactEndpoint; assertion 10개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearStaticControl.BuildsFixedFactorSequenceWithExactEndpoint 유지 원문 검사 body 및 assertion 동일. 03cf5328984955e5bd0957b26938892dbadee29219434b903c919e1c159bfc6f 03cf5328984955e5bd0957b26938892dbadee29219434b903c919e1c159bfc6f ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().size(), 10U) | EXPECT_EQ(increment.increment_index, static_cast(index + 1U)) | EXPECT_DOUBLE_EQ(increment.load_factor, static_cast(index + 1U) * 0.1) | EXPECT_EQ(increment.is_factor_one, index + 1U == result.Value().size()) | EXPECT_DOUBLE_EQ(result.Value().back().load_factor, 1.0) | ASSERT_TRUE(one_hundred_result.HasValue()) | ASSERT_EQ(one_hundred_result.Value().size(), 100U) | EXPECT_EQ(one_hundred_result.Value().back().increment_index, 100U) | EXPECT_TRUE(one_hundred_result.Value().back().is_factor_one) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().size(), 10U) | EXPECT_EQ(increment.increment_index, static_cast(index + 1U)) | EXPECT_DOUBLE_EQ(increment.load_factor, static_cast(index + 1U) * 0.1) | EXPECT_EQ(increment.is_factor_one, index + 1U == result.Value().size()) | EXPECT_DOUBLE_EQ(result.Value().back().load_factor, 1.0) | ASSERT_TRUE(one_hundred_result.HasValue()) | ASSERT_EQ(one_hundred_result.Value().size(), 100U) | EXPECT_EQ(one_hundred_result.Value().back().increment_index, 100U) | EXPECT_TRUE(one_hundred_result.Value().back().is_factor_one) -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearStaticControl.IgnoresPositiveMinimumAndMaximumDuringStepping NonlinearStaticControl.IgnoresPositiveMinimumAndMaximumDuringStepping; assertion 5개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearStaticControl.IgnoresPositiveMinimumAndMaximumDuringStepping 유지 원문 검사 body 및 assertion 동일. 99470076262ba5d8b53bbdc942349594b403bf7b4c1ffbb01e172701fb11f882 99470076262ba5d8b53bbdc942349594b403bf7b4c1ffbb01e172701fb11f882 ASSERT_TRUE(first_result.HasValue()) | ASSERT_TRUE(second_result.HasValue()) | ASSERT_EQ(first_result.Value().size(), second_result.Value().size()) | EXPECT_DOUBLE_EQ(first_result.Value()[index].load_factor, second_result.Value()[index].load_factor) | EXPECT_EQ(first_result.Value()[index].increment_index, second_result.Value()[index].increment_index) ASSERT_TRUE(first_result.HasValue()) | ASSERT_TRUE(second_result.HasValue()) | ASSERT_EQ(first_result.Value().size(), second_result.Value().size()) | EXPECT_DOUBLE_EQ(first_result.Value()[index].load_factor, second_result.Value()[index].load_factor) | EXPECT_EQ(first_result.Value()[index].increment_index, second_result.Value()[index].increment_index) -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.AppliesAbsoluteBoundaryTargetsWithoutCorrection NonlinearLoadBoundary.AppliesAbsoluteBoundaryTargetsWithoutCorrection; assertion 5개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.AppliesAbsoluteBoundaryTargetsWithoutCorrection 유지 원문 검사 body 및 assertion 동일. 5e3b97613fd46bce571853e5787057d6cae4c99e6b8114c00823878a5a43e764 5e3b97613fd46bce571853e5787057d6cae4c99e6b8114c00823878a5a43e764 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 2U) | EXPECT_DOUBLE_EQ(result.Value()[0U], 1.0) | EXPECT_DOUBLE_EQ(result.Value()[1U], -0.125) | EXPECT_EQ(TrialCoordinates(fixture)[constrained], 0.0) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 2U) | EXPECT_DOUBLE_EQ(result.Value()[0U], 1.0) | EXPECT_DOUBLE_EQ(result.Value()[1U], -0.125) | EXPECT_EQ(TrialCoordinates(fixture)[constrained], 0.0) -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.AssemblesEverySharedNodeLoadOnceInFixedGlobalAxes NonlinearLoadBoundary.AssemblesEverySharedNodeLoadOnceInFixedGlobalAxes; assertion 7개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.AssemblesEverySharedNodeLoadOnceInFixedGlobalAxes 유지 원문 검사 body 및 assertion 동일. f9fd946c0c146cac052d1f2ce57c48e989e1700b61bc00e546bd78376a8707ba f9fd946c0c146cac052d1f2ce57c48e989e1700b61bc00e546bd78376a8707ba ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().generalized_external_force.Size(), fixture.dofs->FullDofCount()) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[0U], 2.0) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[1U], -1.0) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[3U], 0.5) | EXPECT_DOUBLE_EQ(fixture.domain->Steps()[0U] .ConcentratedLoads()[0U] .GlobalComponents()[0U], 8.0) | EXPECT_DOUBLE_EQ(fixture.domain->Steps()[0U] .ConcentratedLoads()[2U] .GlobalComponents()[3U], 2.0) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().generalized_external_force.Size(), fixture.dofs->FullDofCount()) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[0U], 2.0) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[1U], -1.0) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[3U], 0.5) | EXPECT_DOUBLE_EQ(fixture.domain->Steps()[0U] .ConcentratedLoads()[0U] .GlobalComponents()[0U], 8.0) | EXPECT_DOUBLE_EQ(fixture.domain->Steps()[0U] .ConcentratedLoads()[2U] .GlobalComponents()[3U], 2.0) -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.RejectsDirectorAlignedMomentAboveTheExactBand NonlinearLoadBoundary.RejectsDirectorAlignedMomentAboveTheExactBand; assertion 4개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.RejectsDirectorAlignedMomentAboveTheExactBand 유지 원문 검사 body 및 assertion 동일. 6fd8c584b65e4594d07dee3e89a681ebbf4990173da1ace05bde715753ca71f3 6fd8c584b65e4594d07dee3e89a681ebbf4990173da1ace05bde715753ca71f3 "EXPECT_TRUE( fesa::CheckMomentAdmissibility(director, {1.0, 0.0, 1.0e-12}).IsOk()) | EXPECT_FALSE(rejected.IsOk()) | ASSERT_EQ(rejected.Diagnostics().size(), 1U) | EXPECT_EQ(rejected.Diagnostics()[0U].code, ""unsupported-drilling-load"")" "EXPECT_TRUE( fesa::CheckMomentAdmissibility(director, {1.0, 0.0, 1.0e-12}).IsOk()) | EXPECT_FALSE(rejected.IsOk()) | ASSERT_EQ(rejected.Diagnostics().size(), 1U) | EXPECT_EQ(rejected.Diagnostics()[0U].code, ""unsupported-drilling-load"")" -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.PreservesSourceOrderDuringGlobalAccumulation NonlinearLoadBoundary.PreservesSourceOrderDuringGlobalAccumulation; assertion 6개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.PreservesSourceOrderDuringGlobalAccumulation 유지 원문 검사 body 및 assertion 동일. c3bb30245b6f1676ea97c2d939256da763d500b601a670f86968efa43d87b75a c3bb30245b6f1676ea97c2d939256da763d500b601a670f86968efa43d87b75a ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().generalized_external_force[0U], 1.0) | EXPECT_EQ(first.Value().generalized_external_tangent.RowOffsets(), second.Value().generalized_external_tangent.RowOffsets()) | EXPECT_EQ(first.Value().generalized_external_tangent.ColumnIndices(), second.Value().generalized_external_tangent.ColumnIndices()) | EXPECT_EQ(first.Value().generalized_external_tangent.Values(), second.Value().generalized_external_tangent.Values()) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().generalized_external_force[0U], 1.0) | EXPECT_EQ(first.Value().generalized_external_tangent.RowOffsets(), second.Value().generalized_external_tangent.RowOffsets()) | EXPECT_EQ(first.Value().generalized_external_tangent.ColumnIndices(), second.Value().generalized_external_tangent.ColumnIndices()) | EXPECT_EQ(first.Value().generalized_external_tangent.Values(), second.Value().generalized_external_tangent.Values()) -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.DifferentiatesOneFixedSpatialMomentAndUsesSubtraction NonlinearLoadBoundary.DifferentiatesOneFixedSpatialMomentAndUsesSubtraction; assertion 6개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.DifferentiatesOneFixedSpatialMomentAndUsesSubtraction 유지 원문 검사 body 및 assertion 동일. e3040db107a7fc1174faf58c76c4c5915e3a021adbdc44927ec95bf2dbf7877b e3040db107a7fc1174faf58c76c4c5915e3a021adbdc44927ec95bf2dbf7877b ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_LE(MaximumAbsoluteDifference(derivative, tangent_action), 1.0e-8) | EXPECT_DOUBLE_EQ(residual[3U], 5.0 - result.Value().generalized_external_force[3U]) | EXPECT_DOUBLE_EQ( -tangent_action[3U], -result.Value().generalized_external_tangent.Multiply(direction)[3U]) ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_LE(MaximumAbsoluteDifference(derivative, tangent_action), 1.0e-8) | EXPECT_DOUBLE_EQ(residual[3U], 5.0 - result.Value().generalized_external_force[3U]) | EXPECT_DOUBLE_EQ( -tangent_action[3U], -result.Value().generalized_external_tangent.Multiply(direction)[3U]) -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.UsesOwnedRelativeThresholdsForEveryChannel NonlinearConvergence.UsesOwnedRelativeThresholdsForEveryChannel; assertion 8개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.UsesOwnedRelativeThresholdsForEveryChannel 유지 원문 검사 body 및 assertion 동일. 6cfe9ea574efccc73afb0318189186da892593dc1ca54dcecc940c9f96d4b6ae 6cfe9ea574efccc73afb0318189186da892593dc1ca54dcecc940c9f96d4b6ae EXPECT_TRUE(result.combined_passed) | EXPECT_FALSE(decision.identity.empty()) | EXPECT_DOUBLE_EQ(decision.numerator_norm, 1.0e-2) | EXPECT_DOUBLE_EQ(decision.denominator_scale, 1.0) | EXPECT_EQ(decision.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(decision.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(decision.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(decision.passed) EXPECT_TRUE(result.combined_passed) | EXPECT_FALSE(decision.identity.empty()) | EXPECT_DOUBLE_EQ(decision.numerator_norm, 1.0e-2) | EXPECT_DOUBLE_EQ(decision.denominator_scale, 1.0) | EXPECT_EQ(decision.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(decision.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(decision.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(decision.passed) -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.AppliesTypedZeroScaleGatesToEmptyChannels NonlinearConvergence.AppliesTypedZeroScaleGatesToEmptyChannels; assertion 7개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.AppliesTypedZeroScaleGatesToEmptyChannels 유지 원문 검사 body 및 assertion 동일. 6dae4244b6d4b6af487b476312174ee8d379aae3416c77f5833eeb43b1ac0a2f 6dae4244b6d4b6af487b476312174ee8d379aae3416c77f5833eeb43b1ac0a2f EXPECT_TRUE(result.combined_passed) | EXPECT_DOUBLE_EQ(decisions[index].numerator_norm, 0.0) | EXPECT_DOUBLE_EQ(decisions[index].denominator_scale, 0.0) | EXPECT_EQ(decisions[index].branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(decisions[index].threshold, fesa::kNewtonZeroScaleThreshold) | EXPECT_EQ(decisions[index].threshold_unit, units[index]) | EXPECT_TRUE(decisions[index].passed) EXPECT_TRUE(result.combined_passed) | EXPECT_DOUBLE_EQ(decisions[index].numerator_norm, 0.0) | EXPECT_DOUBLE_EQ(decisions[index].denominator_scale, 0.0) | EXPECT_EQ(decisions[index].branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(decisions[index].threshold, fesa::kNewtonZeroScaleThreshold) | EXPECT_EQ(decisions[index].threshold_unit, units[index]) | EXPECT_TRUE(decisions[index].passed) -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.SelectsTypedZeroScaleFromExactZeroExternalResidualChannels NonlinearConvergence.SelectsTypedZeroScaleFromExactZeroExternalResidualChannels; assertion 10개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.SelectsTypedZeroScaleFromExactZeroExternalResidualChannels 유지 원문 검사 body 및 assertion 동일. 83f1b0cae81f3d8f7b93fe76c1857758f18b6e9d9c97b091cb9e101fb23f1f3e 83f1b0cae81f3d8f7b93fe76c1857758f18b6e9d9c97b091cb9e101fb23f1f3e EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(decisions[index].denominator_scale, 0.0) | EXPECT_EQ(decisions[index].branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(decisions[index].threshold, fesa::kNewtonZeroScaleThreshold) | EXPECT_EQ(decisions[index].threshold_unit, units[index]) | EXPECT_TRUE(decisions[index].passed) | EXPECT_FALSE(force_rejected.force_residual.passed) | EXPECT_FALSE(force_rejected.combined_passed) | EXPECT_FALSE(moment_rejected.moment_residual.passed) | EXPECT_FALSE(moment_rejected.combined_passed) EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(decisions[index].denominator_scale, 0.0) | EXPECT_EQ(decisions[index].branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(decisions[index].threshold, fesa::kNewtonZeroScaleThreshold) | EXPECT_EQ(decisions[index].threshold_unit, units[index]) | EXPECT_TRUE(decisions[index].passed) | EXPECT_FALSE(force_rejected.force_residual.passed) | EXPECT_FALSE(force_rejected.combined_passed) | EXPECT_FALSE(moment_rejected.moment_residual.passed) | EXPECT_FALSE(moment_rejected.combined_passed) -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.UsesRelativeResidualScaleOnlyWhenMatchingExternalScaleIsNonzero NonlinearConvergence.UsesRelativeResidualScaleOnlyWhenMatchingExternalScaleIsNonzero; assertion 10개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.UsesRelativeResidualScaleOnlyWhenMatchingExternalScaleIsNonzero 유지 원문 검사 body 및 assertion 동일. 6d42f6c27a543b480e86044b3b77d0943d8cb2d2482dd1aba56d30e16a39058c 6d42f6c27a543b480e86044b3b77d0943d8cb2d2482dd1aba56d30e16a39058c EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(decision.denominator_scale, 2.0) | EXPECT_EQ(decision.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(decision.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(decision.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(decision.passed) | EXPECT_FALSE(fesa::EvaluateNewtonConvergence(input).force_residual.passed) | EXPECT_FALSE(fesa::EvaluateNewtonConvergence(input).moment_residual.passed) | EXPECT_FALSE(relative_rejected.force_residual.passed) | EXPECT_FALSE(relative_rejected.combined_passed) EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(decision.denominator_scale, 2.0) | EXPECT_EQ(decision.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(decision.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(decision.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(decision.passed) | EXPECT_FALSE(fesa::EvaluateNewtonConvergence(input).force_residual.passed) | EXPECT_FALSE(fesa::EvaluateNewtonConvergence(input).moment_residual.passed) | EXPECT_FALSE(relative_rejected.force_residual.passed) | EXPECT_FALSE(relative_rejected.combined_passed) -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.RejectsNonfiniteResidualInputsBeforeSelectingOrAcceptingAChannel NonlinearConvergence.RejectsNonfiniteResidualInputsBeforeSelectingOrAcceptingAChannel; assertion 7개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.RejectsNonfiniteResidualInputsBeforeSelectingOrAcceptingAChannel 유지 원문 검사 body 및 assertion 동일. df264b5cae771cdeb5f4ea6aa1ca08c5353da8a51e88409b08509e598dd6e79e df264b5cae771cdeb5f4ea6aa1ca08c5353da8a51e88409b08509e598dd6e79e EXPECT_FALSE(decision.passed) | EXPECT_FALSE(result.combined_passed) | EXPECT_TRUE(relative.force_residual.passed) | EXPECT_DOUBLE_EQ(relative.force_residual.denominator_scale, smallest_external) | EXPECT_EQ(relative.force_residual.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(relative.force_residual.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(relative.force_residual.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) EXPECT_FALSE(decision.passed) | EXPECT_FALSE(result.combined_passed) | EXPECT_TRUE(relative.force_residual.passed) | EXPECT_DOUBLE_EQ(relative.force_residual.denominator_scale, smallest_external) | EXPECT_EQ(relative.force_residual.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(relative.force_residual.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(relative.force_residual.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.RequiresEveryResidualAndCorrectionChannelToPass NonlinearConvergence.RequiresEveryResidualAndCorrectionChannelToPass; assertion 8개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.RequiresEveryResidualAndCorrectionChannelToPass 유지 원문 검사 body 및 assertion 동일. a832011e0feb435ce0aa354c482a5af20cdcc12a5b3ee069a6805fa2760daa0f a832011e0feb435ce0aa354c482a5af20cdcc12a5b3ee069a6805fa2760daa0f EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(accepted.translation_correction.denominator_scale, 1.0) | EXPECT_DOUBLE_EQ(accepted.rotation_correction.denominator_scale, 1.0) | EXPECT_DOUBLE_EQ(accepted.translation_correction.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_DOUBLE_EQ(accepted.rotation_correction.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(accepted.translation_correction.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_EQ(accepted.rotation_correction.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_FALSE(result.combined_passed) EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(accepted.translation_correction.denominator_scale, 1.0) | EXPECT_DOUBLE_EQ(accepted.rotation_correction.denominator_scale, 1.0) | EXPECT_DOUBLE_EQ(accepted.translation_correction.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_DOUBLE_EQ(accepted.rotation_correction.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(accepted.translation_correction.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_EQ(accepted.rotation_correction.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_FALSE(result.combined_passed) -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@1-158 helper/oracle/fixture/include/static assertion 구간: VectorFrom, Fixture, if, TrialCoordinates, AddScaled, MaximumAbsoluteDifference, RelativeConvergenceInput, ExactZeroExternalResidualInput tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6a0d6117066d7bc0244668abef8eff3eb3f09fefb66e56d8ff7dae4978b297e2 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@184-185 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a728c5ddd282acb272a289129b2beaaf82361231a53854f9678579e963ca7bf5 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@204-205 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5d5d51f179b49fab4320bca3fb1a67c9514c031c6eb4146cd06e0fd67d94e32b 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@221-222 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b88abcc3396bee3d80864ac6e5b5d69fd7a65489104a60fee981bfb1f80dcf66 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@250-251 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6d84fb8f223d3d49be0a8b3f94cc76dc49eb532f98b45a89eaf3f6b7c0d9d928 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@262-263 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 891df0432d2d49bd73ab72565c58f1833e37588e6e1f011e9622f474b2164e52 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@285-286 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. de1e68c7ef81aa7e6db55005224ab3b7051d71f20a74f0a005cadc3d2950055f 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@324-325 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 577d29344a758ac62f396a9e34591982aab171dd34082649c877701cf8834124 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@346-347 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 66b90623292bf823c4ec82313343514c4d6118d131a2112173300ffc87582cc6 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@376-377 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0413b1a93aa4812b4c92ab8aeba36ae964d35ffceb3ae14bde002cc02b4a128a 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@414-415 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c2e9bb7f999bfecdf11b504b8f331912407fc2aace0ed3334b7095b7686f5f8a 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@454-455 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. dc36777ce188869f3f1f91b7963b011739df7f02cac290f3dfac4efbe4bf15bf 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@500-501 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d661490b198257d4473dc5b81ce890e2389d53e281ec635145449812542abe98 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@533-534 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/unit/analysis/solid_frequency_procedure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. afb4cc6cb6b1b6913bcfd0d473260ab060c91b66835e5570073472e3bc7f3dd5 afb4cc6cb6b1b6913bcfd0d473260ab060c91b66835e5570073472e3bc7f3dd5 해당 없음 해당 없음 -Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.FreeBrickRetainsSixRigidModes SolidFrequencyProcedure.FreeBrickRetainsSixRigidModes; assertion 6개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.FreeBrickRetainsSixRigidModes 유지 원문 검사 body 및 assertion 동일. cce9667bb3dd958f4277c3c2cea2cd1c9d7a29bbc73e03edfe674518cb099309 cce9667bb3dd958f4277c3c2cea2cd1c9d7a29bbc73e03edfe674518cb099309 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().modes.size(), 6U) | EXPECT_EQ(mode.classification, 0U) | EXPECT_EQ(result.Value().vectors.Rows(), 6U) | EXPECT_EQ(result.Value().vectors.Columns(), 24U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().modes.size(), 6U) | EXPECT_EQ(mode.classification, 0U) | EXPECT_EQ(result.Value().vectors.Rows(), 6U) | EXPECT_EQ(result.Value().vectors.Columns(), 24U) -Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.RowSumLumpedPencilMatchesIndependentDenseOracle SolidFrequencyProcedure.RowSumLumpedPencilMatchesIndependentDenseOracle; assertion 22개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.RowSumLumpedPencilMatchesIndependentDenseOracle 유지 원문 검사 body 및 assertion 동일. 4c97e6d2016b331fe2696c558e569c93fce6a5040249a4fa536634b8617ae5fb 4c97e6d2016b331fe2696c558e569c93fce6a5040249a4fa536634b8617ae5fb "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(state.modes.size(), oracle.size()) | ASSERT_EQ(state.eigenpair_checks.size(), oracle.size()) | EXPECT_NEAR(state.modes[c].eigenvalue, oracle[c], 1e-10 * state.classification_scale) | EXPECT_EQ(state.modes[c].mode_id, c + 1) | EXPECT_EQ(state.eigenpair_checks[c].sorted_rank, c + 1) | EXPECT_LE(state.eigenpair_checks[c].eta_r, 1e-10) | EXPECT_LE(state.eigenpair_checks[c].eta_energy, 1e-10) | EXPECT_LE(state.eigenpair_checks[c].eta_norm, 1e-10) | EXPECT_NEAR(state.eigenpair_checks[c].modal_mass, 1.0, 1e-10) | EXPECT_EQ(state.vectors(c, row), 0.0) | EXPECT_GT(state.vectors(c, pivot), 0.0) | EXPECT_LE(state.eta_gram, 1e-10) | EXPECT_LE(state.max_eta_orth, 1e-10) | EXPECT_NEAR(state.mass_ideal_lower_bound, 12.0 / 27.0, 1e-13) | EXPECT_GT(state.mass_lower_bound, 0.0) | EXPECT_LT(state.mass_lower_bound, state.mass_ideal_lower_bound) | EXPECT_GT(state.mass_roundoff_guard, 0.0) | EXPECT_EQ(state.backend.integer_abi, ""ILP64"") | EXPECT_EQ(state.backend.eigenvectors.Rows(), 0U) | EXPECT_EQ(state.backend.backend_calls.front().kind, ""mass-spd"")" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(state.modes.size(), oracle.size()) | ASSERT_EQ(state.eigenpair_checks.size(), oracle.size()) | EXPECT_NEAR(state.modes[c].eigenvalue, oracle[c], 1e-10 * state.classification_scale) | EXPECT_EQ(state.modes[c].mode_id, c + 1) | EXPECT_EQ(state.eigenpair_checks[c].sorted_rank, c + 1) | EXPECT_LE(state.eigenpair_checks[c].eta_r, 1e-10) | EXPECT_LE(state.eigenpair_checks[c].eta_energy, 1e-10) | EXPECT_LE(state.eigenpair_checks[c].eta_norm, 1e-10) | EXPECT_NEAR(state.eigenpair_checks[c].modal_mass, 1.0, 1e-10) | EXPECT_EQ(state.vectors(c, row), 0.0) | EXPECT_GT(state.vectors(c, pivot), 0.0) | EXPECT_LE(state.eta_gram, 1e-10) | EXPECT_LE(state.max_eta_orth, 1e-10) | EXPECT_NEAR(state.mass_ideal_lower_bound, 12.0 / 27.0, 1e-13) | EXPECT_GT(state.mass_lower_bound, 0.0) | EXPECT_LT(state.mass_lower_bound, state.mass_ideal_lower_bound) | EXPECT_GT(state.mass_roundoff_guard, 0.0) | EXPECT_EQ(state.backend.integer_abi, ""ILP64"") | EXPECT_EQ(state.backend.eigenvectors.Rows(), 0U) | EXPECT_EQ(state.backend.backend_calls.front().kind, ""mass-spd"")" -Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.DensityLengthAndMaterialScaling SolidFrequencyProcedure.DensityLengthAndMaterialScaling; assertion 5개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.DensityLengthAndMaterialScaling 유지 원문 검사 body 및 assertion 동일. cdee8e33c911874556fd0de7f4206dabb00b6323ffc6dc258ea2775cd9d4203c cdee8e33c911874556fd0de7f4206dabb00b6323ffc6dc258ea2775cd9d4203c ASSERT_TRUE(base_domain.HasValue()) | ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(result.Value().modes[c].eigenvalue, base.Value().modes[c].eigenvalue * parameters[3], 1e-10 * result.Value().classification_scale) ASSERT_TRUE(base_domain.HasValue()) | ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(result.Value().modes[c].eigenvalue, base.Value().modes[c].eigenvalue * parameters[3], 1e-10 * result.Value().classification_scale) -Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.OneFreeDofAndAllConstrainedAndExcessRequest SolidFrequencyProcedure.OneFreeDofAndAllConstrainedAndExcessRequest; assertion 5개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.OneFreeDofAndAllConstrainedAndExcessRequest 유지 원문 검사 body 및 assertion 동일. c873c04a035270f6496bcb1e0d60a1558b2eccd3043729a891bc459cd0f18927 c873c04a035270f6496bcb1e0d60a1558b2eccd3043729a891bc459cd0f18927 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(result.Value().modes[0].eigenvalue, DenseOracle({2U})[0], 1e-11) | ASSERT_TRUE(invalid.HasValue()) | EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(invalid.Value()) .HasValue()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(result.Value().modes[0].eigenvalue, DenseOracle({2U})[0], 1e-11) | ASSERT_TRUE(invalid.HasValue()) | EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(invalid.Value()) .HasValue()) -Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.MissingDensityAndFailedBackendPreservePriorCandidate SolidFrequencyProcedure.MissingDensityAndFailedBackendPreservePriorCandidate; assertion 7개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.MissingDensityAndFailedBackendPreservePriorCandidate 유지 원문 검사 body 및 assertion 동일. 3f418707dfaaffaae21da5242f50881cd3b4e2d1049377e14af02ad858f84b9c 3f418707dfaaffaae21da5242f50881cd3b4e2d1049377e14af02ad858f84b9c EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(missing.Value()) .HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(good.HasValue()) | EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(domain.Value()) .HasValue()) | EXPECT_EQ(good.Value().modes[0].eigenvalue, previous) | ASSERT_TRUE(again.HasValue()) | EXPECT_NEAR(again.Value().modes[0].eigenvalue, previous, 1e-12) EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(missing.Value()) .HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(good.HasValue()) | EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(domain.Value()) .HasValue()) | EXPECT_EQ(good.Value().modes[0].eigenvalue, previous) | ASSERT_TRUE(again.HasValue()) | EXPECT_NEAR(again.Value().modes[0].eigenvalue, previous, 1e-12) -Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.NearZeroNegativeRemainsRawWithoutFrequency SolidFrequencyProcedure.NearZeroNegativeRemainsRawWithoutFrequency; assertion 6개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.NearZeroNegativeRemainsRawWithoutFrequency 유지 원문 검사 body 및 assertion 동일. 5c7466461ae588cfbd0a9a9bdd24664d5d7cf8f721ecf9fa68b53fa3041f35eb 5c7466461ae588cfbd0a9a9bdd24664d5d7cf8f721ecf9fa68b53fa3041f35eb ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_LT(result.Value().modes[0].eigenvalue, 0.0) | EXPECT_EQ(result.Value().modes[0].classification, 0U) | EXPECT_FALSE(result.Value().modes[0].frequency.has_value()) | EXPECT_EQ(mode.cluster_id, 1U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_LT(result.Value().modes[0].eigenvalue, 0.0) | EXPECT_EQ(result.Value().modes[0].classification, 0U) | EXPECT_FALSE(result.Value().modes[0].frequency.has_value()) | EXPECT_EQ(mode.cluster_id, 1U) -Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.SuppliedFrequencyInputHasIndependentNumericalEvidence SolidFrequencyProcedure.SuppliedFrequencyInputHasIndependentNumericalEvidence; assertion 10개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.SuppliedFrequencyInputHasIndependentNumericalEvidence 유지 원문 검사 body 및 assertion 동일. 0287bfd4fea7a6dcac7e9ad689ef6fde57e28ebbe300516a82f71d32366695b0 0287bfd4fea7a6dcac7e9ad689ef6fde57e28ebbe300516a82f71d32366695b0 ASSERT_FALSE(root.empty()) | ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().modes.size(), 10U) | EXPECT_EQ(result.Value().vectors.Columns(), 3U * 442U) | EXPECT_GE(result.Value().eigenpair_checks.size(), 10U) | EXPECT_GT(result.Value().mass_lower_bound, 0.0) | EXPECT_LE(result.Value().eta_gram, 1e-10) | EXPECT_LE(result.Value().max_eta_orth, 1e-10) ASSERT_FALSE(root.empty()) | ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().modes.size(), 10U) | EXPECT_EQ(result.Value().vectors.Columns(), 3U * 442U) | EXPECT_GE(result.Value().eigenpair_checks.size(), 10U) | EXPECT_GT(result.Value().mass_lower_bound, 0.0) | EXPECT_LE(result.Value().eta_gram, 1e-10) | EXPECT_LE(result.Value().max_eta_orth, 1e-10) -Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.RejectsOverflowingOriginalPencilValidationScale SolidFrequencyProcedure.RejectsOverflowingOriginalPencilValidationScale; assertion 5개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.RejectsOverflowingOriginalPencilValidationScale 유지 원문 검사 body 및 assertion 동일. 23de9158e3984de0b4196abe914a4980b20b59e595d0f6de100b63c0608b4e5c 23de9158e3984de0b4196abe914a4980b20b59e595d0f6de100b63c0608b4e5c "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""solid-eigenpair-validation-failed"") | EXPECT_NE(result.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""solid-eigenpair-validation-failed"") | EXPECT_NE(result.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos)" -Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp support@1-64 helper/oracle/fixture/include/static assertion 구간: StatusText, Brick tests/unit/analysis/solid_frequency_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 338ba214915b6614a5178292ab8ca1c8409f79c52bfdae155360a152c9033cc2 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp support@77-136 helper/oracle/fixture/include/static assertion 구간: GradientIntegral, DenseOracle, FaceFree tests/unit/analysis/solid_frequency_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ce1a07c50cc327f05d6a67dcefec86324ec510e7189bc09589a7347b3ebac1a1 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 30개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8d90de51b606957522feabd9c9e063a463a91ecf2065fc63a21c893aed45276d 8d90de51b606957522feabd9c9e063a463a91ecf2065fc63a21c893aed45276d 해당 없음 해당 없음 -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.InitialLowPartsSurviveTrialCopyAndRejectedCommit SolidHhtPairedState.InitialLowPartsSurviveTrialCopyAndRejectedCommit; assertion 13개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.InitialLowPartsSurviveTrialCopyAndRejectedCommit 유지 원문 검사 body 및 assertion 동일. 825c8f0dad20f8717e1ea0b6b8603fd2644a8f3994ac000270d5f9e4327983e2 825c8f0dad20f8717e1ea0b6b8603fd2644a8f3994ac000270d5f9e4327983e2 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.Value().CommitAcceptedFrame(initial).IsOk()) | ASSERT_TRUE(trial.HasValue()) | EXPECT_EQ(trial.Value().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_EQ(trial.Value().low.residual_scale[0], std::ldexp(1.0, -61)) | EXPECT_EQ(trial.Value().low.linear_momentum_rate[0], std::ldexp(1.0, -59)) | EXPECT_EQ(trial.Value().low.angular_momentum_rate[1], std::ldexp(1.0, -60)) | EXPECT_EQ(state.Value().CommittedState().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_EQ(state.Value().CommittedState().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_EQ(state.Value().CommittedState().low.inertia_force[0], std::ldexp(1.0, -62)) | EXPECT_EQ(state.Value().CommittedState().low.angular_momentum_rate[2], -std::ldexp(1.0, -60)) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.Value().CommitAcceptedFrame(initial).IsOk()) | ASSERT_TRUE(trial.HasValue()) | EXPECT_EQ(trial.Value().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_EQ(trial.Value().low.residual_scale[0], std::ldexp(1.0, -61)) | EXPECT_EQ(trial.Value().low.linear_momentum_rate[0], std::ldexp(1.0, -59)) | EXPECT_EQ(trial.Value().low.angular_momentum_rate[1], std::ldexp(1.0, -60)) | EXPECT_EQ(state.Value().CommittedState().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_EQ(state.Value().CommittedState().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_EQ(state.Value().CommittedState().low.inertia_force[0], std::ldexp(1.0, -62)) | EXPECT_EQ(state.Value().CommittedState().low.angular_momentum_rate[2], -std::ldexp(1.0, -60)) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.InvalidLowShapeFiniteNormalizationAndIdentitiesFail SolidHhtPairedState.InvalidLowShapeFiniteNormalizationAndIdentitiesFail; assertion 4개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.InvalidLowShapeFiniteNormalizationAndIdentitiesFail 유지 원문 검사 body 및 assertion 동일. 2b78c719a88df0067bb2b21166b8c312c308d89d1c1983c1c771809eb499d299 2b78c719a88df0067bb2b21166b8c312c308d89d1c1983c1c771809eb499d299 ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue()) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue()) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.SubUlpPhysicalDisplacementRecoversNonzeroRates SolidHhtPairedKinematics.SubUlpPhysicalDisplacementRecoversNonzeroRates; assertion 13개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.SubUlpPhysicalDisplacementRecoversNonzeroRates 유지 원문 검사 body 및 assertion 동일. 1f4fe6c56fb73d89e0ad67e5ff0f7f140cbcf1ec8e26da6ea909fe446d6f19c3 1f4fe6c56fb73d89e0ad67e5ff0f7f140cbcf1ec8e26da6ea909fe446d6f19c3 ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | EXPECT_EQ(predictor.Value().displacement[0], 1) | EXPECT_EQ(predictor.Value().displacement_low[0], epsilon) | ASSERT_TRUE(rates.HasValue()) | EXPECT_EQ(rates.Value().algorithmic_acceleration[0], 4 * epsilon) | EXPECT_EQ(rates.Value().acceleration[0], 4 * epsilon) | EXPECT_EQ(rates.Value().velocity[0], 2 * epsilon) | EXPECT_EQ(rates.Value().algorithmic_acceleration_low[0], 0) | EXPECT_EQ(rates.Value().acceleration_low[0], 0) | EXPECT_EQ(rates.Value().velocity_low[0], 0) | ASSERT_TRUE(rounded_rates.HasValue()) | EXPECT_EQ(rounded_rates.Value().acceleration[0], 0) ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | EXPECT_EQ(predictor.Value().displacement[0], 1) | EXPECT_EQ(predictor.Value().displacement_low[0], epsilon) | ASSERT_TRUE(rates.HasValue()) | EXPECT_EQ(rates.Value().algorithmic_acceleration[0], 4 * epsilon) | EXPECT_EQ(rates.Value().acceleration[0], 4 * epsilon) | EXPECT_EQ(rates.Value().velocity[0], 2 * epsilon) | EXPECT_EQ(rates.Value().algorithmic_acceleration_low[0], 0) | EXPECT_EQ(rates.Value().acceleration_low[0], 0) | EXPECT_EQ(rates.Value().velocity_low[0], 0) | ASSERT_TRUE(rounded_rates.HasValue()) | EXPECT_EQ(rounded_rates.Value().acceleration[0], 0) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.PhysicalAndAuxiliaryRatesKeepOldPhysicalTerm SolidHhtPairedKinematics.PhysicalAndAuxiliaryRatesKeepOldPhysicalTerm; assertion 5개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.PhysicalAndAuxiliaryRatesKeepOldPhysicalTerm 유지 원문 검사 body 및 assertion 동일. 50303350d2b5f81d3838936cc4b1c4aefb9d23acffa5f1db16b392d59eadbc49 50303350d2b5f81d3838936cc4b1c4aefb9d23acffa5f1db16b392d59eadbc49 ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_EQ(rates.Value().algorithmic_acceleration[0], epsilon) | EXPECT_EQ(rates.Value().acceleration[0], 0) | EXPECT_EQ(rates.Value().velocity[0], 6 * epsilon) ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_EQ(rates.Value().algorithmic_acceleration[0], epsilon) | EXPECT_EQ(rates.Value().acceleration[0], 0) | EXPECT_EQ(rates.Value().velocity[0], 6 * epsilon) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.InvalidLowInputsFailWithoutChangingPredictor SolidHhtPairedKinematics.InvalidLowInputsFailWithoutChangingPredictor; assertion 6개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.InvalidLowInputsFailWithoutChangingPredictor 유지 원문 검사 body 및 assertion 동일. 42be154d7316bf84811c30432c01f348e2cd4964c15a9ca2a8542b3a4d099a72 42be154d7316bf84811c30432c01f348e2cd4964c15a9ca2a8542b3a4d099a72 ASSERT_TRUE(p.HasValue()) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(1, low), predictor, fesa::Vector(1), fesa::Vector(1), 1, p.Value()) .HasValue()) | EXPECT_EQ(predictor.displacement[0], 1) | EXPECT_EQ(predictor.displacement_low[0], 0) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(0), predictor, fesa::Vector(1), fesa::Vector(1), 1, p.Value()) .HasValue()) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(1), predictor, fesa::Vector(1), fesa::Vector(1), 1, invalid_parameters) .HasValue()) ASSERT_TRUE(p.HasValue()) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(1, low), predictor, fesa::Vector(1), fesa::Vector(1), 1, p.Value()) .HasValue()) | EXPECT_EQ(predictor.displacement[0], 1) | EXPECT_EQ(predictor.displacement_low[0], 0) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(0), predictor, fesa::Vector(1), fesa::Vector(1), 1, p.Value()) .HasValue()) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(1), predictor, fesa::Vector(1), fesa::Vector(1), 1, invalid_parameters) .HasValue()) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.MassMultiplyKeepsSubUlpActionAndCancellation SolidHhtPairedKinematics.MassMultiplyKeepsSubUlpActionAndCancellation; assertion 7개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.MassMultiplyKeepsSubUlpActionAndCancellation 유지 원문 검사 body 및 assertion 동일. ef6f15688746af81bfd5dd21af5158228a986336d03b3619f12ec626edb65ebb ef6f15688746af81bfd5dd21af5158228a986336d03b3619f12ec626edb65ebb ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().high[0], 3 * epsilon) | EXPECT_EQ(result.Value().low[0], 0) | EXPECT_EQ(result.Value().high[1], -3) | EXPECT_EQ(result.Value().low[1], 3 * epsilon) | EXPECT_EQ(mass.Value().Multiply(high)[0], 0) ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().high[0], 3 * epsilon) | EXPECT_EQ(result.Value().low[0], 0) | EXPECT_EQ(result.Value().high[1], -3) | EXPECT_EQ(result.Value().low[1], 3 * epsilon) | EXPECT_EQ(mass.Value().Multiply(high)[0], 0) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.WeightedIdentityPreservesNonzeroOldResidualLow SolidHhtPairedKinematics.WeightedIdentityPreservesNonzeroOldResidualLow; assertion 11개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.WeightedIdentityPreservesNonzeroOldResidualLow 유지 원문 검사 body 및 assertion 동일. 7bbac5223481362748fa1ff73b62f4b7a0758b25cbf6c9128cf1eeb983846480 7bbac5223481362748fa1ff73b62f4b7a0758b25cbf6c9128cf1eeb983846480 ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(fesa::detail::EvaluateSolidHhtHighLowForceIdentity( mass.Value(), 0, fesa::math_internal::HighLow(epsilon), next, old, -.25, &result)) | EXPECT_EQ(result.original.high, 3.25) | EXPECT_EQ(result.original.low, epsilon) | EXPECT_EQ(result.solved.high, 3.25) | EXPECT_EQ(result.solved.low, epsilon) | EXPECT_EQ(result.defect.high, 0) | EXPECT_EQ(result.metric.high, 0) | ASSERT_TRUE(fesa::detail::EvaluateSolidHhtHighLowForceIdentity( mass.Value(), 0, fesa::math_internal::HighLow(epsilon), next, old, -.25, &result)) | EXPECT_EQ(result.solved.low, 0) | EXPECT_EQ(result.defect.high, epsilon) ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(fesa::detail::EvaluateSolidHhtHighLowForceIdentity( mass.Value(), 0, fesa::math_internal::HighLow(epsilon), next, old, -.25, &result)) | EXPECT_EQ(result.original.high, 3.25) | EXPECT_EQ(result.original.low, epsilon) | EXPECT_EQ(result.solved.high, 3.25) | EXPECT_EQ(result.solved.low, epsilon) | EXPECT_EQ(result.defect.high, 0) | EXPECT_EQ(result.metric.high, 0) | ASSERT_TRUE(fesa::detail::EvaluateSolidHhtHighLowForceIdentity( mass.Value(), 0, fesa::math_internal::HighLow(epsilon), next, old, -.25, &result)) | EXPECT_EQ(result.solved.low, 0) | EXPECT_EQ(result.defect.high, epsilon) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.BackendEnvironmentMutationFailsAndPreservesPairs SolidHhtPairedState.BackendEnvironmentMutationFailsAndPreservesPairs; assertion 14개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.BackendEnvironmentMutationFailsAndPreservesPairs 유지 원문 검사 body 및 assertion 동일. 3f256cc73e3837028a0a56cde57bac0f445e407b546e0ec820c96be62645c8de 3f256cc73e3837028a0a56cde57bac0f445e407b546e0ec820c96be62645c8de "ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(fesa::math_internal::ArithmeticEnvironmentSupported()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_EQ(status.Diagnostics().front().code, ""solid-dynamic-arithmetic-environment"") | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(actual.displacement[0], expected.displacement[0]) | EXPECT_EQ(actual.low.displacement[0], expected.low.displacement[0]) | EXPECT_EQ(actual.acceleration[0], expected.acceleration[0]) | EXPECT_EQ(actual.low.acceleration[0], expected.low.acceleration[0]) | EXPECT_EQ(actual.external_work, expected.external_work) | EXPECT_EQ(actual.low.external_work, expected.low.external_work)" "ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(fesa::math_internal::ArithmeticEnvironmentSupported()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_EQ(status.Diagnostics().front().code, ""solid-dynamic-arithmetic-environment"") | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(actual.displacement[0], expected.displacement[0]) | EXPECT_EQ(actual.low.displacement[0], expected.low.displacement[0]) | EXPECT_EQ(actual.acceleration[0], expected.acceleration[0]) | EXPECT_EQ(actual.low.acceleration[0], expected.low.acceleration[0]) | EXPECT_EQ(actual.external_work, expected.external_work) | EXPECT_EQ(actual.low.external_work, expected.low.external_work)" -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AllConstrainedRetainsPhysicalReactionAndEightPoints SolidHhtDynamics.AllConstrainedRetainsPhysicalReactionAndEightPoints; assertion 9개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AllConstrainedRetainsPhysicalReactionAndEightPoints 유지 원문 검사 body 및 assertion 동일. 9aae6cd617d88f7c8d407f069a1bb691963a5b920d9c6ade7953aac765a05542 9aae6cd617d88f7c8d407f069a1bb691963a5b920d9c6ade7953aac765a05542 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 21U) | EXPECT_EQ(f.displacement.Size(), 24U) | EXPECT_EQ(f.solid_results.size(), 8U) | EXPECT_DOUBLE_EQ(f.reaction[1], -7) | EXPECT_DOUBLE_EQ(f.acceleration[1], 0) | EXPECT_DOUBLE_EQ(f.external_work, 0) | EXPECT_EQ(f.iteration_count, 0U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 21U) | EXPECT_EQ(f.displacement.Size(), 24U) | EXPECT_EQ(f.solid_results.size(), 8U) | EXPECT_DOUBLE_EQ(f.reaction[1], -7) | EXPECT_DOUBLE_EQ(f.acceleration[1], 0) | EXPECT_DOUBLE_EQ(f.external_work, 0) | EXPECT_EQ(f.iteration_count, 0U) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.ActualEndpointsUseDifferentCurvesKnotsInteriorsAndHolds SolidHhtDynamics.ActualEndpointsUseDifferentCurvesKnotsInteriorsAndHolds; assertion 5개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.ActualEndpointsUseDifferentCurvesKnotsInteriorsAndHolds 유지 원문 검사 body 및 assertion 동일. c5e559e653ca89a7bb7004a700e7f2eeff2550e6ceb1f76318567165f97bed7a c5e559e653ca89a7bb7004a700e7f2eeff2550e6ceb1f76318567165f97bed7a ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(f.external_force[0], 2 * a + 3 * b, 1e-14) | EXPECT_DOUBLE_EQ(f.reaction[0], -f.external_force[0]) | EXPECT_DOUBLE_EQ(f.external_force[5], 7) | EXPECT_DOUBLE_EQ(f.time, static_cast(f.increment_index) * .125) ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(f.external_force[0], 2 * a + 3 * b, 1e-14) | EXPECT_DOUBLE_EQ(f.reaction[0], -f.external_force[0]) | EXPECT_DOUBLE_EQ(f.external_force[5], 7) | EXPECT_DOUBLE_EQ(f.time, static_cast(f.increment_index) * .125) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.RampStartsAtZeroAndAuxiliaryAccelerationIsDistinct SolidHhtDynamics.RampStartsAtZeroAndAuxiliaryAccelerationIsDistinct; assertion 10개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.RampStartsAtZeroAndAuxiliaryAccelerationIsDistinct 유지 원문 검사 body 및 assertion 동일. 8806b0f8147101e938132724b2e9fdc8f4a536db7c7d0c03962e17393a021ec9 8806b0f8147101e938132724b2e9fdc8f4a536db7c7d0c03962e17393a021ec9 ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frames.front().acceleration[0], 0) | EXPECT_GT(std::abs(frames[1].acceleration[0] - frames[1].algorithmic_acceleration[0]), 1e-5) | EXPECT_NEAR(f.algorithmic_acceleration[0], .95 * f.acceleration[0] + .05 * old.acceleration[0], 1e-14) | EXPECT_LT(f.iterations.back().update_metric, 1e-12) | EXPECT_LE(f.iterations.back().residual_metric, 1e-10) | EXPECT_DOUBLE_EQ(f.displacement[i], 0) | EXPECT_DOUBLE_EQ(f.velocity[i], 0) | EXPECT_DOUBLE_EQ(f.acceleration[i], 0) | EXPECT_DOUBLE_EQ(f.algorithmic_acceleration[i], 0) ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frames.front().acceleration[0], 0) | EXPECT_GT(std::abs(frames[1].acceleration[0] - frames[1].algorithmic_acceleration[0]), 1e-5) | EXPECT_NEAR(f.algorithmic_acceleration[0], .95 * f.acceleration[0] + .05 * old.acceleration[0], 1e-14) | EXPECT_LT(f.iterations.back().update_metric, 1e-12) | EXPECT_LE(f.iterations.back().residual_metric, 1e-10) | EXPECT_DOUBLE_EQ(f.displacement[i], 0) | EXPECT_DOUBLE_EQ(f.velocity[i], 0) | EXPECT_DOUBLE_EQ(f.acceleration[i], 0) | EXPECT_DOUBLE_EQ(f.algorithmic_acceleration[i], 0) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.OneFreeTranslationHasAnalyticLumpedInertialSupportReactions SolidHhtDynamics.OneFreeTranslationHasAnalyticLumpedInertialSupportReactions; assertion 4개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.OneFreeTranslationHasAnalyticLumpedInertialSupportReactions 유지 원문 검사 body 및 assertion 동일. 1c002e47b63b342b26d3651c49bb19e06ac80d6f2744f2f435c9190103f3d797 1c002e47b63b342b26d3651c49bb19e06ac80d6f2744f2f435c9190103f3d797 ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(f.reaction[3 * b + c], reaction, roundoff * scale) | EXPECT_NEAR(weighted, endpoint_identity, roundoff * scale) | EXPECT_NEAR(f.iterations.back().weighted_residual_numerator, std::abs(weighted), roundoff * scale) ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(f.reaction[3 * b + c], reaction, roundoff * scale) | EXPECT_NEAR(weighted, endpoint_identity, roundoff * scale) | EXPECT_NEAR(f.iterations.back().weighted_residual_numerator, std::abs(weighted), roundoff * scale) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.BackendNanNonconvergenceAndInversionPreserveAcceptedInitial SolidHhtDynamics.BackendNanNonconvergenceAndInversionPreserveAcceptedInitial; assertion 21개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.BackendNanNonconvergenceAndInversionPreserveAcceptedInitial 유지 원문 검사 body 및 assertion 동일. 994315fd5e36287233e88949fa06cdd1a82a3df567118949362421a330549049 994315fd5e36287233e88949fa06cdd1a82a3df567118949362421a330549049 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_EQ(state.Value().CommittedState().increment_index, 0U) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], 0) | EXPECT_NEAR(state.Value().CommittedState().acceleration[0], .01 / .25, 1e-14) | ASSERT_FALSE(state.Value().IterationRecords().empty()) | EXPECT_EQ(state.Value().IterationRecords().back().stage, ""failed"") | EXPECT_FALSE(state.Value().IterationRecords().back().failure_code.empty()) | EXPECT_EQ(failed.evidence.iteration_index, 100U) | EXPECT_EQ(failed.failure_code, ""solid-dynamic-nonconvergence"") | EXPECT_FALSE(failed.failure_force_sum.has_value()) | EXPECT_NEAR(failed.evidence.worst_force_terms[1], expected_inertia, 32 * std::numeric_limits::epsilon() * std::abs(expected_inertia)) | EXPECT_DOUBLE_EQ(failed.evidence.worst_force_terms[2], 0) | EXPECT_DOUBLE_EQ(failed.evidence.worst_force_terms[3], .01) | EXPECT_FALSE(failed.evidence.residual_pass) | EXPECT_TRUE(failed.evidence.update_pass) | EXPECT_TRUE(failed.evidence.correction_pass) | EXPECT_TRUE(std::isfinite(value)) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().low.displacement[i], 0)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_EQ(state.Value().CommittedState().increment_index, 0U) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], 0) | EXPECT_NEAR(state.Value().CommittedState().acceleration[0], .01 / .25, 1e-14) | ASSERT_FALSE(state.Value().IterationRecords().empty()) | EXPECT_EQ(state.Value().IterationRecords().back().stage, ""failed"") | EXPECT_FALSE(state.Value().IterationRecords().back().failure_code.empty()) | EXPECT_EQ(failed.evidence.iteration_index, 100U) | EXPECT_EQ(failed.failure_code, ""solid-dynamic-nonconvergence"") | EXPECT_FALSE(failed.failure_force_sum.has_value()) | EXPECT_NEAR(failed.evidence.worst_force_terms[1], expected_inertia, 32 * std::numeric_limits::epsilon() * std::abs(expected_inertia)) | EXPECT_DOUBLE_EQ(failed.evidence.worst_force_terms[2], 0) | EXPECT_DOUBLE_EQ(failed.evidence.worst_force_terms[3], .01) | EXPECT_FALSE(failed.evidence.residual_pass) | EXPECT_TRUE(failed.evidence.update_pass) | EXPECT_TRUE(failed.evidence.correction_pass) | EXPECT_TRUE(std::isfinite(value)) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().low.displacement[i], 0)" -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.LateBackendFailurePreservesActualCommittedMotionAndHistory SolidHhtDynamics.LateBackendFailurePreservesActualCommittedMotionAndHistory; assertion 11개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.LateBackendFailurePreservesActualCommittedMotionAndHistory 유지 원문 검사 body 및 assertion 동일. 0e04bfa810734cd17fe3ed9b0ce99f803e24ecf3224cfee93f44df7f79d2f3b9 0e04bfa810734cd17fe3ed9b0ce99f803e24ecf3224cfee93f44df7f79d2f3b9 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(state.Value().CommittedState().increment_index, 1U) | EXPECT_GT(state.Value().CommittedState().displacement[0], 0) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], committed.displacement[0]) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().strain_energy, committed.strain_energy) | EXPECT_EQ(state.Value().CommittedState().solid_results[0].cauchy_stress, committed.solid_results[0].cauchy_stress) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(state.Value().CommittedState().increment_index, 1U) | EXPECT_GT(state.Value().CommittedState().displacement[0], 0) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], committed.displacement[0]) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().strain_energy, committed.strain_energy) | EXPECT_EQ(state.Value().CommittedState().solid_results[0].cauchy_stress, committed.solid_results[0].cauchy_stress) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.NonfiniteWeightedEvidenceCannotContaminateAcceptedHistory SolidHhtDynamics.NonfiniteWeightedEvidenceCannotContaminateAcceptedHistory; assertion 7개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.NonfiniteWeightedEvidenceCannotContaminateAcceptedHistory 유지 원문 검사 body 및 assertion 동일. 6e0271bb8ebda6f0a0c5a3a7a2287c385827fd8d17d18652b2208b204bf6ab8e 6e0271bb8ebda6f0a0c5a3a7a2287c385827fd8d17d18652b2208b204bf6ab8e ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(fesa::SolidHhtDynamicProcedureExecutor(parallel, mass, tangent) .ExecuteInto(domain.Value(), state.Value()) .IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(state.Value().CommittedState().solid_results[0].cauchy_stress, committed.solid_results[0].cauchy_stress) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], committed.displacement[0]) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(fesa::SolidHhtDynamicProcedureExecutor(parallel, mass, tangent) .ExecuteInto(domain.Value(), state.Value()) .IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(state.Value().CommittedState().solid_results[0].cauchy_stress, committed.solid_results[0].cauchy_stress) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], committed.displacement[0]) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AlphaZeroLinearUnforcedTailConservesEnergyAndTrapezoidWork SolidHhtDynamics.AlphaZeroLinearUnforcedTailConservesEnergyAndTrapezoidWork; assertion 6개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AlphaZeroLinearUnforcedTailConservesEnergyAndTrapezoidWork 유지 원문 검사 body 및 assertion 동일. dd866c138e709fdc9aa58b3b2e87b3781004ecb72d2991144c208d93d71b1ea8 dd866c138e709fdc9aa58b3b2e87b3781004ecb72d2991144c208d93d71b1ea8 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(status.IsOk()) | ASSERT_GT(tail, 1e-7) | EXPECT_NEAR(frames[n].external_work, work, 1e-16) | EXPECT_NEAR(frames[n].energy_balance_error, 0, 2e-12 * tail) | EXPECT_NEAR(frames[n].kinetic_energy + frames[n].strain_energy, tail, 2e-12 * tail) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(status.IsOk()) | ASSERT_GT(tail, 1e-7) | EXPECT_NEAR(frames[n].external_work, work, 1e-16) | EXPECT_NEAR(frames[n].energy_balance_error, 0, 2e-12 * tail) | EXPECT_NEAR(frames[n].kinetic_energy + frames[n].strain_energy, tail, 2e-12 * tail) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.InitialMassBackendFailuresPreserveEmptyHistory SolidHhtDynamics.InitialMassBackendFailuresPreserveEmptyHistory; assertion 12개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.InitialMassBackendFailuresPreserveEmptyHistory 유지 원문 검사 body 및 assertion 동일. e05bf94288c50cbcb48e82d010333756d3468e53ca60fd91f161a749ed0f1ffc e05bf94288c50cbcb48e82d010333756d3468e53ca60fd91f161a749ed0f1ffc "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue()) | ASSERT_EQ(records.size(), factorization ? 1U : 2U) | EXPECT_EQ(records.front().stage, ""initial-mass"") | EXPECT_EQ(records.front().outcome, ""residual-refinement"") | EXPECT_EQ(records.front().evidence.iteration_index, 0U) | EXPECT_FALSE(records.front().evidence.residual_pass) | EXPECT_EQ(records.back().stage, ""failed"") | EXPECT_EQ(records.back().failure_code, ""injected-backend"")" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue()) | ASSERT_EQ(records.size(), factorization ? 1U : 2U) | EXPECT_EQ(records.front().stage, ""initial-mass"") | EXPECT_EQ(records.front().outcome, ""residual-refinement"") | EXPECT_EQ(records.front().evidence.iteration_index, 0U) | EXPECT_FALSE(records.front().evidence.residual_pass) | EXPECT_EQ(records.back().stage, ""failed"") | EXPECT_EQ(records.back().failure_code, ""injected-backend"")" -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AllFreeNoForceIsExactlyAtRestForLinearAndTl SolidHhtDynamics.AllFreeNoForceIsExactlyAtRestForLinearAndTl; assertion 10개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AllFreeNoForceIsExactlyAtRestForLinearAndTl 유지 원문 검사 body 및 assertion 동일. d09d84966fea765d732e231ff5dde9c2e8a649cbd91c3a946e2020274e398ddd d09d84966fea765d732e231ff5dde9c2e8a649cbd91c3a946e2020274e398ddd ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0) | EXPECT_DOUBLE_EQ(frame.strain_energy, 0) | EXPECT_DOUBLE_EQ(frame.displacement[i], 0) | EXPECT_DOUBLE_EQ(frame.velocity[i], 0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0) | EXPECT_DOUBLE_EQ(frame.residual[i], 0) | EXPECT_DOUBLE_EQ(frame.reaction[i], 0) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0) | EXPECT_DOUBLE_EQ(frame.strain_energy, 0) | EXPECT_DOUBLE_EQ(frame.displacement[i], 0) | EXPECT_DOUBLE_EQ(frame.velocity[i], 0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0) | EXPECT_DOUBLE_EQ(frame.residual[i], 0) | EXPECT_DOUBLE_EQ(frame.reaction[i], 0) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtSourceSmoke.ReadOnlyOriginalLinearAcceptsAll101Endpoints SolidHhtSourceSmoke.ReadOnlyOriginalLinearAcceptsAll101Endpoints; assertion 0개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtSourceSmoke.ReadOnlyOriginalLinearAcceptsAll101Endpoints 유지 원문 검사 body 및 assertion 동일. 5391fef4221914378a7f90aee66f4b5dfdce359f6f20a5206103e3df7bc40d95 5391fef4221914378a7f90aee66f4b5dfdce359f6f20a5206103e3df7bc40d95 해당 없음 해당 없음 -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtSourceSmoke.ReadOnlyOriginalNonlinearAcceptsAll101Endpoints SolidHhtSourceSmoke.ReadOnlyOriginalNonlinearAcceptsAll101Endpoints; assertion 0개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtSourceSmoke.ReadOnlyOriginalNonlinearAcceptsAll101Endpoints 유지 원문 검사 body 및 assertion 동일. 24b67b4ab019d0f53319e5523d3aa2893debf73e13edf2dab5f27889e9547dfd 24b67b4ab019d0f53319e5523d3aa2893debf73e13edf2dab5f27889e9547dfd 해당 없음 해당 없음 -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.WeightedIdentityRetainsNonzeroOldResidualAndEffectiveTangent SolidHhtDynamics.WeightedIdentityRetainsNonzeroOldResidualAndEffectiveTangent; assertion 8개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.WeightedIdentityRetainsNonzeroOldResidualAndEffectiveTangent 유지 원문 검사 body 및 assertion 동일. f7634aeb2f9bf5b13387abd6ef3e10c9f2f0024741dbc34a156e27668892ce91 f7634aeb2f9bf5b13387abd6ef3e10c9f2f0024741dbc34a156e27668892ce91 ASSERT_TRUE(mass.HasValue()) | ASSERT_NE(old.residual[0], 0) | ASSERT_NE(old.residual[1], 0) | EXPECT_TRUE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), i, MA[i], next, old, alpha, &identities[i])) | EXPECT_LE(identities[i].metric, 1e-12) | EXPECT_NEAR( identities[i].original, identities[i].solved, 512 * std::numeric_limits::epsilon() * identities[i].scale) | EXPECT_GT( std::abs(identities[i].solved - (1 + alpha) * next.residual[i]), .01) | EXPECT_NEAR((right[i].solved - left[i].solved) / (2 * epsilon), tangent_direction[i], 1e-9 * std::abs(tangent_direction[i])) ASSERT_TRUE(mass.HasValue()) | ASSERT_NE(old.residual[0], 0) | ASSERT_NE(old.residual[1], 0) | EXPECT_TRUE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), i, MA[i], next, old, alpha, &identities[i])) | EXPECT_LE(identities[i].metric, 1e-12) | EXPECT_NEAR( identities[i].original, identities[i].solved, 512 * std::numeric_limits::epsilon() * identities[i].scale) | EXPECT_GT( std::abs(identities[i].solved - (1 + alpha) * next.residual[i]), .01) | EXPECT_NEAR((right[i].solved - left[i].solved) / (2 * epsilon), tangent_direction[i], 1e-9 * std::abs(tangent_direction[i])) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.WeightedIdentityRejectsNonfiniteAndOverflowBeforeNormReduction SolidHhtDynamics.WeightedIdentityRejectsNonfiniteAndOverflowBeforeNormReduction; assertion 8개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.WeightedIdentityRejectsNonfiniteAndOverflowBeforeNormReduction 유지 원문 검사 body 및 assertion 동일. 21767e2f26a9783ef8b3ea4897f8543314f9353f4d55800634852db6ca5e9b2a 21767e2f26a9783ef8b3ea4897f8543314f9353f4d55800634852db6ca5e9b2a ASSERT_TRUE(mass.HasValue()) | EXPECT_TRUE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) | EXPECT_EQ(identity.scale, 0) | EXPECT_EQ(identity.metric, 0) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, invalid, next, old, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, bad, previous, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) ASSERT_TRUE(mass.HasValue()) | EXPECT_TRUE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) | EXPECT_EQ(identity.scale, 0) | EXPECT_EQ(identity.metric, 0) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, invalid, next, old, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, bad, previous, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.FullFreeNewtonRecoversAllComponentsAfterCoupledTrialPerturbation SolidHhtDynamics.FullFreeNewtonRecoversAllComponentsAfterCoupledTrialPerturbation; assertion 8개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.FullFreeNewtonRecoversAllComponentsAfterCoupledTrialPerturbation 유지 원문 검사 body 및 assertion 동일. 9e1a1f350b3a8da815127d3678f269e8701013a5e689bab8a5a1c4dc5e965a41 9e1a1f350b3a8da815127d3678f269e8701013a5e689bab8a5a1c4dc5e965a41 ASSERT_TRUE(domain.HasValue()) | EXPECT_TRUE(tangent.kicked) | EXPECT_TRUE(tangent.full_size_all_calls) | EXPECT_TRUE(tangent.solved_after_kick) | ASSERT_TRUE(status.IsOk()) | EXPECT_LE(frame.iterations.back().residual_metric, 1e-10) | EXPECT_LE(frame.iterations.back().update_metric, 1e-12) | EXPECT_NEAR(frame.displacement[3 * n], .5 * frame.time * frame.time, roundoff * .5 * frame.time * frame.time) ASSERT_TRUE(domain.HasValue()) | EXPECT_TRUE(tangent.kicked) | EXPECT_TRUE(tangent.full_size_all_calls) | EXPECT_TRUE(tangent.solved_after_kick) | ASSERT_TRUE(status.IsOk()) | EXPECT_LE(frame.iterations.back().residual_metric, 1e-10) | EXPECT_LE(frame.iterations.back().update_metric, 1e-12) | EXPECT_NEAR(frame.displacement[3 * n], .5 * frame.time * frame.time, roundoff * .5 * frame.time * frame.time) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.RepresentableNeighborUsesHeldCouplingAndOriginalFullForceMetric SolidHhtFloat64History.RepresentableNeighborUsesHeldCouplingAndOriginalFullForceMetric; assertion 24개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.RepresentableNeighborUsesHeldCouplingAndOriginalFullForceMetric 유지 원문 검사 body 및 assertion 동일. edbbaae61828136237c20662167cca044b5992c324f9989e801d85b6ae72343a edbbaae61828136237c20662167cca044b5992c324f9989e801d85b6ae72343a ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(tangent.HasValue()) | ASSERT_GT(initial, 1e-10) | ASSERT_EQ(frame.residual[1], 0) | ASSERT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0, 1}, frame, 1, -.05, .275625, &selected)) | ASSERT_TRUE(selected.found) | EXPECT_EQ(selected.full_dof, 1U) | EXPECT_EQ(selected.displacement, std::nextafter(.5, -std::numeric_limits::infinity())) | EXPECT_EQ(selected.delta, selected.displacement - frame.displacement[1]) | EXPECT_LT(selected.predicted_metric, initial) | EXPECT_LE(selected.predicted_metric, 1e-10) | EXPECT_EQ(selected.predicted_metric, exact_metric) | ASSERT_TRUE(alternative_tangent.HasValue()) | ASSERT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), alternative_tangent.Value(), {0, 1}, frame, 1, -.05, .275625, &selected, &ranked)) | ASSERT_EQ(ranked.size(), 2U) | EXPECT_EQ(ranked[0].full_dof, 0U) | EXPECT_EQ(ranked[1].full_dof, 1U) | EXPECT_LT(ranked[0].predicted_metric, ranked[1].predicted_metric) | EXPECT_LT(ranked[1].predicted_metric, initial) | ASSERT_TRUE(accepted.HasValue()) | EXPECT_TRUE(accepted.Value()) | EXPECT_EQ(tried, (std::vector{0, 1})) | EXPECT_FALSE(invalid.HasValue()) | EXPECT_EQ(tried, (std::vector{0})) ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(tangent.HasValue()) | ASSERT_GT(initial, 1e-10) | ASSERT_EQ(frame.residual[1], 0) | ASSERT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0, 1}, frame, 1, -.05, .275625, &selected)) | ASSERT_TRUE(selected.found) | EXPECT_EQ(selected.full_dof, 1U) | EXPECT_EQ(selected.displacement, std::nextafter(.5, -std::numeric_limits::infinity())) | EXPECT_EQ(selected.delta, selected.displacement - frame.displacement[1]) | EXPECT_LT(selected.predicted_metric, initial) | EXPECT_LE(selected.predicted_metric, 1e-10) | EXPECT_EQ(selected.predicted_metric, exact_metric) | ASSERT_TRUE(alternative_tangent.HasValue()) | ASSERT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), alternative_tangent.Value(), {0, 1}, frame, 1, -.05, .275625, &selected, &ranked)) | ASSERT_EQ(ranked.size(), 2U) | EXPECT_EQ(ranked[0].full_dof, 0U) | EXPECT_EQ(ranked[1].full_dof, 1U) | EXPECT_LT(ranked[0].predicted_metric, ranked[1].predicted_metric) | EXPECT_LT(ranked[1].predicted_metric, initial) | ASSERT_TRUE(accepted.HasValue()) | EXPECT_TRUE(accepted.Value()) | EXPECT_EQ(tried, (std::vector{0, 1})) | EXPECT_FALSE(invalid.HasValue()) | EXPECT_EQ(tried, (std::vector{0})) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.RepresentableNeighborKeepsExactZeroAndRejectsInvalidArithmetic SolidHhtDynamics.RepresentableNeighborKeepsExactZeroAndRejectsInvalidArithmetic; assertion 6개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.RepresentableNeighborKeepsExactZeroAndRejectsInvalidArithmetic 유지 원문 검사 body 및 assertion 동일. d9613a73dba9cc37e8a8f2190ca794fcacc17920cf0fba558508b576429d4d31 d9613a73dba9cc37e8a8f2190ca794fcacc17920cf0fba558508b576429d4d31 ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(tangent.HasValue()) | EXPECT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, frame, .1, -.05, .275625, &selected)) | EXPECT_FALSE(selected.found) | EXPECT_FALSE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, bad, .1, -.05, .275625, &selected)) | EXPECT_FALSE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, frame, 0, -.05, .275625, &selected)) ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(tangent.HasValue()) | EXPECT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, frame, .1, -.05, .275625, &selected)) | EXPECT_FALSE(selected.found) | EXPECT_FALSE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, bad, .1, -.05, .275625, &selected)) | EXPECT_FALSE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, frame, 0, -.05, .275625, &selected)) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.ActualNewtonStallAtLowHalfOfTwoCycleTriesFallback SolidHhtFloat64History.ActualNewtonStallAtLowHalfOfTwoCycleTriesFallback; assertion 10개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.ActualNewtonStallAtLowHalfOfTwoCycleTriesFallback 유지 원문 검사 body 및 assertion 동일. 704d7a705643dd225528629f4b721162a3c853dd1a41efd579935737b8adeb80 704d7a705643dd225528629f4b721162a3c853dd1a41efd579935737b8adeb80 "ASSERT_LT(current_metric, previous_metric) | ASSERT_TRUE(history.Capture(previous, mask, metrics, 0, false)) | ASSERT_TRUE(history.Capture(current, mask, metrics, 1, false)) | EXPECT_TRUE(history.Match(previous, mask, metrics, false, &repeat)) | ASSERT_TRUE(selected.HasValue()) | EXPECT_TRUE(selected.Value()) | EXPECT_EQ(evaluated, (std::vector{""complete-newton"", ""actual-neighbor""})) | ASSERT_TRUE(productive.HasValue()) | EXPECT_FALSE(productive.Value()) | EXPECT_EQ(evaluated, (std::vector{""complete-newton""}))" "ASSERT_LT(current_metric, previous_metric) | ASSERT_TRUE(history.Capture(previous, mask, metrics, 0, false)) | ASSERT_TRUE(history.Capture(current, mask, metrics, 1, false)) | EXPECT_TRUE(history.Match(previous, mask, metrics, false, &repeat)) | ASSERT_TRUE(selected.HasValue()) | EXPECT_TRUE(selected.Value()) | EXPECT_EQ(evaluated, (std::vector{""complete-newton"", ""actual-neighbor""})) | ASSERT_TRUE(productive.HasValue()) | EXPECT_FALSE(productive.Value()) | EXPECT_EQ(evaluated, (std::vector{""complete-newton""}))" -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.ExactNewtonLoopHistoryDetectsThreeStateRecurrence SolidHhtFloat64History.ExactNewtonLoopHistoryDetectsThreeStateRecurrence; assertion 28개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.ExactNewtonLoopHistoryDetectsThreeStateRecurrence 유지 원문 검사 body 및 assertion 동일. 0d255c9f25e86d515bd140a91ed3a0af1f996156162df0c81c8e8cb340b2cd78 0d255c9f25e86d515bd140a91ed3a0af1f996156162df0c81c8e8cb340b2cd78 ASSERT_TRUE(history.Capture(first, first_mask, first_metrics, 4, false)) | ASSERT_TRUE(history.Capture(second, second_mask, second_metrics, 5, false)) | ASSERT_TRUE(history.Capture(third, first_mask, second_metrics, 6, false)) | EXPECT_EQ(history.Size(), 3U) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_TRUE(e.repeat) | EXPECT_EQ(e.matched_entry_iteration, 4U) | EXPECT_EQ(e.history_entry_count, 3U) | EXPECT_EQ(e.changed_translations, 0U) | EXPECT_EQ(e.changed_holding_mask, 0U) | EXPECT_EQ(e.changed_correction_metrics, 0U) | ASSERT_TRUE(history.Match(first, second_mask, first_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, different_metrics, false, &e)) | EXPECT_TRUE( e.repeat) | EXPECT_EQ(e.changed_correction_metrics, 1U) | ASSERT_TRUE(history.Match(first, first_mask, failing_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, true, &e)) | EXPECT_FALSE(e.repeat) | EXPECT_FALSE( history.Match(fesa::Vector(2), first_mask, first_metrics, false, &e)) | EXPECT_FALSE(history.Match(first, {false}, first_metrics, false, &e)) | EXPECT_FALSE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_FALSE(history.Capture(first, first_mask, first_metrics, 7, false)) | EXPECT_FALSE(history.Match(first, first_mask, bad_metrics, false, &e)) | EXPECT_FALSE(history.Capture(first, first_mask, bad_metrics, 7, false)) ASSERT_TRUE(history.Capture(first, first_mask, first_metrics, 4, false)) | ASSERT_TRUE(history.Capture(second, second_mask, second_metrics, 5, false)) | ASSERT_TRUE(history.Capture(third, first_mask, second_metrics, 6, false)) | EXPECT_EQ(history.Size(), 3U) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_TRUE(e.repeat) | EXPECT_EQ(e.matched_entry_iteration, 4U) | EXPECT_EQ(e.history_entry_count, 3U) | EXPECT_EQ(e.changed_translations, 0U) | EXPECT_EQ(e.changed_holding_mask, 0U) | EXPECT_EQ(e.changed_correction_metrics, 0U) | ASSERT_TRUE(history.Match(first, second_mask, first_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, different_metrics, false, &e)) | EXPECT_TRUE( e.repeat) | EXPECT_EQ(e.changed_correction_metrics, 1U) | ASSERT_TRUE(history.Match(first, first_mask, failing_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, true, &e)) | EXPECT_FALSE(e.repeat) | EXPECT_FALSE( history.Match(fesa::Vector(2), first_mask, first_metrics, false, &e)) | EXPECT_FALSE(history.Match(first, {false}, first_metrics, false, &e)) | EXPECT_FALSE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_FALSE(history.Capture(first, first_mask, first_metrics, 7, false)) | EXPECT_FALSE(history.Match(first, first_mask, bad_metrics, false, &e)) | EXPECT_FALSE(history.Capture(first, first_mask, bad_metrics, 7, false)) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.EquivalentFailedNewtonEntrySurvivesRepresentableMove SolidHhtFloat64History.EquivalentFailedNewtonEntrySurvivesRepresentableMove; assertion 21개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.EquivalentFailedNewtonEntrySurvivesRepresentableMove 유지 원문 검사 body 및 assertion 동일. 6b2aeb48d13d507d18a5dd85677f1fbc3204be7f109d4237fb3cae32ca59e4e1 6b2aeb48d13d507d18a5dd85677f1fbc3204be7f109d4237fb3cae32ca59e4e1 "ASSERT_TRUE(history.Capture(failed, mask, correction, 23, true)) | EXPECT_EQ(history.Size(), 0U) | ASSERT_TRUE(history.Capture(failed, mask, large, 23, false)) | EXPECT_EQ(history.Size(), 0U) | ASSERT_TRUE(history.Capture(failed, mask, correction, 23, false)) | EXPECT_TRUE(history.Match(failed, mask, correction, false, &e)) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(first.Value()) | EXPECT_NE(actual[0], failed[0]) | EXPECT_TRUE(history.Match(failed, mask, new_metrics, false, &e)) | EXPECT_TRUE(e.repeat) | EXPECT_EQ(e.matched_entry_iteration, 23U) | ASSERT_TRUE(second.HasValue()) | EXPECT_TRUE(second.Value()) | EXPECT_EQ(applied, (std::vector{""accepted-ulp"", ""returning-newton-evaluated"", ""another-accepted-ulp""})) | ASSERT_TRUE(history.Match(fresh, mask, new_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(failed, {true, false}, new_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(failed, mask, new_metrics, true, &e)) | EXPECT_FALSE(e.repeat)" "ASSERT_TRUE(history.Capture(failed, mask, correction, 23, true)) | EXPECT_EQ(history.Size(), 0U) | ASSERT_TRUE(history.Capture(failed, mask, large, 23, false)) | EXPECT_EQ(history.Size(), 0U) | ASSERT_TRUE(history.Capture(failed, mask, correction, 23, false)) | EXPECT_TRUE(history.Match(failed, mask, correction, false, &e)) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(first.Value()) | EXPECT_NE(actual[0], failed[0]) | EXPECT_TRUE(history.Match(failed, mask, new_metrics, false, &e)) | EXPECT_TRUE(e.repeat) | EXPECT_EQ(e.matched_entry_iteration, 23U) | ASSERT_TRUE(second.HasValue()) | EXPECT_TRUE(second.Value()) | EXPECT_EQ(applied, (std::vector{""accepted-ulp"", ""returning-newton-evaluated"", ""another-accepted-ulp""})) | ASSERT_TRUE(history.Match(fresh, mask, new_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(failed, {true, false}, new_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(failed, mask, new_metrics, true, &e)) | EXPECT_FALSE(e.repeat)" -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.UnsupportedPairedProductsPreserveEmptyHistory SolidHhtDynamics.UnsupportedPairedProductsPreserveEmptyHistory; assertion 9개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.UnsupportedPairedProductsPreserveEmptyHistory 유지 원문 검사 body 및 assertion 동일. ee1b43798dba3932ce708b5da15e9939ca00a2600a213127e00db3b0a0fdfd03 ee1b43798dba3932ce708b5da15e9939ca00a2600a213127e00db3b0a0fdfd03 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_NE(status.Diagnostics().front().message.find(""supported""), std::string::npos) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue())" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_NE(status.Diagnostics().front().message.find(""supported""), std::string::npos) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue())" -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.FailureShadowRecoversCancellationAndRejectsOverflow SolidHhtDynamics.FailureShadowRecoversCancellationAndRejectsOverflow; assertion 8개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.FailureShadowRecoversCancellationAndRejectsOverflow 유지 원문 검사 body 및 assertion 동일. e0a5f34b9c1b33e66905824b7b4c1a4a0987200be7dc62c0e9f98a1ff767e22b e0a5f34b9c1b33e66905824b7b4c1a4a0987200be7dc62c0e9f98a1ff767e22b ASSERT_TRUE(fesa::detail::AccumulateSolidHhtForceShadow( term, 0, &sum, &correction, &absolute_sum)) | EXPECT_EQ(sum, 0) | EXPECT_EQ(sum + correction, 1) | ASSERT_TRUE(fesa::detail::AccumulateSolidHhtForceShadow( 1e308, 0, &sum, &correction, &absolute_sum)) | EXPECT_FALSE(fesa::detail::AccumulateSolidHhtForceShadow( -1e308, 0, &sum, &correction, &absolute_sum)) | EXPECT_EQ(sum, 1e308) | EXPECT_EQ(absolute_sum, 1e308) | EXPECT_FALSE(fesa::detail::AccumulateSolidHhtForceShadow( 0, std::numeric_limits::quiet_NaN(), &sum, &correction, &absolute_sum)) ASSERT_TRUE(fesa::detail::AccumulateSolidHhtForceShadow( term, 0, &sum, &correction, &absolute_sum)) | EXPECT_EQ(sum, 0) | EXPECT_EQ(sum + correction, 1) | ASSERT_TRUE(fesa::detail::AccumulateSolidHhtForceShadow( 1e308, 0, &sum, &correction, &absolute_sum)) | EXPECT_FALSE(fesa::detail::AccumulateSolidHhtForceShadow( -1e308, 0, &sum, &correction, &absolute_sum)) | EXPECT_EQ(sum, 1e308) | EXPECT_EQ(absolute_sum, 1e308) | EXPECT_FALSE(fesa::detail::AccumulateSolidHhtForceShadow( 0, std::numeric_limits::quiet_NaN(), &sum, &correction, &absolute_sum)) -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp support@1-153 helper/oracle/fixture/include/static assertion 구간: RunDynamics, Injected, ControlledTangent, FailedMass, OneFree, namespace, PairedUniformInitial tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 233de46ebb5bd11cb643df1a23a3dd168545dc31c41cb3f07b10e23592debb5e 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp support@377-446 helper/oracle/fixture/include/static assertion 구간: RestoreArithmeticEnvironment, MutateArithmeticEnvironment, defined, EnvironmentMass, EnvironmentTangent tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b2d00fc08e11c3ce43e06b98f3dae891caf968c4b4fa6bd29a53bdab50fb2004 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp support@856-977 helper/oracle/fixture/include/static assertion 구간: CheckOriginalSourceDeck, if, for tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3246a745bf72b60f32cde913fdf1d843b9baa70e5c6d6a3887a9d41f9bbbdf45 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2973549ac31485ce1ab52ad5dc69ca0e8790f437361cf696f53e4bac0b9c627c 2973549ac31485ce1ab52ad5dc69ca0e8790f437361cf696f53e4bac0b9c627c 해당 없음 해당 없음 -Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.PairedSerialAndTbbPreserveEveryLowComponent SolidHhtTemporal.PairedSerialAndTbbPreserveEveryLowComponent; assertion 0개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.PairedSerialAndTbbPreserveEveryLowComponent 유지 원문 검사 body 및 assertion 동일. 925f400f0ca59d4e2137357ae92f2a0dd2d7509f13b020d8976c51c5aca4650c 925f400f0ca59d4e2137357ae92f2a0dd2d7509f13b020d8976c51c5aca4650c 해당 없음 해당 없음 -Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.FreeConstantForceHasAnalyticalInitialAcceleration SolidHhtTemporal.FreeConstantForceHasAnalyticalInitialAcceleration; assertion 4개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.FreeConstantForceHasAnalyticalInitialAcceleration 유지 원문 검사 body 및 assertion 동일. cb0a64053e82c3ccc5536f4e9436ad00984a15283b69f2f32cad33eb3f89713f cb0a64053e82c3ccc5536f4e9436ad00984a15283b69f2f32cad33eb3f89713f ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(initial.acceleration[3 * node], 1, 1e-13) | EXPECT_DOUBLE_EQ(initial.displacement[3 * node], 0) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(initial.acceleration[3 * node], 1, 1e-13) | EXPECT_DOUBLE_EQ(initial.displacement[3 * node], 0) -Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.AllFreeUniformForceRetainsExactRigidTranslationBehavior SolidHhtTemporal.AllFreeUniformForceRetainsExactRigidTranslationBehavior; assertion 9개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.AllFreeUniformForceRetainsExactRigidTranslationBehavior 유지 원문 검사 body 및 assertion 동일. 8f852ae83f87b923ddb98e6b8def6326dadb54b8a8e7f239ca53f21cb5740be0 8f852ae83f87b923ddb98e6b8def6326dadb54b8a8e7f239ca53f21cb5740be0 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(std::any_of( state.Value().IterationRecords().begin(), state.Value().IterationRecords().end(), [](const auto& record) { return record.outcome == ""paired-candidate""; })) | EXPECT_NEAR(f.displacement[3 * n], .5 * f.time * f.time, roundoff * .5 * f.time * f.time) | EXPECT_NEAR(f.velocity[3 * n], f.time, roundoff * f.time) | EXPECT_NEAR(f.acceleration[3 * n], 1, roundoff) | EXPECT_NEAR(f.displacement[3 * n + c], 0, roundoff * .5 * f.time * f.time) | EXPECT_NEAR(f.velocity[3 * n + c], 0, roundoff * f.time) | EXPECT_NEAR(f.acceleration[3 * n + c], 0, roundoff)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(std::any_of( state.Value().IterationRecords().begin(), state.Value().IterationRecords().end(), [](const auto& record) { return record.outcome == ""paired-candidate""; })) | EXPECT_NEAR(f.displacement[3 * n], .5 * f.time * f.time, roundoff * .5 * f.time * f.time) | EXPECT_NEAR(f.velocity[3 * n], f.time, roundoff * f.time) | EXPECT_NEAR(f.acceleration[3 * n], 1, roundoff) | EXPECT_NEAR(f.displacement[3 * n + c], 0, roundoff * .5 * f.time * f.time) | EXPECT_NEAR(f.velocity[3 * n + c], 0, roundoff * f.time) | EXPECT_NEAR(f.acceleration[3 * n + c], 0, roundoff)" -Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.PairedNewtonKeepsAllOriginalComponentsAcrossAxesAndScales SolidHhtTemporal.PairedNewtonKeepsAllOriginalComponentsAcrossAxesAndScales; assertion 10개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.PairedNewtonKeepsAllOriginalComponentsAcrossAxesAndScales 유지 원문 검사 body 및 assertion 동일. 7652c6a7c34e2a7cb0a270e47e8f0e15059187b39635ba1980ddbfac049e0764 7652c6a7c34e2a7cb0a270e47e8f0e15059187b39635ba1980ddbfac049e0764 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(status.IsOk()) | EXPECT_LE(frame.iterations.back().residual_metric, 1e-10) | EXPECT_LE(frame.iterations.back().update_metric, 1e-12) | EXPECT_NEAR(frame.displacement[3 * node + c], .5 * a * frame.time * frame.time, roundoff * .5 * acceleration * frame.time * frame.time) | EXPECT_NEAR(frame.velocity[3 * node + c], a * frame.time, roundoff * acceleration * frame.time) | EXPECT_NEAR(frame.acceleration[3 * node + c], a, roundoff * acceleration) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(status.IsOk()) | EXPECT_LE(frame.iterations.back().residual_metric, 1e-10) | EXPECT_LE(frame.iterations.back().update_metric, 1e-12) | EXPECT_NEAR(frame.displacement[3 * node + c], .5 * a * frame.time * frame.time, roundoff * .5 * acceleration * frame.time * frame.time) | EXPECT_NEAR(frame.velocity[3 * node + c], a * frame.time, roundoff * acceleration * frame.time) | EXPECT_NEAR(frame.acceleration[3 * node + c], a, roundoff * acceleration) -Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.ActualTwoBrickLinearAndRotatingSmallStrainTlAreSecondOrder SolidHhtTemporal.ActualTwoBrickLinearAndRotatingSmallStrainTlAreSecondOrder; assertion 4개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.ActualTwoBrickLinearAndRotatingSmallStrainTlAreSecondOrder 유지 원문 검사 body 및 assertion 동일. e27884c416eb70f27d47e3985209f13751955e5c30a689ad6d938474f41ca416 e27884c416eb70f27d47e3985209f13751955e5c30a689ad6d938474f41ca416 EXPECT_GT(fine[j], 1e-8) | EXPECT_LT(coarse[j], .1) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) EXPECT_GT(fine[j], 1e-8) | EXPECT_LT(coarse[j], .1) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) -Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.IndependentThreeDofBrickOscillatorHasSecondOrderUVA SolidHhtTemporal.IndependentThreeDofBrickOscillatorHasSecondOrderUVA; assertion 5개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.IndependentThreeDofBrickOscillatorHasSecondOrderUVA 유지 원문 검사 body 및 assertion 동일. a3cc00aa843d56fb0d6354682dccb6ddb98a61b624f57e2337a37499cc7e3efa a3cc00aa843d56fb0d6354682dccb6ddb98a61b624f57e2337a37499cc7e3efa ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) | EXPECT_GT(errors[2][j], 1e-15) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) | EXPECT_GT(errors[2][j], 1e-15) -Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.IndependentScalarBrickOscillatorHasSecondOrderUVA SolidHhtTemporal.IndependentScalarBrickOscillatorHasSecondOrderUVA; assertion 7개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.IndependentScalarBrickOscillatorHasSecondOrderUVA 유지 원문 검사 body 및 assertion 동일. 8cd02e0db682a2480cd82a7ce3bb9d235ada6080f491eb79a280b4fd3469633f 8cd02e0db682a2480cd82a7ce3bb9d235ada6080f491eb79a280b4fd3469633f ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR( f.kinetic_energy, .5 * m * f.velocity[0] * f.velocity[0], 512 * std::numeric_limits::epsilon() * f.kinetic_energy) | EXPECT_NEAR(f.strain_energy, .5 * k * f.displacement[0] * f.displacement[0], 512 * std::numeric_limits::epsilon() * f.strain_energy) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) | EXPECT_GT(errors[2][j], 1e-8) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR( f.kinetic_energy, .5 * m * f.velocity[0] * f.velocity[0], 512 * std::numeric_limits::epsilon() * f.kinetic_energy) | EXPECT_NEAR(f.strain_energy, .5 * k * f.displacement[0] * f.displacement[0], 512 * std::numeric_limits::epsilon() * f.strain_energy) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) | EXPECT_GT(errors[2][j], 1e-8) -Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.FixedThicknessBendingRetainsDiscreteBulkBias SolidHhtTemporal.FixedThicknessBendingRetainsDiscreteBulkBias; assertion 3개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.FixedThicknessBendingRetainsDiscreteBulkBias 유지 원문 검사 body 및 assertion 동일. e9210764d5fd451d439b84dfd39db8695cac0f2bb2e9aefc1913caaa132185f4 e9210764d5fd451d439b84dfd39db8695cac0f2bb2e9aefc1913caaa132185f4 EXPECT_NEAR(energy[0] / continuum, limit + parasitic, 2e-11) | EXPECT_NEAR(energy[2] / continuum, 0, 2e-13) | EXPECT_NEAR(previous_parasitic / parasitic, 4, 1e-13) EXPECT_NEAR(energy[0] / continuum, limit + parasitic, 2e-11) | EXPECT_NEAR(energy[2] / continuum, 0, 2e-13) | EXPECT_NEAR(previous_parasitic / parasitic, 4, 1e-13) -Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.BendingMeshRefinementQuantifiesFullIntegrationShearLocking SolidHhtTemporal.BendingMeshRefinementQuantifiesFullIntegrationShearLocking; assertion 4개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.BendingMeshRefinementQuantifiesFullIntegrationShearLocking 유지 원문 검사 body 및 assertion 동일. f2d9632408ddbfd1de879876b41c4dbed627801d1bc3b1454cedd7b77345ce1d f2d9632408ddbfd1de879876b41c4dbed627801d1bc3b1454cedd7b77345ce1d EXPECT_NEAR(error, shear - missing_bulk, 2e-11) | EXPECT_NEAR(energy[1] / continuum, 4 * mu / (3 * axial) + shear, 2e-11) | EXPECT_NEAR(energy[2] / continuum, bulk / axial - missing_bulk, 2e-11) | EXPECT_NEAR(previous_error / error, 4, 1e-10) EXPECT_NEAR(error, shear - missing_bulk, 2e-11) | EXPECT_NEAR(energy[1] / continuum, 4 * mu / (3 * axial) + shear, 2e-11) | EXPECT_NEAR(energy[2] / continuum, bulk / axial - missing_bulk, 2e-11) | EXPECT_NEAR(previous_error / error, 4, 1e-10) -Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp support@1-332 helper/oracle/fixture/include/static assertion 구간: AffineMotion, Motion, if, Apply, TwoBricks, ExactForce, ExactMassProduct, AddCross, ManufacturedRun, for tests/unit/analysis/solid_hht_temporal_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4c8ee89aab5bd9798906f93ce66756ce94ef4d24fd91379106f91fb317702361 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp support@602-649 helper/oracle/fixture/include/static assertion 구간: BendingEnergy tests/unit/analysis/solid_hht_temporal_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5ea1a45d3745809343ba4a3358aaafeb00f60c830f663189069687af8a684b7f 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/solid_hht_test_fixture.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/unit/analysis/solid_hht_test_fixture.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2ffd1ec89405f926f038cb58fc612604ff8e17853c134caf7cb127c32685cefd 2ffd1ec89405f926f038cb58fc612604ff8e17853c134caf7cb127c32685cefd 해당 없음 해당 없음 -Refactor tests/unit/analysis/solid_hht_test_fixture.h support@1-52 helper/oracle/fixture/include/static assertion 구간: solid_hht_test, Brick, Message tests/unit/analysis/solid_hht_test_fixture.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e2621f72b12715391a06e51ec23a320063679e90af74443afd5237197194b962 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/solid_static_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 23개 tests/unit/analysis/solid_static_procedure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8253b2e91a4db4d52cc039a5084ddfb93f7b0ffd1d10b1680e0e79439eabcb04 8253b2e91a4db4d52cc039a5084ddfb93f7b0ffd1d10b1680e0e79439eabcb04 해당 없음 해당 없음 -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LinearForceNonzeroSupportAndCompleteRecovery SolidStaticProcedure.LinearForceNonzeroSupportAndCompleteRecovery; assertion 17개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LinearForceNonzeroSupportAndCompleteRecovery 유지 원문 검사 body 및 assertion 동일. 0661804c27dc3d473e445fb06a9874f92a9e56b90ad2f77cafcd5eda24a801ed 0661804c27dc3d473e445fb06a9874f92a9e56b90ad2f77cafcd5eda24a801ed ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 1U) | EXPECT_EQ(frame.frame_index, 0U) | EXPECT_DOUBLE_EQ(frame.load_factor, 1.0) | ASSERT_EQ(frame.displacement.Size(), 24U) | ASSERT_EQ(frame.solid_results.size(), 8U) | EXPECT_NEAR(frame.displacement[3 * a], 0.02 + 0.01 * kX[a][0], 1e-13) | EXPECT_NEAR(frame.displacement[3 * a + 1], -0.0025 * kX[a][1], 1e-13) | EXPECT_NEAR(frame.displacement[3 * a + 2], -0.0025 * kX[a][2], 1e-13) | EXPECT_DOUBLE_EQ(frame.reaction[3 * a], 0.0) | EXPECT_NEAR(frame.reaction[3 * a], -0.3, 1e-13) | EXPECT_NEAR(frame.physical_strain_energy, 0.006, 1e-13) | EXPECT_NEAR(point.cauchy_stress[0], 1.2, 1e-12) | EXPECT_NEAR(point.cauchy_stress[1], 0.0, 1e-12) | EXPECT_NEAR(point.strain[0], 0.01, 1e-13) | EXPECT_NEAR(value, 0.0, 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 1U) | EXPECT_EQ(frame.frame_index, 0U) | EXPECT_DOUBLE_EQ(frame.load_factor, 1.0) | ASSERT_EQ(frame.displacement.Size(), 24U) | ASSERT_EQ(frame.solid_results.size(), 8U) | EXPECT_NEAR(frame.displacement[3 * a], 0.02 + 0.01 * kX[a][0], 1e-13) | EXPECT_NEAR(frame.displacement[3 * a + 1], -0.0025 * kX[a][1], 1e-13) | EXPECT_NEAR(frame.displacement[3 * a + 2], -0.0025 * kX[a][2], 1e-13) | EXPECT_DOUBLE_EQ(frame.reaction[3 * a], 0.0) | EXPECT_NEAR(frame.reaction[3 * a], -0.3, 1e-13) | EXPECT_NEAR(frame.physical_strain_energy, 0.006, 1e-13) | EXPECT_NEAR(point.cauchy_stress[0], 1.2, 1e-12) | EXPECT_NEAR(point.cauchy_stress[1], 0.0, 1e-12) | EXPECT_NEAR(point.strain[0], 0.01, 1e-13) | EXPECT_NEAR(value, 0.0, 1e-12) -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.AllConstrainedShearHasTensorStrainAndLinearMomentEvidence SolidStaticProcedure.AllConstrainedShearHasTensorStrainAndLinearMomentEvidence; assertion 8개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.AllConstrainedShearHasTensorStrainAndLinearMomentEvidence 유지 원문 검사 body 및 assertion 동일. e2c2aaea106d7f59e5ac8f4e9b545fe99ced00b92c0113d4e36fd40d305a972b e2c2aaea106d7f59e5ac8f4e9b545fe99ced00b92c0113d4e36fd40d305a972b ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(point.strain[3], 0.015, 1e-13) | EXPECT_NEAR(point.cauchy_stress[3], 1.44, 1e-12) | EXPECT_NEAR(frame.physical_strain_energy, 0.0504, 1e-13) | EXPECT_GT(std::abs(frame.balance.current_internal_moment[2]), 1e-5) | EXPECT_NEAR(frame.balance.current_internal_moment[2], frame.balance.linearization_moment[2], 1e-12) | EXPECT_NEAR(frame.balance.reference_internal_moment[2], 0.0, 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(point.strain[3], 0.015, 1e-13) | EXPECT_NEAR(point.cauchy_stress[3], 1.44, 1e-12) | EXPECT_NEAR(frame.physical_strain_energy, 0.0504, 1e-13) | EXPECT_GT(std::abs(frame.balance.current_internal_moment[2]), 1e-5) | EXPECT_NEAR(frame.balance.current_internal_moment[2], frame.balance.linearization_moment[2], 1e-12) | EXPECT_NEAR(frame.balance.reference_internal_moment[2], 0.0, 1e-12) -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.NonlinearDirectScheduleScalesForceAndAbsoluteTargets SolidStaticProcedure.NonlinearDirectScheduleScalesForceAndAbsoluteTargets; assertion 13개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.NonlinearDirectScheduleScalesForceAndAbsoluteTargets 유지 원문 검사 body 및 assertion 동일. d9e5db680ab7cfefe0bb0adc600921ea6a1ce60566317367656d013931bfebf6 d9e5db680ab7cfefe0bb0adc600921ea6a1ce60566317367656d013931bfebf6 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 4U) | EXPECT_EQ(frame.frame_index, n) | EXPECT_EQ(frame.increment_index, n + 1U) | EXPECT_DOUBLE_EQ(frame.load_factor, 0.25 * (n + 1)) | EXPECT_DOUBLE_EQ(frame.displacement[0], 0.02 * frame.load_factor) | EXPECT_DOUBLE_EQ(frame.external_force[3], 0.3 * frame.load_factor) | EXPECT_GT(frame.iteration_count, 1U) | EXPECT_EQ(frame.is_factor_one, n == 3) | EXPECT_NEAR(value, 0.0, 1e-12) | ASSERT_FALSE(result.Value().state.IterationRecords().empty()) | EXPECT_TRUE(result.Value().state.IterationRecords().back().accepted) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 4U) | EXPECT_EQ(frame.frame_index, n) | EXPECT_EQ(frame.increment_index, n + 1U) | EXPECT_DOUBLE_EQ(frame.load_factor, 0.25 * (n + 1)) | EXPECT_DOUBLE_EQ(frame.displacement[0], 0.02 * frame.load_factor) | EXPECT_DOUBLE_EQ(frame.external_force[3], 0.3 * frame.load_factor) | EXPECT_GT(frame.iteration_count, 1U) | EXPECT_EQ(frame.is_factor_one, n == 3) | EXPECT_NEAR(value, 0.0, 1e-12) | ASSERT_FALSE(result.Value().state.IterationRecords().empty()) | EXPECT_TRUE(result.Value().state.IterationRecords().back().accepted) -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PurePrescribedNonlinearAndSmallLoadLinearLimit SolidStaticProcedure.PurePrescribedNonlinearAndSmallLoadLinearLimit; assertion 9개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PurePrescribedNonlinearAndSmallLoadLinearLimit 유지 원문 검사 body 및 assertion 동일. 45b82b45c2f4ba29abb9e5f78b83dea26d453f512441f7bb2d79443d02ab4f92 45b82b45c2f4ba29abb9e5f78b83dea26d453f512441f7bb2d79443d02ab4f92 ASSERT_TRUE(pure.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(record.force_residual.branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(record.force_residual.denominator_scale, 0.0) | ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(l.HasValue()) | ASSERT_TRUE(n.HasValue()) | EXPECT_NEAR(l.Value().state.CommittedState().displacement[i], n.Value().state.CommittedState().displacement[i], 2e-13) ASSERT_TRUE(pure.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(record.force_residual.branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(record.force_residual.denominator_scale, 0.0) | ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(l.HasValue()) | ASSERT_TRUE(n.HasValue()) | EXPECT_NEAR(l.Value().state.CommittedState().displacement[i], n.Value().state.CommittedState().displacement[i], 2e-13) -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.StrainedThenRotatedTLCauchyAndEnergyOracle SolidStaticProcedure.StrainedThenRotatedTLCauchyAndEnergyOracle; assertion 7개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.StrainedThenRotatedTLCauchyAndEnergyOracle 유지 원문 검사 body 및 assertion 동일. ae7f274dc580d801db003d380539c0153f30638e98a1aef9ddb9bed86a5cf421 ae7f274dc580d801db003d380539c0153f30638e98a1aef9ddb9bed86a5cf421 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(point.strain[0], green, 1e-13) | EXPECT_NEAR( point.cauchy_stress[0], std::pow(std::cos(angle), 2) * s0 + std::pow(std::sin(angle), 2) * s1, 1e-11) | EXPECT_NEAR(point.cauchy_stress[3], std::sin(angle) * std::cos(angle) * (s0 - s1), 1e-11) | EXPECT_NEAR(frame.physical_strain_energy, 72 * green * green, 1e-12) | EXPECT_NEAR(value, 0.0, 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(point.strain[0], green, 1e-13) | EXPECT_NEAR( point.cauchy_stress[0], std::pow(std::cos(angle), 2) * s0 + std::pow(std::sin(angle), 2) * s1, 1e-11) | EXPECT_NEAR(point.cauchy_stress[3], std::sin(angle) * std::cos(angle) * (s0 - s1), 1e-11) | EXPECT_NEAR(frame.physical_strain_energy, 72 * green * green, 1e-12) | EXPECT_NEAR(value, 0.0, 1e-12) -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.FailedBackendKeepsActualAcceptedHistory SolidStaticProcedure.FailedBackendKeepsActualAcceptedHistory; assertion 11개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.FailedBackendKeepsActualAcceptedHistory 유지 원문 검사 body 및 assertion 동일. 8fcbb8d30b751700e685c57cf7f932779ef1105776f8c5cde20834df611a5075 8fcbb8d30b751700e685c57cf7f932779ef1105776f8c5cde20834df611a5075 "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.25) | EXPECT_EQ(state.CommittedState().displacement.Size(), 24U) | EXPECT_EQ(state.CommittedState().solid_results.size(), 8U) | EXPECT_EQ(state.IterationRecords().back().diagnostic_code, ""injected-backend"") | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | EXPECT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.25)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.25) | EXPECT_EQ(state.CommittedState().displacement.Size(), 24U) | EXPECT_EQ(state.CommittedState().solid_results.size(), 8U) | EXPECT_EQ(state.IterationRecords().back().diagnostic_code, ""injected-backend"") | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | EXPECT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.25)" -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.GeometryIterationAndNonfiniteFailuresPreserveBaseline SolidStaticProcedure.GeometryIterationAndNonfiniteFailuresPreserveBaseline; assertion 10개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.GeometryIterationAndNonfiniteFailuresPreserveBaseline 유지 원문 검사 body 및 assertion 동일. d01826c155aeded9026db515baedaf45ea10080a9ac6c9e5604e3e8f05b46770 d01826c155aeded9026db515baedaf45ea10080a9ac6c9e5604e3e8f05b46770 ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(state.AcceptedFrames().empty()) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.0) | ASSERT_EQ(state.CommittedState().displacement.Size(), 24U) | EXPECT_DOUBLE_EQ(state.CommittedState().displacement[i], 0.0) | ASSERT_FALSE(state.IterationRecords().empty()) | EXPECT_FALSE(state.IterationRecords().back().accepted) | EXPECT_FALSE(state.IterationRecords().back().diagnostic_code.empty()) | EXPECT_EQ(state.IterationRecords().back().iteration, 100U) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(state.AcceptedFrames().empty()) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.0) | ASSERT_EQ(state.CommittedState().displacement.Size(), 24U) | EXPECT_DOUBLE_EQ(state.CommittedState().displacement[i], 0.0) | ASSERT_FALSE(state.IterationRecords().empty()) | EXPECT_FALSE(state.IterationRecords().back().accepted) | EXPECT_FALSE(state.IterationRecords().back().diagnostic_code.empty()) | EXPECT_EQ(state.IterationRecords().back().iteration, 100U) -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.UnconstrainedSolidFailsWithoutRegularization SolidStaticProcedure.UnconstrainedSolidFailsWithoutRegularization; assertion 2개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.UnconstrainedSolidFailsWithoutRegularization 유지 원문 검사 body 및 assertion 동일. 26a02bf428c8b4d8684b66f3b75d4fc83e96c18d6497d81dba18879b19b2c81f 26a02bf428c8b4d8684b66f3b75d4fc83e96c18d6497d81dba18879b19b2c81f ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(result.HasValue()) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(result.HasValue()) -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.EightElementAffinePatchHasSolvedInteriorAndStableRows SolidStaticProcedure.EightElementAffinePatchHasSolvedInteriorAndStableRows; assertion 18개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.EightElementAffinePatchHasSolvedInteriorAndStableRows 유지 원문 검사 body 및 assertion 동일. db9abadb927e8b0a0bb434ae43107b27275e65355b74fbba89d72cfad8c88d91 db9abadb927e8b0a0bb434ae43107b27275e65355b74fbba89d72cfad8c88d91 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(frame.solid_results.size(), 64U) | EXPECT_NEAR(frame.displacement[3 * 13], 0.05, 1e-13) | EXPECT_NEAR(frame.displacement[3 * 13 + 1], 0.0, 1e-13) | EXPECT_NEAR(frame.displacement[3 * 13 + 2], 0.0, 1e-13) | EXPECT_NEAR(frame.physical_strain_energy, 8 * 0.0504, 1e-12) | EXPECT_EQ(frame.solid_results[g].element, g / 8) | EXPECT_EQ(frame.solid_results[g].integration_point, static_cast(g % 8 + 1)) | EXPECT_NEAR(frame.solid_results[g].cauchy_stress[0], 2.88, 1e-12) | EXPECT_NEAR(frame.solid_results[g].cauchy_stress[3], 1.44, 1e-12) | ASSERT_TRUE(parallel_result.HasValue()) | EXPECT_DOUBLE_EQ(parallel_frame.physical_strain_energy, frame.physical_strain_energy) | EXPECT_DOUBLE_EQ(parallel_frame.displacement[i], frame.displacement[i]) | EXPECT_DOUBLE_EQ(parallel_frame.internal_force[i], frame.internal_force[i]) | EXPECT_DOUBLE_EQ(parallel_frame.residual[i], frame.residual[i]) | EXPECT_EQ(parallel_frame.solid_results[g].cauchy_stress, frame.solid_results[g].cauchy_stress) | EXPECT_EQ(parallel_frame.solid_results[g].strain, frame.solid_results[g].strain) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(frame.solid_results.size(), 64U) | EXPECT_NEAR(frame.displacement[3 * 13], 0.05, 1e-13) | EXPECT_NEAR(frame.displacement[3 * 13 + 1], 0.0, 1e-13) | EXPECT_NEAR(frame.displacement[3 * 13 + 2], 0.0, 1e-13) | EXPECT_NEAR(frame.physical_strain_energy, 8 * 0.0504, 1e-12) | EXPECT_EQ(frame.solid_results[g].element, g / 8) | EXPECT_EQ(frame.solid_results[g].integration_point, static_cast(g % 8 + 1)) | EXPECT_NEAR(frame.solid_results[g].cauchy_stress[0], 2.88, 1e-12) | EXPECT_NEAR(frame.solid_results[g].cauchy_stress[3], 1.44, 1e-12) | ASSERT_TRUE(parallel_result.HasValue()) | EXPECT_DOUBLE_EQ(parallel_frame.physical_strain_energy, frame.physical_strain_energy) | EXPECT_DOUBLE_EQ(parallel_frame.displacement[i], frame.displacement[i]) | EXPECT_DOUBLE_EQ(parallel_frame.internal_force[i], frame.internal_force[i]) | EXPECT_DOUBLE_EQ(parallel_frame.residual[i], frame.residual[i]) | EXPECT_EQ(parallel_frame.solid_results[g].cauchy_stress, frame.solid_results[g].cauchy_stress) | EXPECT_EQ(parallel_frame.solid_results[g].strain, frame.solid_results[g].strain) -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LaterInvertedPrescribedTrialPreservesThreeAcceptedFrames SolidStaticProcedure.LaterInvertedPrescribedTrialPreservesThreeAcceptedFrames; assertion 8개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LaterInvertedPrescribedTrialPreservesThreeAcceptedFrames 유지 원문 검사 body 및 assertion 동일. aa4fc98ea93ac0cf4107c008482a044d58aa6fe24db7d22ac1f070603a8cd04c aa4fc98ea93ac0cf4107c008482a044d58aa6fe24db7d22ac1f070603a8cd04c ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 3U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.75) | EXPECT_NEAR(state.CommittedState().displacement[3], -0.9, 1e-15) | ASSERT_EQ(state.CommittedState().solid_results.size(), 8U) | EXPECT_EQ(state.IterationRecords().back().increment_index, 4U) | EXPECT_FALSE(state.IterationRecords().back().accepted) ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 3U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.75) | EXPECT_NEAR(state.CommittedState().displacement[3], -0.9, 1e-15) | ASSERT_EQ(state.CommittedState().solid_results.size(), 8U) | EXPECT_EQ(state.IterationRecords().back().increment_index, 4U) | EXPECT_FALSE(state.IterationRecords().back().accepted) -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PartiallySupportedRigidMechanismAlsoFailsUnloaded SolidStaticProcedure.PartiallySupportedRigidMechanismAlsoFailsUnloaded; assertion 3개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PartiallySupportedRigidMechanismAlsoFailsUnloaded 유지 원문 검사 body 및 assertion 동일. 7f3830b55f5ac74af77b283eb5c3bc1c1e747a146c92b19de6d45f417141e9c5 7f3830b55f5ac74af77b283eb5c3bc1c1e747a146c92b19de6d45f417141e9c5 ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.SerialAndTbbFramesAndFailureEvidenceAreIdentical SolidStaticProcedure.SerialAndTbbFramesAndFailureEvidenceAreIdentical; assertion 18개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.SerialAndTbbFramesAndFailureEvidenceAreIdentical 유지 원문 검사 body 및 assertion 동일. 2204b6d824ccabcf85805a5c154e72abfcd625aa56a832f3814e99a3e0e70a47 2204b6d824ccabcf85805a5c154e72abfcd625aa56a832f3814e99a3e0e70a47 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(a.HasValue()) | ASSERT_TRUE(b.HasValue()) | ASSERT_EQ(a.Value().state.AcceptedFrames().size(), b.Value().state.AcceptedFrames().size()) | EXPECT_DOUBLE_EQ(af.physical_strain_energy, bf.physical_strain_energy) | EXPECT_EQ(af.global_equilibrium, bf.global_equilibrium) | EXPECT_DOUBLE_EQ(af.displacement[i], bf.displacement[i]) | EXPECT_DOUBLE_EQ(af.residual[i], bf.residual[i]) | EXPECT_DOUBLE_EQ(af.reaction[i], bf.reaction[i]) | EXPECT_EQ(af.solid_results[g].cauchy_stress, bf.solid_results[g].cauchy_stress) | EXPECT_EQ(af.solid_results[g].strain, bf.solid_results[g].strain) | ASSERT_TRUE(invalid.HasValue()) | ASSERT_FALSE(as.IsOk()) | ASSERT_FALSE(bs.IsOk()) | EXPECT_EQ(as.Diagnostics()[0].code, bs.Diagnostics()[0].code) | EXPECT_EQ(sa.AcceptedFrames().size(), sb.AcceptedFrames().size()) | EXPECT_EQ(sa.IterationRecords().back().stage, sb.IterationRecords().back().stage) | EXPECT_DOUBLE_EQ(sa.CommittedState().physical_strain_energy, sb.CommittedState().physical_strain_energy) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(a.HasValue()) | ASSERT_TRUE(b.HasValue()) | ASSERT_EQ(a.Value().state.AcceptedFrames().size(), b.Value().state.AcceptedFrames().size()) | EXPECT_DOUBLE_EQ(af.physical_strain_energy, bf.physical_strain_energy) | EXPECT_EQ(af.global_equilibrium, bf.global_equilibrium) | EXPECT_DOUBLE_EQ(af.displacement[i], bf.displacement[i]) | EXPECT_DOUBLE_EQ(af.residual[i], bf.residual[i]) | EXPECT_DOUBLE_EQ(af.reaction[i], bf.reaction[i]) | EXPECT_EQ(af.solid_results[g].cauchy_stress, bf.solid_results[g].cauchy_stress) | EXPECT_EQ(af.solid_results[g].strain, bf.solid_results[g].strain) | ASSERT_TRUE(invalid.HasValue()) | ASSERT_FALSE(as.IsOk()) | ASSERT_FALSE(bs.IsOk()) | EXPECT_EQ(as.Diagnostics()[0].code, bs.Diagnostics()[0].code) | EXPECT_EQ(sa.AcceptedFrames().size(), sb.AcceptedFrames().size()) | EXPECT_EQ(sa.IterationRecords().back().stage, sb.IterationRecords().back().stage) | EXPECT_DOUBLE_EQ(sa.CommittedState().physical_strain_energy, sb.CommittedState().physical_strain_energy) -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.InvalidRecoveryAndRepeatedExecutionKeepAcceptedFrame SolidStaticProcedure.InvalidRecoveryAndRepeatedExecutionKeepAcceptedFrame; assertion 9개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.InvalidRecoveryAndRepeatedExecutionKeepAcceptedFrame 유지 원문 검사 body 및 assertion 동일. c7dfc371a7b67a1c78981dc4d1deb65f7122dcff6108ae6c7ec65caf7448d811 c7dfc371a7b67a1c78981dc4d1deb65f7122dcff6108ae6c7ec65caf7448d811 ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(fesa::SolidStaticProcedureExecutor(serial, linear, tangent) .ExecuteInto(domain.Value(), state) .IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().physical_strain_energy, valid.physical_strain_energy) | EXPECT_EQ(state.CommittedState().solid_results[0].cauchy_stress, valid.solid_results[0].cauchy_stress) | EXPECT_FALSE(fesa::SolidStaticProcedureExecutor(serial, linear, tangent) .ExecuteInto(domain.Value(), state) .IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(fesa::SolidStaticProcedureExecutor(serial, linear, tangent) .ExecuteInto(domain.Value(), state) .IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().physical_strain_energy, valid.physical_strain_energy) | EXPECT_EQ(state.CommittedState().solid_results[0].cauchy_stress, valid.solid_results[0].cauchy_stress) | EXPECT_FALSE(fesa::SolidStaticProcedureExecutor(serial, linear, tangent) .ExecuteInto(domain.Value(), state) .IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.StressedIndefiniteFreeTangentUsesCapableBackend SolidStaticProcedure.StressedIndefiniteFreeTangentUsesCapableBackend; assertion 6개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.StressedIndefiniteFreeTangentUsesCapableBackend 유지 원문 검사 body 및 assertion 동일. b812d55397294e1477756f267282142cdab4613da0d6ba78c49161e44a4bb757 b812d55397294e1477756f267282142cdab4613da0d6ba78c49161e44a4bb757 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(tangent.rayleigh_sum, -21.12, 1e-12) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 1U) | EXPECT_NEAR(frame.displacement[3 * a + 1], 0.0, 1e-13) | EXPECT_NEAR(frame.solid_results[0].strain[0], -.48, 1e-13) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(tangent.rayleigh_sum, -21.12, 1e-12) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 1U) | EXPECT_NEAR(frame.displacement[3 * a + 1], 0.0, 1e-13) | EXPECT_NEAR(frame.solid_results[0].strain[0], -.48, 1e-13) -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.FullyConstrainedZeroDisplacementRetainsSupportLoadResidual SolidStaticProcedure.FullyConstrainedZeroDisplacementRetainsSupportLoadResidual; assertion 8개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.FullyConstrainedZeroDisplacementRetainsSupportLoadResidual 유지 원문 검사 body 및 assertion 동일. 956d6dd86eb3526eb262dd5e38e7b4245a5a0dda8fba51effed01c553a14f29f 956d6dd86eb3526eb262dd5e38e7b4245a5a0dda8fba51effed01c553a14f29f ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frame.internal_force[0], 0.0) | EXPECT_DOUBLE_EQ(frame.residual[0], -7.0) | EXPECT_DOUBLE_EQ(frame.reaction[0], -7.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | ASSERT_EQ(frame.solid_results.size(), 8U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frame.internal_force[0], 0.0) | EXPECT_DOUBLE_EQ(frame.residual[0], -7.0) | EXPECT_DOUBLE_EQ(frame.reaction[0], -7.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | ASSERT_EQ(frame.solid_results.size(), 8U) -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.UniformPrescribedTranslationHasExactlyZeroRecovery SolidStaticProcedure.UniformPrescribedTranslationHasExactlyZeroRecovery; assertion 11개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.UniformPrescribedTranslationHasExactlyZeroRecovery 유지 원문 검사 body 및 assertion 동일. 283e16609b747830674f685910884882be83a270558850725c06370227b2ff47 283e16609b747830674f685910884882be83a270558850725c06370227b2ff47 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(frame.displacement.Size(), 24U) | EXPECT_DOUBLE_EQ(frame.displacement[i], translation[i % 3U]) | EXPECT_DOUBLE_EQ(frame.internal_force[i], 0.0) | EXPECT_DOUBLE_EQ(frame.residual[i], 0.0) | EXPECT_DOUBLE_EQ(frame.reaction[i], 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | ASSERT_EQ(frame.solid_results.size(), 8U) | EXPECT_DOUBLE_EQ(strain, 0.0) | EXPECT_DOUBLE_EQ(stress, 0.0) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(frame.displacement.Size(), 24U) | EXPECT_DOUBLE_EQ(frame.displacement[i], translation[i % 3U]) | EXPECT_DOUBLE_EQ(frame.internal_force[i], 0.0) | EXPECT_DOUBLE_EQ(frame.residual[i], 0.0) | EXPECT_DOUBLE_EQ(frame.reaction[i], 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | ASSERT_EQ(frame.solid_results.size(), 8U) | EXPECT_DOUBLE_EQ(strain, 0.0) | EXPECT_DOUBLE_EQ(stress, 0.0) -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.MixedStrainAndTranslationPreserveAnalyticRecovery SolidStaticProcedure.MixedStrainAndTranslationPreserveAnalyticRecovery; assertion 16개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.MixedStrainAndTranslationPreserveAnalyticRecovery 유지 원문 검사 body 및 assertion 동일. d39c4b7c1d12b2e0b05fc9b5df66b9d0a184eee9e1f297b5fb4ea583f8655f8d d39c4b7c1d12b2e0b05fc9b5df66b9d0a184eee9e1f297b5fb4ea583f8655f8d ASSERT_TRUE(original_domain.HasValue()) | ASSERT_TRUE(translated_domain.HasValue()) | ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(translated.HasValue()) | EXPECT_NEAR(frame->physical_strain_energy, 0.1640625, 1e-13) | EXPECT_NEAR(point.strain[0], 1.0 / 32, 1e-15) | EXPECT_NEAR(point.strain[3], 1.0 / 32, 1e-15) | EXPECT_NEAR(point.cauchy_stress[c], stress[c], 1e-13) | EXPECT_NEAR(frame->internal_force[3 * node + c], exact_force[c], 1e-13) | EXPECT_NEAR(frame->reaction[3 * node + c], exact_force[c], 1e-13) | EXPECT_DOUBLE_EQ(a.physical_strain_energy, b.physical_strain_energy) | EXPECT_DOUBLE_EQ(a.internal_force[i], b.internal_force[i]) | EXPECT_DOUBLE_EQ(a.reaction[i], b.reaction[i]) | EXPECT_DOUBLE_EQ(a.residual[i], b.residual[i]) | EXPECT_EQ(a.solid_results[g].strain, b.solid_results[g].strain) | EXPECT_EQ(a.solid_results[g].cauchy_stress, b.solid_results[g].cauchy_stress) ASSERT_TRUE(original_domain.HasValue()) | ASSERT_TRUE(translated_domain.HasValue()) | ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(translated.HasValue()) | EXPECT_NEAR(frame->physical_strain_energy, 0.1640625, 1e-13) | EXPECT_NEAR(point.strain[0], 1.0 / 32, 1e-15) | EXPECT_NEAR(point.strain[3], 1.0 / 32, 1e-15) | EXPECT_NEAR(point.cauchy_stress[c], stress[c], 1e-13) | EXPECT_NEAR(frame->internal_force[3 * node + c], exact_force[c], 1e-13) | EXPECT_NEAR(frame->reaction[3 * node + c], exact_force[c], 1e-13) | EXPECT_DOUBLE_EQ(a.physical_strain_energy, b.physical_strain_energy) | EXPECT_DOUBLE_EQ(a.internal_force[i], b.internal_force[i]) | EXPECT_DOUBLE_EQ(a.reaction[i], b.reaction[i]) | EXPECT_DOUBLE_EQ(a.residual[i], b.residual[i]) | EXPECT_EQ(a.solid_results[g].strain, b.solid_results[g].strain) | EXPECT_EQ(a.solid_results[g].cauchy_stress, b.solid_results[g].cauchy_stress) -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PureLargeRigidRotationEndsAtZeroStrainEnergy SolidStaticProcedure.PureLargeRigidRotationEndsAtZeroStrainEnergy; assertion 5개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PureLargeRigidRotationEndsAtZeroStrainEnergy 유지 원문 검사 body 및 assertion 동일. 4fe6729cebd103240b949a646d1071d16c80aa9b748edec55cac4187a571090d 4fe6729cebd103240b949a646d1071d16c80aa9b748edec55cac4187a571090d ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(frame.physical_strain_energy, 0.0, 1e-25) | EXPECT_NEAR(value, 0.0, 1e-14) | EXPECT_NEAR(value, 0.0, 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(frame.physical_strain_energy, 0.0, 1e-25) | EXPECT_NEAR(value, 0.0, 1e-14) | EXPECT_NEAR(value, 0.0, 1e-12) -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.OrdinaryStaticKeepsExistingFinalShortFactorPath SolidStaticProcedure.OrdinaryStaticKeepsExistingFinalShortFactorPath; assertion 6개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.OrdinaryStaticKeepsExistingFinalShortFactorPath 유지 원문 검사 body 및 assertion 동일. f89b10887a1fc24fed122505ce929cd71894836076dc926635924d209419eb98 f89b10887a1fc24fed122505ce929cd71894836076dc926635924d209419eb98 ASSERT_NE(position, std::string::npos) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 4U) | EXPECT_NEAR(result.Value().state.AcceptedFrames()[i].load_factor, factors[i], 1e-15) | EXPECT_DOUBLE_EQ(result.Value().state.CommittedState().load_factor, 1.0) ASSERT_NE(position, std::string::npos) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 4U) | EXPECT_NEAR(result.Value().state.AcceptedFrames()[i].load_factor, factors[i], 1e-15) | EXPECT_DOUBLE_EQ(result.Value().state.CommittedState().load_factor, 1.0) -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.BoundedSpatialRefinementReportsFullIntegrationLocking SolidStaticProcedure.BoundedSpatialRefinementReportsFullIntegrationLocking; assertion 6개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.BoundedSpatialRefinementReportsFullIntegrationLocking 유지 원문 검사 body 및 assertion 동일. 0be527378cf6b99c5d21b37fae3756fcf90b3baf550974c57e04fc9f1f828875 0be527378cf6b99c5d21b37fae3756fcf90b3baf550974c57e04fc9f1f828875 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GT(tip, previous[material]) | EXPECT_LT(tip, 1.05 * beam_limit) | EXPECT_LT(final[1], final[0]) | EXPECT_GT(std::abs(final[1] - beam_limit), std::abs(final[0] - beam_limit)) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GT(tip, previous[material]) | EXPECT_LT(tip, 1.05 * beam_limit) | EXPECT_LT(final[1], final[0]) | EXPECT_GT(std::abs(final[1] - beam_limit), std::abs(final[0] - beam_limit)) -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LaterIterationNonfiniteAndGeometryFailureKeepEveryAcceptedQuantity SolidStaticProcedure.LaterIterationNonfiniteAndGeometryFailureKeepEveryAcceptedQuantity; assertion 16개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LaterIterationNonfiniteAndGeometryFailureKeepEveryAcceptedQuantity 유지 원문 검사 body 및 assertion 동일. d625f760d2aab29539cf34d792d6540f1c67c9e627fe2e17ec186ddc74df2f36 d625f760d2aab29539cf34d792d6540f1c67c9e627fe2e17ec186ddc74df2f36 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(successful.HasValue()) | ASSERT_EQ(expected.iteration_count, 2U) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_EQ(actual.global_equilibrium, expected.global_equilibrium) | EXPECT_DOUBLE_EQ(actual.physical_strain_energy, expected.physical_strain_energy) | EXPECT_DOUBLE_EQ(actual.displacement[i], expected.displacement[i]) | EXPECT_DOUBLE_EQ(actual.internal_force[i], expected.internal_force[i]) | EXPECT_DOUBLE_EQ(actual.external_force[i], expected.external_force[i]) | EXPECT_DOUBLE_EQ(actual.residual[i], expected.residual[i]) | EXPECT_DOUBLE_EQ(actual.reaction[i], expected.reaction[i]) | EXPECT_EQ(actual.solid_results[g].strain, expected.solid_results[g].strain) | EXPECT_EQ(actual.solid_results[g].cauchy_stress, expected.solid_results[g].cauchy_stress) | EXPECT_EQ(state.IterationRecords().back().increment_index, 2U) | EXPECT_FALSE(state.IterationRecords().back().accepted) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(successful.HasValue()) | ASSERT_EQ(expected.iteration_count, 2U) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_EQ(actual.global_equilibrium, expected.global_equilibrium) | EXPECT_DOUBLE_EQ(actual.physical_strain_energy, expected.physical_strain_energy) | EXPECT_DOUBLE_EQ(actual.displacement[i], expected.displacement[i]) | EXPECT_DOUBLE_EQ(actual.internal_force[i], expected.internal_force[i]) | EXPECT_DOUBLE_EQ(actual.external_force[i], expected.external_force[i]) | EXPECT_DOUBLE_EQ(actual.residual[i], expected.residual[i]) | EXPECT_DOUBLE_EQ(actual.reaction[i], expected.reaction[i]) | EXPECT_EQ(actual.solid_results[g].strain, expected.solid_results[g].strain) | EXPECT_EQ(actual.solid_results[g].cauchy_stress, expected.solid_results[g].cauchy_stress) | EXPECT_EQ(state.IterationRecords().back().increment_index, 2U) | EXPECT_FALSE(state.IterationRecords().back().accepted) -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.ExecutesBothUnmodifiedStaticSourceDecksThroughDirectApi SolidStaticProcedure.ExecutesBothUnmodifiedStaticSourceDecksThroughDirectApi; assertion 8개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.ExecutesBothUnmodifiedStaticSourceDecksThroughDirectApi 유지 원문 검사 body 및 assertion 동일. d3a90f93d9d9490f75afc00c665defc23cf55c13bfbca813fa2fed3140416ce3 d3a90f93d9d9490f75afc00c665defc23cf55c13bfbca813fa2fed3140416ce3 ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frame.load_factor, 1.0) | EXPECT_EQ(frame.increment_index, 10U) | EXPECT_EQ(frame.displacement.Size(), 442U * 3U) | EXPECT_EQ(frame.solid_results.size(), 300U * 8U) | EXPECT_EQ(state.AcceptedFrames().size(), domain.Value().Steps()[0].IsNonlinearStatic() ? 10U : 1U) ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frame.load_factor, 1.0) | EXPECT_EQ(frame.increment_index, 10U) | EXPECT_EQ(frame.displacement.Size(), 442U * 3U) | EXPECT_EQ(frame.solid_results.size(), 300U * 8U) | EXPECT_EQ(state.AcceptedFrames().size(), domain.Value().Steps()[0].IsNonlinearStatic() ? 10U : 1U) -Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.InjectedAlgorithmFailurePreservesInitializedBaseline SolidStaticProcedure.InjectedAlgorithmFailurePreservesInitializedBaseline; assertion 41개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.InjectedAlgorithmFailurePreservesInitializedBaseline 유지 원문 검사 body 및 assertion 동일. 7b239ad36e7c1c8bd5af6ed8a694901e4d9a48d518d9d416a70db384ffcb476c 7b239ad36e7c1c8bd5af6ed8a694901e4d9a48d518d9d416a70db384ffcb476c "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""injected-static-algorithm"") | EXPECT_EQ(diagnostic.keyword, ""STATIC"") | EXPECT_EQ(diagnostic.entity_identity, ""original-owner"") | EXPECT_EQ(diagnostic.message, ""Original algorithm failure."") | EXPECT_EQ(selected->calls, 1) | EXPECT_EQ(solvers.calls, 0) | EXPECT_TRUE(state.AcceptedFrames().empty()) | EXPECT_TRUE(state.IterationRecords().empty()) | EXPECT_EQ(actual.frame_index, expected.frame_index) | EXPECT_EQ(actual.increment_index, expected.increment_index) | EXPECT_DOUBLE_EQ(actual.load_factor, expected.load_factor) | EXPECT_EQ(actual.iteration_count, expected.iteration_count) | EXPECT_EQ(actual.is_factor_one, expected.is_factor_one) | EXPECT_EQ(actual.nodal_internal_order, expected.nodal_internal_order) | ASSERT_EQ(actual.nodal_source_ids.size(), expected.nodal_source_ids.size()) | EXPECT_TRUE(fesa::SourceIdentityEquals(actual.nodal_source_ids[i], expected.nodal_source_ids[i])) | ASSERT_EQ(a.Size(), b.Size()) | EXPECT_DOUBLE_EQ(a[i], b[i]) | EXPECT_DOUBLE_EQ(actual.physical_strain_energy, expected.physical_strain_energy) | EXPECT_EQ(actual.global_equilibrium, expected.global_equilibrium) | EXPECT_EQ(actual.balance.internal_force_sum, expected.balance.internal_force_sum) | EXPECT_EQ(actual.balance.reference_internal_moment, expected.balance.reference_internal_moment) | EXPECT_EQ(actual.balance.current_internal_moment, expected.balance.current_internal_moment) | EXPECT_EQ(actual.balance.free_residual_moment, expected.balance.free_residual_moment) | EXPECT_EQ(actual.balance.linearization_moment, expected.balance.linearization_moment) | EXPECT_EQ(actual.balance.internal_force_scale, expected.balance.internal_force_scale) | EXPECT_EQ(actual.balance.reference_moment_scale, expected.balance.reference_moment_scale) | EXPECT_EQ(actual.balance.current_moment_scale, expected.balance.current_moment_scale) | ASSERT_EQ(actual.solid_results.size(), expected.solid_results.size()) | EXPECT_EQ(a.element, b.element) | EXPECT_EQ(a.integration_point, b.integration_point) | EXPECT_EQ(a.natural_coordinates, b.natural_coordinates) | EXPECT_EQ(a.reference_coordinates, b.reference_coordinates) | EXPECT_EQ(a.cauchy_stress, b.cauchy_stress) | EXPECT_EQ(a.strain, b.strain) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""injected-static-algorithm"") | EXPECT_EQ(diagnostic.keyword, ""STATIC"") | EXPECT_EQ(diagnostic.entity_identity, ""original-owner"") | EXPECT_EQ(diagnostic.message, ""Original algorithm failure."") | EXPECT_EQ(selected->calls, 1) | EXPECT_EQ(solvers.calls, 0) | EXPECT_TRUE(state.AcceptedFrames().empty()) | EXPECT_TRUE(state.IterationRecords().empty()) | EXPECT_EQ(actual.frame_index, expected.frame_index) | EXPECT_EQ(actual.increment_index, expected.increment_index) | EXPECT_DOUBLE_EQ(actual.load_factor, expected.load_factor) | EXPECT_EQ(actual.iteration_count, expected.iteration_count) | EXPECT_EQ(actual.is_factor_one, expected.is_factor_one) | EXPECT_EQ(actual.nodal_internal_order, expected.nodal_internal_order) | ASSERT_EQ(actual.nodal_source_ids.size(), expected.nodal_source_ids.size()) | EXPECT_TRUE(fesa::SourceIdentityEquals(actual.nodal_source_ids[i], expected.nodal_source_ids[i])) | ASSERT_EQ(a.Size(), b.Size()) | EXPECT_DOUBLE_EQ(a[i], b[i]) | EXPECT_DOUBLE_EQ(actual.physical_strain_energy, expected.physical_strain_energy) | EXPECT_EQ(actual.global_equilibrium, expected.global_equilibrium) | EXPECT_EQ(actual.balance.internal_force_sum, expected.balance.internal_force_sum) | EXPECT_EQ(actual.balance.reference_internal_moment, expected.balance.reference_internal_moment) | EXPECT_EQ(actual.balance.current_internal_moment, expected.balance.current_internal_moment) | EXPECT_EQ(actual.balance.free_residual_moment, expected.balance.free_residual_moment) | EXPECT_EQ(actual.balance.linearization_moment, expected.balance.linearization_moment) | EXPECT_EQ(actual.balance.internal_force_scale, expected.balance.internal_force_scale) | EXPECT_EQ(actual.balance.reference_moment_scale, expected.balance.reference_moment_scale) | EXPECT_EQ(actual.balance.current_moment_scale, expected.balance.current_moment_scale) | ASSERT_EQ(actual.solid_results.size(), expected.solid_results.size()) | EXPECT_EQ(a.element, b.element) | EXPECT_EQ(a.integration_point, b.integration_point) | EXPECT_EQ(a.natural_coordinates, b.natural_coordinates) | EXPECT_EQ(a.reference_coordinates, b.reference_coordinates) | EXPECT_EQ(a.cauchy_stress, b.cauchy_stress) | EXPECT_EQ(a.strain, b.strain) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed)" -Refactor tests/unit/analysis/solid_static_procedure_test.cpp support@1-155 helper/oracle/fixture/include/static assertion 구간: Deck, Map, Message, ExecuteSolid, Supports, Tension, AffineBoundary, FailedTangent, Mode, ObservedIndefiniteTangent tests/unit/analysis/solid_static_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d96f4777bff4fddc469f8b9f9db91e1109d474ad8ff6ef8d854d233c3fe56dd9 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/solid_static_procedure_test.cpp support@691-732 helper/oracle/fixture/include/static assertion 구간: Cantilever tests/unit/analysis/solid_static_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 18b6fff6c45d794f77ce9044335c69313a256236f3b9cee759f0d5d8a33ca76e 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/solid_static_procedure_test.cpp support@831-876 helper/oracle/fixture/include/static assertion 구간: StaticPolicyFailure, UnusedStaticSolvers, RefusingStaticAlgorithm tests/unit/analysis/solid_static_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b89a7e571f03accadb84ca3e127ac1529381da75155aec1cb29db9a8db61ac8f 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/solid_static_state_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/analysis/solid_static_state_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1693abc34bf1b4346ff3a17979cb8a763cb16950fee6b5a5471e402d4faf621d 1693abc34bf1b4346ff3a17979cb8a763cb16950fee6b5a5471e402d4faf621d 해당 없음 해당 없음 -Refactor tests/unit/analysis/solid_static_state_test.cpp SolidStaticControls.PurePrescribedUsesAbsoluteForceAndOnlyTwoChannels SolidStaticControls.PurePrescribedUsesAbsoluteForceAndOnlyTwoChannels; assertion 8개 tests/unit/analysis/solid_static_state_test.cpp SolidStaticControls.PurePrescribedUsesAbsoluteForceAndOnlyTwoChannels 유지 원문 검사 body 및 assertion 동일. 64090bf859cad1c1f823058b375f44107bd69be3ea8a455abc6f1eb059ba2578 64090bf859cad1c1f823058b375f44107bd69be3ea8a455abc6f1eb059ba2578 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().force_residual.branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(result.Value().force_residual.denominator_scale, 0.0) | EXPECT_EQ(result.Value().force_residual.threshold_unit, fesa::NewtonChannelUnit::kForce) | EXPECT_EQ(result.Value().translation_correction.threshold_unit, fesa::NewtonChannelUnit::kLength) | EXPECT_TRUE(result.Value().force_residual.passed) | EXPECT_TRUE(result.Value().translation_correction.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence( residual, internal, external, correction, increment) .Value() .force_residual.passed) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().force_residual.branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(result.Value().force_residual.denominator_scale, 0.0) | EXPECT_EQ(result.Value().force_residual.threshold_unit, fesa::NewtonChannelUnit::kForce) | EXPECT_EQ(result.Value().translation_correction.threshold_unit, fesa::NewtonChannelUnit::kLength) | EXPECT_TRUE(result.Value().force_residual.passed) | EXPECT_TRUE(result.Value().translation_correction.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence( residual, internal, external, correction, increment) .Value() .force_residual.passed) -Refactor tests/unit/analysis/solid_static_state_test.cpp SolidStaticControls.RelativeLimitsRawNormsAndNonfiniteFailure SolidStaticControls.RelativeLimitsRawNormsAndNonfiniteFailure; assertion 10개 tests/unit/analysis/solid_static_state_test.cpp SolidStaticControls.RelativeLimitsRawNormsAndNonfiniteFailure 유지 원문 검사 body 및 assertion 동일. 9ced91c636ffa144e3fe1bd9748589a2a38f7afe41bd79eb1a71a7d0336144a8 9ced91c636ffa144e3fe1bd9748589a2a38f7afe41bd79eb1a71a7d0336144a8 ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().force_residual.numerator_norm, 1.0) | EXPECT_DOUBLE_EQ(result.Value().force_residual.denominator_scale, 100.0) | EXPECT_EQ(result.Value().force_residual.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_EQ(result.Value().force_residual.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(result.Value().force_residual.passed) | EXPECT_TRUE(result.Value().translation_correction.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence(r, f, p, du, u) .Value() .force_residual.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence(r, f, p, du, u).HasValue()) | EXPECT_FALSE( fesa::EvaluateSolidStaticConvergence(r, f, fesa::Vector{2U}, du, u) .HasValue()) ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().force_residual.numerator_norm, 1.0) | EXPECT_DOUBLE_EQ(result.Value().force_residual.denominator_scale, 100.0) | EXPECT_EQ(result.Value().force_residual.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_EQ(result.Value().force_residual.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(result.Value().force_residual.passed) | EXPECT_TRUE(result.Value().translation_correction.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence(r, f, p, du, u) .Value() .force_residual.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence(r, f, p, du, u).HasValue()) | EXPECT_FALSE( fesa::EvaluateSolidStaticConvergence(r, f, fesa::Vector{2U}, du, u) .HasValue()) -Refactor tests/unit/analysis/solid_static_state_test.cpp support@1-6 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/solid_static_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e53402f8f5992b27b6c5a2443adf6251c74adbe566e295fba59e1621404883ca 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/thermal_analysis_state_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/analysis/thermal_analysis_state_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 505bda8adef4e2255a4ce1d76d08c96b5806da8652e397048a0b49e5fb364557 505bda8adef4e2255a4ce1d76d08c96b5806da8652e397048a0b49e5fb364557 해당 없음 해당 없음 -Refactor tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.OwnsRawInitialInventoryAfterDomainAndAssemblyDestruction ThermalAnalysisState.OwnsRawInitialInventoryAfterDomainAndAssemblyDestruction; assertion 24개 tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.OwnsRawInitialInventoryAfterDomainAndAssemblyDestruction 유지 원문 검사 body 및 assertion 동일. 29995b83f8751fc439725b0f3a266b7237c909a921280e02a60ef86b340ba760 29995b83f8751fc439725b0f3a266b7237c909a921280e02a60ef86b340ba760 "ASSERT_TRUE(state.HasValue()) | EXPECT_EQ(state.Value().NodeOrder(), (std::vector{1, 2, 3, 4})) | EXPECT_EQ(state.Value().NodeSourceIds()[0].source_label_text, ""0007"") | EXPECT_EQ(state.Value().ElementSourceIds()[0].source_label_text, ""0013"") | EXPECT_EQ(state.Value().ElementOrder(), (std::vector{0})) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_TRUE(initial.is_initial) | EXPECT_FALSE(initial.completed.has_value()) | EXPECT_EQ(initial.time, 0) | EXPECT_EQ(initial.time_increment, 0) | EXPECT_EQ(initial.temperature[a], -20.) | EXPECT_EQ(initial.temperature[5 + a], 0.) | EXPECT_EQ(initial.temperature[10 + a], 0.) | EXPECT_EQ(initial.temperature[15 + a], 7.125) | ASSERT_EQ(state.Value().ReactionDofs().size(), 2U) | EXPECT_EQ(state.Value().ReactionDofs()[0].node, 1U) | EXPECT_EQ(state.Value().ReactionDofs()[0].source_dof, 11) | EXPECT_EQ(state.Value().ReactionDofs()[1].node, 4U) | EXPECT_EQ(state.Value().ReactionDofs()[1].source_dof, 15) | EXPECT_EQ(state.Value().ConstraintMask()[row][a], ((row == 0 && a == 0) || (row == 3 && a == 4)) ? 1 : 0) | ASSERT_EQ(state.Value().FluxLocalFrames().size(), 1U) | EXPECT_EQ(frame[0], (fesa::Vector3{1, 0, 0})) | EXPECT_EQ(frame[1], (fesa::Vector3{0, 1, 0})) | EXPECT_EQ(frame[2], (fesa::Vector3{0, 0, 1}))" "ASSERT_TRUE(state.HasValue()) | EXPECT_EQ(state.Value().NodeOrder(), (std::vector{1, 2, 3, 4})) | EXPECT_EQ(state.Value().NodeSourceIds()[0].source_label_text, ""0007"") | EXPECT_EQ(state.Value().ElementSourceIds()[0].source_label_text, ""0013"") | EXPECT_EQ(state.Value().ElementOrder(), (std::vector{0})) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_TRUE(initial.is_initial) | EXPECT_FALSE(initial.completed.has_value()) | EXPECT_EQ(initial.time, 0) | EXPECT_EQ(initial.time_increment, 0) | EXPECT_EQ(initial.temperature[a], -20.) | EXPECT_EQ(initial.temperature[5 + a], 0.) | EXPECT_EQ(initial.temperature[10 + a], 0.) | EXPECT_EQ(initial.temperature[15 + a], 7.125) | ASSERT_EQ(state.Value().ReactionDofs().size(), 2U) | EXPECT_EQ(state.Value().ReactionDofs()[0].node, 1U) | EXPECT_EQ(state.Value().ReactionDofs()[0].source_dof, 11) | EXPECT_EQ(state.Value().ReactionDofs()[1].node, 4U) | EXPECT_EQ(state.Value().ReactionDofs()[1].source_dof, 15) | EXPECT_EQ(state.Value().ConstraintMask()[row][a], ((row == 0 && a == 0) || (row == 3 && a == 4)) ? 1 : 0) | ASSERT_EQ(state.Value().FluxLocalFrames().size(), 1U) | EXPECT_EQ(frame[0], (fesa::Vector3{1, 0, 0})) | EXPECT_EQ(frame[1], (fesa::Vector3{0, 1, 0})) | EXPECT_EQ(frame[2], (fesa::Vector3{0, 0, 1}))" -Refactor tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.CompletedZeroReactionPayloadAndExactActualDelta ThermalAnalysisState.CompletedZeroReactionPayloadAndExactActualDelta; assertion 20개 tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.CompletedZeroReactionPayloadAndExactActualDelta 유지 원문 검사 body 및 assertion 동일. faed8c798f105f506facfa91da0c77b9b7b74944851a63a32542901d8887197f faed8c798f105f506facfa91da0c77b9b7b74944851a63a32542901d8887197f ASSERT_TRUE(state.HasValue()) | EXPECT_TRUE(state.Value().ReactionDofs().empty()) | EXPECT_FALSE(state.Value().IsComplete()) | ASSERT_TRUE(frame.HasValue()) | ASSERT_TRUE(frame.Value().completed.has_value()) | EXPECT_EQ(frame.Value().completed->reaction_heat_rate.Size(), 0U) | EXPECT_EQ(frame.Value().time_increment, .3) | ASSERT_TRUE(state.Value().CommitAcceptedFrame(frame.Value()).IsOk()) | EXPECT_TRUE(state.Value().IsComplete()) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 4U) | EXPECT_EQ(state.Value().CommittedState().time, .9) | EXPECT_EQ(state.Value().CommittedState().time_increment, .3) | EXPECT_NE(state.Value().CommittedState().time - state.Value().AcceptedFrames()[2].time, .3) | EXPECT_EQ(state.Value().NominalTimeIncrement(), .3) | EXPECT_EQ(state.Value().TimePeriod(), .9) | EXPECT_FALSE( state.Value().CommitAcceptedFrame(state.Value().CommittedState()).IsOk()) | ASSERT_TRUE(short_state.HasValue()) | ASSERT_TRUE(last.HasValue()) | EXPECT_EQ(last.Value().time, 10.) | EXPECT_EQ(last.Value().time_increment, 1.) ASSERT_TRUE(state.HasValue()) | EXPECT_TRUE(state.Value().ReactionDofs().empty()) | EXPECT_FALSE(state.Value().IsComplete()) | ASSERT_TRUE(frame.HasValue()) | ASSERT_TRUE(frame.Value().completed.has_value()) | EXPECT_EQ(frame.Value().completed->reaction_heat_rate.Size(), 0U) | EXPECT_EQ(frame.Value().time_increment, .3) | ASSERT_TRUE(state.Value().CommitAcceptedFrame(frame.Value()).IsOk()) | EXPECT_TRUE(state.Value().IsComplete()) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 4U) | EXPECT_EQ(state.Value().CommittedState().time, .9) | EXPECT_EQ(state.Value().CommittedState().time_increment, .3) | EXPECT_NE(state.Value().CommittedState().time - state.Value().AcceptedFrames()[2].time, .3) | EXPECT_EQ(state.Value().NominalTimeIncrement(), .3) | EXPECT_EQ(state.Value().TimePeriod(), .9) | EXPECT_FALSE( state.Value().CommitAcceptedFrame(state.Value().CommittedState()).IsOk()) | ASSERT_TRUE(short_state.HasValue()) | ASSERT_TRUE(last.HasValue()) | EXPECT_EQ(last.Value().time, 10.) | EXPECT_EQ(last.Value().time_increment, 1.) -Refactor tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.EveryRejectedCandidatePreservesEntireAcceptedHistory ThermalAnalysisState.EveryRejectedCandidatePreservesEntireAcceptedHistory; assertion 9개 tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.EveryRejectedCandidatePreservesEntireAcceptedHistory 유지 원문 검사 body 및 assertion 동일. aaa377193cb0575e53405ed69aeeb7cc32e7c97bc56c05922bce6edcc2b1e74c aaa377193cb0575e53405ed69aeeb7cc32e7c97bc56c05922bce6edcc2b1e74c ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(state.CommitAcceptedFrame(first.Value()).IsOk()) | ASSERT_TRUE(candidate.HasValue()) | EXPECT_FALSE(state.CommitAcceptedFrame(candidate.Value()).IsOk()) | EXPECT_EQ(Snapshot(state), snapshot) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(state.CommitAcceptedFrame(second.Value()).IsOk()) | EXPECT_NE(state.CommittedState().temperature[0], 900) ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(state.CommitAcceptedFrame(first.Value()).IsOk()) | ASSERT_TRUE(candidate.HasValue()) | EXPECT_FALSE(state.CommitAcceptedFrame(candidate.Value()).IsOk()) | EXPECT_EQ(Snapshot(state), snapshot) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(state.CommitAcceptedFrame(second.Value()).IsOk()) | EXPECT_NE(state.CommittedState().temperature[0], 900) -Refactor tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.CheckedCandidateRejectsMissingDataAndHugeGridDoesNotPreallocateHistory ThermalAnalysisState.CheckedCandidateRejectsMissingDataAndHugeGridDoesNotPreallocateHistory; assertion 11개 tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.CheckedCandidateRejectsMissingDataAndHugeGridDoesNotPreallocateHistory 유지 원문 검사 body 및 assertion 동일. 5d135e0312f358eb833a0a1dfd014621f15196041711663bd84ceb65e3027aec 5d135e0312f358eb833a0a1dfd014621f15196041711663bd84ceb65e3027aec ASSERT_TRUE(state.HasValue()) | EXPECT_EQ(state.Value().TimeGrid().Count(), 4294967295U) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_FALSE(state.Value().IsComplete()) | ASSERT_TRUE(last.HasValue()) | EXPECT_EQ(last.Value().frame_index, 4294967295ULL) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(last.Value()).IsOk()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(0, fesa::Vector{20}, fesa::Vector{0}, {{}}) .HasValue()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(1, fesa::Vector{19}, fesa::Vector{0}, {{}}) .HasValue()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(1, fesa::Vector{20}, fesa::Vector{1}, {{}}) .HasValue()) | EXPECT_FALSE(state.Value() .MakeCompletedFrame(1, fesa::Vector{20}, fesa::Vector{0}, {}) .HasValue()) ASSERT_TRUE(state.HasValue()) | EXPECT_EQ(state.Value().TimeGrid().Count(), 4294967295U) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_FALSE(state.Value().IsComplete()) | ASSERT_TRUE(last.HasValue()) | EXPECT_EQ(last.Value().frame_index, 4294967295ULL) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(last.Value()).IsOk()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(0, fesa::Vector{20}, fesa::Vector{0}, {{}}) .HasValue()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(1, fesa::Vector{19}, fesa::Vector{0}, {{}}) .HasValue()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(1, fesa::Vector{20}, fesa::Vector{1}, {{}}) .HasValue()) | EXPECT_FALSE(state.Value() .MakeCompletedFrame(1, fesa::Vector{20}, fesa::Vector{0}, {}) .HasValue()) -Refactor tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.RejectsAssemblyFromAnotherDomainAndInvalidSchedule ThermalAnalysisState.RejectsAssemblyFromAnotherDomainAndInvalidSchedule; assertion 9개 tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.RejectsAssemblyFromAnotherDomainAndInvalidSchedule 유지 원문 검사 body 및 assertion 동일. 6cf18a4e7b7be31455ff4b43a91438c2dd613d6d822d85a7ba34e30d330c4bfd 6cf18a4e7b7be31455ff4b43a91438c2dd613d6d822d85a7ba34e30d330c4bfd ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(fm.HasValue()) | ASSERT_TRUE(sm.HasValue()) | ASSERT_TRUE(fd.HasValue()) | ASSERT_TRUE(sd.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | EXPECT_FALSE(fesa::ThermalAnalysisState::Create(sm.Value(), sd.Value(), assembly.Value()) .HasValue()) | EXPECT_FALSE(State(false, 10, 3, 3).HasValue()) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(fm.HasValue()) | ASSERT_TRUE(sm.HasValue()) | ASSERT_TRUE(fd.HasValue()) | ASSERT_TRUE(sd.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | EXPECT_FALSE(fesa::ThermalAnalysisState::Create(sm.Value(), sd.Value(), assembly.Value()) .HasValue()) | EXPECT_FALSE(State(false, 10, 3, 3).HasValue()) -Refactor tests/unit/analysis/thermal_analysis_state_test.cpp support@1-117 helper/oracle/fixture/include/static assertion 구간: Definition, if, State, Candidate, Snapshot, for tests/unit/analysis/thermal_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7d5e5a315ff7f87c595a8854c5f8c267b900112d685f26afaea2a8b5510843e9 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/thermal_time_grid_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/analysis/thermal_time_grid_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a2f5f4ff554e4c7d127640394d45cd41bba3df2adde92d39071f720af402ff3e a2f5f4ff554e4c7d127640394d45cd41bba3df2adde92d39071f720af402ff3e 해당 없음 해당 없음 -Refactor tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.SingleStepUsesPeriodAsActualIncrement ThermalTimeGrid.SingleStepUsesPeriodAsActualIncrement; assertion 3개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.SingleStepUsesPeriodAsActualIncrement 유지 원문 검사 body 및 assertion 동일. df81cdf149e0a1f046502f072502b69775e5fded5a9aa972da75fc19d78c9157 df81cdf149e0a1f046502f072502b69775e5fded5a9aa972da75fc19d78c9157 ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 1U) | EXPECT_EQ(grid.Value().Delta(1U), 2.0) ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 1U) | EXPECT_EQ(grid.Value().Delta(1U), 2.0) -Refactor tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.PreservesGenuineRemainderOutsideInputCells ThermalTimeGrid.PreservesGenuineRemainderOutsideInputCells; assertion 3개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.PreservesGenuineRemainderOutsideInputCells 유지 원문 검사 body 및 assertion 동일. 1e5b5e3355eb2dd4f5bf7575918fd02b20d03764ecd41dad7b95bacae0ca4ee0 1e5b5e3355eb2dd4f5bf7575918fd02b20d03764ecd41dad7b95bacae0ca4ee0 ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 4U) | EXPECT_EQ(grid.Value().Delta(4U), 1.6653345369377348e-16) ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 4U) | EXPECT_EQ(grid.Value().Delta(4U), 1.6653345369377348e-16) -Refactor tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.OriginalSubnormalCellsRespectOpenAndClosedContact ThermalTimeGrid.OriginalSubnormalCellsRespectOpenAndClosedContact; assertion 5개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.OriginalSubnormalCellsRespectOpenAndClosedContact 유지 원문 검사 body 및 assertion 동일. b3750249efc6650ce8d7651338ad3bbd1a681960df204dc61df4047dbb7b7cec b3750249efc6650ce8d7651338ad3bbd1a681960df204dc61df4047dbb7b7cec ASSERT_TRUE(even.HasValue()) | ASSERT_TRUE(odd.HasValue()) | EXPECT_EQ(even.Value().Count(), 3U) | EXPECT_EQ(odd.Value().Count(), 4U) | EXPECT_EQ(odd.Value().Delta(4U), 2 * tiny) ASSERT_TRUE(even.HasValue()) | ASSERT_TRUE(odd.HasValue()) | EXPECT_EQ(even.Value().Count(), 3U) | EXPECT_EQ(odd.Value().Count(), 4U) | EXPECT_EQ(odd.Value().Delta(4U), 2 * tiny) -Refactor tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.DecimalCellsCounterexampleAndScale ThermalTimeGrid.DecimalCellsCounterexampleAndScale; assertion 8개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.DecimalCellsCounterexampleAndScale 유지 원문 검사 body 및 assertion 동일. 55542fd9e560e9916102520ef1a4955d9b86bf134c0bbc4d6010cee6fa01e746 55542fd9e560e9916102520ef1a4955d9b86bf134c0bbc4d6010cee6fa01e746 ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 3U) | EXPECT_EQ(grid.Value().Delta(3U), delta) | EXPECT_EQ(grid.Value().Time(3U), period) | ASSERT_TRUE(old_counterexample.HasValue()) | EXPECT_EQ(old_counterexample.Value().Count(), 31U) | EXPECT_EQ(old_counterexample.Value().Delta(31U), .17262758624947144) | EXPECT_FALSE( fesa::ThermalTimeGrid::Create(5.351455173733616, .17262758624947144, 30U) .HasValue()) ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 3U) | EXPECT_EQ(grid.Value().Delta(3U), delta) | EXPECT_EQ(grid.Value().Time(3U), period) | ASSERT_TRUE(old_counterexample.HasValue()) | EXPECT_EQ(old_counterexample.Value().Count(), 31U) | EXPECT_EQ(old_counterexample.Value().Delta(31U), .17262758624947144) | EXPECT_FALSE( fesa::ThermalTimeGrid::Create(5.351455173733616, .17262758624947144, 30U) .HasValue()) -Refactor tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.BinadeLimitsAndMaximumFinitePreserveOriginalCells ThermalTimeGrid.BinadeLimitsAndMaximumFinitePreserveOriginalCells; assertion 8개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.BinadeLimitsAndMaximumFinitePreserveOriginalCells 유지 원문 검사 body 및 assertion 동일. 51807a8419bb57da7a52205af4bae20dd05265ee7bc2f446e396d861b9894232 51807a8419bb57da7a52205af4bae20dd05265ee7bc2f446e396d861b9894232 ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 3U) | EXPECT_EQ(grid.Value().Delta(3U), max / 3) | ASSERT_TRUE(upper.HasValue()) | EXPECT_EQ(upper.Value().Count(), 4294967295U) | EXPECT_TRUE(upper.Value().Frame(4294967295U).HasValue()) | EXPECT_FALSE( fesa::ThermalTimeGrid::Create(4294967296., 1., 4294967295U).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create( max, std::numeric_limits::denorm_min(), 4294967295U) .HasValue()) ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 3U) | EXPECT_EQ(grid.Value().Delta(3U), max / 3) | ASSERT_TRUE(upper.HasValue()) | EXPECT_EQ(upper.Value().Count(), 4294967295U) | EXPECT_TRUE(upper.Value().Frame(4294967295U).HasValue()) | EXPECT_FALSE( fesa::ThermalTimeGrid::Create(4294967296., 1., 4294967295U).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create( max, std::numeric_limits::denorm_min(), 4294967295U) .HasValue()) -Refactor tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.ShortenedIncrementAndCheckedFrames ThermalTimeGrid.ShortenedIncrementAndCheckedFrames; assertion 15개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.ShortenedIncrementAndCheckedFrames 유지 원문 검사 body 및 assertion 동일. 26a8db8885d7920f5ee954491b801daefb3c4ad8e88e8bca8ffc4a394f668c07 26a8db8885d7920f5ee954491b801daefb3c4ad8e88e8bca8ffc4a394f668c07 ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 4U) | EXPECT_EQ(grid.Value().Time(0U), 0.) | ASSERT_TRUE(grid.Value().Frame(i).HasValue()) | EXPECT_EQ(grid.Value().Time(i), i == 4 ? 10. : 3. * i) | EXPECT_EQ(grid.Value().Delta(i), i == 4 ? 1. : 3.) | EXPECT_FALSE(grid.Value().Frame(0U).HasValue()) | EXPECT_FALSE(grid.Value().Frame(5U).HasValue()) | ASSERT_TRUE(decimals.HasValue()) | EXPECT_EQ(decimals.Value().Time(3U), .30000000000000004) | EXPECT_EQ(decimals.Value().Delta(10U), .1) | ASSERT_TRUE(close.HasValue()) | ASSERT_TRUE(short_last.HasValue()) | EXPECT_EQ(close.Value().Delta(3U), .3) | EXPECT_EQ(short_last.Value().Delta(3U), .2999999999999998) ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 4U) | EXPECT_EQ(grid.Value().Time(0U), 0.) | ASSERT_TRUE(grid.Value().Frame(i).HasValue()) | EXPECT_EQ(grid.Value().Time(i), i == 4 ? 10. : 3. * i) | EXPECT_EQ(grid.Value().Delta(i), i == 4 ? 1. : 3.) | EXPECT_FALSE(grid.Value().Frame(0U).HasValue()) | EXPECT_FALSE(grid.Value().Frame(5U).HasValue()) | ASSERT_TRUE(decimals.HasValue()) | EXPECT_EQ(decimals.Value().Time(3U), .30000000000000004) | EXPECT_EQ(decimals.Value().Delta(10U), .1) | ASSERT_TRUE(close.HasValue()) | ASSERT_TRUE(short_last.HasValue()) | EXPECT_EQ(close.Value().Delta(3U), .3) | EXPECT_EQ(short_last.Value().Delta(3U), .2999999999999998) -Refactor tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.RejectsInvalidControlsBeforeIntegerConversion ThermalTimeGrid.RejectsInvalidControlsBeforeIntegerConversion; assertion 5개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.RejectsInvalidControlsBeforeIntegerConversion 유지 원문 검사 body 및 assertion 동일. b7b300d2a27beb1ef71e1c4d21f574e4e5ae22ed3fe52417e940fbd4138cc5d4 b7b300d2a27beb1ef71e1c4d21f574e4e5ae22ed3fe52417e940fbd4138cc5d4 EXPECT_FALSE(fesa::ThermalTimeGrid::Create(bad, 1.).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create(1., bad).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create(1., 1., 0U).HasValue()) | ASSERT_TRUE(equal.HasValue()) | EXPECT_EQ(equal.Value().Delta(1U), 2.) EXPECT_FALSE(fesa::ThermalTimeGrid::Create(bad, 1.).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create(1., bad).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create(1., 1., 0U).HasValue()) | ASSERT_TRUE(equal.HasValue()) | EXPECT_EQ(equal.Value().Delta(1U), 2.) -Refactor tests/unit/analysis/thermal_time_grid_test.cpp support@1-7 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/thermal_time_grid_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4d7509a96a86780faf4709a37c3191b68a01d0bb865d28925558e8e69d405ef2 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/analysis/transient_heat_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 10개 tests/unit/analysis/transient_heat_procedure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. efff26c6a7451be803515541313038b9555ee01362e280915dab4d272586bef6 efff26c6a7451be803515541313038b9555ee01362e280915dab4d272586bef6 해당 없음 해당 없음 -Refactor tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.RawConstrainedCapacityProducesSignedTwoDofJump TransientHeatProcedure.RawConstrainedCapacityProducesSignedTwoDofJump; assertion 8개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.RawConstrainedCapacityProducesSignedTwoDofJump 유지 원문 검사 body 및 assertion 동일. 980805fa102cb221909d1766e40746ce9cf7fae52ceea5e89b51cf424ad0b73f 980805fa102cb221909d1766e40746ce9cf7fae52ceea5e89b51cf424ad0b73f ASSERT_TRUE(first.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().temperature[0], -.2) | EXPECT_DOUBLE_EQ(first.Value().reaction[0], 4.8) | ASSERT_TRUE(second.HasValue()) | EXPECT_NEAR(second.Value().temperature[0], .04, 16 * std::numeric_limits::epsilon() * .04) | EXPECT_DOUBLE_EQ(second.Value().reaction[0], 1.44) | EXPECT_EQ(solver.factorizations, 1) | EXPECT_EQ(solver.solves, 2) ASSERT_TRUE(first.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().temperature[0], -.2) | EXPECT_DOUBLE_EQ(first.Value().reaction[0], 4.8) | ASSERT_TRUE(second.HasValue()) | EXPECT_NEAR(second.Value().temperature[0], .04, 16 * std::numeric_limits::epsilon() * .04) | EXPECT_DOUBLE_EQ(second.Value().reaction[0], 1.44) | EXPECT_EQ(solver.factorizations, 1) | EXPECT_EQ(solver.solves, 2) -Refactor tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.AllConstrainedBypassesZeroSizeFactorization TransientHeatProcedure.AllConstrainedBypassesZeroSizeFactorization; assertion 5개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.AllConstrainedBypassesZeroSizeFactorization 유지 원문 검사 body 및 assertion 동일. 202ca407a90853cb361a166c1a72d391cf1a085616e54ed9c39d5c3d5d13a566 202ca407a90853cb361a166c1a72d391cf1a085616e54ed9c39d5c3d5d13a566 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().reaction[0], 6) | EXPECT_EQ(result.Value().reaction[1], 6) | EXPECT_EQ(solver.factorizations, 0) | EXPECT_EQ(solver.solves, 0) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().reaction[0], 6) | EXPECT_EQ(result.Value().reaction[1], 6) | EXPECT_EQ(solver.factorizations, 0) | EXPECT_EQ(solver.solves, 0) -Refactor tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.CancellationCannotUseFullSystemScaleToPassCertificate TransientHeatProcedure.CancellationCannotUseFullSystemScaleToPassCertificate; assertion 3개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.CancellationCannotUseFullSystemScaleToPassCertificate 유지 원문 검사 body 및 assertion 동일. 5e0a1ecdf9e220cf428d03065cb6e98777df3afbfa34e41ce945372420f3004e 5e0a1ecdf9e220cf428d03065cb6e98777df3afbfa34e41ce945372420f3004e ASSERT_TRUE(valid.HasValue()) | EXPECT_DOUBLE_EQ(valid.Value().temperature[0], .8) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, old, .5, solver, cache) .HasValue()) ASSERT_TRUE(valid.HasValue()) | EXPECT_DOUBLE_EQ(valid.Value().temperature[0], .8) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, old, .5, solver, cache) .HasValue()) -Refactor tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.ExactZeroAndUniformInsulatedStatesAndActualDeltaCache TransientHeatProcedure.ExactZeroAndUniformInsulatedStatesAndActualDeltaCache; assertion 12개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.ExactZeroAndUniformInsulatedStatesAndActualDeltaCache 유지 원문 검사 body 및 assertion 동일. ac935c01b0c672b156e573888f2e14ff26dfd1ee8579b195b45a210b274f7b78 ac935c01b0c672b156e573888f2e14ff26dfd1ee8579b195b45a210b274f7b78 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(state.IsComplete()) | EXPECT_EQ(state.AcceptedFrames().size(), schedule.steps + 1) | EXPECT_EQ(state.CommittedState().time, schedule.period) | EXPECT_EQ(state.CommittedState().time_increment, schedule.last) | EXPECT_EQ(solver.factorizations, schedule.factors) | EXPECT_EQ(solver.solves, static_cast(schedule.steps)) | EXPECT_FALSE(state.AcceptedFrames()[0].completed.has_value()) | EXPECT_EQ(frame.temperature[i], 0) | EXPECT_NEAR(frame.temperature[i], initial, 4096 * 0x1p-53 * initial) | EXPECT_EQ(frame.completed->reaction_heat_rate.Size(), 0U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(state.IsComplete()) | EXPECT_EQ(state.AcceptedFrames().size(), schedule.steps + 1) | EXPECT_EQ(state.CommittedState().time, schedule.period) | EXPECT_EQ(state.CommittedState().time_increment, schedule.last) | EXPECT_EQ(solver.factorizations, schedule.factors) | EXPECT_EQ(solver.solves, static_cast(schedule.steps)) | EXPECT_FALSE(state.AcceptedFrames()[0].completed.has_value()) | EXPECT_EQ(frame.temperature[i], 0) | EXPECT_NEAR(frame.temperature[i], initial, 4096 * 0x1p-53 * initial) | EXPECT_EQ(frame.completed->reaction_heat_rate.Size(), 0U) -Refactor tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.MklMatchesIndependentAffineDiscreteModeAndDissipation TransientHeatProcedure.MklMatchesIndependentAffineDiscreteModeAndDissipation; assertion 15개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.MklMatchesIndependentAffineDiscreteModeAndDissipation 유지 원문 검사 body 및 assertion 동일. 469b0381e9116d635764dd3052feeddf1df682d761cf3122988c87b66b6157ec 469b0381e9116d635764dd3052feeddf1df682d761cf3122988c87b66b6157ec ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(candidate.temperature[i], mode[i / 5] / 4, bound) | EXPECT_LE(candidate.evidence.beta_cert, candidate.evidence.beta_limit) | EXPECT_LE(candidate.evidence.energy_defect, candidate.evidence.energy_bound) | EXPECT_TRUE(candidate.evidence.dissipation_checked) | EXPECT_LE(candidate.evidence.dissipation_defect, candidate.evidence.dissipation_bound) | ASSERT_TRUE(flux.HasValue()) | EXPECT_NEAR(q.X(), .5, 16 * bound + 4096 * 0x1p-53 * .5) | EXPECT_NEAR(q.Y(), 0, 16 * bound) | EXPECT_NEAR(q.Z(), 0, 16 * bound) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(candidate.temperature[i], mode[i / 5] / 4, bound) | EXPECT_LE(candidate.evidence.beta_cert, candidate.evidence.beta_limit) | EXPECT_LE(candidate.evidence.energy_defect, candidate.evidence.energy_bound) | EXPECT_TRUE(candidate.evidence.dissipation_checked) | EXPECT_LE(candidate.evidence.dissipation_defect, candidate.evidence.dissipation_bound) | ASSERT_TRUE(flux.HasValue()) | EXPECT_NEAR(q.X(), .5, 16 * bound + 4096 * 0x1p-53 * .5) | EXPECT_NEAR(q.Y(), 0, 16 * bound) | EXPECT_NEAR(q.Z(), 0, 16 * bound) -Refactor tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.LaterSolveRecoveryAndPayloadFailuresPreserveEveryAcceptedBit TransientHeatProcedure.LaterSolveRecoveryAndPayloadFailuresPreserveEveryAcceptedBit; assertion 13개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.LaterSolveRecoveryAndPayloadFailuresPreserveEveryAcceptedBit 유지 원문 검사 body 및 assertion 동일. 2f4ea89dc0b1fb735d45915b043a1f2de650e0a55a98df2b4d95ce7bad84c001 2f4ea89dc0b1fb735d45915b043a1f2de650e0a55a98df2b4d95ce7bad84c001 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_FALSE(state.Value().IsComplete()) | EXPECT_EQ(evidence.size(), 1U) | EXPECT_EQ(Snapshot(state.Value()), before) | EXPECT_EQ(state.Value().AcceptedFrames()[0].temperature[0], 2) | EXPECT_EQ(state.Value().CommittedState().temperature[0], 1) | EXPECT_EQ(solver.factorizations, 1) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_FALSE(state.Value().IsComplete()) | EXPECT_EQ(evidence.size(), 1U) | EXPECT_EQ(Snapshot(state.Value()), before) | EXPECT_EQ(state.Value().AcceptedFrames()[0].temperature[0], 2) | EXPECT_EQ(state.Value().CommittedState().temperature[0], 1) | EXPECT_EQ(solver.factorizations, 1) -Refactor tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.SignedPowerConstrainedReactionAndDisconnectedComponentBalance TransientHeatProcedure.SignedPowerConstrainedReactionAndDisconnectedComponentBalance; assertion 14개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.SignedPowerConstrainedReactionAndDisconnectedComponentBalance 유지 원문 검사 body 및 assertion 동일. c99828c6527db730f1bb8ec96e489a85090c34c5d3084fe0a1dc5fc3dd507e15 c99828c6527db730f1bb8ec96e489a85090c34c5d3084fe0a1dc5fc3dd507e15 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(evidence.size(), 2U) | EXPECT_NEAR(balance[0], .25 * reaction, evidence[step - 1].energy_bound + 4096 * 0x1p-53 * scale[0]) | EXPECT_NEAR(balance[1], 0, evidence[step - 1].energy_bound + 4096 * 0x1p-53 * scale[1]) | EXPECT_FALSE(evidence[step - 1].dissipation_checked) | ASSERT_TRUE(other_domain.HasValue()) | ASSERT_TRUE(other.HasValue()) | EXPECT_NEAR(first.temperature[i], second.temperature[i], 4096 * 0x1p-53 * std::abs(second.temperature[i])) | EXPECT_NEAR(first.completed->reaction_heat_rate[0] - second.completed->reaction_heat_rate[0], -3., 4096 * 0x1p-53 * 3) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(evidence.size(), 2U) | EXPECT_NEAR(balance[0], .25 * reaction, evidence[step - 1].energy_bound + 4096 * 0x1p-53 * scale[0]) | EXPECT_NEAR(balance[1], 0, evidence[step - 1].energy_bound + 4096 * 0x1p-53 * scale[1]) | EXPECT_FALSE(evidence[step - 1].dissipation_checked) | ASSERT_TRUE(other_domain.HasValue()) | ASSERT_TRUE(other.HasValue()) | EXPECT_NEAR(first.temperature[i], second.temperature[i], 4096 * 0x1p-53 * std::abs(second.temperature[i])) | EXPECT_NEAR(first.completed->reaction_heat_rate[0] - second.completed->reaction_heat_rate[0], -3., 4096 * 0x1p-53 * 3) -Refactor tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.ConstructionEnclosuresRetainExactIdentitiesAndSubnormalLoss TransientHeatProcedure.ConstructionEnclosuresRetainExactIdentitiesAndSubnormalLoss; assertion 9개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.ConstructionEnclosuresRetainExactIdentitiesAndSubnormalLoss 유지 원문 검사 body 및 assertion 동일. 99c40aa53ebd7840c50827f7a7cba6e8c37e21c37797d984dfff01c81f812fb5 99c40aa53ebd7840c50827f7a7cba6e8c37e21c37797d984dfff01c81f812fb5 EXPECT_EQ(value.lower, expected) | EXPECT_EQ(value.upper, expected) | EXPECT_LE(midpoint.lower, 1) | EXPECT_GE(midpoint.upper, std::nextafter(1., 2.)) | EXPECT_LE(half.lower, 0) | EXPECT_GE(half.upper, tiny) | EXPECT_NE(half.lower, half.upper) | EXPECT_FALSE( b::Mul(b::I{std::numeric_limits::max()}, b::I{2}).IsFinite()) | EXPECT_GT(b::Roundoff(80, b::I{tiny}).upper, 0) EXPECT_EQ(value.lower, expected) | EXPECT_EQ(value.upper, expected) | EXPECT_LE(midpoint.lower, 1) | EXPECT_GE(midpoint.upper, std::nextafter(1., 2.)) | EXPECT_LE(half.lower, 0) | EXPECT_GE(half.upper, tiny) | EXPECT_NE(half.lower, half.upper) | EXPECT_FALSE( b::Mul(b::I{std::numeric_limits::max()}, b::I{2}).IsFinite()) | EXPECT_GT(b::Roundoff(80, b::I{tiny}).upper, 0) -Refactor tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.GenericAlgebraRejectsInvalidInputsAndUncertifiedSubnormalSolve TransientHeatProcedure.GenericAlgebraRejectsInvalidInputsAndUncertifiedSubnormalSolve; assertion 5개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.GenericAlgebraRejectsInvalidInputsAndUncertifiedSubnormalSolve 유지 원문 검사 body 및 assertion 동일. 521aae60d1b90ac0380baf56f738a93910d9d758dbc2a785fb80e0cc5548087b 521aae60d1b90ac0380baf56f738a93910d9d758dbc2a785fb80e0cc5548087b EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, fesa::Vector{2}, delta, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, {{0}, {0}, fesa::Vector{1, 1}}, fesa::Vector{2}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, fesa::Vector{1}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({invalid, c, q}, p, fesa::Vector{2}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, small, fesa::Vector{2}, .5, solver, cache) .HasValue()) EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, fesa::Vector{2}, delta, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, {{0}, {0}, fesa::Vector{1, 1}}, fesa::Vector{2}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, fesa::Vector{1}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({invalid, c, q}, p, fesa::Vector{2}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, small, fesa::Vector{2}, .5, solver, cache) .HasValue()) -Refactor tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.SerialAndTbbExecutionsHaveIdenticalAcceptedHistories TransientHeatProcedure.SerialAndTbbExecutionsHaveIdenticalAcceptedHistories; assertion 4개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.SerialAndTbbExecutionsHaveIdenticalAcceptedHistories 유지 원문 검사 body 및 assertion 동일. d88a406c7cd08b89d4d7877bf387792819e771b3133dbf4ab7f248ecbd55cb22 d88a406c7cd08b89d4d7877bf387792819e771b3133dbf4ab7f248ecbd55cb22 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(left.HasValue()) | ASSERT_TRUE(right.HasValue()) | EXPECT_EQ(Snapshot(left.Value().state), Snapshot(right.Value().state)) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(left.HasValue()) | ASSERT_TRUE(right.HasValue()) | EXPECT_EQ(Snapshot(left.Value().state), Snapshot(right.Value().state)) -Refactor tests/unit/analysis/transient_heat_procedure_test.cpp support@1-103 helper/oracle/fixture/include/static assertion 구간: ti, Messages, Plate, TwoMatrix, CountingSolver, Snapshot, for, if tests/unit/analysis/transient_heat_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4ee5ea61dfb7fb7b623a25046b64a1e7bb04f1bc8fafe69970766d1634cb027c 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/app/output_paths_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/app/output_paths_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 23aa6fa1dac950505061d2d64a2ad10abffb76bcabc0232cd0afef512c863107 23aa6fa1dac950505061d2d64a2ad10abffb76bcabc0232cd0afef512c863107 해당 없음 해당 없음 -Refactor tests/unit/app/output_paths_test.cpp OutputPaths.RejectsFirstTokenContainingOutputSubstring OutputPaths.RejectsFirstTokenContainingOutputSubstring; assertion 2개 tests/unit/app/output_paths_test.cpp OutputPaths.RejectsFirstTokenContainingOutputSubstring 유지 원문 검사 body 및 assertion 동일. b5fcd67ff4f6a7eaa6e06e55668193dd70ba3822879887699b02d4baf7b419b1 b5fcd67ff4f6a7eaa6e06e55668193dd70ba3822879887699b02d4baf7b419b1 "ASSERT_FALSE(paths.HasValue()) | EXPECT_EQ(paths.GetStatus().Diagnostics().front().entity_identity, ""argument_index=0;argument=abc--outputdef"")" "ASSERT_FALSE(paths.HasValue()) | EXPECT_EQ(paths.GetStatus().Diagnostics().front().entity_identity, ""argument_index=0;argument=abc--outputdef"")" -Refactor tests/unit/app/output_paths_test.cpp OutputPaths.RejectsEveryOutputSubstringVariant OutputPaths.RejectsEveryOutputSubstringVariant; assertion 1개 tests/unit/app/output_paths_test.cpp OutputPaths.RejectsEveryOutputSubstringVariant 유지 원문 검사 body 및 assertion 동일. 9ccaab67728c7c0a433b6ece05c14731aa50e6b5010d9de5e18eb258fe6b4d3d 9ccaab67728c7c0a433b6ece05c14731aa50e6b5010d9de5e18eb258fe6b4d3d ASSERT_FALSE(paths.HasValue()) ASSERT_FALSE(paths.HasValue()) -Refactor tests/unit/app/output_paths_test.cpp OutputPaths.DerivesNormalizedSiblingNamesFromRelativeInput OutputPaths.DerivesNormalizedSiblingNamesFromRelativeInput; assertion 4개 tests/unit/app/output_paths_test.cpp OutputPaths.DerivesNormalizedSiblingNamesFromRelativeInput 유지 원문 검사 body 및 assertion 동일. be83317f7274e5567210d53981799a741b7beb27bd40f47391f2417fac426bd0 be83317f7274e5567210d53981799a741b7beb27bd40f47391f2417fac426bd0 "ASSERT_TRUE(paths.HasValue()) | EXPECT_EQ( paths.Value().input_path, std::filesystem::path{""C:/invocation/current/models/Beam.Model.INP""}) | EXPECT_EQ(paths.Value().results_path, std::filesystem::path{ ""C:/invocation/current/models/Beam.Model_results.h5""}) | EXPECT_EQ(paths.Value().log_path, std::filesystem::path{ ""C:/invocation/current/models/Beam.Model_log.txt""})" "ASSERT_TRUE(paths.HasValue()) | EXPECT_EQ( paths.Value().input_path, std::filesystem::path{""C:/invocation/current/models/Beam.Model.INP""}) | EXPECT_EQ(paths.Value().results_path, std::filesystem::path{ ""C:/invocation/current/models/Beam.Model_results.h5""}) | EXPECT_EQ(paths.Value().log_path, std::filesystem::path{ ""C:/invocation/current/models/Beam.Model_log.txt""})" -Refactor tests/unit/app/output_paths_test.cpp OutputPaths.PreservesBasenameCaseAndPrecedingDots OutputPaths.PreservesBasenameCaseAndPrecedingDots; assertion 3개 tests/unit/app/output_paths_test.cpp OutputPaths.PreservesBasenameCaseAndPrecedingDots 유지 원문 검사 body 및 assertion 동일. 61885c6eea856194a2be897fc370b6aaaab094a608da558e7459b8e5798941a8 61885c6eea856194a2be897fc370b6aaaab094a608da558e7459b8e5798941a8 "ASSERT_TRUE(paths.HasValue()) | EXPECT_EQ(paths.Value().results_path, std::filesystem::path{""C:/models/.Beam.v2_results.h5""}) | EXPECT_EQ(paths.Value().log_path, std::filesystem::path{""C:/models/.Beam.v2_log.txt""})" "ASSERT_TRUE(paths.HasValue()) | EXPECT_EQ(paths.Value().results_path, std::filesystem::path{""C:/models/.Beam.v2_results.h5""}) | EXPECT_EQ(paths.Value().log_path, std::filesystem::path{""C:/models/.Beam.v2_log.txt""})" -Refactor tests/unit/app/output_paths_test.cpp OutputPaths.RejectsInputWithoutInpFinalExtension OutputPaths.RejectsInputWithoutInpFinalExtension; assertion 1개 tests/unit/app/output_paths_test.cpp OutputPaths.RejectsInputWithoutInpFinalExtension 유지 원문 검사 body 및 assertion 동일. 0014158f8fc76b488d78ce4409d51ef8f401c1f051f2cd0db5620a776c3b9953 0014158f8fc76b488d78ce4409d51ef8f401c1f051f2cd0db5620a776c3b9953 ASSERT_FALSE(paths.HasValue()) ASSERT_FALSE(paths.HasValue()) -Refactor tests/unit/app/output_paths_test.cpp OutputPaths.LeaseCollisionPreservesPublicOutputPaths OutputPaths.LeaseCollisionPreservesPublicOutputPaths; assertion 6개 tests/unit/app/output_paths_test.cpp OutputPaths.LeaseCollisionPreservesPublicOutputPaths 유지 원문 검사 body 및 assertion 동일. b93c20d80194e4d6ef75b5cc9deeed307c666c32d1eb009a75058426755fa409 b93c20d80194e4d6ef75b5cc9deeed307c666c32d1eb009a75058426755fa409 ASSERT_TRUE(first.HasValue()) | EXPECT_FALSE(std::filesystem::exists(paths.results_path)) | EXPECT_FALSE(std::filesystem::exists(paths.log_path)) | ASSERT_FALSE(second.HasValue()) | EXPECT_FALSE(std::filesystem::exists(paths.results_path)) | EXPECT_FALSE(std::filesystem::exists(paths.log_path)) ASSERT_TRUE(first.HasValue()) | EXPECT_FALSE(std::filesystem::exists(paths.results_path)) | EXPECT_FALSE(std::filesystem::exists(paths.log_path)) | ASSERT_FALSE(second.HasValue()) | EXPECT_FALSE(std::filesystem::exists(paths.results_path)) | EXPECT_FALSE(std::filesystem::exists(paths.log_path)) -Refactor tests/unit/app/output_paths_test.cpp OutputPaths.AnalysisRequestCarriesInputResultAndLogPaths OutputPaths.AnalysisRequestCarriesInputResultAndLogPaths; assertion 3개 tests/unit/app/output_paths_test.cpp OutputPaths.AnalysisRequestCarriesInputResultAndLogPaths 유지 원문 검사 body 및 assertion 동일. c48fbc834105a6cd2380b9a77237a1f2990fd348e4c796cb5ba405a37b2d07b2 c48fbc834105a6cd2380b9a77237a1f2990fd348e4c796cb5ba405a37b2d07b2 "EXPECT_EQ(request.input_path, ""C:/models/model.inp"") | EXPECT_EQ(request.output_path, ""C:/models/model_results.h5"") | EXPECT_EQ(request.log_path, ""C:/models/model_log.txt"")" "EXPECT_EQ(request.input_path, ""C:/models/model.inp"") | EXPECT_EQ(request.output_path, ""C:/models/model_results.h5"") | EXPECT_EQ(request.log_path, ""C:/models/model_log.txt"")" -Refactor tests/unit/app/output_paths_test.cpp support@1-49 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, ExpectFailureCode tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8dbf6924f3d67728bb5446141ed4ace5ac53a860966902e0e81cfe6dc39db3c4 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/app/output_paths_test.cpp support@71-72 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b196b7affd091bd4430c558ecb836979300676f2db7a408c62e9271c62e40d71 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/app/output_paths_test.cpp support@89-90 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a5bd942724af8adb3d7c4b014a78f9a28247931c4ea15756008b12b39aeb68fd 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/app/output_paths_test.cpp support@109-110 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. af57532578cc6d4bc6c633b7417372ef65a6b94c1efa40c6a66a0c0a47624792 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/app/output_paths_test.cpp support@128-129 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 30515567df68d6c58a8531445f79936aa9236b7440ac2d675f11334b4e1278b9 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/app/output_paths_test.cpp support@140-141 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/assembly/load_assembler_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 11개 tests/unit/assembly/load_assembler_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 67464dfa75fd5a01a96d5757f20061cbbf936c4ac7f16b605314de94aabeeee3 34eb602efea7903941426ad18f10ba54bdabd46e4e262ba6efcb5ffabf2af2d3 해당 없음 해당 없음 -Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AccumulatesGenericContributionsInSuppliedSourceOrder LoadAssembly.AccumulatesGenericContributionsInSuppliedSourceOrder; assertion 3개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AccumulatesGenericContributionsInSuppliedSourceOrder 유지 원문 검사 body 및 assertion 동일. aff7361b21837067a746e74160c69e478361e53af3444bffe4d0e557a557c690 aff7361b21837067a746e74160c69e478361e53af3444bffe4d0e557a557c690 ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value()[0U], -1.0) | EXPECT_DOUBLE_EQ(result.Value()[2U], -2.5) ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value()[0U], -1.0) | EXPECT_DOUBLE_EQ(result.Value()[2U], -2.5) -Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsGenericContributionErrorsBeforeCandidateCommit LoadAssembly.RejectsGenericContributionErrorsBeforeCandidateCommit; assertion 2개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsGenericContributionErrorsBeforeCandidateCommit 유지 원문 검사 body 및 assertion 동일. 4516bacc631826833398902d64155fc5f6d7c6906375f9966010ff7e7691dc7e 4516bacc631826833398902d64155fc5f6d7c6906375f9966010ff7e7691dc7e ASSERT_TRUE(repeated.HasValue()) | EXPECT_DOUBLE_EQ(repeated.Value()[1U], 3.0) ASSERT_TRUE(repeated.HasValue()) | EXPECT_DOUBLE_EQ(repeated.Value()[1U], 3.0) -Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AssemblesNodeSetAndSixComponentLoads LoadAssembly.AssemblesNodeSetAndSixComponentLoads; assertion 5개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AssemblesNodeSetAndSixComponentLoads 유지 원문 검사 body 및 assertion 동일. 1bdb44b82711f7c6e58780cce70be76a8c21cd6eb2017a77241d7b4ed031b4d5 1bdb44b82711f7c6e58780cce70be76a8c21cd6eb2017a77241d7b4ed031b4d5 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 12U) | EXPECT_EQ( std::vector(result.Value().Data(), result.Value().Data() + 12U), (std::vector{1.0, 2.0, 0.0, -4.0, 5.0, 0.0, 1.0, 0.0, 3.0, 0.0, 5.0, 6.0})) | EXPECT_EQ(fixture.dofs->ConstrainedDofs(), (std::vector{0U})) | EXPECT_DOUBLE_EQ(result.Value()[0U], 1.0) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 12U) | EXPECT_EQ( std::vector(result.Value().Data(), result.Value().Data() + 12U), (std::vector{1.0, 2.0, 0.0, -4.0, 5.0, 0.0, 1.0, 0.0, 3.0, 0.0, 5.0, 6.0})) | EXPECT_EQ(fixture.dofs->ConstrainedDofs(), (std::vector{0U})) | EXPECT_DOUBLE_EQ(result.Value()[0U], 1.0) -Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AccumulatesSignedLoadsInSourceOrder LoadAssembly.AccumulatesSignedLoadsInSourceOrder; assertion 4개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AccumulatesSignedLoadsInSourceOrder 유지 원문 검사 body 및 assertion 동일. 0e27baa9eedd061df41e6eb0ceaaf6ed5073343675c3d17412eb4bb33f7c055f 0e27baa9eedd061df41e6eb0ceaaf6ed5073343675c3d17412eb4bb33f7c055f ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value()[0U], 1.0) | EXPECT_DOUBLE_EQ(second.Value()[0U], 0.0) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value()[0U], 1.0) | EXPECT_DOUBLE_EQ(second.Value()[0U], 0.0) -Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AggregatesAllSixGlobalShellLoadComponentsInSourceOrder LoadAssembly.AggregatesAllSixGlobalShellLoadComponentsInSourceOrder; assertion 3개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AggregatesAllSixGlobalShellLoadComponentsInSourceOrder 유지 원문 검사 body 및 assertion 동일. 79cc99592d223bf47a84a2e6417bf67d9cd139106e217bba7ea034759ea36814 79cc99592d223bf47a84a2e6417bf67d9cd139106e217bba7ea034759ea36814 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 24U) | EXPECT_EQ( std::vector(result.Value().Data(), result.Value().Data() + 6U), (std::vector{1.0, 2.0, 3.0, 4.0, 5.0, 0.0})) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 24U) | EXPECT_EQ( std::vector(result.Value().Data(), result.Value().Data() + 6U), (std::vector{1.0, 2.0, 3.0, 4.0, 5.0, 0.0})) -Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AcceptsExactlyZeroAggregateShellMoment LoadAssembly.AcceptsExactlyZeroAggregateShellMoment; assertion 4개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AcceptsExactlyZeroAggregateShellMoment 유지 원문 검사 body 및 assertion 동일. 733bd45f5146ff23a07a82104b8331e28b49c335ddf6a0aec54ad75bf642a316 733bd45f5146ff23a07a82104b8331e28b49c335ddf6a0aec54ad75bf642a316 ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value()[3U], 0.0) | EXPECT_DOUBLE_EQ(result.Value()[4U], 0.0) | EXPECT_DOUBLE_EQ(result.Value()[5U], 0.0) ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value()[3U], 0.0) | EXPECT_DOUBLE_EQ(result.Value()[4U], 0.0) | EXPECT_DOUBLE_EQ(result.Value()[5U], 0.0) -Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.EnforcesAggregateShellMomentDirectorProjectionThreshold LoadAssembly.EnforcesAggregateShellMomentDirectorProjectionThreshold; assertion 7개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.EnforcesAggregateShellMomentDirectorProjectionThreshold 유지 원문 검사 body 및 assertion 동일. fea2c3252ba8945cb8611b9feb2879b6eeaa387e739a47709caf10ce8a447337 fea2c3252ba8945cb8611b9feb2879b6eeaa387e739a47709caf10ce8a447337 "ASSERT_TRUE(accepted.HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(rejected.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""unsupported-drilling-load"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].keyword, ""CLOAD"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].entity_identity, ""10"")" "ASSERT_TRUE(accepted.HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(rejected.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""unsupported-drilling-load"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].keyword, ""CLOAD"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].entity_identity, ""10"")" -Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsDrillingMomentBeforeEffectiveRhsCanBeFormed LoadAssembly.RejectsDrillingMomentBeforeEffectiveRhsCanBeFormed; assertion 4개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsDrillingMomentBeforeEffectiveRhsCanBeFormed 유지 원문 검사 body 및 assertion 동일. 18508214d24d7672307273a6b6575be56d3d3e18b1890c1a5889d38969795375 18508214d24d7672307273a6b6575be56d3d3e18b1890c1a5889d38969795375 "ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(rejected.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""unsupported-drilling-load"")" "ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(rejected.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""unsupported-drilling-load"")" -Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.FormsNonzeroPrescribedEffectiveRhs LoadAssembly.FormsNonzeroPrescribedEffectiveRhs; assertion 4개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.FormsNonzeroPrescribedEffectiveRhs 유지 원문 검사 body 및 assertion 동일. ec68ce4b41d1de543a53650df90bfd6ff69f294deb6e1ed1ccdf92e34e1a90b4 ec68ce4b41d1de543a53650df90bfd6ff69f294deb6e1ed1ccdf92e34e1a90b4 ASSERT_TRUE(full.HasValue()) | ASSERT_TRUE(rhs.HasValue()) | ASSERT_EQ(rhs.Value().Size(), 4U) | EXPECT_EQ(std::vector(rhs.Value().Data(), rhs.Value().Data() + 4U), (std::vector{10.0, 18.0, 39.0, 38.0})) ASSERT_TRUE(full.HasValue()) | ASSERT_TRUE(rhs.HasValue()) | ASSERT_EQ(rhs.Value().Size(), 4U) | EXPECT_EQ(std::vector(rhs.Value().Data(), rhs.Value().Data() + 4U), (std::vector{10.0, 18.0, 39.0, 38.0})) -Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsNonfiniteOrDimensionMismatch LoadAssembly.RejectsNonfiniteOrDimensionMismatch; assertion 0개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsNonfiniteOrDimensionMismatch 유지 원문 검사 body 및 assertion 동일. 5cc4ddbbe4657de7260e4d3d06882ec35eddc096aaa2410c36fc7c0d1d8c2d87 5cc4ddbbe4657de7260e4d3d06882ec35eddc096aaa2410c36fc7c0d1d8c2d87 해당 없음 해당 없음 -Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.ZeroLoadsRemainZero LoadAssembly.ZeroLoadsRemainZero; assertion 8개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.ZeroLoadsRemainZero 유지 원문 검사 body 및 assertion 동일. 7635872252315cd7031e15d3dc4016b63f745528c55c7be84c6651c5f25dcf19 7635872252315cd7031e15d3dc4016b63f745528c55c7be84c6651c5f25dcf19 ASSERT_TRUE(full.HasValue()) | EXPECT_TRUE(std::all_of(full.Value().Data(), full.Value().Data() + full.Value().Size(), [](const double value) { return value == 0.0; })) | ASSERT_TRUE(free_rhs.HasValue()) | EXPECT_EQ(free_rhs.Value().Size(), 6U) | EXPECT_TRUE(std::all_of(free_rhs.Value().Data(), free_rhs.Value().Data() + free_rhs.Value().Size(), [](const double value) { return value == 0.0; })) | ASSERT_TRUE(constrained_full.HasValue()) | ASSERT_TRUE(constrained_rhs.HasValue()) | EXPECT_EQ(constrained_rhs.Value().Size(), 0U) ASSERT_TRUE(full.HasValue()) | EXPECT_TRUE(std::all_of(full.Value().Data(), full.Value().Data() + full.Value().Size(), [](const double value) { return value == 0.0; })) | ASSERT_TRUE(free_rhs.HasValue()) | EXPECT_EQ(free_rhs.Value().Size(), 6U) | EXPECT_TRUE(std::all_of(free_rhs.Value().Data(), free_rhs.Value().Data() + free_rhs.Value().Size(), [](const double value) { return value == 0.0; })) | ASSERT_TRUE(constrained_full.HasValue()) | ASSERT_TRUE(constrained_rhs.HasValue()) | EXPECT_EQ(constrained_rhs.Value().Size(), 0U) -Refactor tests/unit/assembly/load_assembler_test.cpp support@1-189 helper/oracle/fixture/include/static assertion 구간: LoadFixture, MakeFixture, if, MakeShellFixture, MakeDenseSparse, ExpectFailureCode, FakeLoad tests/unit/assembly/load_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 09f288a427937029f1c93b5bd10b79a1ce75968600aab87a6017627ab43bbb4d 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/assembly/load_assembler_test.cpp support@276-277 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/assembly/load_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a0c3d2fdca7428b4606aecf54fc991ff71f42a6f8dfbf900da33db75c07db5e7 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/assembly/load_assembler_test.cpp support@301-302 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/assembly/load_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e5f1c6b05c193f37b5f5903549e70c2637df4efaa741399afea556790fcdd57d 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/assembly/load_assembler_test.cpp support@320-321 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/assembly/load_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6d8dccf1a14f246c0076046744d9f5f32eb359e499a133ad3f09fc9a287f59b3 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/assembly/load_assembler_test.cpp support@343-344 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/assembly/load_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 27a372ac23810e34bb1331fb06ff49031906985bdadbc563bb9322e0c7b5e944 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/assembly/parallel_for_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/assembly/parallel_for_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c33eb3d92d7e4fd8c3ae369e223cc123437ab59d17653a4114fc4d80b1230314 c33eb3d92d7e4fd8c3ae369e223cc123437ab59d17653a4114fc4d80b1230314 해당 없음 해당 없음 -Refactor tests/unit/assembly/parallel_for_test.cpp ParallelFor.ZeroOneManyExecuteExactlyOnce ParallelFor.ZeroOneManyExecuteExactlyOnce; assertion 2개 tests/unit/assembly/parallel_for_test.cpp ParallelFor.ZeroOneManyExecuteExactlyOnce 유지 원문 검사 body 및 assertion 동일. ae877ba853b9d44bca19a62c65606b8130804cfd09d020aed0c560e1bf25fbb3 ae877ba853b9d44bca19a62c65606b8130804cfd09d020aed0c560e1bf25fbb3 EXPECT_EQ(zero_visits.load(std::memory_order_relaxed), 0U) | EXPECT_EQ(visits[index].load(std::memory_order_relaxed), 1U) EXPECT_EQ(zero_visits.load(std::memory_order_relaxed), 0U) | EXPECT_EQ(visits[index].load(std::memory_order_relaxed), 1U) -Refactor tests/unit/assembly/parallel_for_test.cpp ParallelFor.SerialAndTbbProduceStableIndexedOutput ParallelFor.SerialAndTbbProduceStableIndexedOutput; assertion 4개 tests/unit/assembly/parallel_for_test.cpp ParallelFor.SerialAndTbbProduceStableIndexedOutput 유지 원문 검사 body 및 assertion 동일. 2ab6268405c5255e272585cd37131ac4b46b20a59e68b8e4a151839a35ac727b 2ab6268405c5255e272585cd37131ac4b46b20a59e68b8e4a151839a35ac727b EXPECT_EQ(serial_visits[index].load(std::memory_order_relaxed), 1U) | EXPECT_EQ(tbb_visits[index].load(std::memory_order_relaxed), 1U) | EXPECT_EQ(tbb_output[index].load(std::memory_order_relaxed), serial_output[index].load(std::memory_order_relaxed)) | EXPECT_EQ(tbb_output[index].load(std::memory_order_relaxed), value_for_index(index)) EXPECT_EQ(serial_visits[index].load(std::memory_order_relaxed), 1U) | EXPECT_EQ(tbb_visits[index].load(std::memory_order_relaxed), 1U) | EXPECT_EQ(tbb_output[index].load(std::memory_order_relaxed), serial_output[index].load(std::memory_order_relaxed)) | EXPECT_EQ(tbb_output[index].load(std::memory_order_relaxed), value_for_index(index)) -Refactor tests/unit/assembly/parallel_for_test.cpp ParallelFor.PropagatesBodyExceptionByContract ParallelFor.PropagatesBodyExceptionByContract; assertion 1개 tests/unit/assembly/parallel_for_test.cpp ParallelFor.PropagatesBodyExceptionByContract 유지 원문 검사 body 및 assertion 동일. e3d433539fb80a97ab4be815cbe5d2cd45434502bb2566bf94ff67bc15d4ee84 e3d433539fb80a97ab4be815cbe5d2cd45434502bb2566bf94ff67bc15d4ee84 "EXPECT_EQ(std::string{error.what()}, ""parallel-for-body-failure"")" "EXPECT_EQ(std::string{error.what()}, ""parallel-for-body-failure"")" -Refactor tests/unit/assembly/parallel_for_test.cpp support@1-25 helper/oracle/fixture/include/static assertion 구간: fesa, ParallelForBodyError, ParallelForBackends tests/unit/assembly/parallel_for_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9cd2b8b3b770e02c02d2fe88f4966177d86c949c6fc0904fdbcfbedc9994989a 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/assembly/parallel_for_test.cpp support@112-114 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/assembly/parallel_for_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/assembly/sparse_assembler_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/assembly/sparse_assembler_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0a9627a0923db100df6ce2d8ca2fada0d5d86cd156d2f12ac1c979a6f8291215 0a9627a0923db100df6ce2d8ca2fada0d5d86cd156d2f12ac1c979a6f8291215 해당 없음 해당 없음 -Refactor tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.AssemblesFakeRuntimeContributionsIntoExactDeterministicCsr SparseAssembly.AssemblesFakeRuntimeContributionsIntoExactDeterministicCsr; assertion 14개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.AssemblesFakeRuntimeContributionsIntoExactDeterministicCsr 유지 원문 검사 body 및 assertion 동일. 12ccb35b0634063643caa859a19ad70b4c5ffdd9c844561cf80ee3c18ab716f0 12ccb35b0634063643caa859a19ad70b4c5ffdd9c844561cf80ee3c18ab716f0 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), elements.size()) | EXPECT_EQ(serial.Value().Rows(), 18U) | EXPECT_EQ(serial.Value().Columns(), 18U) | EXPECT_EQ(serial.Value().RowOffsets(), (std::vector{0U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 6U, 6U, 9U, 9U, 9U, 12U})) | EXPECT_EQ(serial.Value().ColumnIndices(), (std::vector{0U, 12U, 0U, 12U, 14U, 17U, 12U, 14U, 17U, 12U, 14U, 17U})) | EXPECT_EQ(serial.Value().Values(), (std::vector{1.0, 2.0, 3.0, 9.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0})) | ASSERT_TRUE(repeated.HasValue()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), elements.size()) | EXPECT_EQ(serial.Value().Rows(), 18U) | EXPECT_EQ(serial.Value().Columns(), 18U) | EXPECT_EQ(serial.Value().RowOffsets(), (std::vector{0U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 6U, 6U, 9U, 9U, 9U, 12U})) | EXPECT_EQ(serial.Value().ColumnIndices(), (std::vector{0U, 12U, 0U, 12U, 14U, 17U, 12U, 14U, 17U, 12U, 14U, 17U})) | EXPECT_EQ(serial.Value().Values(), (std::vector{1.0, 2.0, 3.0, 9.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0})) | ASSERT_TRUE(repeated.HasValue()) -Refactor tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.SerialTbbAndRepeatedRunsAreByteIdentical SparseAssembly.SerialTbbAndRepeatedRunsAreByteIdentical; assertion 20개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.SerialTbbAndRepeatedRunsAreByteIdentical 유지 원문 검사 body 및 assertion 동일. 5849dbe7757b88a61317b8233042ef8e96361c3df7ffc77c6e5f428e52989d1e 5849dbe7757b88a61317b8233042ef8e96361c3df7ffc77c6e5f428e52989d1e ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | ASSERT_TRUE(dofs_result.HasValue()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), 2U) | EXPECT_EQ(serial.Value().Rows(), 18U) | EXPECT_EQ(serial.Value().Columns(), 18U) | EXPECT_EQ(serial.Value().RowOffsets(), dofs_result.Value().GetSparsePattern().row_offsets) | EXPECT_EQ(serial.Value().ColumnIndices(), dofs_result.Value().GetSparsePattern().column_indices) | EXPECT_TRUE(serial.Value().Validate().IsOk()) | ASSERT_TRUE(repeated.HasValue()) | EXPECT_DOUBLE_EQ(Entry(serial.Value(), row, column), Entry(serial.Value(), column, row)) | EXPECT_NEAR(Entry(serial.Value(), 0U, 0U), 120.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 0U, 6U), -120.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 6U, 6U), 200.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 6U, 12U), -80.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 12U, 12U), 80.0, 1.0e-12) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | ASSERT_TRUE(dofs_result.HasValue()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), 2U) | EXPECT_EQ(serial.Value().Rows(), 18U) | EXPECT_EQ(serial.Value().Columns(), 18U) | EXPECT_EQ(serial.Value().RowOffsets(), dofs_result.Value().GetSparsePattern().row_offsets) | EXPECT_EQ(serial.Value().ColumnIndices(), dofs_result.Value().GetSparsePattern().column_indices) | EXPECT_TRUE(serial.Value().Validate().IsOk()) | ASSERT_TRUE(repeated.HasValue()) | EXPECT_DOUBLE_EQ(Entry(serial.Value(), row, column), Entry(serial.Value(), column, row)) | EXPECT_NEAR(Entry(serial.Value(), 0U, 0U), 120.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 0U, 6U), -120.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 6U, 6U), 200.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 6U, 12U), -80.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 12U, 12U), 80.0, 1.0e-12) -Refactor tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.AssemblesFourNodeTwentyFourDofKernelAndPreservesDiagonalSlots SparseAssembly.AssemblesFourNodeTwentyFourDofKernelAndPreservesDiagonalSlots; assertion 12개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.AssemblesFourNodeTwentyFourDofKernelAndPreservesDiagonalSlots 유지 원문 검사 body 및 assertion 동일. 49e404af06df45dd33c41511e4b767b397f204af6dee8ddf123a19cc1159d489 49e404af06df45dd33c41511e4b767b397f204af6dee8ddf123a19cc1159d489 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(expected.HasValue()) | EXPECT_EQ(assembled.Value().Rows(), 24U) | EXPECT_EQ(assembled.Value().Columns(), 24U) | EXPECT_EQ(assembled.Value().Values().size(), 24U * 24U) | EXPECT_EQ(assembled.Value().RowOffsets(), dofs.Value().GetSparsePattern().row_offsets) | EXPECT_EQ(assembled.Value().ColumnIndices(), dofs.Value().GetSparsePattern().column_indices) | EXPECT_NE(std::lower_bound(begin, end, row), end) | EXPECT_DOUBLE_EQ(Entry(assembled.Value(), row, column), expected.Value().stabilized_global24(row, column)) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(expected.HasValue()) | EXPECT_EQ(assembled.Value().Rows(), 24U) | EXPECT_EQ(assembled.Value().Columns(), 24U) | EXPECT_EQ(assembled.Value().Values().size(), 24U * 24U) | EXPECT_EQ(assembled.Value().RowOffsets(), dofs.Value().GetSparsePattern().row_offsets) | EXPECT_EQ(assembled.Value().ColumnIndices(), dofs.Value().GetSparsePattern().column_indices) | EXPECT_NE(std::lower_bound(begin, end, row), end) | EXPECT_DOUBLE_EQ(Entry(assembled.Value(), row, column), expected.Value().stabilized_global24(row, column)) -Refactor tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.ShellSerialTbbReverseAndRepeatedRunsAreByteIdentical SparseAssembly.ShellSerialTbbReverseAndRepeatedRunsAreByteIdentical; assertion 6개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.ShellSerialTbbReverseAndRepeatedRunsAreByteIdentical 유지 원문 검사 body 및 assertion 동일. 8a7b6de57d65db7469d0151373d4dc4642b7279f6e4e036f8cc76bb27e0db170 8a7b6de57d65db7469d0151373d4dc4642b7279f6e4e036f8cc76bb27e0db170 ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), 2U) | ASSERT_TRUE(repeated.HasValue()) ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), 2U) | ASSERT_TRUE(repeated.HasValue()) -Refactor tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.S4AndS4rSemanticFixturesAssembleIdenticalStiffness SparseAssembly.S4AndS4rSemanticFixturesAssembleIdenticalStiffness; assertion 3개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.S4AndS4rSemanticFixturesAssembleIdenticalStiffness 유지 원문 검사 body 및 assertion 동일. e5a06a15276973da6be56d1ee497a913c183e8fae82909c70d28845de7fd434c e5a06a15276973da6be56d1ee497a913c183e8fae82909c70d28845de7fd434c ASSERT_TRUE(s4.HasValue()) | ASSERT_TRUE(s4r.HasValue()) | EXPECT_TRUE(std::any_of(s4.Value().Values().begin(), s4.Value().Values().end(), [](const double value) { return value != 0.0; })) ASSERT_TRUE(s4.HasValue()) | ASSERT_TRUE(s4r.HasValue()) | EXPECT_TRUE(std::any_of(s4.Value().Values().begin(), s4.Value().Values().end(), [](const double value) { return value != 0.0; })) -Refactor tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.RejectsLayoutAndDimensionsInStableElementOrder SparseAssembly.RejectsLayoutAndDimensionsInStableElementOrder; assertion 17개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.RejectsLayoutAndDimensionsInStableElementOrder 유지 원문 검사 body 및 assertion 동일. ff4bfe491d0dfc3b93ef770dd1edde00232b272f6fc225e437e5b547881bf596 ff4bfe491d0dfc3b93ef770dd1edde00232b272f6fc225e437e5b547881bf596 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_FALSE(candidate.HasValue()) | EXPECT_EQ(candidate.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(candidate.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""invalid-assembly-layout"") | EXPECT_EQ(diagnostic.keyword, ""*ELEMENT"") | EXPECT_EQ(diagnostic.entity_identity, ""10"") | EXPECT_EQ(diagnostic.message, ""Element stiffness layout must match its declared runtime layout."") | ASSERT_FALSE(candidate.HasValue()) | EXPECT_EQ(candidate.GetStatus().Diagnostics()[0U].code, ""invalid-assembly-dimensions"") | EXPECT_EQ(candidate.GetStatus().Diagnostics()[0U].entity_identity, ""20"") | EXPECT_EQ(first.DofLayout().node_indices, first_layout.node_indices) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, original_pattern.row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, original_pattern.column_indices) | EXPECT_TRUE(dofs.ValidateInvariants().IsOk())" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_FALSE(candidate.HasValue()) | EXPECT_EQ(candidate.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(candidate.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""invalid-assembly-layout"") | EXPECT_EQ(diagnostic.keyword, ""*ELEMENT"") | EXPECT_EQ(diagnostic.entity_identity, ""10"") | EXPECT_EQ(diagnostic.message, ""Element stiffness layout must match its declared runtime layout."") | ASSERT_FALSE(candidate.HasValue()) | EXPECT_EQ(candidate.GetStatus().Diagnostics()[0U].code, ""invalid-assembly-dimensions"") | EXPECT_EQ(candidate.GetStatus().Diagnostics()[0U].entity_identity, ""20"") | EXPECT_EQ(first.DofLayout().node_indices, first_layout.node_indices) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, original_pattern.row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, original_pattern.column_indices) | EXPECT_TRUE(dofs.ValidateInvariants().IsOk())" -Refactor tests/unit/assembly/sparse_assembler_test.cpp support@1-234 helper/oracle/fixture/include/static assertion 구간: MakeDefinition, MakeShellDefinition, if, DirectShellStiffness, AssembleShell, T, ByteIdentical, Entry, ReverseParallelFor, FakeStiffnessElement, ReturnLayout, MatrixFromRows, ExpectByteIdentical tests/unit/assembly/sparse_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 12c7014b00e0a996d4b63688b2f04f6fb4abb4e9816b9f607afa9e2219a057a0 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/assembly/sparse_assembler_test.cpp support@477-478 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/assembly/sparse_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/assembly/surface_pressure_assembler_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/assembly/surface_pressure_assembler_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 65b0c1bd703fc7bafdbd8200cf61935a039da6b80295f0ddee35027d2cf2dc78 65b0c1bd703fc7bafdbd8200cf61935a039da6b80295f0ddee35027d2cf2dc78 해당 없음 해당 없음 -Refactor tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.AssemblesFullDofsInPressureFacetAndRecordOrder SurfacePressureAssembly.AssemblesFullDofsInPressureFacetAndRecordOrder; assertion 12개 tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.AssemblesFullDofsInPressureFacetAndRecordOrder 유지 원문 검사 body 및 assertion 동일. 61ec658b973ff4f2a3c4dc06cd90c2b4dd2b5ac5d323c41996fcea64dd0375c7 61ec658b973ff4f2a3c4dc06cd90c2b4dd2b5ac5d323c41996fcea64dd0375c7 ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().diagnostics.empty()) | ASSERT_EQ(result.Value().full_external_force.Size(), 24U) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 1U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 2U], -0.5) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 3U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 4U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 5U], 0.0) | EXPECT_EQ(result.Value().full_external_tangent.Rows(), 24U) | EXPECT_EQ(result.Value().full_external_tangent.Columns(), 24U) | EXPECT_EQ(value, 0.0) ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().diagnostics.empty()) | ASSERT_EQ(result.Value().full_external_force.Size(), 24U) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 1U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 2U], -0.5) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 3U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 4U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 5U], 0.0) | EXPECT_EQ(result.Value().full_external_tangent.Rows(), 24U) | EXPECT_EQ(result.Value().full_external_tangent.Columns(), 24U) | EXPECT_EQ(value, 0.0) -Refactor tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.AddsRepeatedRecordsAndAppliesUnitFactorExactlyOnce SurfacePressureAssembly.AddsRepeatedRecordsAndAppliesUnitFactorExactlyOnce; assertion 2개 tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.AddsRepeatedRecordsAndAppliesUnitFactorExactlyOnce 유지 원문 검사 body 및 assertion 동일. 8fdc8dc50f731553ae45c3c08e921158c7ddc9dd639562d30ea5261e09ad46d8 8fdc8dc50f731553ae45c3c08e921158c7ddc9dd639562d30ea5261e09ad46d8 ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[node * 6U + 2U], -1.0) ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[node * 6U + 2U], -1.0) -Refactor tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.IsBitwiseStableForSerialAndParallelLocalEvaluation SurfacePressureAssembly.IsBitwiseStableForSerialAndParallelLocalEvaluation; assertion 8개 tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.IsBitwiseStableForSerialAndParallelLocalEvaluation 유지 원문 검사 body 및 assertion 동일. 48444c6f2917e44301611c69abf5fe3192dddea0f8bd5491faa6798a1b1ee682 48444c6f2917e44301611c69abf5fe3192dddea0f8bd5491faa6798a1b1ee682 ASSERT_TRUE(serial_result.HasValue()) | ASSERT_TRUE(parallel_result.HasValue()) | EXPECT_EQ(Values(serial_result.Value().full_external_force), Values(parallel_result.Value().full_external_force)) | EXPECT_EQ(serial_result.Value().full_external_tangent.RowOffsets(), parallel_result.Value().full_external_tangent.RowOffsets()) | EXPECT_EQ(serial_result.Value().full_external_tangent.ColumnIndices(), parallel_result.Value().full_external_tangent.ColumnIndices()) | EXPECT_EQ(serial_result.Value().full_external_tangent.Values(), parallel_result.Value().full_external_tangent.Values()) | EXPECT_TRUE(serial_result.Value().diagnostics.empty()) | EXPECT_TRUE(parallel_result.Value().diagnostics.empty()) ASSERT_TRUE(serial_result.HasValue()) | ASSERT_TRUE(parallel_result.HasValue()) | EXPECT_EQ(Values(serial_result.Value().full_external_force), Values(parallel_result.Value().full_external_force)) | EXPECT_EQ(serial_result.Value().full_external_tangent.RowOffsets(), parallel_result.Value().full_external_tangent.RowOffsets()) | EXPECT_EQ(serial_result.Value().full_external_tangent.ColumnIndices(), parallel_result.Value().full_external_tangent.ColumnIndices()) | EXPECT_EQ(serial_result.Value().full_external_tangent.Values(), parallel_result.Value().full_external_tangent.Values()) | EXPECT_TRUE(serial_result.Value().diagnostics.empty()) | EXPECT_TRUE(parallel_result.Value().diagnostics.empty()) -Refactor tests/unit/assembly/surface_pressure_assembler_test.cpp support@1-122 helper/oracle/fixture/include/static assertion 구간: PressureFixture, MakeFixture, if, Values tests/unit/assembly/surface_pressure_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 212fb026f9860fa82917c9a2a8e06c719b1338a414784431d36b14ce79330338 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/assembly/thermal_assembler_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/assembly/thermal_assembler_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bcac60bb3167ad3e6ec2d45f9ee08c7535bb121f71cae21a7cac9053440ec25a bcac60bb3167ad3e6ec2d45f9ee08c7535bb121f71cae21a7cac9053440ec25a 해당 없음 해당 없음 -Refactor tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.HandAssemblyPreservesSharedStationsMaterialOffsetAndThicknessJump ThermalAssembler.HandAssemblyPreservesSharedStationsMaterialOffsetAndThicknessJump; assertion 12개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.HandAssemblyPreservesSharedStationsMaterialOffsetAndThicknessJump 유지 원문 검사 body 및 assertion 동일. 2b58c82002dcecc533fba0030b665848e18c223902521a1e83fd2a87d742cb62 2b58c82002dcecc533fba0030b665848e18c223902521a1e83fd2a87d742cb62 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_EQ(assembled.Value().Conductivity().Rows(), 30U) | EXPECT_LE(std::abs(k(i, j) - expected.k(i, j)), ek(i, j) + gamma * expected.pk(i, j)) | EXPECT_LE(std::abs(c(i, j) - expected.c(i, j)), ec(i, j) + gamma * expected.pc(i, j)) | EXPECT_EQ(domain.Value().ThermalElements()[0].MaterialIndex(), 1U) | EXPECT_EQ(domain.Value().ThermalElements()[1].MaterialIndex(), 2U) | EXPECT_EQ(assembled.Value().ElementOrder(), (std::vector{0, 1})) | EXPECT_EQ(assembled.Value().Kernels()[0].SourceId().source_label_text, ""0009"") | EXPECT_EQ(assembled.Value().Scatters()[0][5 + a], assembled.Value().Scatters()[1][a])" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_EQ(assembled.Value().Conductivity().Rows(), 30U) | EXPECT_LE(std::abs(k(i, j) - expected.k(i, j)), ek(i, j) + gamma * expected.pk(i, j)) | EXPECT_LE(std::abs(c(i, j) - expected.c(i, j)), ec(i, j) + gamma * expected.pc(i, j)) | EXPECT_EQ(domain.Value().ThermalElements()[0].MaterialIndex(), 1U) | EXPECT_EQ(domain.Value().ThermalElements()[1].MaterialIndex(), 2U) | EXPECT_EQ(assembled.Value().ElementOrder(), (std::vector{0, 1})) | EXPECT_EQ(assembled.Value().Kernels()[0].SourceId().source_label_text, ""0009"") | EXPECT_EQ(assembled.Value().Scatters()[0][5 + a], assembled.Value().Scatters()[1][a])" -Refactor tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.SourceRowHeatInputRetainsPrescribedSignedDuplicateContributions ThermalAssembler.SourceRowHeatInputRetainsPrescribedSignedDuplicateContributions; assertion 15개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.SourceRowHeatInputRetainsPrescribedSignedDuplicateContributions 유지 원문 검사 body 및 assertion 동일. 17db9c94e9a588ae74c5f1a31a66d769b4b99a42263a1a0e04de71a3a1d53b0a 17db9c94e9a588ae74c5f1a31a66d769b4b99a42263a1a0e04de71a3a1d53b0a ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(dofs.Value().FreeEquation(full).has_value()) | EXPECT_EQ(result.Value().HeatInput()[full], 5.) | EXPECT_EQ(result.Value().HeatInput()[4], -7.) | EXPECT_GE(result.Value().HeatInputError()[full], 1.) | EXPECT_EQ(result.Value().HeatInput()[i], 0.) | EXPECT_EQ(result.Value().HeatInputError()[i], 0.) | ASSERT_TRUE(second_domain.HasValue()) | ASSERT_TRUE(second_model.HasValue()) | ASSERT_TRUE(second_dofs.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(second.Value().HeatInput()[full], 6.) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(dofs.Value().FreeEquation(full).has_value()) | EXPECT_EQ(result.Value().HeatInput()[full], 5.) | EXPECT_EQ(result.Value().HeatInput()[4], -7.) | EXPECT_GE(result.Value().HeatInputError()[full], 1.) | EXPECT_EQ(result.Value().HeatInput()[i], 0.) | EXPECT_EQ(result.Value().HeatInputError()[i], 0.) | ASSERT_TRUE(second_domain.HasValue()) | ASSERT_TRUE(second_model.HasValue()) | ASSERT_TRUE(second_dofs.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(second.Value().HeatInput()[full], 6.) -Refactor tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.SerialAndActualTbbOperatorsBoundsAndFluxAreBitwiseEqual ThermalAssembler.SerialAndActualTbbOperatorsBoundsAndFluxAreBitwiseEqual; assertion 11개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.SerialAndActualTbbOperatorsBoundsAndFluxAreBitwiseEqual 유지 원문 검사 body 및 assertion 동일. 7083d3f901965e28ae9783d436dcef27b2622cb304a5b6631c6081a6656a27e3 7083d3f901965e28ae9783d436dcef27b2622cb304a5b6631c6081a6656a27e3 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(parallel.HasValue()) | EXPECT_EQ(serial.Value().Conductivity().RowOffsets(), parallel.Value().Conductivity().RowOffsets()) | EXPECT_EQ(serial.Value().Conductivity().ColumnIndices(), parallel.Value().Conductivity().ColumnIndices()) | EXPECT_EQ( std::memcmp(serial.Value().HeatInput().Data(), parallel.Value().HeatInput().Data(), 30 * sizeof(double)), 0) | ASSERT_TRUE(sf.HasValue()) | ASSERT_TRUE(pf.HasValue()) | EXPECT_EQ( std::memcmp(sf.Value()[e][r].Components().data(), pf.Value()[e][r].Components().data(), 3 * sizeof(double)), 0) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(parallel.HasValue()) | EXPECT_EQ(serial.Value().Conductivity().RowOffsets(), parallel.Value().Conductivity().RowOffsets()) | EXPECT_EQ(serial.Value().Conductivity().ColumnIndices(), parallel.Value().Conductivity().ColumnIndices()) | EXPECT_EQ( std::memcmp(serial.Value().HeatInput().Data(), parallel.Value().HeatInput().Data(), 30 * sizeof(double)), 0) | ASSERT_TRUE(sf.HasValue()) | ASSERT_TRUE(pf.HasValue()) | EXPECT_EQ( std::memcmp(sf.Value()[e][r].Components().data(), pf.Value()[e][r].Components().data(), 3 * sizeof(double)), 0) -Refactor tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.DisconnectedComponentsHaveNoCrossBlockEntries ThermalAssembler.DisconnectedComponentsHaveNoCrossBlockEntries; assertion 6개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.DisconnectedComponentsHaveNoCrossBlockEntries 유지 원문 검사 body 및 assertion 동일. 18403e156469c7c5012f27a63e4d9f13d4a7cef5d14cf64fb3c66e8b2b461fd9 18403e156469c7c5012f27a63e4d9f13d4a7cef5d14cf64fb3c66e8b2b461fd9 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(matrix.Rows(), 40U) | EXPECT_EQ(row < 20, matrix.ColumnIndices()[p] < 20) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(matrix.Rows(), 40U) | EXPECT_EQ(row < 20, matrix.ColumnIndices()[p] < 20) -Refactor tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.RejectsWrongProfilesPartitionsAndNonfiniteAccumulation ThermalAssembler.RejectsWrongProfilesPartitionsAndNonfiniteAccumulation; assertion 11개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.RejectsWrongProfilesPartitionsAndNonfiniteAccumulation 유지 원문 검사 body 및 assertion 동일. 17b959b03e9990bb95823d4e571e8e027d95babe4d8e5f02400d920e12e24961 17b959b03e9990bb95823d4e571e8e027d95babe4d8e5f02400d920e12e24961 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(model.Value(), fesa::DofManager{}, fesa::SerialParallelFor{}) .HasValue()) | ASSERT_TRUE(other_domain.HasValue()) | ASSERT_TRUE(other_model.HasValue()) | ASSERT_TRUE(other_dofs.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(model.Value(), other_dofs.Value(), fesa::SerialParallelFor{}) .HasValue()) | ASSERT_TRUE(overflow_domain.HasValue()) | ASSERT_TRUE(overflow_model.HasValue()) | ASSERT_TRUE(overflow_dofs.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(overflow_model.Value(), overflow_dofs.Value(), fesa::TbbParallelFor{}) .HasValue()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(model.Value(), fesa::DofManager{}, fesa::SerialParallelFor{}) .HasValue()) | ASSERT_TRUE(other_domain.HasValue()) | ASSERT_TRUE(other_model.HasValue()) | ASSERT_TRUE(other_dofs.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(model.Value(), other_dofs.Value(), fesa::SerialParallelFor{}) .HasValue()) | ASSERT_TRUE(overflow_domain.HasValue()) | ASSERT_TRUE(overflow_model.HasValue()) | ASSERT_TRUE(overflow_dofs.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(overflow_model.Value(), overflow_dofs.Value(), fesa::TbbParallelFor{}) .HasValue()) -Refactor tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.ParallelKernelFailuresSelectStableSourceElement ThermalAssembler.ParallelKernelFailuresSelectStableSourceElement; assertion 7개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.ParallelKernelFailuresSelectStableSourceElement 유지 원문 검사 body 및 assertion 동일. 705c5cdaa64861e8c3cdc7f638eb3bbc8d6d8bb25de3e78dec00674cb5bee2f4 705c5cdaa64861e8c3cdc7f638eb3bbc8d6d8bb25de3e78dec00674cb5bee2f4 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_FALSE(serial.HasValue()) | ASSERT_FALSE(parallel.HasValue()) | EXPECT_EQ(serial.GetStatus().Diagnostics()[0].entity_identity, ""plate:0009"") | EXPECT_EQ(parallel.GetStatus().Diagnostics()[0].entity_identity, ""plate:0009"")" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_FALSE(serial.HasValue()) | ASSERT_FALSE(parallel.HasValue()) | EXPECT_EQ(serial.GetStatus().Diagnostics()[0].entity_identity, ""plate:0009"") | EXPECT_EQ(parallel.GetStatus().Diagnostics()[0].entity_identity, ""plate:0009"")" -Refactor tests/unit/assembly/thermal_assembler_test.cpp support@1-117 helper/oracle/fixture/include/static assertion 구간: Model, Dense, ExpectedMatrices, Expected, SameBits tests/unit/assembly/thermal_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b3e9525aaced1be323ec738ea9213a2323dd745f550425b6a612fa09fa176d50 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/build_info_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/build_info_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8bf9bfef45c45c9a09e0a0f98ee4cc38316e2550894c6e27ca599fdd650298b8 8bf9bfef45c45c9a09e0a0f98ee4cc38316e2550894c6e27ca599fdd650298b8 해당 없음 해당 없음 -Refactor tests/unit/build_info_test.cpp BuildInfo.VersionIsStableAndNonEmpty BuildInfo.VersionIsStableAndNonEmpty; assertion 3개 tests/unit/build_info_test.cpp BuildInfo.VersionIsStableAndNonEmpty 유지 원문 검사 body 및 assertion 동일. 0cb8bda21730c82347550102836f3bade449b4c590aa77348381f5066c040bd0 0cb8bda21730c82347550102836f3bade449b4c590aa77348381f5066c040bd0 "EXPECT_FALSE(first.empty()) | EXPECT_EQ(first, second) | EXPECT_TRUE(std::regex_match(std::string(first), std::regex{R""(^[0-9]+\.[0-9]+\.[0-9]+$)""}))" "EXPECT_FALSE(first.empty()) | EXPECT_EQ(first, second) | EXPECT_TRUE(std::regex_match(std::string(first), std::regex{R""(^[0-9]+\.[0-9]+\.[0-9]+$)""}))" -Refactor tests/unit/build_info_test.cpp BuildInfo.PublicHeaderHasNoBackendDependency BuildInfo.PublicHeaderHasNoBackendDependency; assertion 0개 tests/unit/build_info_test.cpp BuildInfo.PublicHeaderHasNoBackendDependency 유지 원문 검사 body 및 assertion 동일. 918ff7cf6a6f923c243045921b33a38cf1e94cfc73a2247b7fac6ac76ecc09a8 918ff7cf6a6f923c243045921b33a38cf1e94cfc73a2247b7fac6ac76ecc09a8 해당 없음 해당 없음 -Refactor tests/unit/build_info_test.cpp support@1-9 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/build_info_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c574474e8a7db434a18523c880adfe46ee608d4109b4dffa1ea623ef3c291ac5 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/constraints/boundary_condition_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/constraints/boundary_condition_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b5ff07b5925aab743568eff705c8827f7186889ad15541e90d2ed9fe6998ce79 b5ff07b5925aab743568eff705c8827f7186889ad15541e90d2ed9fe6998ce79 해당 없음 해당 없음 -Refactor tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.ResolvesStableNonzeroDefinitionsThroughBase BoundaryCondition.ResolvesStableNonzeroDefinitionsThroughBase; assertion 8개 tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.ResolvesStableNonzeroDefinitionsThroughBase 유지 원문 검사 body 및 assertion 동일. 8a449e3e0a082370655dda3bce51393da93ba796aac899f07b22572bffcc239d 8a449e3e0a082370655dda3bce51393da93ba796aac899f07b22572bffcc239d ASSERT_TRUE(definitions.HasValue()) | ASSERT_EQ(definitions.Value().size(), 2U) | EXPECT_EQ(definitions.Value()[0U].source_order, 4U) | EXPECT_EQ(definitions.Value()[0U].full_dof_index, 8U) | EXPECT_DOUBLE_EQ(definitions.Value()[0U].prescribed_value, 2.5) | EXPECT_EQ(definitions.Value()[1U].source_order, 4U) | EXPECT_EQ(definitions.Value()[1U].full_dof_index, 2U) | EXPECT_DOUBLE_EQ(definitions.Value()[1U].prescribed_value, 2.5) ASSERT_TRUE(definitions.HasValue()) | ASSERT_EQ(definitions.Value().size(), 2U) | EXPECT_EQ(definitions.Value()[0U].source_order, 4U) | EXPECT_EQ(definitions.Value()[0U].full_dof_index, 8U) | EXPECT_DOUBLE_EQ(definitions.Value()[0U].prescribed_value, 2.5) | EXPECT_EQ(definitions.Value()[1U].source_order, 4U) | EXPECT_EQ(definitions.Value()[1U].full_dof_index, 2U) | EXPECT_DOUBLE_EQ(definitions.Value()[1U].prescribed_value, 2.5) -Refactor tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.DomainOwnsExpandedPolymorphicDefinitionsStably BoundaryCondition.DomainOwnsExpandedPolymorphicDefinitionsStably; assertion 10개 tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.DomainOwnsExpandedPolymorphicDefinitionsStably 유지 원문 검사 body 및 assertion 동일. ccb7ed25f7f922616192d64201aa0dd2e02b20fc5f8c7e0b71b99921adff83f8 ccb7ed25f7f922616192d64201aa0dd2e02b20fc5f8c7e0b71b99921adff83f8 ASSERT_EQ(boundaries.size(), 2U) | EXPECT_EQ(fixture.model->ActiveBoundaryConditions(), (std::vector{0U, 1U})) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(first.Value()[0U].source_order, 0U) | EXPECT_EQ(first.Value()[0U].full_dof_index, 6U) | EXPECT_EQ(second.Value()[0U].source_order, 1U) | EXPECT_EQ(second.Value()[0U].full_dof_index, 7U) | EXPECT_DOUBLE_EQ(first.Value()[0U].prescribed_value, 1.25) | EXPECT_DOUBLE_EQ(second.Value()[0U].prescribed_value, 1.25) ASSERT_EQ(boundaries.size(), 2U) | EXPECT_EQ(fixture.model->ActiveBoundaryConditions(), (std::vector{0U, 1U})) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(first.Value()[0U].source_order, 0U) | EXPECT_EQ(first.Value()[0U].full_dof_index, 6U) | EXPECT_EQ(second.Value()[0U].source_order, 1U) | EXPECT_EQ(second.Value()[0U].full_dof_index, 7U) | EXPECT_DOUBLE_EQ(first.Value()[0U].prescribed_value, 1.25) | EXPECT_DOUBLE_EQ(second.Value()[0U].prescribed_value, 1.25) -Refactor tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.RejectsDuplicateConflictAndNonfiniteBeforeCandidateCommit BoundaryCondition.RejectsDuplicateConflictAndNonfiniteBeforeCandidateCommit; assertion 1개 tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.RejectsDuplicateConflictAndNonfiniteBeforeCandidateCommit 유지 원문 검사 body 및 assertion 동일. 0777dfa7d90a00f5b781ac55fbcd26140ce971f90872e5d827092036852f2a74 0777dfa7d90a00f5b781ac55fbcd26140ce971f90872e5d827092036852f2a74 ASSERT_TRUE( fixture.dofs->Build(*fixture.model, elements, {std::cref(initial)}) .IsOk()) ASSERT_TRUE( fixture.dofs->Build(*fixture.model, elements, {std::cref(initial)}) .IsOk()) -Refactor tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.AcceptsIdenticalOverlapAcrossSourceDefinitions BoundaryCondition.AcceptsIdenticalOverlapAcrossSourceDefinitions; assertion 1개 tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.AcceptsIdenticalOverlapAcrossSourceDefinitions 유지 원문 검사 body 및 assertion 동일. 55ca5cd284184aa80c4d75cdced2736d1dedf3ee376f11277ff7ce933d8b1ba7 55ca5cd284184aa80c4d75cdced2736d1dedf3ee376f11277ff7ce933d8b1ba7 ASSERT_TRUE(status.IsOk()) ASSERT_TRUE(status.IsOk()) -Refactor tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.ConcreteRejectsNonfinitePrescribedValue BoundaryCondition.ConcreteRejectsNonfinitePrescribedValue; assertion 3개 tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.ConcreteRejectsNonfinitePrescribedValue 유지 원문 검사 body 및 assertion 동일. 365ded0ccec2ef519edcd4c018361f02600a7e9ad1cf3964445965e9828e3a4a 365ded0ccec2ef519edcd4c018361f02600a7e9ad1cf3964445965e9828e3a4a "ASSERT_FALSE(result.HasValue()) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""nonfinite-prescribed-value"")" "ASSERT_FALSE(result.HasValue()) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""nonfinite-prescribed-value"")" -Refactor tests/unit/constraints/boundary_condition_test.cpp support@1-104 helper/oracle/fixture/include/static assertion 구간: BoundaryFixture, FakeBoundaryCondition, ExpectFailureCode, ExpectCandidate tests/unit/constraints/boundary_condition_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7f03c2fa0d373d6420b1c18029f29a429ed75303d12a175e71a3ce669882c48a 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/constraints/essential_constraints_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/constraints/essential_constraints_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3bbaa9486249cbfa5978af50408dc25eab1164fe110ebec87ea7f60f2019353a 3bbaa9486249cbfa5978af50408dc25eab1164fe110ebec87ea7f60f2019353a 해당 없음 해당 없음 -Refactor tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.ExtractsHandComputedBlocksInStableOrder EssentialConstraints.ExtractsHandComputedBlocksInStableOrder; assertion 18개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.ExtractsHandComputedBlocksInStableOrder 유지 원문 검사 body 및 assertion 동일. 674065ab604b3a41a09e73738260e57022bc1c90af16f0d1ff822a3fe000a923 674065ab604b3a41a09e73738260e57022bc1c90af16f0d1ff822a3fe000a923 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(blocks.k_ff.RowOffsets(), (std::vector{0U, 4U, 8U, 12U, 16U})) | EXPECT_EQ(blocks.k_ff.ColumnIndices(), (std::vector{0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U})) | EXPECT_EQ( blocks.k_ff.Values(), (std::vector{1.0, 3.0, 4.0, 6.0, 21.0, 23.0, 24.0, 26.0, 31.0, 33.0, 34.0, 36.0, 51.0, 53.0, 54.0, 56.0})) | EXPECT_EQ(blocks.k_fc.RowOffsets(), (std::vector{0U, 2U, 4U, 6U, 8U})) | EXPECT_EQ(blocks.k_fc.ColumnIndices(), (std::vector{0U, 1U, 0U, 1U, 0U, 1U, 0U, 1U})) | EXPECT_EQ(blocks.k_fc.Values(), (std::vector{2.0, 5.0, 22.0, 0.0, 32.0, 35.0, 52.0, 55.0})) | EXPECT_EQ(blocks.k_cf.RowOffsets(), (std::vector{0U, 4U, 8U})) | EXPECT_EQ(blocks.k_cf.ColumnIndices(), (std::vector{0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U})) | EXPECT_EQ( blocks.k_cf.Values(), (std::vector{11.0, 13.0, 14.0, 16.0, 41.0, 43.0, 44.0, 46.0})) | EXPECT_EQ(blocks.k_cc.RowOffsets(), (std::vector{0U, 2U, 4U})) | EXPECT_EQ(blocks.k_cc.ColumnIndices(), (std::vector{0U, 1U, 0U, 1U})) | EXPECT_EQ(blocks.k_cc.Values(), (std::vector{12.0, 15.0, 42.0, 45.0})) | EXPECT_EQ(blocks.k_fc.Values()[3U], 0.0) | EXPECT_TRUE(blocks.k_ff.Validate().IsOk()) | EXPECT_TRUE(blocks.k_fc.Validate().IsOk()) | EXPECT_TRUE(blocks.k_cf.Validate().IsOk()) | EXPECT_TRUE(blocks.k_cc.Validate().IsOk()) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(blocks.k_ff.RowOffsets(), (std::vector{0U, 4U, 8U, 12U, 16U})) | EXPECT_EQ(blocks.k_ff.ColumnIndices(), (std::vector{0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U})) | EXPECT_EQ( blocks.k_ff.Values(), (std::vector{1.0, 3.0, 4.0, 6.0, 21.0, 23.0, 24.0, 26.0, 31.0, 33.0, 34.0, 36.0, 51.0, 53.0, 54.0, 56.0})) | EXPECT_EQ(blocks.k_fc.RowOffsets(), (std::vector{0U, 2U, 4U, 6U, 8U})) | EXPECT_EQ(blocks.k_fc.ColumnIndices(), (std::vector{0U, 1U, 0U, 1U, 0U, 1U, 0U, 1U})) | EXPECT_EQ(blocks.k_fc.Values(), (std::vector{2.0, 5.0, 22.0, 0.0, 32.0, 35.0, 52.0, 55.0})) | EXPECT_EQ(blocks.k_cf.RowOffsets(), (std::vector{0U, 4U, 8U})) | EXPECT_EQ(blocks.k_cf.ColumnIndices(), (std::vector{0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U})) | EXPECT_EQ( blocks.k_cf.Values(), (std::vector{11.0, 13.0, 14.0, 16.0, 41.0, 43.0, 44.0, 46.0})) | EXPECT_EQ(blocks.k_cc.RowOffsets(), (std::vector{0U, 2U, 4U})) | EXPECT_EQ(blocks.k_cc.ColumnIndices(), (std::vector{0U, 1U, 0U, 1U})) | EXPECT_EQ(blocks.k_cc.Values(), (std::vector{12.0, 15.0, 42.0, 45.0})) | EXPECT_EQ(blocks.k_fc.Values()[3U], 0.0) | EXPECT_TRUE(blocks.k_ff.Validate().IsOk()) | EXPECT_TRUE(blocks.k_fc.Validate().IsOk()) | EXPECT_TRUE(blocks.k_cf.Validate().IsOk()) | EXPECT_TRUE(blocks.k_cc.Validate().IsOk()) -Refactor tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.HandlesNoAllAndMixedConstraints EssentialConstraints.HandlesNoAllAndMixedConstraints; assertion 10개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.HandlesNoAllAndMixedConstraints 유지 원문 검사 body 및 assertion 동일. 66201f4cf9837297e77488d6cb0babc1c5dd36934af64abe3b39cf85b4865cfd 66201f4cf9837297e77488d6cb0babc1c5dd36934af64abe3b39cf85b4865cfd ASSERT_TRUE(none.HasValue()) | EXPECT_EQ(none.Value().k_ff.Values(), full.Values()) | ASSERT_TRUE(all.HasValue()) | EXPECT_EQ(all.Value().k_cc.Values(), full.Values()) | ASSERT_TRUE(empty_rhs.HasValue()) | EXPECT_EQ(empty_rhs.Value().Size(), 0U) | ASSERT_TRUE(full_rhs.HasValue()) | EXPECT_EQ(full_rhs.Value()[i], static_cast(i) - 2.0) | EXPECT_EQ(full_load[i], static_cast(i) - 2.0) | ASSERT_TRUE(mixed.HasValue()) ASSERT_TRUE(none.HasValue()) | EXPECT_EQ(none.Value().k_ff.Values(), full.Values()) | ASSERT_TRUE(all.HasValue()) | EXPECT_EQ(all.Value().k_cc.Values(), full.Values()) | ASSERT_TRUE(empty_rhs.HasValue()) | EXPECT_EQ(empty_rhs.Value().Size(), 0U) | ASSERT_TRUE(full_rhs.HasValue()) | EXPECT_EQ(full_rhs.Value()[i], static_cast(i) - 2.0) | EXPECT_EQ(full_load[i], static_cast(i) - 2.0) | ASSERT_TRUE(mixed.HasValue()) -Refactor tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.PreservesShellSizedNoMixedAndAllConstraintRoundTrips EssentialConstraints.PreservesShellSizedNoMixedAndAllConstraintRoundTrips; assertion 7개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.PreservesShellSizedNoMixedAndAllConstraintRoundTrips 유지 원문 검사 body 및 assertion 동일. c943e0be6dafdad411e9dc5b075259ff93ba3d6edad1aac44186128b70255f2f c943e0be6dafdad411e9dc5b075259ff93ba3d6edad1aac44186128b70255f2f ASSERT_TRUE(none.HasValue()) | ASSERT_TRUE(mixed.HasValue()) | ASSERT_EQ(mixed_reconstructed.Size(), mixed_full.Size()) | EXPECT_DOUBLE_EQ(mixed_reconstructed[index], mixed_full[index]) | ASSERT_TRUE(all.HasValue()) | ASSERT_EQ(all_reconstructed.Size(), 24U) | EXPECT_DOUBLE_EQ(all_reconstructed[node * 6U + component], node + 1.0) ASSERT_TRUE(none.HasValue()) | ASSERT_TRUE(mixed.HasValue()) | ASSERT_EQ(mixed_reconstructed.Size(), mixed_full.Size()) | EXPECT_DOUBLE_EQ(mixed_reconstructed[index], mixed_full[index]) | ASSERT_TRUE(all.HasValue()) | ASSERT_EQ(all_reconstructed.Size(), 24U) | EXPECT_DOUBLE_EQ(all_reconstructed[node * 6U + component], node + 1.0) -Refactor tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.ReconstructsNonzeroPrescribedValues EssentialConstraints.ReconstructsNonzeroPrescribedValues; assertion 12개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.ReconstructsNonzeroPrescribedValues 유지 원문 검사 body 및 assertion 동일. 38aa54591420c254c738c4a4c26e333f8bfdf17f2f7e937f55b241729d5668fb 38aa54591420c254c738c4a4c26e333f8bfdf17f2f7e937f55b241729d5668fb EXPECT_EQ(free.Size(), 4U) | EXPECT_DOUBLE_EQ(free[0U], 10.0) | EXPECT_DOUBLE_EQ(free[1U], 20.0) | EXPECT_DOUBLE_EQ(free[2U], 30.0) | EXPECT_DOUBLE_EQ(free[3U], 40.0) | EXPECT_EQ(constrained.Size(), 2U) | EXPECT_DOUBLE_EQ(constrained[0U], 2.5) | EXPECT_DOUBLE_EQ(constrained[1U], -3.25) | EXPECT_EQ(constrained[0U], dofs.PrescribedValues()[0U]) | EXPECT_EQ(constrained[1U], dofs.PrescribedValues()[1U]) | ASSERT_EQ(reconstructed.Size(), full.Size()) | EXPECT_DOUBLE_EQ(reconstructed[index], full[index]) EXPECT_EQ(free.Size(), 4U) | EXPECT_DOUBLE_EQ(free[0U], 10.0) | EXPECT_DOUBLE_EQ(free[1U], 20.0) | EXPECT_DOUBLE_EQ(free[2U], 30.0) | EXPECT_DOUBLE_EQ(free[3U], 40.0) | EXPECT_EQ(constrained.Size(), 2U) | EXPECT_DOUBLE_EQ(constrained[0U], 2.5) | EXPECT_DOUBLE_EQ(constrained[1U], -3.25) | EXPECT_EQ(constrained[0U], dofs.PrescribedValues()[0U]) | EXPECT_EQ(constrained[1U], dofs.PrescribedValues()[1U]) | ASSERT_EQ(reconstructed.Size(), full.Size()) | EXPECT_DOUBLE_EQ(reconstructed[index], full[index]) -Refactor tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.RejectsDimensionOrOrderMismatch EssentialConstraints.RejectsDimensionOrOrderMismatch; assertion 9개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.RejectsDimensionOrOrderMismatch 유지 원문 검사 body 및 assertion 동일. fc0cc64c86498e9c8468b6ad373ac9e32ec0bca9361615ae3f974df070dab2cf fc0cc64c86498e9c8468b6ad373ac9e32ec0bca9361615ae3f974df070dab2cf "ASSERT_FALSE(wrong_dimension.HasValue()) | EXPECT_EQ(wrong_dimension.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(wrong_dimension.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(wrong_dimension.GetStatus().Diagnostics()[0U].code, ""invalid-constraint-dimensions"") | ASSERT_FALSE(wrong_order.HasValue()) | EXPECT_EQ(wrong_order.GetStatus().Diagnostics()[0U].code, ""invalid-constraint-dimensions"") | EXPECT_THROW(static_cast(policy.GatherFree(fesa::Vector{5U}, dofs)), std::invalid_argument) | EXPECT_THROW( static_cast(policy.GatherConstrained(fesa::Vector{7U}, dofs)), std::invalid_argument) | EXPECT_THROW(static_cast(policy.ReconstructFull( fesa::Vector{4U}, fesa::Vector{2U}, dofs)), std::invalid_argument)" "ASSERT_FALSE(wrong_dimension.HasValue()) | EXPECT_EQ(wrong_dimension.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(wrong_dimension.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(wrong_dimension.GetStatus().Diagnostics()[0U].code, ""invalid-constraint-dimensions"") | ASSERT_FALSE(wrong_order.HasValue()) | EXPECT_EQ(wrong_order.GetStatus().Diagnostics()[0U].code, ""invalid-constraint-dimensions"") | EXPECT_THROW(static_cast(policy.GatherFree(fesa::Vector{5U}, dofs)), std::invalid_argument) | EXPECT_THROW( static_cast(policy.GatherConstrained(fesa::Vector{7U}, dofs)), std::invalid_argument) | EXPECT_THROW(static_cast(policy.ReconstructFull( fesa::Vector{4U}, fesa::Vector{2U}, dofs)), std::invalid_argument)" -Refactor tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.PreservesEliminationFailureOrderAndInputs EssentialConstraints.PreservesEliminationFailureOrderAndInputs; assertion 21개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.PreservesEliminationFailureOrderAndInputs 유지 원문 검사 body 및 assertion 동일. 2cd3ea3170fd9e953bf747f537da7b235dd883641fd23782365bd8b11c4a9b76 2cd3ea3170fd9e953bf747f537da7b235dd883641fd23782365bd8b11c4a9b76 "ASSERT_FALSE(candidate.HasValue()) | EXPECT_EQ(candidate.GetStatus().Diagnostics()[0U].code, ""invalid-load-dimensions"") | ASSERT_FALSE(candidate.HasValue()) | EXPECT_EQ(candidate.GetStatus().Diagnostics()[0U].entity_identity, ""full-load:0"") | EXPECT_EQ(load[0U], std::numeric_limits::infinity()) | EXPECT_EQ(prescribed[0U], std::numeric_limits::infinity()) | ASSERT_FALSE(candidate.HasValue()) | EXPECT_EQ(candidate.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(candidate.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""nonfinite-load-accumulation"") | EXPECT_EQ(diagnostic.keyword, ""LOAD_ASSEMBLER"") | EXPECT_EQ(diagnostic.entity_identity, ""0"") | EXPECT_TRUE(diagnostic.location.file.empty()) | EXPECT_EQ(diagnostic.location.line, 0U) | EXPECT_EQ(diagnostic.message, ""Kfc times prescribed displacement produced a nonfinite row sum."") | EXPECT_EQ(load[0U], 7.0) | EXPECT_EQ(prescribed[0U], 2.0) | EXPECT_EQ(prescribed[1U], 1.0) | EXPECT_EQ(kfc.Values(), original_values) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, original_pattern.row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, original_pattern.column_indices)" "ASSERT_FALSE(candidate.HasValue()) | EXPECT_EQ(candidate.GetStatus().Diagnostics()[0U].code, ""invalid-load-dimensions"") | ASSERT_FALSE(candidate.HasValue()) | EXPECT_EQ(candidate.GetStatus().Diagnostics()[0U].entity_identity, ""full-load:0"") | EXPECT_EQ(load[0U], std::numeric_limits::infinity()) | EXPECT_EQ(prescribed[0U], std::numeric_limits::infinity()) | ASSERT_FALSE(candidate.HasValue()) | EXPECT_EQ(candidate.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(candidate.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""nonfinite-load-accumulation"") | EXPECT_EQ(diagnostic.keyword, ""LOAD_ASSEMBLER"") | EXPECT_EQ(diagnostic.entity_identity, ""0"") | EXPECT_TRUE(diagnostic.location.file.empty()) | EXPECT_EQ(diagnostic.location.line, 0U) | EXPECT_EQ(diagnostic.message, ""Kfc times prescribed displacement produced a nonfinite row sum."") | EXPECT_EQ(load[0U], 7.0) | EXPECT_EQ(prescribed[0U], 2.0) | EXPECT_EQ(prescribed[1U], 1.0) | EXPECT_EQ(kfc.Values(), original_values) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, original_pattern.row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, original_pattern.column_indices)" -Refactor tests/unit/constraints/essential_constraints_test.cpp support@1-120 helper/oracle/fixture/include/static assertion 구간: MakeDofs, MakeShellSizedDofs, MakeMatrix, SequentialDense, ExpectShape tests/unit/constraints/essential_constraints_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2aa63d265a44ca55310a67dcb59609d01f78e09129c32e6b6803b57e69d43fd2 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/constraints/essential_constraints_test.cpp support@215-216 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/constraints/essential_constraints_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f6c2b9c304b34fa866abe406a7be1ab65a57b15b93aee4428636ed4eaa067081 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/core/ascii_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/core/ascii_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 25872dbd7f04fbdb796adecf712db87424f628615095e50d25e86d7ff05d70f1 25872dbd7f04fbdb796adecf712db87424f628615095e50d25e86d7ff05d70f1 해당 없음 해당 없음 -Refactor tests/unit/core/ascii_test.cpp Ascii.LowercasesOnlyAsciiUppercaseBytes Ascii.LowercasesOnlyAsciiUppercaseBytes; assertion 5개 tests/unit/core/ascii_test.cpp Ascii.LowercasesOnlyAsciiUppercaseBytes 유지 원문 검사 body 및 assertion 동일. 909d024cf51f4c78bfbfbc0f844a4deb4d7995a1359e245bab03859c6a3f9dde 909d024cf51f4c78bfbfbc0f844a4deb4d7995a1359e245bab03859c6a3f9dde EXPECT_EQ(fesa::AsciiLower('A'), 'a') | EXPECT_EQ(fesa::AsciiLower('Z'), 'z') | EXPECT_EQ(fesa::AsciiLower('a'), 'a') | EXPECT_EQ(fesa::AsciiLower('0'), '0') | EXPECT_EQ(fesa::AsciiLower(non_ascii), non_ascii) EXPECT_EQ(fesa::AsciiLower('A'), 'a') | EXPECT_EQ(fesa::AsciiLower('Z'), 'z') | EXPECT_EQ(fesa::AsciiLower('a'), 'a') | EXPECT_EQ(fesa::AsciiLower('0'), '0') | EXPECT_EQ(fesa::AsciiLower(non_ascii), non_ascii) -Refactor tests/unit/core/ascii_test.cpp Ascii.UppercaseCanonicalizationPreservesEveryOtherByteAndSourceText Ascii.UppercaseCanonicalizationPreservesEveryOtherByteAndSourceText; assertion 4개 tests/unit/core/ascii_test.cpp Ascii.UppercaseCanonicalizationPreservesEveryOtherByteAndSourceText 유지 원문 검사 body 및 assertion 동일. cdbafc80172cdd5acbf25b80444b88d1c4f7f6a62716326cee28890c42d7bab8 cdbafc80172cdd5acbf25b80444b88d1c4f7f6a62716326cee28890c42d7bab8 "EXPECT_EQ(fesa::AsciiUppercase(source), expected) | EXPECT_EQ(source, original) | EXPECT_TRUE(fesa::AsciiUppercase("""").empty()) | EXPECT_EQ(fesa::AsciiUppercase(""Shell-01""), ""SHELL-01"")" "EXPECT_EQ(fesa::AsciiUppercase(source), expected) | EXPECT_EQ(source, original) | EXPECT_TRUE(fesa::AsciiUppercase("""").empty()) | EXPECT_EQ(fesa::AsciiUppercase(""Shell-01""), ""SHELL-01"")" -Refactor tests/unit/core/ascii_test.cpp Ascii.ComparesNamesWithoutLocaleOrUnicodeFolding Ascii.ComparesNamesWithoutLocaleOrUnicodeFolding; assertion 3개 tests/unit/core/ascii_test.cpp Ascii.ComparesNamesWithoutLocaleOrUnicodeFolding 유지 원문 검사 body 및 assertion 동일. 3db876d5e00670ef938aa3f78a4b4841b4aa9eb02bf470d659053719c7a47c27 3db876d5e00670ef938aa3f78a4b4841b4aa9eb02bf470d659053719c7a47c27 "EXPECT_TRUE(fesa::AsciiCaseInsensitiveEquals(""Beam-1"", ""bEaM-1"")) | EXPECT_FALSE(fesa::AsciiCaseInsensitiveEquals(""Beam-1"", ""Beam-10"")) | EXPECT_FALSE( fesa::AsciiCaseInsensitiveEquals(uppercase_byte, lowercase_byte))" "EXPECT_TRUE(fesa::AsciiCaseInsensitiveEquals(""Beam-1"", ""bEaM-1"")) | EXPECT_FALSE(fesa::AsciiCaseInsensitiveEquals(""Beam-1"", ""Beam-10"")) | EXPECT_FALSE( fesa::AsciiCaseInsensitiveEquals(uppercase_byte, lowercase_byte))" -Refactor tests/unit/core/ascii_test.cpp Ascii.ParsesOnlyCompletePositiveBaseTenSourceLabels Ascii.ParsesOnlyCompletePositiveBaseTenSourceLabels; assertion 11개 tests/unit/core/ascii_test.cpp Ascii.ParsesOnlyCompletePositiveBaseTenSourceLabels 유지 원문 검사 body 및 assertion 동일. 5770a5761723357706fadea333c7cf6c288511a29681077cb3f914cb4a236bf4 5770a5761723357706fadea333c7cf6c288511a29681077cb3f914cb4a236bf4 "ASSERT_TRUE(one.HasValue()) | EXPECT_EQ(one.Value(), 1) | ASSERT_TRUE(leading_zeroes.HasValue()) | EXPECT_EQ(leading_zeroes.Value(), 42) | ASSERT_TRUE(maximum.HasValue()) | EXPECT_EQ(maximum.Value(), (std::numeric_limits::max)()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-source-label"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].entity_identity, invalid)" "ASSERT_TRUE(one.HasValue()) | EXPECT_EQ(one.Value(), 1) | ASSERT_TRUE(leading_zeroes.HasValue()) | EXPECT_EQ(leading_zeroes.Value(), 42) | ASSERT_TRUE(maximum.HasValue()) | EXPECT_EQ(maximum.Value(), (std::numeric_limits::max)()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-source-label"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].entity_identity, invalid)" -Refactor tests/unit/core/ascii_test.cpp support@1-9 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/core/ascii_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 92beb48f1d8771676e841d9c0e884cace86bb18b98dbe9a629f21fa1d9e0bc9e 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/core/diagnostic_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/core/diagnostic_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 440becb7f8e8ffe6db9b32b757b08a56baea19da46808dc42c426e0f9edb14e5 440becb7f8e8ffe6db9b32b757b08a56baea19da46808dc42c426e0f9edb14e5 해당 없음 해당 없음 -Refactor tests/unit/core/diagnostic_test.cpp CoreDiagnostics.DiagnosticsSortDeterministically CoreDiagnostics.DiagnosticsSortDeterministically; assertion 15개 tests/unit/core/diagnostic_test.cpp CoreDiagnostics.DiagnosticsSortDeterministically 유지 원문 검사 body 및 assertion 동일. 2f659a7cf12be1a5e3e0221806e86f389fb3992907f5bcb4d533d160bbeb90ab 2f659a7cf12be1a5e3e0221806e86f389fb3992907f5bcb4d533d160bbeb90ab "ASSERT_EQ(diagnostics.size(), 7U) | EXPECT_EQ(diagnostics[0].message, ""line"") | EXPECT_EQ(diagnostics[1].message, ""keyword"") | EXPECT_EQ(diagnostics[2].message, ""first-equal"") | EXPECT_EQ(diagnostics[3].message, ""second-equal"") | EXPECT_EQ(diagnostics[4].message, ""code-z"") | EXPECT_EQ(diagnostics[5].message, ""entity-2"") | EXPECT_EQ(diagnostics[6].message, ""file-b"") | EXPECT_EQ(exact.severity, fesa::Severity::kError) | EXPECT_EQ(exact.code, ""a"") | EXPECT_EQ(exact.location.file, std::filesystem::path{""a.inp""}) | EXPECT_EQ(exact.location.line, 3U) | EXPECT_EQ(exact.keyword, ""*NODE"") | EXPECT_EQ(exact.entity_identity, ""I.1"") | EXPECT_EQ(exact.message, ""first-equal"")" "ASSERT_EQ(diagnostics.size(), 7U) | EXPECT_EQ(diagnostics[0].message, ""line"") | EXPECT_EQ(diagnostics[1].message, ""keyword"") | EXPECT_EQ(diagnostics[2].message, ""first-equal"") | EXPECT_EQ(diagnostics[3].message, ""second-equal"") | EXPECT_EQ(diagnostics[4].message, ""code-z"") | EXPECT_EQ(diagnostics[5].message, ""entity-2"") | EXPECT_EQ(diagnostics[6].message, ""file-b"") | EXPECT_EQ(exact.severity, fesa::Severity::kError) | EXPECT_EQ(exact.code, ""a"") | EXPECT_EQ(exact.location.file, std::filesystem::path{""a.inp""}) | EXPECT_EQ(exact.location.line, 3U) | EXPECT_EQ(exact.keyword, ""*NODE"") | EXPECT_EQ(exact.entity_identity, ""I.1"") | EXPECT_EQ(exact.message, ""first-equal"")" -Refactor tests/unit/core/diagnostic_test.cpp support@1-25 helper/oracle/fixture/include/static assertion 구간: MakeDiagnostic tests/unit/core/diagnostic_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ae3d439e5440487b75c91d95add36374b3f77363663cdc902e830a9174a669e9 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/core/source_identity_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/core/source_identity_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a6ebba2d2f9e09be684e817e41b14b6572bcce0706d5114c8c8a88f6ac145746 a6ebba2d2f9e09be684e817e41b14b6572bcce0706d5114c8c8a88f6ac145746 해당 없음 해당 없음 -Refactor tests/unit/core/source_identity_test.cpp CoreDiagnostics.SourceIdentityPreservesRawIdentity CoreDiagnostics.SourceIdentityPreservesRawIdentity; assertion 9개 tests/unit/core/source_identity_test.cpp CoreDiagnostics.SourceIdentityPreservesRawIdentity 유지 원문 검사 body 및 assertion 동일. f466209fca1d6d1f9aff769f37534515999cf4a71f1da756c95e007d1a1599c3 f466209fca1d6d1f9aff769f37534515999cf4a71f1da756c95e007d1a1599c3 "EXPECT_EQ(location.file, std::filesystem::path{""models/My Beam.inp""}) | EXPECT_EQ(location.line, 27U) | EXPECT_EQ(identity.instance_name, ""Beam-Instance_A"") | EXPECT_EQ(identity.source_label, 42) | EXPECT_EQ(identity.source_label_text, ""00042"") | EXPECT_TRUE(fesa::SourceIdentityEquals(identity, identity)) | EXPECT_FALSE(fesa::SourceIdentityEquals( identity, {""beam-instance_a"", std::int64_t{42}, ""00042""})) | EXPECT_FALSE(fesa::SourceIdentityEquals( identity, {""Beam-Instance_A"", std::int64_t{43}, ""00042""})) | EXPECT_FALSE(fesa::SourceIdentityEquals( identity, {""Beam-Instance_A"", std::int64_t{42}, ""42""}))" "EXPECT_EQ(location.file, std::filesystem::path{""models/My Beam.inp""}) | EXPECT_EQ(location.line, 27U) | EXPECT_EQ(identity.instance_name, ""Beam-Instance_A"") | EXPECT_EQ(identity.source_label, 42) | EXPECT_EQ(identity.source_label_text, ""00042"") | EXPECT_TRUE(fesa::SourceIdentityEquals(identity, identity)) | EXPECT_FALSE(fesa::SourceIdentityEquals( identity, {""beam-instance_a"", std::int64_t{42}, ""00042""})) | EXPECT_FALSE(fesa::SourceIdentityEquals( identity, {""Beam-Instance_A"", std::int64_t{43}, ""00042""})) | EXPECT_FALSE(fesa::SourceIdentityEquals( identity, {""Beam-Instance_A"", std::int64_t{42}, ""42""}))" -Refactor tests/unit/core/source_identity_test.cpp support@1-8 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/core/source_identity_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d2c1c5608afd74a75014476a740b7734f890ded534eb9532ad90766dcc16b86a 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/core/status_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/core/status_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3cae23bb04187b6d104c3575d24a87daee20f5c1779dfcfd762ef299105aea42 3cae23bb04187b6d104c3575d24a87daee20f5c1779dfcfd762ef299105aea42 해당 없음 해당 없음 -Refactor tests/unit/core/status_test.cpp CoreDiagnostics.ResultOwnsCopyOnlyPayloadWithoutIntermediateCopy CoreDiagnostics.ResultOwnsCopyOnlyPayloadWithoutIntermediateCopy; assertion 6개 tests/unit/core/status_test.cpp CoreDiagnostics.ResultOwnsCopyOnlyPayloadWithoutIntermediateCopy 유지 원문 검사 body 및 assertion 동일. 4828a9334088aff80cefe803fbfa80e0e173be1980ffbf6a260696da95cf739c 4828a9334088aff80cefe803fbfa80e0e173be1980ffbf6a260696da95cf739c ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.GetStatus().IsOk()) | EXPECT_EQ(result.Value().value, 23) | EXPECT_EQ(result.Value().copies, 2) | EXPECT_EQ(source.value, 23) | EXPECT_EQ(source.copies, 0) ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.GetStatus().IsOk()) | EXPECT_EQ(result.Value().value, 23) | EXPECT_EQ(result.Value().copies, 2) | EXPECT_EQ(source.value, 23) | EXPECT_EQ(source.copies, 0) -Refactor tests/unit/core/status_test.cpp CoreDiagnostics.ResultTransfersOwnedPayloadDirectlyIntoValue CoreDiagnostics.ResultTransfersOwnedPayloadDirectlyIntoValue; assertion 12개 tests/unit/core/status_test.cpp CoreDiagnostics.ResultTransfersOwnedPayloadDirectlyIntoValue 유지 원문 검사 body 및 assertion 동일. d294568176ee9775e98fcb17136e14517d3e30ac69975c1655d3bf6e72237cd7 d294568176ee9775e98fcb17136e14517d3e30ac69975c1655d3bf6e72237cd7 EXPECT_EQ(source.value, 17) | EXPECT_EQ(source.copies, 0) | EXPECT_EQ(source.moves, 0) | EXPECT_EQ(from_lvalue.Value().value, 17) | EXPECT_EQ(from_lvalue.Value().copies, 1) | EXPECT_EQ(from_lvalue.Value().moves, 1) | EXPECT_EQ(from_temporary.Value().value, 29) | EXPECT_EQ(from_temporary.Value().copies, 0) | EXPECT_EQ(from_temporary.Value().moves, 1) | EXPECT_EQ(owned, nullptr) | ASSERT_NE(move_only.Value(), nullptr) | EXPECT_EQ(*move_only.Value(), 31) EXPECT_EQ(source.value, 17) | EXPECT_EQ(source.copies, 0) | EXPECT_EQ(source.moves, 0) | EXPECT_EQ(from_lvalue.Value().value, 17) | EXPECT_EQ(from_lvalue.Value().copies, 1) | EXPECT_EQ(from_lvalue.Value().moves, 1) | EXPECT_EQ(from_temporary.Value().value, 29) | EXPECT_EQ(from_temporary.Value().copies, 0) | EXPECT_EQ(from_temporary.Value().moves, 1) | EXPECT_EQ(owned, nullptr) | ASSERT_NE(move_only.Value(), nullptr) | EXPECT_EQ(*move_only.Value(), 31) -Refactor tests/unit/core/status_test.cpp CoreDiagnostics.ResultEnforcesValueErrorExclusivity CoreDiagnostics.ResultEnforcesValueErrorExclusivity; assertion 21개 tests/unit/core/status_test.cpp CoreDiagnostics.ResultEnforcesValueErrorExclusivity 유지 원문 검사 body 및 assertion 동일. 9e7d9261f2c51e9a1cb0ef57442073618731b3a1867833debe5c3b9d0b064be2 9e7d9261f2c51e9a1cb0ef57442073618731b3a1867833debe5c3b9d0b064be2 "EXPECT_TRUE(ok.IsOk()) | EXPECT_FALSE(ok.Category().has_value()) | EXPECT_TRUE(ok.Diagnostics().empty()) | EXPECT_FALSE(uncategorized.IsOk()) | EXPECT_FALSE(uncategorized.Category().has_value()) | ASSERT_EQ(uncategorized.Diagnostics().size(), 1U) | EXPECT_EQ(uncategorized.Diagnostics()[0].code, ""invalid-beam-length"") | EXPECT_FALSE(categorized.IsOk()) | ASSERT_TRUE(categorized.Category().has_value()) | EXPECT_EQ(*categorized.Category(), fesa::FailureCategory::kModel) | EXPECT_TRUE(success.HasValue()) | EXPECT_TRUE(success.GetStatus().IsOk()) | EXPECT_EQ(success.Value(), ""solved"") | EXPECT_EQ(copied.Value(), ""solved"") | EXPECT_EQ(moved.Value(), ""solved"") | EXPECT_FALSE(failure.HasValue()) | EXPECT_FALSE(failure.GetStatus().IsOk()) | EXPECT_EQ(failure.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_THROW(failure.Value(), std::logic_error) | EXPECT_THROW(const_failure.Value(), std::logic_error) | EXPECT_THROW((void)fesa::Result::Failure(fesa::Status::Ok()), std::invalid_argument)" "EXPECT_TRUE(ok.IsOk()) | EXPECT_FALSE(ok.Category().has_value()) | EXPECT_TRUE(ok.Diagnostics().empty()) | EXPECT_FALSE(uncategorized.IsOk()) | EXPECT_FALSE(uncategorized.Category().has_value()) | ASSERT_EQ(uncategorized.Diagnostics().size(), 1U) | EXPECT_EQ(uncategorized.Diagnostics()[0].code, ""invalid-beam-length"") | EXPECT_FALSE(categorized.IsOk()) | ASSERT_TRUE(categorized.Category().has_value()) | EXPECT_EQ(*categorized.Category(), fesa::FailureCategory::kModel) | EXPECT_TRUE(success.HasValue()) | EXPECT_TRUE(success.GetStatus().IsOk()) | EXPECT_EQ(success.Value(), ""solved"") | EXPECT_EQ(copied.Value(), ""solved"") | EXPECT_EQ(moved.Value(), ""solved"") | EXPECT_FALSE(failure.HasValue()) | EXPECT_FALSE(failure.GetStatus().IsOk()) | EXPECT_EQ(failure.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_THROW(failure.Value(), std::logic_error) | EXPECT_THROW(const_failure.Value(), std::logic_error) | EXPECT_THROW((void)fesa::Result::Failure(fesa::Status::Ok()), std::invalid_argument)" -Refactor tests/unit/core/status_test.cpp support@1-47 helper/oracle/fixture/include/static assertion 구간: ModelDiagnostic, CopyOnlyPayload, TransferPayload tests/unit/core/status_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f8ab40e99b7478b5f7d94eb35ac9f7a8cf6b0b82a9b442d9c597948dd39ac634 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/element_capabilities_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/elements/element_capabilities_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bce1a8538bc2a53ac05e99e96e19e1d25a556eeea42285230ac6c5cbe7c9060f bce1a8538bc2a53ac05e99e96e19e1d25a556eeea42285230ac6c5cbe7c9060f 해당 없음 해당 없음 -Refactor tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.ShellTrialPreservesCompleteDirectionalResponseAndFailure ElementCapabilities.ShellTrialPreservesCompleteDirectionalResponseAndFailure; assertion 8개 tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.ShellTrialPreservesCompleteDirectionalResponseAndFailure 유지 원문 검사 body 및 assertion 동일. 5921a5f48213445eb066af193c1127df7c941a08b7a4c1d624da2c958eb39937 5921a5f48213445eb066af193c1127df7c941a08b7a4c1d624da2c958eb39937 ASSERT_TRUE(made.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(via.HasValue()) | EXPECT_EQ(capability->DofLayout().node_indices, ShellLayout().node_indices) | EXPECT_EQ(capability->DofLayout().components_per_node, ShellLayout().components_per_node) | ASSERT_FALSE(failed_direct.HasValue()) | ASSERT_FALSE(failed_via.HasValue()) | ASSERT_TRUE(again.HasValue()) ASSERT_TRUE(made.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(via.HasValue()) | EXPECT_EQ(capability->DofLayout().node_indices, ShellLayout().node_indices) | EXPECT_EQ(capability->DofLayout().components_per_node, ShellLayout().components_per_node) | ASSERT_FALSE(failed_direct.HasValue()) | ASSERT_FALSE(failed_via.HasValue()) | ASSERT_TRUE(again.HasValue()) -Refactor tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.ShellExternalConstraintRetainsEveryVariation ElementCapabilities.ShellExternalConstraintRetainsEveryVariation; assertion 5개 tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.ShellExternalConstraintRetainsEveryVariation 유지 원문 검사 body 및 assertion 동일. 8eab8e48a1d16b1f03dc2500d08d79e3737c50fe9b388563300f16ffd68d4916 8eab8e48a1d16b1f03dc2500d08d79e3737c50fe9b388563300f16ffd68d4916 ASSERT_TRUE(kernel.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(via.HasValue()) | ASSERT_FALSE(failed_direct.HasValue()) | ASSERT_FALSE(failed_via.HasValue()) ASSERT_TRUE(kernel.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(via.HasValue()) | ASSERT_FALSE(failed_direct.HasValue()) | ASSERT_FALSE(failed_via.HasValue()) -Refactor tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.ShellInertiaRetainsCompletePhysicalResponse ElementCapabilities.ShellInertiaRetainsCompletePhysicalResponse; assertion 5개 tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.ShellInertiaRetainsCompletePhysicalResponse 유지 원문 검사 body 및 assertion 동일. 893cd00cd718f011c281cd205b403e4b821033b94315a86fb0382a459c6ad4f4 893cd00cd718f011c281cd205b403e4b821033b94315a86fb0382a459c6ad4f4 ASSERT_TRUE(kernel.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(via.HasValue()) | ASSERT_FALSE(failed_direct.HasValue()) | ASSERT_FALSE(failed_via.HasValue()) ASSERT_TRUE(kernel.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(via.HasValue()) | ASSERT_FALSE(failed_direct.HasValue()) | ASSERT_FALSE(failed_via.HasValue()) -Refactor tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.ThermalPreservesStationLayoutIntervalsAndAllTraces ElementCapabilities.ThermalPreservesStationLayoutIntervalsAndAllTraces; assertion 13개 tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.ThermalPreservesStationLayoutIntervalsAndAllTraces 유지 원문 검사 body 및 assertion 동일. 93d27fb3103b3a58f40ef9c04936942073b555855d614faebb71f70aabb4c8cd 93d27fb3103b3a58f40ef9c04936942073b555855d614faebb71f70aabb4c8cd "ASSERT_TRUE(kernel.HasValue()) | EXPECT_EQ(capability->DofLayout().source_id.source_label_text, ""0019"") | EXPECT_EQ(capability->DofLayout().node_indices, kernel.Value().NodeIndices()) | EXPECT_EQ(static_cast(capability->DofLayout().components[i]), 11 + i) | EXPECT_EQ(&capability->Conductivity(), &kernel.Value().Conductivity()) | EXPECT_EQ(&capability->Capacity(), &kernel.Value().Capacity()) | EXPECT_EQ(&capability->ConductivityError(), &kernel.Value().ConductivityError()) | EXPECT_EQ(&capability->CapacityError(), &kernel.Value().CapacityError()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(via.HasValue()) | EXPECT_EQ(temperature, saved) | ASSERT_FALSE(failed_direct.HasValue()) | ASSERT_FALSE(failed_via.HasValue())" "ASSERT_TRUE(kernel.HasValue()) | EXPECT_EQ(capability->DofLayout().source_id.source_label_text, ""0019"") | EXPECT_EQ(capability->DofLayout().node_indices, kernel.Value().NodeIndices()) | EXPECT_EQ(static_cast(capability->DofLayout().components[i]), 11 + i) | EXPECT_EQ(&capability->Conductivity(), &kernel.Value().Conductivity()) | EXPECT_EQ(&capability->Capacity(), &kernel.Value().Capacity()) | EXPECT_EQ(&capability->ConductivityError(), &kernel.Value().ConductivityError()) | EXPECT_EQ(&capability->CapacityError(), &kernel.Value().CapacityError()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(via.HasValue()) | EXPECT_EQ(temperature, saved) | ASSERT_FALSE(failed_direct.HasValue()) | ASSERT_FALSE(failed_via.HasValue())" -Refactor tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.SolidRetainsLinearNonlinearAndPairedResponses ElementCapabilities.SolidRetainsLinearNonlinearAndPairedResponses; assertion 23개 tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.SolidRetainsLinearNonlinearAndPairedResponses 유지 원문 검사 body 및 assertion 동일. c3e08c5ffe1005723278871e714cc780f31a1b301606286a68ba4845994f0d76 c3e08c5ffe1005723278871e714cc780f31a1b301606286a68ba4845994f0d76 "ASSERT_TRUE(made.HasValue()) | EXPECT_EQ(&base.DofLayout(), &kernel.DofLayout()) | ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(via_linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(via_nonlinear.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(via.HasValue()) | ASSERT_TRUE(k.HasValue()) | ASSERT_TRUE(via_k.HasValue()) | ASSERT_TRUE(m.HasValue()) | ASSERT_TRUE(via_m.HasValue()) | ASSERT_TRUE(recovered.HasValue()) | ASSERT_TRUE(direct_recovered.HasValue()) | EXPECT_EQ(recovered.Value().source_id.source_label_text, ""0042"") | ASSERT_EQ(rows.rows.size(), direct_rows.rows.size()) | EXPECT_EQ(rows.rows[i].element, direct_rows.rows[i].element) | EXPECT_EQ(rows.rows[i].integration_point, direct_rows.rows[i].integration_point) | ASSERT_FALSE(failed.HasValue()) | ASSERT_FALSE(direct_failed.HasValue()) | ASSERT_FALSE(paired_failed.HasValue()) | ASSERT_FALSE(direct_paired_failed.HasValue()) | ASSERT_TRUE(again.HasValue())" "ASSERT_TRUE(made.HasValue()) | EXPECT_EQ(&base.DofLayout(), &kernel.DofLayout()) | ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(via_linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(via_nonlinear.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(via.HasValue()) | ASSERT_TRUE(k.HasValue()) | ASSERT_TRUE(via_k.HasValue()) | ASSERT_TRUE(m.HasValue()) | ASSERT_TRUE(via_m.HasValue()) | ASSERT_TRUE(recovered.HasValue()) | ASSERT_TRUE(direct_recovered.HasValue()) | EXPECT_EQ(recovered.Value().source_id.source_label_text, ""0042"") | ASSERT_EQ(rows.rows.size(), direct_rows.rows.size()) | EXPECT_EQ(rows.rows[i].element, direct_rows.rows[i].element) | EXPECT_EQ(rows.rows[i].integration_point, direct_rows.rows[i].integration_point) | ASSERT_FALSE(failed.HasValue()) | ASSERT_FALSE(direct_failed.HasValue()) | ASSERT_FALSE(paired_failed.HasValue()) | ASSERT_FALSE(direct_paired_failed.HasValue()) | ASSERT_TRUE(again.HasValue())" -Refactor tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.BoundViewsSurviveOwnerVectorMovesAndRejectOtherFamilies ElementCapabilities.BoundViewsSurviveOwnerVectorMovesAndRejectOtherFamilies; assertion 13개 tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.BoundViewsSurviveOwnerVectorMovesAndRejectOtherFamilies 유지 원문 검사 body 및 assertion 동일. 9de22e101a2f3c1630726b97a0fd914ab5df0069096fe89dc00e3c8941fc6f97 9de22e101a2f3c1630726b97a0fd914ab5df0069096fe89dc00e3c8941fc6f97 ASSERT_TRUE(made.HasValue()) | ASSERT_NE(capability, nullptr) | EXPECT_EQ(factory.BindShellReference(*original), nullptr) | EXPECT_EQ(transferred[0].get(), original) | EXPECT_EQ(&capability->DofLayout(), &original->DofLayout()) | ASSERT_TRUE(evaluated.HasValue()) | ASSERT_TRUE(recovered.HasValue()) | ASSERT_TRUE(shell.HasValue()) | EXPECT_EQ(factory.BindSolidTrial(shell.Value()), nullptr) | ASSERT_NE(reference, nullptr) | EXPECT_EQ(&reference->DofLayout(), &shell.Value().DofLayout()) | ASSERT_TRUE(direct_k.HasValue()) | ASSERT_TRUE(via_k.HasValue()) ASSERT_TRUE(made.HasValue()) | ASSERT_NE(capability, nullptr) | EXPECT_EQ(factory.BindShellReference(*original), nullptr) | EXPECT_EQ(transferred[0].get(), original) | EXPECT_EQ(&capability->DofLayout(), &original->DofLayout()) | ASSERT_TRUE(evaluated.HasValue()) | ASSERT_TRUE(recovered.HasValue()) | ASSERT_TRUE(shell.HasValue()) | EXPECT_EQ(factory.BindSolidTrial(shell.Value()), nullptr) | ASSERT_NE(reference, nullptr) | EXPECT_EQ(&reference->DofLayout(), &shell.Value().DofLayout()) | ASSERT_TRUE(direct_k.HasValue()) | ASSERT_TRUE(via_k.HasValue()) -Refactor tests/unit/elements/element_capabilities_test.cpp support@1-106 helper/oracle/fixture/include/static assertion 구간: Same, ShellLayout, ShellInput, Pointers, Trial tests/unit/elements/element_capabilities_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 64cca7449df949df39d3843edb415e61ee0603867af7f27f6c376ccf8888b378 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/element_capabilities_test.cpp support@268-296 helper/oracle/fixture/include/static assertion 구간: Solid, Same tests/unit/elements/element_capabilities_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 959366a48c981e25617d2bfe8cfd588300b4c69b474fa3399a15613430e71d93 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/element_capabilities_test.cpp support@412-413 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/element_capabilities_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/element_factory_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/elements/element_factory_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 39cdff0a92b9a86f0efe54457c47f57bb8fa0a48887eae940198046c8f5249f0 39cdff0a92b9a86f0efe54457c47f57bb8fa0a48887eae940198046c8f5249f0 해당 없음 해당 없음 -Refactor tests/unit/elements/element_factory_test.cpp ElementFactory.CreatesBeamWithStableLayoutStiffnessAndRecovery ElementFactory.CreatesBeamWithStableLayoutStiffnessAndRecovery; assertion 21개 tests/unit/elements/element_factory_test.cpp ElementFactory.CreatesBeamWithStableLayoutStiffnessAndRecovery 유지 원문 검사 body 및 assertion 동일. 6ea821d717c92f195c2f3d8cac87a3f58f9db2377459cd40674d113374366e34 6ea821d717c92f195c2f3d8cac87a3f58f9db2377459cd40674d113374366e34 "EXPECT_NE(probe, nullptr) | EXPECT_TRUE(destroyed) | ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(candidate.Value(), nullptr) | EXPECT_EQ(layout.source_id.source_label_text, ""7"") | EXPECT_EQ(layout.node_indices, (std::vector{0U, 1U})) | EXPECT_EQ(layout.components_per_node, (std::vector{ fesa::DofComponent::kUx, fesa::DofComponent::kUy, fesa::DofComponent::kUz, fesa::DofComponent::kUrx, fesa::DofComponent::kUry, fesa::DofComponent::kUrz})) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_EQ(stiffness.Value().layout.node_indices, layout.node_indices) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_id.source_label_text, ""7"") | ASSERT_TRUE(std::holds_alternative( result.Value().payload)) | ASSERT_EQ(rows.endpoint_rows.size(), 2U) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[0U].end_action[0U], -10.0) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[1U].end_action[0U], 10.0) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[0U].section_resultant[0U], 10.0) | EXPECT_EQ(rows.endpoint_rows[0U].node.source_label_text, ""1"") | EXPECT_EQ(rows.endpoint_rows[1U].node.source_label_text, ""2"") | EXPECT_EQ(rows.gauss_rows.size(), 2U) | EXPECT_EQ(rows.stress_rows.size(), 2U)" "EXPECT_NE(probe, nullptr) | EXPECT_TRUE(destroyed) | ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(candidate.Value(), nullptr) | EXPECT_EQ(layout.source_id.source_label_text, ""7"") | EXPECT_EQ(layout.node_indices, (std::vector{0U, 1U})) | EXPECT_EQ(layout.components_per_node, (std::vector{ fesa::DofComponent::kUx, fesa::DofComponent::kUy, fesa::DofComponent::kUz, fesa::DofComponent::kUrx, fesa::DofComponent::kUry, fesa::DofComponent::kUrz})) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_EQ(stiffness.Value().layout.node_indices, layout.node_indices) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_id.source_label_text, ""7"") | ASSERT_TRUE(std::holds_alternative( result.Value().payload)) | ASSERT_EQ(rows.endpoint_rows.size(), 2U) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[0U].end_action[0U], -10.0) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[1U].end_action[0U], 10.0) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[0U].section_resultant[0U], 10.0) | EXPECT_EQ(rows.endpoint_rows[0U].node.source_label_text, ""1"") | EXPECT_EQ(rows.endpoint_rows[1U].node.source_label_text, ""2"") | EXPECT_EQ(rows.gauss_rows.size(), 2U) | EXPECT_EQ(rows.stress_rows.size(), 2U)" -Refactor tests/unit/elements/element_factory_test.cpp ElementFactory.CreatesMitc4WithStableLayoutStiffnessAndRecovery ElementFactory.CreatesMitc4WithStableLayoutStiffnessAndRecovery; assertion 15개 tests/unit/elements/element_factory_test.cpp ElementFactory.CreatesMitc4WithStableLayoutStiffnessAndRecovery 유지 원문 검사 body 및 assertion 동일. 998ad7873f34e6ae9b95cc403602d8c995903164d6857c4952be354731aa6645 998ad7873f34e6ae9b95cc403602d8c995903164d6857c4952be354731aa6645 ASSERT_EQ(domain.Elements().Size(), 2U) | ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(candidate.Value(), nullptr) | EXPECT_EQ(element->DofLayout().node_indices, (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(element->DofLayout().components_per_node.size(), 6U) | ASSERT_TRUE(stiffness.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(direct_stiffness.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(std::holds_alternative( result.Value().payload)) | ASSERT_EQ(rows.rows.size(), 4U) | EXPECT_DOUBLE_EQ(rows.physical_strain_energy, 0.0) | EXPECT_EQ(rows.rows[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(rows.rows[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(row.element, fesa::EntityIndex{1U}) ASSERT_EQ(domain.Elements().Size(), 2U) | ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(candidate.Value(), nullptr) | EXPECT_EQ(element->DofLayout().node_indices, (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(element->DofLayout().components_per_node.size(), 6U) | ASSERT_TRUE(stiffness.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(direct_stiffness.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(std::holds_alternative( result.Value().payload)) | ASSERT_EQ(rows.rows.size(), 4U) | EXPECT_DOUBLE_EQ(rows.physical_strain_energy, 0.0) | EXPECT_EQ(rows.rows[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(rows.rows[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(row.element, fesa::EntityIndex{1U}) -Refactor tests/unit/elements/element_factory_test.cpp ElementFactory.OwnerBuildsNonOwningViewInStableElementOrder ElementFactory.OwnerBuildsNonOwningViewInStableElementOrder; assertion 7개 tests/unit/elements/element_factory_test.cpp ElementFactory.OwnerBuildsNonOwningViewInStableElementOrder 유지 원문 검사 body 및 assertion 동일. 11cc51a03beb75fe145b0865b12fb782a7bea43f352e46f4c198462f397e1196 11cc51a03beb75fe145b0865b12fb782a7bea43f352e46f4c198462f397e1196 "ASSERT_TRUE(beam.HasValue()) | ASSERT_TRUE(shell.HasValue()) | ASSERT_EQ(view.size(), 2U) | EXPECT_EQ(&view[0U].get(), owner[0U].get()) | EXPECT_EQ(&view[1U].get(), owner[1U].get()) | EXPECT_EQ(view[0U].get().DofLayout().source_id.source_label_text, ""7"") | EXPECT_EQ(view[1U].get().DofLayout().source_id.source_label_text, ""9"")" "ASSERT_TRUE(beam.HasValue()) | ASSERT_TRUE(shell.HasValue()) | ASSERT_EQ(view.size(), 2U) | EXPECT_EQ(&view[0U].get(), owner[0U].get()) | EXPECT_EQ(&view[1U].get(), owner[1U].get()) | EXPECT_EQ(view[0U].get().DofLayout().source_id.source_label_text, ""7"") | EXPECT_EQ(view[1U].get().DofLayout().source_id.source_label_text, ""9"")" -Refactor tests/unit/elements/element_factory_test.cpp ElementFactory.RejectsUnknownAndIncompatibleDefinitions ElementFactory.RejectsUnknownAndIncompatibleDefinitions; assertion 1개 tests/unit/elements/element_factory_test.cpp ElementFactory.RejectsUnknownAndIncompatibleDefinitions 유지 원문 검사 body 및 assertion 동일. 0e0b2765c7cebcbf59f6649a659226c9e963c37cf207db198ee2dd0a7a23f2c8 0e0b2765c7cebcbf59f6649a659226c9e963c37cf207db198ee2dd0a7a23f2c8 "EXPECT_EQ(missing_frame_result.GetStatus().Diagnostics()[0U].code, ""missing-shell-frame"")" "EXPECT_EQ(missing_frame_result.GetStatus().Diagnostics()[0U].code, ""missing-shell-frame"")" -Refactor tests/unit/elements/element_factory_test.cpp ElementFactory.SolidBindingPreservesThreeComponentsAndReferenceMass ElementFactory.SolidBindingPreservesThreeComponentsAndReferenceMass; assertion 15개 tests/unit/elements/element_factory_test.cpp ElementFactory.SolidBindingPreservesThreeComponentsAndReferenceMass 유지 원문 검사 body 및 assertion 동일. e0459ed0666964dd9f2f6f40d000d99842fe6e79acb14fe683fed56000f054f2 e0459ed0666964dd9f2f6f40d000d99842fe6e79acb14fe683fed56000f054f2 ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(solid, nullptr) | EXPECT_EQ(solid->DofLayout().source_id.source_label, 99) | EXPECT_EQ(solid->DofLayout().components_per_node, (std::vector{fesa::DofComponent::kUx, fesa::DofComponent::kUy, fesa::DofComponent::kUz})) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_EQ(stiffness.Value().values.Rows(), 24U) | ASSERT_TRUE(mass.HasValue()) | ASSERT_EQ(mass.Value().values.Rows(), 24U) | ASSERT_EQ(mass.Value().values.Columns(), 24U) | EXPECT_NEAR(total_mass, 2.0, 1.0e-13) | EXPECT_NEAR(mass.Value().values(row, column), 0.25, 1.0e-15) | EXPECT_DOUBLE_EQ(mass.Value().values(row, column), 0.0) | ASSERT_TRUE(response.HasValue()) | EXPECT_EQ(response.Value().points[point].element, 0U) | EXPECT_EQ(response.Value().points[point].integration_point, point + 1U) ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(solid, nullptr) | EXPECT_EQ(solid->DofLayout().source_id.source_label, 99) | EXPECT_EQ(solid->DofLayout().components_per_node, (std::vector{fesa::DofComponent::kUx, fesa::DofComponent::kUy, fesa::DofComponent::kUz})) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_EQ(stiffness.Value().values.Rows(), 24U) | ASSERT_TRUE(mass.HasValue()) | ASSERT_EQ(mass.Value().values.Rows(), 24U) | ASSERT_EQ(mass.Value().values.Columns(), 24U) | EXPECT_NEAR(total_mass, 2.0, 1.0e-13) | EXPECT_NEAR(mass.Value().values(row, column), 0.25, 1.0e-15) | EXPECT_DOUBLE_EQ(mass.Value().values(row, column), 0.0) | ASSERT_TRUE(response.HasValue()) | EXPECT_EQ(response.Value().points[point].element, 0U) | EXPECT_EQ(response.Value().points[point].integration_point, point + 1U) -Refactor tests/unit/elements/element_factory_test.cpp ElementFactory.SolidStaticBindingKeepsAbsentDensityAndRejectsForeignOwner ElementFactory.SolidStaticBindingKeepsAbsentDensityAndRejectsForeignOwner; assertion 6개 tests/unit/elements/element_factory_test.cpp ElementFactory.SolidStaticBindingKeepsAbsentDensityAndRejectsForeignOwner 유지 원문 검사 body 및 assertion 동일. 67e0aa39b78dbefe0e852900de54f14318d5ae806e09ab40348a8798d246bd3f 67e0aa39b78dbefe0e852900de54f14318d5ae806e09ab40348a8798d246bd3f "ASSERT_TRUE(candidate.HasValue()) | EXPECT_TRUE(candidate.Value()->ComputeStiffness().HasValue()) | ASSERT_NE(solid, nullptr) | EXPECT_FALSE(solid->ComputeMass().HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""invalid-element-definition"")" "ASSERT_TRUE(candidate.HasValue()) | EXPECT_TRUE(candidate.Value()->ComputeStiffness().HasValue()) | ASSERT_NE(solid, nullptr) | EXPECT_FALSE(solid->ComputeMass().HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""invalid-element-definition"")" -Refactor tests/unit/elements/element_factory_test.cpp ElementFactory.SolidBindingRejectsReferenceInversionWithSourceContext ElementFactory.SolidBindingRejectsReferenceInversionWithSourceContext; assertion 3개 tests/unit/elements/element_factory_test.cpp ElementFactory.SolidBindingRejectsReferenceInversionWithSourceContext 유지 원문 검사 body 및 assertion 동일. ae4abe144881d88e3568e44f6d0bd4559ad3f9fdb401f326a722bbce37b492e7 ae4abe144881d88e3568e44f6d0bd4559ad3f9fdb401f326a722bbce37b492e7 "ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].entity_identity, ""Solid-1:99"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].location.line, 12U)" "ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].entity_identity, ""Solid-1:99"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].location.line, 12U)" -Refactor tests/unit/elements/element_factory_test.cpp support@1-203 helper/oracle/fixture/include/static assertion 구간: ShellDefinition, MakeDomain, if, SolidDefinition, ExpectSameMatrix, ExpectModelFailure, UnknownElementDefinition, DestructionProbeElement tests/unit/elements/element_factory_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5df55285ae0fae1c4f738f882bddf024296bcd204b785093108491fe34daed7d 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/euler_beam_3d_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 11개 tests/unit/elements/euler_beam_3d_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 36b1305028805eacc62bf2e85b8abdf3512eb322f1a41429062b810365d79c0f 36b1305028805eacc62bf2e85b8abdf3512eb322f1a41429062b810365d79c0f 해당 없음 해당 없음 -Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.HermiteAndBMatrixMatchReviewedSigns EulerBeam3D.HermiteAndBMatrixMatchReviewedSigns; assertion 8개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.HermiteAndBMatrixMatchReviewedSigns 유지 원문 검사 body 및 assertion 동일. 72cf906f5dc17ad6e999e6805a6067f89c06a80fc3bb6982948a7ea36cfee95d 72cf906f5dc17ad6e999e6805a6067f89c06a80fc3bb6982948a7ea36cfee95d EXPECT_NEAR(recovery.gauss_generalized_strains[point][0U], axial_strain, 1.0e-14) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][1U], twist, 1.0e-14) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][2U], -curvature(w, x), 1.0e-13) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][3U], curvature(v, x), 1.0e-13) | EXPECT_NEAR(recovery.endpoint_section_resultants[0U][2U], material.youngs_modulus * section.i11 * -curvature(w, 0.0), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[1U][2U], material.youngs_modulus * section.i11 * -curvature(w, length), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[0U][3U], material.youngs_modulus * section.i22 * curvature(v, 0.0), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[1U][3U], material.youngs_modulus * section.i22 * curvature(v, length), 1.0e-5) EXPECT_NEAR(recovery.gauss_generalized_strains[point][0U], axial_strain, 1.0e-14) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][1U], twist, 1.0e-14) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][2U], -curvature(w, x), 1.0e-13) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][3U], curvature(v, x), 1.0e-13) | EXPECT_NEAR(recovery.endpoint_section_resultants[0U][2U], material.youngs_modulus * section.i11 * -curvature(w, 0.0), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[1U][2U], material.youngs_modulus * section.i11 * -curvature(w, length), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[0U][3U], material.youngs_modulus * section.i22 * curvature(v, 0.0), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[1U][3U], material.youngs_modulus * section.i22 * curvature(v, length), 1.0e-5) -Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.TwoPointGaussMatchesClosedStiffness EulerBeam3D.TwoPointGaussMatchesClosedStiffness; assertion 2개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.TwoPointGaussMatchesClosedStiffness 유지 원문 검사 body 및 assertion 동일. 5051a070e070c7eae4c852c1ea6f81abc26e94829ee91053d119f37018340643 5051a070e070c7eae4c852c1ea6f81abc26e94829ee91053d119f37018340643 EXPECT_LE(NormalizedMatrixError(actual, closed), kMatrixTolerance) | EXPECT_LE(NormalizedMatrixError(actual, transpose), kMatrixTolerance) EXPECT_LE(NormalizedMatrixError(actual, closed), kMatrixTolerance) | EXPECT_LE(NormalizedMatrixError(actual, transpose), kMatrixTolerance) -Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.HasSixRigidModesRankSixAndPositiveDeformationEnergy EulerBeam3D.HasSixRigidModesRankSixAndPositiveDeformationEnergy; assertion 4개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.HasSixRigidModesRankSixAndPositiveDeformationEnergy 유지 원문 검사 body 및 assertion 동일. 516ae9c2a58b6b19177233b4b31579a5096c950576c35ec6af2ad868dc41b63b 516ae9c2a58b6b19177233b4b31579a5096c950576c35ec6af2ad868dc41b63b EXPECT_LE(normalizedResidual, kRigidTolerance) | EXPECT_EQ(positive_count, 6) | EXPECT_GE(value, -kRigidTolerance * maximum_singular_value) | EXPECT_GT(QuadraticEnergy(stiffness, deformation), 0.0) EXPECT_LE(normalizedResidual, kRigidTolerance) | EXPECT_EQ(positive_count, 6) | EXPECT_GE(value, -kRigidTolerance * maximum_singular_value) | EXPECT_GT(QuadraticEnergy(stiffness, deformation), 0.0) -Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RotatedTransformPreservesWorkAndEnergy EulerBeam3D.RotatedTransformPreservesWorkAndEnergy; assertion 4개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RotatedTransformPreservesWorkAndEnergy 유지 원문 검사 body 및 assertion 동일. bcead48fa3010457278ea1a7c367260ca6fb9d4e01d8f58374fcfeafbd0c653d bcead48fa3010457278ea1a7c367260ca6fb9d4e01d8f58374fcfeafbd0c653d EXPECT_NEAR(dot, row == column ? 1.0 : 0.0, 1.0e-14) | EXPECT_NEAR(Determinant(rotation), 1.0, 1.0e-14) | EXPECT_LE(NormalizedMatrixError(global, expected_global), kMatrixTolerance) | EXPECT_NEAR(recovery.gauss_generalized_strains[0U][0U], (local_displacement[6U] - local_displacement[0U]) / 3.0, 1.0e-14) EXPECT_NEAR(dot, row == column ? 1.0 : 0.0, 1.0e-14) | EXPECT_NEAR(Determinant(rotation), 1.0, 1.0e-14) | EXPECT_LE(NormalizedMatrixError(global, expected_global), kMatrixTolerance) | EXPECT_NEAR(recovery.gauss_generalized_strains[0U][0U], (local_displacement[6U] - local_displacement[0U]) / 3.0, 1.0e-14) -Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.PreservesExactRotatedResultsAcrossVector3Migration EulerBeam3D.PreservesExactRotatedResultsAcrossVector3Migration; assertion 11개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.PreservesExactRotatedResultsAcrossVector3Migration 유지 원문 검사 body 및 assertion 동일. cf0127ac571a9fbf42f03f5ca9df5cb1211781ca31220dd266c7494bd465005b cf0127ac571a9fbf42f03f5ca9df5cb1211781ca31220dd266c7494bd465005b EXPECT_DOUBLE_EQ(delta.Norm(), 3.0) | EXPECT_DOUBLE_EQ(global(0U, 0U), 0x1.65f135da12f68p+28) | EXPECT_DOUBLE_EQ(global(0U, 1U), 0x1.6261c084bda12p+28) | EXPECT_DOUBLE_EQ(global(0U, 2U), 0x1.630ca684bda13p+27) | EXPECT_DOUBLE_EQ(global(4U, 4U), 0x1.068e359b59b58p+22) | EXPECT_DOUBLE_EQ(global(5U, 11U), 0x1.2d14a7ee7ee7bp+22) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][0U], 0x1.1111111111110p-5) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][1U], 0x1.1111111111111p-5) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][2U], -0x1.382425a7d2473p-6) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][3U], -0x1.a9389137b051dp-6) | EXPECT_DOUBLE_EQ(recovery.endpoint_section_resultants[1U][2U], 0x1.525c94a87359fp+17) EXPECT_DOUBLE_EQ(delta.Norm(), 3.0) | EXPECT_DOUBLE_EQ(global(0U, 0U), 0x1.65f135da12f68p+28) | EXPECT_DOUBLE_EQ(global(0U, 1U), 0x1.6261c084bda12p+28) | EXPECT_DOUBLE_EQ(global(0U, 2U), 0x1.630ca684bda13p+27) | EXPECT_DOUBLE_EQ(global(4U, 4U), 0x1.068e359b59b58p+22) | EXPECT_DOUBLE_EQ(global(5U, 11U), 0x1.2d14a7ee7ee7bp+22) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][0U], 0x1.1111111111110p-5) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][1U], 0x1.1111111111111p-5) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][2U], -0x1.382425a7d2473p-6) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][3U], -0x1.a9389137b051dp-6) | EXPECT_DOUBLE_EQ(recovery.endpoint_section_resultants[1U][2U], 0x1.525c94a87359fp+17) -Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.ConstantLineLoadMatchesAllSignedComponents EulerBeam3D.ConstantLineLoadMatchesAllSignedComponents; assertion 5개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.ConstantLineLoadMatchesAllSignedComponents 유지 원문 검사 body 및 assertion 동일. 6d608896998acfb9e31d28e2a9700cc5bfa9f3f273b5de08f201f18d6358f4f5 6d608896998acfb9e31d28e2a9700cc5bfa9f3f273b5de08f201f18d6358f4f5 ASSERT_EQ(equivalent.Size(), expected.size()) | EXPECT_GT(relative_errors[0U], relative_errors[1U]) | EXPECT_GT(relative_errors[1U], relative_errors[2U]) | EXPECT_NEAR( std::log(relative_errors[0U] / relative_errors[1U]) / std::log(2.0), 4.0, 1.0e-8) | EXPECT_NEAR( std::log(relative_errors[1U] / relative_errors[2U]) / std::log(2.0), 4.0, 1.0e-8) ASSERT_EQ(equivalent.Size(), expected.size()) | EXPECT_GT(relative_errors[0U], relative_errors[1U]) | EXPECT_GT(relative_errors[1U], relative_errors[2U]) | EXPECT_NEAR( std::log(relative_errors[0U] / relative_errors[1U]) / std::log(2.0), 4.0, 1.0e-8) | EXPECT_NEAR( std::log(relative_errors[1U] / relative_errors[2U]) / std::log(2.0), 4.0, 1.0e-8) -Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.AnalyticalAxialTorsionAndTwoPlaneBendingRecover EulerBeam3D.AnalyticalAxialTorsionAndTwoPlaneBendingRecover; assertion 2개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.AnalyticalAxialTorsionAndTwoPlaneBendingRecover 유지 원문 검사 body 및 assertion 동일. ec321db32dec17dd4598bb2af11029172b73838ff38e434a120520c4c8a66136 ec321db32dec17dd4598bb2af11029172b73838ff38e434a120520c4c8a66136 EXPECT_NEAR(local_yrecovery.endpoint_section_resultants[1U][3U], 0.0, 1.0e-8) | EXPECT_NEAR(local_zrecovery.endpoint_section_resultants[1U][2U], 0.0, 1.0e-8) EXPECT_NEAR(local_yrecovery.endpoint_section_resultants[1U][3U], 0.0, 1.0e-8) | EXPECT_NEAR(local_zrecovery.endpoint_section_resultants[1U][2U], 0.0, 1.0e-8) -Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RejectsInvalidGeometryAndProperties EulerBeam3D.RejectsInvalidGeometryAndProperties; assertion 5개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RejectsInvalidGeometryAndProperties 유지 원문 검사 body 및 assertion 동일. 84aca3252ee968479adb3ff42de486fae5c3eb0ecfc270ead2f5b7272471a512 84aca3252ee968479adb3ff42de486fae5c3eb0ecfc270ead2f5b7272471a512 EXPECT_EQ(result.GetStatus().Category(), FailureCategory::kModel) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, code) | EXPECT_TRUE(EulerBeam3D::Create(scaled_first, above_threshold, valid_section, valid_material) .HasValue()) | EXPECT_TRUE( EulerBeam3D::Create(origin, unit_x, guide_above_threshold, valid_material) .HasValue()) EXPECT_EQ(result.GetStatus().Category(), FailureCategory::kModel) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, code) | EXPECT_TRUE(EulerBeam3D::Create(scaled_first, above_threshold, valid_section, valid_material) .HasValue()) | EXPECT_TRUE( EulerBeam3D::Create(origin, unit_x, guide_above_threshold, valid_material) .HasValue()) -Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RecoversSectionPointAndDefaultCentroidS11 EulerBeam3D.RecoversSectionPointAndDefaultCentroidS11; assertion 11개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RecoversSectionPointAndDefaultCentroidS11 유지 원문 검사 body 및 assertion 동일. 22288ebdd3e81a891dc0f67b7ce14995403506506faa4cc045838d070fdd22d2 22288ebdd3e81a891dc0f67b7ce14995403506506faa4cc045838d070fdd22d2 "ASSERT_EQ(recovery.stress_points.size(), 4U) | EXPECT_EQ(stress.gauss_point, static_cast(gauss_point + 1U)) | EXPECT_EQ(stress.section_point, point + 1U) | EXPECT_DOUBLE_EQ(stress.x1, x1) | EXPECT_DOUBLE_EQ(stress.x2, x2) | ASSERT_EQ(default_recovery.stress_points.size(), 2U) | EXPECT_EQ(stress.gauss_point, static_cast(gauss_point + 1U)) | EXPECT_EQ(stress.section_point, 0U) | EXPECT_DOUBLE_EQ(stress.x1, 0.0) | EXPECT_DOUBLE_EQ(stress.x2, 0.0) | EXPECT_EQ(stress.source, ""fesa-default"")" "ASSERT_EQ(recovery.stress_points.size(), 4U) | EXPECT_EQ(stress.gauss_point, static_cast(gauss_point + 1U)) | EXPECT_EQ(stress.section_point, point + 1U) | EXPECT_DOUBLE_EQ(stress.x1, x1) | EXPECT_DOUBLE_EQ(stress.x2, x2) | ASSERT_EQ(default_recovery.stress_points.size(), 2U) | EXPECT_EQ(stress.gauss_point, static_cast(gauss_point + 1U)) | EXPECT_EQ(stress.section_point, 0U) | EXPECT_DOUBLE_EQ(stress.x1, 0.0) | EXPECT_DOUBLE_EQ(stress.x2, 0.0) | EXPECT_EQ(stress.source, ""fesa-default"")" -Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.ReproducesConstantStrainTwistAndCurvaturePatches EulerBeam3D.ReproducesConstantStrainTwistAndCurvaturePatches; assertion 4개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.ReproducesConstantStrainTwistAndCurvaturePatches 유지 원문 검사 body 및 assertion 동일. 4fa6d99d84b69f21604df5fa097dd5c21494f16445f261d75d87e8ebfbccd76e 4fa6d99d84b69f21604df5fa097dd5c21494f16445f261d75d87e8ebfbccd76e EXPECT_NEAR(recovery.equilibrium_end_actions[0U][1U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[0U][2U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[1U][1U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[1U][2U], 0.0, 1.0e-8) EXPECT_NEAR(recovery.equilibrium_end_actions[0U][1U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[0U][2U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[1U][1U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[1U][2U], 0.0, 1.0e-8) -Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.OnePointNegativeControlHasRankFour EulerBeam3D.OnePointNegativeControlHasRankFour; assertion 2개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.OnePointNegativeControlHasRankFour 유지 원문 검사 body 및 assertion 동일. 09b807bbb8c23f7aca5a27cdb8df60f75e866fec3d12dfce52a2c9271fec75da 09b807bbb8c23f7aca5a27cdb8df60f75e866fec3d12dfce52a2c9271fec75da EXPECT_EQ(SymmetricRank(one_point, kRigidTolerance), 4U) | EXPECT_EQ(SymmetricRank(production, kRigidTolerance), 6U) EXPECT_EQ(SymmetricRank(one_point, kRigidTolerance), 4U) | EXPECT_EQ(SymmetricRank(production, kRigidTolerance), 6U) -Refactor tests/unit/elements/euler_beam_3d_test.cpp support@1-500 helper/oracle/fixture/include/static assertion 구간: fesa, MakeNode, MakeMaterial, RequireBeam, if, AlignedBeam, MaximumAbsoluteEntry, MatrixIsFinite, NormalizedMatrixError, VectorNorm, QuadraticEnergy, ExpectScaledNear, ExpectRelativeNear, ExpectedClosedStiffness, SymmetricEigenvalues, SymmetricRank, for, count_if, TestOnlyOnePointStiffness, SolveFixedFirstNode, SolveDenseSystem, SolveUniformTransverseCantilever, UniformLoadInteriorDisplacementError, TransformationFromKnownRows, TransposeMultiply, Determinant tests/unit/elements/euler_beam_3d_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8fe565c3a19d57cd6870d3739c431b99fc41c549a91faa396fd25baea0ebb604 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/euler_beam_3d_test.cpp support@1137-1139 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/elements/euler_beam_3d_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/finite_rotation_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/elements/finite_rotation_test.cpp file 이관 원래 3-column inverse identity를 SpatialMomentSO3의 모든 unit-vector solve로 이관한다. 1e-11과 finite 검사를 유지하고 Refactor의 독립 z-axis virtual-work 검사를 함께 남긴다. ab332c787f3b6a987180c4901cf8c713e08c640e2e197f1c7be52afb11e698a3 60399a9c2b20a3752b3f57a1b74807dbb4db0800c7aa8c5ce375375a1f93340f 해당 없음 해당 없음 -Refactor tests/unit/elements/finite_rotation_test.cpp FiniteRotation.ZeroCoordinatePreservesInitialFrameAndDirector FiniteRotation.ZeroCoordinatePreservesInitialFrameAndDirector; assertion 2개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.ZeroCoordinatePreservesInitialFrameAndDirector 유지 원문 검사 body 및 assertion 동일. aad5b1d13028179488b58dd96eca0f52247abdd44548c24f6b2a5c67b6a12aa5 aad5b1d13028179488b58dd96eca0f52247abdd44548c24f6b2a5c67b6a12aa5 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().phi, Vector3{}) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().phi, Vector3{}) -Refactor tests/unit/elements/finite_rotation_test.cpp FiniteRotation.FiniteCoordinateBuildsProperTriadAndDirector FiniteRotation.FiniteCoordinateBuildsProperTriadAndDirector; assertion 1개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.FiniteCoordinateBuildsProperTriadAndDirector 유지 원문 검사 body 및 assertion 동일. 1013327e87dfbcfd8516fe145e8e8051a97b90d1f4321ff5bdc4f99dbe198e94 1013327e87dfbcfd8516fe145e8e8051a97b90d1f4321ff5bdc4f99dbe198e94 ASSERT_TRUE(result.HasValue()) ASSERT_TRUE(result.HasValue()) -Refactor tests/unit/elements/finite_rotation_test.cpp FiniteRotation.GlobalIncrementRebuildsFixedReferenceOrientation FiniteRotation.GlobalIncrementRebuildsFixedReferenceOrientation; assertion 3개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.GlobalIncrementRebuildsFixedReferenceOrientation 유지 원문 검사 body 및 assertion 동일. 069a14c550efe63bd5178dae6e8c3ae73a67dbff8c75ee68d7af81582d3336dd 069a14c550efe63bd5178dae6e8c3ae73a67dbff8c75ee68d7af81582d3336dd ASSERT_TRUE(committed.HasValue()) | ASSERT_TRUE(updated.HasValue()) | EXPECT_EQ(updated.Value().phi, expected_phi) ASSERT_TRUE(committed.HasValue()) | ASSERT_TRUE(updated.HasValue()) | EXPECT_EQ(updated.Value().phi, expected_phi) -Refactor tests/unit/elements/finite_rotation_test.cpp FiniteRotation.RejectsCoordinatesInsidePrincipalBranchMargin FiniteRotation.RejectsCoordinatesInsidePrincipalBranchMargin; assertion 5개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.RejectsCoordinatesInsidePrincipalBranchMargin 유지 원문 검사 body 및 assertion 동일. 12de3e3e90b293e3c19a0cc9620342eab8bad27fd9185362bf6aefb4c3c4334d 12de3e3e90b293e3c19a0cc9620342eab8bad27fd9185362bf6aefb4c3c4334d "EXPECT_TRUE(MakeFiniteRotationState(Vector3{pi - 2.0 * margin, 0.0, 0.0}, initial_frame) .HasValue()) | ASSERT_FALSE(ambiguous.HasValue()) | ASSERT_FALSE(ambiguous.GetStatus().IsOk()) | ASSERT_EQ(ambiguous.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(ambiguous.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"")" "EXPECT_TRUE(MakeFiniteRotationState(Vector3{pi - 2.0 * margin, 0.0, 0.0}, initial_frame) .HasValue()) | ASSERT_FALSE(ambiguous.HasValue()) | ASSERT_FALSE(ambiguous.GetStatus().IsOk()) | ASSERT_EQ(ambiguous.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(ambiguous.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"")" -Refactor tests/unit/elements/finite_rotation_test.cpp FiniteRotation.SpatialMomentSolvePreservesKnownLoadAndVirtualWork FiniteRotation.SpatialMomentSolvePreservesKnownLoadAndVirtualWork; assertion 2개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.SpatialMomentSolvePreservesKnownLoadAndVirtualWork 유지 원문 검사 body 및 assertion 동일. 605952b5bb0e5427f1d027b62ef6b37b3b943b5372efbde1a6e8425453325844 605952b5bb0e5427f1d027b62ef6b37b3b943b5372efbde1a6e8425453325844 ASSERT_TRUE(solved.HasValue()) | EXPECT_NEAR(generalized.Dot(variation), solved.Value().Dot(spatial_variation), 1e-11) ASSERT_TRUE(solved.HasValue()) | EXPECT_NEAR(generalized.Dot(variation), solved.Value().Dot(spatial_variation), 1e-11) -Refactor tests/unit/elements/finite_rotation_test.cpp FiniteRotation.JacobiansAreFiniteInverseTransposeAndDerivativeConsistent FiniteRotation.JacobiansAreFiniteInverseTransposeAndDerivativeConsistent; assertion 2개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.JacobiansAreFiniteInverseTransposeAndDerivativeConsistent 이관 원래 3-column inverse identity를 SpatialMomentSO3의 모든 unit-vector solve로 이관한다. 1e-11과 finite 검사를 유지하고 Refactor의 독립 z-axis virtual-work 검사를 함께 남긴다. 02ba014c6b54d4f6da74142b2d912a025de49d92ab2e0542ca7c10714797ba6f a39013f3e24d31e9ecb14e3117116d4f8be30cb57b65c734d2d81b560719432a EXPECT_TRUE(IsFinite(left_jacobian)) | ASSERT_TRUE(spatial.HasValue()) EXPECT_TRUE(IsFinite(left_jacobian)) | ASSERT_TRUE(solved.HasValue()) | EXPECT_TRUE(std::isfinite(solved.Value().X())) | EXPECT_TRUE(std::isfinite(solved.Value().Y())) | EXPECT_TRUE(std::isfinite(solved.Value().Z())) | EXPECT_NEAR(identity_column[row], row == column ? 1.0 : 0.0, 1.0e-11) | ASSERT_TRUE(spatial.HasValue()) -Refactor tests/unit/elements/finite_rotation_test.cpp FiniteRotation.RejectsNonfiniteCoordinatesAndInvalidInitialFrames FiniteRotation.RejectsNonfiniteCoordinatesAndInvalidInitialFrames; assertion 8개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.RejectsNonfiniteCoordinatesAndInvalidInitialFrames 유지 원문 검사 body 및 assertion 동일. 5da1952beb0840c9e5ab9fb79e02c5a2519d977763fb497904b3741c3d2a52d7 5da1952beb0840c9e5ab9fb79e02c5a2519d977763fb497904b3741c3d2a52d7 "ASSERT_FALSE(nonfinite.HasValue()) | ASSERT_EQ(nonfinite.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(nonfinite.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"") | EXPECT_FALSE(MakeFiniteRotationState(Vector3{}, invalid_frame).HasValue()) | ASSERT_TRUE(committed.HasValue()) | ASSERT_FALSE(invalid_increment.HasValue()) | ASSERT_EQ(invalid_increment.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(invalid_increment.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"")" "ASSERT_FALSE(nonfinite.HasValue()) | ASSERT_EQ(nonfinite.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(nonfinite.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"") | EXPECT_FALSE(MakeFiniteRotationState(Vector3{}, invalid_frame).HasValue()) | ASSERT_TRUE(committed.HasValue()) | ASSERT_FALSE(invalid_increment.HasValue()) | ASSERT_EQ(invalid_increment.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(invalid_increment.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"")" -Refactor tests/unit/elements/finite_rotation_test.cpp support@1-97 helper/oracle/fixture/include/static assertion 구간: fesa, InitialFrame, Transpose, Multiply, Determinant, IsFinite, if, ExpectMatrixNear, ExpectVectorNear, ExpectProperOrthogonal tests/unit/elements/finite_rotation_test.cpp file-support 유지 원래 3-column inverse identity를 SpatialMomentSO3의 모든 unit-vector solve로 이관한다. 1e-11과 finite 검사를 유지하고 Refactor의 독립 z-axis virtual-work 검사를 함께 남긴다. 214fd606ec176af7e65bf83ad0dd1cdaf0a15c0de6afd34a6fc06b5596dfab88 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/finite_rotation_test.cpp support@244-246 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/elements/finite_rotation_test.cpp file-support 유지 원래 3-column inverse identity를 SpatialMomentSO3의 모든 unit-vector solve로 이관한다. 1e-11과 finite 검사를 유지하고 Refactor의 독립 z-axis virtual-work 검사를 함께 남긴다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/hex8_element_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 34개 tests/unit/elements/hex8_element_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 978acb597d8a388a003add362d3eff59ae3def1be2a2ec7db8f43a0b42e56aed a80b2714cc9ea75d6b97dead96c8ff8d443812c306278883e54a74d8b4515d40 해당 없음 해당 없음 -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.ExactBrickStiffnessAndRowSumLumpedMass Hex8Element.ExactBrickStiffnessAndRowSumLumpedMass; assertion 7개 tests/unit/elements/hex8_element_test.cpp Hex8Element.ExactBrickStiffnessAndRowSumLumpedMass 유지 원문 검사 body 및 assertion 동일. 4958ab7f7854bb45aa79de051af75399166c78d31010d04061a611e3f1b0af57 4958ab7f7854bb45aa79de051af75399166c78d31010d04061a611e3f1b0af57 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(stiffness.HasValue()) | ASSERT_TRUE(mass.HasValue()) | ASSERT_EQ(k.Rows(), 24U) | ASSERT_EQ(m.Columns(), 24U) | EXPECT_NEAR(k(3 * a + i, 3 * b + j), exact, 2e-12) | EXPECT_NEAR(m(3 * a + i, 3 * b + j), expected_mass, 2e-14) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(stiffness.HasValue()) | ASSERT_TRUE(mass.HasValue()) | ASSERT_EQ(k.Rows(), 24U) | ASSERT_EQ(m.Columns(), 24U) | EXPECT_NEAR(k(3 * a + i, 3 * b + j), exact, 2e-12) | EXPECT_NEAR(m(3 * a + i, 3 * b + j), expected_mass, 2e-14) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.AffineTensorShearAndEightDistinctRecoveryPoints Hex8Element.AffineTensorShearAndEightDistinctRecoveryPoints; assertion 13개 tests/unit/elements/hex8_element_test.cpp Hex8Element.AffineTensorShearAndEightDistinctRecoveryPoints 유지 원문 검사 body 및 assertion 동일. 313b67ab5495cf7f93ddcbf2e7b5060057d3b60bbe619ea1a8bf18aa0c834287 313b67ab5495cf7f93ddcbf2e7b5060057d3b60bbe619ea1a8bf18aa0c834287 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(r.Value().strain_energy, 48.0 * 48.0 * 0.0002, 1e-12) | EXPECT_EQ(p.element, 7U) | EXPECT_EQ(p.integration_point, static_cast(g + 1)) | EXPECT_NEAR(p.strain[3], 0.01, 1e-16) | EXPECT_NEAR(p.cauchy_stress[3], 0.96, 1e-14) | EXPECT_DOUBLE_EQ(p.natural_coordinates[i], natural[i]) | EXPECT_NEAR(p.reference_coordinates[i], natural[i] * static_cast(i + 1U), 2e-15) | EXPECT_LT(r.Value().points[2].natural_coordinates[0], 0.0) | EXPECT_GT(r.Value().points[2].natural_coordinates[1], 0.0) | ASSERT_TRUE(recovered.HasValue()) | EXPECT_EQ(std::get(recovered.Value().payload) .rows.size(), 8U) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(r.Value().strain_energy, 48.0 * 48.0 * 0.0002, 1e-12) | EXPECT_EQ(p.element, 7U) | EXPECT_EQ(p.integration_point, static_cast(g + 1)) | EXPECT_NEAR(p.strain[3], 0.01, 1e-16) | EXPECT_NEAR(p.cauchy_stress[3], 0.96, 1e-14) | EXPECT_DOUBLE_EQ(p.natural_coordinates[i], natural[i]) | EXPECT_NEAR(p.reference_coordinates[i], natural[i] * static_cast(i + 1U), 2e-15) | EXPECT_LT(r.Value().points[2].natural_coordinates[0], 0.0) | EXPECT_GT(r.Value().points[2].natural_coordinates[1], 0.0) | ASSERT_TRUE(recovered.HasValue()) | EXPECT_EQ(std::get(recovered.Value().payload) .rows.size(), 8U) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.UniformTranslationHasExactlyZeroLinearForceAndEnergy Hex8Element.UniformTranslationHasExactlyZeroLinearForceAndEnergy; assertion 6개 tests/unit/elements/hex8_element_test.cpp Hex8Element.UniformTranslationHasExactlyZeroLinearForceAndEnergy 유지 원문 검사 body 및 assertion 동일. d26359e5ed35c184732756cded1c265d5d66185d9350490c6338e407985d9af7 d26359e5ed35c184732756cded1c265d5d66185d9350490c6338e407985d9af7 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_EQ(response.Value().strain_energy, 0.0) | EXPECT_EQ(response.Value().internal_force[i], 0.0) | EXPECT_EQ(point.strain[i], 0.0) | EXPECT_EQ(point.cauchy_stress[i], 0.0) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_EQ(response.Value().strain_energy, 0.0) | EXPECT_EQ(response.Value().internal_force[i], 0.0) | EXPECT_EQ(point.strain[i], 0.0) | EXPECT_EQ(point.cauchy_stress[i], 0.0) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.LinearResponseIsUnchangedByExactlyRepresentableTranslation Hex8Element.LinearResponseIsUnchangedByExactlyRepresentableTranslation; assertion 7개 tests/unit/elements/hex8_element_test.cpp Hex8Element.LinearResponseIsUnchangedByExactlyRepresentableTranslation 유지 원문 검사 body 및 assertion 동일. b6369e091941f9510897d937e44e5aea48b57bb6b78b0075ad1061ff7a9de3ab b6369e091941f9510897d937e44e5aea48b57bb6b78b0075ad1061ff7a9de3ab ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(translated.HasValue()) | EXPECT_EQ(translated.Value().strain_energy, original.Value().strain_energy) | EXPECT_EQ(translated.Value().internal_force[i], original.Value().internal_force[i]) | EXPECT_EQ(translated.Value().points[g].strain, original.Value().points[g].strain) | EXPECT_EQ(translated.Value().points[g].cauchy_stress, original.Value().points[g].cauchy_stress) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(translated.HasValue()) | EXPECT_EQ(translated.Value().strain_energy, original.Value().strain_energy) | EXPECT_EQ(translated.Value().internal_force[i], original.Value().internal_force[i]) | EXPECT_EQ(translated.Value().points[g].strain, original.Value().points[g].strain) | EXPECT_EQ(translated.Value().points[g].cauchy_stress, original.Value().points[g].cauchy_stress) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.TinySignedAffineStretchRetainsStvkStressForceAndEnergy Hex8Element.TinySignedAffineStretchRetainsStvkStressForceAndEnergy; assertion 8개 tests/unit/elements/hex8_element_test.cpp Hex8Element.TinySignedAffineStretchRetainsStvkStressForceAndEnergy 유지 원문 검사 body 및 assertion 동일. 78a9f3a03973517e375627e6db91c92f87055a4a578afaad01162ecd40bb8807 78a9f3a03973517e375627e6db91c92f87055a4a578afaad01162ecd40bb8807 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, expected_energy, 1e-12 * expected_energy) | EXPECT_NEAR(point.strain[0], green, 1e-12 * std::abs(green)) | EXPECT_NEAR(point.cauchy_stress[0], (1.0 + stretch) * sxx, 1e-12 * std::abs(sxx)) | EXPECT_NEAR(point.cauchy_stress[1], syy / (1.0 + stretch), 1e-12 * std::abs(syy)) | EXPECT_NEAR(point.cauchy_stress[2], syy / (1.0 + stretch), 1e-12 * std::abs(syy)) | EXPECT_NEAR(response.Value().internal_force[3U * a + i], expected[i], 1e-12 * std::abs(expected[i])) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, expected_energy, 1e-12 * expected_energy) | EXPECT_NEAR(point.strain[0], green, 1e-12 * std::abs(green)) | EXPECT_NEAR(point.cauchy_stress[0], (1.0 + stretch) * sxx, 1e-12 * std::abs(sxx)) | EXPECT_NEAR(point.cauchy_stress[1], syy / (1.0 + stretch), 1e-12 * std::abs(syy)) | EXPECT_NEAR(point.cauchy_stress[2], syy / (1.0 + stretch), 1e-12 * std::abs(syy)) | EXPECT_NEAR(response.Value().internal_force[3U * a + i], expected[i], 1e-12 * std::abs(expected[i])) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.FiniteRigidRotationHasZeroGreenEnergyAndForce Hex8Element.FiniteRigidRotationHasZeroGreenEnergyAndForce; assertion 4개 tests/unit/elements/hex8_element_test.cpp Hex8Element.FiniteRigidRotationHasZeroGreenEnergyAndForce 유지 원문 검사 body 및 assertion 동일. e455a9ed32fdd0e8e47fc3c290a1b727a91e2fa4e8bdaf6fbdc1afcf350feff8 e455a9ed32fdd0e8e47fc3c290a1b727a91e2fa4e8bdaf6fbdc1afcf350feff8 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(r.Value().strain_energy, 0.0, 1e-25) | EXPECT_LT(r.Value().internal_force.Norm(), 1e-11) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(r.Value().strain_energy, 0.0, 1e-25) | EXPECT_LT(r.Value().internal_force.Norm(), 1e-11) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsCollapsedAndInvalidMaterial Hex8Element.RejectsCollapsedAndInvalidMaterial; assertion 3개 tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsCollapsedAndInvalidMaterial 유지 원문 검사 body 및 assertion 동일. f7a6d301ea33b5e96a07e058df286d6cd4862431368a3073a678fb7d25013412 f7a6d301ea33b5e96a07e058df286d6cd4862431368a3073a678fb7d25013412 EXPECT_FALSE(Make(x).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, 0.5).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, -1.0).HasValue()) EXPECT_FALSE(Make(x).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, 0.5).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, -1.0).HasValue()) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.CertifiesPositiveQuadraticAfterSubdivision Hex8Element.CertifiesPositiveQuadraticAfterSubdivision; assertion 3개 tests/unit/elements/hex8_element_test.cpp Hex8Element.CertifiesPositiveQuadraticAfterSubdivision 유지 원문 검사 body 및 assertion 동일. 95b193341de90670eec4e7255153d7dceed178a93f1f64c003a50b742b00a37d 95b193341de90670eec4e7255153d7dceed178a93f1f64c003a50b742b00a37d ASSERT_TRUE(r.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(total, 2.0 * 8.0 * (.1125 + 1.0 / 3.0), 2e-14) ASSERT_TRUE(r.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(total, 2.0 * 8.0 * (.1125 + 1.0 / 3.0), 2e-14) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsInteriorFoldDespiteAll27SamplesAndGaussBeingPositive Hex8Element.RejectsInteriorFoldDespiteAll27SamplesAndGaussBeingPositive; assertion 7개 tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsInteriorFoldDespiteAll27SamplesAndGaussBeingPositive 유지 원문 검사 body 및 assertion 동일. bbc9326a1a8cd88f3825aed2389ec7e1ef842966741646d352f0832789f5d0c2 bbc9326a1a8cd88f3825aed2389ec7e1ef842966741646d352f0832789f5d0c2 "EXPECT_GT(xi * xi - .5 * xi + .0575, 0.0) | EXPECT_LT(.25 * .25 - .5 * .25 + .0575, 0.0) | ASSERT_FALSE(invalid.HasValue()) | EXPECT_NE(invalid.GetStatus().Diagnostics()[0].message.find(""nonpositive""), std::string::npos) | ASSERT_TRUE(valid.HasValue()) | EXPECT_FALSE(valid.Value().EvaluateNonlinear(u).HasValue()) | EXPECT_FALSE(valid.Value().EvaluateLinear(u).HasValue())" "EXPECT_GT(xi * xi - .5 * xi + .0575, 0.0) | EXPECT_LT(.25 * .25 - .5 * .25 + .0575, 0.0) | ASSERT_FALSE(invalid.HasValue()) | EXPECT_NE(invalid.GetStatus().Diagnostics()[0].message.find(""nonpositive""), std::string::npos) | ASSERT_TRUE(valid.HasValue()) | EXPECT_FALSE(valid.Value().EvaluateNonlinear(u).HasValue()) | EXPECT_FALSE(valid.Value().EvaluateLinear(u).HasValue())" -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.UnresolvedZeroInteriorJacobianFailsClosed Hex8Element.UnresolvedZeroInteriorJacobianFailsClosed; assertion 2개 tests/unit/elements/hex8_element_test.cpp Hex8Element.UnresolvedZeroInteriorJacobianFailsClosed 유지 원문 검사 body 및 assertion 동일. 25134743bf7dbd34b8f67e84c1f7410aca7787da7e52867c5219e8fd69b5915a 25134743bf7dbd34b8f67e84c1f7410aca7787da7e52867c5219e8fd69b5915a "ASSERT_FALSE(invalid.HasValue()) | EXPECT_NE(invalid.GetStatus().Diagnostics()[0].message.find(""unresolved""), std::string::npos)" "ASSERT_FALSE(invalid.HasValue()) | EXPECT_NE(invalid.GetStatus().Diagnostics()[0].message.find(""unresolved""), std::string::npos)" -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.TinyUncertainCurrentAdditionCannotBeAccepted Hex8Element.TinyUncertainCurrentAdditionCannotBeAccepted; assertion 2개 tests/unit/elements/hex8_element_test.cpp Hex8Element.TinyUncertainCurrentAdditionCannotBeAccepted 유지 원문 검사 body 및 assertion 동일. 27e5e73c83e4d58b025bd6e1a66cee4ffbee4247950b398ed98dace4cc6cb471 27e5e73c83e4d58b025bd6e1a66cee4ffbee4247950b398ed98dace4cc6cb471 ASSERT_TRUE(valid.HasValue()) | EXPECT_FALSE(valid.Value().EvaluateNonlinear(u).HasValue()) ASSERT_TRUE(valid.HasValue()) | EXPECT_FALSE(valid.Value().EvaluateNonlinear(u).HasValue()) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.SixRigidModesAndZeroStateTangent Hex8Element.SixRigidModesAndZeroStateTangent; assertion 6개 tests/unit/elements/hex8_element_test.cpp Hex8Element.SixRigidModesAndZeroStateTangent 유지 원문 검사 body 및 assertion 동일. 981fc257d430c76b022b6abdc8164538b5b2b0ad71090c5ad34aa8687b2600f4 981fc257d430c76b022b6abdc8164538b5b2b0ad71090c5ad34aa8687b2600f4 ASSERT_TRUE(element.HasValue()) | EXPECT_LT(k.Multiply(u).Norm(), 2e-12) | ASSERT_TRUE(trial.HasValue()) | EXPECT_NEAR(trial.Value().tangent(i, j), k(i, j), 2e-12) | EXPECT_DOUBLE_EQ(trial.Value().geometric_tangent(i, j), 0.0) | EXPECT_NEAR(k(i, j), k(j, i), 2e-12) ASSERT_TRUE(element.HasValue()) | EXPECT_LT(k.Multiply(u).Norm(), 2e-12) | ASSERT_TRUE(trial.HasValue()) | EXPECT_NEAR(trial.Value().tangent(i, j), k(i, j), 2e-12) | EXPECT_DOUBLE_EQ(trial.Value().geometric_tangent(i, j), 0.0) | EXPECT_NEAR(k(i, j), k(j, i), 2e-12) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.RowSumLumpedMassHasAll24PositiveDirectionsAndReferenceInvariance Hex8Element.RowSumLumpedMassHasAll24PositiveDirectionsAndReferenceInvariance; assertion 5개 tests/unit/elements/hex8_element_test.cpp Hex8Element.RowSumLumpedMassHasAll24PositiveDirectionsAndReferenceInvariance 유지 원문 검사 body 및 assertion 동일. 83b4b4951ae0ceb3a1ebba1031cb1b93db157eb11ceafe07c0e9a6efaf526056 83b4b4951ae0ceb3a1ebba1031cb1b93db157eb11ceafe07c0e9a6efaf526056 ASSERT_TRUE(element.HasValue()) | EXPECT_NEAR(mv[a], eigenvalue * v[a], 3e-14) | EXPECT_GT(v.Dot(mv), 0.0) | ASSERT_TRUE(element.Value().EvaluateNonlinear(Affine(Brick(), f)).HasValue()) | EXPECT_DOUBLE_EQ(before(i, j), after(i, j)) ASSERT_TRUE(element.HasValue()) | EXPECT_NEAR(mv[a], eigenvalue * v[a], 3e-14) | EXPECT_GT(v.Dot(mv), 0.0) | ASSERT_TRUE(element.Value().EvaluateNonlinear(Affine(Brick(), f)).HasValue()) | EXPECT_DOUBLE_EQ(before(i, j), after(i, j)) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.GeometryMaterialDensityScalingAndCoordinateCovariance Hex8Element.GeometryMaterialDensityScalingAndCoordinateCovariance; assertion 7개 tests/unit/elements/hex8_element_test.cpp Hex8Element.GeometryMaterialDensityScalingAndCoordinateCovariance 유지 원문 검사 body 및 assertion 동일. 4eb1091302e1a3fe888acb6e43f848406b05514f67e8e607ebebb448e2c3ae33 4eb1091302e1a3fe888acb6e43f848406b05514f67e8e607ebebb448e2c3ae33 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(rotated_element.HasValue()) | ASSERT_TRUE(scaled.HasValue()) | EXPECT_NEAR(kr(3 * a + i, 3 * b + j), oracle, 3e-12) | EXPECT_NEAR(mr(3 * a + i, 3 * b + j), m(3 * a + i, 3 * b + j), 3e-14) | EXPECT_NEAR(ks(3 * a + i, 3 * b + j), 7.5 * k(3 * a + i, 3 * b + j), 3e-11) | EXPECT_NEAR(ms(3 * a + i, 3 * b + j), 5.0 * 15.625 * m(3 * a + i, 3 * b + j), 3e-12) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(rotated_element.HasValue()) | ASSERT_TRUE(scaled.HasValue()) | EXPECT_NEAR(kr(3 * a + i, 3 * b + j), oracle, 3e-12) | EXPECT_NEAR(mr(3 * a + i, 3 * b + j), m(3 * a + i, 3 * b + j), 3e-14) | EXPECT_NEAR(ks(3 * a + i, 3 * b + j), 7.5 * k(3 * a + i, 3 * b + j), 3e-11) | EXPECT_NEAR(ms(3 * a + i, 3 * b + j), 5.0 * 15.625 * m(3 * a + i, 3 * b + j), 3e-12) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedAffinePatchHasExactEnergyAndGlobalCauchyGreenTensors Hex8Element.WarpedAffinePatchHasExactEnergyAndGlobalCauchyGreenTensors; assertion 7개 tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedAffinePatchHasExactEnergyAndGlobalCauchyGreenTensors 유지 원문 검사 body 및 assertion 동일. fe44f6f0a2891d1d47828642165b5b6797671cfe463b004bbb2fb282a442fd8d fe44f6f0a2891d1d47828642165b5b6797671cfe463b004bbb2fb282a442fd8d ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | EXPECT_NEAR(trial.Value().strain_energy, volume * (24.0 * trace * trace + 48.0 * contraction), 2e-12) | EXPECT_NEAR(p.strain[c], green[i][j], 5e-16) | EXPECT_NEAR(p.cauchy_stress[c], sigma[i][j], 8e-14) | EXPECT_NEAR(force[i], 0.0, 5e-13) | EXPECT_NEAR(moment[i], 0.0, 2e-12) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | EXPECT_NEAR(trial.Value().strain_energy, volume * (24.0 * trace * trace + 48.0 * contraction), 2e-12) | EXPECT_NEAR(p.strain[c], green[i][j], 5e-16) | EXPECT_NEAR(p.cauchy_stress[c], sigma[i][j], 8e-14) | EXPECT_NEAR(force[i], 0.0, 5e-13) | EXPECT_NEAR(moment[i], 0.0, 2e-12) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.StrainedRigidRotationPreservesEnergyAndCovariantForceTangent Hex8Element.StrainedRigidRotationPreservesEnergyAndCovariantForceTangent; assertion 6개 tests/unit/elements/hex8_element_test.cpp Hex8Element.StrainedRigidRotationPreservesEnergyAndCovariantForceTangent 유지 원문 검사 body 및 assertion 동일. cdc4257cf115d6d2c10dbdfb298f45077d8821f024dcec44056b2a7a71c3589f cdc4257cf115d6d2c10dbdfb298f45077d8821f024dcec44056b2a7a71c3589f ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | EXPECT_NEAR(rotated.Value().strain_energy, baseline.Value().strain_energy, 3e-12) | EXPECT_NEAR(rotated.Value().internal_force[3 * a + i], expected[i], 3e-12) | EXPECT_NEAR(rotated.Value().tangent(3 * a + i, 3 * b + j), expected_k, 7e-12) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | EXPECT_NEAR(rotated.Value().strain_energy, baseline.Value().strain_energy, 3e-12) | EXPECT_NEAR(rotated.Value().internal_force[3 * a + i], expected[i], 3e-12) | EXPECT_NEAR(rotated.Value().tangent(3 * a + i, 3 * b + j), expected_k, 7e-12) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.EnergyForceAndForceTangentDirectionalStepSweep Hex8Element.EnergyForceAndForceTangentDirectionalStepSweep; assertion 11개 tests/unit/elements/hex8_element_test.cpp Hex8Element.EnergyForceAndForceTangentDirectionalStepSweep 유지 원문 검사 body 및 assertion 동일. c1ac1963af7f68ce46427d45877d677e804ed410b87c23a0a35910fb1386ff55 c1ac1963af7f68ce46427d45877d677e804ed410b87c23a0a35910fb1386ff55 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | ASSERT_TRUE(rp.HasValue()) | ASSERT_TRUE(rm.HasValue()) | EXPECT_LT(energy_error[1], .02 * energy_error[0]) | EXPECT_LT(force_error[1], .02 * force_error[0]) | EXPECT_LT(*std::min_element(energy_error.begin(), energy_error.end()), 1e-7) | EXPECT_LT(*std::min_element(force_error.begin(), force_error.end()), 1e-7) | EXPECT_GT(energy_error.back(), *std::min_element(energy_error.begin(), energy_error.end())) | EXPECT_NEAR(trial.Value().tangent(i, j), trial.Value().tangent(j, i), MaxEntry(trial.Value().tangent) * 2e-14) | EXPECT_DOUBLE_EQ(trial.Value().tangent(i, j), trial.Value().material_tangent(i, j) + trial.Value().geometric_tangent(i, j)) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | ASSERT_TRUE(rp.HasValue()) | ASSERT_TRUE(rm.HasValue()) | EXPECT_LT(energy_error[1], .02 * energy_error[0]) | EXPECT_LT(force_error[1], .02 * force_error[0]) | EXPECT_LT(*std::min_element(energy_error.begin(), energy_error.end()), 1e-7) | EXPECT_LT(*std::min_element(force_error.begin(), force_error.end()), 1e-7) | EXPECT_GT(energy_error.back(), *std::min_element(energy_error.begin(), energy_error.end())) | EXPECT_NEAR(trial.Value().tangent(i, j), trial.Value().tangent(j, i), MaxEntry(trial.Value().tangent) * 2e-14) | EXPECT_DOUBLE_EQ(trial.Value().tangent(i, j), trial.Value().material_tangent(i, j) + trial.Value().geometric_tangent(i, j)) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.TranslatedWarpedLinearResponseRetainsEnergyAndTangentVariation Hex8Element.TranslatedWarpedLinearResponseRetainsEnergyAndTangentVariation; assertion 8개 tests/unit/elements/hex8_element_test.cpp Hex8Element.TranslatedWarpedLinearResponseRetainsEnergyAndTangentVariation 유지 원문 검사 body 및 assertion 동일. 3aee6e7ad64dc19c22977520ef31f2117eb4c6fd4f7fdf4c71fdbc351525e89c 3aee6e7ad64dc19c22977520ef31f2117eb4c6fd4f7fdf4c71fdbc351525e89c ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | ASSERT_NE(derivative, 0.0) | ASSERT_GT(tangent_direction.Norm(), 0.0) | ASSERT_TRUE(rp.HasValue()) | ASSERT_TRUE(rm.HasValue()) | EXPECT_LT(*std::min_element(energy_error.begin(), energy_error.end()), 1e-7) | EXPECT_LT(*std::min_element(force_error.begin(), force_error.end()), 1e-7) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | ASSERT_NE(derivative, 0.0) | ASSERT_GT(tangent_direction.Norm(), 0.0) | ASSERT_TRUE(rp.HasValue()) | ASSERT_TRUE(rm.HasValue()) | EXPECT_LT(*std::min_element(energy_error.begin(), energy_error.end()), 1e-7) | EXPECT_LT(*std::min_element(force_error.begin(), force_error.end()), 1e-7) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.InvalidInputsAndFailedTrialPreservePriorResponseAndReference Hex8Element.InvalidInputsAndFailedTrialPreservePriorResponseAndReference; assertion 23개 tests/unit/elements/hex8_element_test.cpp Hex8Element.InvalidInputsAndFailedTrialPreservePriorResponseAndReference 유지 원문 검사 body 및 assertion 동일. eafc89af7adfd7c0e8325f391adaccb0253f22989cd839d88e804ef1747ba172 eafc89af7adfd7c0e8325f391adaccb0253f22989cd839d88e804ef1747ba172 "EXPECT_FALSE(Make(Brick(), 0.0).HasValue()) | EXPECT_FALSE( Make(Brick(), std::numeric_limits::infinity()).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, std::numeric_limits::quiet_NaN()) .HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, .25, 0.0).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, .25, -1.0).HasValue()) | EXPECT_FALSE( Make(Brick(), 120.0, .25, std::numeric_limits::infinity()) .HasValue()) | EXPECT_FALSE(Make(nonfinite).HasValue()) | ASSERT_TRUE(no_density.HasValue()) | EXPECT_FALSE(no_density.Value().ComputeMass().HasValue()) | ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(accepted.HasValue()) | EXPECT_FALSE(element.Value().EvaluateNonlinear(failed).HasValue()) | EXPECT_FALSE(element.Value().EvaluateLinear(fesa::Vector{23U}).HasValue()) | EXPECT_FALSE(Make(inverted).HasValue()) | ASSERT_TRUE(again.HasValue()) | EXPECT_DOUBLE_EQ(accepted.Value().strain_energy, again.Value().strain_energy) | EXPECT_DOUBLE_EQ(accepted.Value().internal_force[i], again.Value().internal_force[i]) | EXPECT_DOUBLE_EQ(accepted.Value().tangent(i, j), again.Value().tangent(i, j)) | ASSERT_FALSE(failure.HasValue()) | EXPECT_EQ(failure.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_EQ(diagnostic.location.line, 4U) | EXPECT_EQ(diagnostic.keyword, ""C3D8"") | EXPECT_EQ(diagnostic.entity_identity, ""PART-1:42"")" "EXPECT_FALSE(Make(Brick(), 0.0).HasValue()) | EXPECT_FALSE( Make(Brick(), std::numeric_limits::infinity()).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, std::numeric_limits::quiet_NaN()) .HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, .25, 0.0).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, .25, -1.0).HasValue()) | EXPECT_FALSE( Make(Brick(), 120.0, .25, std::numeric_limits::infinity()) .HasValue()) | EXPECT_FALSE(Make(nonfinite).HasValue()) | ASSERT_TRUE(no_density.HasValue()) | EXPECT_FALSE(no_density.Value().ComputeMass().HasValue()) | ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(accepted.HasValue()) | EXPECT_FALSE(element.Value().EvaluateNonlinear(failed).HasValue()) | EXPECT_FALSE(element.Value().EvaluateLinear(fesa::Vector{23U}).HasValue()) | EXPECT_FALSE(Make(inverted).HasValue()) | ASSERT_TRUE(again.HasValue()) | EXPECT_DOUBLE_EQ(accepted.Value().strain_energy, again.Value().strain_energy) | EXPECT_DOUBLE_EQ(accepted.Value().internal_force[i], again.Value().internal_force[i]) | EXPECT_DOUBLE_EQ(accepted.Value().tangent(i, j), again.Value().tangent(i, j)) | ASSERT_FALSE(failure.HasValue()) | EXPECT_EQ(failure.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_EQ(diagnostic.location.line, 4U) | EXPECT_EQ(diagnostic.keyword, ""C3D8"") | EXPECT_EQ(diagnostic.entity_identity, ""PART-1:42"")" -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.InvalidLayoutsAreRejectedBeforeNumericalWork Hex8Element.InvalidLayoutsAreRejectedBeforeNumericalWork; assertion 4개 tests/unit/elements/hex8_element_test.cpp Hex8Element.InvalidLayoutsAreRejectedBeforeNumericalWork 유지 원문 검사 body 및 assertion 동일. a7ca0be993c579446617dabcfc9a712b6f62501b3ac95ccceb134dd90997bee1 a7ca0be993c579446617dabcfc9a712b6f62501b3ac95ccceb134dd90997bee1 EXPECT_FALSE( fesa::Hex8Element::Create(7U, duplicate, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, missing, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, wrong_order, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, rotation, Brick(), material).HasValue()) EXPECT_FALSE( fesa::Hex8Element::Create(7U, duplicate, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, missing, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, wrong_order, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, rotation, Brick(), material).HasValue()) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.LinearStiffnessHasOnlyTheSixRigidNullDirections Hex8Element.LinearStiffnessHasOnlyTheSixRigidNullDirections; assertion 2개 tests/unit/elements/hex8_element_test.cpp Hex8Element.LinearStiffnessHasOnlyTheSixRigidNullDirections 유지 원문 검사 body 및 assertion 동일. 87f05ea3e4d1a7ddcb6193da61ab7d81812977f0bb3598ad5b32781d868650f2 87f05ea3e4d1a7ddcb6193da61ab7d81812977f0bb3598ad5b32781d868650f2 ASSERT_TRUE(element.HasValue()) | ASSERT_GT(value, 0.0) ASSERT_TRUE(element.HasValue()) | ASSERT_GT(value, 0.0) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.NonlinearSmallLoadApproachesLinearResponse Hex8Element.NonlinearSmallLoadApproachesLinearResponse; assertion 6개 tests/unit/elements/hex8_element_test.cpp Hex8Element.NonlinearSmallLoadApproachesLinearResponse 유지 원문 검사 body 및 assertion 동일. 3c2e1d6f5f5b8adf802500e646e7efca6aed2be1a4f2b685d98bc30f7927f326 3c2e1d6f5f5b8adf802500e646e7efca6aed2be1a4f2b685d98bc30f7927f326 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(linear.HasValue()) | EXPECT_NEAR(linear.Value().strain_energy, .5 * u.Dot(k.Multiply(u)), 1e-14) | EXPECT_LT(error[1], .12 * error[0]) | EXPECT_LT(error[2], .12 * error[1]) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(linear.HasValue()) | EXPECT_NEAR(linear.Value().strain_energy, .5 * u.Dot(k.Multiply(u)), 1e-14) | EXPECT_LT(error[1], .12 * error[0]) | EXPECT_LT(error[2], .12 * error[1]) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsUnrepresentableShearAndMassInsteadOfReturningZeros Hex8Element.RejectsUnrepresentableShearAndMassInsteadOfReturningZeros; assertion 3개 tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsUnrepresentableShearAndMassInsteadOfReturningZeros 유지 원문 검사 body 및 assertion 동일. 030f54c1c851716efb795775685d456b6b30de54201b82b51707735e2ce8993e 030f54c1c851716efb795775685d456b6b30de54201b82b51707735e2ce8993e EXPECT_FALSE(Make(Brick(), tiny, .25).HasValue()) | ASSERT_TRUE(element.HasValue()) | EXPECT_FALSE(element.Value().ComputeMass().HasValue()) EXPECT_FALSE(Make(Brick(), tiny, .25).HasValue()) | ASSERT_TRUE(element.HasValue()) | EXPECT_FALSE(element.Value().ComputeMass().HasValue()) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.DirectBulkSurvivesNearNegativePoissonBound Hex8Element.DirectBulkSurvivesNearNegativePoissonBound; assertion 3개 tests/unit/elements/hex8_element_test.cpp Hex8Element.DirectBulkSurvivesNearNegativePoissonBound 유지 원문 검사 body 및 assertion 동일. b409b61a9964e0974b9805bd990ef6c7ff26668ed043b3966161af7cd68927ce b409b61a9964e0974b9805bd990ef6c7ff26668ed043b3966161af7cd68927ce ASSERT_TRUE(element.HasValue()) | EXPECT_GT(1.0 / (3.0 * (1.0 - 2.0 * nu)), 0.0) | EXPECT_TRUE(element.Value().EvaluateLinear(zero).HasValue()) ASSERT_TRUE(element.HasValue()) | EXPECT_GT(1.0 / (3.0 * (1.0 - 2.0 * nu)), 0.0) | EXPECT_TRUE(element.Value().EvaluateLinear(zero).HasValue()) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.OrdinaryNegativePoissonRatioRetainsPositiveVolumetricEnergy Hex8Element.OrdinaryNegativePoissonRatioRetainsPositiveVolumetricEnergy; assertion 4개 tests/unit/elements/hex8_element_test.cpp Hex8Element.OrdinaryNegativePoissonRatioRetainsPositiveVolumetricEnergy 유지 원문 검사 body 및 assertion 동일. b73dc4b5fd199b08ca51058ccbaf627b1e6a18d8977180164595181c99323fb7 b73dc4b5fd199b08ca51058ccbaf627b1e6a18d8977180164595181c99323fb7 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, 48.0 * .5 * bulk * trace * trace, 2e-14) | EXPECT_NEAR(point.cauchy_stress[i], bulk * trace, 2e-14) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, 48.0 * .5 * bulk * trace * trace, 2e-14) | EXPECT_NEAR(point.cauchy_stress[i], bulk * trace, 2e-14) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.FiniteInputsThatOverflowDerivedArithmeticFailClosed Hex8Element.FiniteInputsThatOverflowDerivedArithmeticFailClosed; assertion 10개 tests/unit/elements/hex8_element_test.cpp Hex8Element.FiniteInputsThatOverflowDerivedArithmeticFailClosed 유지 원문 검사 body 및 assertion 동일. 5e6ac7207369709d94127e8b67d20735dc11818d5ff0e03fe463d16a3c34300f 5e6ac7207369709d94127e8b67d20735dc11818d5ff0e03fe463d16a3c34300f "ASSERT_FALSE(bad_material.HasValue()) | EXPECT_NE(bad_material.GetStatus().Diagnostics()[0].message.find(""finite""), std::string::npos) | ASSERT_FALSE(bad_geometry.HasValue()) | EXPECT_NE(bad_geometry.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos) | ASSERT_TRUE(element.HasValue()) | ASSERT_FALSE(bad_mass.HasValue()) | EXPECT_NE(bad_mass.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos) | ASSERT_FALSE(bad_trial.HasValue()) | EXPECT_NE(bad_trial.GetStatus().Diagnostics()[0].message.find(""trial""), std::string::npos) | EXPECT_NE(bad_trial.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos)" "ASSERT_FALSE(bad_material.HasValue()) | EXPECT_NE(bad_material.GetStatus().Diagnostics()[0].message.find(""finite""), std::string::npos) | ASSERT_FALSE(bad_geometry.HasValue()) | EXPECT_NE(bad_geometry.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos) | ASSERT_TRUE(element.HasValue()) | ASSERT_FALSE(bad_mass.HasValue()) | EXPECT_NE(bad_mass.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos) | ASSERT_FALSE(bad_trial.HasValue()) | EXPECT_NE(bad_trial.GetStatus().Diagnostics()[0].message.find(""trial""), std::string::npos) | EXPECT_NE(bad_trial.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos)" -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedRowSumMassMatchesIndependentNodalIntegralsAndNonuniformEnergy Hex8Element.WarpedRowSumMassMatchesIndependentNodalIntegralsAndNonuniformEnergy; assertion 6개 tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedRowSumMassMatchesIndependentNodalIntegralsAndNonuniformEnergy 유지 원문 검사 body 및 assertion 동일. bf8a73def3fe445aed1d34414e6487babf97967f7a2eee63f30dc54cc56e719b bf8a73def3fe445aed1d34414e6487babf97967f7a2eee63f30dc54cc56e719b ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(actual(3U * a + i, 3U * a + j), i == j ? expected[a] : 0.0, 3e-14) | EXPECT_GT(max_nodal - min_nodal, 1e-4) | EXPECT_NEAR(lumped_energy, independent_energy, 3e-14 * independent_energy) | EXPECT_GT(std::abs(lumped_energy - uniform_energy), 1e-4) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(actual(3U * a + i, 3U * a + j), i == j ? expected[a] : 0.0, 3e-14) | EXPECT_GT(max_nodal - min_nodal, 1e-4) | EXPECT_NEAR(lumped_energy, independent_energy, 3e-14 * independent_energy) | EXPECT_GT(std::abs(lumped_energy - uniform_energy), 1e-4) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedNonaffineQuadratureDifferenceIsQuantifiedAndRefines Hex8Element.WarpedNonaffineQuadratureDifferenceIsQuantifiedAndRefines; assertion 4개 tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedNonaffineQuadratureDifferenceIsQuantifiedAndRefines 유지 원문 검사 body 및 assertion 동일. 5d17d7efabd51400aebc4c48b3b6ce69588a7ceabc7181514c40a0fbc9b85a80 5d17d7efabd51400aebc4c48b3b6ce69588a7ceabc7181514c40a0fbc9b85a80 ASSERT_TRUE(element.HasValue()) | EXPECT_NEAR(.5 * u.Dot(k.Multiply(u)), q2[0], budget * q2[0]) | EXPECT_GT(stiffness_discrepancy, 1e-8) | EXPECT_LT(std::abs(q5[0] - q7[0]), .05 * std::abs(q3[0] - q7[0])) ASSERT_TRUE(element.HasValue()) | EXPECT_NEAR(.5 * u.Dot(k.Multiply(u)), q2[0], budget * q2[0]) | EXPECT_GT(stiffness_discrepancy, 1e-8) | EXPECT_LT(std::abs(q5[0] - q7[0]), .05 * std::abs(q3[0] - q7[0])) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeNonaffinePolynomialEnergyForceHessianAndActualStrain Hex8Element.MeanVolumeNonaffinePolynomialEnergyForceHessianAndActualStrain; assertion 14개 tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeNonaffinePolynomialEnergyForceHessianAndActualStrain 유지 원문 검사 body 및 assertion 동일. 57b07c678307c09776b4d21ca346b44d0c11e07901b38c8ded396f3d1b7a05e4 57b07c678307c09776b4d21ca346b44d0c11e07901b38c8ded396f3d1b7a05e4 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(r.strain_energy, energy, 2e-14) | EXPECT_NEAR(r.internal_force[6] + r.internal_force[18], force, 2e-13) | EXPECT_NEAR(r.tangent(6, 6) + r.tangent(6, 18) + r.tangent(18, 6) + r.tangent(18, 18), hessian, 2e-12) | EXPECT_NEAR(point.strain[0], exx, 2e-15) | EXPECT_NEAR(point.strain[1], eyy, 2e-15) | EXPECT_NEAR(point.strain[3], exy, 2e-15) | EXPECT_NEAR( point.cauchy_stress[0], nonlinear ? (t * t * sxx + 2 * t * c * px * sxy + c * c * px * px * syy) / t : sxx, 2e-13) | EXPECT_NEAR(point.cauchy_stress[1], nonlinear ? syy / t : syy, 2e-13) | EXPECT_NEAR(point.cauchy_stress[2], nonlinear ? szz / t : szz, 2e-13) | EXPECT_NEAR(point.cauchy_stress[3], nonlinear ? (t * sxy + c * px * syy) / t : sxy, 2e-13) | EXPECT_NEAR(k(0, 0), 41.0 / 18, 2e-14) | EXPECT_NEAR(k(0, 1), 19.0 / 30, 2e-14) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(r.strain_energy, energy, 2e-14) | EXPECT_NEAR(r.internal_force[6] + r.internal_force[18], force, 2e-13) | EXPECT_NEAR(r.tangent(6, 6) + r.tangent(6, 18) + r.tangent(18, 6) + r.tangent(18, 18), hessian, 2e-12) | EXPECT_NEAR(point.strain[0], exx, 2e-15) | EXPECT_NEAR(point.strain[1], eyy, 2e-15) | EXPECT_NEAR(point.strain[3], exy, 2e-15) | EXPECT_NEAR( point.cauchy_stress[0], nonlinear ? (t * t * sxx + 2 * t * c * px * sxy + c * c * px * px * syy) / t : sxx, 2e-13) | EXPECT_NEAR(point.cauchy_stress[1], nonlinear ? syy / t : syy, 2e-13) | EXPECT_NEAR(point.cauchy_stress[2], nonlinear ? szz / t : szz, 2e-13) | EXPECT_NEAR(point.cauchy_stress[3], nonlinear ? (t * sxy + c * px * syy) / t : sxy, 2e-13) | EXPECT_NEAR(k(0, 0), 41.0 / 18, 2e-14) | EXPECT_NEAR(k(0, 1), 19.0 / 30, 2e-14) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedStressUsesReferenceWeightedTrace Hex8Element.MeanVolumeWarpedStressUsesReferenceWeightedTrace; assertion 5개 tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedStressUsesReferenceWeightedTrace 유지 원문 검사 body 및 assertion 동일. 59532de38aa69f4c4457d06696198fcd7c2f3a8fa6ff9c031d5167d0997ff48f 59532de38aa69f4c4457d06696198fcd7c2f3a8fa6ff9c031d5167d0997ff48f ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_GT(std::abs(mean - arithmetic), 1e-8) | EXPECT_NEAR((s[0] + s[1] + s[2]) / 3, 80 * mean, 2e-13) | EXPECT_NEAR(response.Value().strain_energy, WarpedQuadratureEnergies(u, 2)[0], 2e-12) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_GT(std::abs(mean - arithmetic), 1e-8) | EXPECT_NEAR((s[0] + s[1] + s[2]) / 3, 80 * mean, 2e-13) | EXPECT_NEAR(response.Value().strain_energy, WarpedQuadratureEnergies(u, 2)[0], 2e-12) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeDirectBulkSupportsBoundsWithoutLambdaOrThreeBulkGuard Hex8Element.MeanVolumeDirectBulkSupportsBoundsWithoutLambdaOrThreeBulkGuard; assertion 9개 tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeDirectBulkSupportsBoundsWithoutLambdaOrThreeBulkGuard 유지 원문 검사 body 및 assertion 동일. c28569a10dbd624762f2603dcbc1fde256d3cb97dba712040d799994fbf19f2f c28569a10dbd624762f2603dcbc1fde256d3cb97dba712040d799994fbf19f2f EXPECT_TRUE( Make(MeanVolumeUnitBrick(), 12, std::nextafter(-1.0, 0.0)).HasValue()) | EXPECT_TRUE( Make(MeanVolumeUnitBrick(), 1, std::nextafter(.5, 0.0)).HasValue()) | ASSERT_TRUE(huge.HasValue()) | ASSERT_TRUE(std::isfinite(direct_bulk)) | ASSERT_FALSE(std::isfinite(3 * direct_bulk)) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, expected, 1e-13 * expected) | EXPECT_FALSE(Make(MeanVolumeUnitBrick(), 1e308, .499).HasValue()) | EXPECT_FALSE(Make(MeanVolumeUnitBrick(), std::numeric_limits::denorm_min(), -.5) .HasValue()) EXPECT_TRUE( Make(MeanVolumeUnitBrick(), 12, std::nextafter(-1.0, 0.0)).HasValue()) | EXPECT_TRUE( Make(MeanVolumeUnitBrick(), 1, std::nextafter(.5, 0.0)).HasValue()) | ASSERT_TRUE(huge.HasValue()) | ASSERT_TRUE(std::isfinite(direct_bulk)) | ASSERT_FALSE(std::isfinite(3 * direct_bulk)) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, expected, 1e-13 * expected) | EXPECT_FALSE(Make(MeanVolumeUnitBrick(), 1e308, .499).HasValue()) | EXPECT_FALSE(Make(MeanVolumeUnitBrick(), std::numeric_limits::denorm_min(), -.5) .HasValue()) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedIndependentEnergyHasCoupledNodeZeroDerivatives Hex8Element.MeanVolumeWarpedIndependentEnergyHasCoupledNodeZeroDerivatives; assertion 9개 tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedIndependentEnergyHasCoupledNodeZeroDerivatives 유지 원문 검사 body 및 assertion 동일. 3b485161230c69549e449fb7f27b5a942570fa036874622b9d715638e65df1e2 3b485161230c69549e449fb7f27b5a942570fa036874622b9d715638e65df1e2 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(paired.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, energy, 2e-12) | EXPECT_NEAR(paired.Value().high.strain_energy, energy, 2e-12) | EXPECT_NEAR(direction.Dot(response.Value().internal_force), df, 2e-10) | EXPECT_NEAR(direction.Dot(paired.Value().high.internal_force), df, 2e-10) | EXPECT_NEAR(direction.Dot(response.Value().tangent.Multiply(direction)), ddf, 2e-8) | EXPECT_NEAR(direction.Dot(paired.Value().high.tangent.Multiply(direction)), ddf, 2e-8) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(paired.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, energy, 2e-12) | EXPECT_NEAR(paired.Value().high.strain_energy, energy, 2e-12) | EXPECT_NEAR(direction.Dot(response.Value().internal_force), df, 2e-10) | EXPECT_NEAR(direction.Dot(paired.Value().high.internal_force), df, 2e-10) | EXPECT_NEAR(direction.Dot(response.Value().tangent.Multiply(direction)), ddf, 2e-8) | EXPECT_NEAR(direction.Dot(paired.Value().high.tangent.Multiply(direction)), ddf, 2e-8) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedLowOnlyStateRetainsWeightedCubicEnergy Hex8Element.MeanVolumeWarpedLowOnlyStateRetainsWeightedCubicEnergy; assertion 8개 tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedLowOnlyStateRetainsWeightedCubicEnergy 유지 원문 검사 body 및 assertion 동일. b232e31a9ebe5946b4d1192b8712f0debd77a8a716c425571f5e2c83529bf37b b232e31a9ebe5946b4d1192b8712f0debd77a8a716c425571f5e2c83529bf37b ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(high_only.HasValue()) | EXPECT_EQ(high_only.Value().high.strain_energy, 0) | EXPECT_NEAR(linear.Value().high.strain_energy, quadratic * c * c, 1e-12 * c * c) | EXPECT_NEAR(actual_cubic.high, cubic * c * c * c, 1e-11 * c * c * c) | EXPECT_NE(actual_cubic.high, 0) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(high_only.HasValue()) | EXPECT_EQ(high_only.Value().high.strain_energy, 0) | EXPECT_NEAR(linear.Value().high.strain_energy, quadratic * c * c, 1e-12 * c * c) | EXPECT_NEAR(actual_cubic.high, cubic * c * c * c, 1e-11 * c * c * c) | EXPECT_NE(actual_cubic.high, 0) -Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsNonfiniteCanonicalJacobianActionBeforeFiniteGradients Hex8Element.RejectsNonfiniteCanonicalJacobianActionBeforeFiniteGradients; assertion 3개 tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsNonfiniteCanonicalJacobianActionBeforeFiniteGradients 유지 원문 검사 body 및 assertion 동일. 80b5afadd859d166f5d9d8aa945ee6da72ffe74085fe940faab94f467cf827e4 80b5afadd859d166f5d9d8aa945ee6da72ffe74085fe940faab94f467cf827e4 "ASSERT_FALSE(rejected.HasValue()) | ASSERT_EQ(rejected.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].message, ""Reference Jacobian inverse is nonfinite."")" "ASSERT_FALSE(rejected.HasValue()) | ASSERT_EQ(rejected.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].message, ""Reference Jacobian inverse is nonfinite."")" -Refactor tests/unit/elements/hex8_element_test.cpp support@1-50 helper/oracle/fixture/include/static assertion 구간: Brick, Make, GradientProduct tests/unit/elements/hex8_element_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 839b075a0d0eda927ed3a1940c15bef4980783019187ede4daa63b2dd3a9a398 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/hex8_element_test.cpp support@228-268 helper/oracle/fixture/include/static assertion 구간: Rotate, Affine, Warped, QuadraticMap, MaxEntry tests/unit/elements/hex8_element_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 50c481031d1e74a0a358dee1dddea4c0acb477e97c84969072b8a1a3b50d27b2 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/hex8_element_test.cpp support@813-931 helper/oracle/fixture/include/static assertion 구간: LegendreRule, WarpedLumpedMass3x3, for, Cross, WarpedQuadratureEnergies tests/unit/elements/hex8_element_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f67b10e521588921549e46a4ae49bde140f46022a0aff343b4ce97263808d386 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/hex8_element_test.cpp support@988-994 helper/oracle/fixture/include/static assertion 구간: MeanVolumeUnitBrick tests/unit/elements/hex8_element_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b1b4b6e8408b50361c87580a49c4b608c96d1d0120b7bdaeea6162789efd43d7 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/hex8_element_test.cpp support@1183-1184 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/hex8_element_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c2bd7638f09d52cb034ed574f539304035fc6fab162bf8d5fa20a35d8c7288a1 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/hex8_high_low_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 12개 tests/unit/elements/hex8_high_low_test.cpp file 이관 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. bd210e7159c44b5db38e38d37fc8f030f4f98048b973e9971a07e11f692fbc69 892dc78a07a9f7eba27df4cb71e9443359920da45fa7dc5795505d36edf0bc75 해당 없음 해당 없음 -Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.LowOnlyAffineStrainSurvivesUniformHighTranslation Hex8HighLow.LowOnlyAffineStrainSurvivesUniformHighTranslation; assertion 4개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.LowOnlyAffineStrainSurvivesUniformHighTranslation 유지 원문 검사 body 및 assertion 동일. 4462f0b7416fafcfad45c7261d11b2ac9efd9b84ecc8174f859764ab23039b7c 4462f0b7416fafcfad45c7261d11b2ac9efd9b84ecc8174f859764ab23039b7c ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().high.internal_force[3 * a], (positive ? 3 : -3) * strain, 1e-13 * strain) | EXPECT_NEAR(response.Value().high.strain_energy, 6 * strain * strain, 1e-13 * strain * strain) | EXPECT_NEAR(row.strain[0], strain, 1e-13 * strain) ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().high.internal_force[3 * a], (positive ? 3 : -3) * strain, 1e-13 * strain) | EXPECT_NEAR(response.Value().high.strain_energy, 6 * strain * strain, 1e-13 * strain * strain) | EXPECT_NEAR(row.strain[0], strain, 1e-13 * strain) -Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.NonlinearLowGradientProducesSecondOrderForce Hex8HighLow.NonlinearLowGradientProducesSecondOrderForce; assertion 3개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.NonlinearLowGradientProducesSecondOrderForce 유지 원문 검사 body 및 assertion 동일. 979f0ef23c5f1008caa390d90e6009aa9a5d31c011169ea1b43a67f5f15da557 979f0ef23c5f1008caa390d90e6009aa9a5d31c011169ea1b43a67f5f15da557 ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(increment.high, 4.5 * strain * strain, 1e-12 * strain * strain) ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(increment.high, 4.5 * strain * strain, 1e-12 * strain * strain) -Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.VolumetricAndTransverseTermsRetainLowStrain Hex8HighLow.VolumetricAndTransverseTermsRetainLowStrain; assertion 6개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.VolumetricAndTransverseTermsRetainLowStrain 유지 원문 검사 body 및 assertion 동일. 846ec5c0b418ef7ec32bb21ce63c53f4d186afbf40d8c37be769ff45ab8f108e 846ec5c0b418ef7ec32bb21ce63c53f4d186afbf40d8c37be769ff45ab8f108e ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(linear.Value().high.internal_force[3], 3.6*strain, 1e-13*strain) | EXPECT_NEAR(linear.Value().high.internal_force[7], 1.2*strain, 1e-13*strain) | EXPECT_NEAR(linear.Value().high.strain_energy, 7.2*strain*strain, 1e-13*strain*strain) | EXPECT_NEAR(quadratic.high, 5.4*strain*strain, 1e-12*strain*strain) ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(linear.Value().high.internal_force[3], 3.6*strain, 1e-13*strain) | EXPECT_NEAR(linear.Value().high.internal_force[7], 1.2*strain, 1e-13*strain) | EXPECT_NEAR(linear.Value().high.strain_energy, 7.2*strain*strain, 1e-13*strain*strain) | EXPECT_NEAR(quadratic.high, 5.4*strain*strain, 1e-12*strain*strain) -Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.RejectsInvalidLowShapeAndOverlappingComponents Hex8HighLow.RejectsInvalidLowShapeAndOverlappingComponents; assertion 2개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.RejectsInvalidLowShapeAndOverlappingComponents 유지 원문 검사 body 및 assertion 동일. 7abccdcb75d007db4ef2421719b99cb7e5330d25e5d05d2da511b098a2428848 7abccdcb75d007db4ef2421719b99cb7e5330d25e5d05d2da511b098a2428848 EXPECT_FALSE(brick.EvaluateLinearHighLow(high, fesa::Vector(23)).HasValue()) | EXPECT_FALSE(brick.EvaluateNonlinearHighLow(high, low).HasValue()) EXPECT_FALSE(brick.EvaluateLinearHighLow(high, fesa::Vector(23)).HasValue()) | EXPECT_FALSE(brick.EvaluateNonlinearHighLow(high, low).HasValue()) -Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.LinearAndNonlinearZeroStateHaveSameFullHessian Hex8HighLow.LinearAndNonlinearZeroStateHaveSameFullHessian; assertion 4개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.LinearAndNonlinearZeroStateHaveSameFullHessian 유지 원문 검사 body 및 assertion 동일. e2079fe27aab893fafc1428c6fd97d975eddd067ca1131589425cc569ece3958 e2079fe27aab893fafc1428c6fd97d975eddd067ca1131589425cc569ece3958 ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_EQ(linear.Value().high.tangent(i, j), nonlinear.Value().high.tangent(i, j)) | EXPECT_EQ(linear.Value().tangent_low(i, j), nonlinear.Value().tangent_low(i, j)) ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_EQ(linear.Value().high.tangent(i, j), nonlinear.Value().high.tangent(i, j)) | EXPECT_EQ(linear.Value().tangent_low(i, j), nonlinear.Value().tangent_low(i, j)) -Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.CachedLinearHessianIsIndependentOfTrialAndPriorFailure Hex8HighLow.CachedLinearHessianIsIndependentOfTrialAndPriorFailure; assertion 8개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.CachedLinearHessianIsIndependentOfTrialAndPriorFailure 유지 원문 검사 body 및 assertion 동일. 046984e4a0f5d6ab548fdef7ea0980b866ff34cbeb603b918c9b1adb76ae7935 046984e4a0f5d6ab548fdef7ea0980b866ff34cbeb603b918c9b1adb76ae7935 ASSERT_TRUE(reference.HasValue()) | EXPECT_FALSE(brick.EvaluateLinearHighLow(high, fesa::Vector(23)).HasValue()) | ASSERT_TRUE(strained.HasValue()) | EXPECT_EQ(reference.Value().high.tangent(i,j), strained.Value().high.tangent(i,j)) | EXPECT_EQ(reference.Value().tangent_low(i,j), strained.Value().tangent_low(i,j)) | ASSERT_TRUE(nonlinear_zero.HasValue()) | EXPECT_EQ(reference.Value().high.tangent(i,j), nonlinear_zero.Value().high.tangent(i,j)) | EXPECT_EQ(reference.Value().tangent_low(i,j), nonlinear_zero.Value().tangent_low(i,j)) ASSERT_TRUE(reference.HasValue()) | EXPECT_FALSE(brick.EvaluateLinearHighLow(high, fesa::Vector(23)).HasValue()) | ASSERT_TRUE(strained.HasValue()) | EXPECT_EQ(reference.Value().high.tangent(i,j), strained.Value().high.tangent(i,j)) | EXPECT_EQ(reference.Value().tangent_low(i,j), strained.Value().tangent_low(i,j)) | ASSERT_TRUE(nonlinear_zero.HasValue()) | EXPECT_EQ(reference.Value().high.tangent(i,j), nonlinear_zero.Value().high.tangent(i,j)) | EXPECT_EQ(reference.Value().tangent_low(i,j), nonlinear_zero.Value().tangent_low(i,j)) -Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.CoupledBricksTransmitLowStrainAcrossSharedFace Hex8HighLow.CoupledBricksTransmitLowStrainAcrossSharedFace; assertion 4개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.CoupledBricksTransmitLowStrainAcrossSharedFace 유지 원문 검사 body 및 assertion 동일. 83ae6a75481955497b50ac6ac1eff98c37df884ba2ed66da2557210deefa72a2 83ae6a75481955497b50ac6ac1eff98c37df884ba2ed66da2557210deefa72a2 ASSERT_TRUE(l.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(assembled.high, 0, 1e-13 * strain) | EXPECT_NEAR(l.Value().high.strain_energy + r.Value().high.strain_energy, 12 * strain * strain, 1e-13 * strain * strain) ASSERT_TRUE(l.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(assembled.high, 0, 1e-13 * strain) | EXPECT_NEAR(l.Value().high.strain_energy + r.Value().high.strain_energy, 12 * strain * strain, 1e-13 * strain * strain) -Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.NodeZeroSignedDirectionMatchesForceAndEnergyDerivatives Hex8HighLow.NodeZeroSignedDirectionMatchesForceAndEnergyDerivatives; assertion 5개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.NodeZeroSignedDirectionMatchesForceAndEnergyDerivatives 유지 원문 검사 body 및 assertion 동일. 8ca0e0b8462f489c123d6d5a32a0ae42c56b897b155459e2e7c55dfa8c030d0d 8ca0e0b8462f489c123d6d5a32a0ae42c56b897b155459e2e7c55dfa8c030d0d ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(positive.HasValue()) | ASSERT_TRUE(negative.HasValue()) | EXPECT_LE(std::abs(error.high), 1e-25) | EXPECT_LE(std::abs(energy_error.high), 32 * step * step + 1e-44) ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(positive.HasValue()) | ASSERT_TRUE(negative.HasValue()) | EXPECT_LE(std::abs(error.high), 1e-25) | EXPECT_LE(std::abs(energy_error.high), 32 * step * step + 1e-44) -Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryCertificateIncludesLowOnlyCurrentCellWidth Hex8HighLow.GeometryCertificateIncludesLowOnlyCurrentCellWidth; assertion 3개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryCertificateIncludesLowOnlyCurrentCellWidth 유지 원문 검사 body 및 assertion 동일. a99f71b85735e03d5245e265d4b95f2b624f4b5475c1f1ff15ea665e18c72c4d a99f71b85735e03d5245e265d4b95f2b624f4b5475c1f1ff15ea665e18c72c4d EXPECT_EQ(fesa::hex8_internal::Certify(coordinates, &high, &positive_low), Certificate::kPositive) | EXPECT_EQ(fesa::hex8_internal::Certify(coordinates, &high, &negative_low), Certificate::kNonpositive) | EXPECT_NE(fesa::hex8_internal::Certify(coordinates, &high), Certificate::kPositive) EXPECT_EQ(fesa::hex8_internal::Certify(coordinates, &high, &positive_low), Certificate::kPositive) | EXPECT_EQ(fesa::hex8_internal::Certify(coordinates, &high, &negative_low), Certificate::kNonpositive) | EXPECT_NE(fesa::hex8_internal::Certify(coordinates, &high), Certificate::kPositive) -Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.SignedZeroMaterialCoefficientHasIdenticalResponse Hex8HighLow.SignedZeroMaterialCoefficientHasIdenticalResponse; assertion 8개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.SignedZeroMaterialCoefficientHasIdenticalResponse 유지 원문 검사 body 및 assertion 동일. 3972742ed5e27b3dd1f33a5c2fb9a603b32972c71c7ecb8dd341b9c76d18d3d3 3972742ed5e27b3dd1f33a5c2fb9a603b32972c71c7ecb8dd341b9c76d18d3d3 ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(n.HasValue()) | EXPECT_EQ(p.Value().high.strain_energy, n.Value().high.strain_energy) | EXPECT_EQ(p.Value().strain_energy_low, n.Value().strain_energy_low) | EXPECT_EQ(p.Value().high.internal_force[i], n.Value().high.internal_force[i]) | EXPECT_EQ(p.Value().internal_force_low[i], n.Value().internal_force_low[i]) | EXPECT_EQ(p.Value().high.tangent(i,j), n.Value().high.tangent(i,j)) | EXPECT_EQ(p.Value().tangent_low(i,j), n.Value().tangent_low(i,j)) ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(n.HasValue()) | EXPECT_EQ(p.Value().high.strain_energy, n.Value().high.strain_energy) | EXPECT_EQ(p.Value().strain_energy_low, n.Value().strain_energy_low) | EXPECT_EQ(p.Value().high.internal_force[i], n.Value().high.internal_force[i]) | EXPECT_EQ(p.Value().internal_force_low[i], n.Value().internal_force_low[i]) | EXPECT_EQ(p.Value().high.tangent(i,j), n.Value().high.tangent(i,j)) | EXPECT_EQ(p.Value().tangent_low(i,j), n.Value().tangent_low(i,j)) -Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.FiniteRotationRetainsTinyShearForceCovariance Hex8HighLow.FiniteRotationRetainsTinyShearForceCovariance; assertion 7개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.FiniteRotationRetainsTinyShearForceCovariance 유지 원문 검사 body 및 assertion 동일. 397b230944498c7db14592dc4408d7fbdee0199b43be2c7b4d7e68dda9cb08e9 397b230944498c7db14592dc4408d7fbdee0199b43be2c7b4d7e68dda9cb08e9 ASSERT_TRUE(origin.HasValue()) | ASSERT_TRUE(deformed.HasValue()) | ASSERT_TRUE(turned.HasValue()) | ASSERT_TRUE(turned_deformed.HasValue()) | EXPECT_LE(std::abs(Add(rotated[0], baseline[1]).high), 1e-13*gamma) | EXPECT_LE(std::abs(Subtract(rotated[1], baseline[0]).high), 1e-13*gamma) | EXPECT_LE(std::abs(Subtract(rotated[2], baseline[2]).high), 1e-13*gamma) ASSERT_TRUE(origin.HasValue()) | ASSERT_TRUE(deformed.HasValue()) | ASSERT_TRUE(turned.HasValue()) | ASSERT_TRUE(turned_deformed.HasValue()) | EXPECT_LE(std::abs(Add(rotated[0], baseline[1]).high), 1e-13*gamma) | EXPECT_LE(std::abs(Subtract(rotated[1], baseline[0]).high), 1e-13*gamma) | EXPECT_LE(std::abs(Subtract(rotated[2], baseline[2]).high), 1e-13*gamma) -Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.MeanVolumeLowOnlyNonuniformTraceRetainsMeanAndCrossPointHessian Hex8HighLow.MeanVolumeLowOnlyNonuniformTraceRetainsMeanAndCrossPointHessian; assertion 11개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.MeanVolumeLowOnlyNonuniformTraceRetainsMeanAndCrossPointHessian 유지 원문 검사 body 및 assertion 동일. 45ace4ab87c97eeeb71c680d4cd90bdc4d0b2438c4335b7539a7207529d171fb 45ace4ab87c97eeeb71c680d4cd90bdc4d0b2438c4335b7539a7207529d171fb ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(high_only.HasValue()) | EXPECT_EQ(high_only.Value().high.strain_energy, 0) | EXPECT_NEAR(response.Value().high.strain_energy, coefficient * c * c, 1e-13 * c * c) | EXPECT_NEAR(response.Value().high.internal_force[6] + response.Value().high.internal_force[18], 2 * coefficient * c, 1e-13 * c) | EXPECT_NEAR((s[0] + s[1] + s[2]) / 3, 4 * c, 1e-13 * c) | EXPECT_NEAR(point.strain[0], c * point.reference_coordinates[1], 1e-13 * c) | EXPECT_NEAR(k(0, 0), 41.0 / 18, 2e-14) | EXPECT_NEAR(k(0, 1), 19.0 / 30, 2e-14) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(cubic_energy.high, (5 * 4.8 / 18 + 8.0 / 6) * c * c * c, 1e-12 * c * c * c) ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(high_only.HasValue()) | EXPECT_EQ(high_only.Value().high.strain_energy, 0) | EXPECT_NEAR(response.Value().high.strain_energy, coefficient * c * c, 1e-13 * c * c) | EXPECT_NEAR(response.Value().high.internal_force[6] + response.Value().high.internal_force[18], 2 * coefficient * c, 1e-13 * c) | EXPECT_NEAR((s[0] + s[1] + s[2]) / 3, 4 * c, 1e-13 * c) | EXPECT_NEAR(point.strain[0], c * point.reference_coordinates[1], 1e-13 * c) | EXPECT_NEAR(k(0, 0), 41.0 / 18, 2e-14) | EXPECT_NEAR(k(0, 1), 19.0 / 30, 2e-14) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(cubic_energy.high, (5 * 4.8 / 18 + 8.0 / 6) * c * c * c, 1e-12 * c * c * c) -Refactor tests/unit/elements/hex8_high_low_test.cpp support@1-29 helper/oracle/fixture/include/static assertion 구간: UnitBrick tests/unit/elements/hex8_high_low_test.cpp file-support 이관 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. 947e889cccadb763476edd5c2ad4179bcce673943fcff78125da063ca8846bd0 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/hex8_high_low_test.cpp support@334-334 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/hex8_high_low_test.cpp file-support 유지 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1fd73892c2678a5b3ad8fd34edd0292394836a3494c540f4ecc005b6e6a269d9 1fd73892c2678a5b3ad8fd34edd0292394836a3494c540f4ecc005b6e6a269d9 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.PreservesWarpedMomentsRowsAndFirstSpatialMoment Mitc4ShellMassContract.PreservesWarpedMomentsRowsAndFirstSpatialMoment; assertion 4개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.PreservesWarpedMomentsRowsAndFirstSpatialMoment 유지 원문 검사 body 및 assertion 동일. 76f7825ab0d079445fad2d14b91e7d6e835a997d5299706cb5cdc7c05a968c14 76f7825ab0d079445fad2d14b91e7d6e835a997d5299706cb5cdc7c05a968c14 ASSERT_TRUE(mass.HasValue()) | EXPECT_LE(std::abs(value.consistent_moments[moment](row, column) - expected[moment][row][column]) / scale, 1e-12) | EXPECT_LE(std::abs(value.nodal_moments[row][moment] - expected_row) / scale, 1e-12) | EXPECT_LE(difference / (element_mass * std::hypot(2.0, 0.3)), 1e-12) ASSERT_TRUE(mass.HasValue()) | EXPECT_LE(std::abs(value.consistent_moments[moment](row, column) - expected[moment][row][column]) / scale, 1e-12) | EXPECT_LE(std::abs(value.nodal_moments[row][moment] - expected_row) / scale, 1e-12) | EXPECT_LE(difference / (element_mass * std::hypot(2.0, 0.3)), 1e-12) -Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.RecomputesWarpedMassWithScaledCovariance Mitc4ShellMassContract.RecomputesWarpedMassWithScaledCovariance; assertion 4개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.RecomputesWarpedMassWithScaledCovariance 유지 원문 검사 body 및 assertion 동일. e3e985596112fdd2ba30d9c9f0721d183914e4c7e3e4bb4ae11cd9f32b820991 e3e985596112fdd2ba30d9c9f0721d183914e4c7e3e4bb4ae11cd9f32b820991 ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(transformed.HasValue()) | ASSERT_TRUE(original_mass.HasValue()) | ASSERT_TRUE(transformed_mass.HasValue()) ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(transformed.HasValue()) | ASSERT_TRUE(original_mass.HasValue()) | ASSERT_TRUE(transformed_mass.HasValue()) -Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.SatisfiesUniformAndJensenEnergyContracts Mitc4ShellMassContract.SatisfiesUniformAndJensenEnergyContracts; assertion 3개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.SatisfiesUniformAndJensenEnergyContracts 유지 원문 검사 body 및 assertion 동일. 4ca13bda8eeda1a740d91e0eca5b06c177bff1348c4c2aae9fb7cd28c36fa25b 4ca13bda8eeda1a740d91e0eca5b06c177bff1348c4c2aae9fb7cd28c36fa25b ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(Quadratic(mass.Value().consistent_global24, translation), Quadratic(mass.Value().lumped_global24, translation), 1e-12) | EXPECT_GE(Quadratic(mass.Value().lumped_global24, field) + 1e-12, Quadratic(mass.Value().consistent_global24, field)) ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(Quadratic(mass.Value().consistent_global24, translation), Quadratic(mass.Value().lumped_global24, translation), 1e-12) | EXPECT_GE(Quadratic(mass.Value().lumped_global24, field) + 1e-12, Quadratic(mass.Value().consistent_global24, field)) -Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.MapsScalarMomentsIntoBothMassBlocks Mitc4ShellMassContract.MapsScalarMomentsIntoBothMassBlocks; assertion 6개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.MapsScalarMomentsIntoBothMassBlocks 유지 원문 검사 body 및 assertion 동일. c3f3d3fcbbb356610124a670ed3e56e053f742c3150650dc3d0690b8a081e44f c3f3d3fcbbb356610124a670ed3e56e053f742c3150650dc3d0690b8a081e44f ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(mass.Value().consistent_global24(row, column), expected_consistent(row, column), 1e-12) | EXPECT_NEAR(mass.Value().lumped_global24(row, column), expected_lumped(row, column), 1e-12) | EXPECT_LE(FrobeniusNorm(consistent_difference, length) / (FrobeniusNorm(mass.Value().consistent_global24, length) + FrobeniusNorm(expected_consistent, length)), 1e-12) | EXPECT_LE(FrobeniusNorm(lumped_difference, length) / (FrobeniusNorm(mass.Value().lumped_global24, length) + FrobeniusNorm(expected_lumped, length)), 1e-12) | EXPECT_LE(std::abs((lumped_work - consistent_work) - pairwise_work) / (lumped_work + consistent_work), 1e-12) ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(mass.Value().consistent_global24(row, column), expected_consistent(row, column), 1e-12) | EXPECT_NEAR(mass.Value().lumped_global24(row, column), expected_lumped(row, column), 1e-12) | EXPECT_LE(FrobeniusNorm(consistent_difference, length) / (FrobeniusNorm(mass.Value().consistent_global24, length) + FrobeniusNorm(expected_consistent, length)), 1e-12) | EXPECT_LE(FrobeniusNorm(lumped_difference, length) / (FrobeniusNorm(mass.Value().lumped_global24, length) + FrobeniusNorm(expected_lumped, length)), 1e-12) | EXPECT_LE(std::abs((lumped_work - consistent_work) - pairwise_work) / (lumped_work + consistent_work), 1e-12) -Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.ReproducesAffineSquareVelocityWork Mitc4ShellMassContract.ReproducesAffineSquareVelocityWork; assertion 4개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.ReproducesAffineSquareVelocityWork 유지 원문 검사 body 및 assertion 동일. 7f75a86e005eff60d026f8d15ee5cae2fa95e0ee4232fca201dcb8f8f81df18c 7f75a86e005eff60d026f8d15ee5cae2fa95e0ee4232fca201dcb8f8f81df18c ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(consistent_work, 4.0 / 3.0, 1e-12) | EXPECT_NEAR(lumped_work - consistent_work, 8.0 / (3.0 * mesh * mesh), 1e-12) ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(consistent_work, 4.0 / 3.0, 1e-12) | EXPECT_NEAR(lumped_work - consistent_work, 8.0 / (3.0 * mesh * mesh), 1e-12) -Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@1-130 helper/oracle/fixture/include/static assertion 구간: FrobeniusNorm, MaximumEdgeLength, Rotate, DirectorCross, Dot, RotateCongruently, ExpectScaledCovariance, Node, Pointers, WarpedShell, Quadratic tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 80222550f9438f2e2e97eef70b77702be0f22f69e5dfd86f3f5f19eea8635684 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@207-208 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 47dd2fa44f91e342b907e45fa1b98a8b620d5590812aea5a8d5b7ceda6534e82 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@244-246 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 82c1f775b61eb1c42b39d952b6856edb28d0334faf8544d19199125c6142efa5 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@263-265 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 311a3ce7805d89cc36a6c5dc4f988aad66e9d65c53bd7fc5dae1c90f7731d0ae 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@399-400 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 86832b878d6de5792a69735ed18cbdf64bf5f90afdd3d773d77424b25242a7f6 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@435-436 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 21개 tests/unit/elements/mitc4_shell_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0099c4e8370d63a61cdf37604008ecc5ff2dc96461b678052febd0a2fa248aa8 0099c4e8370d63a61cdf37604008ecc5ff2dc96461b678052febd0a2fa248aa8 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.ShapeFunctionsSatisfyNodalAndDerivativeIdentities Mitc4ShellKinematics.ShapeFunctionsSatisfyNodalAndDerivativeIdentities; assertion 5개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.ShapeFunctionsSatisfyNodalAndDerivativeIdentities 유지 원문 검사 body 및 assertion 동일. ce0d5d609ea4e2f0467991262a26eecb2e3dfe8f67b77325353db454953dfaf3 ce0d5d609ea4e2f0467991262a26eecb2e3dfe8f67b77325353db454953dfaf3 EXPECT_DOUBLE_EQ(shape.values[node_index], point == node_index ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ(value_sum, 1.0) | EXPECT_DOUBLE_EQ(xi_derivative_sum, 0.0) | EXPECT_DOUBLE_EQ(eta_derivative_sum, 0.0) | EXPECT_EQ(shape.values, (std::array{0.28125, 0.46875, 0.15625, 0.09375})) EXPECT_DOUBLE_EQ(shape.values[node_index], point == node_index ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ(value_sum, 1.0) | EXPECT_DOUBLE_EQ(xi_derivative_sum, 0.0) | EXPECT_DOUBLE_EQ(eta_derivative_sum, 0.0) | EXPECT_EQ(shape.values, (std::array{0.28125, 0.46875, 0.15625, 0.09375})) -Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.BuildsRightHandedFramesAndSeparatePhysicalDrillingMaps Mitc4ShellKinematics.BuildsRightHandedFramesAndSeparatePhysicalDrillingMaps; assertion 13개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.BuildsRightHandedFramesAndSeparatePhysicalDrillingMaps 유지 원문 검사 body 및 assertion 동일. a48c1e71779c07d794a93e7fb032fe851a7b6250798b500c11394d304eea2c51 a48c1e71779c07d794a93e7fb032fe851a7b6250798b500c11394d304eea2c51 ASSERT_TRUE(candidate.HasValue()) | ASSERT_EQ(physical.Rows(), 20U) | ASSERT_EQ(physical.Columns(), 24U) | ASSERT_EQ(drilling.Rows(), 4U) | ASSERT_EQ(drilling.Columns(), 24U) | EXPECT_DOUBLE_EQ( physical(physical_offset + component, global_offset + component), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 3U, global_offset + 4U), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 4U, global_offset + 5U), 1.0) | EXPECT_DOUBLE_EQ(drilling(node_index, global_offset + 3U), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 3U, global_dof), 0.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 4U, global_dof), 0.0) | EXPECT_DOUBLE_EQ(drilling(node_index, global_dof), 0.0) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), invalid_directors, Section(), Material()) .HasValue()) ASSERT_TRUE(candidate.HasValue()) | ASSERT_EQ(physical.Rows(), 20U) | ASSERT_EQ(physical.Columns(), 24U) | ASSERT_EQ(drilling.Rows(), 4U) | ASSERT_EQ(drilling.Columns(), 24U) | EXPECT_DOUBLE_EQ( physical(physical_offset + component, global_offset + component), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 3U, global_offset + 4U), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 4U, global_offset + 5U), 1.0) | EXPECT_DOUBLE_EQ(drilling(node_index, global_offset + 3U), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 3U, global_dof), 0.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 4U, global_dof), 0.0) | EXPECT_DOUBLE_EQ(drilling(node_index, global_dof), 0.0) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), invalid_directors, Section(), Material()) .HasValue()) -Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.FormsDirectColumnsAndAllCovariantTyingSamples Mitc4ShellKinematics.FormsDirectColumnsAndAllCovariantTyingSamples; assertion 37개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.FormsDirectColumnsAndAllCovariantTyingSamples 유지 원문 검사 body 및 assertion 동일. 96cbc6952413ebb1639c3743d6825a4b80c52b4c450d79ccddd004e64fa816c6 96cbc6952413ebb1639c3743d6825a4b80c52b4c450d79ccddd004e64fa816c6 ASSERT_TRUE(candidate.HasValue()) | ASSERT_EQ(direct.Rows(), 5U) | ASSERT_EQ(direct.Columns(), 20U) | EXPECT_DOUBLE_EQ(direct(0U, 0U), -0.25) | EXPECT_DOUBLE_EQ(direct(0U, 4U), -0.125) | EXPECT_DOUBLE_EQ(direct(1U, 1U), -0.25) | EXPECT_DOUBLE_EQ(direct(1U, 3U), 0.125) | EXPECT_DOUBLE_EQ(direct(2U, 0U), -0.25) | EXPECT_DOUBLE_EQ(direct(2U, 1U), -0.25) | EXPECT_DOUBLE_EQ(direct(2U, 3U), 0.125) | EXPECT_DOUBLE_EQ(direct(2U, 4U), -0.125) | EXPECT_DOUBLE_EQ(direct(3U, 2U), -0.25) | EXPECT_DOUBLE_EQ(direct(3U, 4U), 0.25) | EXPECT_DOUBLE_EQ(direct(4U, 2U), -0.25) | EXPECT_DOUBLE_EQ(direct(4U, 3U), -0.25) | ASSERT_EQ(samples.Rows(), 4U) | ASSERT_EQ(samples.Columns(), 20U) | EXPECT_DOUBLE_EQ(samples(0U, 2U), -0.25) | EXPECT_DOUBLE_EQ(samples(0U, 4U), 0.25) | EXPECT_DOUBLE_EQ(samples(0U, 7U), 0.25) | EXPECT_DOUBLE_EQ(samples(0U, 9U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 12U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 14U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 17U), -0.25) | EXPECT_DOUBLE_EQ(samples(1U, 19U), 0.25) | EXPECT_DOUBLE_EQ(samples(2U, 2U), -0.25) | EXPECT_DOUBLE_EQ(samples(2U, 3U), -0.25) | EXPECT_DOUBLE_EQ(samples(2U, 17U), 0.25) | EXPECT_DOUBLE_EQ(samples(2U, 18U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 7U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 8U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 12U), 0.25) | EXPECT_DOUBLE_EQ(samples(3U, 13U), -0.25) | EXPECT_EQ(weights.xi_zeta, (std::array{0.75, 0.25})) | EXPECT_EQ(weights.eta_zeta, (std::array{0.375, 0.625})) | EXPECT_DOUBLE_EQ(tied(3U, 4U), 2.0 * (0.5 * samples(0U, 4U) + 0.5 * samples(1U, 4U))) | EXPECT_DOUBLE_EQ(tied(4U, 3U), 2.0 * (0.5 * samples(2U, 3U) + 0.5 * samples(3U, 3U))) ASSERT_TRUE(candidate.HasValue()) | ASSERT_EQ(direct.Rows(), 5U) | ASSERT_EQ(direct.Columns(), 20U) | EXPECT_DOUBLE_EQ(direct(0U, 0U), -0.25) | EXPECT_DOUBLE_EQ(direct(0U, 4U), -0.125) | EXPECT_DOUBLE_EQ(direct(1U, 1U), -0.25) | EXPECT_DOUBLE_EQ(direct(1U, 3U), 0.125) | EXPECT_DOUBLE_EQ(direct(2U, 0U), -0.25) | EXPECT_DOUBLE_EQ(direct(2U, 1U), -0.25) | EXPECT_DOUBLE_EQ(direct(2U, 3U), 0.125) | EXPECT_DOUBLE_EQ(direct(2U, 4U), -0.125) | EXPECT_DOUBLE_EQ(direct(3U, 2U), -0.25) | EXPECT_DOUBLE_EQ(direct(3U, 4U), 0.25) | EXPECT_DOUBLE_EQ(direct(4U, 2U), -0.25) | EXPECT_DOUBLE_EQ(direct(4U, 3U), -0.25) | ASSERT_EQ(samples.Rows(), 4U) | ASSERT_EQ(samples.Columns(), 20U) | EXPECT_DOUBLE_EQ(samples(0U, 2U), -0.25) | EXPECT_DOUBLE_EQ(samples(0U, 4U), 0.25) | EXPECT_DOUBLE_EQ(samples(0U, 7U), 0.25) | EXPECT_DOUBLE_EQ(samples(0U, 9U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 12U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 14U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 17U), -0.25) | EXPECT_DOUBLE_EQ(samples(1U, 19U), 0.25) | EXPECT_DOUBLE_EQ(samples(2U, 2U), -0.25) | EXPECT_DOUBLE_EQ(samples(2U, 3U), -0.25) | EXPECT_DOUBLE_EQ(samples(2U, 17U), 0.25) | EXPECT_DOUBLE_EQ(samples(2U, 18U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 7U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 8U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 12U), 0.25) | EXPECT_DOUBLE_EQ(samples(3U, 13U), -0.25) | EXPECT_EQ(weights.xi_zeta, (std::array{0.75, 0.25})) | EXPECT_EQ(weights.eta_zeta, (std::array{0.375, 0.625})) | EXPECT_DOUBLE_EQ(tied(3U, 4U), 2.0 * (0.5 * samples(0U, 4U) + 0.5 * samples(1U, 4U))) | EXPECT_DOUBLE_EQ(tied(4U, 3U), 2.0 * (0.5 * samples(2U, 3U) + 0.5 * samples(3U, 3U))) -Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellConstitutive.BuildsExactPositiveDefiniteSectionMatricesAndRescalesUnits Mitc4ShellConstitutive.BuildsExactPositiveDefiniteSectionMatricesAndRescalesUnits; assertion 25개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellConstitutive.BuildsExactPositiveDefiniteSectionMatricesAndRescalesUnits 유지 원문 검사 body 및 assertion 동일. cafb3bc50695fe76a6a088a21953389aedb24938d4af5236ad5e1907069eef70 cafb3bc50695fe76a6a088a21953389aedb24938d4af5236ad5e1907069eef70 ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(cps.Rows(), 3U) | EXPECT_EQ(cps.Columns(), 3U) | EXPECT_EQ(c5.Rows(), 5U) | EXPECT_EQ(c5.Columns(), 5U) | EXPECT_EQ(a.Rows(), 3U) | EXPECT_EQ(d.Rows(), 3U) | EXPECT_EQ(as.Rows(), 2U) | EXPECT_DOUBLE_EQ(cps(0U, 0U), 128.0) | EXPECT_DOUBLE_EQ(cps(0U, 1U), 32.0) | EXPECT_DOUBLE_EQ(cps(2U, 2U), 48.0) | EXPECT_DOUBLE_EQ(c5(3U, 3U), 40.0) | EXPECT_DOUBLE_EQ(c5(4U, 4U), 40.0) | EXPECT_DOUBLE_EQ(a(0U, 0U), 256.0) | EXPECT_NEAR(d(0U, 0U), 256.0 / 3.0, 1.0e-12) | EXPECT_DOUBLE_EQ(as(0U, 0U), 80.0) | EXPECT_TRUE(HasPositiveCholeskyPivots(cps)) | EXPECT_TRUE(HasPositiveCholeskyPivots(c5)) | EXPECT_TRUE(HasPositiveCholeskyPivots(a)) | EXPECT_TRUE(HasPositiveCholeskyPivots(d)) | EXPECT_TRUE(HasPositiveCholeskyPivots(as)) | ASSERT_TRUE(scaled_candidate.HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(0.0), Material()) .HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(), Material(0.0, 0.25)) .HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(), Material(120.0, 0.5)) .HasValue()) ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(cps.Rows(), 3U) | EXPECT_EQ(cps.Columns(), 3U) | EXPECT_EQ(c5.Rows(), 5U) | EXPECT_EQ(c5.Columns(), 5U) | EXPECT_EQ(a.Rows(), 3U) | EXPECT_EQ(d.Rows(), 3U) | EXPECT_EQ(as.Rows(), 2U) | EXPECT_DOUBLE_EQ(cps(0U, 0U), 128.0) | EXPECT_DOUBLE_EQ(cps(0U, 1U), 32.0) | EXPECT_DOUBLE_EQ(cps(2U, 2U), 48.0) | EXPECT_DOUBLE_EQ(c5(3U, 3U), 40.0) | EXPECT_DOUBLE_EQ(c5(4U, 4U), 40.0) | EXPECT_DOUBLE_EQ(a(0U, 0U), 256.0) | EXPECT_NEAR(d(0U, 0U), 256.0 / 3.0, 1.0e-12) | EXPECT_DOUBLE_EQ(as(0U, 0U), 80.0) | EXPECT_TRUE(HasPositiveCholeskyPivots(cps)) | EXPECT_TRUE(HasPositiveCholeskyPivots(c5)) | EXPECT_TRUE(HasPositiveCholeskyPivots(a)) | EXPECT_TRUE(HasPositiveCholeskyPivots(d)) | EXPECT_TRUE(HasPositiveCholeskyPivots(as)) | ASSERT_TRUE(scaled_candidate.HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(0.0), Material()) .HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(), Material(0.0, 0.25)) .HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(), Material(120.0, 0.5)) .HasValue()) -Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.UsesOneFixedTwoByTwoByTwoQuadratureOrder Mitc4ShellKinematics.UsesOneFixedTwoByTwoByTwoQuadratureOrder; assertion 3개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.UsesOneFixedTwoByTwoByTwoQuadratureOrder 유지 원문 검사 body 및 assertion 동일. 65e8535a920578bf82342d17de948fc260aa98d66b9a261545430700d7c0a54b 65e8535a920578bf82342d17de948fc260aa98d66b9a261545430700d7c0a54b ASSERT_EQ(points.size(), 8U) | EXPECT_EQ(points[point].natural_coordinates, expected[point]) | EXPECT_DOUBLE_EQ(points[point].weight, 1.0) ASSERT_EQ(points.size(), 8U) | EXPECT_EQ(points[point].natural_coordinates, expected[point]) | EXPECT_DOUBLE_EQ(points[point].weight, 1.0) -Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.FormsFiniteScaledSymmetricPhysicalAndStabilizedStiffness Mitc4ShellKernel.FormsFiniteScaledSymmetricPhysicalAndStabilizedStiffness; assertion 14개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.FormsFiniteScaledSymmetricPhysicalAndStabilizedStiffness 유지 원문 검사 body 및 assertion 동일. e0c10c61702d95893fa0b05caff80fba991b5bc41ac9085dc477e5b1e1a37a07 e0c10c61702d95893fa0b05caff80fba991b5bc41ac9085dc477e5b1e1a37a07 ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_EQ(stiffness.physical_local20.Rows(), 20U) | EXPECT_EQ(stiffness.physical_local20.Columns(), 20U) | EXPECT_EQ(stiffness.physical_global24.Rows(), 24U) | EXPECT_EQ(stiffness.drilling_global24.Rows(), 24U) | EXPECT_EQ(stiffness.stabilized_global24.Rows(), 24U) | EXPECT_TRUE(std::isfinite((*matrix)(row, column))) | EXPECT_LE(ScaledSymmetryError(stiffness.physical_local20, 5U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.physical_global24, 6U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.drilling_global24, 6U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.stabilized_global24, 6U, 2.0), 1.0e-12) | ASSERT_TRUE(repeated_candidate.HasValue()) | EXPECT_DOUBLE_EQ(repeated.drilling_stiffness, stiffness.drilling_stiffness) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_EQ(stiffness.physical_local20.Rows(), 20U) | EXPECT_EQ(stiffness.physical_local20.Columns(), 20U) | EXPECT_EQ(stiffness.physical_global24.Rows(), 24U) | EXPECT_EQ(stiffness.drilling_global24.Rows(), 24U) | EXPECT_EQ(stiffness.stabilized_global24.Rows(), 24U) | EXPECT_TRUE(std::isfinite((*matrix)(row, column))) | EXPECT_LE(ScaledSymmetryError(stiffness.physical_local20, 5U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.physical_global24, 6U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.drilling_global24, 6U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.stabilized_global24, 6U, 2.0), 1.0e-12) | ASSERT_TRUE(repeated_candidate.HasValue()) | EXPECT_DOUBLE_EQ(repeated.drilling_stiffness, stiffness.drilling_stiffness) -Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.PreservesExactStiffnessRecoveryAndPatchAcrossVector3Migration Mitc4ShellKernel.PreservesExactStiffnessRecoveryAndPatchAcrossVector3Migration; assertion 13개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.PreservesExactStiffnessRecoveryAndPatchAcrossVector3Migration 유지 원문 검사 body 및 assertion 동일. dd458622e798b9a301ec132ddda748c8225d2dbc21d2623561828c90551d37ce dd458622e798b9a301ec132ddda748c8225d2dbc21d2623561828c90551d37ce ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_DOUBLE_EQ(frame_e3.X(), 0.0) | EXPECT_DOUBLE_EQ(frame_e3.Y(), 0.0) | EXPECT_DOUBLE_EQ(frame_e3.Z(), 1.0) | ASSERT_TRUE(recovery_candidate.HasValue()) | EXPECT_DOUBLE_EQ(stiffness.physical_local20(0U, 0U), 0x1.d555555555554p+6) | EXPECT_DOUBLE_EQ(stiffness.physical_local20(0U, 4U), 0.0) | EXPECT_DOUBLE_EQ(stiffness.physical_global24(2U, 2U), 0x1.aaaaaaaaaaaadp+5) | EXPECT_DOUBLE_EQ(recovery.strain_energy, 0x1.20a3d70a3d70bp+6) | EXPECT_EQ(recovery.points[0U].generalized_strain, kExpectedStrain) | EXPECT_DOUBLE_EQ(patch[0U], 0x1.9999999999999p-3) | EXPECT_DOUBLE_EQ(patch[component], 0.0) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_DOUBLE_EQ(frame_e3.X(), 0.0) | EXPECT_DOUBLE_EQ(frame_e3.Y(), 0.0) | EXPECT_DOUBLE_EQ(frame_e3.Z(), 1.0) | ASSERT_TRUE(recovery_candidate.HasValue()) | EXPECT_DOUBLE_EQ(stiffness.physical_local20(0U, 0U), 0x1.d555555555554p+6) | EXPECT_DOUBLE_EQ(stiffness.physical_local20(0U, 4U), 0.0) | EXPECT_DOUBLE_EQ(stiffness.physical_global24(2U, 2U), 0x1.aaaaaaaaaaaadp+5) | EXPECT_DOUBLE_EQ(recovery.strain_energy, 0x1.20a3d70a3d70bp+6) | EXPECT_EQ(recovery.points[0U].generalized_strain, kExpectedStrain) | EXPECT_DOUBLE_EQ(patch[0U], 0x1.9999999999999p-3) | EXPECT_DOUBLE_EQ(patch[component], 0.0) -Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.PreservesPhysicalEnergyUnderTwentyToTwentyFourCongruence Mitc4ShellKernel.PreservesPhysicalEnergyUnderTwentyToTwentyFourCongruence; assertion 5개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.PreservesPhysicalEnergyUnderTwentyToTwentyFourCongruence 유지 원문 검사 body 및 assertion 동일. 2811e8ca758b586de936d283c2520a2cea673d1b676771c2bc74d718e98a74a1 2811e8ca758b586de936d283c2520a2cea673d1b676771c2bc74d718e98a74a1 ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_NE(local_energy, 0.0) | ASSERT_NE(global_energy, 0.0) | EXPECT_LE(std::abs(global_energy - local_energy) / (std::abs(global_energy) + std::abs(local_energy)), 1.0e-12) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_NE(local_energy, 0.0) | ASSERT_NE(global_energy, 0.0) | EXPECT_LE(std::abs(global_energy - local_energy) / (std::abs(global_energy) + std::abs(local_energy)), 1.0e-12) -Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.RetainsSixRigidModesAndHasExpectedPhysicalAndStabilizedRank Mitc4ShellKernel.RetainsSixRigidModesAndHasExpectedPhysicalAndStabilizedRank; assertion 9개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.RetainsSixRigidModesAndHasExpectedPhysicalAndStabilizedRank 유지 원문 검사 body 및 assertion 동일. f388cb98b5e4d023a89e149554f8288d9250847c7a5738a0657dcbddf4e5220d f388cb98b5e4d023a89e149554f8288d9250847c7a5738a0657dcbddf4e5220d ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_EQ(NumericalRank(scaled_physical20), 14U) | EXPECT_EQ(NumericalRank(scaled_stabilized24), 18U) | ASSERT_GT(physical_norm, 0.0) | ASSERT_GT(stabilized_norm, 0.0) | ASSERT_GT(modeNorm, 0.0) | EXPECT_LE(scaled_physical24.Multiply(scaledMode).Norm() / (physical_norm * modeNorm), 1.0e-10) | EXPECT_LE(scaled_stabilized24.Multiply(scaledMode).Norm() / (stabilized_norm * modeNorm), 1.0e-10) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_EQ(NumericalRank(scaled_physical20), 14U) | EXPECT_EQ(NumericalRank(scaled_stabilized24), 18U) | ASSERT_GT(physical_norm, 0.0) | ASSERT_GT(stabilized_norm, 0.0) | ASSERT_GT(modeNorm, 0.0) | EXPECT_LE(scaled_physical24.Multiply(scaledMode).Norm() / (physical_norm * modeNorm), 1.0e-10) | EXPECT_LE(scaled_stabilized24.Multiply(scaledMode).Norm() / (stabilized_norm * modeNorm), 1.0e-10) -Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellPatch.ReproducesIndependentMembraneBendingShearAndTwistFields Mitc4ShellPatch.ReproducesIndependentMembraneBendingShearAndTwistFields; assertion 3개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellPatch.ReproducesIndependentMembraneBendingShearAndTwistFields 유지 원문 검사 body 및 assertion 동일. 85d6d3543ba1e1a40665939da00f88617f4bc27a8cb54ee6ca6f26848d3abe12 85d6d3543ba1e1a40665939da00f88617f4bc27a8cb54ee6ca6f26848d3abe12 ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_GT(QuadraticEnergy(stiffness, field), 0.0) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_GT(QuadraticEnergy(stiffness, field), 0.0) -Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.UsesAllPhysicalRotationDiagonalsAndFixedFactor Mitc4ShellDrilling.UsesAllPhysicalRotationDiagonalsAndFixedFactor; assertion 5개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.UsesAllPhysicalRotationDiagonalsAndFixedFactor 유지 원문 검사 body 및 assertion 동일. 8b0addafb6afb8018440c8784db44a56ead47ff68faa9389836024122e94a95f 8b0addafb6afb8018440c8784db44a56ead47ff68faa9389836024122e94a95f ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_TRUE(std::isfinite(diagonal)) | ASSERT_GE(diagonal, 0.0) | EXPECT_DOUBLE_EQ(stiffness.drilling_stiffness, 1.0e-3 * expected_sum / 8.0) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_TRUE(std::isfinite(diagonal)) | ASSERT_GE(diagonal, 0.0) | EXPECT_DOUBLE_EQ(stiffness.drilling_stiffness, 1.0e-3 * expected_sum / 8.0) -Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.IntegratesFlatConsistentAndScalarRowSumLumpedMass Mitc4ShellMass.IntegratesFlatConsistentAndScalarRowSumLumpedMass; assertion 10개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.IntegratesFlatConsistentAndScalarRowSumLumpedMass 유지 원문 검사 body 및 assertion 동일. 13d278e7f55aa0a671221d5a7335510907c58490fb3d02e8defde941b85ec16f 13d278e7f55aa0a671221d5a7335510907c58490fb3d02e8defde941b85ec16f ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(mass.nodal_moments[row][0U], 6.0, 1.0e-12) | EXPECT_NEAR(mass.nodal_moments[row][1U], 0.0, 1.0e-12) | EXPECT_NEAR(mass.nodal_moments[row][2U], 2.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[0U](row, column), pattern[row][column] * (2.0 / 3.0), 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[1U](row, column), 0.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[2U](row, column), pattern[row][column] * (2.0 / 9.0), 1.0e-12) | EXPECT_NEAR( mass.lumped_global24(6U * row + component, 6U * row + component), 6.0, 1.0e-12) | EXPECT_NEAR(mass.lumped_global24(6U * row + 3U + component, 6U * row + 3U + component), component == 2U ? 0.0 : 2.0, 1.0e-12) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(mass.nodal_moments[row][0U], 6.0, 1.0e-12) | EXPECT_NEAR(mass.nodal_moments[row][1U], 0.0, 1.0e-12) | EXPECT_NEAR(mass.nodal_moments[row][2U], 2.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[0U](row, column), pattern[row][column] * (2.0 / 3.0), 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[1U](row, column), 0.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[2U](row, column), pattern[row][column] * (2.0 / 9.0), 1.0e-12) | EXPECT_NEAR( mass.lumped_global24(6U * row + component, 6U * row + component), 6.0, 1.0e-12) | EXPECT_NEAR(mass.lumped_global24(6U * row + 3U + component, 6U * row + 3U + component), component == 2U ? 0.0 : 2.0, 1.0e-12) -Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.RejectsNonpositiveAndNonfiniteDensity Mitc4ShellMass.RejectsNonpositiveAndNonfiniteDensity; assertion 4개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.RejectsNonpositiveAndNonfiniteDensity 유지 원문 검사 body 및 assertion 동일. 85d0b08a8b413046a1dd64d263b9a847bb933dc7411f5f611651c1fe772f8220 85d0b08a8b413046a1dd64d263b9a847bb933dc7411f5f611651c1fe772f8220 "ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_FALSE(mass.HasValue()) | ASSERT_EQ(mass.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(mass.GetStatus().Diagnostics()[0U].code, ""invalid-shell-mass"")" "ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_FALSE(mass.HasValue()) | ASSERT_EQ(mass.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(mass.GetStatus().Diagnostics()[0U].code, ""invalid-shell-mass"")" -Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.PreservesFiniteNodalVarianceAcrossDensityScale Mitc4ShellMass.PreservesFiniteNodalVarianceAcrossDensityScale; assertion 6개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.PreservesFiniteNodalVarianceAcrossDensityScale 유지 원문 검사 body 및 assertion 동일. 35f70d35723a1a6a5ca19dbe73e587dc1c35ec4828f98616aa2dab17d4920e3e 35f70d35723a1a6a5ca19dbe73e587dc1c35ec4828f98616aa2dab17d4920e3e ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_TRUE(std::isfinite(moments[0U])) | EXPECT_TRUE(std::isfinite(moments[1U])) | EXPECT_TRUE(std::isfinite(moments[2U])) | EXPECT_GT(moments[2U] - moments[1U] * (moments[1U] / moments[0U]), 0.0) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_TRUE(std::isfinite(moments[0U])) | EXPECT_TRUE(std::isfinite(moments[1U])) | EXPECT_TRUE(std::isfinite(moments[2U])) | EXPECT_GT(moments[2U] - moments[1U] * (moments[1U] / moments[0U]), 0.0) -Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.PreservesIndependentWarpedMomentOracle Mitc4ShellMass.PreservesIndependentWarpedMomentOracle; assertion 8개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.PreservesIndependentWarpedMomentOracle 유지 원문 검사 body 및 assertion 동일. 643cacec125570c0bafe60064f994407b8a1491199f88ce3b0e9af13472d444d 643cacec125570c0bafe60064f994407b8a1491199f88ce3b0e9af13472d444d ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(mass.consistent_moments[0U](0U, 0U), 17609.0 / 28800.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[1U](0U, 0U), 11003.0 / 1440000.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[2U](0U, 0U), 88177.0 / 6912000.0, 1.0e-12) | EXPECT_NEAR(total_mass, 7743.0 / 1600.0, 1.0e-12) | EXPECT_NEAR(total_first_moment, 739.0 / 12000.0, 1.0e-12) | EXPECT_NEAR(total_second_moment, 517.0 / 5120.0, 1.0e-12) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(mass.consistent_moments[0U](0U, 0U), 17609.0 / 28800.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[1U](0U, 0U), 11003.0 / 1440000.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[2U](0U, 0U), 88177.0 / 6912000.0, 1.0e-12) | EXPECT_NEAR(total_mass, 7743.0 / 1600.0, 1.0e-12) | EXPECT_NEAR(total_first_moment, 739.0 / 12000.0, 1.0e-12) | EXPECT_NEAR(total_second_moment, 517.0 / 5120.0, 1.0e-12) -Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.MeetsPartialBoundaryCompleteMatrixTargets Mitc4ShellMass.MeetsPartialBoundaryCompleteMatrixTargets; assertion 7개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.MeetsPartialBoundaryCompleteMatrixTargets 유지 원문 검사 body 및 assertion 동일. 7b4ca55c7d526b275a1ca19f3c65a04f168c1ca514a329671b9fc594f4f468a1 7b4ca55c7d526b275a1ca19f3c65a04f168c1ca514a329671b9fc594f4f468a1 ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(stiffness_candidate.Value().drilling_stiffness, 19.0 / 4800.0, 1.0e-12) | EXPECT_NEAR(complete_stiffness, 10369.0 / 7500.0, 1.0e-12) | EXPECT_NEAR(lumped_mass, 3.0 / 50.0, 1.0e-12) | EXPECT_NEAR(complete_stiffness / lumped_mass, 10369.0 / 450.0, 1.0e-12) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(stiffness_candidate.Value().drilling_stiffness, 19.0 / 4800.0, 1.0e-12) | EXPECT_NEAR(complete_stiffness, 10369.0 / 7500.0, 1.0e-12) | EXPECT_NEAR(lumped_mass, 3.0 / 50.0, 1.0e-12) | EXPECT_NEAR(complete_stiffness / lumped_mass, 10369.0 / 450.0, 1.0e-12) -Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.RecomputesCompleteMassAndStiffnessCovariantly Mitc4ShellMass.RecomputesCompleteMassAndStiffnessCovariantly; assertion 6개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.RecomputesCompleteMassAndStiffnessCovariantly 유지 원문 검사 body 및 assertion 동일. 1235757b19e3bdacbfc2226ca9a3b839417e1f295516a1d4de6259acb4d0be43 1235757b19e3bdacbfc2226ca9a3b839417e1f295516a1d4de6259acb4d0be43 ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(original_stiffness.HasValue()) | ASSERT_TRUE(rotated_stiffness.HasValue()) | ASSERT_TRUE(original_mass.HasValue()) | ASSERT_TRUE(rotated_mass.HasValue()) ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(original_stiffness.HasValue()) | ASSERT_TRUE(rotated_stiffness.HasValue()) | ASSERT_TRUE(original_mass.HasValue()) | ASSERT_TRUE(rotated_mass.HasValue()) -Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.FailsNonfiniteReferenceAndStabilizesEachPureDrillCoordinate Mitc4ShellDrilling.FailsNonfiniteReferenceAndStabilizesEachPureDrillCoordinate; assertion 13개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.FailsNonfiniteReferenceAndStabilizesEachPureDrillCoordinate 유지 원문 검사 body 및 assertion 동일. 0d2b529828fad74fc88ca1a545fe19d255f87c53d24275ec741bd114bbebe1ca 0d2b529828fad74fc88ca1a545fe19d255f87c53d24275ec741bd114bbebe1ca "ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_DOUBLE_EQ(stiffness.physical_global24.Multiply(pure_drill).Norm(), 0.0) | EXPECT_DOUBLE_EQ(drill_action[6U * node_index + 5U], stiffness.drilling_stiffness) | EXPECT_GT(QuadraticEnergy(stiffness.drilling_global24, pure_drill), 0.0) | ASSERT_TRUE(extreme_shell.HasValue()) | ASSERT_FALSE(failure.HasValue()) | ASSERT_EQ(failure.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(failure.GetStatus().Diagnostics()[0].code, ""invalid-shell-stiffness"") | ASSERT_FALSE(repeated_failure.HasValue()) | ASSERT_EQ(repeated_failure.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(repeated_failure.GetStatus().Diagnostics()[0].code, failure.GetStatus().Diagnostics()[0].code) | EXPECT_EQ(repeated_failure.GetStatus().Diagnostics()[0].message, failure.GetStatus().Diagnostics()[0].message)" "ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_DOUBLE_EQ(stiffness.physical_global24.Multiply(pure_drill).Norm(), 0.0) | EXPECT_DOUBLE_EQ(drill_action[6U * node_index + 5U], stiffness.drilling_stiffness) | EXPECT_GT(QuadraticEnergy(stiffness.drilling_global24, pure_drill), 0.0) | ASSERT_TRUE(extreme_shell.HasValue()) | ASSERT_FALSE(failure.HasValue()) | ASSERT_EQ(failure.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(failure.GetStatus().Diagnostics()[0].code, ""invalid-shell-stiffness"") | ASSERT_FALSE(repeated_failure.HasValue()) | ASSERT_EQ(repeated_failure.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(repeated_failure.GetStatus().Diagnostics()[0].code, failure.GetStatus().Diagnostics()[0].code) | EXPECT_EQ(repeated_failure.GetStatus().Diagnostics()[0].message, failure.GetStatus().Diagnostics()[0].message)" -Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.ExcludesPureDrillFromPhysicalRecoveryAndEnergy Mitc4ShellDrilling.ExcludesPureDrillFromPhysicalRecoveryAndEnergy; assertion 8개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.ExcludesPureDrillFromPhysicalRecoveryAndEnergy 유지 원문 검사 body 및 assertion 동일. 3dad0709f8a7d8746df1e04699e6777b558a71db23f22ac13f5c98ecbd6b084d 3dad0709f8a7d8746df1e04699e6777b558a71db23f22ac13f5c98ecbd6b084d ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_GT(stiffness_candidate.Value() .stabilized_global24.Multiply(pure_drill) .Norm(), 0.0) | ASSERT_TRUE(recovery_candidate.HasValue()) | EXPECT_DOUBLE_EQ(recovery.strain_energy, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_GT(stiffness_candidate.Value() .stabilized_global24.Multiply(pure_drill) .Norm(), 0.0) | ASSERT_TRUE(recovery_candidate.HasValue()) | EXPECT_DOUBLE_EQ(recovery.strain_energy, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) -Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellPhysicalRecovery.RecoversHandFieldAtFixedLocationsAndSectionPositions Mitc4ShellPhysicalRecovery.RecoversHandFieldAtFixedLocationsAndSectionPositions; assertion 8개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellPhysicalRecovery.RecoversHandFieldAtFixedLocationsAndSectionPositions 유지 원문 검사 body 및 assertion 동일. 2a4132bcc260b96aec7e5c144e1ccf92a65c7dec753c940e378fac3737f08d83 2a4132bcc260b96aec7e5c144e1ccf92a65c7dec753c940e378fac3737f08d83 ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(recovery_candidate.HasValue()) | ASSERT_EQ(recovery.points.size(), expected_coordinates.size()) | EXPECT_EQ(point.natural_coordinates, expected_coordinates[point_index]) | EXPECT_NEAR(point.generalized_strain[component], kGeneralized[component], 1.0e-12) | EXPECT_NEAR(point.section_resultant[component], kExpectedResultant[component], 1.0e-12) | EXPECT_NEAR(point.in_plane_stress[position][component], kExpectedStress[position][component], 1.0e-12) | EXPECT_NEAR(recovery.strain_energy, 72.16, 1.0e-12) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(recovery_candidate.HasValue()) | ASSERT_EQ(recovery.points.size(), expected_coordinates.size()) | EXPECT_EQ(point.natural_coordinates, expected_coordinates[point_index]) | EXPECT_NEAR(point.generalized_strain[component], kGeneralized[component], 1.0e-12) | EXPECT_NEAR(point.section_resultant[component], kExpectedResultant[component], 1.0e-12) | EXPECT_NEAR(point.in_plane_stress[position][component], kExpectedStress[position][component], 1.0e-12) | EXPECT_NEAR(recovery.strain_energy, 72.16, 1.0e-12) -Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.RetainsReciprocalDeterminantOverflowGateAtTinyScale Mitc4ShellKinematics.RetainsReciprocalDeterminantOverflowGateAtTinyScale; assertion 3개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.RetainsReciprocalDeterminantOverflowGateAtTinyScale 유지 원문 검사 body 및 assertion 동일. d77bd95ff7630046878cec5f6a7057232c68b58f31e82d465f5565113f3324e2 d77bd95ff7630046878cec5f6a7057232c68b58f31e82d465f5565113f3324e2 "EXPECT_TRUE(fesa::Mitc4Shell::Create( NodePointers(nodes), Directors(), Section(2e-99), Material()).HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].code, ""invalid-shell-jacobian"")" "EXPECT_TRUE(fesa::Mitc4Shell::Create( NodePointers(nodes), Directors(), Section(2e-99), Material()).HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].code, ""invalid-shell-jacobian"")" -Refactor tests/unit/elements/mitc4_shell_test.cpp support@1-314 helper/oracle/fixture/include/static assertion 구간: Node, NodePointers, Section, Material, Dot, Cross, RotateAboutGlobalZ, Norm, ExpectVectorNear, ExpectOrthonormalRightHanded, ExpectMatrixNear, ExpectSymmetric, HasPositiveCholeskyPivots, if, FrobeniusNorm, ScaledSymmetryError, ScaledStiffness, SymmetricEigenvalues, NumericalRank, for, count_if, SymmetricOperatorNorm, QuadraticEnergy, PhysicalField, ExpectStrain, PhysicalRigidMode, PlanarNodes tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 297d7d85ca88c30c2fcba28e5add8b21550acc876c07a4f72e58bd5671374614 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_test.cpp support@345-346 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3871bd00e76dc57ff62fcabeb11b45bf1f6672a56529f21deb75b04370bafdcb 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_test.cpp support@400-401 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2b2e2de4330e6f7b2a8bc958c220fa5074cae2a894fdec078de809b1494a88c0 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_test.cpp support@455-456 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0e9489db8c044b5eac22c751c63b47dd64307874cd16a718c86fe5d4d8183fd5 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_test.cpp support@540-541 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3c4055c21da1e40459430c329495ace7af1b4404b56501366394a6789c7fd255 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_test.cpp support@555-556 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d78ec2164cda37dda980863249f1d1b8f01e17f082f71061e46180accb42a7b4 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_test.cpp support@656-657 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 297c797dbfa396881a360ce5e6061cad0ac811f3829247f77cbbe5c5d6ef704a 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_test.cpp support@685-686 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 832b8cc9cff26faa1e25dd5159b323b77839151eb7675edaaf4f6ff39d91a055 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_test.cpp support@734-735 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6b0492533ad982e0ff4c2695c4236ab7345f4db760494bf6488680ce4ce90747 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_test.cpp support@797-798 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 50f5a0316e8562dadd3155c301e30fc715e3dc4c735874d08f7567003cc894f3 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_test.cpp support@890-923 helper/oracle/fixture/include/static assertion 구간: ExpectGlobalZCovariance tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ee879d5be51cb0e71626e93a8224bba6a7ee8b8929d124939771c99853c476ae 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_test.cpp support@1027-1028 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 87cbab04a4d00f30b6ca88389a388eaaee48f9eab162d6d6f1a1a33f1d1c4b41 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_test.cpp support@1070-1071 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9445081d68e7ef72263ba262a8525bf8acd4c08d0212a48e0f87fa92b0d99c6b 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/mitc4_shell_test.cpp support@1108-1109 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 31f30d2b75293b2d01a063d68a9dfdb4e607867386078578966eb04a63d4496a 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 17개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. 7274bef28faa7c8a38da9436edf00d3d2356031a9ee82618a8b16226f99d687f 7274bef28faa7c8a38da9436edf00d3d2356031a9ee82618a8b16226f99d687f 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.IntegratesTheRectangleNodalLumpedMassAndNull NonlinearMitc4Inertia.IntegratesTheRectangleNodalLumpedMassAndNull; assertion 5개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.IntegratesTheRectangleNodalLumpedMassAndNull 유지 원문 검사 body 및 assertion 동일. 717e3fc84d47b730a49e4677ba77a96fdeab3929b1e3b870c9fd73495ddf445e 717e3fc84d47b730a49e4677ba77a96fdeab3929b1e3b870c9fd73495ddf445e ASSERT_TRUE(evaluation.HasValue()) | EXPECT_NEAR(mass(6U * row, 6U * column), row == column ? 0.2 : 0.0, 1.0e-12) | EXPECT_NEAR(mass(6U * row + 3U, 6U * column + 3U), row == column ? 0.2 * 0.2 * 0.2 / 12.0 : 0.0, 1.0e-12) | EXPECT_NEAR(mass(6U * row + 5U, 6U * row + 5U), 0.0, 1.0e-12) | EXPECT_LE(mass.Multiply(drilling_null).Norm(), 1.0e-12) ASSERT_TRUE(evaluation.HasValue()) | EXPECT_NEAR(mass(6U * row, 6U * column), row == column ? 0.2 : 0.0, 1.0e-12) | EXPECT_NEAR(mass(6U * row + 3U, 6U * column + 3U), row == column ? 0.2 * 0.2 * 0.2 / 12.0 : 0.0, 1.0e-12) | EXPECT_NEAR(mass(6U * row + 5U, 6U * row + 5U), 0.0, 1.0e-12) | EXPECT_LE(mass.Multiply(drilling_null).Norm(), 1.0e-12) -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.UsesPhysicalAccelerationAndExactCurrentForce NonlinearMitc4Inertia.UsesPhysicalAccelerationAndExactCurrentForce; assertion 3개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.UsesPhysicalAccelerationAndExactCurrentForce 유지 원문 검사 body 및 assertion 동일. ddce9716997e9842683e77402fbf5b3b865335261d285318138c471950069a35 ddce9716997e9842683e77402fbf5b3b865335261d285318138c471950069a35 ASSERT_TRUE(evaluation.HasValue()) | EXPECT_NEAR(evaluation.Value().force[index], expected[index], 1.0e-11) | EXPECT_NEAR(evaluation.Value().convective_force[index], 0.0, 1.0e-11) ASSERT_TRUE(evaluation.HasValue()) | EXPECT_NEAR(evaluation.Value().force[index], expected[index], 1.0e-11) | EXPECT_NEAR(evaluation.Value().convective_force[index], 0.0, 1.0e-11) -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.PreservesTinyAngularAccelerationAlongsideRigidTranslationAcceleration NonlinearMitc4Inertia.PreservesTinyAngularAccelerationAlongsideRigidTranslationAcceleration; assertion 5개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.PreservesTinyAngularAccelerationAlongsideRigidTranslationAcceleration 유지 원문 검사 body 및 assertion 동일. 9b2033a70c6b58db45bfc94101520b88db958b78ab526763fbe07eb9c2971b7f 9b2033a70c6b58db45bfc94101520b88db958b78ab526763fbe07eb9c2971b7f ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_DOUBLE_EQ(actual.Value().convective_force[full], 0.0) | ASSERT_GT(scale, 0.0) | EXPECT_LE(error / scale, 1e-12) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_DOUBLE_EQ(actual.Value().convective_force[full], 0.0) | ASSERT_GT(scale, 0.0) | EXPECT_LE(error / scale, 1e-12) -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.MixedScaleRotationDerivativeAndAngularMomentum NonlinearMitc4Inertia.MixedScaleRotationDerivativeAndAngularMomentum; assertion 6개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.MixedScaleRotationDerivativeAndAngularMomentum 유지 원문 검사 body 및 assertion 동일. 81949ff3504ddccc0cbef056e78d8596ee31b99ff69aae08a4dc6503e09bd230 81949ff3504ddccc0cbef056e78d8596ee31b99ff69aae08a4dc6503e09bd230 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_LE(derivative_error / (nodal_rotary_inertia * epsilon), 1e-12) | EXPECT_LE(rate_error / (nodal_rotary_inertia * epsilon), 1e-12) | ASSERT_TRUE(moving.HasValue()) | EXPECT_LE(momentum_error / (nodal_rotary_inertia * epsilon), 1e-12) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_LE(derivative_error / (nodal_rotary_inertia * epsilon), 1e-12) | EXPECT_LE(rate_error / (nodal_rotary_inertia * epsilon), 1e-12) | ASSERT_TRUE(moving.HasValue()) | EXPECT_LE(momentum_error / (nodal_rotary_inertia * epsilon), 1e-12) -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.FlatRotatedLargeOffsetKeepsCenteredRotationalInertiaExactlyZero NonlinearMitc4Inertia.FlatRotatedLargeOffsetKeepsCenteredRotationalInertiaExactlyZero; assertion 4개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.FlatRotatedLargeOffsetKeepsCenteredRotationalInertiaExactlyZero 유지 원문 검사 body 및 assertion 동일. f5b834d0bbcf878284e79ee64f605b5d50f2671a207a226ab6226be2b1d242c8 f5b834d0bbcf878284e79ee64f605b5d50f2671a207a226ab6226be2b1d242c8 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_DOUBLE_EQ(value.Value().force[6U * node + 3U + component], 0.0) | EXPECT_DOUBLE_EQ(mass_times_acceleration[6U * node + 3U + component], 0.0) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_DOUBLE_EQ(value.Value().force[6U * node + 3U + component], 0.0) | EXPECT_DOUBLE_EQ(mass_times_acceleration[6U * node + 3U + component], 0.0) -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.WarpedGeometryRetainsNonzeroFirstThicknessMoment NonlinearMitc4Inertia.WarpedGeometryRetainsNonzeroFirstThicknessMoment; assertion 3개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.WarpedGeometryRetainsNonzeroFirstThicknessMoment 유지 원문 검사 body 및 assertion 동일. 89f7e9f4b875516c794ec880dbf48d5a8e55b0402e9a1c3dfa1382b255cacf26 89f7e9f4b875516c794ec880dbf48d5a8e55b0402e9a1c3dfa1382b255cacf26 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_GT(coupling, 0.0) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_GT(coupling, 0.0) -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.InverseIdentityAndCurrentAnalyticNullAtFiniteRotation DynamicRotation.InverseIdentityAndCurrentAnalyticNullAtFiniteRotation; assertion 10개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.InverseIdentityAndCurrentAnalyticNullAtFiniteRotation 유지 원문 검사 body 및 assertion 동일. a38ec8c66743c96d9852840c0a2a33e0c3a14f330dd00369fcaedf51b341f3ee a38ec8c66743c96d9852840c0a2a33e0c3a14f330dd00369fcaedf51b341f3ee ASSERT_TRUE(value.HasValue()) | EXPECT_GT(mapped[column], 0.0) | EXPECT_NEAR(value.Value().drill_null.Norm(), 1.0, 1e-12) | EXPECT_NEAR(mapped[row], 0.0, 1e-12) | ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | EXPECT_LE(mass.Multiply(n).Norm() / MatrixNorm(mass), 1.0e-12) | EXPECT_LE(std::abs(n.Dot(scaled_force)) / scaled_force.Norm(), 1.0e-10) | EXPECT_GT(mass.Multiply(fixed_drill).Norm() / MatrixNorm(mass), 1.0e-8) ASSERT_TRUE(value.HasValue()) | EXPECT_GT(mapped[column], 0.0) | EXPECT_NEAR(value.Value().drill_null.Norm(), 1.0, 1e-12) | EXPECT_NEAR(mapped[row], 0.0, 1e-12) | ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | EXPECT_LE(mass.Multiply(n).Norm() / MatrixNorm(mass), 1.0e-12) | EXPECT_LE(std::abs(n.Dot(scaled_force)) / scaled_force.Norm(), 1.0e-10) | EXPECT_GT(mass.Multiply(fixed_drill).Norm() / MatrixNorm(mass), 1.0e-8) -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.RejectsIllConditionedPhysicalMassWithoutDeletingIt NonlinearMitc4Inertia.RejectsIllConditionedPhysicalMassWithoutDeletingIt; assertion 3개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.RejectsIllConditionedPhysicalMassWithoutDeletingIt 유지 원문 검사 body 및 assertion 동일. 5f0adf729846e876c90ddcd5db8123c9005a2541189d7a72ac1736116d411500 5f0adf729846e876c90ddcd5db8123c9005a2541189d7a72ac1736116d411500 "EXPECT_TRUE(normal.Create().HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].code, ""ill-conditioned-nonlinear-inertia-positive-mass"")" "EXPECT_TRUE(normal.Create().HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].code, ""ill-conditioned-nonlinear-inertia-positive-mass"")" -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.ConvectiveForceDoesNotLoseSmallValuesToAcceleration NonlinearMitc4Inertia.ConvectiveForceDoesNotLoseSmallValuesToAcceleration; assertion 5개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.ConvectiveForceDoesNotLoseSmallValuesToAcceleration 유지 원문 검사 body 및 assertion 동일. 25d5baa1b968f822aa4dd035d4e323310708e8e73f2ceaffcf3f657b99b2b86a 25d5baa1b968f822aa4dd035d4e323310708e8e73f2ceaffcf3f657b99b2b86a ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(ordinary.HasValue()) | ASSERT_TRUE(large.HasValue()) | EXPECT_GT(ordinary.Value().convective_force.Norm(), 0.0) | EXPECT_EQ(ordinary.Value().convective_force[i], large.Value().convective_force[i]) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(ordinary.HasValue()) | ASSERT_TRUE(large.HasValue()) | EXPECT_GT(ordinary.Value().convective_force.Norm(), 0.0) | EXPECT_EQ(ordinary.Value().convective_force[i], large.Value().convective_force[i]) -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.PartialAndEffectiveTangentsPassTheScaledFixedSweep NonlinearMitc4Inertia.PartialAndEffectiveTangentsPassTheScaledFixedSweep; assertion 5개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.PartialAndEffectiveTangentsPassTheScaledFixedSweep 유지 원문 검사 body 및 assertion 동일. e5946458fbc3006710a0af48c556f989a6be04fde87c4c61c0e4bd18366c8315 e5946458fbc3006710a0af48c556f989a6be04fde87c4c61c0e4bd18366c8315 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(vp.HasValue()) | ASSERT_TRUE(vm.HasValue()) | EXPECT_TRUE(consecutive) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(vp.HasValue()) | ASSERT_TRUE(vm.HasValue()) | EXPECT_TRUE(consecutive) -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.MatchesIndependentWarpedNodalMomentsEnergyAndPower NonlinearMitc4Inertia.MatchesIndependentWarpedNodalMomentsEnergyAndPower; assertion 17개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.MatchesIndependentWarpedNodalMomentsEnergyAndPower 유지 원문 검사 body 및 assertion 동일. 259d4f9247683cf706cedd32eb2bf44ce9e33d0ed8119ef7a57f197466e3d8aa 259d4f9247683cf706cedd32eb2bf44ce9e33d0ed8119ef7a57f197466e3d8aa ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_LE(mass_error / MatrixNorm(expected_mass), 1.0e-12) | EXPECT_LE(symmetry_error / MatrixNorm(expected_mass), 1.0e-12) | EXPECT_LE( std::abs(value.Value().kinetic_energy - oracle.energy) / oracle.energy, 1.0e-12) | EXPECT_LE(std::abs(0.5 * state.v.Dot(value.Value().mass.Multiply(state.v)) - oracle.energy) / oracle.energy, 1.0e-12) | EXPECT_LE(std::abs(state.v.Dot(value.Value().force) - oracle.power) / std::abs(oracle.power), 1.0e-10) | EXPECT_LE(Difference(ApplyD(value.Value().force, fixture.Length()), ApplyD(oracle.force, fixture.Length()), 1.0) .Norm() / ApplyD(oracle.force, fixture.Length()).Norm(), 1.0e-12) | EXPECT_LE((value.Value().momentum - oracle.momentum).Norm() / oracle.momentum.Norm(), 1.0e-12) | EXPECT_LE( (value.Value().angular_momentum - oracle.angular_momentum).Norm() / oracle.angular_momentum.Norm(), 1.0e-12) | EXPECT_LE((value.Value().momentum_rate - oracle.momentum_rate).Norm() / oracle.momentum_rate.Norm(), 1.0e-12) | EXPECT_LE( (value.Value().angular_momentum_rate - oracle.angular_momentum_rate) .Norm() / oracle.angular_momentum_rate.Norm(), 1.0e-12) | ASSERT_TRUE(bi.HasValue()) | ASSERT_TRUE(bj.HasValue()) | EXPECT_LE(std::abs(numerator[k] / denominator[k] - oracle.moments[k][i][j]) / scale, 1.0e-12) | ASSERT_TRUE(translation.HasValue()) | EXPECT_NEAR(translation.Value().kinetic_energy / oracle.total_mass, 0.25, 1.0e-12) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_LE(mass_error / MatrixNorm(expected_mass), 1.0e-12) | EXPECT_LE(symmetry_error / MatrixNorm(expected_mass), 1.0e-12) | EXPECT_LE( std::abs(value.Value().kinetic_energy - oracle.energy) / oracle.energy, 1.0e-12) | EXPECT_LE(std::abs(0.5 * state.v.Dot(value.Value().mass.Multiply(state.v)) - oracle.energy) / oracle.energy, 1.0e-12) | EXPECT_LE(std::abs(state.v.Dot(value.Value().force) - oracle.power) / std::abs(oracle.power), 1.0e-10) | EXPECT_LE(Difference(ApplyD(value.Value().force, fixture.Length()), ApplyD(oracle.force, fixture.Length()), 1.0) .Norm() / ApplyD(oracle.force, fixture.Length()).Norm(), 1.0e-12) | EXPECT_LE((value.Value().momentum - oracle.momentum).Norm() / oracle.momentum.Norm(), 1.0e-12) | EXPECT_LE( (value.Value().angular_momentum - oracle.angular_momentum).Norm() / oracle.angular_momentum.Norm(), 1.0e-12) | EXPECT_LE((value.Value().momentum_rate - oracle.momentum_rate).Norm() / oracle.momentum_rate.Norm(), 1.0e-12) | EXPECT_LE( (value.Value().angular_momentum_rate - oracle.angular_momentum_rate) .Norm() / oracle.angular_momentum_rate.Norm(), 1.0e-12) | ASSERT_TRUE(bi.HasValue()) | ASSERT_TRUE(bj.HasValue()) | EXPECT_LE(std::abs(numerator[k] / denominator[k] - oracle.moments[k][i][j]) / scale, 1.0e-12) | ASSERT_TRUE(translation.HasValue()) | EXPECT_NEAR(translation.Value().kinetic_energy / oracle.total_mass, 0.25, 1.0e-12) -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.InitialMassMatchesEigenLumpingAndFiniteEnergyObeysJensen NonlinearMitc4Inertia.InitialMassMatchesEigenLumpingAndFiniteEnergyObeysJensen; assertion 8개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.InitialMassMatchesEigenLumpingAndFiniteEnergyObeysJensen 유지 원문 검사 body 및 assertion 동일. c9725cc3d16533a26647720f977a41ee8e1edcbfddf43560b3abf4a638464969 c9725cc3d16533a26647720f977a41ee8e1edcbfddf43560b3abf4a638464969 ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(eigen.HasValue()) | ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(initial.HasValue()) | EXPECT_NEAR(initial.Value().mass(i, j), eigen.Value().lumped_global24(i, j), 1.0e-12) | EXPECT_EQ(initial.Value().mass(i, j), 0.0) | EXPECT_GT(lumped.energy - consistent.energy, 0.0) | EXPECT_NEAR(lumped.total_mass, consistent.total_mass, 1.0e-12) ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(eigen.HasValue()) | ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(initial.HasValue()) | EXPECT_NEAR(initial.Value().mass(i, j), eigen.Value().lumped_global24(i, j), 1.0e-12) | EXPECT_EQ(initial.Value().mass(i, j), 0.0) | EXPECT_GT(lumped.energy - consistent.energy, 0.0) | EXPECT_NEAR(lumped.total_mass, consistent.total_mass, 1.0e-12) -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.ThirdDerivativesMatchAllPermutationsAndInteriorSweep DynamicRotation.ThirdDerivativesMatchAllPermutationsAndInteriorSweep; assertion 6개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.ThirdDerivativesMatchAllPermutationsAndInteriorSweep 유지 원문 검사 body 및 assertion 동일. fed5b777e0226e78a7a852200777d80a3d9736b13300e6670b9d244bea2fe464 fed5b777e0226e78a7a852200777d80a3d9736b13300e6670b9d244bea2fe464 ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_LE((analytic - oracle).Norm(), 1.0e-12) | EXPECT_LE((analytic - Third(value.Value(), directions[t], directions[p], directions[r])) .Norm(), 1.0e-12) | EXPECT_TRUE(consecutive[r][t]) ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_LE((analytic - oracle).Norm(), 1.0e-12) | EXPECT_LE((analytic - Third(value.Value(), directions[t], directions[p], directions[r])) .Norm(), 1.0e-12) | EXPECT_TRUE(consecutive[r][t]) -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.NormalizedNullDerivativesIncludeNormalizationCurvature DynamicRotation.NormalizedNullDerivativesIncludeNormalizationCurvature; assertion 9개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.NormalizedNullDerivativesIncludeNormalizationCurvature 유지 원문 검사 body 및 assertion 동일. b1519383145d86730f51475376a73c825a7eb748c5e69bbe9a502bc32069efcd b1519383145d86730f51475376a73c825a7eb748c5e69bbe9a502bc32069efcd ASSERT_TRUE(value.HasValue()) | EXPECT_NEAR(value.Value().drill_null.Norm(), 1.0, 1.0e-12) | EXPECT_NEAR(value.Value().drill_null.Dot(first), 0.0, 1.0e-12) | EXPECT_NEAR( value.Value().drill_null.Dot(value.Value().null_directional_second), -first.Dot(first), 1.0e-12) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_TRUE(consecutive) | EXPECT_FALSE(fesa::EvaluateDynamicRotation({}, {0, 0, 2}, {}, {}).HasValue()) | EXPECT_FALSE( fesa::EvaluateDynamicRotation( {std::numeric_limits::quiet_NaN(), 0, 0}, initial, {}, {}) .HasValue()) ASSERT_TRUE(value.HasValue()) | EXPECT_NEAR(value.Value().drill_null.Norm(), 1.0, 1.0e-12) | EXPECT_NEAR(value.Value().drill_null.Dot(first), 0.0, 1.0e-12) | EXPECT_NEAR( value.Value().drill_null.Dot(value.Value().null_directional_second), -first.Dot(first), 1.0e-12) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_TRUE(consecutive) | EXPECT_FALSE(fesa::EvaluateDynamicRotation({}, {0, 0, 2}, {}, {}).HasValue()) | EXPECT_FALSE( fesa::EvaluateDynamicRotation( {std::numeric_limits::quiet_NaN(), 0, 0}, initial, {}, {}) .HasValue()) -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.UnitAndGlobalFrameChangesPreservePhysicalMetrics NonlinearMitc4Inertia.UnitAndGlobalFrameChangesPreservePhysicalMetrics; assertion 14개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.UnitAndGlobalFrameChangesPreservePhysicalMetrics 유지 원문 검사 body 및 assertion 동일. d1d1d2152f232cee2453d1b80ac93c5759be9c4a35df8128bf14ddec28c2b2c8 d1d1d2152f232cee2453d1b80ac93c5759be9c4a35df8128bf14ddec28c2b2c8 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(converted_inertia.HasValue()) | ASSERT_TRUE(uv.HasValue()) | EXPECT_LE(std::abs(uv.Value().kinetic_energy / energy_scale - value.Value().kinetic_energy) / value.Value().kinetic_energy, 1.0e-12) | EXPECT_LE(error / MatrixNorm(original_scaled), 1.0e-12) | EXPECT_LE(Difference(original_force, converted_force, 1.0).Norm() / original_force.Norm(), 1.0e-10) | ASSERT_TRUE(frame_inertia.HasValue()) | ASSERT_TRUE(fv.HasValue()) | EXPECT_LE(std::abs(fv.Value().kinetic_energy - value.Value().kinetic_energy) / value.Value().kinetic_energy, 1.0e-12) | EXPECT_LE((fv.Value().momentum - rotate(value.Value().momentum)).Norm() / value.Value().momentum.Norm(), 1.0e-12) | EXPECT_LE( (fv.Value().angular_momentum - rotate(value.Value().angular_momentum)) .Norm() / value.Value().angular_momentum.Norm(), 1.0e-12) | EXPECT_LE((actual - expected).Norm() / expected.Norm(), 1.0e-10) | EXPECT_LE(covariance_error / MatrixNorm(value.Value().mass), 1.0e-12) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(converted_inertia.HasValue()) | ASSERT_TRUE(uv.HasValue()) | EXPECT_LE(std::abs(uv.Value().kinetic_energy / energy_scale - value.Value().kinetic_energy) / value.Value().kinetic_energy, 1.0e-12) | EXPECT_LE(error / MatrixNorm(original_scaled), 1.0e-12) | EXPECT_LE(Difference(original_force, converted_force, 1.0).Norm() / original_force.Norm(), 1.0e-10) | ASSERT_TRUE(frame_inertia.HasValue()) | ASSERT_TRUE(fv.HasValue()) | EXPECT_LE(std::abs(fv.Value().kinetic_energy - value.Value().kinetic_energy) / value.Value().kinetic_energy, 1.0e-12) | EXPECT_LE((fv.Value().momentum - rotate(value.Value().momentum)).Norm() / value.Value().momentum.Norm(), 1.0e-12) | EXPECT_LE( (fv.Value().angular_momentum - rotate(value.Value().angular_momentum)) .Norm() / value.Value().angular_momentum.Norm(), 1.0e-12) | EXPECT_LE((actual - expected).Norm() / expected.Norm(), 1.0e-10) | EXPECT_LE(covariance_error / MatrixNorm(value.Value().mass), 1.0e-12) -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.MatchesEightyDigitIndependentBlockExponentialAnchors DynamicRotation.MatchesEightyDigitIndependentBlockExponentialAnchors; assertion 4개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.MatchesEightyDigitIndependentBlockExponentialAnchors 유지 원문 검사 body 및 assertion 동일. afd5da8bcdde50b87721fb93bff8d47f1886f6b6812e83259d1208ec2b2dfb06 afd5da8bcdde50b87721fb93bff8d47f1886f6b6812e83259d1208ec2b2dfb06 ASSERT_TRUE(value.HasValue()) | EXPECT_LE((Third(value.Value(), e1, e1, e1) - expected[i][0]).Norm(), 1.0e-12) | EXPECT_LE((Third(value.Value(), e1, e2, e3) - expected[i][1]).Norm(), 1.0e-12) | EXPECT_LE( (Third(value.Value(), mixed, mixed, mixed) - expected[i][2]).Norm(), 1.0e-12) ASSERT_TRUE(value.HasValue()) | EXPECT_LE((Third(value.Value(), e1, e1, e1) - expected[i][0]).Norm(), 1.0e-12) | EXPECT_LE((Third(value.Value(), e1, e2, e3) - expected[i][1]).Norm(), 1.0e-12) | EXPECT_LE( (Third(value.Value(), mixed, mixed, mixed) - expected[i][2]).Norm(), 1.0e-12) -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.IndependentOracleDetectsEachRequiredOmission NonlinearMitc4Inertia.IndependentOracleDetectsEachRequiredOmission; assertion 10개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.IndependentOracleDetectsEachRequiredOmission 유지 원문 검사 body 및 assertion 동일. cd75fd015eb68d73365632968c883ff3e0361d16f81d4c93e4e1f28bb39fba01 cd75fd015eb68d73365632968c883ff3e0361d16f81d4c93e4e1f28bb39fba01 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_GT(Difference(mutant, fd, 1.0).Norm() / (mutant.Norm() + fd.Norm()), 1.0e-6) | EXPECT_GT(Difference(ApplyD(no_convective, fixture.Length()), ApplyD(oracle.force, fixture.Length()), 1.0) .Norm() / ApplyD(oracle.force, fixture.Length()).Norm(), 1.0e-6) | ASSERT_TRUE(vplus.HasValue()) | ASSERT_TRUE(vminus.HasValue()) | EXPECT_GT(vfd.Norm(), 0.0) | EXPECT_GT(Difference(missing_dv, vfd, 1.0).Norm() / vfd.Norm(), 1.0e-6) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_GT(Difference(mutant, fd, 1.0).Norm() / (mutant.Norm() + fd.Norm()), 1.0e-6) | EXPECT_GT(Difference(ApplyD(no_convective, fixture.Length()), ApplyD(oracle.force, fixture.Length()), 1.0) .Norm() / ApplyD(oracle.force, fixture.Length()).Norm(), 1.0e-6) | ASSERT_TRUE(vplus.HasValue()) | ASSERT_TRUE(vminus.HasValue()) | EXPECT_GT(vfd.Norm(), 0.0) | EXPECT_GT(Difference(missing_dv, vfd, 1.0).Norm() / vfd.Norm(), 1.0e-6) -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@1-81 helper/oracle/fixture/include/static assertion 구간: Node, Nodes, Pointers, Frames, Inertia, AddRotation, Difference tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. d69ff9a4f48af8ab96bdc107989f8cb690b3bd03e7302f69630eb2aaf558871a 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@177-180 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. 494a3ced593041a4d3ea62a53340f75d552373b567d3ec7ca404700ea0c42534 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@251-443 helper/oracle/fixture/include/static assertion 구간: Multiply, BlockExponentialDerivative, if, Second, Third, MatrixNorm, Fixture, Length, Create, Warped, WarpedNonuniformDirectors, RotateFrame, FlatRotatedLargeOffset, State, FiniteState, ApplyD tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. 222b0316695fd6559144c2fdfdaa9c8cac92e01ef32ad6685b7aff0384ebcc78 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@481-492 helper/oracle/fixture/include/static assertion 구간: ScaledMatrix tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. b069eba225770ec661e53431edf8f9c1df71af521445644b835793d185124063 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@647-771 helper/oracle/fixture/include/static assertion 구간: Integral, IntegrateFivePoints tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. af98d35bc14d69e1d57beb2df3c82bd29703cc630af22865fd95463987225795 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@1297-1298 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 16개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a2053f0d24af51ecdfe345ef14267b8a57a2530e994c46da68a5bb17f7250341 a2053f0d24af51ecdfe345ef14267b8a57a2530e994c46da68a5bb17f7250341 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.EvaluatesResidualTangentAndRecoveryAtOneTrial NonlinearMitc4Residual.EvaluatesResidualTangentAndRecoveryAtOneTrial; assertion 10개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.EvaluatesResidualTangentAndRecoveryAtOneTrial 유지 원문 검사 body 및 assertion 동일. 2bf5788132debdfcd7990b78d66be3ec5eb35b7039badcbff3737f49e5e0502a 2bf5788132debdfcd7990b78d66be3ec5eb35b7039badcbff3737f49e5e0502a ASSERT_TRUE(recovery.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().internal_residual.Size(), 24U) | EXPECT_EQ(result.Value().internal_tangent.Rows(), 24U) | EXPECT_EQ(result.Value().internal_tangent.Columns(), 24U) | EXPECT_DOUBLE_EQ(result.Value().physical_strain_energy, result.Value().recovery.physical_strain_energy) | EXPECT_DOUBLE_EQ(result.Value().recovery.physical_strain_energy, recovery.Value().physical_strain_energy) | EXPECT_DOUBLE_EQ(result.Value().internal_residual[index], result.Value().internal_force[index]) | EXPECT_EQ(result.Value().recovery.gauss_points[point].generalized_strain, recovery.Value().gauss_points[point].generalized_strain) | EXPECT_EQ(result.Value().recovery.gauss_points[point].section_resultant, recovery.Value().gauss_points[point].section_resultant) ASSERT_TRUE(recovery.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().internal_residual.Size(), 24U) | EXPECT_EQ(result.Value().internal_tangent.Rows(), 24U) | EXPECT_EQ(result.Value().internal_tangent.Columns(), 24U) | EXPECT_DOUBLE_EQ(result.Value().physical_strain_energy, result.Value().recovery.physical_strain_energy) | EXPECT_DOUBLE_EQ(result.Value().recovery.physical_strain_energy, recovery.Value().physical_strain_energy) | EXPECT_DOUBLE_EQ(result.Value().internal_residual[index], result.Value().internal_force[index]) | EXPECT_EQ(result.Value().recovery.gauss_points[point].generalized_strain, recovery.Value().gauss_points[point].generalized_strain) | EXPECT_EQ(result.Value().recovery.gauss_points[point].section_resultant, recovery.Value().gauss_points[point].section_resultant) -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Tangent.MatchesTheApprovedDirectionalSchedule NonlinearMitc4Tangent.MatchesTheApprovedDirectionalSchedule; assertion 9개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Tangent.MatchesTheApprovedDirectionalSchedule 유지 원문 검사 body 및 assertion 동일. 852d3d6bf5b1eb3a07504509b711d63cf08be10b7b4309a5668469b327b54991 852d3d6bf5b1eb3a07504509b711d63cf08be10b7b4309a5668469b327b54991 ASSERT_TRUE(equilibrium.HasValue()) | ASSERT_GT(ChannelNorm(analytical, true), 0.0) | ASSERT_GT(ChannelNorm(analytical, false), 0.0) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_GE(force_order_count, 2U) | EXPECT_GE(moment_order_count, 2U) | EXPECT_LE(force_errors[3U], 1.0e-6) | EXPECT_LE(moment_errors[3U], 1.0e-6) ASSERT_TRUE(equilibrium.HasValue()) | ASSERT_GT(ChannelNorm(analytical, true), 0.0) | ASSERT_GT(ChannelNorm(analytical, false), 0.0) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_GE(force_order_count, 2U) | EXPECT_GE(moment_order_count, 2U) | EXPECT_LE(force_errors[3U], 1.0e-6) | EXPECT_LE(moment_errors[3U], 1.0e-6) -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Tangent.PreservesRigidTranslationNullspaceAndSymmetry NonlinearMitc4Tangent.PreservesRigidTranslationNullspaceAndSymmetry; assertion 4개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Tangent.PreservesRigidTranslationNullspaceAndSymmetry 유지 원문 검사 body 및 assertion 동일. 0f79a384735c9e1976d518ca10d5c463a3d6fd669c1c995425c37c2c94e9f080 0f79a384735c9e1976d518ca10d5c463a3d6fd669c1c995425c37c2c94e9f080 ASSERT_TRUE(equilibrium.HasValue()) | EXPECT_LE(null_action.Norm(), 1.0e-10) | ASSERT_GT(FrobeniusNorm(scaled_tangent), 0.0) | EXPECT_LE(FrobeniusNorm(antisymmetric) / FrobeniusNorm(scaled_tangent), 1.0e-12) ASSERT_TRUE(equilibrium.HasValue()) | EXPECT_LE(null_action.Norm(), 1.0e-10) | ASSERT_GT(FrobeniusNorm(scaled_tangent), 0.0) | EXPECT_LE(FrobeniusNorm(antisymmetric) / FrobeniusNorm(scaled_tangent), 1.0e-12) -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.DoesNotAcceptExternalLoadShares NonlinearMitc4Residual.DoesNotAcceptExternalLoadShares; assertion 3개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.DoesNotAcceptExternalLoadShares 유지 원문 검사 body 및 assertion 동일. 826f6bda479841d9de0424ce957e015e087b41afa0149ca94cfe07d3699f1107 826f6bda479841d9de0424ce957e015e087b41afa0149ca94cfe07d3699f1107 ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().internal_residual[index], second.Value().internal_residual[index]) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().internal_residual[index], second.Value().internal_residual[index]) -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Objectivity.FiniteRigidMotionHasZeroInternalForce NonlinearMitc4Objectivity.FiniteRigidMotionHasZeroInternalForce; assertion 3개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Objectivity.FiniteRigidMotionHasZeroInternalForce 유지 원문 검사 body 및 assertion 동일. 2495a42787caa073516e20ed9797534fb25f3a8a4789d7c71231800206e8ce86 2495a42787caa073516e20ed9797534fb25f3a8a4789d7c71231800206e8ce86 ASSERT_TRUE(result.HasValue()) | EXPECT_LE(result.Value().internal_residual.Norm(), 1.0e-10) | EXPECT_LE(result.Value().physical_strain_energy, 1.0e-12) ASSERT_TRUE(result.HasValue()) | EXPECT_LE(result.Value().internal_residual.Norm(), 1.0e-10) | EXPECT_LE(result.Value().physical_strain_energy, 1.0e-12) -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Patch.RetainsPhysicalRecoveryIdentities NonlinearMitc4Patch.RetainsPhysicalRecoveryIdentities; assertion 1개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Patch.RetainsPhysicalRecoveryIdentities 유지 원문 검사 body 및 assertion 동일. f1b5a3a3696e0af3f261839b80c1164a0c28944c41ad77b4256a31b55f5906b3 f1b5a3a3696e0af3f261839b80c1164a0c28944c41ad77b4256a31b55f5906b3 ASSERT_TRUE(result.HasValue()) ASSERT_TRUE(result.HasValue()) -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.RejectsNonfiniteTrialData NonlinearMitc4Residual.RejectsNonfiniteTrialData; assertion 3개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.RejectsNonfiniteTrialData 유지 원문 검사 body 및 assertion 동일. 3e2e0c59444ee3b19641d2b76ca17ee825160e1821798a88bb12d225f0823f29 3e2e0c59444ee3b19641d2b76ca17ee825160e1821798a88bb12d225f0823f29 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-trial"") | EXPECT_FALSE(overflow_result.HasValue())" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-trial"") | EXPECT_FALSE(overflow_result.HasValue())" -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ZeroTrialOnTranslatedDecimalMeshHasNoArtificialForce NonlinearMitc4Residual.ZeroTrialOnTranslatedDecimalMeshHasNoArtificialForce; assertion 3개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ZeroTrialOnTranslatedDecimalMeshHasNoArtificialForce 유지 원문 검사 body 및 assertion 동일. dbba37dc6b52df765552dc588e502f3d8435f43ff28832f9702bd655c905951e dbba37dc6b52df765552dc588e502f3d8435f43ff28832f9702bd655c905951e ASSERT_TRUE(evaluated.HasValue()) | EXPECT_DOUBLE_EQ(evaluated.Value().internal_force[i], 0.0) | EXPECT_DOUBLE_EQ(evaluated.Value().drilling_energy, 0.0) ASSERT_TRUE(evaluated.HasValue()) | EXPECT_DOUBLE_EQ(evaluated.Value().internal_force[i], 0.0) | EXPECT_DOUBLE_EQ(evaluated.Value().drilling_energy, 0.0) -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExactDirectionalThirdGradientMatchesTangentSweep NonlinearMitc4Residual.ExactDirectionalThirdGradientMatchesTangentSweep; assertion 0개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExactDirectionalThirdGradientMatchesTangentSweep 유지 원문 검사 body 및 assertion 동일. 6d549b636640f56a6c955107a00503e9d58a2649a56aff87cdb9c2e688678c5c 6d549b636640f56a6c955107a00503e9d58a2649a56aff87cdb9c2e688678c5c 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.SmallRotationPhysicalForceRetainsDrillingNullIdentity NonlinearMitc4Residual.SmallRotationPhysicalForceRetainsDrillingNullIdentity; assertion 7개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.SmallRotationPhysicalForceRetainsDrillingNullIdentity 유지 원문 검사 body 및 assertion 동일. 614e3f70648e94b8a868a6e234984c0fc0c47cb9e02c17b202a3955faea48feb 614e3f70648e94b8a868a6e234984c0fc0c47cb9e02c17b202a3955faea48feb ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | ASSERT_GT(physical_scale, 0.0) | ASSERT_GT(total_scale, 0.0) | EXPECT_LE(std::abs(physical) / physical_scale, 1.0e-10) | EXPECT_LE(std::abs(projected - response.Value().drilling_constraint[node]) / total_scale, 1.0e-10) ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | ASSERT_GT(physical_scale, 0.0) | ASSERT_GT(total_scale, 0.0) | EXPECT_LE(std::abs(physical) / physical_scale, 1.0e-10) | EXPECT_LE(std::abs(projected - response.Value().drilling_constraint[node]) / total_scale, 1.0e-10) -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ThirdGradientIsStableAcrossSmallAngleBranches NonlinearMitc4Residual.ThirdGradientIsStableAcrossSmallAngleBranches; assertion 0개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ThirdGradientIsStableAcrossSmallAngleBranches 유지 원문 검사 body 및 assertion 동일. af1fb78eb8d4496f5767606062cf3f28bcf27e5aed115ee79e830293a3479d40 af1fb78eb8d4496f5767606062cf3f28bcf27e5aed115ee79e830293a3479d40 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExactDrillingConstraintHasIndependentForceGradientAndHessian NonlinearMitc4Residual.ExactDrillingConstraintHasIndependentForceGradientAndHessian; assertion 7개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExactDrillingConstraintHasIndependentForceGradientAndHessian 유지 원문 검사 body 및 assertion 동일. a5e30f5af2df2749898ee64cb0c470bdfcf03e6750df0325a9f2a59855b486f6 a5e30f5af2df2749898ee64cb0c470bdfcf03e6750df0325a9f2a59855b486f6 ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | EXPECT_NEAR(exact.Value().drilling_constraint[node], psi, 1e-11) | EXPECT_NEAR(exact.Value().drilling_constraint_gradient(node, i), gradient, 1e-10) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_TRUE(passed) ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | EXPECT_NEAR(exact.Value().drilling_constraint[node], psi, 1e-11) | EXPECT_NEAR(exact.Value().drilling_constraint_gradient(node, i), gradient, 1e-10) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_TRUE(passed) -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExposesExactDrillingConstraintThirdDirectionalGradient NonlinearMitc4Residual.ExposesExactDrillingConstraintThirdDirectionalGradient; assertion 5개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExposesExactDrillingConstraintThirdDirectionalGradient 유지 원문 검사 body 및 assertion 동일. 4a38b5b4ff71243f88af5dc3b4c43d5c10f8ae54ed6456715399299ab8653b88 4a38b5b4ff71243f88af5dc3b4c43d5c10f8ae54ed6456715399299ab8653b88 ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | ASSERT_EQ(exact.Value().drilling_constraint_third_directional_gradient[node] .Size(), 24U) | EXPECT_NEAR( exact.Value().drilling_constraint_third_directional_gradient[node] [row], finite_difference, 2.0e-5) ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | ASSERT_EQ(exact.Value().drilling_constraint_third_directional_gradient[node] .Size(), 24U) | EXPECT_NEAR( exact.Value().drilling_constraint_third_directional_gradient[node] [row], finite_difference, 2.0e-5) -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExternalDrillingConstraintIncludesForceTimeAndCurvatureTerms NonlinearMitc4Residual.ExternalDrillingConstraintIncludesForceTimeAndCurvatureTerms; assertion 10개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExternalDrillingConstraintIncludesForceTimeAndCurvatureTerms 유지 원문 검사 body 및 assertion 동일. ae7d5f1cfc46795fbb1f8992fddd0ff8a72d6148c99d90735a68e0dd5da0bba1 ae7d5f1cfc46795fbb1f8992fddd0ff8a72d6148c99d90735a68e0dd5da0bba1 ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_NEAR(exact.Value().directional_first, (plus.Value().value - minus.Value().value) / (2.0 * h), 2.0e-8) | EXPECT_NEAR(exact.Value().directional_second, (plus.Value().value - 2.0 * exact.Value().value + minus.Value().value) / (h * h), 3.0e-7) | EXPECT_NEAR(exact.Value().gradient_directional_first[row], (plus.Value().gradient[row] - minus.Value().gradient[row]) / (2.0 * h), 3.0e-8) | EXPECT_NEAR( exact.Value().gradient_directional_second[row], (plus.Value().gradient[row] - 2.0 * exact.Value().gradient[row] + minus.Value().gradient[row]) / (h * h), 4.0e-7) | ASSERT_TRUE(positive.HasValue()) | ASSERT_TRUE(negative.HasValue()) | EXPECT_NEAR(exact.Value().hessian(row, column), (positive.Value().gradient[row] - negative.Value().gradient[row]) / (2.0 * h), 2.0e-7) ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_NEAR(exact.Value().directional_first, (plus.Value().value - minus.Value().value) / (2.0 * h), 2.0e-8) | EXPECT_NEAR(exact.Value().directional_second, (plus.Value().value - 2.0 * exact.Value().value + minus.Value().value) / (h * h), 3.0e-7) | EXPECT_NEAR(exact.Value().gradient_directional_first[row], (plus.Value().gradient[row] - minus.Value().gradient[row]) / (2.0 * h), 3.0e-8) | EXPECT_NEAR( exact.Value().gradient_directional_second[row], (plus.Value().gradient[row] - 2.0 * exact.Value().gradient[row] + minus.Value().gradient[row]) / (h * h), 4.0e-7) | ASSERT_TRUE(positive.HasValue()) | ASSERT_TRUE(negative.HasValue()) | EXPECT_NEAR(exact.Value().hessian(row, column), (positive.Value().gradient[row] - negative.Value().gradient[row]) / (2.0 * h), 2.0e-7) -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExternalDrillingConstraintRejectsInvalidRotationAndHasZeroForceValue NonlinearMitc4Residual.ExternalDrillingConstraintRejectsInvalidRotationAndHasZeroForceValue; assertion 9개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExternalDrillingConstraintRejectsInvalidRotationAndHasZeroForceValue 유지 원문 검사 body 및 assertion 동일. c6774c3ef132d2277a95b92d7df0c1f0a2c9cae68cd1562a36ec07921aefc433 c6774c3ef132d2277a95b92d7df0c1f0a2c9cae68cd1562a36ec07921aefc433 "ASSERT_TRUE(zero.HasValue()) | EXPECT_DOUBLE_EQ(zero.Value().value, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().directional_first, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().directional_second, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient[row], 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient_directional_first[row], 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient_directional_second[row], 0.0) | EXPECT_FALSE(invalid.HasValue()) | EXPECT_EQ(invalid.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-rotation"")" "ASSERT_TRUE(zero.HasValue()) | EXPECT_DOUBLE_EQ(zero.Value().value, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().directional_first, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().directional_second, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient[row], 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient_directional_first[row], 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient_directional_second[row], 0.0) | EXPECT_FALSE(invalid.HasValue()) | EXPECT_EQ(invalid.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-rotation"")" -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.TinyRotationPreservesPhysicalForceAndRecoveryEnergy NonlinearMitc4Residual.TinyRotationPreservesPhysicalForceAndRecoveryEnergy; assertion 11개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.TinyRotationPreservesPhysicalForceAndRecoveryEnergy 유지 원문 검사 body 및 assertion 동일. d165f9780c2e6af21e2fd97f7ce8451f18ab885a26d92761617a13cae977696e d165f9780c2e6af21e2fd97f7ce8451f18ab885a26d92761617a13cae977696e ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(zero.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_DOUBLE_EQ(zero.Value().physical_strain_energy, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().physical_force[row], 0.0) | ASSERT_GT(scale, 0.0) | ASSERT_GT(quadratic_energy, 0.0) | EXPECT_LE(error / scale, 1e-12) | EXPECT_GT(actual.Value().physical_strain_energy, 0.0) | EXPECT_LE(std::abs(actual.Value().physical_strain_energy - quadratic_energy) / quadratic_energy, 1e-12) | EXPECT_LE(std::abs(actual.Value().physical_strain_energy - shear_energy) / shear_energy, 1e-12) ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(zero.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_DOUBLE_EQ(zero.Value().physical_strain_energy, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().physical_force[row], 0.0) | ASSERT_GT(scale, 0.0) | ASSERT_GT(quadratic_energy, 0.0) | EXPECT_LE(error / scale, 1e-12) | EXPECT_GT(actual.Value().physical_strain_energy, 0.0) | EXPECT_LE(std::abs(actual.Value().physical_strain_energy - quadratic_energy) / quadratic_energy, 1e-12) | EXPECT_LE(std::abs(actual.Value().physical_strain_energy - shear_energy) / shear_energy, 1e-12) -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@1-197 helper/oracle/fixture/include/static assertion 구간: Node, Nodes, NodePointers, Frames, Shell, if, Trial, AddScaled, Direction, ToVector, ReferenceLength, WorkConjugateDirection, WorkConjugate, ChannelNorm, FrobeniusNorm, WorkConjugateTangent, ExpectRelative tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 90ea99ff9b85b927825b8ae83597911a8c75a64fb655d2f0407528119a4fe7aa 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@226-227 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a5600c1fcbcc2b375d90f9a0b51fcb733f74bb959c86447c819b9a8f8c6bced8 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@290-291 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 138ed0391b2a8c8081bcdd75fe8ff2c89800a73301b761308a5607407eac6b85 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@321-322 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 80a26bf8dd830eafbfa37a987c6ca13ed7f75849c83da7f86476be70612b7b5a 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@336-337 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 808b628cf835f37ca1165035141cf55c77f1b82ba64e5e88837d89c12aa5edc4 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@362-363 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b43457f2efa97906a6ef783cd74e022646ee67c2ef526f6a96855ce0af4d2471 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@401-402 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f2cfb81414bf1e8f81009769c5476d4bfb83a9e564ab1c3851411dfc077ad757 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@420-480 helper/oracle/fixture/include/static assertion 구간: CheckThirdSweep, if tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d3556f4001a86aab0161a4dc5f94d4903c713cd3a2e71db2c68fc845b7929abd 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@837-838 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0436d99db81007fd4713cbcfd2850b351089fc3c05ab34e291a90e1e7621d07d 0436d99db81007fd4713cbcfd2850b351089fc3c05ab34e291a90e1e7621d07d 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.UndeformedStateHasZeroPhysicalRecovery NonlinearMitc4Shell.UndeformedStateHasZeroPhysicalRecovery; assertion 1개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.UndeformedStateHasZeroPhysicalRecovery 유지 원문 검사 body 및 assertion 동일. f3b34af9d811fbfa8302ccb17c75561b3d2674fee61705e5476681bfe4fd4489 f3b34af9d811fbfa8302ccb17c75561b3d2674fee61705e5476681bfe4fd4489 ASSERT_TRUE(recovery.HasValue()) ASSERT_TRUE(recovery.HasValue()) -Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Recovery.BendingResultantsMatchStressThicknessMoments NonlinearMitc4Recovery.BendingResultantsMatchStressThicknessMoments; assertion 4개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Recovery.BendingResultantsMatchStressThicknessMoments 유지 원문 검사 body 및 assertion 동일. 34fd7f143c5939eb6db783e82cb725a6ffab1e0bd5e788a2215805ba0232fdcb 34fd7f143c5939eb6db783e82cb725a6ffab1e0bd5e788a2215805ba0232fdcb ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(recovery.HasValue()) | ASSERT_GT(std::abs(moment), 0.0) | EXPECT_NEAR(point.section_resultant[3U + component], moment, 1.0e-12 * std::abs(moment)) ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(recovery.HasValue()) | ASSERT_GT(std::abs(moment), 0.0) | EXPECT_NEAR(point.section_resultant[3U + component], moment, 1.0e-12 * std::abs(moment)) -Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.RejectsInvalidNodeAndInitialFrameContracts NonlinearMitc4Shell.RejectsInvalidNodeAndInitialFrameContracts; assertion 6개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.RejectsInvalidNodeAndInitialFrameContracts 유지 원문 검사 body 및 assertion 동일. 09059c92e764720f2295f7dd9557530496e4f458cb2eae0317a64daccaae6ac3 09059c92e764720f2295f7dd9557530496e4f458cb2eae0317a64daccaae6ac3 "ASSERT_FALSE(null_node.HasValue()) | EXPECT_EQ(null_node.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-geometry"") | ASSERT_FALSE(duplicate_frame.HasValue()) | EXPECT_EQ(duplicate_frame.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-frame"") | ASSERT_FALSE(invalid_frame.HasValue()) | EXPECT_EQ(invalid_frame.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-frame"")" "ASSERT_FALSE(null_node.HasValue()) | EXPECT_EQ(null_node.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-geometry"") | ASSERT_FALSE(duplicate_frame.HasValue()) | EXPECT_EQ(duplicate_frame.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-frame"") | ASSERT_FALSE(invalid_frame.HasValue()) | EXPECT_EQ(invalid_frame.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-frame"")" -Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.UsesFixedInitialReferenceGeometry NonlinearMitc4Shell.UsesFixedInitialReferenceGeometry; assertion 1개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.UsesFixedInitialReferenceGeometry 유지 원문 검사 body 및 assertion 동일. 54a10626cf3848a02f009f15114e4ee270eddc556033d856cbde1a6232e2dd50 54a10626cf3848a02f009f15114e4ee270eddc556033d856cbde1a6232e2dd50 ASSERT_TRUE(recovery.HasValue()) ASSERT_TRUE(recovery.HasValue()) -Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.PreservesUnnormalizedInterpolatedDirector NonlinearMitc4Shell.PreservesUnnormalizedInterpolatedDirector; assertion 3개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.PreservesUnnormalizedInterpolatedDirector 유지 원문 검사 body 및 assertion 동일. acae08ee38b9b527574ad3d03d4dc5ded4224d8d4c298c4166d587dfe2d2f1c5 acae08ee38b9b527574ad3d03d4dc5ded4224d8d4c298c4166d587dfe2d2f1c5 ASSERT_TRUE(recovery.HasValue()) | EXPECT_GT(recovery.Value().physical_strain_energy, 0.0) | EXPECT_NEAR(recovery.Value().gauss_points[0U].generalized_strain[0U], expected_membrane, 1.0e-12) ASSERT_TRUE(recovery.HasValue()) | EXPECT_GT(recovery.Value().physical_strain_energy, 0.0) | EXPECT_NEAR(recovery.Value().gauss_points[0U].generalized_strain[0U], expected_membrane, 1.0e-12) -Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.RejectsOpposedOrDegenerateCurrentDirectors NonlinearMitc4Shell.RejectsOpposedOrDegenerateCurrentDirectors; assertion 2개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.RejectsOpposedOrDegenerateCurrentDirectors 유지 원문 검사 body 및 assertion 동일. 022372a03ed1384ea9018c527e60a8bb2e92a34abcabf2a3114b60516a9b39bc 022372a03ed1384ea9018c527e60a8bb2e92a34abcabf2a3114b60516a9b39bc "ASSERT_FALSE(recovery.HasValue()) | EXPECT_EQ(recovery.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-director"")" "ASSERT_FALSE(recovery.HasValue()) | EXPECT_EQ(recovery.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-director"")" -Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.MatchesLinearMitc4RecoveryInSmallRotationLimit NonlinearMitc4Shell.MatchesLinearMitc4RecoveryInSmallRotationLimit; assertion 4개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.MatchesLinearMitc4RecoveryInSmallRotationLimit 유지 원문 검사 body 및 assertion 동일. fd4b13f2fcc4938b50ae86d5f55795e3a40d899b81407fca14f78e5a9d6becd0 fd4b13f2fcc4938b50ae86d5f55795e3a40d899b81407fca14f78e5a9d6becd0 ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear_recovery.HasValue()) | ASSERT_TRUE(linear_recovery.HasValue()) | EXPECT_NEAR(nonlinear_recovery.Value().gauss_points[point] .generalized_strain[component], linear_recovery.Value().points[point] .generalized_strain[component], 1.0e-11) ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear_recovery.HasValue()) | ASSERT_TRUE(linear_recovery.HasValue()) | EXPECT_NEAR(nonlinear_recovery.Value().gauss_points[point] .generalized_strain[component], linear_recovery.Value().points[point] .generalized_strain[component], 1.0e-11) -Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.FiniteRigidMotionIsObjective NonlinearMitc4Shell.FiniteRigidMotionIsObjective; assertion 4개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.FiniteRigidMotionIsObjective 유지 원문 검사 body 및 assertion 동일. d31c4760ff39f940a70cb95e45b595095d334feafcc4f498f930764011944a71 d31c4760ff39f940a70cb95e45b595095d334feafcc4f498f930764011944a71 ASSERT_TRUE(recovery.HasValue()) | EXPECT_NEAR(value, 0.0, 1.0e-12) | EXPECT_NEAR(value, 0.0, 1.0e-12) | EXPECT_NEAR(recovery.Value().physical_strain_energy, 0.0, 1.0e-12) ASSERT_TRUE(recovery.HasValue()) | EXPECT_NEAR(value, 0.0, 1.0e-12) | EXPECT_NEAR(value, 0.0, 1.0e-12) | EXPECT_NEAR(recovery.Value().physical_strain_energy, 0.0, 1.0e-12) -Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Recovery.EmitsOnlyFixedPhysicalGaussAndStressRows NonlinearMitc4Recovery.EmitsOnlyFixedPhysicalGaussAndStressRows; assertion 7개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Recovery.EmitsOnlyFixedPhysicalGaussAndStressRows 유지 원문 검사 body 및 assertion 동일. 0008b0829c8e00bd25ac54d72bd223db1acd69f836b6804b78b3557549fac911 0008b0829c8e00bd25ac54d72bd223db1acd69f836b6804b78b3557549fac911 ASSERT_TRUE(recovery.HasValue()) | EXPECT_EQ(row.location, locations[point]) | EXPECT_EQ(row.natural_coordinates[0U], point == 0U || point == 3U ? -gauss : gauss) | EXPECT_EQ(row.natural_coordinates[1U], point < 2U ? -gauss : gauss) | EXPECT_EQ(row.stress[stress].position, positions[stress]) | EXPECT_EQ(row.stress[stress].zeta, zeta[stress]) | EXPECT_EQ(row.stress[stress].components.size(), 3U) ASSERT_TRUE(recovery.HasValue()) | EXPECT_EQ(row.location, locations[point]) | EXPECT_EQ(row.natural_coordinates[0U], point == 0U || point == 3U ? -gauss : gauss) | EXPECT_EQ(row.natural_coordinates[1U], point < 2U ? -gauss : gauss) | EXPECT_EQ(row.stress[stress].position, positions[stress]) | EXPECT_EQ(row.stress[stress].zeta, zeta[stress]) | EXPECT_EQ(row.stress[stress].components.size(), 3U) -Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@1-85 helper/oracle/fixture/include/static assertion 구간: Node, Nodes, NodePointers, Frames, Section, Material, ZeroTrial, Multiply, ExpectZeroRecovery, for, Shell tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a6879fd0fa6466d6fb021e12f76588f690a846dd854355d61c5bfd6fbe0de63b 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@124-125 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8dee679c89e7fcd7d139da1813c32774ca38d795655c80ce8208b3ab09423c5d 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@152-153 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ff3e2239c30471e94bbc18e563e41bb3744f9395c5d81311174b05782fb6ebc8 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@165-166 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 51ced39c2cbb72399c0b49dc9722cc1329c34f357f19be7280ef1e77b2b3e145 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@183-184 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2c8cd1d1980cb0d96addfd4b8037f4d929026a5ac7d0a6ec8856069b5ea0c9d0 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@196-197 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 97be9107d040c13bb40f904c4c01ca1d474fce4260203ac57dfa81b0e1c90824 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@235-236 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9b570c15351976fab371b347ec27443d3155262b9585a574bef6a511922d035c 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@264-265 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cd67c16794266a7614069ddb2948a60455ba1fa76721f5c3df9ff598aa83e25f 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@293-294 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/elements/thermal_shell_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 10개 tests/unit/elements/thermal_shell_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 70b2d6efab8783f723e6abf838fd6c50a1ea25a436480271f0ad9d9234b062db 70b2d6efab8783f723e6abf838fd6c50a1ea25a436480271f0ad9d9234b062db 해당 없음 해당 없음 -Refactor tests/unit/elements/thermal_shell_test.cpp ThermalShell.RationalMatricesSymmetryAndConstantModeUseFixedBudgets ThermalShell.RationalMatricesSymmetryAndConstantModeUseFixedBudgets; assertion 9개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.RationalMatricesSymmetryAndConstantModeUseFixedBudgets 유지 원문 검사 body 및 assertion 동일. b77746063cee453fa1b02d7e825896772f68eda7c436d562a9f120ee00254067 b77746063cee453fa1b02d7e825896772f68eda7c436d562a9f120ee00254067 "ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(kernel.Capacity(), exact.c), ec) | EXPECT_LE(Difference(kernel.Conductivity(), exact.k), ek) | EXPECT_LE(cs, 2 * ec) | EXPECT_LE(ks, 2 * ek) | EXPECT_LE(null, std::sqrt(20.) * ek) | EXPECT_LE(std::abs(total - 2), 20 * ec) | EXPECT_EQ(kernel.SourceId().source_label_text, ""0019"") | EXPECT_EQ(kernel.NodeIndices(), (std::array{{7, 2, 9, 4}}))" "ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(kernel.Capacity(), exact.c), ec) | EXPECT_LE(Difference(kernel.Conductivity(), exact.k), ek) | EXPECT_LE(cs, 2 * ec) | EXPECT_LE(ks, 2 * ek) | EXPECT_LE(null, std::sqrt(20.) * ek) | EXPECT_LE(std::abs(total - 2), 20 * ec) | EXPECT_EQ(kernel.SourceId().source_label_text, ""0019"") | EXPECT_EQ(kernel.NodeIndices(), (std::array{{7, 2, 9, 4}}))" -Refactor tests/unit/elements/thermal_shell_test.cpp ThermalShell.CapacityIsPositiveAndConductionHasExactlyOneNullMode ThermalShell.CapacityIsPositiveAndConductionHasExactlyOneNullMode; assertion 4개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.CapacityIsPositiveAndConductionHasExactlyOneNullMode 유지 원문 검사 body 및 assertion 동일. ebcd38fd5f93e481370605596eae5bfee78bd230ee37b0a15d07f1eeead80087 ebcd38fd5f93e481370605596eae5bfee78bd230ee37b0a15d07f1eeead80087 ASSERT_TRUE(created.HasValue()) | EXPECT_GT(capacity.first, Gamma(4096) * Norm(exact.pc) + backward) | EXPECT_LE(std::abs(conduction.first), Gamma(4096) * Norm(exact.pk) + backward) | EXPECT_GT(positive.first, Gamma(4096) * Norm(exact.pk) + backward + projection_budget) ASSERT_TRUE(created.HasValue()) | EXPECT_GT(capacity.first, Gamma(4096) * Norm(exact.pc) + backward) | EXPECT_LE(std::abs(conduction.first), Gamma(4096) * Norm(exact.pk) + backward) | EXPECT_GT(positive.first, Gamma(4096) * Norm(exact.pk) + backward + projection_budget) -Refactor tests/unit/elements/thermal_shell_test.cpp ThermalShell.Direct54MatchesSeparatedOperatorsOnActualThreeDimensionalPatches ThermalShell.Direct54MatchesSeparatedOperatorsOnActualThreeDimensionalPatches; assertion 3개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.Direct54MatchesSeparatedOperatorsOnActualThreeDimensionalPatches 유지 원문 검사 body 및 assertion 동일. fcd2050a389cecd6349305c4f881f5347bda524a64af04cf7b5e1e6228aea544 fcd2050a389cecd6349305c4f881f5347bda524a64af04cf7b5e1e6228aea544 ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(kernel.Capacity(), direct.c), Norm(kernel.CapacityError()) + Gamma(8192) * Norm(direct.pc)) | EXPECT_LE(Difference(kernel.Conductivity(), direct.k), Norm(kernel.ConductivityError()) + Gamma(8192) * Norm(direct.pk)) ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(kernel.Capacity(), direct.c), Norm(kernel.CapacityError()) + Gamma(8192) * Norm(direct.pc)) | EXPECT_LE(Difference(kernel.Conductivity(), direct.k), Norm(kernel.ConductivityError()) + Gamma(8192) * Norm(direct.pk)) -Refactor tests/unit/elements/thermal_shell_test.cpp ThermalShell.ThicknessScalingPreservesBothConductionTermsAndCapacity ThermalShell.ThicknessScalingPreservesBothConductionTermsAndCapacity; assertion 3개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.ThicknessScalingPreservesBothConductionTermsAndCapacity 유지 원문 검사 body 및 assertion 동일. 4af2e5d6dba4e15c7ef44c0f8aefc95988294ee8693ef71d0e3ef0f398507b61 4af2e5d6dba4e15c7ef44c0f8aefc95988294ee8693ef71d0e3ef0f398507b61 ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(created.Value().Capacity(), exact.c), Gamma(4096) * Norm(exact.pc)) | EXPECT_LE(Difference(created.Value().Conductivity(), exact.k), Gamma(4096) * Norm(exact.pk)) ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(created.Value().Capacity(), exact.c), Gamma(4096) * Norm(exact.pc)) | EXPECT_LE(Difference(created.Value().Conductivity(), exact.k), Gamma(4096) * Norm(exact.pk)) -Refactor tests/unit/elements/thermal_shell_test.cpp ThermalShell.AffineLinearFluxFramesAndSeparateMidsurfaceTraces ThermalShell.AffineLinearFluxFramesAndSeparateMidsurfaceTraces; assertion 10개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.AffineLinearFluxFramesAndSeparateMidsurfaceTraces 유지 원문 검사 body 및 assertion 동일. 00b41e05c43005233fd41fe3065da06b97e3a43af290bea482c61bdf1875eaaf 00b41e05c43005233fd41fe3065da06b97e3a43af290bea482c61bdf1875eaaf ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(recovery.HasValue()) | EXPECT_LE( (recovery.Value().global_flux[row] - Vector3{-3, 2, -4}).Norm(), Gamma(2048) * (linear_scale.scale[row] + Vector3{3, -2, 4}.Norm())) | EXPECT_NEAR(frame[i].Dot(frame[j]), i == j ? 1. : 0., Gamma(2048)) | EXPECT_NEAR(frame[0].Cross(frame[1]).Dot(frame[2]), 1., Gamma(2048)) | ASSERT_TRUE(traces.HasValue()) | EXPECT_EQ(traces.Value().global_flux[6 * ip + 2].Z(), 0.) | EXPECT_NEAR(traces.Value().global_flux[6 * ip + 3].Z(), -2., Gamma(2048) * 2) | ASSERT_TRUE(constant.HasValue()) | EXPECT_LE(constant.Value().global_flux[row].Norm(), Gamma(2048) * constant_scale.scale[row]) ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(recovery.HasValue()) | EXPECT_LE( (recovery.Value().global_flux[row] - Vector3{-3, 2, -4}).Norm(), Gamma(2048) * (linear_scale.scale[row] + Vector3{3, -2, 4}.Norm())) | EXPECT_NEAR(frame[i].Dot(frame[j]), i == j ? 1. : 0., Gamma(2048)) | EXPECT_NEAR(frame[0].Cross(frame[1]).Dot(frame[2]), 1., Gamma(2048)) | ASSERT_TRUE(traces.HasValue()) | EXPECT_EQ(traces.Value().global_flux[6 * ip + 2].Z(), 0.) | EXPECT_NEAR(traces.Value().global_flux[6 * ip + 3].Z(), -2., Gamma(2048) * 2) | ASSERT_TRUE(constant.HasValue()) | EXPECT_LE(constant.Value().global_flux[row].Norm(), Gamma(2048) * constant_scale.scale[row]) -Refactor tests/unit/elements/thermal_shell_test.cpp ThermalShell.TranslationRotationAndReversedNormalPreservePhysicalFlux ThermalShell.TranslationRotationAndReversedNormalPreservePhysicalFlux; assertion 10개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.TranslationRotationAndReversedNormalPreservePhysicalFlux 유지 원문 검사 body 및 assertion 동일. d3b3148c1533aa48c401f4b4d92418d4c57abdb89b589de242b5394ac13349b0 d3b3148c1533aa48c401f4b4d92418d4c57abdb89b589de242b5394ac13349b0 ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(moved.HasValue()) | ASSERT_TRUE(turned.HasValue()) | ASSERT_TRUE(flipped.HasValue()) | EXPECT_LE( Difference(base.Value().Capacity(), moved.Value().Capacity()), Norm(base.Value().CapacityError()) + Norm(moved.Value().CapacityError())) | EXPECT_LE( Difference(base.Value().Conductivity(), turned.Value().Conductivity()), Norm(base.Value().ConductivityError()) + Norm(turned.Value().ConductivityError())) | ASSERT_TRUE(flux.HasValue()) | ASSERT_TRUE(reverse.HasValue()) | EXPECT_LE((flux.Value().global_flux[row] - rotate({-3, 2, -4})).Norm(), Gamma(2048) * (turn_scale.scale[row] + Vector3{3, -2, 4}.Norm())) | EXPECT_LE( (reverse.Value().global_flux[row] - Vector3{-3, 2, -4}).Norm(), Gamma(2048) * (reverse_scale.scale[row] + Vector3{3, -2, 4}.Norm())) ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(moved.HasValue()) | ASSERT_TRUE(turned.HasValue()) | ASSERT_TRUE(flipped.HasValue()) | EXPECT_LE( Difference(base.Value().Capacity(), moved.Value().Capacity()), Norm(base.Value().CapacityError()) + Norm(moved.Value().CapacityError())) | EXPECT_LE( Difference(base.Value().Conductivity(), turned.Value().Conductivity()), Norm(base.Value().ConductivityError()) + Norm(turned.Value().ConductivityError())) | ASSERT_TRUE(flux.HasValue()) | ASSERT_TRUE(reverse.HasValue()) | EXPECT_LE((flux.Value().global_flux[row] - rotate({-3, 2, -4})).Norm(), Gamma(2048) * (turn_scale.scale[row] + Vector3{3, -2, 4}.Norm())) | EXPECT_LE( (reverse.Value().global_flux[row] - Vector3{-3, 2, -4}).Norm(), Gamma(2048) * (reverse_scale.scale[row] + Vector3{3, -2, 4}.Norm())) -Refactor tests/unit/elements/thermal_shell_test.cpp ThermalShell.CheckedCreationAndRecoveryRetainSourceAndRejectNonfinite ThermalShell.CheckedCreationAndRecoveryRetainSourceAndRejectNonfinite; assertion 7개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.CheckedCreationAndRecoveryRetainSourceAndRejectNonfinite 유지 원문 검사 body 및 assertion 동일. fa5ae9a4a6c78eb6502fe375b86097724b5484608a38dc580d02729c1662512e fa5ae9a4a6c78eb6502fe375b86097724b5484608a38dc580d02729c1662512e "EXPECT_FALSE(Kernel(kSquare, bad).HasValue()) | EXPECT_FALSE(Kernel(kSquare, 2, bad).HasValue()) | ASSERT_TRUE(created.HasValue()) | ASSERT_FALSE(bad.HasValue()) | EXPECT_EQ(bad.GetStatus().Diagnostics()[0].entity_identity, ""patch:0019"") | EXPECT_EQ(bad.GetStatus().Diagnostics()[0].location.line, 42U) | EXPECT_FALSE(created.Value().Recover(temperature).HasValue())" "EXPECT_FALSE(Kernel(kSquare, bad).HasValue()) | EXPECT_FALSE(Kernel(kSquare, 2, bad).HasValue()) | ASSERT_TRUE(created.HasValue()) | ASSERT_FALSE(bad.HasValue()) | EXPECT_EQ(bad.GetStatus().Diagnostics()[0].entity_identity, ""patch:0019"") | EXPECT_EQ(bad.GetStatus().Diagnostics()[0].location.line, 42U) | EXPECT_FALSE(created.Value().Recover(temperature).HasValue())" -Refactor tests/unit/elements/thermal_shell_test.cpp ThermalShell.GeneralWarpedFluxUsesActualReciprocalTangentsAndTraceOrder ThermalShell.GeneralWarpedFluxUsesActualReciprocalTangentsAndTraceOrder; assertion 4개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.GeneralWarpedFluxUsesActualReciprocalTangentsAndTraceOrder 유지 원문 검사 body 및 assertion 동일. d8ac116acd93e87e33b2b21c1880b4f4b554f07a2d11fcaba6c3031151e9b780 d8ac116acd93e87e33b2b21c1880b4f4b554f07a2d11fcaba6c3031151e9b780 ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_LE((actual.Value().global_flux[row] - expected.value[row]).Norm(), 2 * Gamma(2048) * expected.scale[row]) | EXPECT_GT((actual.Value().frames[0][2] - actual.Value().frames[1][2]).Norm(), 1.) ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_LE((actual.Value().global_flux[row] - expected.value[row]).Norm(), 2 * Gamma(2048) * expected.scale[row]) | EXPECT_GT((actual.Value().frames[0][2] - actual.Value().frames[1][2]).Norm(), 1.) -Refactor tests/unit/elements/thermal_shell_test.cpp ThermalShell.PowerOfTwoCoordinateScalingPreservesDimensionedOperators ThermalShell.PowerOfTwoCoordinateScalingPreservesDimensionedOperators; assertion 3개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.PowerOfTwoCoordinateScalingPreservesDimensionedOperators 유지 원문 검사 body 및 assertion 동일. c09333202e2a4f5cf6a42a31c1e5cd786979db0b59663bca37fc8bd4e508762d c09333202e2a4f5cf6a42a31c1e5cd786979db0b59663bca37fc8bd4e508762d ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(created.Value().Capacity(), c), Norm(created.Value().CapacityError()) + Gamma(4096) * Norm(c)) | EXPECT_LE( Difference(created.Value().Conductivity(), k), Norm(created.Value().ConductivityError()) + Gamma(4096) * Norm(k)) ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(created.Value().Capacity(), c), Norm(created.Value().CapacityError()) + Gamma(4096) * Norm(c)) | EXPECT_LE( Difference(created.Value().Conductivity(), k), Norm(created.Value().ConductivityError()) + Gamma(4096) * Norm(k)) -Refactor tests/unit/elements/thermal_shell_test.cpp ThermalShell.RejectsUnrepresentablePositivePropertiesWithoutClamping ThermalShell.RejectsUnrepresentablePositivePropertiesWithoutClamping; assertion 2개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.RejectsUnrepresentablePositivePropertiesWithoutClamping 유지 원문 검사 body 및 assertion 동일. ce5c3d9a306fa53f5457ea5db0a9d002d806423381a139cd329f8c6b42bae98b ce5c3d9a306fa53f5457ea5db0a9d002d806423381a139cd329f8c6b42bae98b EXPECT_FALSE(underflow.HasValue()) | EXPECT_FALSE(overflow.HasValue()) EXPECT_FALSE(underflow.HasValue()) | EXPECT_FALSE(overflow.HasValue()) -Refactor tests/unit/elements/thermal_shell_test.cpp support@1-245 helper/oracle/fixture/include/static assertion 구간: Gamma, Norm, Difference, Kernel, Oracle, Rational, Direct54, FluxOracle, Flux, EigenExtrema, if tests/unit/elements/thermal_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4b36e387f8082d0a918209d0e72ac417a3b4be25b0bcd07da65f3c169413c725 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/fem/dof_manager_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 12개 tests/unit/fem/dof_manager_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bd0972cde135770050c66143519332b17cb62a5c17b81530927fb27ef017c844 bd0972cde135770050c66143519332b17cb62a5c17b81530927fb27ef017c844 해당 없음 해당 없음 -Refactor tests/unit/fem/dof_manager_test.cpp DofManager.BuildsGenericRuntimeLayoutsInDeclaredSourceOrder DofManager.BuildsGenericRuntimeLayoutsInDeclaredSourceOrder; assertion 17개 tests/unit/fem/dof_manager_test.cpp DofManager.BuildsGenericRuntimeLayoutsInDeclaredSourceOrder 유지 원문 검사 body 및 assertion 동일. 41f2338c870fdbb3eff99743a0ef8112756b63092f3525a035a3755eb09882b1 41f2338c870fdbb3eff99743a0ef8112756b63092f3525a035a3755eb09882b1 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(dofs.ValidateInvariants().IsOk()) | ASSERT_TRUE(first_scatter.HasValue()) | ASSERT_TRUE(second_scatter.HasValue()) | EXPECT_EQ(first_scatter.Value(), (std::vector{14U, 12U, 2U, 0U})) | EXPECT_EQ(second_scatter.Value(), (std::vector{11U, 7U, 9U})) | EXPECT_EQ(RowColumns(pattern, 14U), (std::vector{0U, 2U, 12U, 14U})) | EXPECT_EQ(RowColumns(pattern, 7U), (std::vector{7U, 9U, 11U})) | ASSERT_FALSE(reversed_status.IsOk()) | ASSERT_EQ(reversed_status.Diagnostics().size(), 1U) | EXPECT_EQ(reversed_status.Diagnostics()[0U].code, ""invalid-element-layout-order"") | EXPECT_EQ(dofs.FreeDofs(), expected_free_dofs) | EXPECT_EQ(dofs.ConstrainedDofs(), expected_constrained_dofs) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, expected_row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, expected_columns)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(dofs.ValidateInvariants().IsOk()) | ASSERT_TRUE(first_scatter.HasValue()) | ASSERT_TRUE(second_scatter.HasValue()) | EXPECT_EQ(first_scatter.Value(), (std::vector{14U, 12U, 2U, 0U})) | EXPECT_EQ(second_scatter.Value(), (std::vector{11U, 7U, 9U})) | EXPECT_EQ(RowColumns(pattern, 14U), (std::vector{0U, 2U, 12U, 14U})) | EXPECT_EQ(RowColumns(pattern, 7U), (std::vector{7U, 9U, 11U})) | ASSERT_FALSE(reversed_status.IsOk()) | ASSERT_EQ(reversed_status.Diagnostics().size(), 1U) | EXPECT_EQ(reversed_status.Diagnostics()[0U].code, ""invalid-element-layout-order"") | EXPECT_EQ(dofs.FreeDofs(), expected_free_dofs) | EXPECT_EQ(dofs.ConstrainedDofs(), expected_constrained_dofs) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, expected_row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, expected_columns)" -Refactor tests/unit/fem/dof_manager_test.cpp DofManager.RejectsEveryCorruptedOwnerMappingInvariant DofManager.RejectsEveryCorruptedOwnerMappingInvariant; assertion 0개 tests/unit/fem/dof_manager_test.cpp DofManager.RejectsEveryCorruptedOwnerMappingInvariant 유지 원문 검사 body 및 assertion 동일. f3a2d0c1bdbc2bfcc10e6a27711d07586fe8076fb87c957f8448b0edef5ff5f0 f3a2d0c1bdbc2bfcc10e6a27711d07586fe8076fb87c957f8448b0edef5ff5f0 해당 없음 해당 없음 -Refactor tests/unit/fem/dof_manager_test.cpp DofManager.NumbersSixDofsAndFreeEquationsStably DofManager.NumbersSixDofsAndFreeEquationsStably; assertion 13개 tests/unit/fem/dof_manager_test.cpp DofManager.NumbersSixDofsAndFreeEquationsStably 유지 원문 검사 body 및 assertion 동일. 164a3c027dad0f2949360355d4e84d64180d8478dc812815c46df9d2e9de63fa 164a3c027dad0f2949360355d4e84d64180d8478dc812815c46df9d2e9de63fa EXPECT_EQ(dofs.FullDofCount(), 18U) | EXPECT_EQ(dofs.FreeDofCount(), 13U) | EXPECT_EQ(dofs.ConstrainedDofCount(), 5U) | EXPECT_EQ(dofs.FullDof(0U, fesa::DofComponent::kUx), 0U) | EXPECT_EQ(dofs.FullDof(0U, fesa::DofComponent::kUrz), 5U) | EXPECT_EQ(dofs.FullDof(1U, fesa::DofComponent::kUx), 6U) | EXPECT_EQ(dofs.FullDof(2U, fesa::DofComponent::kUrz), 17U) | EXPECT_EQ(dofs.FreeDofs(), (std::vector{3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 12U, 13U, 15U, 16U, 17U})) | EXPECT_EQ(dofs.ConstrainedDofs(), (std::vector{0U, 1U, 2U, 11U, 14U})) | EXPECT_EQ(dofs.FreeEquation(0U), std::nullopt) | EXPECT_EQ(dofs.FreeEquation(3U), std::optional{0U}) | EXPECT_EQ(dofs.FreeEquation(10U), std::optional{7U}) | EXPECT_EQ(dofs.FreeEquation(17U), std::optional{12U}) EXPECT_EQ(dofs.FullDofCount(), 18U) | EXPECT_EQ(dofs.FreeDofCount(), 13U) | EXPECT_EQ(dofs.ConstrainedDofCount(), 5U) | EXPECT_EQ(dofs.FullDof(0U, fesa::DofComponent::kUx), 0U) | EXPECT_EQ(dofs.FullDof(0U, fesa::DofComponent::kUrz), 5U) | EXPECT_EQ(dofs.FullDof(1U, fesa::DofComponent::kUx), 6U) | EXPECT_EQ(dofs.FullDof(2U, fesa::DofComponent::kUrz), 17U) | EXPECT_EQ(dofs.FreeDofs(), (std::vector{3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 12U, 13U, 15U, 16U, 17U})) | EXPECT_EQ(dofs.ConstrainedDofs(), (std::vector{0U, 1U, 2U, 11U, 14U})) | EXPECT_EQ(dofs.FreeEquation(0U), std::nullopt) | EXPECT_EQ(dofs.FreeEquation(3U), std::optional{0U}) | EXPECT_EQ(dofs.FreeEquation(10U), std::optional{7U}) | EXPECT_EQ(dofs.FreeEquation(17U), std::optional{12U}) -Refactor tests/unit/fem/dof_manager_test.cpp DofManager.ExpandsAndValidatesPrescribedValues DofManager.ExpandsAndValidatesPrescribedValues; assertion 16개 tests/unit/fem/dof_manager_test.cpp DofManager.ExpandsAndValidatesPrescribedValues 유지 원문 검사 body 및 assertion 동일. 6cf0e5ec3dec89d94ff24af258558bcf13c72a823748c36a839c4a4d5daf9b1c 6cf0e5ec3dec89d94ff24af258558bcf13c72a823748c36a839c4a4d5daf9b1c "ASSERT_EQ(values.Size(), 5U) | EXPECT_DOUBLE_EQ(values[0], 0.0) | EXPECT_DOUBLE_EQ(values[1], 0.0) | EXPECT_DOUBLE_EQ(values[2], 0.25) | EXPECT_DOUBLE_EQ(values[3], -0.5) | EXPECT_DOUBLE_EQ(values[4], 0.25) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_FALSE(conflict.HasValue()) | EXPECT_EQ(conflict.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(conflict.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""conflicting-boundary-condition"") | EXPECT_EQ(diagnostic.keyword, ""BOUNDARY"") | EXPECT_EQ(diagnostic.entity_identity, ""root"") | EXPECT_EQ(diagnostic.location.file, std::filesystem::path{""models/dof-manager.inp""}) | EXPECT_EQ(diagnostic.location.line, 77U)" "ASSERT_EQ(values.Size(), 5U) | EXPECT_DOUBLE_EQ(values[0], 0.0) | EXPECT_DOUBLE_EQ(values[1], 0.0) | EXPECT_DOUBLE_EQ(values[2], 0.25) | EXPECT_DOUBLE_EQ(values[3], -0.5) | EXPECT_DOUBLE_EQ(values[4], 0.25) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_FALSE(conflict.HasValue()) | EXPECT_EQ(conflict.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(conflict.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""conflicting-boundary-condition"") | EXPECT_EQ(diagnostic.keyword, ""BOUNDARY"") | EXPECT_EQ(diagnostic.entity_identity, ""root"") | EXPECT_EQ(diagnostic.location.file, std::filesystem::path{""models/dof-manager.inp""}) | EXPECT_EQ(diagnostic.location.line, 77U)" -Refactor tests/unit/fem/dof_manager_test.cpp DofManager.BuildsTwelveDofScatterAndSortedUniquePattern DofManager.BuildsTwelveDofScatterAndSortedUniquePattern; assertion 8개 tests/unit/fem/dof_manager_test.cpp DofManager.BuildsTwelveDofScatterAndSortedUniquePattern 유지 원문 검사 body 및 assertion 동일. 777cf0c0c96c7791e264fff4c6af066a696eb2afd008d54cdbf4ccd1d84f11bb 777cf0c0c96c7791e264fff4c6af066a696eb2afd008d54cdbf4ccd1d84f11bb EXPECT_EQ(dofs.ElementScatter(0U), (std::array{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U})) | EXPECT_EQ(dofs.ElementScatter(1U), (std::array{6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U})) | EXPECT_EQ(pattern.row_offsets, (std::vector{0U, 12U, 24U, 36U, 48U, 60U, 72U, 90U, 108U, 126U, 144U, 162U, 180U, 192U, 204U, 216U, 228U, 240U, 252U})) | EXPECT_EQ(RowColumns(pattern, 0U), first_block) | EXPECT_EQ(RowColumns(pattern, 7U), shared_block) | EXPECT_EQ(RowColumns(pattern, 17U), last_block) | EXPECT_TRUE(std::is_sorted(columns.begin(), columns.end())) | EXPECT_EQ(std::adjacent_find(columns.begin(), columns.end()), columns.end()) EXPECT_EQ(dofs.ElementScatter(0U), (std::array{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U})) | EXPECT_EQ(dofs.ElementScatter(1U), (std::array{6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U})) | EXPECT_EQ(pattern.row_offsets, (std::vector{0U, 12U, 24U, 36U, 48U, 60U, 72U, 90U, 108U, 126U, 144U, 162U, 180U, 192U, 204U, 216U, 228U, 240U, 252U})) | EXPECT_EQ(RowColumns(pattern, 0U), first_block) | EXPECT_EQ(RowColumns(pattern, 7U), shared_block) | EXPECT_EQ(RowColumns(pattern, 17U), last_block) | EXPECT_TRUE(std::is_sorted(columns.begin(), columns.end())) | EXPECT_EQ(std::adjacent_find(columns.begin(), columns.end()), columns.end()) -Refactor tests/unit/fem/dof_manager_test.cpp DofManager.BuildsShellScatterInSourceNodeAndComponentOrder DofManager.BuildsShellScatterInSourceNodeAndComponentOrder; assertion 2개 tests/unit/fem/dof_manager_test.cpp DofManager.BuildsShellScatterInSourceNodeAndComponentOrder 유지 원문 검사 body 및 assertion 동일. 8e1b5e8d8a5b5b681055207235c9565bd84ba56615922df7dbe69f84482a7911 8e1b5e8d8a5b5b681055207235c9565bd84ba56615922df7dbe69f84482a7911 EXPECT_EQ(dofs.FullDofCount(), 24U) | EXPECT_EQ(dofs.ShellElementScatter(0U), (std::array{ 12U, 13U, 14U, 15U, 16U, 17U, 0U, 1U, 2U, 3U, 4U, 5U, 18U, 19U, 20U, 21U, 22U, 23U, 6U, 7U, 8U, 9U, 10U, 11U})) EXPECT_EQ(dofs.FullDofCount(), 24U) | EXPECT_EQ(dofs.ShellElementScatter(0U), (std::array{ 12U, 13U, 14U, 15U, 16U, 17U, 0U, 1U, 2U, 3U, 4U, 5U, 18U, 19U, 20U, 21U, 22U, 23U, 6U, 7U, 8U, 9U, 10U, 11U})) -Refactor tests/unit/fem/dof_manager_test.cpp DofManager.IncludesShellConnectivityInSortedUniqueSparsePattern DofManager.IncludesShellConnectivityInSortedUniqueSparsePattern; assertion 8개 tests/unit/fem/dof_manager_test.cpp DofManager.IncludesShellConnectivityInSortedUniqueSparsePattern 유지 원문 검사 body 및 assertion 동일. 92c8de2bfcae8aace6b388803d0a64c9ac18f2d175a866e225089b21c4a623c8 92c8de2bfcae8aace6b388803d0a64c9ac18f2d175a866e225089b21c4a623c8 ASSERT_EQ(pattern.row_offsets.size(), 25U) | ASSERT_EQ(pattern.column_indices.size(), 24U * 24U) | EXPECT_EQ(pattern.row_offsets[row], row * 24U) | EXPECT_EQ(pattern.row_offsets[row + 1U], (row + 1U) * 24U) | ASSERT_EQ(columns.size(), 24U) | EXPECT_EQ(columns[column], column) | EXPECT_TRUE(std::binary_search(columns.begin(), columns.end(), row)) | EXPECT_EQ(std::adjacent_find(columns.begin(), columns.end()), columns.end()) ASSERT_EQ(pattern.row_offsets.size(), 25U) | ASSERT_EQ(pattern.column_indices.size(), 24U * 24U) | EXPECT_EQ(pattern.row_offsets[row], row * 24U) | EXPECT_EQ(pattern.row_offsets[row + 1U], (row + 1U) * 24U) | ASSERT_EQ(columns.size(), 24U) | EXPECT_EQ(columns[column], column) | EXPECT_TRUE(std::binary_search(columns.begin(), columns.end(), row)) | EXPECT_EQ(std::adjacent_find(columns.begin(), columns.end()), columns.end()) -Refactor tests/unit/fem/dof_manager_test.cpp DofManager.ReconstructsFullReducedRoundTrip DofManager.ReconstructsFullReducedRoundTrip; assertion 2개 tests/unit/fem/dof_manager_test.cpp DofManager.ReconstructsFullReducedRoundTrip 유지 원문 검사 body 및 assertion 동일. bcaf1e9c9f316b66734a1487522db16345e115f41d6580164af239c16aef76e0 bcaf1e9c9f316b66734a1487522db16345e115f41d6580164af239c16aef76e0 ASSERT_EQ(reconstructed.Size(), full.Size()) | EXPECT_DOUBLE_EQ(reconstructed[index], full[index]) ASSERT_EQ(reconstructed.Size(), full.Size()) | EXPECT_DOUBLE_EQ(reconstructed[index], full[index]) -Refactor tests/unit/fem/dof_manager_test.cpp ThermalDofManager.MapsOnlyConnectedNodesAndOverridesModelBoundary ThermalDofManager.MapsOnlyConnectedNodesAndOverridesModelBoundary; assertion 42개 tests/unit/fem/dof_manager_test.cpp ThermalDofManager.MapsOnlyConnectedNodesAndOverridesModelBoundary 유지 원문 검사 body 및 assertion 동일. 14c6b2472e4b37fd66fa0c929e96926cb3dbd44664ac0b9917708049cc8ae79b 14c6b2472e4b37fd66fa0c929e96926cb3dbd44664ac0b9917708049cc8ae79b "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(dofs.Profile(), fesa::DofProfile::kThermal) | EXPECT_EQ(dofs.FullDofCount(), 30U) | EXPECT_THROW(dofs.FullDof(0U, fesa::DofComponent::kUx), std::logic_error) | EXPECT_EQ(dofs.ConstrainedDofs(), (std::vector{0U, 9U})) | ASSERT_EQ(dofs.PrescribedValues().Size(), 2U) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[0U], 3.0) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[1U], 2.0) | EXPECT_EQ(dofs.FullThermalDof(6U, fesa::ThermalDofComponent::kTop), 29U) | EXPECT_THROW(dofs.FullThermalDof(3U, fesa::ThermalDofComponent::kBottom), std::out_of_range) | EXPECT_THROW( dofs.FullThermalDof( 0U, static_cast( (std::numeric_limits::min)())), std::out_of_range) | ASSERT_TRUE(first.HasValue()) | EXPECT_EQ(first.Value(), (std::vector{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U, 18U, 19U})) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(std::vector(second.Value().begin(), second.Value().begin() + 5U), (std::vector{5U, 6U, 7U, 8U, 9U})) | EXPECT_EQ(std::vector(second.Value().end() - 5U, second.Value().end()), (std::vector{10U, 11U, 12U, 13U, 14U})) | EXPECT_FALSE(dofs.ElementScatter(structural_layout).HasValue()) | ASSERT_FALSE(repeated.HasValue()) | EXPECT_EQ(repeated.GetStatus().Diagnostics()[0U].code, ""duplicate-element-dof"") | ASSERT_FALSE(reordered.HasValue()) | ASSERT_FALSE(invalid_component.HasValue()) | EXPECT_EQ(RowColumns(dofs.GetSparsePattern(), 0U), (std::vector{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U, 18U, 19U})) | ASSERT_TRUE(scatter_before.HasValue()) | ASSERT_FALSE(invalid.IsOk()) | EXPECT_EQ(invalid.Diagnostics()[0U].code, ""invalid-thermal-element-layout"") | EXPECT_EQ(dofs.Profile(), profile_before) | EXPECT_EQ(dofs.FullDofCount(), full_count_before) | EXPECT_EQ(dofs.FreeDofCount(), free_count_before) | EXPECT_EQ(dofs.ConstrainedDofCount(), constrained_count_before) | EXPECT_EQ(dofs.FreeDofs(), free_before) | EXPECT_EQ(dofs.ConstrainedDofs(), constrained_before) | ASSERT_EQ(dofs.PrescribedValues().Size(), prescribed_before.Size()) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[index], prescribed_before[index]) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, pattern_before.row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, pattern_before.column_indices) | ASSERT_TRUE(scatter_after.HasValue()) | EXPECT_EQ(scatter_after.Value(), scatter_before.Value()) | ASSERT_FALSE(structural_misuse.IsOk()) | EXPECT_EQ(structural_misuse.Diagnostics()[0U].code, ""invalid-dof-profile"") | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, pattern_before.row_offsets)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(dofs.Profile(), fesa::DofProfile::kThermal) | EXPECT_EQ(dofs.FullDofCount(), 30U) | EXPECT_THROW(dofs.FullDof(0U, fesa::DofComponent::kUx), std::logic_error) | EXPECT_EQ(dofs.ConstrainedDofs(), (std::vector{0U, 9U})) | ASSERT_EQ(dofs.PrescribedValues().Size(), 2U) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[0U], 3.0) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[1U], 2.0) | EXPECT_EQ(dofs.FullThermalDof(6U, fesa::ThermalDofComponent::kTop), 29U) | EXPECT_THROW(dofs.FullThermalDof(3U, fesa::ThermalDofComponent::kBottom), std::out_of_range) | EXPECT_THROW( dofs.FullThermalDof( 0U, static_cast( (std::numeric_limits::min)())), std::out_of_range) | ASSERT_TRUE(first.HasValue()) | EXPECT_EQ(first.Value(), (std::vector{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U, 18U, 19U})) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(std::vector(second.Value().begin(), second.Value().begin() + 5U), (std::vector{5U, 6U, 7U, 8U, 9U})) | EXPECT_EQ(std::vector(second.Value().end() - 5U, second.Value().end()), (std::vector{10U, 11U, 12U, 13U, 14U})) | EXPECT_FALSE(dofs.ElementScatter(structural_layout).HasValue()) | ASSERT_FALSE(repeated.HasValue()) | EXPECT_EQ(repeated.GetStatus().Diagnostics()[0U].code, ""duplicate-element-dof"") | ASSERT_FALSE(reordered.HasValue()) | ASSERT_FALSE(invalid_component.HasValue()) | EXPECT_EQ(RowColumns(dofs.GetSparsePattern(), 0U), (std::vector{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U, 18U, 19U})) | ASSERT_TRUE(scatter_before.HasValue()) | ASSERT_FALSE(invalid.IsOk()) | EXPECT_EQ(invalid.Diagnostics()[0U].code, ""invalid-thermal-element-layout"") | EXPECT_EQ(dofs.Profile(), profile_before) | EXPECT_EQ(dofs.FullDofCount(), full_count_before) | EXPECT_EQ(dofs.FreeDofCount(), free_count_before) | EXPECT_EQ(dofs.ConstrainedDofCount(), constrained_count_before) | EXPECT_EQ(dofs.FreeDofs(), free_before) | EXPECT_EQ(dofs.ConstrainedDofs(), constrained_before) | ASSERT_EQ(dofs.PrescribedValues().Size(), prescribed_before.Size()) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[index], prescribed_before[index]) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, pattern_before.row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, pattern_before.column_indices) | ASSERT_TRUE(scatter_after.HasValue()) | EXPECT_EQ(scatter_after.Value(), scatter_before.Value()) | ASSERT_FALSE(structural_misuse.IsOk()) | EXPECT_EQ(structural_misuse.Diagnostics()[0U].code, ""invalid-dof-profile"") | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, pattern_before.row_offsets)" -Refactor tests/unit/fem/dof_manager_test.cpp ThermalDofManager.RejectsChangedThermalLayoutInventory ThermalDofManager.RejectsChangedThermalLayoutInventory; assertion 6개 tests/unit/fem/dof_manager_test.cpp ThermalDofManager.RejectsChangedThermalLayoutInventory 유지 원문 검사 body 및 assertion 동일. 24dfec1451d61871c9de4765e12b026aec9b6b1285976d60b47e34c047330d85 24dfec1451d61871c9de4765e12b026aec9b6b1285976d60b47e34c047330d85 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_identity).IsOk()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_order).IsOk()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_nodes).IsOk()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_identity).IsOk()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_order).IsOk()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_nodes).IsOk()) -Refactor tests/unit/fem/dof_manager_test.cpp ThermalDofManager.KeepsDisconnectedThermalComponentsInSeparateCsrBlocks ThermalDofManager.KeepsDisconnectedThermalComponentsInSeparateCsrBlocks; assertion 6개 tests/unit/fem/dof_manager_test.cpp ThermalDofManager.KeepsDisconnectedThermalComponentsInSeparateCsrBlocks 유지 원문 검사 body 및 assertion 동일. 3c945c7278e08616de4858fb363c62549e22c8e97d0f6742280b2f61f0a218af 3c945c7278e08616de4858fb363c62549e22c8e97d0f6742280b2f61f0a218af ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().FullDofCount(), 40U) | EXPECT_EQ(RowColumns(result.Value().GetSparsePattern(), 0U).size(), 20U) | EXPECT_EQ(RowColumns(result.Value().GetSparsePattern(), 20U).front(), 20U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().FullDofCount(), 40U) | EXPECT_EQ(RowColumns(result.Value().GetSparsePattern(), 0U).size(), 20U) | EXPECT_EQ(RowColumns(result.Value().GetSparsePattern(), 20U).front(), 20U) -Refactor tests/unit/fem/dof_manager_test.cpp ThermalDofManager.RejectsThermalLayoutsForStructuralModels ThermalDofManager.RejectsThermalLayoutsForStructuralModels; assertion 6개 tests/unit/fem/dof_manager_test.cpp ThermalDofManager.RejectsThermalLayoutsForStructuralModels 유지 원문 검사 body 및 assertion 동일. 87aec2f1aa1dcfc017a94fb57393f0d486489a38edebfa67898ef75e8b1cd2fc 87aec2f1aa1dcfc017a94fb57393f0d486489a38edebfa67898ef75e8b1cd2fc "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-dof-profile"") | ASSERT_FALSE(thermal_create.HasValue()) | EXPECT_EQ(thermal_create.GetStatus().Diagnostics()[0U].code, ""invalid-dof-profile"")" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-dof-profile"") | ASSERT_FALSE(thermal_create.HasValue()) | EXPECT_EQ(thermal_create.GetStatus().Diagnostics()[0U].code, ""invalid-dof-profile"")" -Refactor tests/unit/fem/dof_manager_test.cpp support@1-207 helper/oracle/fixture/include/static assertion 구간: fesa, DofManagerTestAccess, DuplicateOwnership, RemoveFullMapping, ReverseFreeMapping, ReverseConstrainedMapping, CorruptEquationMapping, RemoveSparsePatternEntry, AddSparsePatternEntry, GenericLayoutElement, MakeDefinition, MakeShellDefinition, MakeThermalDefinition, DofFixture, MakeDofFixture, RowColumns, ExpectInvariantFailure tests/unit/fem/dof_manager_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ffdf3f61885836b4d08db6391e44d3993b391b5861abaf01a81f80f6c03e85fb 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/fem/dof_manager_test.cpp support@378-379 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/fem/dof_manager_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. edda67d5ae3e698f84e25f71acc0ab095496b8f704006cd9bd5d64597a7e94e3 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/fem/dof_manager_test.cpp support@390-391 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/fem/dof_manager_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 639575113829ba3af23c869e39aa0c68dfba327851149b3234d6c75f83aaa755 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 15개 tests/unit/io/abaqus/domain_mapper_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cdc14b4c935734140f44849672a8a15b2137233b1a5853a685577d3eb16dc728 cdc14b4c935734140f44849672a8a15b2137233b1a5853a685577d3eb16dc728 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsEverySupportedKeywordAndLegacyDeck InpDomainMapping.MapsEverySupportedKeywordAndLegacyDeck; assertion 54개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsEverySupportedKeywordAndLegacyDeck 유지 원문 검사 body 및 assertion 동일. 8f78580d37874c8e4e673f2ddf25cc61801dbcae17fb3ed4731609edd952f3d3 8f78580d37874c8e4e673f2ddf25cc61801dbcae17fb3ed4731609edd952f3d3 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Nodes()[0].source_id.instance_name, ""Beam-1"") | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""0001"") | EXPECT_EQ(domain.Nodes()[1].source_id.source_label_text, ""0002"") | EXPECT_DOUBLE_EQ(domain.Nodes()[1].coordinates[0], 2.0) | ASSERT_EQ(domain.Elements().Size(), 1U) | EXPECT_EQ(element.Kind(), fesa::ElementDefinitionKind::kEulerBeam3D) | EXPECT_EQ(element.SourceId().source_label_text, ""0007"") | EXPECT_EQ(element.SourceElementType(), ""B33"") | EXPECT_EQ(element.NodeIndices(), (std::vector{0U, 1U})) | EXPECT_EQ(&element, &domain.BeamElements()[0U]) | ASSERT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Materials()[0U].Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(domain.LinearElasticMaterials()[0U].name, ""Steel"") | EXPECT_DOUBLE_EQ(domain.LinearElasticMaterials()[0U].youngs_modulus, 210000.0) | EXPECT_DOUBLE_EQ(domain.LinearElasticMaterials()[0U].poisson_ratio, 0.75) | ASSERT_EQ(domain.Sections().Size(), 1U) | EXPECT_DOUBLE_EQ(section.area, 2.0) | EXPECT_DOUBLE_EQ(section.i11, 3.0) | EXPECT_DOUBLE_EQ(section.i12, 0.0) | EXPECT_DOUBLE_EQ(section.i22, 4.0) | EXPECT_DOUBLE_EQ(section.torsional_constant, 5.0) | EXPECT_EQ(section.first_axis, (std::array{0.0, 1.0, 0.0})) | EXPECT_EQ(section.section_points, (std::vector>{{-0.5, 0.25}, {0.5, -0.25}})) | EXPECT_EQ(domain.BeamElements()[0U].material_index, 0U) | EXPECT_EQ(domain.BeamElements()[0U].section_index, 0U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(step.Name(), ""Step-1"") | EXPECT_DOUBLE_EQ(step.InitialIncrement(), 0.25) | EXPECT_DOUBLE_EQ(step.TimePeriod(), 1.5) | EXPECT_DOUBLE_EQ(step.MinimumIncrement(), 0.01) | EXPECT_DOUBLE_EQ(step.MaximumIncrement(), 1.5) | ASSERT_EQ(step.PrescribedDisplacements().Size(), 2U) | EXPECT_EQ(step.PrescribedDisplacements()[0U].Target().target_name_or_label, ""rootassembly"") | EXPECT_EQ(step.PrescribedDisplacements()[0U].Component(), fesa::DofComponent::kUx) | EXPECT_DOUBLE_EQ(step.PrescribedDisplacements()[0U].PrescribedValue(), 0.125) | EXPECT_EQ(step.PrescribedDisplacements()[1U].Component(), fesa::DofComponent::kUy) | EXPECT_DOUBLE_EQ(step.PrescribedDisplacements()[1U].PrescribedValue(), 0.0) | ASSERT_EQ(step.ConcentratedLoads().Size(), 1U) | EXPECT_EQ(step.ConcentratedLoads()[0U].Target().target_name_or_label, ""RootAssembly"") | EXPECT_DOUBLE_EQ(step.ConcentratedLoads()[0U].GlobalComponents()[5U], -12.5) | EXPECT_EQ(domain.Warnings().size(), 8U) | ASSERT_TRUE(parsed_legacy.HasValue()) | ASSERT_TRUE(legacy.HasValue()) | EXPECT_EQ(legacy.Value().Nodes().size(), 11U) | EXPECT_EQ(legacy.Value().Elements().Size(), 10U) | EXPECT_EQ(legacy.Value().Materials().Size(), 1U) | EXPECT_EQ(legacy.Value().Sections().Size(), 1U) | EXPECT_EQ(legacy.Value().Steps().Size(), 1U) | EXPECT_EQ(legacy.Value().Warnings().size(), 7U) | EXPECT_EQ(ReadExactBytes(legacy_path), bytes_before) | EXPECT_EQ(std::filesystem::last_write_time(legacy_path), timestamp_before)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Nodes()[0].source_id.instance_name, ""Beam-1"") | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""0001"") | EXPECT_EQ(domain.Nodes()[1].source_id.source_label_text, ""0002"") | EXPECT_DOUBLE_EQ(domain.Nodes()[1].coordinates[0], 2.0) | ASSERT_EQ(domain.Elements().Size(), 1U) | EXPECT_EQ(element.Kind(), fesa::ElementDefinitionKind::kEulerBeam3D) | EXPECT_EQ(element.SourceId().source_label_text, ""0007"") | EXPECT_EQ(element.SourceElementType(), ""B33"") | EXPECT_EQ(element.NodeIndices(), (std::vector{0U, 1U})) | EXPECT_EQ(&element, &domain.BeamElements()[0U]) | ASSERT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Materials()[0U].Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(domain.LinearElasticMaterials()[0U].name, ""Steel"") | EXPECT_DOUBLE_EQ(domain.LinearElasticMaterials()[0U].youngs_modulus, 210000.0) | EXPECT_DOUBLE_EQ(domain.LinearElasticMaterials()[0U].poisson_ratio, 0.75) | ASSERT_EQ(domain.Sections().Size(), 1U) | EXPECT_DOUBLE_EQ(section.area, 2.0) | EXPECT_DOUBLE_EQ(section.i11, 3.0) | EXPECT_DOUBLE_EQ(section.i12, 0.0) | EXPECT_DOUBLE_EQ(section.i22, 4.0) | EXPECT_DOUBLE_EQ(section.torsional_constant, 5.0) | EXPECT_EQ(section.first_axis, (std::array{0.0, 1.0, 0.0})) | EXPECT_EQ(section.section_points, (std::vector>{{-0.5, 0.25}, {0.5, -0.25}})) | EXPECT_EQ(domain.BeamElements()[0U].material_index, 0U) | EXPECT_EQ(domain.BeamElements()[0U].section_index, 0U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(step.Name(), ""Step-1"") | EXPECT_DOUBLE_EQ(step.InitialIncrement(), 0.25) | EXPECT_DOUBLE_EQ(step.TimePeriod(), 1.5) | EXPECT_DOUBLE_EQ(step.MinimumIncrement(), 0.01) | EXPECT_DOUBLE_EQ(step.MaximumIncrement(), 1.5) | ASSERT_EQ(step.PrescribedDisplacements().Size(), 2U) | EXPECT_EQ(step.PrescribedDisplacements()[0U].Target().target_name_or_label, ""rootassembly"") | EXPECT_EQ(step.PrescribedDisplacements()[0U].Component(), fesa::DofComponent::kUx) | EXPECT_DOUBLE_EQ(step.PrescribedDisplacements()[0U].PrescribedValue(), 0.125) | EXPECT_EQ(step.PrescribedDisplacements()[1U].Component(), fesa::DofComponent::kUy) | EXPECT_DOUBLE_EQ(step.PrescribedDisplacements()[1U].PrescribedValue(), 0.0) | ASSERT_EQ(step.ConcentratedLoads().Size(), 1U) | EXPECT_EQ(step.ConcentratedLoads()[0U].Target().target_name_or_label, ""RootAssembly"") | EXPECT_DOUBLE_EQ(step.ConcentratedLoads()[0U].GlobalComponents()[5U], -12.5) | EXPECT_EQ(domain.Warnings().size(), 8U) | ASSERT_TRUE(parsed_legacy.HasValue()) | ASSERT_TRUE(legacy.HasValue()) | EXPECT_EQ(legacy.Value().Nodes().size(), 11U) | EXPECT_EQ(legacy.Value().Elements().Size(), 10U) | EXPECT_EQ(legacy.Value().Materials().Size(), 1U) | EXPECT_EQ(legacy.Value().Sections().Size(), 1U) | EXPECT_EQ(legacy.Value().Steps().Size(), 1U) | EXPECT_EQ(legacy.Value().Warnings().size(), 7U) | EXPECT_EQ(ReadExactBytes(legacy_path), bytes_before) | EXPECT_EQ(std::filesystem::last_write_time(legacy_path), timestamp_before)" -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.ExpandsSetsAndMultipleIdentityInstancesDeterministically InpDomainMapping.ExpandsSetsAndMultipleIdentityInstancesDeterministically; assertion 44개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.ExpandsSetsAndMultipleIdentityInstancesDeterministically 유지 원문 검사 body 및 assertion 동일. bf2734852f2ee6378dde74ca60a0a11d717385260626eff82987b59932ab65a4 bf2734852f2ee6378dde74ca60a0a11d717385260626eff82987b59932ab65a4 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 4U) | EXPECT_EQ(domain.Nodes()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes()[1].source_id.instance_name, ""First"") | EXPECT_EQ(domain.Nodes()[1].source_id.source_label, 20) | EXPECT_EQ(domain.Nodes()[2].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.Nodes()[2].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes()[3].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.Nodes()[3].source_id.source_label, 20) | ASSERT_EQ(domain.BeamElements().Size(), 2U) | EXPECT_EQ(domain.BeamElements()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.BeamElements()[0].node_indices, (std::array{0U, 1U})) | EXPECT_EQ(domain.BeamElements()[1].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.BeamElements()[1].node_indices, (std::array{2U, 3U})) | ASSERT_EQ(domain.NodeSets().size(), 3U) | EXPECT_EQ(domain.NodeSets()[0].name, ""Ends"") | EXPECT_EQ(domain.NodeSets()[0].instance_name, std::optional{""First""}) | EXPECT_EQ(domain.NodeSets()[0].node_indices, (std::vector{0U, 1U})) | EXPECT_EQ(domain.NodeSets()[1].instance_name, std::optional{""Second""}) | EXPECT_EQ(domain.NodeSets()[1].node_indices, (std::vector{2U, 3U})) | EXPECT_EQ(domain.NodeSets()[2].name, ""OnlySecond"") | EXPECT_EQ(domain.NodeSets()[2].node_indices, (std::vector{3U})) | ASSERT_EQ(domain.ElementSets().size(), 3U) | EXPECT_EQ(domain.ElementSets()[0].instance_name, std::optional{""First""}) | EXPECT_EQ(domain.ElementSets()[0].element_indices, (std::vector{0U})) | EXPECT_EQ(domain.ElementSets()[1].instance_name, std::optional{""Second""}) | EXPECT_EQ(domain.ElementSets()[1].element_indices, (std::vector{1U})) | EXPECT_EQ(domain.ElementSets()[2].name, ""OnlySecondBeam"") | EXPECT_EQ(domain.ElementSets()[2].element_indices, (std::vector{1U})) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0] .PrescribedDisplacements()[0U] .Target() .target_name_or_label, ""OnlySecond"") | EXPECT_EQ( domain.Steps()[0].ConcentratedLoads()[0U].Target().target_name_or_label, ""OnlySecond"") | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(direct.Value() .Steps()[0] .PrescribedDisplacements()[0U] .Target() .target_name_or_label, ""1"") | EXPECT_EQ(direct.Value() .Steps()[0] .ConcentratedLoads()[0U] .Target() .target_name_or_label, ""2"") | ASSERT_TRUE(above_thresholds.HasValue()) | ASSERT_TRUE(large_finite.HasValue()) | ASSERT_EQ(large_domain.Nodes().size(), 2U) | EXPECT_TRUE(large_delta.IsFinite()) | EXPECT_TRUE(std::isfinite(large_delta.Norm())) | EXPECT_DOUBLE_EQ(large_delta.Y(), 1.0e297) | EXPECT_TRUE(large_guide.IsFinite()) | EXPECT_TRUE(std::isfinite(large_guide.Norm()))" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 4U) | EXPECT_EQ(domain.Nodes()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes()[1].source_id.instance_name, ""First"") | EXPECT_EQ(domain.Nodes()[1].source_id.source_label, 20) | EXPECT_EQ(domain.Nodes()[2].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.Nodes()[2].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes()[3].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.Nodes()[3].source_id.source_label, 20) | ASSERT_EQ(domain.BeamElements().Size(), 2U) | EXPECT_EQ(domain.BeamElements()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.BeamElements()[0].node_indices, (std::array{0U, 1U})) | EXPECT_EQ(domain.BeamElements()[1].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.BeamElements()[1].node_indices, (std::array{2U, 3U})) | ASSERT_EQ(domain.NodeSets().size(), 3U) | EXPECT_EQ(domain.NodeSets()[0].name, ""Ends"") | EXPECT_EQ(domain.NodeSets()[0].instance_name, std::optional{""First""}) | EXPECT_EQ(domain.NodeSets()[0].node_indices, (std::vector{0U, 1U})) | EXPECT_EQ(domain.NodeSets()[1].instance_name, std::optional{""Second""}) | EXPECT_EQ(domain.NodeSets()[1].node_indices, (std::vector{2U, 3U})) | EXPECT_EQ(domain.NodeSets()[2].name, ""OnlySecond"") | EXPECT_EQ(domain.NodeSets()[2].node_indices, (std::vector{3U})) | ASSERT_EQ(domain.ElementSets().size(), 3U) | EXPECT_EQ(domain.ElementSets()[0].instance_name, std::optional{""First""}) | EXPECT_EQ(domain.ElementSets()[0].element_indices, (std::vector{0U})) | EXPECT_EQ(domain.ElementSets()[1].instance_name, std::optional{""Second""}) | EXPECT_EQ(domain.ElementSets()[1].element_indices, (std::vector{1U})) | EXPECT_EQ(domain.ElementSets()[2].name, ""OnlySecondBeam"") | EXPECT_EQ(domain.ElementSets()[2].element_indices, (std::vector{1U})) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0] .PrescribedDisplacements()[0U] .Target() .target_name_or_label, ""OnlySecond"") | EXPECT_EQ( domain.Steps()[0].ConcentratedLoads()[0U].Target().target_name_or_label, ""OnlySecond"") | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(direct.Value() .Steps()[0] .PrescribedDisplacements()[0U] .Target() .target_name_or_label, ""1"") | EXPECT_EQ(direct.Value() .Steps()[0] .ConcentratedLoads()[0U] .Target() .target_name_or_label, ""2"") | ASSERT_TRUE(above_thresholds.HasValue()) | ASSERT_TRUE(large_finite.HasValue()) | ASSERT_EQ(large_domain.Nodes().size(), 2U) | EXPECT_TRUE(large_delta.IsFinite()) | EXPECT_TRUE(std::isfinite(large_delta.Norm())) | EXPECT_DOUBLE_EQ(large_delta.Y(), 1.0e297) | EXPECT_TRUE(large_guide.IsFinite()) | EXPECT_TRUE(std::isfinite(large_guide.Norm()))" -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.KeepsNodeAndElementSetNamesInSeparateNamespaces InpDomainMapping.KeepsNodeAndElementSetNamesInSeparateNamespaces; assertion 12개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.KeepsNodeAndElementSetNamesInSeparateNamespaces 유지 원문 검사 body 및 assertion 동일. 2aba9a9e28b849050f1881692d962a2144d083d109388698a14e43a9c5c8b3fa 2aba9a9e28b849050f1881692d962a2144d083d109388698a14e43a9c5c8b3fa "ASSERT_TRUE(shared_name.HasValue()) | EXPECT_TRUE(std::any_of( domain.NodeSets().begin(), domain.NodeSets().end(), [](const fesa::NodeSet& set) { return set.name == ""ShellS4""; })) | EXPECT_TRUE(std::any_of( domain.ElementSets().begin(), domain.ElementSets().end(), [](const fesa::ElementSet& set) { return set.name == ""ShellS4""; })) | ASSERT_FALSE(duplicate_node_set.HasValue()) | EXPECT_NE(FindDiagnostic(duplicate_node_set.GetStatus(), ""duplicate-entity""), nullptr) | ASSERT_FALSE(duplicate_element_set.HasValue()) | EXPECT_NE( FindDiagnostic(duplicate_element_set.GetStatus(), ""duplicate-entity""), nullptr) | ASSERT_TRUE(assembly_shared_name.HasValue()) | EXPECT_EQ(root_node_set_count, 1) | ASSERT_NE(root_node_set, assembly_domain.NodeSets().end()) | EXPECT_EQ(root_node_set->node_indices, (std::vector{0U})) | EXPECT_EQ(std::count_if( assembly_domain.ElementSets().begin(), assembly_domain.ElementSets().end(), [](const fesa::ElementSet& set) { return set.name == ""Root""; }), 1)" "ASSERT_TRUE(shared_name.HasValue()) | EXPECT_TRUE(std::any_of( domain.NodeSets().begin(), domain.NodeSets().end(), [](const fesa::NodeSet& set) { return set.name == ""ShellS4""; })) | EXPECT_TRUE(std::any_of( domain.ElementSets().begin(), domain.ElementSets().end(), [](const fesa::ElementSet& set) { return set.name == ""ShellS4""; })) | ASSERT_FALSE(duplicate_node_set.HasValue()) | EXPECT_NE(FindDiagnostic(duplicate_node_set.GetStatus(), ""duplicate-entity""), nullptr) | ASSERT_FALSE(duplicate_element_set.HasValue()) | EXPECT_NE( FindDiagnostic(duplicate_element_set.GetStatus(), ""duplicate-entity""), nullptr) | ASSERT_TRUE(assembly_shared_name.HasValue()) | EXPECT_EQ(root_node_set_count, 1) | ASSERT_NE(root_node_set, assembly_domain.NodeSets().end()) | EXPECT_EQ(root_node_set->node_indices, (std::vector{0U})) | EXPECT_EQ(std::count_if( assembly_domain.ElementSets().begin(), assembly_domain.ElementSets().end(), [](const fesa::ElementSet& set) { return set.name == ""Root""; }), 1)" -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.NoOpAllowlistWarnsWithoutSemanticEffect InpDomainMapping.NoOpAllowlistWarnsWithoutSemanticEffect; assertion 23개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.NoOpAllowlistWarnsWithoutSemanticEffect 유지 원문 검사 body 및 assertion 동일. 9556663b9437fa4d24f82ae5e96bbab4bc6f0cb6dc06ec796f94eafbe3bcb829 9556663b9437fa4d24f82ae5e96bbab4bc6f0cb6dc06ec796f94eafbe3bcb829 "ASSERT_TRUE(plain.HasValue()) | ASSERT_TRUE(with_no_ops.HasValue()) | EXPECT_TRUE(plain.Value().Warnings().empty()) | ASSERT_EQ(with_no_ops.Value().Warnings().size(), 8U) | EXPECT_EQ(with_no_ops.Value().Warnings()[0].code, ""ignored-input-keyword"") | EXPECT_EQ(with_no_ops.Value().Warnings()[0].keyword, ""PREPRINT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[1].keyword, ""TRANSVERSE SHEAR STIFFNESS"") | EXPECT_EQ(with_no_ops.Value().Warnings()[2].keyword, ""RESTART"") | EXPECT_EQ(with_no_ops.Value().Warnings()[3].keyword, ""OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[4].keyword, ""NODE OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[5].keyword, ""ELEMENT OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[6].keyword, ""CONTACT OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[7].keyword, ""OUTPUT"") | EXPECT_EQ(warning.severity, fesa::Severity::kWarning) | EXPECT_EQ(with_no_ops.Value().Nodes().size(), plain.Value().Nodes().size()) | EXPECT_EQ(with_no_ops.Value().Elements().Size(), plain.Value().Elements().Size()) | EXPECT_EQ(with_no_ops.Value().Materials().Size(), plain.Value().Materials().Size()) | EXPECT_EQ(with_no_ops.Value().Sections().Size(), plain.Value().Sections().Size()) | EXPECT_EQ(with_no_ops.Value().NodeSets().size(), plain.Value().NodeSets().size()) | EXPECT_EQ(with_no_ops.Value().ElementSets().size(), plain.Value().ElementSets().size()) | EXPECT_EQ(with_no_ops.Value().Steps().Size(), plain.Value().Steps().Size()) | EXPECT_EQ(with_no_ops.Value().Steps()[0].BoundaryConditions().size(), plain.Value().Steps()[0].BoundaryConditions().size()) | EXPECT_EQ(with_no_ops.Value().Steps()[0].Loads().size(), plain.Value().Steps()[0].Loads().size())" "ASSERT_TRUE(plain.HasValue()) | ASSERT_TRUE(with_no_ops.HasValue()) | EXPECT_TRUE(plain.Value().Warnings().empty()) | ASSERT_EQ(with_no_ops.Value().Warnings().size(), 8U) | EXPECT_EQ(with_no_ops.Value().Warnings()[0].code, ""ignored-input-keyword"") | EXPECT_EQ(with_no_ops.Value().Warnings()[0].keyword, ""PREPRINT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[1].keyword, ""TRANSVERSE SHEAR STIFFNESS"") | EXPECT_EQ(with_no_ops.Value().Warnings()[2].keyword, ""RESTART"") | EXPECT_EQ(with_no_ops.Value().Warnings()[3].keyword, ""OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[4].keyword, ""NODE OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[5].keyword, ""ELEMENT OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[6].keyword, ""CONTACT OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[7].keyword, ""OUTPUT"") | EXPECT_EQ(warning.severity, fesa::Severity::kWarning) | EXPECT_EQ(with_no_ops.Value().Nodes().size(), plain.Value().Nodes().size()) | EXPECT_EQ(with_no_ops.Value().Elements().Size(), plain.Value().Elements().Size()) | EXPECT_EQ(with_no_ops.Value().Materials().Size(), plain.Value().Materials().Size()) | EXPECT_EQ(with_no_ops.Value().Sections().Size(), plain.Value().Sections().Size()) | EXPECT_EQ(with_no_ops.Value().NodeSets().size(), plain.Value().NodeSets().size()) | EXPECT_EQ(with_no_ops.Value().ElementSets().size(), plain.Value().ElementSets().size()) | EXPECT_EQ(with_no_ops.Value().Steps().Size(), plain.Value().Steps().Size()) | EXPECT_EQ(with_no_ops.Value().Steps()[0].BoundaryConditions().size(), plain.Value().Steps()[0].BoundaryConditions().size()) | EXPECT_EQ(with_no_ops.Value().Steps()[0].Loads().size(), plain.Value().Steps()[0].Loads().size())" -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsNonlinearStaticShellProcedureAndRawControls InpDomainMapping.MapsNonlinearStaticShellProcedureAndRawControls; assertion 12개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsNonlinearStaticShellProcedureAndRawControls 유지 원문 검사 body 및 assertion 동일. 2e73d6a87d1ffc3aec44a5df50e01816e4fdf726356ea95f337dbf60a1e4d902 2e73d6a87d1ffc3aec44a5df50e01816e4fdf726356ea95f337dbf60a1e4d902 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(step.ProcedureKind(), fesa::StaticProcedureKind::kNonlinearFullNewton) | EXPECT_TRUE(step.IsNonlinearStatic()) | EXPECT_DOUBLE_EQ(step.InitialIncrement(), 0.1) | EXPECT_DOUBLE_EQ(step.TimePeriod(), 1.0) | EXPECT_DOUBLE_EQ(step.MinimumIncrement(), 0.001) | EXPECT_DOUBLE_EQ(step.MaximumIncrement(), 0.1) | EXPECT_TRUE(domain.BeamElements().Empty()) | ASSERT_EQ(domain.ShellElements().Size(), 4U) | EXPECT_EQ(domain.ShellElements()[0U].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[1U].source_type, fesa::ShellSourceElementType::kS4r) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(step.ProcedureKind(), fesa::StaticProcedureKind::kNonlinearFullNewton) | EXPECT_TRUE(step.IsNonlinearStatic()) | EXPECT_DOUBLE_EQ(step.InitialIncrement(), 0.1) | EXPECT_DOUBLE_EQ(step.TimePeriod(), 1.0) | EXPECT_DOUBLE_EQ(step.MinimumIncrement(), 0.001) | EXPECT_DOUBLE_EQ(step.MaximumIncrement(), 0.1) | EXPECT_TRUE(domain.BeamElements().Empty()) | ASSERT_EQ(domain.ShellElements().Size(), 4U) | EXPECT_EQ(domain.ShellElements()[0U].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[1U].source_type, fesa::ShellSourceElementType::kS4r) -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.KeepsExplicitAndImplicitLinearStaticProcedures InpDomainMapping.KeepsExplicitAndImplicitLinearStaticProcedures; assertion 4개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.KeepsExplicitAndImplicitLinearStaticProcedures 유지 원문 검사 body 및 assertion 동일. 645611caad1634687946216c661df3ce027c77b5ea68d779fac476741753a12b 645611caad1634687946216c661df3ce027c77b5ea68d779fac476741753a12b ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Steps().Size(), 1U) | EXPECT_EQ(result.Value().Steps()[0U].ProcedureKind(), fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(result.Value().Steps()[0U].IsNonlinearStatic()) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Steps().Size(), 1U) | EXPECT_EQ(result.Value().Steps()[0U].ProcedureKind(), fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(result.Value().Steps()[0U].IsNonlinearStatic()) -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidNonlinearStaticControlValues InpDomainMapping.RejectsInvalidNonlinearStaticControlValues; assertion 3개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidNonlinearStaticControlValues 유지 원문 검사 body 및 assertion 동일. 4833f2bb3b01123f8994ec47b375d524c9247177bb8f2e8318fbde641ce2fd45 4833f2bb3b01123f8994ec47b375d524c9247177bb8f2e8318fbde641ce2fd45 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), ""invalid-nonlinear-static-data""), nullptr)" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), ""invalid-nonlinear-static-data""), nullptr)" -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsUnsupportedNonlinearProceduresAndMixedModels InpDomainMapping.RejectsUnsupportedNonlinearProceduresAndMixedModels; assertion 6개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsUnsupportedNonlinearProceduresAndMixedModels 유지 원문 검사 body 및 assertion 동일. ecf6c6c09f3477f2db467ff9106e3b19c1553237de80831fdd99cc22dca3e390 ecf6c6c09f3477f2db467ff9106e3b19c1553237de80831fdd99cc22dca3e390 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.first == ""dynamic"" ? ""invalid-dynamic-data"" : ""unsupported-analysis-procedure""), nullptr) | ASSERT_FALSE(mixed_result.HasValue()) | EXPECT_EQ(mixed_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(mixed_result.GetStatus(), ""unsupported-mixed-element-model""), nullptr)" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.first == ""dynamic"" ? ""invalid-dynamic-data"" : ""unsupported-analysis-procedure""), nullptr) | ASSERT_FALSE(mixed_result.HasValue()) | EXPECT_EQ(mixed_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(mixed_result.GetStatus(), ""unsupported-mixed-element-model""), nullptr)" -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.AcceptsOnlyNonlinearPreselectOutputNoOps InpDomainMapping.AcceptsOnlyNonlinearPreselectOutputNoOps; assertion 11개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.AcceptsOnlyNonlinearPreselectOutputNoOps 유지 원문 검사 body 및 assertion 동일. 0bb0af8b7d98b402f61fa466169286371cf638754a75cfdcd433f5066d8c1fee 0bb0af8b7d98b402f61fa466169286371cf638754a75cfdcd433f5066d8c1fee "ASSERT_TRUE(plain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().Nodes().size(), plain.Value().Nodes().size()) | EXPECT_EQ(result.Value().Steps().Size(), plain.Value().Steps().Size()) | EXPECT_EQ(result.Value().Steps()[0U].BoundaryConditions().size(), plain.Value().Steps()[0U].BoundaryConditions().size()) | EXPECT_EQ(result.Value().Steps()[0U].Loads().size(), plain.Value().Steps()[0U].Loads().size()) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(result.Value().Warnings()[0U].keyword, ""OUTPUT"") | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), ""invalid-keyword-parameter""), nullptr)" "ASSERT_TRUE(plain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().Nodes().size(), plain.Value().Nodes().size()) | EXPECT_EQ(result.Value().Steps().Size(), plain.Value().Steps().Size()) | EXPECT_EQ(result.Value().Steps()[0U].BoundaryConditions().size(), plain.Value().Steps()[0U].BoundaryConditions().size()) | EXPECT_EQ(result.Value().Steps()[0U].Loads().size(), plain.Value().Steps()[0U].Loads().size()) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(result.Value().Warnings()[0U].keyword, ""OUTPUT"") | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), ""invalid-keyword-parameter""), nullptr)" -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsS4AndS4rThroughOneMitc4Identity InpDomainMapping.MapsS4AndS4rThroughOneMitc4Identity; assertion 40개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsS4AndS4rThroughOneMitc4Identity 유지 원문 검사 body 및 assertion 동일. 73516cc1de335e84ad43308d44db8ab9748911b9df15b569a3db4a78b3694a71 73516cc1de335e84ad43308d44db8ab9748911b9df15b569a3db4a78b3694a71 "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(domain.BeamElements().Empty()) | ASSERT_EQ(domain.Elements().Size(), 4U) | EXPECT_EQ(domain.Elements()[0U].Kind(), fesa::ElementDefinitionKind::kMitc4Shell) | EXPECT_EQ(domain.Elements()[0U].SourceElementType(), ""S4"") | EXPECT_EQ(domain.Elements()[1U].SourceElementType(), ""S4R"") | EXPECT_EQ(&domain.Elements()[0U], &domain.ShellElements()[0U]) | ASSERT_EQ(domain.ShellElements().Size(), 4U) | EXPECT_EQ(domain.ShellElements()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label_text, ""0010"") | EXPECT_EQ(domain.ShellElements()[0].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[0].node_indices, (std::array{0U, 1U, 2U, 3U})) | EXPECT_EQ(domain.ShellElements()[0].section_index, 0U) | EXPECT_EQ(domain.ShellElements()[0].material_index, 0U) | EXPECT_EQ(domain.ShellElements()[1].source_id.instance_name, ""First"") | EXPECT_EQ(domain.ShellElements()[1].source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_EQ(domain.ShellElements()[1].node_indices, (std::array{1U, 4U, 5U, 2U})) | EXPECT_EQ(domain.ShellElements()[1].section_index, 1U) | EXPECT_EQ(domain.ShellElements()[1].material_index, 1U) | EXPECT_EQ(domain.ShellElements()[2].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.ShellElements()[2].node_indices, (std::array{6U, 7U, 8U, 9U})) | EXPECT_EQ(domain.ShellElements()[3].source_id.instance_name, ""Second"") | EXPECT_EQ(fesa::kMitc4InternalFormulation, std::string_view{""FESA-MITC4""}) | ASSERT_EQ(domain.ShellSections().Size(), 2U) | EXPECT_EQ(domain.ShellSections()[0].name, ""ShellS4"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[0].thickness, 0.1) | EXPECT_EQ(domain.ShellSections()[0].material_index, 0U) | EXPECT_EQ(domain.ShellSections()[1].name, ""ShellS4R"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[1].thickness, 0.2) | EXPECT_EQ(domain.ShellSections()[1].material_index, 1U) | ASSERT_EQ(domain.ShellNodeInitialFrames().size(), domain.Nodes().size()) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].node_index, 0U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].director, (std::array{0.0, 0.0, 1.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_a, (std::array{1.0, 0.0, 0.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_b, (std::array{0.0, 1.0, 0.0})) | ASSERT_EQ(domain.Steps().Size(), 1U) | ASSERT_EQ(domain.Steps()[0].PrescribedDisplacements().Size(), 6U) | EXPECT_EQ(domain.Steps()[0].PrescribedDisplacements()[5U].Component(), fesa::DofComponent::kUrz) | ASSERT_EQ(domain.Steps()[0].ConcentratedLoads().Size(), 1U) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[5U], 1.0)" "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(domain.BeamElements().Empty()) | ASSERT_EQ(domain.Elements().Size(), 4U) | EXPECT_EQ(domain.Elements()[0U].Kind(), fesa::ElementDefinitionKind::kMitc4Shell) | EXPECT_EQ(domain.Elements()[0U].SourceElementType(), ""S4"") | EXPECT_EQ(domain.Elements()[1U].SourceElementType(), ""S4R"") | EXPECT_EQ(&domain.Elements()[0U], &domain.ShellElements()[0U]) | ASSERT_EQ(domain.ShellElements().Size(), 4U) | EXPECT_EQ(domain.ShellElements()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label_text, ""0010"") | EXPECT_EQ(domain.ShellElements()[0].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[0].node_indices, (std::array{0U, 1U, 2U, 3U})) | EXPECT_EQ(domain.ShellElements()[0].section_index, 0U) | EXPECT_EQ(domain.ShellElements()[0].material_index, 0U) | EXPECT_EQ(domain.ShellElements()[1].source_id.instance_name, ""First"") | EXPECT_EQ(domain.ShellElements()[1].source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_EQ(domain.ShellElements()[1].node_indices, (std::array{1U, 4U, 5U, 2U})) | EXPECT_EQ(domain.ShellElements()[1].section_index, 1U) | EXPECT_EQ(domain.ShellElements()[1].material_index, 1U) | EXPECT_EQ(domain.ShellElements()[2].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.ShellElements()[2].node_indices, (std::array{6U, 7U, 8U, 9U})) | EXPECT_EQ(domain.ShellElements()[3].source_id.instance_name, ""Second"") | EXPECT_EQ(fesa::kMitc4InternalFormulation, std::string_view{""FESA-MITC4""}) | ASSERT_EQ(domain.ShellSections().Size(), 2U) | EXPECT_EQ(domain.ShellSections()[0].name, ""ShellS4"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[0].thickness, 0.1) | EXPECT_EQ(domain.ShellSections()[0].material_index, 0U) | EXPECT_EQ(domain.ShellSections()[1].name, ""ShellS4R"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[1].thickness, 0.2) | EXPECT_EQ(domain.ShellSections()[1].material_index, 1U) | ASSERT_EQ(domain.ShellNodeInitialFrames().size(), domain.Nodes().size()) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].node_index, 0U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].director, (std::array{0.0, 0.0, 1.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_a, (std::array{1.0, 0.0, 0.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_b, (std::array{0.0, 1.0, 0.0})) | ASSERT_EQ(domain.Steps().Size(), 1U) | ASSERT_EQ(domain.Steps()[0].PrescribedDisplacements().Size(), 6U) | EXPECT_EQ(domain.Steps()[0].PrescribedDisplacements()[5U].Component(), fesa::DofComponent::kUrz) | ASSERT_EQ(domain.Steps()[0].ConcentratedLoads().Size(), 1U) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[5U], 1.0)" -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidShellAssignmentsAndProperties InpDomainMapping.RejectsInvalidShellAssignmentsAndProperties; assertion 3개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidShellAssignmentsAndProperties 유지 원문 검사 body 및 assertion 동일. 785c82079cd94789aa85628e9ec1e3529ac1ca34099e3eb76d1e740bc3de5cb8 785c82079cd94789aa85628e9ec1e3529ac1ca34099e3eb76d1e740bc3de5cb8 ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), test_case.category) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr) ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), test_case.category) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr) -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidShellConnectivityOptionsAndMixedModels InpDomainMapping.RejectsInvalidShellConnectivityOptionsAndMixedModels; assertion 3개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidShellConnectivityOptionsAndMixedModels 유지 원문 검사 body 및 assertion 동일. 1156d85feb44cb57821111e3498517c200f57a2a20825d5ee20c89de67879b15 1156d85feb44cb57821111e3498517c200f57a2a20825d5ee20c89de67879b15 ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr) ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr) -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.PreservesProcedureLoadAndOutputRequestBoundariesForShells InpDomainMapping.PreservesProcedureLoadAndOutputRequestBoundariesForShells; assertion 8개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.PreservesProcedureLoadAndOutputRequestBoundariesForShells 유지 원문 검사 body 및 assertion 동일. 7dad7b84e339df37b9157bcf3dbb1d1899586060ffd077353911cde6901f8aae 7dad7b84e339df37b9157bcf3dbb1d1899586060ffd077353911cde6901f8aae "ASSERT_TRUE(valid.HasValue()) | ASSERT_EQ(valid.Value().Warnings().size(), 3U) | EXPECT_EQ(valid.Value().Warnings()[0].keyword, ""OUTPUT"") | EXPECT_EQ(valid.Value().Warnings()[1].keyword, ""NODE OUTPUT"") | EXPECT_EQ(valid.Value().Warnings()[2].keyword, ""ELEMENT OUTPUT"") | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr)" "ASSERT_TRUE(valid.HasValue()) | ASSERT_EQ(valid.Value().Warnings().size(), 3U) | EXPECT_EQ(valid.Value().Warnings()[0].keyword, ""OUTPUT"") | EXPECT_EQ(valid.Value().Warnings()[1].keyword, ""NODE OUTPUT"") | EXPECT_EQ(valid.Value().Warnings()[2].keyword, ""ELEMENT OUTPUT"") | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr)" -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsUnsupportedAndInvalidPortfolio InpDomainMapping.RejectsUnsupportedAndInvalidPortfolio; assertion 14개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsUnsupportedAndInvalidPortfolio 유지 원문 검사 body 및 assertion 동일. 33dae7daee6b5f3283f0dc0c01c58157947c30d91394f6804227b17e827a84ad 33dae7daee6b5f3283f0dc0c01c58157947c30d91394f6804227b17e827a84ad "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), test_case.category) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->severity, fesa::Severity::kError) | EXPECT_FALSE(diagnostic->location.file.empty()) | EXPECT_GT(diagnostic->location.line, 0U) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->severity, fesa::Severity::kError) | EXPECT_EQ(diagnostic->keyword, test_case.expected_keyword) | EXPECT_EQ(diagnostic->entity_identity, ""1"") | EXPECT_EQ(diagnostic->location.line, test_case.expected_line) | EXPECT_EQ(diagnostic->location.file.filename().string(), ""fesa-domain-mapper-same-token-"" + test_case.name + "".inp"")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), test_case.category) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->severity, fesa::Severity::kError) | EXPECT_FALSE(diagnostic->location.file.empty()) | EXPECT_GT(diagnostic->location.line, 0U) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->severity, fesa::Severity::kError) | EXPECT_EQ(diagnostic->keyword, test_case.expected_keyword) | EXPECT_EQ(diagnostic->entity_identity, ""1"") | EXPECT_EQ(diagnostic->location.line, test_case.expected_line) | EXPECT_EQ(diagnostic->location.file.filename().string(), ""fesa-domain-mapper-same-token-"" + test_case.name + "".inp"")" -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsDloadWithoutDistributedLoadObject InpDomainMapping.RejectsDloadWithoutDistributedLoadObject; assertion 4개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsDloadWithoutDistributedLoadObject 유지 원문 검사 body 및 assertion 동일. e3e84f2ef580a2306947632bf01bb5fbe250460b5c86095164b54fb00f2ebea9 e3e84f2ef580a2306947632bf01bb5fbe250460b5c86095164b54fb00f2ebea9 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->keyword, ""DLOAD"")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->keyword, ""DLOAD"")" -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp support@1-253 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if, MapText, ReadExactBytes, RepositoryRoot, FindDiagnostic, find_if, ReplaceOnce, MinimalDeck, ShellDeck, NonlinearShellDeck, SupportedInventoryDeck tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d4a3cb30beb5a5732a40fb39fe5981aa1156d1ea97812454c30bf93fbbff733e 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp support@578-579 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a17d35bc26ea1a9c371b82c2b0318318ea0f138663e240361e4f36b6b36e28a3 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp support@601-602 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d3465cabe35b62c482d5bfbc700278989749bc95ced8528c179fabf2e46b1e9d 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp support@618-619 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2dda137dd997f072d5e1721f3fef902ee6eba433d87b0cc65c0ec3bcc92449aa 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp support@643-644 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9d6708ab0855db443bd63e7f30d47944821695395efba5b5687f458ad88232ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp support@680-681 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 48cc0be2d1c45cc611d13733472689fca4e37d761ae0374cc74fa3e4f1e83bac 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp support@717-719 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5fd581bec64057435da242b600880b7876a63ab7f90c83629f761adb523253b9 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp support@781-782 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f887854314ac3472576dbefddf88818cb395844ceb68f8e943b64a304cae6a92 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp support@824-825 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fad76b68876263d3277eb79c04e1ae0ce1719f94a92fdd3b1765729c0e1790b0 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/domain_mapper_test.cpp support@863-864 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3b8e0519340ad1aa555a27d246833b7379abb093fe25d9f4bc115c04a15f18f1 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/domain_mapping_components_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/io/abaqus/domain_mapping_components_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a515704fe97d521d11a2b7c95e41e0f7ec6557f3ee7e4dd5017a8c9757358f9a a515704fe97d521d11a2b7c95e41e0f7ec6557f3ee7e4dd5017a8c9757358f9a 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001BuildsStableCandidatesBeforeAtomicDomainCommit DomainMappingComponents.CModule001BuildsStableCandidatesBeforeAtomicDomainCommit; assertion 32개 tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001BuildsStableCandidatesBeforeAtomicDomainCommit 유지 원문 검사 body 및 assertion 동일. 5d6ea9aacc764e212a94ecc20d15d795679922368c9c6404c6375192ba222df7 5d6ea9aacc764e212a94ecc20d15d795679922368c9c6404c6375192ba222df7 "ASSERT_TRUE(topology_mapper.Map(context).IsOk()) | EXPECT_EQ(summary.part_count, 1U) | EXPECT_EQ(summary.node_count, 2U) | EXPECT_EQ(summary.element_count, 1U) | EXPECT_EQ(summary.instance_count, 1U) | EXPECT_EQ(summary.node_set_count, 3U) | EXPECT_EQ(summary.element_set_count, 1U) | EXPECT_EQ(summary.material_count, 1U) | EXPECT_EQ(summary.beam_section_count, 1U) | EXPECT_EQ(summary.shell_section_count, 0U) | EXPECT_EQ(summary.model_boundary_count, 1U) | EXPECT_EQ(summary.step_boundary_count, 1U) | EXPECT_EQ(summary.step_load_count, 1U) | EXPECT_TRUE(summary.has_static_step) | ASSERT_TRUE(material_property_mapper.Map(context).IsOk()) | ASSERT_TRUE(topology_mapper.Finalize(context).IsOk()) | ASSERT_TRUE(step_definition_mapper.Map(context).IsOk()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Elements().Size(), 1U) | EXPECT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Properties().Size(), 1U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0].ProcedureKind(), StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(domain.Steps()[0].IsNonlinearStatic()) | EXPECT_EQ(domain.Steps()[0].BoundaryConditions().size(), 7U) | EXPECT_EQ(domain.Steps()[0].Loads().size(), 1U) | ASSERT_EQ(domain.Warnings().size(), 3U) | EXPECT_EQ(domain.Warnings()[0].keyword, ""PREPRINT"") | EXPECT_EQ( domain.Warnings()[0].message, ""The allowlisted Abaqus keyword is ignored without semantic effect."") | EXPECT_EQ(domain.Warnings()[1].keyword, ""OUTPUT"") | EXPECT_EQ(domain.Warnings()[2].keyword, ""NODE OUTPUT"")" "ASSERT_TRUE(topology_mapper.Map(context).IsOk()) | EXPECT_EQ(summary.part_count, 1U) | EXPECT_EQ(summary.node_count, 2U) | EXPECT_EQ(summary.element_count, 1U) | EXPECT_EQ(summary.instance_count, 1U) | EXPECT_EQ(summary.node_set_count, 3U) | EXPECT_EQ(summary.element_set_count, 1U) | EXPECT_EQ(summary.material_count, 1U) | EXPECT_EQ(summary.beam_section_count, 1U) | EXPECT_EQ(summary.shell_section_count, 0U) | EXPECT_EQ(summary.model_boundary_count, 1U) | EXPECT_EQ(summary.step_boundary_count, 1U) | EXPECT_EQ(summary.step_load_count, 1U) | EXPECT_TRUE(summary.has_static_step) | ASSERT_TRUE(material_property_mapper.Map(context).IsOk()) | ASSERT_TRUE(topology_mapper.Finalize(context).IsOk()) | ASSERT_TRUE(step_definition_mapper.Map(context).IsOk()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Elements().Size(), 1U) | EXPECT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Properties().Size(), 1U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0].ProcedureKind(), StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(domain.Steps()[0].IsNonlinearStatic()) | EXPECT_EQ(domain.Steps()[0].BoundaryConditions().size(), 7U) | EXPECT_EQ(domain.Steps()[0].Loads().size(), 1U) | ASSERT_EQ(domain.Warnings().size(), 3U) | EXPECT_EQ(domain.Warnings()[0].keyword, ""PREPRINT"") | EXPECT_EQ( domain.Warnings()[0].message, ""The allowlisted Abaqus keyword is ignored without semantic effect."") | EXPECT_EQ(domain.Warnings()[1].keyword, ""OUTPUT"") | EXPECT_EQ(domain.Warnings()[2].keyword, ""NODE OUTPUT"")" -Refactor tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001PreservesExactFirstFailureThroughFacade DomainMappingComponents.CModule001PreservesExactFirstFailureThroughFacade; assertion 12개 tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001PreservesExactFirstFailureThroughFacade 유지 원문 검사 body 및 assertion 동일. 77d7cab182b4b08c392cd8698050105755faa3d1fbfef4c56fdd4d02bca34624 77d7cab182b4b08c392cd8698050105755faa3d1fbfef4c56fdd4d02bca34624 "ASSERT_FALSE(component_status.IsOk()) | ASSERT_EQ(component_status.Diagnostics().size(), 1U) | EXPECT_EQ(component_status.Category(), FailureCategory::kInput) | EXPECT_EQ(component_diagnostic.severity, Severity::kError) | EXPECT_EQ(component_diagnostic.code, ""unsupported-keyword"") | EXPECT_EQ(component_diagnostic.location.line, 1U) | EXPECT_EQ(component_diagnostic.keyword, ""NODE"") | EXPECT_TRUE(component_diagnostic.entity_identity.empty()) | EXPECT_EQ(component_diagnostic.message, ""The keyword is outside the approved Abaqus subset."") | ASSERT_FALSE(facade_result.HasValue()) | ASSERT_EQ(facade_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(facade_result.GetStatus().Category(), component_status.Category())" "ASSERT_FALSE(component_status.IsOk()) | ASSERT_EQ(component_status.Diagnostics().size(), 1U) | EXPECT_EQ(component_status.Category(), FailureCategory::kInput) | EXPECT_EQ(component_diagnostic.severity, Severity::kError) | EXPECT_EQ(component_diagnostic.code, ""unsupported-keyword"") | EXPECT_EQ(component_diagnostic.location.line, 1U) | EXPECT_EQ(component_diagnostic.keyword, ""NODE"") | EXPECT_TRUE(component_diagnostic.entity_identity.empty()) | EXPECT_EQ(component_diagnostic.message, ""The keyword is outside the approved Abaqus subset."") | ASSERT_FALSE(facade_result.HasValue()) | ASSERT_EQ(facade_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(facade_result.GetStatus().Category(), component_status.Category())" -Refactor tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001RejectsInvalidMaterialAtOwningComponent DomainMappingComponents.CModule001RejectsInvalidMaterialAtOwningComponent; assertion 9개 tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001RejectsInvalidMaterialAtOwningComponent 유지 원문 검사 body 및 assertion 동일. ace412f6dba5699c19fff85961b58458545b93fc1e7be9ec005053d32d7acf22 ace412f6dba5699c19fff85961b58458545b93fc1e7be9ec005053d32d7acf22 "ASSERT_TRUE(TopologyMapper{}.Map(context).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Category(), FailureCategory::kModel) | EXPECT_EQ(diagnostic.code, ""invalid-beam-property"") | EXPECT_EQ(diagnostic.location.line, 26U) | EXPECT_EQ(diagnostic.keyword, ""ELASTIC"") | EXPECT_EQ(diagnostic.entity_identity, ""Steel"") | EXPECT_EQ(diagnostic.message, ""E and the derived G=E/(2*(1+nu)) must be positive."")" "ASSERT_TRUE(TopologyMapper{}.Map(context).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Category(), FailureCategory::kModel) | EXPECT_EQ(diagnostic.code, ""invalid-beam-property"") | EXPECT_EQ(diagnostic.location.line, 26U) | EXPECT_EQ(diagnostic.keyword, ""ELASTIC"") | EXPECT_EQ(diagnostic.entity_identity, ""Steel"") | EXPECT_EQ(diagnostic.message, ""E and the derived G=E/(2*(1+nu)) must be positive."")" -Refactor tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001RejectsUnresolvedLoadAtOwningComponent DomainMappingComponents.CModule001RejectsUnresolvedLoadAtOwningComponent; assertion 11개 tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001RejectsUnresolvedLoadAtOwningComponent 유지 원문 검사 body 및 assertion 동일. 22839ffd4c1c68b4f200226079345550d9e13e7c212d27881edf14d3bea5ae3a 22839ffd4c1c68b4f200226079345550d9e13e7c212d27881edf14d3bea5ae3a "ASSERT_TRUE(topology_mapper.Map(context).IsOk()) | ASSERT_TRUE(MaterialPropertyMapper{}.Map(context).IsOk()) | ASSERT_TRUE(topology_mapper.Finalize(context).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Category(), FailureCategory::kInput) | EXPECT_EQ(diagnostic.code, ""unresolved-reference"") | EXPECT_EQ(diagnostic.location.line, 35U) | EXPECT_EQ(diagnostic.keyword, ""CLOAD"") | EXPECT_EQ(diagnostic.entity_identity, ""Missing"") | EXPECT_EQ(diagnostic.message, ""The boundary or load target must resolve unambiguously to one "" ""node or one node set."")" "ASSERT_TRUE(topology_mapper.Map(context).IsOk()) | ASSERT_TRUE(MaterialPropertyMapper{}.Map(context).IsOk()) | ASSERT_TRUE(topology_mapper.Finalize(context).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Category(), FailureCategory::kInput) | EXPECT_EQ(diagnostic.code, ""unresolved-reference"") | EXPECT_EQ(diagnostic.location.line, 35U) | EXPECT_EQ(diagnostic.keyword, ""CLOAD"") | EXPECT_EQ(diagnostic.entity_identity, ""Missing"") | EXPECT_EQ(diagnostic.message, ""The boundary or load target must resolve unambiguously to one "" ""node or one node set."")" -Refactor tests/unit/io/abaqus/domain_mapping_components_test.cpp support@1-116 helper/oracle/fixture/include/static assertion 구간: fesa, TemporaryComponentInput, if, ParseComponentInput, ValidComponentDeck, ReplaceOnce, ExpectSameDiagnostic tests/unit/io/abaqus/domain_mapping_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eafbafda80ba9658302f8c6c61d966863cd6dcaf43f376b99f8eafae256f165b 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/domain_mapping_components_test.cpp support@240-242 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/io/abaqus/domain_mapping_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8aeadfd7d5a45c48cf01367ce365d0afada064b00686836fc0fc603596c9df16 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/eigen_domain_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/io/abaqus/eigen_domain_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 092b4127f43e6ba27485ad4043ba8b2d80b310299cdf66858fbc239342faa746 092b4127f43e6ba27485ad4043ba8b2d80b310299cdf66858fbc239342faa746 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.PreservesFrequencyDensityAndSourceStepIdentity EigenDomainMapping.PreservesFrequencyDensityAndSourceStepIdentity; assertion 16개 tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.PreservesFrequencyDensityAndSourceStepIdentity 유지 원문 검사 body 및 assertion 동일. 0e1fbd3de3417171d6a1a291aeafd0b174bc5cd44701267198cf8826ca5bf074 0e1fbd3de3417171d6a1a291aeafd0b174bc5cd44701267198cf8826ca5bf074 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Densities().size(), 1U) | EXPECT_EQ(domain.Densities()[0].material_index, fesa::EntityIndex{0U}) | EXPECT_DOUBLE_EQ(domain.Densities()[0].rho, 2700.0) | ASSERT_NE(domain.Frequency(), nullptr) | EXPECT_EQ(domain.Frequency()->source_step_name_raw, ""Step-2"") | EXPECT_EQ(domain.Frequency()->source_step_name_canonical, ""STEP-2"") | EXPECT_EQ(domain.Frequency()->requested_mode_count, 10) | EXPECT_TRUE(domain.Frequency()->perturbation_explicit) | EXPECT_TRUE(domain.Frequency()->sim_explicit) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_TRUE(domain.Steps()[0U].IsFrequency()) | EXPECT_EQ(domain.Steps()[0U].Frequency(), domain.Frequency()) | EXPECT_EQ(domain.Steps()[0U].Name(), ""Step-2"") | ASSERT_EQ(domain.Steps()[0U].BoundaryConditions().size(), 6U) | EXPECT_TRUE(domain.Steps()[0U].Loads().empty())" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Densities().size(), 1U) | EXPECT_EQ(domain.Densities()[0].material_index, fesa::EntityIndex{0U}) | EXPECT_DOUBLE_EQ(domain.Densities()[0].rho, 2700.0) | ASSERT_NE(domain.Frequency(), nullptr) | EXPECT_EQ(domain.Frequency()->source_step_name_raw, ""Step-2"") | EXPECT_EQ(domain.Frequency()->source_step_name_canonical, ""STEP-2"") | EXPECT_EQ(domain.Frequency()->requested_mode_count, 10) | EXPECT_TRUE(domain.Frequency()->perturbation_explicit) | EXPECT_TRUE(domain.Frequency()->sim_explicit) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_TRUE(domain.Steps()[0U].IsFrequency()) | EXPECT_EQ(domain.Steps()[0U].Frequency(), domain.Frequency()) | EXPECT_EQ(domain.Steps()[0U].Name(), ""Step-2"") | ASSERT_EQ(domain.Steps()[0U].BoundaryConditions().size(), 6U) | EXPECT_TRUE(domain.Steps()[0U].Loads().empty())" -Refactor tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsInvalidDensityAndFrequencySlots EigenDomainMapping.RejectsInvalidDensityAndFrequencySlots; assertion 4개 tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsInvalidDensityAndFrequencySlots 유지 원문 검사 body 및 assertion 동일. 92b68d2ac096a03a02bfacd600af2432bfd869eedeeeeb2f06aa6d4d156e4797 92b68d2ac096a03a02bfacd600af2432bfd869eedeeeeb2f06aa6d4d156e4797 "ASSERT_FALSE(density.HasValue()) | EXPECT_NE(FindDiagnostic(density.GetStatus(), ""invalid-density-data""), nullptr) | ASSERT_FALSE(slots.HasValue()) | EXPECT_NE(FindDiagnostic(slots.GetStatus(), ""invalid-frequency-data""), nullptr)" "ASSERT_FALSE(density.HasValue()) | EXPECT_NE(FindDiagnostic(density.GetStatus(), ""invalid-density-data""), nullptr) | ASSERT_FALSE(slots.HasValue()) | EXPECT_NE(FindDiagnostic(slots.GetStatus(), ""invalid-frequency-data""), nullptr)" -Refactor tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsMissingActiveDensityAndNonzeroBoundary EigenDomainMapping.RejectsMissingActiveDensityAndNonzeroBoundary; assertion 6개 tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsMissingActiveDensityAndNonzeroBoundary 유지 원문 검사 body 및 assertion 동일. 0b9cfbdd813264e533fb5963dcf276adbd874f0777af515e8fb4aac85015b873 0b9cfbdd813264e533fb5963dcf276adbd874f0777af515e8fb4aac85015b873 "ASSERT_NE(density_location, std::string::npos) | ASSERT_FALSE(missing.HasValue()) | EXPECT_NE(FindDiagnostic(missing.GetStatus(), ""missing-material-density""), nullptr) | ASSERT_NE(location, std::string::npos) | ASSERT_FALSE(boundary.HasValue()) | EXPECT_NE(FindDiagnostic(boundary.GetStatus(), ""unsupported-eigen-boundary""), nullptr)" "ASSERT_NE(density_location, std::string::npos) | ASSERT_FALSE(missing.HasValue()) | EXPECT_NE(FindDiagnostic(missing.GetStatus(), ""missing-material-density""), nullptr) | ASSERT_NE(location, std::string::npos) | ASSERT_FALSE(boundary.HasValue()) | EXPECT_NE(FindDiagnostic(boundary.GetStatus(), ""unsupported-eigen-boundary""), nullptr)" -Refactor tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsMixedProceduresInvalidOutputAndSurface EigenDomainMapping.RejectsMixedProceduresInvalidOutputAndSurface; assertion 5개 tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsMixedProceduresInvalidOutputAndSurface 유지 원문 검사 body 및 assertion 동일. 435331124510d6cb20b7a86e468786ff0faa434d408e82d0534542553d875f92 435331124510d6cb20b7a86e468786ff0faa434d408e82d0534542553d875f92 "ASSERT_FALSE(mixed_result.HasValue()) | EXPECT_NE(FindDiagnostic(mixed_result.GetStatus(), ""unsupported-analysis-procedure""), nullptr) | ASSERT_FALSE(wrong_output.HasValue()) | EXPECT_NE(FindDiagnostic(wrong_output.GetStatus(), ""unsupported-keyword""), nullptr) | ASSERT_FALSE(surface_result.HasValue())" "ASSERT_FALSE(mixed_result.HasValue()) | EXPECT_NE(FindDiagnostic(mixed_result.GetStatus(), ""unsupported-analysis-procedure""), nullptr) | ASSERT_FALSE(wrong_output.HasValue()) | EXPECT_NE(FindDiagnostic(wrong_output.GetStatus(), ""unsupported-keyword""), nullptr) | ASSERT_FALSE(surface_result.HasValue())" -Refactor tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsInvalidPreprintAndAcceptsStrictNoOp EigenDomainMapping.RejectsInvalidPreprintAndAcceptsStrictNoOp; assertion 7개 tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsInvalidPreprintAndAcceptsStrictNoOp 유지 원문 검사 body 및 assertion 동일. 8c7a14159391fe657f7760127eb8ab1901d5a25a41c138256a5d83cce9c427ee 8c7a14159391fe657f7760127eb8ab1901d5a25a41c138256a5d83cce9c427ee "ASSERT_TRUE(accepted.HasValue()) | ASSERT_NE(warning, accepted.Value().Warnings().end()) | EXPECT_EQ(warning->message, ""mandatory-eigen-output-unchanged"") | ASSERT_FALSE(rejected.HasValue()) | EXPECT_NE(FindDiagnostic(rejected.GetStatus(), ""unsupported-keyword""), nullptr) | ASSERT_FALSE(missing_parameters.HasValue()) | EXPECT_NE( FindDiagnostic(missing_parameters.GetStatus(), ""unsupported-keyword""), nullptr)" "ASSERT_TRUE(accepted.HasValue()) | ASSERT_NE(warning, accepted.Value().Warnings().end()) | EXPECT_EQ(warning->message, ""mandatory-eigen-output-unchanged"") | ASSERT_FALSE(rejected.HasValue()) | EXPECT_NE(FindDiagnostic(rejected.GetStatus(), ""unsupported-keyword""), nullptr) | ASSERT_FALSE(missing_parameters.HasValue()) | EXPECT_NE( FindDiagnostic(missing_parameters.GetStatus(), ""unsupported-keyword""), nullptr)" -Refactor tests/unit/io/abaqus/eigen_domain_test.cpp support@1-98 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if, MapText, EigenDeck, FindDiagnostic, for tests/unit/io/abaqus/eigen_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6c0ec5ff9d6242012df3aba6a1f123cd5503d7d8e747d530582db2a7f767719c 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/eigen_domain_test.cpp support@206-207 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/eigen_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 20개 tests/unit/io/abaqus/hex8_semantics_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0804a9ef5cb15fdee5c06d4f3ba05b626ebcae6952360bb769271d457bc9530c 0804a9ef5cb15fdee5c06d4f3ba05b626ebcae6952360bb769271d457bc9530c 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.MapsEightSourceNodesAndExactlyThreePhysicalDofs Hex8Semantics.MapsEightSourceNodesAndExactlyThreePhysicalDofs; assertion 9개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.MapsEightSourceNodesAndExactlyThreePhysicalDofs 유지 원문 검사 body 및 assertion 동일. c75e22a597ed7445ed43c51b03fb254b6373984026f78f773a97d32687cb7272 c75e22a597ed7445ed43c51b03fb254b6373984026f78f773a97d32687cb7272 "ASSERT_TRUE(domain.HasValue()) | ASSERT_EQ(domain.Value().Elements().Size(), 1U) | EXPECT_EQ(domain.Value().Elements()[0].SourceElementType(), ""C3D8"") | EXPECT_EQ(domain.Value().Elements()[0].SourceId().source_label, 99) | EXPECT_EQ(domain.Value().Elements()[0].NodeIndices().size(), 8U) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().ConstrainedDofCount(), 3U)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_EQ(domain.Value().Elements().Size(), 1U) | EXPECT_EQ(domain.Value().Elements()[0].SourceElementType(), ""C3D8"") | EXPECT_EQ(domain.Value().Elements()[0].SourceId().source_label, 99) | EXPECT_EQ(domain.Value().Elements()[0].NodeIndices().size(), 8U) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().ConstrainedDofCount(), 3U)" -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.InactiveZeroRotationsWarnAndDoNotCreateConstraints Hex8Semantics.InactiveZeroRotationsWarnAndDoNotCreateConstraints; assertion 6개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.InactiveZeroRotationsWarnAndDoNotCreateConstraints 유지 원문 검사 body 및 assertion 동일. 4e9c9d68352626fe0b450e289080ee34f84a54c33b71e1520c4b57a389fe61cb 4e9c9d68352626fe0b450e289080ee34f84a54c33b71e1520c4b57a389fe61cb "ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().Steps()[0].BoundaryConditions().size(), 3U) | ASSERT_FALSE(domain.Value().Warnings().empty()) | EXPECT_EQ(domain.Value().Warnings().back().keyword, ""BOUNDARY"") | EXPECT_EQ(domain.Value().Warnings().back().entity_identity, ""10"") | EXPECT_GT(domain.Value().Warnings().back().location.line, 0U)" "ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().Steps()[0].BoundaryConditions().size(), 3U) | ASSERT_FALSE(domain.Value().Warnings().empty()) | EXPECT_EQ(domain.Value().Warnings().back().keyword, ""BOUNDARY"") | EXPECT_EQ(domain.Value().Warnings().back().entity_identity, ""10"") | EXPECT_GT(domain.Value().Warnings().back().location.line, 0U)" -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsNonzeroRotationsAndAllRotationalLoads Hex8Semantics.RejectsNonzeroRotationsAndAllRotationalLoads; assertion 2개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsNonzeroRotationsAndAllRotationalLoads 유지 원문 검사 body 및 assertion 동일. a6d35c2ca679aa7f1b383ead3d9f703d1fa2c74effec04ea46aa3d85e197d622 a6d35c2ca679aa7f1b383ead3d9f703d1fa2c74effec04ea46aa3d85e197d622 "EXPECT_FALSE(Map(Deck(""*Static\n1,1,1,1\n"", ""10,4,4,1\n"")).HasValue()) | EXPECT_FALSE( Map(Deck(""*Static\n1,1,1,1\n"", ""10,1,3\n*Cload\n20,4,0\n"")).HasValue())" "EXPECT_FALSE(Map(Deck(""*Static\n1,1,1,1\n"", ""10,4,4,1\n"")).HasValue()) | EXPECT_FALSE( Map(Deck(""*Static\n1,1,1,1\n"", ""10,1,3\n*Cload\n20,4,0\n"")).HasValue())" -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RotationNoOpPreservesPhysicalMapAndLoads Hex8Semantics.RotationNoOpPreservesPhysicalMapAndLoads; assertion 17개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RotationNoOpPreservesPhysicalMapAndLoads 유지 원문 검사 body 및 assertion 동일. 3df0931a844f2efcc21ddebf1505036c8f9a55af7163f978f456efad1136cbdc 3df0931a844f2efcc21ddebf1505036c8f9a55af7163f978f456efad1136cbdc ASSERT_TRUE(physical.HasValue()) | ASSERT_TRUE(extra.HasValue()) | ASSERT_TRUE(pd.HasValue()) | ASSERT_TRUE(ed.HasValue()) | EXPECT_EQ(pd.Value().FreeDofs(), ed.Value().FreeDofs()) | EXPECT_EQ(pd.Value().ConstrainedDofs(), ed.Value().ConstrainedDofs()) | EXPECT_EQ(pd.Value().GetSparsePattern().column_indices, ed.Value().GetSparsePattern().column_indices) | EXPECT_EQ(ed.Value().Profile(), fesa::DofProfile::kSolidStructural) | EXPECT_EQ(ed.Value().ComponentsPerNode(), 3U) | EXPECT_THROW(ed.Value().FullDof(0, fesa::DofComponent::kUrx), std::out_of_range) | ASSERT_TRUE(scatter.HasValue()) | EXPECT_EQ(scatter.Value().size(), 24U) | EXPECT_EQ(scatter.Value().front(), 0U) | EXPECT_EQ(scatter.Value().back(), 23U) | ASSERT_TRUE(pf.HasValue()) | ASSERT_TRUE(ef.HasValue()) | EXPECT_EQ(pf.Value()[i], ef.Value()[i]) ASSERT_TRUE(physical.HasValue()) | ASSERT_TRUE(extra.HasValue()) | ASSERT_TRUE(pd.HasValue()) | ASSERT_TRUE(ed.HasValue()) | EXPECT_EQ(pd.Value().FreeDofs(), ed.Value().FreeDofs()) | EXPECT_EQ(pd.Value().ConstrainedDofs(), ed.Value().ConstrainedDofs()) | EXPECT_EQ(pd.Value().GetSparsePattern().column_indices, ed.Value().GetSparsePattern().column_indices) | EXPECT_EQ(ed.Value().Profile(), fesa::DofProfile::kSolidStructural) | EXPECT_EQ(ed.Value().ComponentsPerNode(), 3U) | EXPECT_THROW(ed.Value().FullDof(0, fesa::DofComponent::kUrx), std::out_of_range) | ASSERT_TRUE(scatter.HasValue()) | EXPECT_EQ(scatter.Value().size(), 24U) | EXPECT_EQ(scatter.Value().front(), 0U) | EXPECT_EQ(scatter.Value().back(), 23U) | ASSERT_TRUE(pf.HasValue()) | ASSERT_TRUE(ef.HasValue()) | EXPECT_EQ(pf.Value()[i], ef.Value()[i]) -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsTinyRotationBadTargetsOptionsAndDofRanges Hex8Semantics.RejectsTinyRotationBadTargetsOptionsAndDofRanges; assertion 7개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsTinyRotationBadTargetsOptionsAndDofRanges 유지 원문 검사 body 및 assertion 동일. fbaffb1fa7018c85cecd369894293b24dc2a62bf82f918cbd99dbb3c17a70589 fbaffb1fa7018c85cecd369894293b24dc2a62bf82f918cbd99dbb3c17a70589 "EXPECT_FALSE(Map(Deck(""*Static\n1,1,1,1\n"", row)).HasValue()) | EXPECT_FALSE( Map(Replace(Deck(), ""*Boundary"", ""*Boundary,"" + option)).HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().Steps()[0].BoundaryConditions().empty()) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(result.Value().Warnings()[0].code, ""inactive-solid-rotation-boundary"") | EXPECT_EQ(result.Value().Warnings()[0].severity, fesa::Severity::kWarning)" "EXPECT_FALSE(Map(Deck(""*Static\n1,1,1,1\n"", row)).HasValue()) | EXPECT_FALSE( Map(Replace(Deck(), ""*Boundary"", ""*Boundary,"" + option)).HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().Steps()[0].BoundaryConditions().empty()) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(result.Value().Warnings()[0].code, ""inactive-solid-rotation-boundary"") | EXPECT_EQ(result.Value().Warnings()[0].severity, fesa::Severity::kWarning)" -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AllowsEmptyFreeAndNoBoundaryModels Hex8Semantics.AllowsEmptyFreeAndNoBoundaryModels; assertion 4개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AllowsEmptyFreeAndNoBoundaryModels 유지 원문 검사 body 및 assertion 동일. b57d0718c1ed58f9fc97136333cada362aeee8c776148cd4cd14bf251fdbb27b b57d0718c1ed58f9fc97136333cada362aeee8c776148cd4cd14bf251fdbb27b ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().FreeDofCount(), boundaries.empty() ? 24U : 0U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().FreeDofCount(), boundaries.empty() ? 24U : 0U) -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RetainsStaticDensityTargetsAndDirectSchedule Hex8Semantics.RetainsStaticDensityTargetsAndDirectSchedule; assertion 13개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RetainsStaticDensityTargetsAndDirectSchedule 유지 원문 검사 body 및 assertion 동일. ecc27dfd2d6e7370b729c72942f53b8a8cd0bf76a40ce684aeaeb88e64fa2c40 ecc27dfd2d6e7370b729c72942f53b8a8cd0bf76a40ce684aeaeb88e64fa2c40 "ASSERT_TRUE(domain.HasValue()) | EXPECT_TRUE(domain.Value().IsSolid()) | ASSERT_EQ(domain.Value().SolidSections().Size(), 1U) | EXPECT_EQ(domain.Value().SolidSections()[0].MaterialIndex(), 0U) | EXPECT_EQ(domain.Value().Densities()[0].rho, 2.0) | EXPECT_EQ(step.Name(), ""Solid"") | EXPECT_TRUE(step.IsDirectStatic()) | EXPECT_EQ(step.IncrementCount(), 10U) | EXPECT_EQ(step.MaximumIncrements(), 100U) | EXPECT_EQ(dofs.Value().PrescribedValues()[0], .25) | EXPECT_FALSE(Map(Deck(""*Static,direct\n"" + values)).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""1000,.3"", ""1000,.5"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""1000,.3"", ""1000,-1"")).HasValue())" "ASSERT_TRUE(domain.HasValue()) | EXPECT_TRUE(domain.Value().IsSolid()) | ASSERT_EQ(domain.Value().SolidSections().Size(), 1U) | EXPECT_EQ(domain.Value().SolidSections()[0].MaterialIndex(), 0U) | EXPECT_EQ(domain.Value().Densities()[0].rho, 2.0) | EXPECT_EQ(step.Name(), ""Solid"") | EXPECT_TRUE(step.IsDirectStatic()) | EXPECT_EQ(step.IncrementCount(), 10U) | EXPECT_EQ(step.MaximumIncrements(), 100U) | EXPECT_EQ(dofs.Value().PrescribedValues()[0], .25) | EXPECT_FALSE(Map(Deck(""*Static,direct\n"" + values)).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""1000,.3"", ""1000,.5"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""1000,.3"", ""1000,-1"")).HasValue())" -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.SamplesIndependentAmplitudeLoadsAtActualEndpoints Hex8Semantics.SamplesIndependentAmplitudeLoadsAtActualEndpoints; assertion 19개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.SamplesIndependentAmplitudeLoadsAtActualEndpoints 유지 원문 검사 body 및 assertion 동일. 450037b22e5b3e170d8813cdd95b4c635723a769f07f6513e8c7d59e8fef843d 450037b22e5b3e170d8813cdd95b4c635723a769f07f6513e8c7d59e8fef843d "ASSERT_TRUE(domain.HasValue()) | ASSERT_EQ(domain.Value().Amplitudes().size(), 2U) | EXPECT_EQ(amplitude.name_raw, ""A"") | EXPECT_EQ(amplitude.Evaluate(0), 0) | EXPECT_EQ(amplitude.Evaluate(.05), .5) | EXPECT_EQ(amplitude.Evaluate(.1), 1) | EXPECT_EQ(amplitude.Evaluate(20), 1) | EXPECT_FALSE(domain.Value().Dynamic()->nlgeom) | EXPECT_EQ(domain.Value().Dynamic()->increment_count, 100U) | EXPECT_EQ(loads[0].AmplitudeIndex(), std::optional{0U}) | EXPECT_EQ(loads[1].AmplitudeIndex(), std::optional{1U}) | EXPECT_EQ(loads[0].AmplitudeName(), ""a"") | EXPECT_GT(loads[0].AmplitudeLocation().line, 0U) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(load.HasValue()) | EXPECT_DOUBLE_EQ(load.Value()[3], amplitude.Evaluate(time) * 10 + domain.Value().Amplitudes()[1].Evaluate(time) * 3 + 5) | EXPECT_FALSE(Map(Replace(text, ""10,1,6"", ""10,1,3,1e-100"")).HasValue()) | EXPECT_FALSE( Map(Replace(text, ""amplitude=a"", ""amplitude=missing"")).HasValue()) | EXPECT_TRUE( Map(Replace(text, ""name=Solid,inc=100"", ""name=Solid,nlgeom=YES,inc=100"")) .HasValue())" "ASSERT_TRUE(domain.HasValue()) | ASSERT_EQ(domain.Value().Amplitudes().size(), 2U) | EXPECT_EQ(amplitude.name_raw, ""A"") | EXPECT_EQ(amplitude.Evaluate(0), 0) | EXPECT_EQ(amplitude.Evaluate(.05), .5) | EXPECT_EQ(amplitude.Evaluate(.1), 1) | EXPECT_EQ(amplitude.Evaluate(20), 1) | EXPECT_FALSE(domain.Value().Dynamic()->nlgeom) | EXPECT_EQ(domain.Value().Dynamic()->increment_count, 100U) | EXPECT_EQ(loads[0].AmplitudeIndex(), std::optional{0U}) | EXPECT_EQ(loads[1].AmplitudeIndex(), std::optional{1U}) | EXPECT_EQ(loads[0].AmplitudeName(), ""a"") | EXPECT_GT(loads[0].AmplitudeLocation().line, 0U) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(load.HasValue()) | EXPECT_DOUBLE_EQ(load.Value()[3], amplitude.Evaluate(time) * 10 + domain.Value().Amplitudes()[1].Evaluate(time) * 3 + 5) | EXPECT_FALSE(Map(Replace(text, ""10,1,6"", ""10,1,3,1e-100"")).HasValue()) | EXPECT_FALSE( Map(Replace(text, ""amplitude=a"", ""amplitude=missing"")).HasValue()) | EXPECT_TRUE( Map(Replace(text, ""name=Solid,inc=100"", ""name=Solid,nlgeom=YES,inc=100"")) .HasValue())" -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsAmplitudeOptionsDataAndCrossFamilyUse Hex8Semantics.RejectsAmplitudeOptionsDataAndCrossFamilyUse; assertion 3개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsAmplitudeOptionsDataAndCrossFamilyUse 유지 원문 검사 body 및 assertion 동일. dce2dd9b2fcfbf0c0ec5bf2a49db87a35c8c50379978a06ba8b90b04f3e5dc7f dce2dd9b2fcfbf0c0ec5bf2a49db87a35c8c50379978a06ba8b90b04f3e5dc7f "EXPECT_FALSE( Map(Deck(""*Dynamic,direct\n.1,1\n"", ""10,1,3\n"", prefix + amplitude)) .HasValue()) | EXPECT_FALSE( Map(Deck(""*Static\n1,1,1,1\n"", ""10,1,3\n"", ""*Amplitude,name=A\n0,0\n"")) .HasValue()) | EXPECT_FALSE(Map(Deck(""*Dynamic,direct\n.1,1\n"", ""10,1,3\n"")).HasValue())" "EXPECT_FALSE( Map(Deck(""*Dynamic,direct\n.1,1\n"", ""10,1,3\n"", prefix + amplitude)) .HasValue()) | EXPECT_FALSE( Map(Deck(""*Static\n1,1,1,1\n"", ""10,1,3\n"", ""*Amplitude,name=A\n0,0\n"")) .HasValue()) | EXPECT_FALSE(Map(Deck(""*Dynamic,direct\n.1,1\n"", ""10,1,3\n"")).HasValue())" -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsAliasesConnectivityThicknessAndMixedModels Hex8Semantics.RejectsAliasesConnectivityThicknessAndMixedModels; assertion 5개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsAliasesConnectivityThicknessAndMixedModels 유지 원문 검사 body 및 assertion 동일. 74400cf0bcfb69af45f006c08c3c5f44a7f71d5f51c25e90b147b08e2a304858 74400cf0bcfb69af45f006c08c3c5f44a7f71d5f51c25e90b147b08e2a304858 "EXPECT_FALSE(Map(Replace(Deck(), ""type=C3D8"", ""type="" + type)).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,70"")) .HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,999"")) .HasValue()) | EXPECT_FALSE( Map(Replace(Deck(), ""material=M\n,"", ""material=M\n2"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""*Solid Section"", ""*Element,type=S4\n100,10,20,30,40\n*Solid Section"")) .HasValue())" "EXPECT_FALSE(Map(Replace(Deck(), ""type=C3D8"", ""type="" + type)).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,70"")) .HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,999"")) .HasValue()) | EXPECT_FALSE( Map(Replace(Deck(), ""material=M\n,"", ""material=M\n2"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""*Solid Section"", ""*Element,type=S4\n100,10,20,30,40\n*Solid Section"")) .HasValue())" -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.PreservesShellSixComponentProfile Hex8Semantics.PreservesShellSixComponentProfile; assertion 6개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.PreservesShellSixComponentProfile 유지 원문 검사 body 및 assertion 동일. 6253e1af06f92b7af50ff60f0745d70fe50db2b76b537570fe466dd15675d26b 6253e1af06f92b7af50ff60f0745d70fe50db2b76b537570fe466dd15675d26b ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().Profile(), fesa::DofProfile::kStructural) | EXPECT_EQ(dofs.Value().ComponentsPerNode(), 6U) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().FullDof(1, fesa::DofComponent::kUrx), 9U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().Profile(), fesa::DofProfile::kStructural) | EXPECT_EQ(dofs.Value().ComponentsPerNode(), 6U) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().FullDof(1, fesa::DofComponent::kUrx), 9U) -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.MapsAllFiveUnmodifiedRequiredSourceDecks Hex8Semantics.MapsAllFiveUnmodifiedRequiredSourceDecks; assertion 8개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.MapsAllFiveUnmodifiedRequiredSourceDecks 유지 원문 검사 body 및 assertion 동일. 27a85d7e4d9d00d5a84c4d3e28b2fd837ee20a9b812730de2b0b120f79639c4f 27a85d7e4d9d00d5a84c4d3e28b2fd837ee20a9b812730de2b0b120f79639c4f "ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().SolidElements().Size(), 300U) | EXPECT_EQ(domain.Value().Nodes().size(), 442U) | EXPECT_EQ(std::count_if(domain.Value().Warnings().begin(), domain.Value().Warnings().end(), [](const auto& warning) { return warning.code == ""inactive-solid-rotation-boundary""; }), 3) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 1326U) | EXPECT_EQ(dofs.Value().ConstrainedDofCount(), 51U)" "ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().SolidElements().Size(), 300U) | EXPECT_EQ(domain.Value().Nodes().size(), 442U) | EXPECT_EQ(std::count_if(domain.Value().Warnings().begin(), domain.Value().Warnings().end(), [](const auto& warning) { return warning.code == ""inactive-solid-rotation-boundary""; }), 3) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 1326U) | EXPECT_EQ(dofs.Value().ConstrainedDofCount(), 51U)" -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AssemblesFullSymmetricSolidMatricesInStableSourceOrder Hex8Semantics.AssemblesFullSymmetricSolidMatricesInStableSourceOrder; assertion 11개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AssemblesFullSymmetricSolidMatricesInStableSourceOrder 유지 원문 검사 body 및 assertion 동일. cff1fc540c97c7325eb371cd49595d7c44b5235f01cb4f0340c8fe2515e8c437 cff1fc540c97c7325eb371cd49595d7c44b5235f01cb4f0340c8fe2515e8c437 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(parallel.HasValue()) | EXPECT_EQ(serial.Value().Rows(), 24U) | EXPECT_EQ(serial.Value().Columns(), 24U) | EXPECT_EQ(serial.Value().Values().size(), 576U) | EXPECT_EQ(value, 1.0) | EXPECT_EQ(serial.Value().RowOffsets(), parallel.Value().RowOffsets()) | EXPECT_EQ(serial.Value().ColumnIndices(), parallel.Value().ColumnIndices()) | EXPECT_EQ(serial.Value().Values(), parallel.Value().Values()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(parallel.HasValue()) | EXPECT_EQ(serial.Value().Rows(), 24U) | EXPECT_EQ(serial.Value().Columns(), 24U) | EXPECT_EQ(serial.Value().Values().size(), 576U) | EXPECT_EQ(value, 1.0) | EXPECT_EQ(serial.Value().RowOffsets(), parallel.Value().RowOffsets()) | EXPECT_EQ(serial.Value().ColumnIndices(), parallel.Value().ColumnIndices()) | EXPECT_EQ(serial.Value().Values(), parallel.Value().Values()) -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.ValidatesOutputNoOpsAndRejectsUnapprovedDynamicChildren Hex8Semantics.ValidatesOutputNoOpsAndRejectsUnapprovedDynamicChildren; assertion 5개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.ValidatesOutputNoOpsAndRejectsUnapprovedDynamicChildren 유지 원문 검사 body 및 assertion 동일. 5d0196abf7c53f0e92306554db8a1f9270f76db9aa614254d9d3a5f3e2d1a43e 5d0196abf7c53f0e92306554db8a1f9270f76db9aa614254d9d3a5f3e2d1a43e "EXPECT_TRUE( Map(Replace(Deck(), ""*End Step"", output + ""*End Step"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""*End Step"", ""*Output,field,variable=OTHER\n*End Step"")) .HasValue()) | EXPECT_FALSE( Map(Replace( Deck(), ""*End Step"", ""*Output,field\n*Element Output,position=NODES\nS\n*End Step"")) .HasValue()) | EXPECT_FALSE( Map(Replace( dynamic, ""*End Step"", ""*Output,field,variable=PRESELECT\n*Node Output\nU\n*End Step"")) .HasValue()) | EXPECT_FALSE(Map(Replace(dynamic, ""*End Step"", ""*Restart,write,frequency=1\n*End Step"")) .HasValue())" "EXPECT_TRUE( Map(Replace(Deck(), ""*End Step"", output + ""*End Step"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""*End Step"", ""*Output,field,variable=OTHER\n*End Step"")) .HasValue()) | EXPECT_FALSE( Map(Replace( Deck(), ""*End Step"", ""*Output,field\n*Element Output,position=NODES\nS\n*End Step"")) .HasValue()) | EXPECT_FALSE( Map(Replace( dynamic, ""*End Step"", ""*Output,field,variable=PRESELECT\n*Node Output\nU\n*End Step"")) .HasValue()) | EXPECT_FALSE(Map(Replace(dynamic, ""*End Step"", ""*Restart,write,frequency=1\n*End Step"")) .HasValue())" -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsInvalidProgrammaticSolidCandidates Hex8Semantics.RejectsInvalidProgrammaticSolidCandidates; assertion 6개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsInvalidProgrammaticSolidCandidates 유지 원문 검사 body 및 assertion 동일. 1065eea90059ac9e3e2b606d997c439efabbf2837254a53e0622a7b4ec81655f 1065eea90059ac9e3e2b606d997c439efabbf2837254a53e0622a7b4ec81655f EXPECT_TRUE(fesa::Domain::Create(SolidDefinition()).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(repeated)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(material)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(section)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(rotational)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(unused)).HasValue()) EXPECT_TRUE(fesa::Domain::Create(SolidDefinition()).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(repeated)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(material)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(section)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(rotational)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(unused)).HasValue()) -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsSecondProcedureBeforeReadingItsOptionsOrData Hex8Semantics.RejectsSecondProcedureBeforeReadingItsOptionsOrData; assertion 8개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsSecondProcedureBeforeReadingItsOptionsOrData 유지 원문 검사 body 및 assertion 동일. 42d53fd47e4e29b2122ec0929fda515bd8a35ae386135240b8e3c19a168ac537 42d53fd47e4e29b2122ec0929fda515bd8a35ae386135240b8e3c19a168ac537 "ASSERT_TRUE(Map(Deck(first, """", ""*Density\n2\n"")).HasValue()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""unsupported-analysis-procedure"") | ASSERT_FALSE(malformed.HasValue()) | ASSERT_FALSE(malformed.GetStatus().Diagnostics().empty()) | EXPECT_EQ(malformed.GetStatus().Diagnostics()[0].code, ""unsupported-analysis-procedure"") | EXPECT_EQ(malformed.GetStatus().Diagnostics()[0].keyword, ""STATIC"")" "ASSERT_TRUE(Map(Deck(first, """", ""*Density\n2\n"")).HasValue()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""unsupported-analysis-procedure"") | ASSERT_FALSE(malformed.HasValue()) | ASSERT_FALSE(malformed.GetStatus().Diagnostics().empty()) | EXPECT_EQ(malformed.GetStatus().Diagnostics()[0].code, ""unsupported-analysis-procedure"") | EXPECT_EQ(malformed.GetStatus().Diagnostics()[0].keyword, ""STATIC"")" -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AllowsOnlyApprovedStaticRestartNoOp Hex8Semantics.AllowsOnlyApprovedStaticRestartNoOp; assertion 6개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AllowsOnlyApprovedStaticRestartNoOp 유지 원문 검사 body 및 assertion 동일. 3a188909917d0d9026bab32708aace83386bda1c68423f466e1c6f849dfeea74 3a188909917d0d9026bab32708aace83386bda1c68423f466e1c6f849dfeea74 "ASSERT_TRUE(approved.HasValue()) | ASSERT_EQ(approved.Value().Warnings().size(), 1U) | EXPECT_EQ(approved.Value().Warnings()[0].keyword, ""RESTART"") | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""RESTART"")" "ASSERT_TRUE(approved.HasValue()) | ASSERT_EQ(approved.Value().Warnings().size(), 1U) | EXPECT_EQ(approved.Value().Warnings()[0].keyword, ""RESTART"") | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""RESTART"")" -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.PreservesShuffledSourceLabelsAndRejectsDuplicateIdentities Hex8Semantics.PreservesShuffledSourceLabelsAndRejectsDuplicateIdentities; assertion 15개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.PreservesShuffledSourceLabelsAndRejectsDuplicateIdentities 유지 원문 검사 body 및 assertion 동일. 1e26934f523f95c12da4ba31131a30f25c52519a32368c6a7369490b4907882a 1e26934f523f95c12da4ba31131a30f25c52519a32368c6a7369490b4907882a "ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().Nodes()[0].source_id.source_label, 80) | EXPECT_EQ(domain.Value().Nodes()[4].source_id.source_label, 10) | EXPECT_EQ(domain.Value().Elements()[0].NodeIndices(), (std::vector{4, 1, 6, 3, 7, 2, 5, 0})) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().ConstrainedDofs(), (std::vector{12, 13, 14})) | EXPECT_FALSE(Map(Replace(deck, ""20,1,0,0"", ""80,1,0,0"")).HasValue()) | EXPECT_FALSE( Map(Replace(deck, ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,80\n99,10,20,30,40,50,60,70,80"")) .HasValue()) | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(direct.Value().Nodes()[0].source_id.source_label, 80) | EXPECT_EQ(direct.Value().Nodes()[7].source_id.source_label, 10) | EXPECT_EQ(direct.Value().SolidElements()[0].node_indices, (std::array{7, 1, 2, 3, 4, 5, 6, 0})) | EXPECT_FALSE(fesa::Domain::Create(std::move(nodes)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(elements)).HasValue())" "ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().Nodes()[0].source_id.source_label, 80) | EXPECT_EQ(domain.Value().Nodes()[4].source_id.source_label, 10) | EXPECT_EQ(domain.Value().Elements()[0].NodeIndices(), (std::vector{4, 1, 6, 3, 7, 2, 5, 0})) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().ConstrainedDofs(), (std::vector{12, 13, 14})) | EXPECT_FALSE(Map(Replace(deck, ""20,1,0,0"", ""80,1,0,0"")).HasValue()) | EXPECT_FALSE( Map(Replace(deck, ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,80\n99,10,20,30,40,50,60,70,80"")) .HasValue()) | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(direct.Value().Nodes()[0].source_id.source_label, 80) | EXPECT_EQ(direct.Value().Nodes()[7].source_id.source_label, 10) | EXPECT_EQ(direct.Value().SolidElements()[0].node_indices, (std::array{7, 1, 2, 3, 4, 5, 6, 0})) | EXPECT_FALSE(fesa::Domain::Create(std::move(nodes)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(elements)).HasValue())" -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsUnknownSolidAssignmentTargets Hex8Semantics.RejectsUnknownSolidAssignmentTargets; assertion 3개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsUnknownSolidAssignmentTargets 유지 원문 검사 body 및 assertion 동일. 777502085d8347fa372148d730813468e8385f01894e6f1e32c0b7fb4831b84c 777502085d8347fa372148d730813468e8385f01894e6f1e32c0b7fb4831b84c "ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""unresolved-solid-section"")" "ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""unresolved-solid-section"")" -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsInvalidSolidDynamicSchedulesAndIncrementLimits Hex8Semantics.RejectsInvalidSolidDynamicSchedulesAndIncrementLimits; assertion 3개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsInvalidSolidDynamicSchedulesAndIncrementLimits 유지 원문 검사 body 및 assertion 동일. fffbdbf00d02cff95f113d0f9a573ce71a4eb6e0c4b2f829f0fe45dd1d915e4a fffbdbf00d02cff95f113d0f9a573ce71a4eb6e0c4b2f829f0fe45dd1d915e4a "ASSERT_TRUE(Map(valid).HasValue()) | EXPECT_FALSE(Map(Replace(valid, "".1,1\n"", schedule + ""\n"")).HasValue()) | EXPECT_FALSE(Map(Replace(valid, ""inc=100"", ""inc="" + limit)).HasValue())" "ASSERT_TRUE(Map(valid).HasValue()) | EXPECT_FALSE(Map(Replace(valid, "".1,1\n"", schedule + ""\n"")).HasValue()) | EXPECT_FALSE(Map(Replace(valid, ""inc=100"", ""inc="" + limit)).HasValue())" -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp support@1-45 helper/oracle/fixture/include/static assertion 구간: Deck, Map tests/unit/io/abaqus/hex8_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e25babf55d99011a53bf3707b7fa77dfd36ca9a650cd07f5ce287e7dfb184913 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp support@80-88 helper/oracle/fixture/include/static assertion 구간: Replace tests/unit/io/abaqus/hex8_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7712e67d7827babcfabd756496ca005cd2568399e78f7778748ae28ba5b8a649 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp support@309-345 helper/oracle/fixture/include/static assertion 구간: ConstantMatrixElement tests/unit/io/abaqus/hex8_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 25983d2e2d6c1749e19367eb109a0403c60bc3f0e79888448ea10c34e965976a 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp support@400-430 helper/oracle/fixture/include/static assertion 구간: SolidDefinition tests/unit/io/abaqus/hex8_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8ef84c9fb537fb04031fa128b47e30de8105170c97ef73cb6b05fe993f3a20ff 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp support@555-555 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/hex8_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/hht_dynamic_domain_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/io/abaqus/hht_dynamic_domain_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e5a7cec78d6b44cfd120f3883d44964842e52ab1781c6a9c678b93c1768a893b e5a7cec78d6b44cfd120f3883d44964842e52ab1781c6a9c678b93c1768a893b 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.MapsDirectScheduleDensityAndSourceOrder HhtDynamicDomainMapping.MapsDirectScheduleDensityAndSourceOrder; assertion 22개 tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.MapsDirectScheduleDensityAndSourceOrder 유지 원문 검사 body 및 assertion 동일. 2fda780cc6cec49273e038031cef69a2064f0c4d1155f63e36511d518662a11f 2fda780cc6cec49273e038031cef69a2064f0c4d1155f63e36511d518662a11f "ASSERT_TRUE(result.HasValue()) | ASSERT_NE(domain.Dynamic(), nullptr) | EXPECT_EQ(dynamic.source_step_name_raw, ""Dynamic-Load"") | EXPECT_EQ(dynamic.source_step_name_canonical, ""DYNAMIC-LOAD"") | EXPECT_DOUBLE_EQ(dynamic.initial_increment, 0.1) | EXPECT_DOUBLE_EQ(dynamic.time_period, 10.0) | EXPECT_EQ(dynamic.increment_count, 100U) | EXPECT_EQ(dynamic.maximum_increments, 1000U) | EXPECT_DOUBLE_EQ(dynamic.alpha, -0.05) | EXPECT_DOUBLE_EQ(dynamic.beta, 0.275625) | EXPECT_DOUBLE_EQ(dynamic.gamma, 0.55) | ASSERT_EQ(dynamic.boundaries.size(), 1U) | ASSERT_EQ(dynamic.loads.size(), 1U) | EXPECT_EQ(dynamic.loads[0U].dof, 1) | ASSERT_EQ(domain.Densities().size(), 1U) | EXPECT_DOUBLE_EQ(domain.Densities()[0U].rho, 2700.0) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_TRUE(domain.Steps()[0U].IsDynamic()) | EXPECT_FALSE(domain.Steps()[0U].IsNonlinearStatic()) | EXPECT_EQ(domain.Steps()[0U].Dynamic(), domain.Dynamic()) | ASSERT_EQ(domain.Warnings().size(), 4U) | EXPECT_EQ(warning.code, ""ignored-output-request"")" "ASSERT_TRUE(result.HasValue()) | ASSERT_NE(domain.Dynamic(), nullptr) | EXPECT_EQ(dynamic.source_step_name_raw, ""Dynamic-Load"") | EXPECT_EQ(dynamic.source_step_name_canonical, ""DYNAMIC-LOAD"") | EXPECT_DOUBLE_EQ(dynamic.initial_increment, 0.1) | EXPECT_DOUBLE_EQ(dynamic.time_period, 10.0) | EXPECT_EQ(dynamic.increment_count, 100U) | EXPECT_EQ(dynamic.maximum_increments, 1000U) | EXPECT_DOUBLE_EQ(dynamic.alpha, -0.05) | EXPECT_DOUBLE_EQ(dynamic.beta, 0.275625) | EXPECT_DOUBLE_EQ(dynamic.gamma, 0.55) | ASSERT_EQ(dynamic.boundaries.size(), 1U) | ASSERT_EQ(dynamic.loads.size(), 1U) | EXPECT_EQ(dynamic.loads[0U].dof, 1) | ASSERT_EQ(domain.Densities().size(), 1U) | EXPECT_DOUBLE_EQ(domain.Densities()[0U].rho, 2700.0) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_TRUE(domain.Steps()[0U].IsDynamic()) | EXPECT_FALSE(domain.Steps()[0U].IsNonlinearStatic()) | EXPECT_EQ(domain.Steps()[0U].Dynamic(), domain.Dynamic()) | ASSERT_EQ(domain.Warnings().size(), 4U) | EXPECT_EQ(warning.code, ""ignored-output-request"")" -Refactor tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.MapsOriginalReferenceDeckWithoutMutation HhtDynamicDomainMapping.MapsOriginalReferenceDeckWithoutMutation; assertion 6개 tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.MapsOriginalReferenceDeckWithoutMutation 유지 원문 검사 body 및 assertion 동일. 8d0c382e2a5992cda6af2865bf5941c2dc847f1591b1625a9532dc881eee65a1 8d0c382e2a5992cda6af2865bf5941c2dc847f1591b1625a9532dc881eee65a1 ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_NE(result.Value().Dynamic(), nullptr) | EXPECT_EQ(result.Value().Dynamic()->increment_count, 100U) | EXPECT_EQ(result.Value().Dynamic()->maximum_increments, 1000U) | EXPECT_EQ(result.Value().Dynamic()->loads.size(), 3U) ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_NE(result.Value().Dynamic(), nullptr) | EXPECT_EQ(result.Value().Dynamic()->increment_count, 100U) | EXPECT_EQ(result.Value().Dynamic()->maximum_increments, 1000U) | EXPECT_EQ(result.Value().Dynamic()->loads.size(), 3U) -Refactor tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.RejectsMalformedScheduleAndUnsupportedControls HhtDynamicDomainMapping.RejectsMalformedScheduleAndUnsupportedControls; assertion 2개 tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.RejectsMalformedScheduleAndUnsupportedControls 유지 원문 검사 body 및 assertion 동일. cb6b162159cef6b490fac3ec2e8af7fb2f8c4e72d672d14d6e515cd0fdb22b03 cb6b162159cef6b490fac3ec2e8af7fb2f8c4e72d672d14d6e515cd0fdb22b03 ASSERT_FALSE(result.HasValue()) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.diagnostic), nullptr) ASSERT_FALSE(result.HasValue()) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.diagnostic), nullptr) -Refactor tests/unit/io/abaqus/hht_dynamic_domain_test.cpp support@1-117 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if, MapText, FindDiagnostic, for, DynamicDeck, ReplaceOnce, RepositoryRoot tests/unit/io/abaqus/hht_dynamic_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 80674acfe820ddb866f7dab56ffa6515964956c116548bf4746d1064ece4a28c 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/hht_dynamic_domain_test.cpp support@205-206 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/hht_dynamic_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/input_reader_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/io/abaqus/input_reader_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 30c6b51c5910fb07f94969370ced1e063bcbf212266e228e3c09ef5a4575ad96 30c6b51c5910fb07f94969370ced1e063bcbf212266e228e3c09ef5a4575ad96 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.RejectsMalformedOrOrphanData InpSyntax.RejectsMalformedOrOrphanData; assertion 14개 tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.RejectsMalformedOrOrphanData 유지 원문 검사 body 및 assertion 동일. ffaa0b04054bbe68b1a87482bbca2cf543c8cd34ea6f4e30fdca2d246bd7db08 ffaa0b04054bbe68b1a87482bbca2cf543c8cd34ea6f4e30fdca2d246bd7db08 "ASSERT_FALSE(unreadable.HasValue()) | EXPECT_EQ(unreadable.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(unreadable.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(unreadable.GetStatus().Diagnostics()[0].code, ""input-file-unreadable"") | ASSERT_FALSE(malformed_result.HasValue()) | EXPECT_EQ(malformed_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(malformed_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(malformed_result.GetStatus().Diagnostics()[0].code, ""malformed-keyword"") | EXPECT_EQ(malformed_result.GetStatus().Diagnostics()[0].location.line, 1U) | ASSERT_FALSE(orphan_result.HasValue()) | EXPECT_EQ(orphan_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(orphan_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(orphan_result.GetStatus().Diagnostics()[0].code, ""orphan-data-line"") | EXPECT_EQ(orphan_result.GetStatus().Diagnostics()[0].location.line, 3U)" "ASSERT_FALSE(unreadable.HasValue()) | EXPECT_EQ(unreadable.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(unreadable.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(unreadable.GetStatus().Diagnostics()[0].code, ""input-file-unreadable"") | ASSERT_FALSE(malformed_result.HasValue()) | EXPECT_EQ(malformed_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(malformed_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(malformed_result.GetStatus().Diagnostics()[0].code, ""malformed-keyword"") | EXPECT_EQ(malformed_result.GetStatus().Diagnostics()[0].location.line, 1U) | ASSERT_FALSE(orphan_result.HasValue()) | EXPECT_EQ(orphan_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(orphan_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(orphan_result.GetStatus().Diagnostics()[0].code, ""orphan-data-line"") | EXPECT_EQ(orphan_result.GetStatus().Diagnostics()[0].location.line, 3U)" -Refactor tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.ReadsLegacyCantileverWithoutMutation InpSyntax.ReadsLegacyCantileverWithoutMutation; assertion 15개 tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.ReadsLegacyCantileverWithoutMutation 유지 원문 검사 body 및 assertion 동일. f41d9011fdd529843fb8de0b5dd5f54bdadc4501908af1a3ccef423593ce0a04 f41d9011fdd529843fb8de0b5dd5f54bdadc4501908af1a3ccef423593ce0a04 "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_content_identity, ""fnv1a64:04543464cc970405"") | EXPECT_EQ(result.Value().source_path, std::filesystem::absolute(input_path).lexically_normal()) | ASSERT_EQ(result.Value().blocks.size(), 30U) | EXPECT_EQ(result.Value().blocks.front().canonical_name, ""HEADING"") | EXPECT_EQ(result.Value().blocks.front().location.line, 1U) | EXPECT_EQ(result.Value().blocks.back().canonical_name, ""END STEP"") | ASSERT_NE(element, result.Value().blocks.end()) | ASSERT_EQ(element->parameters.size(), 1U) | EXPECT_EQ(element->parameters[0].name, ""TYPE"") | ASSERT_TRUE(element->parameters[0].value.has_value()) | EXPECT_EQ(*element->parameters[0].value, ""B33"") | EXPECT_EQ(element->data.size(), 10U) | EXPECT_EQ(ReadExactBytes(input_path), bytes_before) | EXPECT_EQ(std::filesystem::last_write_time(input_path), timestamp_before)" "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_content_identity, ""fnv1a64:04543464cc970405"") | EXPECT_EQ(result.Value().source_path, std::filesystem::absolute(input_path).lexically_normal()) | ASSERT_EQ(result.Value().blocks.size(), 30U) | EXPECT_EQ(result.Value().blocks.front().canonical_name, ""HEADING"") | EXPECT_EQ(result.Value().blocks.front().location.line, 1U) | EXPECT_EQ(result.Value().blocks.back().canonical_name, ""END STEP"") | ASSERT_NE(element, result.Value().blocks.end()) | ASSERT_EQ(element->parameters.size(), 1U) | EXPECT_EQ(element->parameters[0].name, ""TYPE"") | ASSERT_TRUE(element->parameters[0].value.has_value()) | EXPECT_EQ(*element->parameters[0].value, ""B33"") | EXPECT_EQ(element->data.size(), 10U) | EXPECT_EQ(ReadExactBytes(input_path), bytes_before) | EXPECT_EQ(std::filesystem::last_write_time(input_path), timestamp_before)" -Refactor tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.AcceptsAsciiKeywordContinuationAndPreservesPhysicalSourceLines InpSyntax.AcceptsAsciiKeywordContinuationAndPreservesPhysicalSourceLines; assertion 14개 tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.AcceptsAsciiKeywordContinuationAndPreservesPhysicalSourceLines 유지 원문 검사 body 및 assertion 동일. ce727a336d945591a1cc0ad97dee25ebfc241f2be137f3198e86eb7df2578ccf ce727a336d945591a1cc0ad97dee25ebfc241f2be137f3198e86eb7df2578ccf "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""SURFACE"") | EXPECT_EQ(block.original_line, ""*SuRfAcE, TYPE=ELEMENT,"") | EXPECT_EQ(block.physical_lines, (std::vector{""*SuRfAcE, TYPE=ELEMENT,"", "" NAME=Pressure_Surface""})) | ASSERT_EQ(block.parameters.size(), 2U) | EXPECT_EQ(block.parameters[0].name, ""TYPE"") | ASSERT_TRUE(block.parameters[0].value.has_value()) | EXPECT_EQ(*block.parameters[0].value, ""ELEMENT"") | EXPECT_EQ(block.parameters[1].name, ""NAME"") | ASSERT_TRUE(block.parameters[1].value.has_value()) | EXPECT_EQ(*block.parameters[1].value, ""Pressure_Surface"") | ASSERT_EQ(block.data.size(), 1U) | EXPECT_EQ(block.data[0].location.line, 3U)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""SURFACE"") | EXPECT_EQ(block.original_line, ""*SuRfAcE, TYPE=ELEMENT,"") | EXPECT_EQ(block.physical_lines, (std::vector{""*SuRfAcE, TYPE=ELEMENT,"", "" NAME=Pressure_Surface""})) | ASSERT_EQ(block.parameters.size(), 2U) | EXPECT_EQ(block.parameters[0].name, ""TYPE"") | ASSERT_TRUE(block.parameters[0].value.has_value()) | EXPECT_EQ(*block.parameters[0].value, ""ELEMENT"") | EXPECT_EQ(block.parameters[1].name, ""NAME"") | ASSERT_TRUE(block.parameters[1].value.has_value()) | EXPECT_EQ(*block.parameters[1].value, ""Pressure_Surface"") | ASSERT_EQ(block.data.size(), 1U) | EXPECT_EQ(block.data[0].location.line, 3U)" -Refactor tests/unit/io/abaqus/input_reader_test.cpp support@1-55 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if, ReadExactBytes, RepositoryRoot tests/unit/io/abaqus/input_reader_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 09e22f6727e979f0117b382a1b8ac77c50f4103adebca5eb58b315c7b0636451 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/input_syntax_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/io/abaqus/input_syntax_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6a0ecd5814f476c566f96a1e64d8e1b2757a0dfd70f17d3543519b1d6226a7b7 6a0ecd5814f476c566f96a1e64d8e1b2757a0dfd70f17d3543519b1d6226a7b7 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/input_syntax_test.cpp InpSyntax.CanonicalizesKeywordAndParameterNamesOnly InpSyntax.CanonicalizesKeywordAndParameterNamesOnly; assertion 14개 tests/unit/io/abaqus/input_syntax_test.cpp InpSyntax.CanonicalizesKeywordAndParameterNamesOnly 유지 원문 검사 body 및 assertion 동일. fa957b70a91ffba87d4e77baf9592ef3c6e8475adc7bf40ff3678c1929954f3b fa957b70a91ffba87d4e77baf9592ef3c6e8475adc7bf40ff3678c1929954f3b "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""ELEMENT"") | EXPECT_EQ(block.original_line, original_line) | EXPECT_EQ(block.location.line, 1U) | ASSERT_EQ(block.parameters.size(), 3U) | EXPECT_EQ(block.parameters[0].name, ""TYPE"") | ASSERT_TRUE(block.parameters[0].value.has_value()) | EXPECT_EQ(*block.parameters[0].value, ""b33"") | EXPECT_EQ(block.parameters[1].name, ""GENERATE"") | EXPECT_FALSE(block.parameters[1].value.has_value()) | EXPECT_EQ(block.parameters[2].name, ""ELSET"") | ASSERT_TRUE(block.parameters[2].value.has_value()) | EXPECT_EQ(*block.parameters[2].value, ""Beam_Set"")" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""ELEMENT"") | EXPECT_EQ(block.original_line, original_line) | EXPECT_EQ(block.location.line, 1U) | ASSERT_EQ(block.parameters.size(), 3U) | EXPECT_EQ(block.parameters[0].name, ""TYPE"") | ASSERT_TRUE(block.parameters[0].value.has_value()) | EXPECT_EQ(*block.parameters[0].value, ""b33"") | EXPECT_EQ(block.parameters[1].name, ""GENERATE"") | EXPECT_FALSE(block.parameters[1].value.has_value()) | EXPECT_EQ(block.parameters[2].name, ""ELSET"") | ASSERT_TRUE(block.parameters[2].value.has_value()) | EXPECT_EQ(*block.parameters[2].value, ""Beam_Set"")" -Refactor tests/unit/io/abaqus/input_syntax_test.cpp InpSyntax.PreservesDataAndSourceLocations InpSyntax.PreservesDataAndSourceLocations; assertion 12개 tests/unit/io/abaqus/input_syntax_test.cpp InpSyntax.PreservesDataAndSourceLocations 유지 원문 검사 body 및 assertion 동일. a1132a3f6c99199423c9f513fe5541b7c91e511e68e9f3d935d5bca9ba159733 a1132a3f6c99199423c9f513fe5541b7c91e511e68e9f3d935d5bca9ba159733 "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_path, std::filesystem::absolute(input.Path()).lexically_normal()) | EXPECT_EQ(result.Value().source_content_identity, ""fnv1a64:c120b6ed2445be46"") | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""NODE"") | EXPECT_EQ(block.original_line, ""*NoDe"") | EXPECT_EQ(block.location.file, result.Value().source_path) | EXPECT_EQ(block.location.line, 3U) | ASSERT_EQ(block.data.size(), 1U) | EXPECT_EQ(block.data[0].fields, (std::vector{""0007"", ""Label_A"", """", """"})) | EXPECT_EQ(block.data[0].location.file, result.Value().source_path) | EXPECT_EQ(block.data[0].location.line, 4U)" "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_path, std::filesystem::absolute(input.Path()).lexically_normal()) | EXPECT_EQ(result.Value().source_content_identity, ""fnv1a64:c120b6ed2445be46"") | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""NODE"") | EXPECT_EQ(block.original_line, ""*NoDe"") | EXPECT_EQ(block.location.file, result.Value().source_path) | EXPECT_EQ(block.location.line, 3U) | ASSERT_EQ(block.data.size(), 1U) | EXPECT_EQ(block.data[0].fields, (std::vector{""0007"", ""Label_A"", """", """"})) | EXPECT_EQ(block.data[0].location.file, result.Value().source_path) | EXPECT_EQ(block.data[0].location.line, 4U)" -Refactor tests/unit/io/abaqus/input_syntax_test.cpp support@1-37 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if tests/unit/io/abaqus/input_syntax_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5cd816979355e9dfa2384470d2d676ffac1a89dc2f4e6ccd91d0998e1d374b2d 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 18개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f28acc507f7b42094ff105589aa020384ae0c3b6c6b4c67edb7d4e36f7928af6 f28acc507f7b42094ff105589aa020384ae0c3b6c6b4c67edb7d4e36f7928af6 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsDirectInstanceFacetsForS4AndS4rCaseInsensitively ShellSurfacePressureInput.MapsDirectInstanceFacetsForS4AndS4rCaseInsensitively; assertion 11개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsDirectInstanceFacetsForS4AndS4rCaseInsensitively 유지 원문 검사 body 및 assertion 동일. 946490ad5c50c1cb8ba083ec3c6d6c42322e4575cbaffc7c063a4aceb1f4d586 946490ad5c50c1cb8ba083ec3c6d6c42322e4575cbaffc7c063a4aceb1f4d586 "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(surface.surface_name_raw, ""Direct-Surface"") | EXPECT_EQ(surface.surface_name_canonical, ""DIRECT-SURFACE"") | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(surface.facets[0].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[0].source_element_label, 10) | EXPECT_EQ(surface.facets[0].source_element_label_raw, ""0010"") | EXPECT_EQ(surface.facets[0].source_element_type, ""S4"") | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSpos) | EXPECT_EQ(surface.facets[1].source_element_type, ""S4R"") | EXPECT_EQ(surface.facets[1].side, fesa::ShellSurfaceSide::kSneg)" "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(surface.surface_name_raw, ""Direct-Surface"") | EXPECT_EQ(surface.surface_name_canonical, ""DIRECT-SURFACE"") | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(surface.facets[0].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[0].source_element_label, 10) | EXPECT_EQ(surface.facets[0].source_element_label_raw, ""0010"") | EXPECT_EQ(surface.facets[0].source_element_type, ""S4"") | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSpos) | EXPECT_EQ(surface.facets[1].source_element_type, ""S4R"") | EXPECT_EQ(surface.facets[1].side, fesa::ShellSurfaceSide::kSneg)" -Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsExplicitInstanceElsetAndResultNeutralInternalParameter ShellSurfacePressureInput.MapsExplicitInstanceElsetAndResultNeutralInternalParameter; assertion 7개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsExplicitInstanceElsetAndResultNeutralInternalParameter 유지 원문 검사 body 및 assertion 동일. d6e14ec8263f733baba442390ee6f6a6f4b722f1f0edb1f7ba795e587f6c858c d6e14ec8263f733baba442390ee6f6a6f4b722f1f0edb1f7ba795e587f6c858c "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(facet.member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(facet.elset_name_raw, ""flat-members"") | EXPECT_EQ(facet.elset_name_canonical, ""FLAT-MEMBERS"") | EXPECT_EQ(facet.instance_name_raw, ""Instance-A"") | EXPECT_EQ(facet.side, fesa::ShellSurfaceSide::kSpos)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(facet.member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(facet.elset_name_raw, ""flat-members"") | EXPECT_EQ(facet.elset_name_canonical, ""FLAT-MEMBERS"") | EXPECT_EQ(facet.instance_name_raw, ""Instance-A"") | EXPECT_EQ(facet.side, fesa::ShellSurfaceSide::kSpos)" -Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsMixedDirectAndElsetMembersAcrossTwoExplicitInstancesWithStableDataMemberAndElsetOrder ShellSurfacePressureInput.MapsMixedDirectAndElsetMembersAcrossTwoExplicitInstancesWithStableDataMemberAndElsetOrder; assertion 21개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsMixedDirectAndElsetMembersAcrossTwoExplicitInstancesWithStableDataMemberAndElsetOrder 유지 원문 검사 body 및 assertion 동일. 8d33f673c3b416be94c015ec597fcf82637e32a1423ffa50887b3cec07778a4f 8d33f673c3b416be94c015ec597fcf82637e32a1423ffa50887b3cec07778a4f "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 4U) | EXPECT_EQ(surface.facets[0].instance_name_raw, ""Instance-B"") | EXPECT_EQ(surface.facets[0].source_element_label, 10) | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSneg) | EXPECT_EQ(surface.facets[0].first_member_ordinal, 2U) | EXPECT_EQ(surface.facets[1].instance_name_raw, ""Instance-B"") | EXPECT_EQ(surface.facets[1].source_element_label, 20) | EXPECT_EQ(surface.facets[1].member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(surface.facets[1].first_member_ordinal, 1U) | EXPECT_EQ(surface.facets[2].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[2].source_element_label, 10) | EXPECT_EQ(surface.facets[2].member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(surface.facets[2].first_member_ordinal, 3U) | EXPECT_EQ(surface.facets[3].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[3].source_element_label, 20) | EXPECT_EQ(surface.facets[3].member_kind, fesa::SurfaceMemberKind::kDirect) | EXPECT_EQ(surface.facets[3].first_member_ordinal, 0U) | EXPECT_EQ(facet.part_name_raw, ""Shell-Part"") | EXPECT_EQ(facet.part_name_canonical, ""SHELL-PART"") | EXPECT_EQ(facet.instance_name_canonical, facet.instance_name_raw == ""Instance-A"" ? ""INSTANCE-A"" : ""INSTANCE-B"")" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 4U) | EXPECT_EQ(surface.facets[0].instance_name_raw, ""Instance-B"") | EXPECT_EQ(surface.facets[0].source_element_label, 10) | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSneg) | EXPECT_EQ(surface.facets[0].first_member_ordinal, 2U) | EXPECT_EQ(surface.facets[1].instance_name_raw, ""Instance-B"") | EXPECT_EQ(surface.facets[1].source_element_label, 20) | EXPECT_EQ(surface.facets[1].member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(surface.facets[1].first_member_ordinal, 1U) | EXPECT_EQ(surface.facets[2].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[2].source_element_label, 10) | EXPECT_EQ(surface.facets[2].member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(surface.facets[2].first_member_ordinal, 3U) | EXPECT_EQ(surface.facets[3].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[3].source_element_label, 20) | EXPECT_EQ(surface.facets[3].member_kind, fesa::SurfaceMemberKind::kDirect) | EXPECT_EQ(surface.facets[3].first_member_ordinal, 0U) | EXPECT_EQ(facet.part_name_raw, ""Shell-Part"") | EXPECT_EQ(facet.part_name_canonical, ""SHELL-PART"") | EXPECT_EQ(facet.instance_name_canonical, facet.instance_name_raw == ""Instance-A"" ? ""INSTANCE-A"" : ""INSTANCE-B"")" -Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.PreservesSposSnegMagnitudeTextLocationsAndSourceOrder ShellSurfacePressureInput.PreservesSposSnegMagnitudeTextLocationsAndSourceOrder; assertion 21개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.PreservesSposSnegMagnitudeTextLocationsAndSourceOrder 유지 원문 검사 body 및 assertion 동일. 9c08d13e4d85213392e2e9a91bfd3c2da00f84da36f7a8748cf0356575d40a89 9c08d13e4d85213392e2e9a91bfd3c2da00f84da36f7a8748cf0356575d40a89 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(surface.facets[0].facet_ordinal, 0U) | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSpos) | EXPECT_EQ(surface.facets[1].facet_ordinal, 1U) | EXPECT_EQ(surface.facets[1].side, fesa::ShellSurfaceSide::kSneg) | ASSERT_EQ(step.SurfacePressureLoads().size(), 2U) | EXPECT_EQ(first.step_name_raw, ""Pressure-Step"") | EXPECT_EQ(first.step_name_canonical, ""PRESSURE-STEP"") | EXPECT_EQ(first.surface_name_raw, ""pressure-surface"") | EXPECT_EQ(first.surface_name_canonical, ""PRESSURE-SURFACE"") | EXPECT_EQ(first.load_type, ""P"") | EXPECT_DOUBLE_EQ(first.magnitude, 0.0) | EXPECT_EQ(first.magnitude_raw, ""-0.0"") | EXPECT_EQ(first.data_ordinal, 0U) | EXPECT_EQ(first.load_ordinal, 0U) | EXPECT_LT(first.keyword_location.line, first.data_location.line) | EXPECT_EQ(second.magnitude_raw, ""+2.50e+03"") | EXPECT_DOUBLE_EQ(second.magnitude, 2500.0) | EXPECT_EQ(second.data_ordinal, 1U) | EXPECT_EQ(second.load_ordinal, 1U)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(surface.facets[0].facet_ordinal, 0U) | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSpos) | EXPECT_EQ(surface.facets[1].facet_ordinal, 1U) | EXPECT_EQ(surface.facets[1].side, fesa::ShellSurfaceSide::kSneg) | ASSERT_EQ(step.SurfacePressureLoads().size(), 2U) | EXPECT_EQ(first.step_name_raw, ""Pressure-Step"") | EXPECT_EQ(first.step_name_canonical, ""PRESSURE-STEP"") | EXPECT_EQ(first.surface_name_raw, ""pressure-surface"") | EXPECT_EQ(first.surface_name_canonical, ""PRESSURE-SURFACE"") | EXPECT_EQ(first.load_type, ""P"") | EXPECT_DOUBLE_EQ(first.magnitude, 0.0) | EXPECT_EQ(first.magnitude_raw, ""-0.0"") | EXPECT_EQ(first.data_ordinal, 0U) | EXPECT_EQ(first.load_ordinal, 0U) | EXPECT_LT(first.keyword_location.line, first.data_location.line) | EXPECT_EQ(second.magnitude_raw, ""+2.50e+03"") | EXPECT_DOUBLE_EQ(second.magnitude, 2500.0) | EXPECT_EQ(second.data_ordinal, 1U) | EXPECT_EQ(second.load_ordinal, 1U)" -Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.OwnsCanonicalFacetsAndStepOwnedAdditivePressureRecords ShellSurfacePressureDomain.OwnsCanonicalFacetsAndStepOwnedAdditivePressureRecords; assertion 3개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.OwnsCanonicalFacetsAndStepOwnedAdditivePressureRecords 유지 원문 검사 body 및 assertion 동일. 42e89d7898679456d451df49a6eec0e9e98cc775ba616c469f3ad6c9839f3a6b 42e89d7898679456d451df49a6eec0e9e98cc775ba616c469f3ad6c9839f3a6b ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.ElementSurfaces()[0].facets[0].source_element_label, 10) | EXPECT_DOUBLE_EQ(domain.Steps()[0U].SurfacePressureLoads()[0].magnitude, 1.0) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.ElementSurfaces()[0].facets[0].source_element_label, 10) | EXPECT_DOUBLE_EQ(domain.Steps()[0U].SurfacePressureLoads()[0].magnitude, 1.0) -Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.AnalysisModelBorrowsActivePressureWithoutCopyingDomain ShellSurfacePressureDomain.AnalysisModelBorrowsActivePressureWithoutCopyingDomain; assertion 4개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.AnalysisModelBorrowsActivePressureWithoutCopyingDomain 유지 원문 검사 body 및 assertion 동일. 83c413cc8fb859ea110ee4895701e8637ebd25d495ccc13f88c4d67032a8394e 83c413cc8fb859ea110ee4895701e8637ebd25d495ccc13f88c4d67032a8394e ASSERT_TRUE(mapped.HasValue()) | ASSERT_TRUE(model.HasValue()) | EXPECT_EQ(&model.Value().ActiveSurfacePressureLoads(), &mapped.Value().Steps()[0U].SurfacePressureLoads()) | EXPECT_EQ(model.Value().ActiveSurfacePressureLoads().size(), 1U) ASSERT_TRUE(mapped.HasValue()) | ASSERT_TRUE(model.HasValue()) | EXPECT_EQ(&model.Value().ActiveSurfacePressureLoads(), &mapped.Value().Steps()[0U].SurfacePressureLoads()) | EXPECT_EQ(model.Value().ActiveSurfacePressureLoads().size(), 1U) -Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.AcceptsWhitespaceSignedZeroAndFiniteScientificNotation ShellSurfacePressureInput.AcceptsWhitespaceSignedZeroAndFiniteScientificNotation; assertion 6개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.AcceptsWhitespaceSignedZeroAndFiniteScientificNotation 유지 원문 검사 body 및 assertion 동일. 87b289b662f1e0f3698f77b333ddd4ccbf28081d4ecfdb62b8baedc1c663909b 87b289b662f1e0f3698f77b333ddd4ccbf28081d4ecfdb62b8baedc1c663909b "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0].magnitude_raw, ""+0"") | EXPECT_DOUBLE_EQ(loads[0].magnitude, 0.0) | EXPECT_EQ(loads[1].magnitude_raw, ""-1.25E-3"") | EXPECT_DOUBLE_EQ(loads[1].magnitude, -0.00125)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0].magnitude_raw, ""+0"") | EXPECT_DOUBLE_EQ(loads[0].magnitude, 0.0) | EXPECT_EQ(loads[1].magnitude_raw, ""-1.25E-3"") | EXPECT_DOUBLE_EQ(loads[1].magnitude, -0.00125)" -Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsNonAsciiOverlengthOrIllegalContinuationAtStableLocation ShellSurfacePressureInput.RejectsNonAsciiOverlengthOrIllegalContinuationAtStableLocation; assertion 10개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsNonAsciiOverlengthOrIllegalContinuationAtStableLocation 유지 원문 검사 body 및 assertion 동일. 1ce5f567f199255b591700b92f8ecc0c9f9484c5315310cc34228f91d1b5f7e3 1ce5f567f199255b591700b92f8ecc0c9f9484c5315310cc34228f91d1b5f7e3 "ASSERT_FALSE(non_ascii.HasValue()) | ASSERT_EQ(non_ascii.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(non_ascii.GetStatus().Diagnostics().front().code, ""invalid-input-character"") | EXPECT_EQ(non_ascii.GetStatus().Diagnostics().front().location.line, 2U) | ASSERT_FALSE(overlength.HasValue()) | EXPECT_EQ(overlength.GetStatus().Diagnostics().front().code, ""input-line-too-long"") | EXPECT_EQ(overlength.GetStatus().Diagnostics().front().location.line, 1U) | ASSERT_FALSE(continuation.HasValue()) | EXPECT_EQ(continuation.GetStatus().Diagnostics().front().code, ""malformed-keyword"") | EXPECT_EQ(continuation.GetStatus().Diagnostics().front().location.line, 2U)" "ASSERT_FALSE(non_ascii.HasValue()) | ASSERT_EQ(non_ascii.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(non_ascii.GetStatus().Diagnostics().front().code, ""invalid-input-character"") | EXPECT_EQ(non_ascii.GetStatus().Diagnostics().front().location.line, 2U) | ASSERT_FALSE(overlength.HasValue()) | EXPECT_EQ(overlength.GetStatus().Diagnostics().front().code, ""input-line-too-long"") | EXPECT_EQ(overlength.GetStatus().Diagnostics().front().location.line, 1U) | ASSERT_FALSE(continuation.HasValue()) | EXPECT_EQ(continuation.GetStatus().Diagnostics().front().code, ""malformed-keyword"") | EXPECT_EQ(continuation.GetStatus().Diagnostics().front().location.line, 2U)" -Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsUnsupportedSurfaceParametersTypesSidesAndTargetKinds ShellSurfacePressureInput.RejectsUnsupportedSurfaceParametersTypesSidesAndTargetKinds; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsUnsupportedSurfaceParametersTypesSidesAndTargetKinds 유지 원문 검사 body 및 assertion 동일. 68c16419be0faeb3e5c631b0e2c4d1e86e40ed448590aec8a56567e36f406ea7 68c16419be0faeb3e5c631b0e2c4d1e86e40ed448590aec8a56567e36f406ea7 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsDsloadParametersLabelsDistributionsAndCardinality ShellSurfacePressureInput.RejectsDsloadParametersLabelsDistributionsAndCardinality; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsDsloadParametersLabelsDistributionsAndCardinality 유지 원문 검사 body 및 assertion 동일. ce9916ba710c77e4eb855936e4e9b09baaa2f5362abb02621d469075a5c06faa ce9916ba710c77e4eb855936e4e9b09baaa2f5362abb02621d469075a5c06faa 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsEmptyMissingAmbiguousAndCrossScopeSurfaceTargets ShellSurfacePressureInput.RejectsEmptyMissingAmbiguousAndCrossScopeSurfaceTargets; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsEmptyMissingAmbiguousAndCrossScopeSurfaceTargets 유지 원문 검사 body 및 assertion 동일. b989869b46405f081a67b42c2ac227713272b84c67b79337276cef65ce359cf4 b989869b46405f081a67b42c2ac227713272b84c67b79337276cef65ce359cf4 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsImplicitInstanceNestedCyclicAndMalformedElsets ShellSurfacePressureInput.RejectsImplicitInstanceNestedCyclicAndMalformedElsets; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsImplicitInstanceNestedCyclicAndMalformedElsets 유지 원문 검사 body 및 assertion 동일. 569ad93130ac52b9b57b42010b2150591c9f0125fb21d8c2469cc515e6917db5 569ad93130ac52b9b57b42010b2150591c9f0125fb21d8c2469cc515e6917db5 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.NormalizesExactSameSideDuplicatesWithOneStableWarning ShellSurfacePressureInput.NormalizesExactSameSideDuplicatesWithOneStableWarning; assertion 8개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.NormalizesExactSameSideDuplicatesWithOneStableWarning 유지 원문 검사 body 및 assertion 동일. 6236b7eb61a4fd35e83e7ae25ddc5570a7cebd6db3eb16bf99f95c45470a5c72 6236b7eb61a4fd35e83e7ae25ddc5570a7cebd6db3eb16bf99f95c45470a5c72 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(OnlySurface(result.Value()).facets.size(), 1U) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(warning.severity, fesa::Severity::kWarning) | EXPECT_EQ(warning.code, ""duplicate-surface-member-normalized"") | EXPECT_EQ(warning.location.line, 29U) | EXPECT_EQ(warning.keyword, ""SURFACE"") | EXPECT_EQ(warning.entity_identity, ""Pressure-Surface"")" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(OnlySurface(result.Value()).facets.size(), 1U) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(warning.severity, fesa::Severity::kWarning) | EXPECT_EQ(warning.code, ""duplicate-surface-member-normalized"") | EXPECT_EQ(warning.location.line, 29U) | EXPECT_EQ(warning.keyword, ""SURFACE"") | EXPECT_EQ(warning.entity_identity, ""Pressure-Surface"")" -Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsConflictingSidesForOneElement ShellSurfacePressureInput.RejectsConflictingSidesForOneElement; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsConflictingSidesForOneElement 유지 원문 검사 body 및 assertion 동일. 315b661ced70d8d24863f470071109e53670f8da16a0b9bd3b967f8323ba5bea 315b661ced70d8d24863f470071109e53670f8da16a0b9bd3b967f8323ba5bea 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsNonfiniteDExponentAndLocaleDependentMagnitudes ShellSurfacePressureInput.RejectsNonfiniteDExponentAndLocaleDependentMagnitudes; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsNonfiniteDExponentAndLocaleDependentMagnitudes 유지 원문 검사 body 및 assertion 동일. c59f0842555c4f634f8e5b90784578f9266a27d716f16648d27acb9709bee548 c59f0842555c4f634f8e5b90784578f9266a27d716f16648d27acb9709bee548 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.PreservesAdditiveRepeatedPressureRowsWithoutDeduplication ShellSurfacePressureInput.PreservesAdditiveRepeatedPressureRowsWithoutDeduplication; assertion 7개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.PreservesAdditiveRepeatedPressureRowsWithoutDeduplication 유지 원문 검사 body 및 assertion 동일. bf188f0db4fa94c007143db4457732b390ea10be44a09c4ac30e0498c4d7e2cf bf188f0db4fa94c007143db4457732b390ea10be44a09c4ac30e0498c4d7e2cf ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0].load_ordinal, 0U) | EXPECT_EQ(loads[1].load_ordinal, 1U) | EXPECT_EQ(loads[0].data_ordinal, 0U) | EXPECT_EQ(loads[1].data_ordinal, 1U) | EXPECT_DOUBLE_EQ(loads[0].magnitude, loads[1].magnitude) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0].load_ordinal, 0U) | EXPECT_EQ(loads[1].load_ordinal, 1U) | EXPECT_EQ(loads[0].data_ordinal, 0U) | EXPECT_EQ(loads[1].data_ordinal, 1U) | EXPECT_DOUBLE_EQ(loads[0].magnitude, loads[1].magnitude) -Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.MappingFailureCommitsNoPartialSemanticCandidate ShellSurfacePressureDomain.MappingFailureCommitsNoPartialSemanticCandidate; assertion 2개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.MappingFailureCommitsNoPartialSemanticCandidate 유지 원문 검사 body 및 assertion 동일. 003fd75844ef98765cfaa6d972a17143273fdfee97b19ba5f6e778352bd86bf6 003fd75844ef98765cfaa6d972a17143273fdfee97b19ba5f6e778352bd86bf6 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics().front().code, ""conflicting-surface-membership"")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics().front().code, ""conflicting-surface-membership"")" -Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.EmitsDiagnosticsInStableSourceOrderAcrossRepeatedRuns ShellSurfacePressureInput.EmitsDiagnosticsInStableSourceOrderAcrossRepeatedRuns; assertion 11개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.EmitsDiagnosticsInStableSourceOrderAcrossRepeatedRuns 유지 원문 검사 body 및 assertion 동일. 7544df73d8202a307316ba7ec6a6f786d8eb7c4b585beceb4280997ebf5c5c8f 7544df73d8202a307316ba7ec6a6f786d8eb7c4b585beceb4280997ebf5c5c8f ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_EQ(first.Value().Warnings().size(), 1U) | ASSERT_EQ(second.Value().Warnings().size(), 1U) | EXPECT_EQ(left.severity, right.severity) | EXPECT_EQ(left.code, right.code) | EXPECT_EQ(left.location.file, right.location.file) | EXPECT_EQ(left.location.line, right.location.line) | EXPECT_EQ(left.keyword, right.keyword) | EXPECT_EQ(left.entity_identity, right.entity_identity) | EXPECT_EQ(left.message, right.message) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_EQ(first.Value().Warnings().size(), 1U) | ASSERT_EQ(second.Value().Warnings().size(), 1U) | EXPECT_EQ(left.severity, right.severity) | EXPECT_EQ(left.code, right.code) | EXPECT_EQ(left.location.file, right.location.file) | EXPECT_EQ(left.location.line, right.location.line) | EXPECT_EQ(left.keyword, right.keyword) | EXPECT_EQ(left.entity_identity, right.entity_identity) | EXPECT_EQ(left.message, right.message) -Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp support@1-126 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if, MapText, ReadText, ReplaceOnce, ExpectSingleFailure, ShellDeck, OnlySurface tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d01dd887a99bccd610d4db4c59f83a92cdc73f44a8d962cd5349c44d36562723 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 32개 tests/unit/io/abaqus/thermal_domain_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. efd4b1c00fa1db1fa4fe9ccd369c34f9bea4cc2665b5c00972792a0fd66d9483 efd4b1c00fa1db1fa4fe9ccd369c34f9bea4cc2665b5c00972792a0fd66d9483 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MapsDs4MaterialsTargetsAndAdditiveFluxes ThermalDomainMapping.MapsDs4MaterialsTargetsAndAdditiveFluxes; assertion 12개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MapsDs4MaterialsTargetsAndAdditiveFluxes 유지 원문 검사 body 및 assertion 동일. af2d22c04e46f6dd711a20088fbc473854263068c67a74e8f27049e4026c2a22 af2d22c04e46f6dd711a20088fbc473854263068c67a74e8f27049e4026c2a22 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalElements().Size(), 1U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 1U) | EXPECT_DOUBLE_EQ(domain.ThermalMaterials()[0U].Conductivity(), 54.0) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(domain.ThermalStep()->name, ""Heat"") | EXPECT_EQ(domain.ThermalStep()->maximum_increments, 100U) | EXPECT_EQ(domain.ThermalModelBoundaries().size(), 2U) | EXPECT_EQ(domain.ThermalStep()->Boundaries().size(), 2U) | ASSERT_EQ(domain.ThermalStep()->Loads().size(), 4U) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Loads()[0U].power, -2.0) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Loads()[3U].power, -3.0)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalElements().Size(), 1U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 1U) | EXPECT_DOUBLE_EQ(domain.ThermalMaterials()[0U].Conductivity(), 54.0) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(domain.ThermalStep()->name, ""Heat"") | EXPECT_EQ(domain.ThermalStep()->maximum_increments, 100U) | EXPECT_EQ(domain.ThermalModelBoundaries().size(), 2U) | EXPECT_EQ(domain.ThermalStep()->Boundaries().size(), 2U) | ASSERT_EQ(domain.ThermalStep()->Loads().size(), 4U) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Loads()[0U].power, -2.0) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Loads()[3U].power, -3.0)" -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsInteriorAndConflictingThermalBoundaries ThermalDomainMapping.RejectsInteriorAndConflictingThermalBoundaries; assertion 4개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsInteriorAndConflictingThermalBoundaries 유지 원문 검사 body 및 assertion 동일. 7ec98df39941a00678cd5ef92a12a7f68a90cda117bae9baef2a0684c5f96b7d 7ec98df39941a00678cd5ef92a12a7f68a90cda117bae9baef2a0684c5f96b7d "ASSERT_FALSE(invalid_dof.HasValue()) | EXPECT_EQ(invalid_dof.GetStatus().Diagnostics()[0U].code, ""invalid-dof"") | ASSERT_FALSE(invalid_conflict.HasValue()) | EXPECT_EQ(invalid_conflict.GetStatus().Diagnostics()[0U].code, ""conflicting-boundary-condition"")" "ASSERT_FALSE(invalid_dof.HasValue()) | EXPECT_EQ(invalid_dof.GetStatus().Diagnostics()[0U].code, ""invalid-dof"") | ASSERT_FALSE(invalid_conflict.HasValue()) | EXPECT_EQ(invalid_conflict.GetStatus().Diagnostics()[0U].code, ""conflicting-boundary-condition"")" -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.AcceptsSectionPointSpellingsAndRejectsUnsupportedForms ThermalDomainMapping.AcceptsSectionPointSpellingsAndRejectsUnsupportedForms; assertion 1개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.AcceptsSectionPointSpellingsAndRejectsUnsupportedForms 유지 원문 검사 body 및 assertion 동일. 0246d651e3e2c547182aa0793b1ede7ebad37bb947330710f83c05bc1899a641 0246d651e3e2c547182aa0793b1ede7ebad37bb947330710f83c05bc1899a641 EXPECT_EQ(MapText(deck).HasValue(), test_case.second) EXPECT_EQ(MapText(deck).HasValue(), test_case.second) -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsThermalMaterialAndControlForms ThermalDomainMapping.RejectsThermalMaterialAndControlForms; assertion 2개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsThermalMaterialAndControlForms 유지 원문 검사 body 및 assertion 동일. aa52baa4e9489c8924eccd069573c18e9d91f3432343b409fd2e822e1c24177b aa52baa4e9489c8924eccd069573c18e9d91f3432343b409fd2e822e1c24177b ASSERT_NE(position, std::string::npos) | EXPECT_FALSE(MapText(deck).HasValue()) ASSERT_NE(position, std::string::npos) | EXPECT_FALSE(MapText(deck).HasValue()) -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsThermalNoOpAndProcedureViolations ThermalDomainMapping.RejectsThermalNoOpAndProcedureViolations; assertion 2개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsThermalNoOpAndProcedureViolations 유지 원문 검사 body 및 assertion 동일. 40e1583ca082fe70743b2bc1583336dfe4284fe520aa4d00ddaf5a2297c8df91 40e1583ca082fe70743b2bc1583336dfe4284fe520aa4d00ddaf5a2297c8df91 ASSERT_NE(position, std::string::npos) | EXPECT_FALSE(MapText(deck).HasValue()) ASSERT_NE(position, std::string::npos) | EXPECT_FALSE(MapText(deck).HasValue()) -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.AppliesSameDofStepOverrideAndDefaultValues ThermalDomainMapping.AppliesSameDofStepOverrideAndDefaultValues; assertion 5개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.AppliesSameDofStepOverrideAndDefaultValues 유지 원문 검사 body 및 assertion 동일. 5277085c94aa63d3671618cea4d01e147843cb61b11bcdd8ea01ced3610db2e3 5277085c94aa63d3671618cea4d01e147843cb61b11bcdd8ea01ced3610db2e3 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().ThermalModelBoundaries().size(), 2U) | ASSERT_EQ(result.Value().ThermalStep()->Boundaries().size(), 2U) | EXPECT_DOUBLE_EQ(result.Value().ThermalModelBoundaries()[0U].value, 0.0) | EXPECT_DOUBLE_EQ(result.Value().ThermalStep()->Boundaries()[0U].value, 30.0) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().ThermalModelBoundaries().size(), 2U) | ASSERT_EQ(result.Value().ThermalStep()->Boundaries().size(), 2U) | EXPECT_DOUBLE_EQ(result.Value().ThermalModelBoundaries()[0U].value, 0.0) | EXPECT_DOUBLE_EQ(result.Value().ThermalStep()->Boundaries()[0U].value, 30.0) -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MapsApprovedShellThermalReference ThermalDomainMapping.MapsApprovedShellThermalReference; assertion 43개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MapsApprovedShellThermalReference 유지 원문 검사 body 및 assertion 동일. 55cab422db4e1520d96658c9b35707efad8d2f61960a1a9c91f2696e239f596f 55cab422db4e1520d96658c9b35707efad8d2f61960a1a9c91f2696e239f596f "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 729U) | ASSERT_EQ(domain.ThermalElements().Size(), 676U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 1U) | ASSERT_EQ(domain.ThermalSections().size(), 1U) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(step.name, ""Step-1"") | EXPECT_EQ(step.maximum_increments, 100000U) | EXPECT_EQ(step.nominal_increment, 1.) | EXPECT_EQ(step.time_period, 100.) | ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 100U) | EXPECT_EQ(grid.Value().Time(37U), 37.) | EXPECT_EQ(domain.ThermalMaterials()[0].Name(), ""Material-1"") | EXPECT_EQ(domain.ThermalMaterials()[0].Conductivity(), 54.) | EXPECT_EQ(domain.ThermalMaterials()[0].Density(), 7850.) | EXPECT_EQ(domain.ThermalMaterials()[0].SpecificHeat(), 460.) | EXPECT_EQ(domain.ThermalSections()[0].name, ""Set-1"") | EXPECT_EQ(domain.ThermalSections()[0].thickness, .5) | EXPECT_EQ(domain.ThermalSections()[0].location.file, path) | EXPECT_EQ(domain.ThermalSections()[0].location.line, 1421U) | EXPECT_EQ(domain.Nodes()[i].source_id.instance_name, ""Part-1-1"") | EXPECT_EQ(domain.Nodes()[i].source_id.source_label, static_cast(i + 1U)) | EXPECT_EQ(domain.ThermalElements()[i].SourceId().instance_name, ""Part-1-1"") | EXPECT_EQ(domain.ThermalElements()[i].SourceId().source_label, static_cast(i + 1U)) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), expected_boundary_labels.size()) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), step.Boundaries().size()) | EXPECT_EQ(model_bc.node_index, step_bc.node_index) | EXPECT_EQ(domain.Nodes()[model_bc.node_index].source_id.source_label, expected_boundary_labels[i]) | EXPECT_EQ(model_bc.dof, 11) | EXPECT_EQ(step_bc.dof, 11) | EXPECT_EQ(model_bc.value, 0.) | EXPECT_EQ(step_bc.value, 1000.) | EXPECT_EQ(model_bc.location.file, path) | EXPECT_LT(model_bc.location.line, step_bc.location.line) | ASSERT_EQ(domain.ElementSurfaces().size(), 1U) | ASSERT_EQ(domain.ElementSurfaces()[0].facets.size(), 169U) | EXPECT_EQ(domain.ElementSurfaces()[0].facets.front().source_element_label, 170) | EXPECT_EQ(domain.ElementSurfaces()[0].facets.back().source_element_label, 338) | EXPECT_EQ(domain.ElementSurfaces()[0].facets[0].source_element_type, ""DS4"") | ASSERT_EQ(domain.Warnings().size(), 6U) | EXPECT_EQ(std::count_if(domain.Warnings().begin(), domain.Warnings().end(), [&](const auto& warning) { return warning.location.file == path && warning.location.line == block.location.line && warning.keyword == block.canonical_name; }), 1)" "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 729U) | ASSERT_EQ(domain.ThermalElements().Size(), 676U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 1U) | ASSERT_EQ(domain.ThermalSections().size(), 1U) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(step.name, ""Step-1"") | EXPECT_EQ(step.maximum_increments, 100000U) | EXPECT_EQ(step.nominal_increment, 1.) | EXPECT_EQ(step.time_period, 100.) | ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 100U) | EXPECT_EQ(grid.Value().Time(37U), 37.) | EXPECT_EQ(domain.ThermalMaterials()[0].Name(), ""Material-1"") | EXPECT_EQ(domain.ThermalMaterials()[0].Conductivity(), 54.) | EXPECT_EQ(domain.ThermalMaterials()[0].Density(), 7850.) | EXPECT_EQ(domain.ThermalMaterials()[0].SpecificHeat(), 460.) | EXPECT_EQ(domain.ThermalSections()[0].name, ""Set-1"") | EXPECT_EQ(domain.ThermalSections()[0].thickness, .5) | EXPECT_EQ(domain.ThermalSections()[0].location.file, path) | EXPECT_EQ(domain.ThermalSections()[0].location.line, 1421U) | EXPECT_EQ(domain.Nodes()[i].source_id.instance_name, ""Part-1-1"") | EXPECT_EQ(domain.Nodes()[i].source_id.source_label, static_cast(i + 1U)) | EXPECT_EQ(domain.ThermalElements()[i].SourceId().instance_name, ""Part-1-1"") | EXPECT_EQ(domain.ThermalElements()[i].SourceId().source_label, static_cast(i + 1U)) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), expected_boundary_labels.size()) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), step.Boundaries().size()) | EXPECT_EQ(model_bc.node_index, step_bc.node_index) | EXPECT_EQ(domain.Nodes()[model_bc.node_index].source_id.source_label, expected_boundary_labels[i]) | EXPECT_EQ(model_bc.dof, 11) | EXPECT_EQ(step_bc.dof, 11) | EXPECT_EQ(model_bc.value, 0.) | EXPECT_EQ(step_bc.value, 1000.) | EXPECT_EQ(model_bc.location.file, path) | EXPECT_LT(model_bc.location.line, step_bc.location.line) | ASSERT_EQ(domain.ElementSurfaces().size(), 1U) | ASSERT_EQ(domain.ElementSurfaces()[0].facets.size(), 169U) | EXPECT_EQ(domain.ElementSurfaces()[0].facets.front().source_element_label, 170) | EXPECT_EQ(domain.ElementSurfaces()[0].facets.back().source_element_label, 338) | EXPECT_EQ(domain.ElementSurfaces()[0].facets[0].source_element_type, ""DS4"") | ASSERT_EQ(domain.Warnings().size(), 6U) | EXPECT_EQ(std::count_if(domain.Warnings().begin(), domain.Warnings().end(), [&](const auto& warning) { return warning.location.file == path && warning.location.line == block.location.line && warning.keyword == block.canonical_name; }), 1)" -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.StrictOutputAndRestartNoOps ThermalDomainMapping.StrictOutputAndRestartNoOps; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.StrictOutputAndRestartNoOps 유지 원문 검사 body 및 assertion 동일. 51e37954cc1bd09a41977f48f6977a1889e509d285ae1bde007e30b5345078ef 51e37954cc1bd09a41977f48f6977a1889e509d285ae1bde007e30b5345078ef 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.EveryAcceptedNoOpHasExactlyOneSourceWarning ThermalDomainMapping.EveryAcceptedNoOpHasExactlyOneSourceWarning; assertion 5개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.EveryAcceptedNoOpHasExactlyOneSourceWarning 유지 원문 검사 body 및 assertion 동일. f320f56a6a51fb244decaea008d505f0b1b7d96d0ed1c36dc537572256e87b74 f320f56a6a51fb244decaea008d505f0b1b7d96d0ed1c36dc537572256e87b74 ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(warnings.size(), blocks.size()) | EXPECT_EQ(std::count_if(warnings.begin(), warnings.end(), [&](const auto& w) { return w.severity == fesa::Severity::kWarning && w.keyword == block.second && w.location.file == input.Path() && w.location.line == line; }), 1) | EXPECT_DOUBLE_EQ( result.Value().ThermalInitialConditions()[0].station_values[0], 20.) ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(warnings.size(), blocks.size()) | EXPECT_EQ(std::count_if(warnings.begin(), warnings.end(), [&](const auto& w) { return w.severity == fesa::Severity::kWarning && w.keyword == block.second && w.location.file == input.Path() && w.location.line == line; }), 1) | EXPECT_DOUBLE_EQ( result.Value().ThermalInitialConditions()[0].station_values[0], 20.) -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.SurfaceFacetsAreResolvedAndPreserved ThermalDomainMapping.SurfaceFacetsAreResolvedAndPreserved; assertion 11개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.SurfaceFacetsAreResolvedAndPreserved 유지 원문 검사 body 및 assertion 동일. 1e33822a025e5c4a4e36a221f6e21dd2e83b6223c22d01f0f2bf0e2e4a150638 1e33822a025e5c4a4e36a221f6e21dd2e83b6223c22d01f0f2bf0e2e4a150638 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surfaces.size(), 2U) | ASSERT_EQ(surfaces[i].facets.size(), 1U) | EXPECT_EQ(facet.element_index, 0U) | EXPECT_EQ(facet.source_element_label, 1) | EXPECT_EQ(facet.instance_name_raw, ""I"") | EXPECT_EQ(facet.part_name_raw, ""P"") | EXPECT_EQ(facet.source_element_type, ""DS4"") | EXPECT_EQ(facet.side, side == ""SPOS"" ? fesa::ShellSurfaceSide::kSpos : fesa::ShellSurfaceSide::kSneg) | EXPECT_EQ(facet.member_kind, i == 0U ? fesa::SurfaceMemberKind::kDirect : fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(facet.first_member_location.line, LineOf(deck, (i == 0U ? ""I.1, "" : ""Faces, "") + side))" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surfaces.size(), 2U) | ASSERT_EQ(surfaces[i].facets.size(), 1U) | EXPECT_EQ(facet.element_index, 0U) | EXPECT_EQ(facet.source_element_label, 1) | EXPECT_EQ(facet.instance_name_raw, ""I"") | EXPECT_EQ(facet.part_name_raw, ""P"") | EXPECT_EQ(facet.source_element_type, ""DS4"") | EXPECT_EQ(facet.side, side == ""SPOS"" ? fesa::ShellSurfaceSide::kSpos : fesa::ShellSurfaceSide::kSneg) | EXPECT_EQ(facet.member_kind, i == 0U ? fesa::SurfaceMemberKind::kDirect : fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(facet.first_member_location.line, LineOf(deck, (i == 0U ? ""I.1, "" : ""Faces, "") + side))" -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsUnresolvedOrInvalidSurfaces ThermalDomainMapping.RejectsUnresolvedOrInvalidSurfaces; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsUnresolvedOrInvalidSurfaces 유지 원문 검사 body 및 assertion 동일. 678d79744318544126a5fab47e194fbb985efe58934d0728ef55b20156e7d91f 678d79744318544126a5fab47e194fbb985efe58934d0728ef55b20156e7d91f 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.PreprintAndPhysicalConstantsAreStrictAndSourceAware ThermalDomainMapping.PreprintAndPhysicalConstantsAreStrictAndSourceAware; assertion 3개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.PreprintAndPhysicalConstantsAreStrictAndSourceAware 유지 원문 검사 body 및 assertion 동일. 3b12f2919d0a6fdfa013a4ac38dbdce85622c99ad095e6f1f4c74ccef9eec6d2 3b12f2919d0a6fdfa013a4ac38dbdce85622c99ad095e6f1f4c74ccef9eec6d2 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""PHYSICAL CONSTANTS"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, 1U)" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""PHYSICAL CONSTANTS"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, 1U)" -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsChildOutputUnknownAndWrongNoOpScopes ThermalDomainMapping.RejectsChildOutputUnknownAndWrongNoOpScopes; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsChildOutputUnknownAndWrongNoOpScopes 유지 원문 검사 body 및 assertion 동일. 6b5c15e74febb98d3db79f8aef581dd44e658c4aa04714443914a23d5cba6117 6b5c15e74febb98d3db79f8aef581dd44e658c4aa04714443914a23d5cba6117 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MaterialConstantsAndSectionLinksAreStrict ThermalDomainMapping.MaterialConstantsAndSectionLinksAreStrict; assertion 1개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MaterialConstantsAndSectionLinksAreStrict 유지 원문 검사 body 및 assertion 동일. f4ccfe76b71133eea01edf7824c2b21d6e5d49bdad620c5d3f7bcc205c7d532f f4ccfe76b71133eea01edf7824c2b21d6e5d49bdad620c5d3f7bcc205c7d532f ASSERT_TRUE(result.HasValue()) ASSERT_TRUE(result.HasValue()) -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InitialTemperatureDefaultsAndOverlaps ThermalDomainMapping.InitialTemperatureDefaultsAndOverlaps; assertion 4개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InitialTemperatureDefaultsAndOverlaps 유지 원문 검사 body 및 assertion 동일. cff5684ec434d19c1c53df0be1764dad47e45d50bd4df30c490fb263894fbd0c cff5684ec434d19c1c53df0be1764dad47e45d50bd4df30c490fb263894fbd0c ASSERT_TRUE(unspecified.HasValue()) | EXPECT_TRUE(unspecified.Value().ThermalInitialConditions().empty()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(temperature, 20.) ASSERT_TRUE(unspecified.HasValue()) | EXPECT_TRUE(unspecified.Value().ThermalInitialConditions().empty()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(temperature, 20.) -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InactiveTargetsFailWithOriginalKeywordAndIdentity ThermalDomainMapping.InactiveTargetsFailWithOriginalKeywordAndIdentity; assertion 8개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InactiveTargetsFailWithOriginalKeywordAndIdentity 유지 원문 검사 body 및 assertion 동일. 83f7f07fbb31e1317402934ace845532b895851b979987760d55f5d4cd771562 83f7f07fbb31e1317402934ace845532b895851b979987760d55f5d4cd771562 "ASSERT_TRUE(accepted.HasValue()) | EXPECT_EQ(accepted.Value().Nodes().size(), 5U) | ASSERT_TRUE(view.HasValue()) | EXPECT_EQ(view.Value().ActiveThermalNodes().size(), 4U) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(diagnostic.entity_identity, ""99"") | EXPECT_EQ(diagnostic.location.line, LineOf(deck, replacement.second)) | EXPECT_NE(diagnostic.keyword, ""THERMAL"")" "ASSERT_TRUE(accepted.HasValue()) | EXPECT_EQ(accepted.Value().Nodes().size(), 5U) | ASSERT_TRUE(view.HasValue()) | EXPECT_EQ(view.Value().ActiveThermalNodes().size(), 4U) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(diagnostic.entity_identity, ""99"") | EXPECT_EQ(diagnostic.location.line, LineOf(deck, replacement.second)) | EXPECT_NE(diagnostic.keyword, ""THERMAL"")" -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ModelBoundaryInheritanceAndStepOverrideReachDofManager ThermalDomainMapping.ModelBoundaryInheritanceAndStepOverrideReachDofManager; assertion 9개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ModelBoundaryInheritanceAndStepOverrideReachDofManager 유지 원문 검사 body 및 assertion 동일. f7561b77de2a4c22260774a6681cea57b317458be3d0c6d27ebe1722d41297c0 f7561b77de2a4c22260774a6681cea57b317458be3d0c6d27ebe1722d41297c0 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), 4U) | ASSERT_EQ(domain.ThermalStep()->Boundaries().size(), 3U) | EXPECT_DOUBLE_EQ(domain.ThermalModelBoundaries()[0].value, 7.) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Boundaries()[0].value, -30.) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().ConstrainedDofs(), expected_dofs) | EXPECT_DOUBLE_EQ(dofs.Value().PrescribedValues()[i], expected_values[i]) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), 4U) | ASSERT_EQ(domain.ThermalStep()->Boundaries().size(), 3U) | EXPECT_DOUBLE_EQ(domain.ThermalModelBoundaries()[0].value, 7.) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Boundaries()[0].value, -30.) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().ConstrainedDofs(), expected_dofs) | EXPECT_DOUBLE_EQ(dofs.Value().PrescribedValues()[i], expected_values[i]) -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.BoundariesRejectConflictsAndUnsupportedRowsAtBothLevels ThermalDomainMapping.BoundariesRejectConflictsAndUnsupportedRowsAtBothLevels; assertion 1개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.BoundariesRejectConflictsAndUnsupportedRowsAtBothLevels 유지 원문 검사 body 및 assertion 동일. a8f827d53efc01de6f80689eaf293ddb96b5915e6b4ab8bcc73c1c1035a09da3 a8f827d53efc01de6f80689eaf293ddb96b5915e6b4ab8bcc73c1c1035a09da3 EXPECT_TRUE( MapText(Replace(ThermalDeck(), original, original + equal)).HasValue()) EXPECT_TRUE( MapText(Replace(ThermalDeck(), original, original + equal)).HasValue()) -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.SignedFluxRetainsRowOrderDuplicatesAndConstrainedTargets ThermalDomainMapping.SignedFluxRetainsRowOrderDuplicatesAndConstrainedTargets; assertion 8개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.SignedFluxRetainsRowOrderDuplicatesAndConstrainedTargets 유지 원문 검사 body 및 assertion 동일. 67fcb68684488e6a52db58d6d9d5968ea92bbe01cc27a8d2a942a3f41444bec9 67fcb68684488e6a52db58d6d9d5968ea92bbe01cc27a8d2a942a3f41444bec9 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 5U) | EXPECT_EQ(loads[i].node_index, nodes[i]) | EXPECT_EQ(loads[i].dof, dofs[i]) | EXPECT_DOUBLE_EQ(loads[i].power, powers[i]) | EXPECT_EQ(loads[i].source_order, i) | EXPECT_EQ(loads[1].location.line, loads[2].location.line) | EXPECT_LT(loads[3].location.line, loads[4].location.line) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 5U) | EXPECT_EQ(loads[i].node_index, nodes[i]) | EXPECT_EQ(loads[i].dof, dofs[i]) | EXPECT_DOUBLE_EQ(loads[i].power, powers[i]) | EXPECT_EQ(loads[i].source_order, i) | EXPECT_EQ(loads[1].location.line, loads[2].location.line) | EXPECT_LT(loads[3].location.line, loads[4].location.line) -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.FluxRejectsOptionsRowsAndWrongScopes ThermalDomainMapping.FluxRejectsOptionsRowsAndWrongScopes; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.FluxRejectsOptionsRowsAndWrongScopes 유지 원문 검사 body 및 assertion 동일. 81d3c024c63600240315286bb6e27e326334e1e331df08d355ae3a621a691140 81d3c024c63600240315286bb6e27e326334e1e331df08d355ae3a621a691140 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.TimeControlsUseSharedGridIncludingInputCellBoundaries ThermalDomainMapping.TimeControlsUseSharedGridIncludingInputCellBoundaries; assertion 12개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.TimeControlsUseSharedGridIncludingInputCellBoundaries 유지 원문 검사 body 및 assertion 동일. ef1ee468ae9c492f40c424c0c3deb777f280c6bb9adc1c2fff05a8f58203abb9 ef1ee468ae9c492f40c424c0c3deb777f280c6bb9adc1c2fff05a8f58203abb9 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(step.nominal_increment, item.increment) | EXPECT_EQ(step.time_period, item.period) | ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), item.count) | EXPECT_DOUBLE_EQ(grid.Value().Time(item.count), item.period) | EXPECT_EQ(grid.Value().Delta(item.count), item.last) | ASSERT_TRUE(upper.HasValue()) | EXPECT_EQ(upper.Value().ThermalStep()->maximum_increments, 4294967295U) | ASSERT_TRUE(defaults.HasValue()) | EXPECT_EQ(defaults.Value().ThermalStep()->maximum_increments, 100U) | EXPECT_TRUE(MapText(deck).HasValue()) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(step.nominal_increment, item.increment) | EXPECT_EQ(step.time_period, item.period) | ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), item.count) | EXPECT_DOUBLE_EQ(grid.Value().Time(item.count), item.period) | EXPECT_EQ(grid.Value().Delta(item.count), item.last) | ASSERT_TRUE(upper.HasValue()) | EXPECT_EQ(upper.Value().ThermalStep()->maximum_increments, 4294967295U) | ASSERT_TRUE(defaults.HasValue()) | EXPECT_EQ(defaults.Value().ThermalStep()->maximum_increments, 100U) | EXPECT_TRUE(MapText(deck).HasValue()) -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsInvalidTimeAndMixedProceduresInEitherOrder ThermalDomainMapping.RejectsInvalidTimeAndMixedProceduresInEitherOrder; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsInvalidTimeAndMixedProceduresInEitherOrder 유지 원문 검사 body 및 assertion 동일. 5b1320ef7da28a420e69f4a16c2ee726c95f57abeeb08cb2f1b5442cead6914c 5b1320ef7da28a420e69f4a16c2ee726c95f57abeeb08cb2f1b5442cead6914c 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ThermalMaterialAndSourceProvenanceArePreserved ThermalDomainMapping.ThermalMaterialAndSourceProvenanceArePreserved; assertion 20개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ThermalMaterialAndSourceProvenanceArePreserved 유지 원문 검사 body 및 assertion 동일. a83d5e4753e50f897bd60b99b3825dd7ac3d14d1af14ed384a814d45662478b6 a83d5e4753e50f897bd60b99b3825dd7ac3d14d1af14ed384a814d45662478b6 "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalMaterials().Size(), 2U) | ASSERT_EQ(domain.ThermalSections().size(), 1U) | EXPECT_EQ(section.material_index, 1U) | EXPECT_EQ(section.name, ""E"") | EXPECT_EQ(section.source_id.source_label_text, ""E"") | EXPECT_EQ(section.location.file, input.Path()) | EXPECT_EQ(section.location.line, LineOf(deck, ""*Shell Section"")) | EXPECT_DOUBLE_EQ(section.thickness, .5) | EXPECT_EQ(material.Name(), ""M"") | EXPECT_DOUBLE_EQ(material.Conductivity(), 54.) | EXPECT_DOUBLE_EQ(material.Density(), 7850.) | EXPECT_DOUBLE_EQ(material.SpecificHeat(), 460.) | EXPECT_EQ(material.Location().line, LineOf(deck, ""*Material, name=M"")) | EXPECT_EQ(domain.ThermalElements()[0].SourceId().instance_name, ""I"") | EXPECT_EQ(domain.ThermalElements()[0].SourceId().source_label, 1) | EXPECT_EQ(domain.ThermalStep()->name, ""Heat"") | EXPECT_EQ(domain.ThermalStep()->location.file, input.Path()) | EXPECT_EQ(domain.ThermalStep()->location.line, LineOf(deck, ""*Step""))" "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalMaterials().Size(), 2U) | ASSERT_EQ(domain.ThermalSections().size(), 1U) | EXPECT_EQ(section.material_index, 1U) | EXPECT_EQ(section.name, ""E"") | EXPECT_EQ(section.source_id.source_label_text, ""E"") | EXPECT_EQ(section.location.file, input.Path()) | EXPECT_EQ(section.location.line, LineOf(deck, ""*Shell Section"")) | EXPECT_DOUBLE_EQ(section.thickness, .5) | EXPECT_EQ(material.Name(), ""M"") | EXPECT_DOUBLE_EQ(material.Conductivity(), 54.) | EXPECT_DOUBLE_EQ(material.Density(), 7850.) | EXPECT_DOUBLE_EQ(material.SpecificHeat(), 460.) | EXPECT_EQ(material.Location().line, LineOf(deck, ""*Material, name=M"")) | EXPECT_EQ(domain.ThermalElements()[0].SourceId().instance_name, ""I"") | EXPECT_EQ(domain.ThermalElements()[0].SourceId().source_label, 1) | EXPECT_EQ(domain.ThermalStep()->name, ""Heat"") | EXPECT_EQ(domain.ThermalStep()->location.file, input.Path()) | EXPECT_EQ(domain.ThermalStep()->location.line, LineOf(deck, ""*Step""))" -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.FiniteThermalScalarsPreserveSubnormalAndSignedValues ThermalDomainMapping.FiniteThermalScalarsPreserveSubnormalAndSignedValues; assertion 9개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.FiniteThermalScalarsPreserveSubnormalAndSignedValues 유지 원문 검사 body 및 assertion 동일. 3a8d71661b54b80493cecf844c9354c0030c40b2616bd05a29aa13346381261d 3a8d71661b54b80493cecf844c9354c0030c40b2616bd05a29aa13346381261d ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.ThermalMaterials()[0].Conductivity(), tiny) | EXPECT_EQ(domain.ThermalMaterials()[0].Density(), tiny) | EXPECT_EQ(domain.ThermalMaterials()[0].SpecificHeat(), tiny) | EXPECT_EQ(domain.ThermalSections()[0].thickness, tiny) | EXPECT_EQ(domain.ThermalInitialConditions()[0].station_values[4], -tiny) | EXPECT_EQ(domain.ThermalStep()->Boundaries()[0].value, -tiny) | EXPECT_EQ(domain.ThermalStep()->Loads()[0].power, -tiny) | ASSERT_TRUE(result.HasValue()) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.ThermalMaterials()[0].Conductivity(), tiny) | EXPECT_EQ(domain.ThermalMaterials()[0].Density(), tiny) | EXPECT_EQ(domain.ThermalMaterials()[0].SpecificHeat(), tiny) | EXPECT_EQ(domain.ThermalSections()[0].thickness, tiny) | EXPECT_EQ(domain.ThermalInitialConditions()[0].station_values[4], -tiny) | EXPECT_EQ(domain.ThermalStep()->Boundaries()[0].value, -tiny) | EXPECT_EQ(domain.ThermalStep()->Loads()[0].power, -tiny) | ASSERT_TRUE(result.HasValue()) -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ThermalSetAndSurfaceDuplicatesExpandOnce ThermalDomainMapping.ThermalSetAndSurfaceDuplicatesExpandOnce; assertion 5개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ThermalSetAndSurfaceDuplicatesExpandOnce 유지 원문 검사 body 및 assertion 동일. 70f6a3c60352f7322e1271a4458f03823deec7ac49e85cd7ff385d20de9f3c30 70f6a3c60352f7322e1271a4458f03823deec7ac49e85cd7ff385d20de9f3c30 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().ThermalElements().Size(), 1U) | ASSERT_EQ(result.Value().ElementSurfaces().size(), 1U) | EXPECT_EQ(result.Value().ElementSurfaces()[0].facets.size(), 1U) | EXPECT_EQ(result.Value().Warnings().size(), 1U) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().ThermalElements().Size(), 1U) | ASSERT_EQ(result.Value().ElementSurfaces().size(), 1U) | EXPECT_EQ(result.Value().ElementSurfaces()[0].facets.size(), 1U) | EXPECT_EQ(result.Value().Warnings().size(), 1U) -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.DeferredFailuresRetainExactInputLocationAndIdentity ThermalDomainMapping.DeferredFailuresRetainExactInputLocationAndIdentity; assertion 9개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.DeferredFailuresRetainExactInputLocationAndIdentity 유지 원문 검사 body 및 assertion 동일. 01f444fd4378662acd9566174387017dd3939056ee5ec7901884183c67c6900a 01f444fd4378662acd9566174387017dd3939056ee5ec7901884183c67c6900a "ASSERT_TRUE(parsed.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(diagnostic.location.file, input.Path()) | EXPECT_EQ(diagnostic.location.line, LineOf(deck, ""1., 100."")) | EXPECT_EQ(diagnostic.keyword, ""HEAT TRANSFER"") | EXPECT_EQ(diagnostic.entity_identity, ""Heat"") | ASSERT_FALSE(missing_contact.HasValue()) | EXPECT_EQ(missing_contact.GetStatus().Diagnostics()[0].location.line, 1U) | EXPECT_EQ(missing_contact.GetStatus().Diagnostics()[0].keyword, ""PREPRINT"")" "ASSERT_TRUE(parsed.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(diagnostic.location.file, input.Path()) | EXPECT_EQ(diagnostic.location.line, LineOf(deck, ""1., 100."")) | EXPECT_EQ(diagnostic.keyword, ""HEAT TRANSFER"") | EXPECT_EQ(diagnostic.entity_identity, ""Heat"") | ASSERT_FALSE(missing_contact.HasValue()) | EXPECT_EQ(missing_contact.GetStatus().Diagnostics()[0].location.line, 1U) | EXPECT_EQ(missing_contact.GetStatus().Diagnostics()[0].keyword, ""PREPRINT"")" -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsMixedElementsAndWrongThermalMaterialScopes ThermalDomainMapping.RejectsMixedElementsAndWrongThermalMaterialScopes; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsMixedElementsAndWrongThermalMaterialScopes 유지 원문 검사 body 및 assertion 동일. ff984f852aeb3c53c270694ea7e4eaa2015891728d1e0a86260abf39206b5c92 ff984f852aeb3c53c270694ea7e4eaa2015891728d1e0a86260abf39206b5c92 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetResolvesSectionCaseInsensitively ThermalDomainMapping.InlineElementSetResolvesSectionCaseInsensitively; assertion 12개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetResolvesSectionCaseInsensitively 유지 원문 검사 body 및 assertion 동일. 11a43f66380de877c7ff381c789e0b363e357811dff150b5bd5e0b5d0fa75644 11a43f66380de877c7ff381c789e0b363e357811dff150b5bd5e0b5d0fa75644 "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ElementSets().size(), 1U) | EXPECT_EQ(set.name, ""inlineShells"") | EXPECT_EQ(set.instance_name, ""I"") | EXPECT_EQ(set.element_indices, std::vector{0U}) | EXPECT_EQ(set.location.file, input.Path()) | EXPECT_EQ(set.location.line, LineOf(deck, ""*Element"")) | ASSERT_EQ(domain.ThermalElements().Size(), 1U) | EXPECT_EQ(domain.ThermalElements()[0].ThermalSectionIndex(), 0U) | EXPECT_EQ(domain.ThermalSections()[0].name, ""INLINESHELLS"") | EXPECT_EQ(domain.ThermalSections()[0].location.line, LineOf(deck, ""*Shell Section""))" "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ElementSets().size(), 1U) | EXPECT_EQ(set.name, ""inlineShells"") | EXPECT_EQ(set.instance_name, ""I"") | EXPECT_EQ(set.element_indices, std::vector{0U}) | EXPECT_EQ(set.location.file, input.Path()) | EXPECT_EQ(set.location.line, LineOf(deck, ""*Element"")) | ASSERT_EQ(domain.ThermalElements().Size(), 1U) | EXPECT_EQ(domain.ThermalElements()[0].ThermalSectionIndex(), 0U) | EXPECT_EQ(domain.ThermalSections()[0].name, ""INLINESHELLS"") | EXPECT_EQ(domain.ThermalSections()[0].location.line, LineOf(deck, ""*Shell Section""))" -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetPreservesElementRowOrder ThermalDomainMapping.InlineElementSetPreservesElementRowOrder; assertion 8개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetPreservesElementRowOrder 유지 원문 검사 body 및 assertion 동일. 3f5d500fe86f7405086319ff4905bc60894fb8d080af74f6df1f3c7a3b4aa299 3f5d500fe86f7405086319ff4905bc60894fb8d080af74f6df1f3c7a3b4aa299 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ElementSets().size(), 1U) | ASSERT_EQ(domain.ElementSets()[0].element_indices.size(), 2U) | EXPECT_EQ(domain.ElementSets()[0].element_indices, (std::vector{0U, 1U})) | EXPECT_EQ(domain.ThermalElements()[0].SourceId().source_label, 7) | EXPECT_EQ(domain.ThermalElements()[1].SourceId().source_label, 3) | EXPECT_EQ(domain.ThermalElements()[0].ThermalSectionIndex(), 0U) | EXPECT_EQ(domain.ThermalElements()[1].ThermalSectionIndex(), 0U) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ElementSets().size(), 1U) | ASSERT_EQ(domain.ElementSets()[0].element_indices.size(), 2U) | EXPECT_EQ(domain.ElementSets()[0].element_indices, (std::vector{0U, 1U})) | EXPECT_EQ(domain.ThermalElements()[0].SourceId().source_label, 7) | EXPECT_EQ(domain.ThermalElements()[1].SourceId().source_label, 3) | EXPECT_EQ(domain.ThermalElements()[0].ThermalSectionIndex(), 0U) | EXPECT_EQ(domain.ThermalElements()[1].ThermalSectionIndex(), 0U) -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetRejectsInvalidAndDuplicateDefinitions ThermalDomainMapping.InlineElementSetRejectsInvalidAndDuplicateDefinitions; assertion 3개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetRejectsInvalidAndDuplicateDefinitions 유지 원문 검사 body 및 assertion 동일. 2b667a74ce81cfa3de66ebbe8049794f9416f01506fae6df68dc3d3e97ea91d1 2b667a74ce81cfa3de66ebbe8049794f9416f01506fae6df68dc3d3e97ea91d1 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""ELEMENT"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, LineOf(deck, ""*Element""))" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""ELEMENT"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, LineOf(deck, ""*Element""))" -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsBeamSectionAndBeamOnlyChildrenAtTheirSource ThermalDomainMapping.RejectsBeamSectionAndBeamOnlyChildrenAtTheirSource; assertion 3개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsBeamSectionAndBeamOnlyChildrenAtTheirSource 유지 원문 검사 body 및 assertion 동일. d2f88d94560f7a9f695eebc3563b633cb0e076be17328f2fbc56c6793fb58c22 d2f88d94560f7a9f695eebc3563b633cb0e076be17328f2fbc56c6793fb58c22 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""BEAM GENERAL SECTION"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, LineOf(deck, ""*Beam General Section""))" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""BEAM GENERAL SECTION"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, LineOf(deck, ""*Beam General Section""))" -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsMalformedDs4ConnectivityAndElementOptions ThermalDomainMapping.RejectsMalformedDs4ConnectivityAndElementOptions; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsMalformedDs4ConnectivityAndElementOptions 유지 원문 검사 body 및 assertion 동일. efab1ebde5819473f0bd8e7adcbdc08d2be96827dca23ef798d1a485c709d008 efab1ebde5819473f0bd8e7adcbdc08d2be96827dca23ef798d1a485c709d008 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp support@1-146 helper/oracle/fixture/include/static assertion 구간: TemporaryInput, MapText, ThermalDeck, Replace, LineOf, ExpectRejected, Number tests/unit/io/abaqus/thermal_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9791c2574febe33443dffbd2e64441a7c8c962fccb165f678b39cc7d550b2a3e 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/abaqus/thermal_domain_test.cpp support@1049-1050 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/thermal_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 55a2e65c40382b393210d36625666ce014008eaf3cbfbe9610a6dfaf0f840d11 55a2e65c40382b393210d36625666ce014008eaf3cbfbe9610a6dfaf0f840d11 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.RejectsDefaultStateBeforeCreatingOutput DynamicHdf5ResultsWriter.RejectsDefaultStateBeforeCreatingOutput; assertion 5개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.RejectsDefaultStateBeforeCreatingOutput 유지 원문 검사 body 및 assertion 동일. 2b67a7e7a070056ecb65aa9297b70593d65c453c4475315d2cff3fe0018e5846 2b67a7e7a070056ecb65aa9297b70593d65c453c4475315d2cff3fe0018e5846 "ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-output-schema"") | EXPECT_FALSE(std::filesystem::exists(output.Path()))" "ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-output-schema"") | EXPECT_FALSE(std::filesystem::exists(output.Path()))" -Refactor tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.SeparatesReducedFilterCombinationFromLegacyDriver DynamicHdf5ResultsWriter.SeparatesReducedFilterCombinationFromLegacyDriver; assertion 8개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.SeparatesReducedFilterCombinationFromLegacyDriver 유지 원문 검사 body 및 assertion 동일. 6e1f7161506bb30dec1b6476fb08a144bf4ad5451198473973be60597f2e2740 6e1f7161506bb30dec1b6476fb08a144bf4ad5451198473973be60597f2e2740 "ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE(writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(ReadAttribute(metadata.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 2U) | EXPECT_EQ(ReadString(metadata.Get(), ""time_integration_formulation""), ""reduced-coordinate-HHT-with-physical-rate-reconstruction"") | EXPECT_EQ(ReadAttribute(auxiliary.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 2U) | EXPECT_EQ(ReadString(auxiliary.Get(), ""quantity_semantics""), ""full-chart-HHT-filter-combination-not-predictor-driver"") | EXPECT_EQ(ReadString(physical.Get(), ""quantity_semantics""), ""physical-endpoint-chart-acceleration"")" "ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE(writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(ReadAttribute(metadata.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 2U) | EXPECT_EQ(ReadString(metadata.Get(), ""time_integration_formulation""), ""reduced-coordinate-HHT-with-physical-rate-reconstruction"") | EXPECT_EQ(ReadAttribute(auxiliary.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 2U) | EXPECT_EQ(ReadString(auxiliary.Get(), ""quantity_semantics""), ""full-chart-HHT-filter-combination-not-predictor-driver"") | EXPECT_EQ(ReadString(physical.Get(), ""quantity_semantics""), ""physical-endpoint-chart-acceleration"")" -Refactor tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.WritesCompletePhysicalClampedHistoryAndSchema DynamicHdf5ResultsWriter.WritesCompletePhysicalClampedHistoryAndSchema; assertion 42개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.WritesCompletePhysicalClampedHistoryAndSchema 유지 원문 검사 body 및 assertion 동일. 15b4e67c491410f17a9b661b200e35a71e79de2db81b9007d037a8d82986bb60 15b4e67c491410f17a9b661b200e35a71e79de2db81b9007d037a8d82986bb60 "ASSERT_TRUE(status.IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(ReadString(metadata.Get(), ""feature_id""), ""hht-implicit-dynamics"") | EXPECT_EQ(ReadString(metadata.Get(), ""analysis_procedure""), ""hht-implicit-dynamics"") | EXPECT_EQ(ReadString(metadata.Get(), ""source_step_name""), ""Transient Load"") | EXPECT_EQ(ReadString(metadata.Get(), ""mass_formulation""), ""nodal-lumped-kinetic"") | EXPECT_EQ(ReadString(metadata.Get(), ""acceleration_convention""), ""physical-endpoint-and-auxiliary-separated"") | EXPECT_EQ(ReadString(metadata.Get(), ""initial_state""), ""zero-q-v-step-load-0+"") | EXPECT_EQ(ReadString(metadata.Get(), ""unit_system_label""), ""consistent-input-units"") | EXPECT_EQ(ReadAttribute(metadata.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 1U) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""alpha"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), -0.05) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""beta"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), 0.275625) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""gamma"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), 0.55) | ASSERT_GE(H5Dread(density.Get(), density_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &density_row), 0) | EXPECT_EQ(density_row.id, 0U) | EXPECT_DOUBLE_EQ(density_row.rho, 2.0) | EXPECT_GT(H5Tequal(mask_type.Get(), H5T_STD_U8LE), 0) | ASSERT_GE(H5Dread(mask.Get(), H5T_NATIVE_UINT8, H5S_ALL, H5S_ALL, H5P_DEFAULT, constraints.data()), 0) | EXPECT_EQ(value, 1U) | EXPECT_EQ(ReadDoubles(file.Get(), ""/model/prescribed_displacement"", {4U, 6U}), std::vector(24U, 0.0)) | EXPECT_EQ(H5Lexists(file.Get(), ""/model/prescribed_displacement_start"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/model/prescribed_displacement_target"", H5P_DEFAULT), 0) | EXPECT_EQ(ReadString(dataset.Get(), ""component_names""), expected.components) | EXPECT_FALSE( ReadString(dataset.Get(), ""component_unit_dimensions"").empty()) | EXPECT_FALSE(ReadString(dataset.Get(), ""coordinate_system"").empty()) | EXPECT_FALSE(ReadString(dataset.Get(), ""location"").empty()) | EXPECT_EQ(ReadString(dataset.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadString(dataset.Get(), ""source_step_name""), ""Transient Load"") | EXPECT_EQ(ReadAttribute(dataset.Get(), ""frame_index"", H5T_STD_U64LE, H5T_NATIVE_UINT64), index) | EXPECT_EQ(ReadAttribute(dataset.Get(), ""increment_index"", H5T_STD_U64LE, H5T_NATIVE_UINT64), index) | EXPECT_EQ(ReadAttribute(dataset.Get(), ""is_initial"", H5T_STD_U8LE, H5T_NATIVE_UINT8), index == 0U ? 1U : 0U) | EXPECT_DOUBLE_EQ(ReadAttribute(dataset.Get(), ""time"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), static_cast(index) * 0.25) | EXPECT_EQ(H5Aexists(dataset.Get(), ""load_factor""), 0) | EXPECT_DOUBLE_EQ( values[entry], entry % 9U == 0U || entry % 9U == 4U || entry % 9U == 8U ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ(values[entry], entry % 3U == 2U ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ( values[entry], force ? (leaf == ""nodal/generalized_external_force"" ? 4.0 : -4.0) : 0.0) | EXPECT_EQ(ReadString(stress.Get(), ""source_element_type_dataset""), ""/model/elements.source_element_type"") | EXPECT_EQ(ReadString(stress.Get(), ""midsurface_location_dataset""), ""/model/shell/midsurface_locations"") | EXPECT_EQ(ReadString(stress.Get(), ""section_position_dataset""), ""/model/shell/section_positions"") | EXPECT_EQ(ReadString(stress.Get(), ""local_frame_dataset""), ""/steps/Step-1/frames/2/element/shell/local_frame"") | EXPECT_GE(H5Tget_member_index(diagnostic_type.Get(), ""source_file""), 0) | EXPECT_GE(H5Tget_member_index(diagnostic_type.Get(), ""source_line""), 0)" "ASSERT_TRUE(status.IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(ReadString(metadata.Get(), ""feature_id""), ""hht-implicit-dynamics"") | EXPECT_EQ(ReadString(metadata.Get(), ""analysis_procedure""), ""hht-implicit-dynamics"") | EXPECT_EQ(ReadString(metadata.Get(), ""source_step_name""), ""Transient Load"") | EXPECT_EQ(ReadString(metadata.Get(), ""mass_formulation""), ""nodal-lumped-kinetic"") | EXPECT_EQ(ReadString(metadata.Get(), ""acceleration_convention""), ""physical-endpoint-and-auxiliary-separated"") | EXPECT_EQ(ReadString(metadata.Get(), ""initial_state""), ""zero-q-v-step-load-0+"") | EXPECT_EQ(ReadString(metadata.Get(), ""unit_system_label""), ""consistent-input-units"") | EXPECT_EQ(ReadAttribute(metadata.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 1U) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""alpha"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), -0.05) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""beta"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), 0.275625) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""gamma"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), 0.55) | ASSERT_GE(H5Dread(density.Get(), density_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &density_row), 0) | EXPECT_EQ(density_row.id, 0U) | EXPECT_DOUBLE_EQ(density_row.rho, 2.0) | EXPECT_GT(H5Tequal(mask_type.Get(), H5T_STD_U8LE), 0) | ASSERT_GE(H5Dread(mask.Get(), H5T_NATIVE_UINT8, H5S_ALL, H5S_ALL, H5P_DEFAULT, constraints.data()), 0) | EXPECT_EQ(value, 1U) | EXPECT_EQ(ReadDoubles(file.Get(), ""/model/prescribed_displacement"", {4U, 6U}), std::vector(24U, 0.0)) | EXPECT_EQ(H5Lexists(file.Get(), ""/model/prescribed_displacement_start"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/model/prescribed_displacement_target"", H5P_DEFAULT), 0) | EXPECT_EQ(ReadString(dataset.Get(), ""component_names""), expected.components) | EXPECT_FALSE( ReadString(dataset.Get(), ""component_unit_dimensions"").empty()) | EXPECT_FALSE(ReadString(dataset.Get(), ""coordinate_system"").empty()) | EXPECT_FALSE(ReadString(dataset.Get(), ""location"").empty()) | EXPECT_EQ(ReadString(dataset.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadString(dataset.Get(), ""source_step_name""), ""Transient Load"") | EXPECT_EQ(ReadAttribute(dataset.Get(), ""frame_index"", H5T_STD_U64LE, H5T_NATIVE_UINT64), index) | EXPECT_EQ(ReadAttribute(dataset.Get(), ""increment_index"", H5T_STD_U64LE, H5T_NATIVE_UINT64), index) | EXPECT_EQ(ReadAttribute(dataset.Get(), ""is_initial"", H5T_STD_U8LE, H5T_NATIVE_UINT8), index == 0U ? 1U : 0U) | EXPECT_DOUBLE_EQ(ReadAttribute(dataset.Get(), ""time"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), static_cast(index) * 0.25) | EXPECT_EQ(H5Aexists(dataset.Get(), ""load_factor""), 0) | EXPECT_DOUBLE_EQ( values[entry], entry % 9U == 0U || entry % 9U == 4U || entry % 9U == 8U ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ(values[entry], entry % 3U == 2U ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ( values[entry], force ? (leaf == ""nodal/generalized_external_force"" ? 4.0 : -4.0) : 0.0) | EXPECT_EQ(ReadString(stress.Get(), ""source_element_type_dataset""), ""/model/elements.source_element_type"") | EXPECT_EQ(ReadString(stress.Get(), ""midsurface_location_dataset""), ""/model/shell/midsurface_locations"") | EXPECT_EQ(ReadString(stress.Get(), ""section_position_dataset""), ""/model/shell/section_positions"") | EXPECT_EQ(ReadString(stress.Get(), ""local_frame_dataset""), ""/steps/Step-1/frames/2/element/shell/local_frame"") | EXPECT_GE(H5Tget_member_index(diagnostic_type.Get(), ""source_file""), 0) | EXPECT_GE(H5Tget_member_index(diagnostic_type.Get(), ""source_line""), 0)" -Refactor tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.PreservesSeparateSuppliedEndpointAndAuxiliaryEvidence DynamicHdf5ResultsWriter.PreservesSeparateSuppliedEndpointAndAuxiliaryEvidence; assertion 9개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.PreservesSeparateSuppliedEndpointAndAuxiliaryEvidence 유지 원문 검사 body 및 assertion 동일. 0e68645100a4807b87bd6d9a6dba22f0cdbdb588a65f032dfe2eac6c0c11487d 0e68645100a4807b87bd6d9a6dba22f0cdbdb588a65f032dfe2eac6c0c11487d "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/acceleration"", {4U, 6U})[0U], 2.0) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/algorithmic_acceleration"", {4U, 6U})[0U], 3.0) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/generalized_inertia_force"", {4U, 6U})[0U], 5.0) | EXPECT_EQ(ReadDoubles(file.Get(), root + ""global/energy"", {5U}), (std::vector{6.0, 7.0, 8.0, 9.0, 12.0})) | EXPECT_EQ(ReadString(acceleration.Get(), ""rotation_representation""), ""total-rotation-vector-chart"") | EXPECT_EQ(ReadString(acceleration.Get(), ""quantity_semantics""), ""physical-endpoint-chart-acceleration"")" "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/acceleration"", {4U, 6U})[0U], 2.0) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/algorithmic_acceleration"", {4U, 6U})[0U], 3.0) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/generalized_inertia_force"", {4U, 6U})[0U], 5.0) | EXPECT_EQ(ReadDoubles(file.Get(), root + ""global/energy"", {5U}), (std::vector{6.0, 7.0, 8.0, 9.0, 12.0})) | EXPECT_EQ(ReadString(acceleration.Get(), ""rotation_representation""), ""total-rotation-vector-chart"") | EXPECT_EQ(ReadString(acceleration.Get(), ""quantity_semantics""), ""physical-endpoint-chart-acceleration"")" -Refactor tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.ConvertsPartialConstraintMomentToSpatialReaction DynamicHdf5ResultsWriter.ConvertsPartialConstraintMomentToSpatialReaction; assertion 9개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.ConvertsPartialConstraintMomentToSpatialReaction 유지 원문 검사 body 및 assertion 동일. f825bce2933be89196cd7c0291501abd4ead25e31d9986f7762c497e92748702 f825bce2933be89196cd7c0291501abd4ead25e31d9986f7762c497e92748702 ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_DOUBLE_EQ(generalized[3U], 5.0) | EXPECT_DOUBLE_EQ(generalized[4U], 0.0) | EXPECT_DOUBLE_EQ(generalized[5U], 0.0) | EXPECT_NEAR(spatial[3U], 5.0 * (1.0 - coefficient * 0.13), 1.0e-14) | EXPECT_NEAR(spatial[4U], 0.75, 1.0e-14) | EXPECT_NEAR(spatial[5U], -0.5, 1.0e-14) ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_DOUBLE_EQ(generalized[3U], 5.0) | EXPECT_DOUBLE_EQ(generalized[4U], 0.0) | EXPECT_DOUBLE_EQ(generalized[5U], 0.0) | EXPECT_NEAR(spatial[3U], 5.0 * (1.0 - coefficient * 0.13), 1.0e-14) | EXPECT_NEAR(spatial[4U], 0.75, 1.0e-14) | EXPECT_NEAR(spatial[5U], -0.5, 1.0e-14) -Refactor tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.IncompleteOrMismatchedHistoryPreservesExistingFile DynamicHdf5ResultsWriter.IncompleteOrMismatchedHistoryPreservesExistingFile; assertion 9개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.IncompleteOrMismatchedHistoryPreservesExistingFile 유지 원문 검사 body 및 assertion 동일. ad2c45f94851936a7e87cfed7a14d272db0b75733b9f719eb64af3ce2b90d231 ad2c45f94851936a7e87cfed7a14d272db0b75733b9f719eb64af3ce2b90d231 "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), ""previous-result"") | ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, index)) .IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *other.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), ""previous-result"") | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), valid_bytes)" "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), ""previous-result"") | ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, index)) .IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *other.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), ""previous-result"") | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), valid_bytes)" -Refactor tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.FailedAtomicReplacementPreservesPreviousBytes DynamicHdf5ResultsWriter.FailedAtomicReplacementPreservesPreviousBytes; assertion 6개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.FailedAtomicReplacementPreservesPreviousBytes 유지 원문 검사 body 및 assertion 동일. d850c859b3d1569738581059ef0ee47cc054602b036a96ec36581c643c103909 d850c859b3d1569738581059ef0ee47cc054602b036a96ec36581c643c103909 "ASSERT_NE(locked, INVALID_HANDLE_VALUE) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(CloseHandle(locked)) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""hdf5-finalization-failure"") | EXPECT_EQ(ReadBytes(output.Path()), ""locked-previous-result"")" "ASSERT_NE(locked, INVALID_HANDLE_VALUE) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(CloseHandle(locked)) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""hdf5-finalization-failure"") | EXPECT_EQ(ReadBytes(output.Path()), ""locked-previous-result"")" -Refactor tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp support@1-254 helper/oracle/fixture/include/static assertion 구간: MakeDefinition, if, Fixture, MakeFixture, MakeFrame, TempFile, Path, CommitHistory, ReadBytes, ReadString, ReadAttribute, ReadDoubles, ExpectCompound tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 703c272cdd720ce3a45edcd79bbc0fc04178d27f236c2b72c3fea95c54ceaf1e 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp support@671-672 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 249f07429c5bb0dd50db784f6be559e15db7c705baa3db44e0591c9c7914d9e3 249f07429c5bb0dd50db784f6be559e15db7c705baa3db44e0591c9c7914d9e3 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp EigenHdf5ResultsWriter.WritesModalSchemaAndRejectsTamperedState EigenHdf5ResultsWriter.WritesModalSchemaAndRejectsTamperedState; assertion 27개 tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp EigenHdf5ResultsWriter.WritesModalSchemaAndRejectsTamperedState 유지 원문 검사 body 및 assertion 동일. 8ff5899d7d3dd0584e34a8b619ece2228a6520e3fee41e10e038d73c57656e93 8ff5899d7d3dd0584e34a8b619ece2228a6520e3fee41e10e038d73c57656e93 "ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(execution.HasValue()) | ASSERT_TRUE(writer.Write(path, domain, state, {}).IsOk()) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/modes"", H5P_DEFAULT), 0) | ASSERT_GE(controls, 0) | ASSERT_GE(H5Dread(controls, H5T_NATIVE_INT64, H5S_ALL, H5S_ALL, H5P_DEFAULT, stored_controls.data()), 0) | EXPECT_EQ(stored_controls[5U], 0) | EXPECT_GE(H5Dclose(controls), 0) | EXPECT_GE(H5Fclose(file), 0) | EXPECT_FALSE(writer.Write(path, domain, candidate, {}).IsOk()) | EXPECT_TRUE(retained == original) | ASSERT_NE(lock, INVALID_HANDLE_VALUE) | EXPECT_NE(CloseHandle(lock), 0) | ASSERT_FALSE(locked_write.IsOk()) | ASSERT_FALSE(locked_write.Diagnostics().empty()) | EXPECT_EQ(locked_write.Diagnostics()[0].code, ""hdf5-finalization-failure"") | EXPECT_EQ(after_failure, original) | ASSERT_TRUE( fesa::hdf5_internal::SelfCheckEigenFile(path, domain, state, {}).IsOk()) | ASSERT_GE(corrupt_file, 0) | ASSERT_GE(nodes, 0) | ASSERT_GE(H5Tinsert(id_type, ""internal_node_id"", 0U, H5T_NATIVE_UINT64), 0) | ASSERT_GE(H5Dwrite(nodes, id_type, H5S_ALL, H5S_ALL, H5P_DEFAULT, duplicate_ids.data()), 0) | EXPECT_GE(H5Tclose(id_type), 0) | EXPECT_GE(H5Dclose(nodes), 0) | EXPECT_GE(H5Fclose(corrupt_file), 0) | EXPECT_FALSE( fesa::hdf5_internal::SelfCheckEigenFile(path, domain, state, {}).IsOk())" "ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(execution.HasValue()) | ASSERT_TRUE(writer.Write(path, domain, state, {}).IsOk()) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/modes"", H5P_DEFAULT), 0) | ASSERT_GE(controls, 0) | ASSERT_GE(H5Dread(controls, H5T_NATIVE_INT64, H5S_ALL, H5S_ALL, H5P_DEFAULT, stored_controls.data()), 0) | EXPECT_EQ(stored_controls[5U], 0) | EXPECT_GE(H5Dclose(controls), 0) | EXPECT_GE(H5Fclose(file), 0) | EXPECT_FALSE(writer.Write(path, domain, candidate, {}).IsOk()) | EXPECT_TRUE(retained == original) | ASSERT_NE(lock, INVALID_HANDLE_VALUE) | EXPECT_NE(CloseHandle(lock), 0) | ASSERT_FALSE(locked_write.IsOk()) | ASSERT_FALSE(locked_write.Diagnostics().empty()) | EXPECT_EQ(locked_write.Diagnostics()[0].code, ""hdf5-finalization-failure"") | EXPECT_EQ(after_failure, original) | ASSERT_TRUE( fesa::hdf5_internal::SelfCheckEigenFile(path, domain, state, {}).IsOk()) | ASSERT_GE(corrupt_file, 0) | ASSERT_GE(nodes, 0) | ASSERT_GE(H5Tinsert(id_type, ""internal_node_id"", 0U, H5T_NATIVE_UINT64), 0) | ASSERT_GE(H5Dwrite(nodes, id_type, H5S_ALL, H5S_ALL, H5P_DEFAULT, duplicate_ids.data()), 0) | EXPECT_GE(H5Tclose(id_type), 0) | EXPECT_GE(H5Dclose(nodes), 0) | EXPECT_GE(H5Fclose(corrupt_file), 0) | EXPECT_FALSE( fesa::hdf5_internal::SelfCheckEigenFile(path, domain, state, {}).IsOk())" -Refactor tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp support@1-66 helper/oracle/fixture/include/static assertion 구간: Definition tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b3554f56791ac66395cfa9a19281f09965b9ad9dbf29a3e9976828778334b35b 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp support@154-155 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 10개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. dd680025af1f1e85cfd08e97d2dad7db8c857238d3b73cb23d824690670f58c3 dd680025af1f1e85cfd08e97d2dad7db8c857238d3b73cb23d824690670f58c3 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactSchemaShapesAttributesAndIdentity Hdf5ResultsWriter.WritesExactSchemaShapesAttributesAndIdentity; assertion 60개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactSchemaShapesAttributesAndIdentity 유지 원문 검사 body 및 assertion 동일. 8da4eeff5bd49a698da035e0516b426d30471db8c183ee6c78329f2a02879880 8da4eeff5bd49a698da035e0516b426d30471db8c183ee6c78329f2a02879880 "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | EXPECT_GT(H5Lexists(file.Get(), path, H5P_DEFAULT), 0) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""linear-static-3d-euler-beam"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""solver_version""), std::string{fesa::SolverVersion()}) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""source_input_identity""), ""path="" + normalized_source + "";content_identity=fnv1a64:0123456789abcdef"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""unit_system_label""), ""user-consistent-unspecified"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""coordinate_convention""), ""global-cartesian; beam-local=(t,n1,t-cross-n1)"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""element_formulation""), ""B33-3D-Euler-Bernoulli"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""frame_index""), 0U) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/nodes""), std::vector({2U})) | EXPECT_EQ(ReadStringAttribute(nodes_dataset.Get(), ""coordinate_system""), ""global-cartesian"") | EXPECT_EQ(ReadStringAttribute(nodes_dataset.Get(), ""units_label""), ""length"") | ASSERT_EQ(nodes.size(), 2U) | EXPECT_EQ(nodes[0U].internal_node_id, 0U) | EXPECT_STREQ(nodes[0U].instance_name, u8""Beam-\u03b1"") | EXPECT_STREQ(nodes[0U].source_label, ""101"") | EXPECT_DOUBLE_EQ(nodes[1U].coordinates[0U], 3.0) | EXPECT_DOUBLE_EQ(nodes[1U].coordinates[1U], 4.0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/elements""), std::vector({1U})) | EXPECT_EQ(ReadStringAttribute(elements_dataset.Get(), ""formulation""), ""B33-3D-Euler-Bernoulli"") | ASSERT_EQ(displacement.size(), 12U) | EXPECT_DOUBLE_EQ(displacement.front(), 0.25) | EXPECT_DOUBLE_EQ(displacement.back(), 11.25) | ASSERT_EQ(reaction.size(), 12U) | EXPECT_DOUBLE_EQ(reaction.front(), 100.0) | EXPECT_DOUBLE_EQ(reaction.back(), 111.0) | ASSERT_EQ(end_force.size(), 12U) | EXPECT_DOUBLE_EQ(end_force.front(), 1.0) | EXPECT_DOUBLE_EQ(end_force.back(), 12.0) | ASSERT_EQ(section_resultant.size(), 8U) | EXPECT_DOUBLE_EQ(section_resultant.front(), 11.0) | EXPECT_DOUBLE_EQ(section_resultant.back(), 18.0) | ASSERT_EQ(generalized_strain.size(), 8U) | EXPECT_DOUBLE_EQ(generalized_strain.front(), 0.01) | EXPECT_DOUBLE_EQ(generalized_strain.back(), 0.08) | ASSERT_EQ(generalized_resultant.size(), 8U) | EXPECT_DOUBLE_EQ(generalized_resultant.front(), 21.0) | EXPECT_DOUBLE_EQ(generalized_resultant.back(), 28.0) | EXPECT_EQ(DatasetDimensions(file.Get(), stress_path), std::vector({4U})) | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""component_names""), ""S11"") | EXPECT_EQ( ReadStringAttribute(stress_dataset.Get(), ""component_unit_dimensions""), ""force/length^2"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""coordinate_system""), ""beam-local"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""location""), ""section-point"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadUint64Attribute(stress_dataset.Get(), ""frame_index""), 0U) | ASSERT_EQ(stress_rows.size(), 4U) | EXPECT_EQ(stress_rows[0U].internal_element_id, 0U) | EXPECT_EQ(stress_rows[0U].gauss_point_index, 1U) | EXPECT_EQ(stress_rows[0U].section_point_index, 1U) | EXPECT_DOUBLE_EQ(stress_rows[0U].x1, -0.1) | EXPECT_DOUBLE_EQ(stress_rows[0U].x2, 0.2) | EXPECT_STREQ(stress_rows[0U].source, ""input"") | EXPECT_DOUBLE_EQ(stress_rows[3U].s11, 34.0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({0U})) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/0/element/transverse_shear_stress"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0)" "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | EXPECT_GT(H5Lexists(file.Get(), path, H5P_DEFAULT), 0) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""linear-static-3d-euler-beam"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""solver_version""), std::string{fesa::SolverVersion()}) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""source_input_identity""), ""path="" + normalized_source + "";content_identity=fnv1a64:0123456789abcdef"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""unit_system_label""), ""user-consistent-unspecified"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""coordinate_convention""), ""global-cartesian; beam-local=(t,n1,t-cross-n1)"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""element_formulation""), ""B33-3D-Euler-Bernoulli"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""frame_index""), 0U) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/nodes""), std::vector({2U})) | EXPECT_EQ(ReadStringAttribute(nodes_dataset.Get(), ""coordinate_system""), ""global-cartesian"") | EXPECT_EQ(ReadStringAttribute(nodes_dataset.Get(), ""units_label""), ""length"") | ASSERT_EQ(nodes.size(), 2U) | EXPECT_EQ(nodes[0U].internal_node_id, 0U) | EXPECT_STREQ(nodes[0U].instance_name, u8""Beam-\u03b1"") | EXPECT_STREQ(nodes[0U].source_label, ""101"") | EXPECT_DOUBLE_EQ(nodes[1U].coordinates[0U], 3.0) | EXPECT_DOUBLE_EQ(nodes[1U].coordinates[1U], 4.0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/elements""), std::vector({1U})) | EXPECT_EQ(ReadStringAttribute(elements_dataset.Get(), ""formulation""), ""B33-3D-Euler-Bernoulli"") | ASSERT_EQ(displacement.size(), 12U) | EXPECT_DOUBLE_EQ(displacement.front(), 0.25) | EXPECT_DOUBLE_EQ(displacement.back(), 11.25) | ASSERT_EQ(reaction.size(), 12U) | EXPECT_DOUBLE_EQ(reaction.front(), 100.0) | EXPECT_DOUBLE_EQ(reaction.back(), 111.0) | ASSERT_EQ(end_force.size(), 12U) | EXPECT_DOUBLE_EQ(end_force.front(), 1.0) | EXPECT_DOUBLE_EQ(end_force.back(), 12.0) | ASSERT_EQ(section_resultant.size(), 8U) | EXPECT_DOUBLE_EQ(section_resultant.front(), 11.0) | EXPECT_DOUBLE_EQ(section_resultant.back(), 18.0) | ASSERT_EQ(generalized_strain.size(), 8U) | EXPECT_DOUBLE_EQ(generalized_strain.front(), 0.01) | EXPECT_DOUBLE_EQ(generalized_strain.back(), 0.08) | ASSERT_EQ(generalized_resultant.size(), 8U) | EXPECT_DOUBLE_EQ(generalized_resultant.front(), 21.0) | EXPECT_DOUBLE_EQ(generalized_resultant.back(), 28.0) | EXPECT_EQ(DatasetDimensions(file.Get(), stress_path), std::vector({4U})) | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""component_names""), ""S11"") | EXPECT_EQ( ReadStringAttribute(stress_dataset.Get(), ""component_unit_dimensions""), ""force/length^2"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""coordinate_system""), ""beam-local"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""location""), ""section-point"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadUint64Attribute(stress_dataset.Get(), ""frame_index""), 0U) | ASSERT_EQ(stress_rows.size(), 4U) | EXPECT_EQ(stress_rows[0U].internal_element_id, 0U) | EXPECT_EQ(stress_rows[0U].gauss_point_index, 1U) | EXPECT_EQ(stress_rows[0U].section_point_index, 1U) | EXPECT_DOUBLE_EQ(stress_rows[0U].x1, -0.1) | EXPECT_DOUBLE_EQ(stress_rows[0U].x2, 0.2) | EXPECT_STREQ(stress_rows[0U].source, ""input"") | EXPECT_DOUBLE_EQ(stress_rows[3U].s11, 34.0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({0U})) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/0/element/transverse_shear_stress"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0)" -Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesMandatoryOutputsDespiteOutputRequests Hdf5ResultsWriter.WritesMandatoryOutputsDespiteOutputRequests; assertion 3개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesMandatoryOutputsDespiteOutputRequests 유지 원문 검사 body 및 assertion 동일. cd64b9e679f90b6dc4e5be4798c43fa4c11a4fb720cb281b1fe45e0207702f39 cd64b9e679f90b6dc4e5be4798c43fa4c11a4fb720cb281b1fe45e0207702f39 "ASSERT_TRUE( writer.Write(output, *fixture.domain, *fixture.state, {ignored_request}) .IsOk()) | EXPECT_GT(H5Lexists(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({1U}))" "ASSERT_TRUE( writer.Write(output, *fixture.domain, *fixture.state, {ignored_request}) .IsOk()) | EXPECT_GT(H5Lexists(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({1U}))" -Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesWarningsAndDefaultCentroid Hdf5ResultsWriter.WritesWarningsAndDefaultCentroid; assertion 18개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesWarningsAndDefaultCentroid 유지 원문 검사 body 및 assertion 동일. cab1bac6c24b113ae4bf36c8870f5e9ed01bccb51403e05830a7287e63b2acbd cab1bac6c24b113ae4bf36c8870f5e9ed01bccb51403e05830a7287e63b2acbd "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, diagnostics) .IsOk()) | ASSERT_EQ(stress_rows.size(), 2U) | EXPECT_EQ(stress_rows[index].internal_element_id, 0U) | EXPECT_EQ(stress_rows[index].gauss_point_index, index + 1U) | EXPECT_EQ(stress_rows[index].section_point_index, 0U) | EXPECT_DOUBLE_EQ(stress_rows[index].x1, 0.0) | EXPECT_DOUBLE_EQ(stress_rows[index].x2, 0.0) | EXPECT_STREQ(stress_rows[index].source, ""fesa-default"") | ASSERT_EQ(rows.size(), 2U) | EXPECT_STREQ(rows[0U].severity, ""warning"") | EXPECT_STREQ(rows[0U].code, ""ignored-keyword"") | EXPECT_STREQ(rows[0U].file, std::filesystem::absolute(fixture.domain->SourcePath()) .lexically_normal() .generic_u8string() .c_str()) | EXPECT_EQ(rows[0U].line, 20U) | EXPECT_STREQ(rows[0U].keyword, ""*PREPRINT"") | EXPECT_STREQ(rows[0U].entity_identity, """") | EXPECT_STREQ(rows[0U].message, ""Ignored generator control."") | EXPECT_STREQ(rows[1U].code, ""ignored-output-request"") | EXPECT_EQ(rows[1U].line, 80U)" "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, diagnostics) .IsOk()) | ASSERT_EQ(stress_rows.size(), 2U) | EXPECT_EQ(stress_rows[index].internal_element_id, 0U) | EXPECT_EQ(stress_rows[index].gauss_point_index, index + 1U) | EXPECT_EQ(stress_rows[index].section_point_index, 0U) | EXPECT_DOUBLE_EQ(stress_rows[index].x1, 0.0) | EXPECT_DOUBLE_EQ(stress_rows[index].x2, 0.0) | EXPECT_STREQ(stress_rows[index].source, ""fesa-default"") | ASSERT_EQ(rows.size(), 2U) | EXPECT_STREQ(rows[0U].severity, ""warning"") | EXPECT_STREQ(rows[0U].code, ""ignored-keyword"") | EXPECT_STREQ(rows[0U].file, std::filesystem::absolute(fixture.domain->SourcePath()) .lexically_normal() .generic_u8string() .c_str()) | EXPECT_EQ(rows[0U].line, 20U) | EXPECT_STREQ(rows[0U].keyword, ""*PREPRINT"") | EXPECT_STREQ(rows[0U].entity_identity, """") | EXPECT_STREQ(rows[0U].message, ""Ignored generator control."") | EXPECT_STREQ(rows[1U].code, ""ignored-output-request"") | EXPECT_EQ(rows[1U].line, 80U)" -Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.FailureLeavesNoPartialAndPreservesExistingFinal Hdf5ResultsWriter.FailureLeavesNoPartialAndPreservesExistingFinal; assertion 5개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.FailureLeavesNoPartialAndPreservesExistingFinal 유지 원문 검사 body 및 assertion 동일. 5ca48e4c84abdb788e3184610cced5edc5d94b89ed3b8a71a615cb730cf33714 5ca48e4c84abdb788e3184610cced5edc5d94b89ed3b8a71a615cb730cf33714 EXPECT_FALSE(std::filesystem::exists(invalid_output)) | EXPECT_EQ(EntryCount(directory.Path()), 0U) | ASSERT_NE(lock.Get(), INVALID_HANDLE_VALUE) | EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_EQ(EntryCount(directory.Path()), 1U) EXPECT_FALSE(std::filesystem::exists(invalid_output)) | EXPECT_EQ(EntryCount(directory.Path()), 0U) | ASSERT_NE(lock.Get(), INVALID_HANDLE_VALUE) | EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_EQ(EntryCount(directory.Path()), 1U) -Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.SuccessfullyReplacesExistingFinal Hdf5ResultsWriter.SuccessfullyReplacesExistingFinal; assertion 5개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.SuccessfullyReplacesExistingFinal 유지 원문 검사 body 및 assertion 동일. c2f57aee2946c919919c83b75b15b17dc5ddf8adc7d3ea8d634b0f2274fa53b8 c2f57aee2946c919919c83b75b15b17dc5ddf8adc7d3ea8d634b0f2274fa53b8 "ASSERT_TRUE(writer.Write(final, *fixture.domain, *fixture.state, {}).IsOk()) | EXPECT_GT(H5Fis_hdf5(final.string().c_str()), 0) | EXPECT_EQ(EntryCount(directory.Path()), 1U) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U)" "ASSERT_TRUE(writer.Write(final, *fixture.domain, *fixture.state, {}).IsOk()) | EXPECT_GT(H5Fis_hdf5(final.string().c_str()), 0) | EXPECT_EQ(EntryCount(directory.Path()), 1U) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U)" -Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactShellMetadataAndModelIdentity Hdf5ResultsWriter.WritesExactShellMetadataAndModelIdentity; assertion 30개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactShellMetadataAndModelIdentity 유지 원문 검사 body 및 assertion 동일. 6b486491444d4a79d8e2201511ac2a539fc98503320507074eef5e67e7aee5d6 6b486491444d4a79d8e2201511ac2a539fc98503320507074eef5e67e7aee5d6 "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""linear-static-mitc4-shell"") | EXPECT_EQ( ReadStringAttribute(metadata.Get(), ""coordinate_convention""), ""global-cartesian; shell-local=(e1,e2,e3); positive-thickness=+zeta"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""internal_formulation""), ""FESA-MITC4"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""integration_rule""), ""2x2x2-gauss; mitc4-edge-midpoint-shear"") | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/elements""), std::vector({1U})) | EXPECT_EQ(ReadStringAttribute(elements.Get(), ""formulation""), ""FESA-MITC4"") | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/shell/nodal_director""), std::vector({4U, 3U})) | EXPECT_EQ(ReadDoubleDataset(file.Get(), ""/model/shell/nodal_director""), expected_directors) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/shell/nodal_frame""), std::vector({4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/nodal_constraint_mask""), std::vector({4U, 6U})) | ASSERT_EQ(mask.size(), 24U) | EXPECT_EQ(mask[0U], 1U) | EXPECT_EQ(mask[1U], 1U) | EXPECT_EQ(mask[2U], 1U) | EXPECT_EQ(mask[3U], 1U) | EXPECT_EQ(mask[4U], 0U) | EXPECT_EQ(mask[5U], 0U) | ASSERT_EQ(prescribed.size(), 24U) | EXPECT_DOUBLE_EQ(prescribed[0U], 0.0) | EXPECT_DOUBLE_EQ(prescribed[3U], 0.125) | EXPECT_DOUBLE_EQ(prescribed[4U], 0.0) | EXPECT_EQ(ReadDoubleDataset(file.Get(), ""/model/shell/section_positions""), std::vector({-1.0, 0.0, 1.0})) | ASSERT_EQ(locations.size(), 8U) | EXPECT_DOUBLE_EQ(locations[0U], -gauss) | EXPECT_DOUBLE_EQ(locations[1U], -gauss) | EXPECT_DOUBLE_EQ(locations[6U], -gauss) | EXPECT_DOUBLE_EQ(locations[7U], gauss)" "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""linear-static-mitc4-shell"") | EXPECT_EQ( ReadStringAttribute(metadata.Get(), ""coordinate_convention""), ""global-cartesian; shell-local=(e1,e2,e3); positive-thickness=+zeta"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""internal_formulation""), ""FESA-MITC4"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""integration_rule""), ""2x2x2-gauss; mitc4-edge-midpoint-shear"") | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/elements""), std::vector({1U})) | EXPECT_EQ(ReadStringAttribute(elements.Get(), ""formulation""), ""FESA-MITC4"") | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/shell/nodal_director""), std::vector({4U, 3U})) | EXPECT_EQ(ReadDoubleDataset(file.Get(), ""/model/shell/nodal_director""), expected_directors) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/shell/nodal_frame""), std::vector({4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/nodal_constraint_mask""), std::vector({4U, 6U})) | ASSERT_EQ(mask.size(), 24U) | EXPECT_EQ(mask[0U], 1U) | EXPECT_EQ(mask[1U], 1U) | EXPECT_EQ(mask[2U], 1U) | EXPECT_EQ(mask[3U], 1U) | EXPECT_EQ(mask[4U], 0U) | EXPECT_EQ(mask[5U], 0U) | ASSERT_EQ(prescribed.size(), 24U) | EXPECT_DOUBLE_EQ(prescribed[0U], 0.0) | EXPECT_DOUBLE_EQ(prescribed[3U], 0.125) | EXPECT_DOUBLE_EQ(prescribed[4U], 0.0) | EXPECT_EQ(ReadDoubleDataset(file.Get(), ""/model/shell/section_positions""), std::vector({-1.0, 0.0, 1.0})) | ASSERT_EQ(locations.size(), 8U) | EXPECT_DOUBLE_EQ(locations[0U], -gauss) | EXPECT_DOUBLE_EQ(locations[1U], -gauss) | EXPECT_DOUBLE_EQ(locations[6U], -gauss) | EXPECT_DOUBLE_EQ(locations[7U], gauss)" -Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactMandatoryShellResultInventory Hdf5ResultsWriter.WritesExactMandatoryShellResultInventory; assertion 9개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactMandatoryShellResultInventory 유지 원문 검사 body 및 assertion 동일. 110d9a70913902d4021933f838872fc49b23964f0923e76a82ff9ca38d147adc 110d9a70913902d4021933f838872fc49b23964f0923e76a82ff9ca38d147adc "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_EQ(strain.size(), 32U) | EXPECT_DOUBLE_EQ(strain.front(), 101.0) | EXPECT_DOUBLE_EQ(strain.back(), 408.0) | ASSERT_EQ(stress.size(), 36U) | EXPECT_DOUBLE_EQ(stress.front(), 121.0) | EXPECT_DOUBLE_EQ(stress.back(), 429.0) | EXPECT_EQ(ReadStringAttribute(metrics.Get(), ""metric_definition_ids""), ""free-residual-l2-over-max-free-force-l2,force-balance-l2-over-"" ""max-force-sum,moment-balance-l2-over-max-moment-sum"") | EXPECT_EQ(ReadStringAttribute(metrics.Get(), ""acceptance_thresholds""), ""1e-10,1e-10,1e-10"")" "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_EQ(strain.size(), 32U) | EXPECT_DOUBLE_EQ(strain.front(), 101.0) | EXPECT_DOUBLE_EQ(strain.back(), 408.0) | ASSERT_EQ(stress.size(), 36U) | EXPECT_DOUBLE_EQ(stress.front(), 121.0) | EXPECT_DOUBLE_EQ(stress.back(), 429.0) | EXPECT_EQ(ReadStringAttribute(metrics.Get(), ""metric_definition_ids""), ""free-residual-l2-over-max-free-force-l2,force-balance-l2-over-"" ""max-force-sum,moment-balance-l2-over-max-moment-sum"") | EXPECT_EQ(ReadStringAttribute(metrics.Get(), ""acceptance_thresholds""), ""1e-10,1e-10,1e-10"")" -Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesShellInventoryDespiteRequestsAndOmitsForbiddenPaths Hdf5ResultsWriter.WritesShellInventoryDespiteRequestsAndOmitsForbiddenPaths; assertion 4개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesShellInventoryDespiteRequestsAndOmitsForbiddenPaths 유지 원문 검사 body 및 assertion 동일. 472f6fc3007fa9ce8532895a218e178e8b6861022881554d0f7b38f6e3eb1d28 472f6fc3007fa9ce8532895a218e178e8b6861022881554d0f7b38f6e3eb1d28 "ASSERT_TRUE( writer.Write(output, *fixture.domain, *fixture.state, {ignored_request}) .IsOk()) | EXPECT_GT(H5Lexists(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), forbidden, H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({1U}))" "ASSERT_TRUE( writer.Write(output, *fixture.domain, *fixture.state, {ignored_request}) .IsOk()) | EXPECT_GT(H5Lexists(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), forbidden, H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({1U}))" -Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.InvalidShellInventoryPreservesExistingFinal Hdf5ResultsWriter.InvalidShellInventoryPreservesExistingFinal; assertion 2개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.InvalidShellInventoryPreservesExistingFinal 유지 원문 검사 body 및 assertion 동일. 28be997b839d00367e036aef28d86d7b31d42f1f6d3b9af82fce26c23380ba3c 28be997b839d00367e036aef28d86d7b31d42f1f6d3b9af82fce26c23380ba3c EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_EQ(EntryCount(directory.Path()), 1U) EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_EQ(EntryCount(directory.Path()), 1U) -Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.Vector3ShellSerializationRejectsNonfiniteWithoutReplacingFinal Hdf5ResultsWriter.Vector3ShellSerializationRejectsNonfiniteWithoutReplacingFinal; assertion 6개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.Vector3ShellSerializationRejectsNonfiniteWithoutReplacingFinal 유지 원문 검사 body 및 assertion 동일. 3c25204bcd546b3fd1ee10dd44c2e215a6dc878502873b1fe0612cc1c92d82e0 3c25204bcd546b3fd1ee10dd44c2e215a6dc878502873b1fe0612cc1c92d82e0 ASSERT_TRUE(writer.Write(final, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_EQ(directors.size(), 12U) | EXPECT_TRUE(director.IsFinite()) | EXPECT_EQ(director, (fesa::Vector3{0.0, 0.0, 1.0})) | EXPECT_EQ(ReadBytes(final), valid_bytes) | EXPECT_EQ(EntryCount(directory.Path()), 1U) ASSERT_TRUE(writer.Write(final, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_EQ(directors.size(), 12U) | EXPECT_TRUE(director.IsFinite()) | EXPECT_EQ(director, (fesa::Vector3{0.0, 0.0, 1.0})) | EXPECT_EQ(ReadBytes(final), valid_bytes) | EXPECT_EQ(EntryCount(directory.Path()), 1U) -Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1-823 helper/oracle/fixture/include/static assertion 구간: Hdf5Handle, if, WinHandle, TempDirectory, WriterFixture, MakeDefinition, MakeFixture, MakeShellDefinition, MakeShellFixture, OpenFile, OpenDataset, DatasetDimensions, ReadDoubleDataset, for, ReadUint8Dataset, ReadStringAttribute, ReadUint64Attribute, ExpectPortableCompoundMember, ExpectCompoundMembers, ExpectCompoundMemberNames, ExpectNumericDataset, MakeUtf8StringType, NodeReadRow, ReadNodeRows, ReclaimNodeRows, ElementReadRow, ReadElementRows, StressReadRow, ReadStressRows, ReclaimStressRows, DiagnosticReadRow, ReadDiagnosticRows, ReclaimDiagnosticRows, ReadBytes, WriteBytes, EntryCount, ExpectOutputFailure tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4ab1135fc0949c1ef197678be93dda782dc8e2d8655cc928fd55eee0d8961e42 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1120-1121 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7d75f7fce7301b112d258ec1b3434016cbb00dc5186e10757a3d53485db1e852 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1203-1204 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6a28c340e155ab8c275c3eb5afa3522b3c3b655448af487e689907f00da8b75a 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1262-1263 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. de735dd985d5499ad7c73f83d71275d6f5a840dbae2b1672b0e2e4008f0d7560 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1301-1302 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e9bcb4f06a58b6240ab792f21d2791ef2d5cd6ed3540f5cbe243c87f41e10575 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1318-1319 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 778e854c4f2ce284558db14ad3b1ce65607a94482da05114089a6c8e96644227 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/hdf5_writer_components_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/io/hdf5/hdf5_writer_components_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cedde4c3b4576ff6568b8dabefbc0ad56bc54ef4d3adbf2c8eb74ad7f7f711e4 cedde4c3b4576ff6568b8dabefbc0ad56bc54ef4d3adbf2c8eb74ad7f7f711e4 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.BuildsStableBackendNeutralBeamDatasetPlans Hdf5WriterComponents.BuildsStableBackendNeutralBeamDatasetPlans; assertion 8개 tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.BuildsStableBackendNeutralBeamDatasetPlans 유지 원문 검사 body 및 assertion 동일. 81b2f1f76a5dcf5bb467f6f4d53431f4e73401023067e1508e3550739a7becc4 81b2f1f76a5dcf5bb467f6f4d53431f4e73401023067e1508e3550739a7becc4 "ASSERT_TRUE(plan_result.HasValue()) | ASSERT_EQ(datasets.size(), 6U) | EXPECT_EQ(datasets[0U].path, ""/steps/Step-1/frames/0/nodal/displacement"") | EXPECT_EQ(datasets[0U].dimensions, std::vector({2U, 6U})) | EXPECT_EQ(datasets[2U].path, ""/steps/Step-1/frames/0/element/end_force_local"") | EXPECT_EQ(datasets[2U].dimensions, std::vector({1U, 2U, 6U})) | EXPECT_EQ(datasets[5U].path, ""/steps/Step-1/frames/0/element/generalized_resultant"") | EXPECT_TRUE(fesa::hdf5_internal::ValidateFiniteInventory(datasets).IsOk())" "ASSERT_TRUE(plan_result.HasValue()) | ASSERT_EQ(datasets.size(), 6U) | EXPECT_EQ(datasets[0U].path, ""/steps/Step-1/frames/0/nodal/displacement"") | EXPECT_EQ(datasets[0U].dimensions, std::vector({2U, 6U})) | EXPECT_EQ(datasets[2U].path, ""/steps/Step-1/frames/0/element/end_force_local"") | EXPECT_EQ(datasets[2U].dimensions, std::vector({1U, 2U, 6U})) | EXPECT_EQ(datasets[5U].path, ""/steps/Step-1/frames/0/element/generalized_resultant"") | EXPECT_TRUE(fesa::hdf5_internal::ValidateFiniteInventory(datasets).IsOk())" -Refactor tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.RejectsNonfiniteDatasetPlanInventory Hdf5WriterComponents.RejectsNonfiniteDatasetPlanInventory; assertion 0개 tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.RejectsNonfiniteDatasetPlanInventory 유지 원문 검사 body 및 assertion 동일. 7ffe025ea38838a0b732cf1b6438b5f1ea52e2fa0831d04f9efb98060cb02795 7ffe025ea38838a0b732cf1b6438b5f1ea52e2fa0831d04f9efb98060cb02795 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.SelfCheckFailurePreservesExistingFinalThroughAtomicSeam Hdf5WriterComponents.SelfCheckFailurePreservesExistingFinalThroughAtomicSeam; assertion 4개 tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.SelfCheckFailurePreservesExistingFinalThroughAtomicSeam 유지 원문 검사 body 및 assertion 동일. dfa562386df73584a0987a54a9b5f63293a8ffdc34ac4ffd53924c589ca578e3 dfa562386df73584a0987a54a9b5f63293a8ffdc34ac4ffd53924c589ca578e3 ASSERT_TRUE(std::filesystem::create_directory(directory)) | ASSERT_TRUE(plan_result.HasValue()) | EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_FALSE(std::filesystem::exists(candidate)) ASSERT_TRUE(std::filesystem::create_directory(directory)) | ASSERT_TRUE(plan_result.HasValue()) | EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_FALSE(std::filesystem::exists(candidate)) -Refactor tests/unit/io/hdf5/hdf5_writer_components_test.cpp support@1-125 helper/oracle/fixture/include/static assertion 구간: WriterFixture, MakeDefinition, MakeFixture, if, ReadBytes, WriteBytes, ExpectOutputFailure tests/unit/io/hdf5/hdf5_writer_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d4c12780f611b8d0f3e096c57425f504de734e1f1fe5f4bb74eee73fce444d6d 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ea65dd1a637d3517aba6239dd53b411bf465a04769ae57ffc2ca970247080a4a ea65dd1a637d3517aba6239dd53b411bf465a04769ae57ffc2ca970247080a4a 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.WritesSchemaV1ModelAndCommittedAcceptedFramesOnly NonlinearHdf5ResultsWriter.WritesSchemaV1ModelAndCommittedAcceptedFramesOnly; assertion 34개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.WritesSchemaV1ModelAndCommittedAcceptedFramesOnly 유지 원문 검사 body 및 assertion 동일. 6e39a263af0c568c71a1825d1df1ab7caad034e32be32750eff35627846a02e8 6e39a263af0c568c71a1825d1df1ab7caad034e32be32750eff35627846a02e8 "ASSERT_TRUE(status.IsOk()) | ASSERT_GE(file.Get(), 0) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 1U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""nonlinear-static-newton-raphson"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""analysis_procedure""), ""nonlinear-static-full-newton"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""internal_formulation""), ""FESA-MITC4-total-lagrangian"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""integration_rule""), ""2x2x2-gauss; mitc4-edge-midpoint-shear"") | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""factor_zero_is_frame""), 0U) | EXPECT_DOUBLE_EQ(ReadDoubleAttribute(metadata.Get(), ""factor_zero_load_factor""), 0.0) | EXPECT_GT(H5Lexists(file.Get(), path, H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/steps/Step-1/accepted_frames""), std::vector({2U})) | ASSERT_EQ(frames.size(), 2U) | EXPECT_EQ(frames[0U].frame_index, 0U) | EXPECT_EQ(frames[0U].increment_index, 1U) | EXPECT_DOUBLE_EQ(frames[0U].load_factor, 0.5) | EXPECT_EQ(frames[0U].is_factor_one, 0U) | EXPECT_EQ(frames[1U].frame_index, 1U) | EXPECT_EQ(frames[1U].increment_index, 2U) | EXPECT_DOUBLE_EQ(frames[1U].load_factor, 1.0) | EXPECT_EQ(frames[1U].is_factor_one, 1U) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/2"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/trial_history"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file.Get(), (root + suffix).c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/nodal/displacement""), std::vector({4U, 6U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/nodal/triad""), std::vector({4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/element/shell/local_frame""), std::vector({1U, 4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/element/shell/stress""), std::vector({1U, 4U, 3U, 3U})) | ASSERT_EQ(displacement.size(), 24U) | EXPECT_DOUBLE_EQ(displacement[0U], 1.0) | EXPECT_DOUBLE_EQ(displacement[1U], -1.0) | EXPECT_DOUBLE_EQ(displacement[2U], 0.5) | EXPECT_DOUBLE_EQ(displacement[5U], 0.1)" "ASSERT_TRUE(status.IsOk()) | ASSERT_GE(file.Get(), 0) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 1U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""nonlinear-static-newton-raphson"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""analysis_procedure""), ""nonlinear-static-full-newton"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""internal_formulation""), ""FESA-MITC4-total-lagrangian"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""integration_rule""), ""2x2x2-gauss; mitc4-edge-midpoint-shear"") | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""factor_zero_is_frame""), 0U) | EXPECT_DOUBLE_EQ(ReadDoubleAttribute(metadata.Get(), ""factor_zero_load_factor""), 0.0) | EXPECT_GT(H5Lexists(file.Get(), path, H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/steps/Step-1/accepted_frames""), std::vector({2U})) | ASSERT_EQ(frames.size(), 2U) | EXPECT_EQ(frames[0U].frame_index, 0U) | EXPECT_EQ(frames[0U].increment_index, 1U) | EXPECT_DOUBLE_EQ(frames[0U].load_factor, 0.5) | EXPECT_EQ(frames[0U].is_factor_one, 0U) | EXPECT_EQ(frames[1U].frame_index, 1U) | EXPECT_EQ(frames[1U].increment_index, 2U) | EXPECT_DOUBLE_EQ(frames[1U].load_factor, 1.0) | EXPECT_EQ(frames[1U].is_factor_one, 1U) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/2"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/trial_history"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file.Get(), (root + suffix).c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/nodal/displacement""), std::vector({4U, 6U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/nodal/triad""), std::vector({4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/element/shell/local_frame""), std::vector({1U, 4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/element/shell/stress""), std::vector({1U, 4U, 3U, 3U})) | ASSERT_EQ(displacement.size(), 24U) | EXPECT_DOUBLE_EQ(displacement[0U], 1.0) | EXPECT_DOUBLE_EQ(displacement[1U], -1.0) | EXPECT_DOUBLE_EQ(displacement[2U], 0.5) | EXPECT_DOUBLE_EQ(displacement[5U], 0.1)" -Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.ProjectsRotationalReactionToSpatialMoment NonlinearHdf5ResultsWriter.ProjectsRotationalReactionToSpatialMoment; assertion 6개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.ProjectsRotationalReactionToSpatialMoment 유지 원문 검사 body 및 assertion 동일. 1c90a2968f7f21a035b54b532d62081f4554455b2b91eae22cf861ca9fea1f9f 1c90a2968f7f21a035b54b532d62081f4554455b2b91eae22cf861ca9fea1f9f ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, {}).IsOk()) | ASSERT_EQ(reaction.size(), 24U) | EXPECT_NEAR(reaction[3U], (1.0 - quadratic * theta * theta) * 40.0 - 0.5 * theta * 50.0, 1.0e-12) | EXPECT_NEAR(reaction[4U], 0.5 * theta * 40.0 + (1.0 - quadratic * theta * theta) * 50.0, 1.0e-12) | EXPECT_NEAR(reaction[5U], 60.0, 1.0e-12) | EXPECT_GT(quadratic, 0.0) ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, {}).IsOk()) | ASSERT_EQ(reaction.size(), 24U) | EXPECT_NEAR(reaction[3U], (1.0 - quadratic * theta * theta) * 40.0 - 0.5 * theta * 50.0, 1.0e-12) | EXPECT_NEAR(reaction[4U], 0.5 * theta * 40.0 + (1.0 - quadratic * theta * theta) * 50.0, 1.0e-12) | EXPECT_NEAR(reaction[5U], 60.0, 1.0e-12) | EXPECT_GT(quadratic, 0.0) -Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.WritesSchemaV1GlobalBalanceErrorLocation NonlinearHdf5ResultsWriter.WritesSchemaV1GlobalBalanceErrorLocation; assertion 6개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.WritesSchemaV1GlobalBalanceErrorLocation 유지 원문 검사 body 및 assertion 동일. a001400599ab1442b5c7632e39ec02422a0e5cf4a4420a822d640291fc3bdbd9 a001400599ab1442b5c7632e39ec02422a0e5cf4a4420a822d640291fc3bdbd9 "ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/steps/Step-1/frames/1/global/equilibrium""), std::vector({6U})) | EXPECT_EQ(ReadStringAttribute(equilibrium.Get(), ""component_names""), ""FORCE_1,FORCE_2,FORCE_3,MOMENT_1,MOMENT_2,MOMENT_3"") | EXPECT_EQ(ReadStringAttribute(equilibrium.Get(), ""location""), ""global-balance-error"") | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 1U)" "ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/steps/Step-1/frames/1/global/equilibrium""), std::vector({6U})) | EXPECT_EQ(ReadStringAttribute(equilibrium.Get(), ""component_names""), ""FORCE_1,FORCE_2,FORCE_3,MOMENT_1,MOMENT_2,MOMENT_3"") | EXPECT_EQ(ReadStringAttribute(equilibrium.Get(), ""location""), ""global-balance-error"") | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 1U)" -Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.StoresSortedDiagnosticsThroughBackendNeutralBoundary NonlinearHdf5ResultsWriter.StoresSortedDiagnosticsThroughBackendNeutralBoundary; assertion 6개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.StoresSortedDiagnosticsThroughBackendNeutralBoundary 유지 원문 검사 body 및 assertion 동일. 33864ae859f75ea2126a078c47ba665e8bb37b0dd807025395fa77b74be284bf 33864ae859f75ea2126a078c47ba665e8bb37b0dd807025395fa77b74be284bf "ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, diagnostics) .IsOk()) | ASSERT_EQ(rows.size(), 2U) | EXPECT_STREQ(rows[0U].code, ""earlier"") | EXPECT_EQ(rows[0U].line, 10U) | EXPECT_STREQ(rows[1U].code, ""later"") | EXPECT_EQ(rows[1U].line, 20U)" "ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, diagnostics) .IsOk()) | ASSERT_EQ(rows.size(), 2U) | EXPECT_STREQ(rows[0U].code, ""earlier"") | EXPECT_EQ(rows[0U].line, 10U) | EXPECT_STREQ(rows[1U].code, ""later"") | EXPECT_EQ(rows[1U].line, 20U)" -Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.CandidateFinalizationFailurePreservesPriorFinal NonlinearHdf5ResultsWriter.CandidateFinalizationFailurePreservesPriorFinal; assertion 6개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.CandidateFinalizationFailurePreservesPriorFinal 유지 원문 검사 body 및 assertion 동일. eb1576644b3e7a2bf28dd63899e0cccf1bd2a8568b4ab593940c67d510aa21c2 eb1576644b3e7a2bf28dd63899e0cccf1bd2a8568b4ab593940c67d510aa21c2 "ASSERT_NE(lock.Get(), INVALID_HANDLE_VALUE) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""hdf5-finalization-failure"") | EXPECT_EQ(ReadBytes(output), sentinel)" "ASSERT_NE(lock.Get(), INVALID_HANDLE_VALUE) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""hdf5-finalization-failure"") | EXPECT_EQ(ReadBytes(output), sentinel)" -Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp support@1-429 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, WinHandle, Fixture, AcceptedFrameRow, DiagnosticRow, MakeDefinition, MakeBaseline, MakeShellRow, MakeShellRows, MakeFrame, MakeFixture, OpenFile, OpenDataset, DatasetDimensions, ReadStringAttribute, ReadUint64Attribute, ReadDoubleAttribute, ReadDoubleDataset, for, AcceptedFrameMemoryType, ReadAcceptedFrames, DiagnosticMemoryType, ReadDiagnostics, ReclaimDiagnostics, ReadBytes, WriteBytes tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6c65598390ba6c2d70dbd49ab2e1b14b76803f926878fd1e6495864508bbc051 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp support@509-510 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8f00d12532be48bbd8d5776bf02cee4d6a243f6225365268e06f4dc268138fa4 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp support@537-538 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e08a00bd74875e33bb07f7be527593f2d4349951e703f865eb04b1e9499e2bbd 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp support@562-563 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a6d0aa9192bf7f01ce6aab9505a2149836668f2461c70984035f857a43eb68e6 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp support@596-597 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cc12e7c3af34a0df4e68a34067bc8e98d4da457614c478a52170cc0c9151b3b6 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 14개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0e288ede59628ee0256258206f78ba4830a13b65c68d9a42125b767bf15fed78 0e288ede59628ee0256258206f78ba4830a13b65c68d9a42125b767bf15fed78 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.AllFiveActualApiOutcomesHaveIndependentOfficialSchema SolidHdf5ResultsWriter.AllFiveActualApiOutcomesHaveIndependentOfficialSchema; assertion 21개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.AllFiveActualApiOutcomesHaveIndependentOfficialSchema 유지 원문 검사 body 및 assertion 동일. ae7d81086077cec63255ebbb050d057332d3d2303be88998f8ff571d28237340 ae7d81086077cec63255ebbb050d057332d3d2303be88998f8ff571d28237340 "ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(Attr(metadata.Get(), ""analysis_procedure""), solid_output_test::Procedure(p)) | EXPECT_EQ(Attr(metadata.Get(), ""feature_id""), ""hex8-structural-analysis"") | EXPECT_EQ(Attr(metadata.Get(), ""source_step_name""), ""RawSolid"") | EXPECT_EQ(Attr(metadata.Get(), ""element_formulation""), ""FESA-Hex8"") | EXPECT_EQ(Attr(metadata.Get(), ""integration_rule""), ""gauss-2x2x2"") | EXPECT_EQ(Attr(metadata.Get(), ""mass_formulation""), ""lumped-reference"") | EXPECT_EQ(Attr(metadata.Get(), ""component_order""), ""node-major; UX,UY,UZ"") | EXPECT_GT(H5Tequal(masktype.Get(), H5T_STD_U8LE), 0) | EXPECT_EQ(Attr(mask.Get(), ""component_names""), ""UX,UY,UZ"") | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames"", H5P_DEFAULT), 0) | EXPECT_EQ(Attr(dataset.Get(), ""component_names""), std::get<1>(quantity)) | EXPECT_EQ(Attr(dataset.Get(), ""unit_dimensions""), std::get<2>(quantity)) | EXPECT_EQ(Attr(dataset.Get(), ""location""), ""global"") | EXPECT_EQ(Attr(dataset.Get(), ""coordinate_system""), ""global-cartesian"") | EXPECT_EQ(H5Aexists(dataset.Get(), ""frame_index""), 0) | EXPECT_EQ(H5Aexists(dataset.Get(), ""step_name""), 0) | ASSERT_EQ(state.eigenpair_checks[0].solver_column, 0u) | EXPECT_EQ( H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0) | EXPECT_LE( H5Lexists(file.Get(), (root + ""/nodal/displacement_low"").c_str(), H5P_DEFAULT), 0)" "ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(Attr(metadata.Get(), ""analysis_procedure""), solid_output_test::Procedure(p)) | EXPECT_EQ(Attr(metadata.Get(), ""feature_id""), ""hex8-structural-analysis"") | EXPECT_EQ(Attr(metadata.Get(), ""source_step_name""), ""RawSolid"") | EXPECT_EQ(Attr(metadata.Get(), ""element_formulation""), ""FESA-Hex8"") | EXPECT_EQ(Attr(metadata.Get(), ""integration_rule""), ""gauss-2x2x2"") | EXPECT_EQ(Attr(metadata.Get(), ""mass_formulation""), ""lumped-reference"") | EXPECT_EQ(Attr(metadata.Get(), ""component_order""), ""node-major; UX,UY,UZ"") | EXPECT_GT(H5Tequal(masktype.Get(), H5T_STD_U8LE), 0) | EXPECT_EQ(Attr(mask.Get(), ""component_names""), ""UX,UY,UZ"") | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames"", H5P_DEFAULT), 0) | EXPECT_EQ(Attr(dataset.Get(), ""component_names""), std::get<1>(quantity)) | EXPECT_EQ(Attr(dataset.Get(), ""unit_dimensions""), std::get<2>(quantity)) | EXPECT_EQ(Attr(dataset.Get(), ""location""), ""global"") | EXPECT_EQ(Attr(dataset.Get(), ""coordinate_system""), ""global-cartesian"") | EXPECT_EQ(H5Aexists(dataset.Get(), ""frame_index""), 0) | EXPECT_EQ(H5Aexists(dataset.Get(), ""step_name""), 0) | ASSERT_EQ(state.eigenpair_checks[0].solver_column, 0u) | EXPECT_EQ( H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0) | EXPECT_LE( H5Lexists(file.Get(), (root + ""/nodal/displacement_low"").c_str(), H5P_DEFAULT), 0)" -Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.EveryProcedurePreservesPreviousFinalAcrossLifecycleFailures SolidHdf5ResultsWriter.EveryProcedurePreservesPreviousFinalAcrossLifecycleFailures; assertion 3개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.EveryProcedurePreservesPreviousFinalAcrossLifecycleFailures 유지 원문 검사 body 및 assertion 동일. 54758e848f8b701836e7fb82b83cfd0959b5e4f36e413871563d59a6389f21ef 54758e848f8b701836e7fb82b83cfd0959b5e4f36e413871563d59a6389f21ef "EXPECT_FALSE(status.IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | EXPECT_EQ(entry.path().filename().string().find(""candidate""), std::string::npos)" "EXPECT_FALSE(status.IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | EXPECT_EQ(entry.path().filename().string().find(""candidate""), std::string::npos)" -Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.MalformedWholePairsAndIdentityFailBeforeCandidateCreation SolidHdf5ResultsWriter.MalformedWholePairsAndIdentityFailBeforeCandidateCreation; assertion 5개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.MalformedWholePairsAndIdentityFailBeforeCandidateCreation 유지 원문 검사 body 및 assertion 동일. 3d420563bb51f0e354d37714b86fc487aa097ba8f142014c043488d8c4bf78d6 3d420563bb51f0e354d37714b86fc487aa097ba8f142014c043488d8c4bf78d6 EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | ASSERT_EQ(std::fesetround(FE_DOWNWARD), 0) | EXPECT_FALSE(status.IsOk()) | EXPECT_EQ(Bytes(files.output), previous) EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | ASSERT_EQ(std::fesetround(FE_DOWNWARD), 0) | EXPECT_FALSE(status.IsOk()) | EXPECT_EQ(Bytes(files.output), previous) -Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ModalColumnsRemainZeroBasedAndRejectInvalidInventory SolidHdf5ResultsWriter.ModalColumnsRemainZeroBasedAndRejectInvalidInventory; assertion 4개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ModalColumnsRemainZeroBasedAndRejectInvalidInventory 유지 원문 검사 body 및 assertion 동일. 58160b675d06a1d926ce01fbdcd204944fd73fa1246838cb4245069a58346ec5 58160b675d06a1d926ce01fbdcd204944fd73fa1246838cb4245069a58346ec5 ASSERT_EQ(state.eigenpair_checks[0].solver_column, 0u) | EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) ASSERT_EQ(state.eigenpair_checks[0].solver_column, 0u) | EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) -Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ReadbackRejectsMalformedTypesShapesValuesAndSourceIds SolidHdf5ResultsWriter.ReadbackRejectsMalformedTypesShapesValuesAndSourceIds; assertion 2개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ReadbackRejectsMalformedTypesShapesValuesAndSourceIds 유지 원문 검사 body 및 assertion 동일. 98f12927edcaf6e819ce0efdc429254416e9c0b6d37361830ab53bb7d6c1b9bb 98f12927edcaf6e819ce0efdc429254416e9c0b6d37361830ab53bb7d6c1b9bb EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) -Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ReadbackMatchesActualAcceptedValuesAndFullPairObservables SolidHdf5ResultsWriter.ReadbackMatchesActualAcceptedValuesAndFullPairObservables; assertion 6개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ReadbackMatchesActualAcceptedValuesAndFullPairObservables 유지 원문 검사 body 및 assertion 동일. 9489cb16f1d352cdb05ead2678289c28d3757ca8717121b5d49f4e4763c16427 9489cb16f1d352cdb05ead2678289c28d3757ca8717121b5d49f4e4763c16427 "ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE(dataset.Get(), 0) | ASSERT_GE(H5Dread(dataset.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, values.data()), 0) | EXPECT_EQ(values, expected) | EXPECT_EQ(Attr(metadata.Get(), ""source_input_identity""), SourceInputIdentity(actual.input.domain)) | EXPECT_TRUE(nonzero_low)" "ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE(dataset.Get(), 0) | ASSERT_GE(H5Dread(dataset.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, values.data()), 0) | EXPECT_EQ(values, expected) | EXPECT_EQ(Attr(metadata.Get(), ""source_input_identity""), SourceInputIdentity(actual.input.domain)) | EXPECT_TRUE(nonzero_low)" -Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.FailureRecordsAreLoggedAndLogFailureTakesPrecedence SolidPreparedAnalysis.FailureRecordsAreLoggedAndLogFailureTakesPrecedence; assertion 9개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.FailureRecordsAreLoggedAndLogFailureTakesPrecedence 유지 원문 검사 body 및 assertion 동일. 86020491b9f15bef285a8c66ff73296c53f87c05bf88bde9e31ceae039b16613 86020491b9f15bef285a8c66ff73296c53f87c05bf88bde9e31ceae039b16613 "ASSERT_TRUE(input.HasValue()) | ASSERT_TRUE(log.Open(files.log).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), closed ? FailureCategory::kOutput : FailureCategory::kSolver) | ASSERT_TRUE(log.Close().IsOk()) | EXPECT_NE(text.find(""injected-tangent-failure""), std::string::npos) | EXPECT_EQ(text.find(""rotation""), std::string::npos) | EXPECT_NE(text.find(""stage=""), std::string::npos)" "ASSERT_TRUE(input.HasValue()) | ASSERT_TRUE(log.Open(files.log).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), closed ? FailureCategory::kOutput : FailureCategory::kSolver) | ASSERT_TRUE(log.Close().IsOk()) | EXPECT_NE(text.find(""injected-tangent-failure""), std::string::npos) | EXPECT_EQ(text.find(""rotation""), std::string::npos) | EXPECT_NE(text.find(""stage=""), std::string::npos)" -Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.MissingSolidAdapterFailsWithoutLegacyDispatch SolidPreparedAnalysis.MissingSolidAdapterFailsWithoutLegacyDispatch; assertion 6개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.MissingSolidAdapterFailsWithoutLegacyDispatch 유지 원문 검사 body 및 assertion 동일. 49053fc528ba887b5f048281c18c912aa09ae411cabbb474074bbc2f15ab91c8 49053fc528ba887b5f048281c18c912aa09ae411cabbb474074bbc2f15ab91c8 "ASSERT_TRUE(input.HasValue()) | ASSERT_TRUE(log.Open(files.log).IsOk()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""missing-solid-executor"") | EXPECT_TRUE(log.Close().IsOk())" "ASSERT_TRUE(input.HasValue()) | ASSERT_TRUE(log.Open(files.log).IsOk()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""missing-solid-executor"") | EXPECT_TRUE(log.Close().IsOk())" -Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.UnsupportedEnvironmentAfterCallbackCannotPublish SolidHdf5ResultsWriter.UnsupportedEnvironmentAfterCallbackCannotPublish; assertion 2개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.UnsupportedEnvironmentAfterCallbackCannotPublish 유지 원문 검사 body 및 assertion 동일. e451c9a755119b6d30517cfadffc36c7fefd922c053ce1aac059d333adc5e7f5 e451c9a755119b6d30517cfadffc36c7fefd922c053ce1aac059d333adc5e7f5 EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) -Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.MissingWriterPreservesFinalForEveryTypedOutcome SolidPreparedAnalysis.MissingWriterPreservesFinalForEveryTypedOutcome; assertion 5개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.MissingWriterPreservesFinalForEveryTypedOutcome 유지 원문 검사 body 및 assertion 동일. 7fe8c186182faf22af563656dd32beca34da0788bfe309672f51cb685820abf2 7fe8c186182faf22af563656dd32beca34da0788bfe309672f51cb685820abf2 "ASSERT_TRUE(paths.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_EQ(status.Diagnostics()[0].code, ""missing-solid-writer"") | EXPECT_EQ(Bytes(files.output), previous)" "ASSERT_TRUE(paths.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_EQ(status.Diagnostics()[0].code, ""missing-solid-writer"") | EXPECT_EQ(Bytes(files.output), previous)" -Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidNewtonIterationLog.InvalidScalarEvidencePermanentlyFailsLogLifecycle SolidNewtonIterationLog.InvalidScalarEvidencePermanentlyFailsLogLifecycle; assertion 3개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidNewtonIterationLog.InvalidScalarEvidencePermanentlyFailsLogLifecycle 유지 원문 검사 body 및 assertion 동일. 98a859ab027cf906fe55ec13bd07e191939707a511ef7786e84dbd3040963b47 98a859ab027cf906fe55ec13bd07e191939707a511ef7786e84dbd3040963b47 ASSERT_TRUE(log.Open(files.log).IsOk()) | EXPECT_FALSE(log.Write(record).IsOk()) | EXPECT_FALSE(log.Close().IsOk()) ASSERT_TRUE(log.Open(files.log).IsOk()) | EXPECT_FALSE(log.Write(record).IsOk()) | EXPECT_FALSE(log.Close().IsOk()) -Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.AbsentStaticDensityIsAnExplicitPlaceholder SolidHdf5ResultsWriter.AbsentStaticDensityIsAnExplicitPlaceholder; assertion 5개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.AbsentStaticDensityIsAnExplicitPlaceholder 유지 원문 검사 body 및 assertion 동일. eb6860aba8052654eaa827dfd208c58761976beb7d042b8529d9544036d904fe eb6860aba8052654eaa827dfd208c58761976beb7d042b8529d9544036d904fe ASSERT_NE(position, std::string::npos) | ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE( H5Dread(dataset.Get(), type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &row), 0) | EXPECT_EQ(row.present, 0) | EXPECT_EQ(row.rho, 0) ASSERT_NE(position, std::string::npos) | ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE( H5Dread(dataset.Get(), type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &row), 0) | EXPECT_EQ(row.present, 0) | EXPECT_EQ(row.rho, 0) -Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ModalPhysicalTableAttributeCorruptionPreservesFinal SolidHdf5ResultsWriter.ModalPhysicalTableAttributeCorruptionPreservesFinal; assertion 2개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ModalPhysicalTableAttributeCorruptionPreservesFinal 유지 원문 검사 body 및 assertion 동일. 5ab99b0ef2a17dd81d8b67396fa3ad3fcaafcc82c55b1a90ba8ebc161b3c057a 5ab99b0ef2a17dd81d8b67396fa3ad3fcaafcc82c55b1a90ba8ebc161b3c057a EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) -Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.UnselectedBackendPairsCannotPublishInvalidSpectrumOrDimension SolidHdf5ResultsWriter.UnselectedBackendPairsCannotPublishInvalidSpectrumOrDimension; assertion 9개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.UnselectedBackendPairsCannotPublishInvalidSpectrumOrDimension 유지 원문 검사 body 및 assertion 동일. 1ebcf9e3ecd6d2f12eefd8b99060546b7a12f4b64c9542a7d7550aa384b095f7 1ebcf9e3ecd6d2f12eefd8b99060546b7a12f4b64c9542a7d7550aa384b095f7 "ASSERT_NE(position, std::string::npos) | ASSERT_EQ(state.modes.size(), 1u) | ASSERT_EQ(state.free_dof_count, 3u) | ASSERT_GT(state.eigenpair_checks.size(), state.modes.size()) | ASSERT_LE(state.eigenpair_checks.size(), state.free_dof_count) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_NE(message.find(failure == 0 ? ""Significant negative"" : failure == 1 ? ""not sorted"" : ""inventory""), std::string::npos) | EXPECT_EQ(Bytes(files.output), previous)" "ASSERT_NE(position, std::string::npos) | ASSERT_EQ(state.modes.size(), 1u) | ASSERT_EQ(state.free_dof_count, 3u) | ASSERT_GT(state.eigenpair_checks.size(), state.modes.size()) | ASSERT_LE(state.eigenpair_checks.size(), state.free_dof_count) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_NE(message.find(failure == 0 ? ""Significant negative"" : failure == 1 ? ""not sorted"" : ""inventory""), std::string::npos) | EXPECT_EQ(Bytes(files.output), previous)" -Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp support@1-201 helper/oracle/fixture/include/static assertion 구간: fesa, Actual, Execute, View, Bytes, Existing, Attr, if, T, NumberAttr, DatasetContract tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 30faf6dcced8c34ede79a8a792a5a29b740098278d5aeb4cb11c773b900aa404 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp support@621-635 helper/oracle/fixture/include/static assertion 구간: FailedTangent tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ad8ea87f0e4a9587417928c0cf809d07c3041883e55d95ad345315ff70ebd9a2 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp support@874-874 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/solid_output_test_fixture.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/unit/io/hdf5/solid_output_test_fixture.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f55daaac80ffbb33f56431eb37931b48dc0202107b74e298254f9fcd2a2e5977 f55daaac80ffbb33f56431eb37931b48dc0202107b74e298254f9fcd2a2e5977 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/solid_output_test_fixture.h support@1-58 helper/oracle/fixture/include/static assertion 구간: solid_output_test, Deck, Files, Procedure tests/unit/io/hdf5/solid_output_test_fixture.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9e7195cd7096815c237160ff0315fabca314fe8068ef1ea88751543cac732307 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 13개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 576b253a222e41e7b8bd6643a47706eec1ed333eaf5a09c2206b89ef1bb06895 576b253a222e41e7b8bd6643a47706eec1ed333eaf5a09c2206b89ef1bb06895 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.WritesRawInitialAndCompletedZeroReactionHistory ThermalHdf5ResultsWriter.WritesRawInitialAndCompletedZeroReactionHistory; assertion 8개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.WritesRawInitialAndCompletedZeroReactionHistory 유지 원문 검사 body 및 assertion 동일. 038005b1d8bbe2f803b404dbb53962ec9300408b40327a0b0e90f5e4a3a7f679 038005b1d8bbe2f803b404dbb53962ec9300408b40327a0b0e90f5e4a3a7f679 "ASSERT_TRUE(result.IsOk()) | ASSERT_GE(file, 0) | EXPECT_GT( H5Lexists(file, ""/steps/Step-1/frames/0/nodal/temperature"", H5P_DEFAULT), 0) | EXPECT_LE(H5Lexists(file, ""/steps/Step-1/frames/0/nodal/reaction_heat_rate"", H5P_DEFAULT), 0) | EXPECT_LE( H5Lexists(file, ""/steps/Step-1/frames/0/element/heat_flux"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/frames/3/nodal/reaction_heat_rate"", H5P_DEFAULT), 0) | EXPECT_GT( H5Lexists(file, ""/steps/Step-1/frames/3/element/heat_flux"", H5P_DEFAULT), 0) | EXPECT_GT(H5Fclose(file), -1)" "ASSERT_TRUE(result.IsOk()) | ASSERT_GE(file, 0) | EXPECT_GT( H5Lexists(file, ""/steps/Step-1/frames/0/nodal/temperature"", H5P_DEFAULT), 0) | EXPECT_LE(H5Lexists(file, ""/steps/Step-1/frames/0/nodal/reaction_heat_rate"", H5P_DEFAULT), 0) | EXPECT_LE( H5Lexists(file, ""/steps/Step-1/frames/0/element/heat_flux"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/frames/3/nodal/reaction_heat_rate"", H5P_DEFAULT), 0) | EXPECT_GT( H5Lexists(file, ""/steps/Step-1/frames/3/element/heat_flux"", H5P_DEFAULT), 0) | EXPECT_GT(H5Fclose(file), -1)" -Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.SectionMaterialUsesGlobalMaterialIdentity ThermalHdf5ResultsWriter.SectionMaterialUsesGlobalMaterialIdentity; assertion 11개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.SectionMaterialUsesGlobalMaterialIdentity 유지 원문 검사 body 및 assertion 동일. 96c91419cb1cd6966a695185c69a1c372da0516eb31c6a71f9db7f987dd767b9 96c91419cb1cd6966a695185c69a1c372da0516eb31c6a71f9db7f987dd767b9 "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(H5Tinsert(t.Get(), ""material_internal_id"", 0, H5T_NATIVE_UINT64), 0) | ASSERT_GE(H5Dread(d.Get(), t.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &id), 0) | EXPECT_EQ(id, 1U) | ASSERT_GE(H5Tset_size(utf8.Get(), H5T_VARIABLE), 0) | ASSERT_GE(H5Tset_cset(utf8.Get(), H5T_CSET_UTF8), 0) | ASSERT_GE(H5Tinsert(source_type.Get(), ""source_file"", 0, utf8.Get()), 0) | ASSERT_GE(H5Dread(d.Get(), source_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &source), 0) | ASSERT_NE(source, nullptr) | EXPECT_EQ(std::string{source}, std::filesystem::absolute(""thermal-writer.inp"") .lexically_normal() .generic_u8string()) | EXPECT_GE(H5free_memory(source), 0)" "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(H5Tinsert(t.Get(), ""material_internal_id"", 0, H5T_NATIVE_UINT64), 0) | ASSERT_GE(H5Dread(d.Get(), t.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &id), 0) | EXPECT_EQ(id, 1U) | ASSERT_GE(H5Tset_size(utf8.Get(), H5T_VARIABLE), 0) | ASSERT_GE(H5Tset_cset(utf8.Get(), H5T_CSET_UTF8), 0) | ASSERT_GE(H5Tinsert(source_type.Get(), ""source_file"", 0, utf8.Get()), 0) | ASSERT_GE(H5Dread(d.Get(), source_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &source), 0) | ASSERT_NE(source, nullptr) | EXPECT_EQ(std::string{source}, std::filesystem::absolute(""thermal-writer.inp"") .lexically_normal() .generic_u8string()) | EXPECT_GE(H5free_memory(source), 0)" -Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsMissingMandatoryAttributesAndChangedValues ThermalHdf5ResultsWriter.RejectsMissingMandatoryAttributesAndChangedValues; assertion 8개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsMissingMandatoryAttributesAndChangedValues 유지 원문 검사 body 및 assertion 동일. 09fc93e87be7ffcef801a28fb026ccffcb2e9fef878c8141eba118171fdf4915 09fc93e87be7ffcef801a28fb026ccffcb2e9fef878c8141eba118171fdf4915 "EXPECT_GE(H5Adelete(m, ""source_input_identity""), 0) | EXPECT_GE(H5Adelete(d, ""units_label""), 0) | EXPECT_GE(H5Dwrite(d, H5T_NATIVE_UINT64, H5S_ALL, H5S_ALL, H5P_DEFAULT, ids), 0) | EXPECT_GE(H5Dwrite(d, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, v), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(f, 0) | ASSERT_GE(H5Fclose(f), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk())" "EXPECT_GE(H5Adelete(m, ""source_input_identity""), 0) | EXPECT_GE(H5Adelete(d, ""units_label""), 0) | EXPECT_GE(H5Dwrite(d, H5T_NATIVE_UINT64, H5S_ALL, H5S_ALL, H5P_DEFAULT, ids), 0) | EXPECT_GE(H5Dwrite(d, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, v), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(f, 0) | ASSERT_GE(H5Fclose(f), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk())" -Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryRequiredAttributeIsCheckedBeforePublication ThermalHdf5ResultsWriter.EveryRequiredAttributeIsCheckedBeforePublication; assertion 7개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryRequiredAttributeIsCheckedBeforePublication 유지 원문 검사 body 및 assertion 동일. e8670b807a13f32a42fc3bdf7c7ba29a13005b801faafdb48830765ba95cd051 e8670b807a13f32a42fc3bdf7c7ba29a13005b801faafdb48830765ba95cd051 ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(file, 0) | ASSERT_GE(object, 0) | ASSERT_GE(H5Adelete(object, attribute.second.c_str()), 0) | ASSERT_GE(H5Oclose(object), 0) | ASSERT_GE(H5Fclose(file), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk()) ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(file, 0) | ASSERT_GE(object, 0) | ASSERT_GE(H5Adelete(object, attribute.second.c_str()), 0) | ASSERT_GE(H5Oclose(object), 0) | ASSERT_GE(H5Fclose(file), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk()) -Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryCompoundFieldAndEveryDatasetIsMandatory ThermalHdf5ResultsWriter.EveryCompoundFieldAndEveryDatasetIsMandatory; assertion 6개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryCompoundFieldAndEveryDatasetIsMandatory 유지 원문 검사 body 및 assertion 동일. 2714b07516265d2c61e37c02651ac605c52a2e430bf95d6a59a176e923b72fbe 2714b07516265d2c61e37c02651ac605c52a2e430bf95d6a59a176e923b72fbe "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""Missing compound field""), std::string::npos) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | ASSERT_GE(H5Ldelete(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, diagnostics) .IsOk())" "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""Missing compound field""), std::string::npos) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | ASSERT_GE(H5Ldelete(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, diagnostics) .IsOk())" -Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.ReorderedPackedAdditiveCompoundsAndFixedUtf8AreAccepted ThermalHdf5ResultsWriter.ReorderedPackedAdditiveCompoundsAndFixedUtf8AreAccepted; assertion 4개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.ReorderedPackedAdditiveCompoundsAndFixedUtf8AreAccepted 유지 원문 검사 body 및 assertion 동일. eb907cbc4c5980b7b1d09251862c47f1c54fd4b68029219bbc6ee5341c15707e eb907cbc4c5980b7b1d09251862c47f1c54fd4b68029219bbc6ee5341c15707e ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | ASSERT_GE(H5Tset_size(fixed.Get(), 16), 0) | ASSERT_GE(H5Tset_cset(fixed.Get(), H5T_CSET_UTF8), 0) | EXPECT_TRUE(checked.IsOk()) ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | ASSERT_GE(H5Tset_size(fixed.Get(), 16), 0) | ASSERT_GE(H5Tset_cset(fixed.Get(), H5T_CSET_UTF8), 0) | EXPECT_TRUE(checked.IsOk()) -Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsWrongTypesArrayExtentsNonscalarAndNonUtf8Attributes ThermalHdf5ResultsWriter.RejectsWrongTypesArrayExtentsNonscalarAndNonUtf8Attributes; assertion 7개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsWrongTypesArrayExtentsNonscalarAndNonUtf8Attributes 유지 원문 검사 body 및 assertion 동일. deb7ac11d4f8259f50d5d43317c188e2c36960898610bebc7a492eb8c58e4866 deb7ac11d4f8259f50d5d43317c188e2c36960898610bebc7a492eb8c58e4866 "ASSERT_GE(H5Adelete(g.Get(), ""is_initial""), 0) | ASSERT_GE(H5Awrite(a.Get(), H5T_NATIVE_UINT8, data), 0) | ASSERT_GE(H5Adelete(g.Get(), ""time_period""), 0) | ASSERT_GE(H5Awrite(a.Get(), H5T_NATIVE_DOUBLE, data), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""type/extent""), std::string::npos)" "ASSERT_GE(H5Adelete(g.Get(), ""is_initial""), 0) | ASSERT_GE(H5Awrite(a.Get(), H5T_NATIVE_UINT8, data), 0) | ASSERT_GE(H5Adelete(g.Get(), ""time_period""), 0) | ASSERT_GE(H5Awrite(a.Get(), H5T_NATIVE_DOUBLE, data), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""type/extent""), std::string::npos)" -Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsWrongValuesFrameInventoriesNonfiniteAndDiagnostics ThermalHdf5ResultsWriter.RejectsWrongValuesFrameInventoriesNonfiniteAndDiagnostics; assertion 6개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsWrongValuesFrameInventoriesNonfiniteAndDiagnostics 유지 원문 검사 body 및 assertion 동일. 32dc727108be7e7b965f1451c0142d9ebcb4671317da04f841ad33b9b57b2bcb 32dc727108be7e7b965f1451c0142d9ebcb4671317da04f841ad33b9b57b2bcb "ASSERT_GE(g.Get(), 0) | ASSERT_GE(H5Ldelete(f, ""/steps/Step-1/frames/2"", H5P_DEFAULT), 0) | ASSERT_GE( H5Lcreate_soft(""/missing"", f, ""/steps/Step-1/frames/0/element"", H5P_DEFAULT, H5P_DEFAULT), 0) | ASSERT_GE(H5Dwrite(d.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, values), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, diagnostics) .IsOk())" "ASSERT_GE(g.Get(), 0) | ASSERT_GE(H5Ldelete(f, ""/steps/Step-1/frames/2"", H5P_DEFAULT), 0) | ASSERT_GE( H5Lcreate_soft(""/missing"", f, ""/steps/Step-1/frames/0/element"", H5P_DEFAULT, H5P_DEFAULT), 0) | ASSERT_GE(H5Dwrite(d.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, values), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, diagnostics) .IsOk())" -Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RotatedFramesAndEndpointCloseScheduleRoundTripIndependently ThermalHdf5ResultsWriter.RotatedFramesAndEndpointCloseScheduleRoundTripIndependently; assertion 12개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RotatedFramesAndEndpointCloseScheduleRoundTripIndependently 유지 원문 검사 body 및 assertion 동일. 9b867d4ee386eecc3e31c6233f961cdd619a2c0736f7a11b7705cadeca1c0ccd 9b867d4ee386eecc3e31c6233f961cdd619a2c0736f7a11b7705cadeca1c0ccd ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(H5Dread(d.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, frames.data()), 0) | EXPECT_DOUBLE_EQ(frames[i], expected[i % 9]) | ASSERT_GE(H5Aread(a.Get(), H5T_NATIVE_DOUBLE, &actual), 0) | EXPECT_EQ(actual, .3) | EXPECT_NE(actual, .9 - .6) | ASSERT_GE(H5Dread(initial.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, t), 0) | EXPECT_EQ(t[i], i < 5 ? -2 : 0) | ASSERT_GE( H5Dread(flux.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, q), 0) | EXPECT_EQ(q[3 * sample], static_cast(sample)) | EXPECT_EQ(q[3 * sample + 1], -static_cast(sample) - 3) | EXPECT_EQ(q[3 * sample + 2], 9) ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(H5Dread(d.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, frames.data()), 0) | EXPECT_DOUBLE_EQ(frames[i], expected[i % 9]) | ASSERT_GE(H5Aread(a.Get(), H5T_NATIVE_DOUBLE, &actual), 0) | EXPECT_EQ(actual, .3) | EXPECT_NE(actual, .9 - .6) | ASSERT_GE(H5Dread(initial.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, t), 0) | EXPECT_EQ(t[i], i < 5 ? -2 : 0) | ASSERT_GE( H5Dread(flux.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, q), 0) | EXPECT_EQ(q[3 * sample], static_cast(sample)) | EXPECT_EQ(q[3 * sample + 1], -static_cast(sample) - 3) | EXPECT_EQ(q[3 * sample + 2], 9) -Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryFailedLifecycleBoundaryPreservesOldFinalAndCleansCandidate ThermalHdf5ResultsWriter.EveryFailedLifecycleBoundaryPreservesOldFinalAndCleansCandidate; assertion 8개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryFailedLifecycleBoundaryPreservesOldFinalAndCleansCandidate 유지 원문 검사 body 및 assertion 동일. 411e24e5bc006ee97ce6e6c3e648e3fd63cf72585b2fef2347a8cab364de86ba 411e24e5bc006ee97ce6e6c3e648e3fd63cf72585b2fef2347a8cab364de86ba "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(d.Get(), 0) | ASSERT_GE(H5Adelete(m.Get(), ""schema_version""), 0) | EXPECT_TRUE(std::filesystem::remove(candidate)) | EXPECT_FALSE(fesa::hdf5_internal::WriteThermalFile(out.Path(), *x.domain, x.state, {}, failures[i]) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) | EXPECT_EQ(entry.path(), out.Path()) | EXPECT_EQ(files, 1U)" "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(d.Get(), 0) | ASSERT_GE(H5Adelete(m.Get(), ""schema_version""), 0) | EXPECT_TRUE(std::filesystem::remove(candidate)) | EXPECT_FALSE(fesa::hdf5_internal::WriteThermalFile(out.Path(), *x.domain, x.state, {}, failures[i]) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) | EXPECT_EQ(entry.path(), out.Path()) | EXPECT_EQ(files, 1U)" -Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.DomainMismatchAndIncompleteHistoryCannotReplaceFinal ThermalHdf5ResultsWriter.DomainMismatchAndIncompleteHistoryCannotReplaceFinal; assertion 8개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.DomainMismatchAndIncompleteHistoryCannotReplaceFinal 유지 원문 검사 body 및 assertion 동일. 737aebeffb93534d9acc0a723361a72396790b4f57424f2410fa23ce0807f0cf 737aebeffb93534d9acc0a723361a72396790b4f57424f2410fa23ce0807f0cf ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_TRUE(different.HasValue()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), different.Value(), x.state, {}) .IsOk()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *partial.domain, partial.state, {}) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) | ASSERT_TRUE(changed_g.HasValue()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), changed_g.Value(), prescribed.state, {}) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_TRUE(different.HasValue()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), different.Value(), x.state, {}) .IsOk()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *partial.domain, partial.state, {}) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) | ASSERT_TRUE(changed_g.HasValue()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), changed_g.Value(), prescribed.state, {}) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) -Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryPrimitiveDatasetChecksShapeTypeAndValue ThermalHdf5ResultsWriter.EveryPrimitiveDatasetChecksShapeTypeAndValue; assertion 7개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryPrimitiveDatasetChecksShapeTypeAndValue 유지 원문 검사 body 및 assertion 동일. 94f20f584c491bbde83edeabb6d369a9358a4227a25e8a17f615b9aa2ff6e045 94f20f584c491bbde83edeabb6d369a9358a4227a25e8a17f615b9aa2ff6e045 "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""extent""), std::string::npos) | EXPECT_NE(Message(checked).find(""primitive type""), std::string::npos) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""extent""), std::string::npos)" "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""extent""), std::string::npos) | EXPECT_NE(Message(checked).find(""primitive type""), std::string::npos) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""extent""), std::string::npos)" -Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.InitialRecoveryCannotBeFilledWithCompletedZeros ThermalHdf5ResultsWriter.InitialRecoveryCannotBeFilledWithCompletedZeros; assertion 5개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.InitialRecoveryCannotBeFilledWithCompletedZeros 유지 원문 검사 body 및 assertion 동일. 0f30c83325b2edbf6f637c4324d4c8b85cf15189fb03798a5c2fa52eac8ae6ea 0f30c83325b2edbf6f637c4324d4c8b85cf15189fb03798a5c2fa52eac8ae6ea "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(g.Get(), 0) | ASSERT_GE(H5Ocopy(f.Get(), ""/steps/Step-1/frames/1/element/heat_flux"", f.Get(), ""/steps/Step-1/frames/0/element/heat_flux"", H5P_DEFAULT, H5P_DEFAULT), 0) | ASSERT_GE( H5Ocopy(f.Get(), ""/steps/Step-1/frames/1/nodal/reaction_heat_rate"", f.Get(), ""/steps/Step-1/frames/0/nodal/reaction_heat_rate"", H5P_DEFAULT, H5P_DEFAULT), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk())" "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(g.Get(), 0) | ASSERT_GE(H5Ocopy(f.Get(), ""/steps/Step-1/frames/1/element/heat_flux"", f.Get(), ""/steps/Step-1/frames/0/element/heat_flux"", H5P_DEFAULT, H5P_DEFAULT), 0) | ASSERT_GE( H5Ocopy(f.Get(), ""/steps/Step-1/frames/1/nodal/reaction_heat_rate"", f.Get(), ""/steps/Step-1/frames/0/nodal/reaction_heat_rate"", H5P_DEFAULT, H5P_DEFAULT), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk())" -Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp support@1-313 helper/oracle/fixture/include/static assertion 구간: Definition, Fixture, Make, Temp, Path, Message, Bytes, Diagnostics, CollectAttribute, CopyAttributes, for, RewriteCompound, if, T, WriteColumn, StringAttribute, ReplacePrimitive, ChangePrimitive tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f3c40b4b5f52a1a45372592be54b1b910b2f1d1d1f25c305049ab22e15768cd6 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp support@810-815 helper/oracle/fixture/include/static assertion 구간: FailedClose tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 192b1bf23c67a96f66846de9e9b50e917d5a4347cd052fa681b3a34b2f05b181 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp support@993-993 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/loads/load_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/loads/load_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ce8c7aa7d0372bf0cd2f1627ed19cc2b1c603240d03517e959169eb746f8dd64 ce8c7aa7d0372bf0cd2f1627ed19cc2b1c603240d03517e959169eb746f8dd64 해당 없음 해당 없음 -Refactor tests/unit/loads/load_test.cpp Load.ConcentratedNodalLoadEmitsStableFullDofContributions Load.ConcentratedNodalLoadEmitsStableFullDofContributions; assertion 7개 tests/unit/loads/load_test.cpp Load.ConcentratedNodalLoadEmitsStableFullDofContributions 유지 원문 검사 body 및 assertion 동일. 2ccf11bb0f56a9bf2a474ee028662ee0d6d8c21e6c25c2fc9c3e3e24dc116eb3 2ccf11bb0f56a9bf2a474ee028662ee0d6d8c21e6c25c2fc9c3e3e24dc116eb3 ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().size(), 12U) | EXPECT_EQ(contribution.source_order, 7U) | EXPECT_EQ(contribution.full_dof_index, node * components.size() + component) | EXPECT_DOUBLE_EQ(contribution.value, components[component]) ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().size(), 12U) | EXPECT_EQ(contribution.source_order, 7U) | EXPECT_EQ(contribution.full_dof_index, node * components.size() + component) | EXPECT_DOUBLE_EQ(contribution.value, components[component]) -Refactor tests/unit/loads/load_test.cpp Load.ConcentratedNodalLoadRejectsInvalidInputWithoutContributions Load.ConcentratedNodalLoadRejectsInvalidInputWithoutContributions; assertion 2개 tests/unit/loads/load_test.cpp Load.ConcentratedNodalLoadRejectsInvalidInputWithoutContributions 유지 원문 검사 body 및 assertion 동일. c3c7d3455b3f5352f0c13fbf53c73ff736c3a35d764cd20f952f5e34466609fa c3c7d3455b3f5352f0c13fbf53c73ff736c3a35d764cd20f952f5e34466609fa ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) -Refactor tests/unit/loads/load_test.cpp support@1-49 helper/oracle/fixture/include/static assertion 구간: MakeDomain, if, ExpectFailureCode tests/unit/loads/load_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e237ce80f9cbe95cd5979cd1db9a7989577e0dc5510ac16003d902aa2eafb08a 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/loads/shell_surface_pressure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 11개 tests/unit/loads/shell_surface_pressure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 094f2106b557380c45c24cf92d2f4b860ece37d53faea45b704bfd456be26945 094f2106b557380c45c24cf92d2f4b860ece37d53faea45b704bfd456be26945 해당 없음 해당 없음 -Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.PartitionsUnityAndIntegratesPlanarResultantAndMoment ShellSurfacePressureKernel.PartitionsUnityAndIntegratesPlanarResultantAndMoment; assertion 0개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.PartitionsUnityAndIntegratesPlanarResultantAndMoment 유지 원문 검사 body 및 assertion 동일. f6a885c1167ddcbc8e2baf4601ea82653d59f4f3b981f6d395081374e93b7413 f6a885c1167ddcbc8e2baf4601ea82653d59f4f3b981f6d395081374e93b7413 해당 없음 해당 없음 -Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.ReversesExactlyForSposSnegAndNegativeMagnitude ShellSurfacePressureKernel.ReversesExactlyForSposSnegAndNegativeMagnitude; assertion 4개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.ReversesExactlyForSposSnegAndNegativeMagnitude 유지 원문 검사 body 및 assertion 동일. 87fe2f501765003b1a98bf624ccfb5d2d6678dfd6d3e073601f2e3d643229c13 87fe2f501765003b1a98bf624ccfb5d2d6678dfd6d3e073601f2e3d643229c13 EXPECT_DOUBLE_EQ(sneg.force[index], -spos.force[index]) | EXPECT_DOUBLE_EQ(negative.force[index], -spos.force[index]) | EXPECT_DOUBLE_EQ(sneg.external_tangent[index], -spos.external_tangent[index]) | EXPECT_DOUBLE_EQ(negative.external_tangent[index], -spos.external_tangent[index]) EXPECT_DOUBLE_EQ(sneg.force[index], -spos.force[index]) | EXPECT_DOUBLE_EQ(negative.force[index], -spos.force[index]) | EXPECT_DOUBLE_EQ(sneg.external_tangent[index], -spos.external_tangent[index]) | EXPECT_DOUBLE_EQ(negative.external_tangent[index], -spos.external_tangent[index]) -Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.UsesReferenceGeometryWithExactZeroLinearTangent ShellSurfacePressureKernel.UsesReferenceGeometryWithExactZeroLinearTangent; assertion 2개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.UsesReferenceGeometryWithExactZeroLinearTangent 유지 원문 검사 body 및 assertion 동일. 6df3b7fe71338797c8f6097a473832beafa3089671066636ca75e8bca3b987f7 6df3b7fe71338797c8f6097a473832beafa3089671066636ca75e8bca3b987f7 EXPECT_EQ(with_displacement.force, without_displacement.force) | EXPECT_EQ(value, 0.0) EXPECT_EQ(with_displacement.force, without_displacement.force) | EXPECT_EQ(value, 0.0) -Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.UsesCurrentAreaAndNormalForFollowerForce ShellSurfacePressureKernel.UsesCurrentAreaAndNormalForFollowerForce; assertion 0개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.UsesCurrentAreaAndNormalForFollowerForce 유지 원문 검사 body 및 assertion 동일. 742615c05c1bc269305f36ae87a6697fe65fd72435d10c586b6014847cd341ba 742615c05c1bc269305f36ae87a6697fe65fd72435d10c586b6014847cd341ba 해당 없음 해당 없음 -Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.HasExactZeroRotationalForceRowsAndTangentBlocks ShellSurfacePressureKernel.HasExactZeroRotationalForceRowsAndTangentBlocks; assertion 2개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.HasExactZeroRotationalForceRowsAndTangentBlocks 유지 원문 검사 body 및 assertion 동일. 8d1c94d3b2b280fcd624c066f984ebf716dce5a75b9eb50cbdfa7db3bf81b3f7 8d1c94d3b2b280fcd624c066f984ebf716dce5a75b9eb50cbdfa7db3bf81b3f7 EXPECT_EQ(contribution.force[row], 0.0) | EXPECT_EQ(contribution.external_tangent[row * kDofCount + column], 0.0) EXPECT_EQ(contribution.force[row], 0.0) | EXPECT_EQ(contribution.external_tangent[row * kDofCount + column], 0.0) -Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.IsTranslationAndRigidRotationObjective ShellSurfacePressureKernel.IsTranslationAndRigidRotationObjective; assertion 1개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.IsTranslationAndRigidRotationObjective 유지 원문 검사 body 및 assertion 동일. 05b4e1eacac15e74c7f5645bfbccd96c0ab08dca4dd74eb6fcbee49c16daaaa5 05b4e1eacac15e74c7f5645bfbccd96c0ab08dca4dd74eb6fcbee49c16daaaa5 EXPECT_NEAR(actual, expected, 1.0e-12) EXPECT_NEAR(actual, expected, 1.0e-12) -Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.IsCovariantUnderCyclicNodeRelabeling ShellSurfacePressureKernel.IsCovariantUnderCyclicNodeRelabeling; assertion 2개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.IsCovariantUnderCyclicNodeRelabeling 유지 원문 검사 body 및 assertion 동일. ca803fdcc621df980fbb68f74a2f58637161c96934d111e03221c7145bb576ba ca803fdcc621df980fbb68f74a2f58637161c96934d111e03221c7145bb576ba EXPECT_NEAR(relabeled.force[row], original.force[original_row], 1.0e-12) | EXPECT_NEAR(relabeled.external_tangent[row * kDofCount + column], original.external_tangent[original_row * kDofCount + original_column], 1.0e-12) EXPECT_NEAR(relabeled.force[row], original.force[original_row], 1.0e-12) | EXPECT_NEAR(relabeled.external_tangent[row * kDofCount + column], original.external_tangent[original_row * kDofCount + original_column], 1.0e-12) -Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.MatchesCenteredFiniteDifferenceForForceAndResidualSigns ShellSurfacePressureKernel.MatchesCenteredFiniteDifferenceForForceAndResidualSigns; assertion 2개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.MatchesCenteredFiniteDifferenceForForceAndResidualSigns 유지 원문 검사 body 및 assertion 동일. dd09d801d862e32fa0409aacff9a835233c61c4f4c7061387b26285589ddf9a0 dd09d801d862e32fa0409aacff9a835233c61c4f4c7061387b26285589ddf9a0 ASSERT_GT(direction_scale, 0.0) | ASSERT_GT(scale, 0.0) ASSERT_GT(direction_scale, 0.0) | ASSERT_GT(scale, 0.0) -Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.PreservesGenerallyNonsymmetricFollowerTangent ShellSurfacePressureKernel.PreservesGenerallyNonsymmetricFollowerTangent; assertion 3개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.PreservesGenerallyNonsymmetricFollowerTangent 유지 원문 검사 body 및 assertion 동일. 6ac36ad2369fd30335c8d818991d31c435ccfd968051fff43160f486090f9ffe 6ac36ad2369fd30335c8d818991d31c435ccfd968051fff43160f486090f9ffe EXPECT_NE(xz, 0.0) | EXPECT_NE(zx, 0.0) | EXPECT_DOUBLE_EQ(xz, -zx) EXPECT_NE(xz, 0.0) | EXPECT_NE(zx, 0.0) | EXPECT_DOUBLE_EQ(xz, -zx) -Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.RejectsNonfiniteCollapsedFoldedAndInvertedGeometryAtEveryRequiredPoint ShellSurfacePressureKernel.RejectsNonfiniteCollapsedFoldedAndInvertedGeometryAtEveryRequiredPoint; assertion 0개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.RejectsNonfiniteCollapsedFoldedAndInvertedGeometryAtEveryRequiredPoint 유지 원문 검사 body 및 assertion 동일. 24d345beb376e5620bf884b8ea0190d3c9e308e0e7b90bece6e143929fd3abdd 24d345beb376e5620bf884b8ea0190d3c9e308e0e7b90bece6e143929fd3abdd 해당 없음 해당 없음 -Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.ValidatesGeometryEvenForZeroPressureOrFactor ShellSurfacePressureKernel.ValidatesGeometryEvenForZeroPressureOrFactor; assertion 0개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.ValidatesGeometryEvenForZeroPressureOrFactor 유지 원문 검사 body 및 assertion 동일. 09b7acaf930fe99ec2cef7ccfa01ef7928b9a54333feb71791e9a13c0d35de37 09b7acaf930fe99ec2cef7ccfa01ef7928b9a54333feb71791e9a13c0d35de37 해당 없음 해당 없음 -Refactor tests/unit/loads/shell_surface_pressure_test.cpp support@1-215 helper/oracle/fixture/include/static assertion 구간: PlanarInput, DistortedCurrentInput, EvaluateOrThrow, if, ForceAt, SumForce, MomentAboutOrigin, Norm, for, ExpectVectorRelative, ExpectArraysRelative, TangentAction, ChordLength, Rotate, ProperRotation, RotateInput, ExpectFailure tests/unit/loads/shell_surface_pressure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 78431ddeb801a8e24b974e8f45471a809df750f50df392e341b26471f651c80f 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/loads/shell_surface_pressure_test.cpp support@512-513 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/loads/shell_surface_pressure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/materials/material_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/materials/material_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0e4f0a0beafc60dfc9ed3a016a544ed2b93a305867f8b820dc6817ebe58d8b7d 0e4f0a0beafc60dfc9ed3a016a544ed2b93a305867f8b820dc6817ebe58d8b7d 해당 없음 해당 없음 -Refactor tests/unit/materials/material_test.cpp Material.OwnsIsotropicElasticityThroughVirtualBase Material.OwnsIsotropicElasticityThroughVirtualBase; assertion 9개 tests/unit/materials/material_test.cpp Material.OwnsIsotropicElasticityThroughVirtualBase 유지 원문 검사 body 및 assertion 동일. 4a8b6d7c9c0bad72f99959a9fb02d195686bbb2b555313912866b19b3601c0d9 4a8b6d7c9c0bad72f99959a9fb02d195686bbb2b555313912866b19b3601c0d9 "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(material->Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(material->SourceId().source_label, 7) | EXPECT_EQ(material->SourceId().source_label_text, ""Steel"") | EXPECT_EQ(isotropic.Name(), ""Steel"") | EXPECT_DOUBLE_EQ(isotropic.YoungsModulus(), 210.0e9) | EXPECT_DOUBLE_EQ(isotropic.PoissonsRatio(), 0.3) | EXPECT_EQ(isotropic.Location().file, ""models/material.inp"") | EXPECT_EQ(isotropic.Location().line, 30U)" "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(material->Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(material->SourceId().source_label, 7) | EXPECT_EQ(material->SourceId().source_label_text, ""Steel"") | EXPECT_EQ(isotropic.Name(), ""Steel"") | EXPECT_DOUBLE_EQ(isotropic.YoungsModulus(), 210.0e9) | EXPECT_DOUBLE_EQ(isotropic.PoissonsRatio(), 0.3) | EXPECT_EQ(isotropic.Location().file, ""models/material.inp"") | EXPECT_EQ(isotropic.Location().line, 30U)" -Refactor tests/unit/materials/material_test.cpp Material.RejectsInvalidCurrentElasticFields Material.RejectsInvalidCurrentElasticFields; assertion 5개 tests/unit/materials/material_test.cpp Material.RejectsInvalidCurrentElasticFields 유지 원문 검사 body 및 assertion 동일. b9022c41bd0e641beaa68206c8fc19d2396a5b41ccf8e8bfe1bbd9911b9dde81 b9022c41bd0e641beaa68206c8fc19d2396a5b41ccf8e8bfe1bbd9911b9dde81 ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].severity, fesa::Severity::kError) | EXPECT_TRUE(beam_compatible.HasValue()) ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].severity, fesa::Severity::kError) | EXPECT_TRUE(beam_compatible.HasValue()) -Refactor tests/unit/materials/material_test.cpp support@1-18 helper/oracle/fixture/include/static assertion 구간: MaterialSourceId, MaterialLocation tests/unit/materials/material_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0bc44f8ab121b123fdba22e1b3d50215ac0446ace019d14397d3e8a69ff0ae3b 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/math/dense_blas_internal_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 14개 tests/unit/math/dense_blas_internal_test.cpp file 이관 raw primitive·TLS 복원 검사를 복원하고 Refactor factor/jet 검사를 유지한다. Cholesky lower·inverse 값은 DenseFactor::Lower와 SolveLower(identity)로 검사한다. 실패한 out-parameter 보존은 이전 owned factor/result 보존으로 검사한다. 옛 mutable reason enum·throw 구조는 typed Result의 shape/nonfinite/pivot 실패와 성공 후 재사용으로 이관한다. 92b3b3a482f320eb9e0206baf3190e6c96f110b5c3e63a27cfc038cb6dc5bf5e 358c0fa2dac6cebb5ddc2cdac29661c7d82a8b99da881ce069275b4daf4aba3a 해당 없음 해당 없음 -Refactor tests/unit/math/dense_blas_internal_test.cpp DenseFactor.LuSolvesRectangularRhsOnBothSidesAndTransposes DenseFactor.LuSolvesRectangularRhsOnBothSidesAndTransposes; assertion 3개 tests/unit/math/dense_blas_internal_test.cpp DenseFactor.LuSolvesRectangularRhsOnBothSidesAndTransposes 유지 원문 검사 body 및 assertion 동일. 8ee576cfac5011bf3db4491f2722297eb334e52e620a6da187fa10a0725032c3 8ee576cfac5011bf3db4491f2722297eb334e52e620a6da187fa10a0725032c3 ASSERT_TRUE(factor.HasValue()) | EXPECT_DOUBLE_EQ(factor.Value().Determinant(), -4.0) | ASSERT_TRUE(solved.HasValue()) ASSERT_TRUE(factor.HasValue()) | EXPECT_DOUBLE_EQ(factor.Value().Determinant(), -4.0) | ASSERT_TRUE(solved.HasValue()) -Refactor tests/unit/math/dense_blas_internal_test.cpp DenseFactor.CholeskySolvesAndWhiteningRetainsScaleAndOrientation DenseFactor.CholeskySolvesAndWhiteningRetainsScaleAndOrientation; assertion 11개 tests/unit/math/dense_blas_internal_test.cpp DenseFactor.CholeskySolvesAndWhiteningRetainsScaleAndOrientation 유지 원문 검사 body 및 assertion 동일. c4763e27ab0b305c36731c7445ad6b9e38aa464d71e56a07e9997f7038904f89 c4763e27ab0b305c36731c7445ad6b9e38aa464d71e56a07e9997f7038904f89 ASSERT_TRUE(factor.HasValue()) | EXPECT_DOUBLE_EQ(factor.Value().Determinant(), 16.0) | ASSERT_TRUE(lower.HasValue()) | EXPECT_DOUBLE_EQ(lower.Value()(0, 0), 2.0) | EXPECT_DOUBLE_EQ(lower.Value()(0, 1), 0.0) | EXPECT_DOUBLE_EQ(lower.Value()(1, 0), 1.0) | EXPECT_DOUBLE_EQ(lower.Value()(1, 1), 2.0) | ASSERT_TRUE(solved.HasValue()) | ASSERT_TRUE(triangular.HasValue()) | ASSERT_TRUE(w.HasValue()) | EXPECT_DOUBLE_EQ(gram, i == j ? 1.0 : 0.0) ASSERT_TRUE(factor.HasValue()) | EXPECT_DOUBLE_EQ(factor.Value().Determinant(), 16.0) | ASSERT_TRUE(lower.HasValue()) | EXPECT_DOUBLE_EQ(lower.Value()(0, 0), 2.0) | EXPECT_DOUBLE_EQ(lower.Value()(0, 1), 0.0) | EXPECT_DOUBLE_EQ(lower.Value()(1, 0), 1.0) | EXPECT_DOUBLE_EQ(lower.Value()(1, 1), 2.0) | ASSERT_TRUE(solved.HasValue()) | ASSERT_TRUE(triangular.HasValue()) | ASSERT_TRUE(w.HasValue()) | EXPECT_DOUBLE_EQ(gram, i == j ? 1.0 : 0.0) -Refactor tests/unit/math/dense_blas_internal_test.cpp DenseFactor.OwnsSnapshotAndFailedCandidatesPreserveReusableFactor DenseFactor.OwnsSnapshotAndFailedCandidatesPreserveReusableFactor; assertion 20개 tests/unit/math/dense_blas_internal_test.cpp DenseFactor.OwnsSnapshotAndFailedCandidatesPreserveReusableFactor 유지 원문 검사 body 및 assertion 동일. 885e2764eedb21b7dcfdb8b6f4abc01784b7ccd5ddf4d6ba8c5372ce07be1769 885e2764eedb21b7dcfdb8b6f4abc01784b7ccd5ddf4d6ba8c5372ce07be1769 ASSERT_TRUE(factor.HasValue()) | ASSERT_TRUE(changed.HasValue()) | ASSERT_TRUE(old_solution.HasValue()) | EXPECT_DOUBLE_EQ(old_solution.Value()(0, 0), 4) | EXPECT_DOUBLE_EQ(changed.Value().Solve(rhs).Value()(0, 0), 1) | EXPECT_FALSE(DenseFactor::Lu(Matrix{2U, 2U}).HasValue()) | EXPECT_FALSE(DenseFactor::Cholesky(Matrix{2U, 2U}).HasValue()) | EXPECT_FALSE(DenseFactor::Cholesky(a).HasValue()) | EXPECT_FALSE(DenseFactor::Lu(Matrix{2U, 3U}).HasValue()) | EXPECT_FALSE(DenseFactor::Lu(a).HasValue()) | EXPECT_FALSE(DenseFactor::Cholesky(a).HasValue()) | EXPECT_FALSE(factor.Value().Solve(Matrix{3U, 1U}).HasValue()) | EXPECT_FALSE(factor.Value().SolveRight(Matrix{1U, 3U}).HasValue()) | EXPECT_FALSE(factor.Value().SolveLower(rhs).HasValue()) | EXPECT_FALSE(factor.Value().Solve(rhs).HasValue()) | EXPECT_DOUBLE_EQ(old_solution.Value()(0, 0), 4) | EXPECT_DOUBLE_EQ(factor.Value().Solve(rhs).Value()(0, 0), 4) | ASSERT_TRUE(tiny_factor.HasValue()) | EXPECT_FALSE(tiny_factor.Value() .Solve(Matrix{1U, 1U, (std::numeric_limits::max)()}) .HasValue()) | EXPECT_DOUBLE_EQ(tiny_factor.Value().Solve(tiny).Value()(0, 0), 1) ASSERT_TRUE(factor.HasValue()) | ASSERT_TRUE(changed.HasValue()) | ASSERT_TRUE(old_solution.HasValue()) | EXPECT_DOUBLE_EQ(old_solution.Value()(0, 0), 4) | EXPECT_DOUBLE_EQ(changed.Value().Solve(rhs).Value()(0, 0), 1) | EXPECT_FALSE(DenseFactor::Lu(Matrix{2U, 2U}).HasValue()) | EXPECT_FALSE(DenseFactor::Cholesky(Matrix{2U, 2U}).HasValue()) | EXPECT_FALSE(DenseFactor::Cholesky(a).HasValue()) | EXPECT_FALSE(DenseFactor::Lu(Matrix{2U, 3U}).HasValue()) | EXPECT_FALSE(DenseFactor::Lu(a).HasValue()) | EXPECT_FALSE(DenseFactor::Cholesky(a).HasValue()) | EXPECT_FALSE(factor.Value().Solve(Matrix{3U, 1U}).HasValue()) | EXPECT_FALSE(factor.Value().SolveRight(Matrix{1U, 3U}).HasValue()) | EXPECT_FALSE(factor.Value().SolveLower(rhs).HasValue()) | EXPECT_FALSE(factor.Value().Solve(rhs).HasValue()) | EXPECT_DOUBLE_EQ(old_solution.Value()(0, 0), 4) | EXPECT_DOUBLE_EQ(factor.Value().Solve(rhs).Value()(0, 0), 4) | ASSERT_TRUE(tiny_factor.HasValue()) | EXPECT_FALSE(tiny_factor.Value() .Solve(Matrix{1U, 1U, (std::numeric_limits::max)()}) .HasValue()) | EXPECT_DOUBLE_EQ(tiny_factor.Value().Solve(tiny).Value()(0, 0), 1) -Refactor tests/unit/math/dense_blas_internal_test.cpp DenseFactor.EmptyAndInfinityConditionBoundaryAreExplicit DenseFactor.EmptyAndInfinityConditionBoundaryAreExplicit; assertion 12개 tests/unit/math/dense_blas_internal_test.cpp DenseFactor.EmptyAndInfinityConditionBoundaryAreExplicit 유지 원문 검사 body 및 assertion 동일. ea146f605bef37ea46d6a0c268b5d6c5524ba1f62f893140896acf4e489498f0 ea146f605bef37ea46d6a0c268b5d6c5524ba1f62f893140896acf4e489498f0 ASSERT_TRUE(empty.HasValue()) | ASSERT_TRUE(left.HasValue()) | EXPECT_EQ(left.Value().Columns(), 3U) | ASSERT_TRUE(right.HasValue()) | EXPECT_EQ(right.Value().Rows(), 4U) | EXPECT_FALSE(empty.Value().ReciprocalConditionInfinity().HasValue()) | ASSERT_TRUE(factor.HasValue()) | ASSERT_TRUE(rcond.HasValue()) | EXPECT_DOUBLE_EQ(rcond.Value(), diagonal) | EXPECT_EQ(rcond.Value() >= 0x1p-32, diagonal >= 0x1p-32) | EXPECT_EQ(factor.Value().Solve(Matrix{2U, 0U}).Value().Columns(), 0U) | EXPECT_EQ(factor.Value().SolveRight(Matrix{0U, 2U}).Value().Rows(), 0U) ASSERT_TRUE(empty.HasValue()) | ASSERT_TRUE(left.HasValue()) | EXPECT_EQ(left.Value().Columns(), 3U) | ASSERT_TRUE(right.HasValue()) | EXPECT_EQ(right.Value().Rows(), 4U) | EXPECT_FALSE(empty.Value().ReciprocalConditionInfinity().HasValue()) | ASSERT_TRUE(factor.HasValue()) | ASSERT_TRUE(rcond.HasValue()) | EXPECT_DOUBLE_EQ(rcond.Value(), diagonal) | EXPECT_EQ(rcond.Value() >= 0x1p-32, diagonal >= 0x1p-32) | EXPECT_EQ(factor.Value().Solve(Matrix{2U, 0U}).Value().Columns(), 0U) | EXPECT_EQ(factor.Value().SolveRight(Matrix{0U, 2U}).Value().Rows(), 0U) -Refactor tests/unit/math/dense_blas_internal_test.cpp DenseFactor.GeneralDimensionAndNonDiagonalConditionUseFullCoefficient DenseFactor.GeneralDimensionAndNonDiagonalConditionUseFullCoefficient; assertion 6개 tests/unit/math/dense_blas_internal_test.cpp DenseFactor.GeneralDimensionAndNonDiagonalConditionUseFullCoefficient 유지 원문 검사 body 및 assertion 동일. dbd223f1cc316c3320525fee225834b093270d83b8f9ea98560c7ad11364726e dbd223f1cc316c3320525fee225834b093270d83b8f9ea98560c7ad11364726e ASSERT_TRUE(factor.HasValue()) | ASSERT_TRUE(solved.HasValue()) | ASSERT_TRUE(lu.HasValue()) | EXPECT_DOUBLE_EQ(lu.Value().ReciprocalConditionInfinity().Value(), 1.0 / 3.0) | EXPECT_FALSE(lu.Value().Lower().HasValue()) | EXPECT_FALSE(DenseFactor::Lu(overflow).HasValue()) ASSERT_TRUE(factor.HasValue()) | ASSERT_TRUE(solved.HasValue()) | ASSERT_TRUE(lu.HasValue()) | EXPECT_DOUBLE_EQ(lu.Value().ReciprocalConditionInfinity().Value(), 1.0 / 3.0) | EXPECT_FALSE(lu.Value().Lower().HasValue()) | EXPECT_FALSE(DenseFactor::Lu(overflow).HasValue()) -Refactor tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CDup003ConvertsZeroNormalAndOverflowLengths DenseBlasInternal.CDup003ConvertsZeroNormalAndOverflowLengths; assertion 6개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CDup003ConvertsZeroNormalAndOverflowLengths 유지 원문 검사 body 및 assertion 동일. 7310c1121f67249879da772e16e1f0aed31290565d542780b71704dbe397cf82 7310c1121f67249879da772e16e1f0aed31290565d542780b71704dbe397cf82 ASSERT_TRUE(zero.HasValue()) | EXPECT_EQ(zero.Value(), 0) | ASSERT_TRUE(normal.HasValue()) | EXPECT_EQ(normal.Value(), 3) | EXPECT_FALSE(rejected.HasValue()) | EXPECT_FALSE(rejected.GetStatus().IsOk()) ASSERT_TRUE(zero.HasValue()) | EXPECT_EQ(zero.Value(), 0) | ASSERT_TRUE(normal.HasValue()) | EXPECT_EQ(normal.Value(), 3) | EXPECT_FALSE(rejected.HasValue()) | EXPECT_FALSE(rejected.GetStatus().IsOk()) -Refactor tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CDup003CopiesZeroAndNonzeroContiguousValues DenseBlasInternal.CDup003CopiesZeroAndNonzeroContiguousValues; assertion 2개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CDup003CopiesZeroAndNonzeroContiguousValues 유지 원문 검사 body 및 assertion 동일. 6174848905a7f5e3b5af5b336c22d8d4ce3e9872c557e543d783f5b8e2970e36 6174848905a7f5e3b5af5b336c22d8d4ce3e9872c557e543d783f5b8e2970e36 EXPECT_NO_THROW(CopyValues(nullptr, 0U, nullptr)) | EXPECT_EQ(destination, source) EXPECT_NO_THROW(CopyValues(nullptr, 0U, nullptr)) | EXPECT_EQ(destination, source) -Refactor tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.TransposeLeftMatchesIndependentRectangularProduct DenseBlasInternal.TransposeLeftMatchesIndependentRectangularProduct; assertion 6개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.TransposeLeftMatchesIndependentRectangularProduct 유지 원문 검사 body 및 assertion 동일. 2f128333a889ea4bd05bf8dba9fd53164ac5cfa096b4c16a4ebb8d68e134bc01 2f128333a889ea4bd05bf8dba9fd53164ac5cfa096b4c16a4ebb8d68e134bc01 ASSERT_EQ(product.Rows(), 2U) | ASSERT_EQ(product.Columns(), 4U) | EXPECT_DOUBLE_EQ(product(row, column), expected) | EXPECT_DOUBLE_EQ(gram(0U, 0U), 35.0) | EXPECT_DOUBLE_EQ(gram(0U, 1U), 44.0) | EXPECT_DOUBLE_EQ(gram(1U, 1U), 56.0) ASSERT_EQ(product.Rows(), 2U) | ASSERT_EQ(product.Columns(), 4U) | EXPECT_DOUBLE_EQ(product(row, column), expected) | EXPECT_DOUBLE_EQ(gram(0U, 0U), 35.0) | EXPECT_DOUBLE_EQ(gram(0U, 1U), 44.0) | EXPECT_DOUBLE_EQ(gram(1U, 1U), 56.0) -Refactor tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.TransposeLeftRetainsEmptyAndFailureContracts DenseBlasInternal.TransposeLeftRetainsEmptyAndFailureContracts; assertion 7개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.TransposeLeftRetainsEmptyAndFailureContracts 유지 원문 검사 body 및 assertion 동일. b0f121f2d20673a3ca8fb37991c77f5f1282119ad4bfdb2f8ebbf8a62f11b727 b0f121f2d20673a3ca8fb37991c77f5f1282119ad4bfdb2f8ebbf8a62f11b727 ASSERT_EQ(zeros.Rows(), 2U) | ASSERT_EQ(zeros.Columns(), 3U) | EXPECT_DOUBLE_EQ(zeros(1U, 2U), 0.0) | EXPECT_EQ(empty.Rows(), 0U) | EXPECT_EQ(empty.Columns(), 0U) | EXPECT_THROW(static_cast(MultiplyTransposeLeft(Matrix{1U, 2U}, Matrix{2U, 1U})), std::invalid_argument) | EXPECT_THROW(static_cast(MultiplyTransposeLeft( Matrix{1U, 0U}, Matrix{1U, 1U, (std::numeric_limits::quiet_NaN)()})), std::invalid_argument) ASSERT_EQ(zeros.Rows(), 2U) | ASSERT_EQ(zeros.Columns(), 3U) | EXPECT_DOUBLE_EQ(zeros(1U, 2U), 0.0) | EXPECT_EQ(empty.Rows(), 0U) | EXPECT_EQ(empty.Columns(), 0U) | EXPECT_THROW(static_cast(MultiplyTransposeLeft(Matrix{1U, 2U}, Matrix{2U, 1U})), std::invalid_argument) | EXPECT_THROW(static_cast(MultiplyTransposeLeft( Matrix{1U, 0U}, Matrix{1U, 1U, (std::numeric_limits::quiet_NaN)()})), std::invalid_argument) -Refactor tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.RawProductsPreserveDestinationOnNonfiniteInput DenseBlasInternal.RawProductsPreserveDestinationOnNonfiniteInput; assertion 7개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.RawProductsPreserveDestinationOnNonfiniteInput 유지 원문 검사 body 및 assertion 동일. 4a41cf9c6954d5a62bab71682bbc7bb7418678a454a00182c543ae3094d74d62 4a41cf9c6954d5a62bab71682bbc7bb7418678a454a00182c543ae3094d74d62 ASSERT_TRUE(MultiplyTransposeRight(left, 2U, right, 3U, 2U, destination.data())) | EXPECT_EQ(destination, (std::array{-7.0, 23.0, 11.0, -39.0, 11.0, 67.0})) | EXPECT_FALSE(MultiplyTransposeRight(invalid, 1U, right, 3U, 2U, destination.data())) | EXPECT_FALSE(OuterProduct(left, 2U, invalid, 2U, destination.data())) | EXPECT_DOUBLE_EQ(value, 42.0) | ASSERT_TRUE(OuterProduct(left, 2U, right, 3U, destination.data())) | EXPECT_EQ(destination, (std::array{5.0, -6.0, 7.0, 10.0, -12.0, 14.0})) ASSERT_TRUE(MultiplyTransposeRight(left, 2U, right, 3U, 2U, destination.data())) | EXPECT_EQ(destination, (std::array{-7.0, 23.0, 11.0, -39.0, 11.0, 67.0})) | EXPECT_FALSE(MultiplyTransposeRight(invalid, 1U, right, 3U, 2U, destination.data())) | EXPECT_FALSE(OuterProduct(left, 2U, invalid, 2U, destination.data())) | EXPECT_DOUBLE_EQ(value, 42.0) | ASSERT_TRUE(OuterProduct(left, 2U, right, 3U, destination.data())) | EXPECT_EQ(destination, (std::array{5.0, -6.0, 7.0, 10.0, -12.0, 14.0})) -Refactor tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.RawProductZeroDimensionsAndOverflowAreExplicit DenseBlasInternal.RawProductZeroDimensionsAndOverflowAreExplicit; assertion 8개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.RawProductZeroDimensionsAndOverflowAreExplicit 유지 원문 검사 body 및 assertion 동일. 984e62302170c08919b0063009bba2b65a90ada4fb11785eb01836c63d202836 984e62302170c08919b0063009bba2b65a90ada4fb11785eb01836c63d202836 EXPECT_TRUE(OuterProduct(nullptr, 0U, nullptr, 3U, nullptr)) | EXPECT_TRUE(MultiplyTransposeRight(nullptr, 2U, nullptr, 0U, 3U, nullptr)) | ASSERT_TRUE(MultiplyTransposeRight(nullptr, 2U, nullptr, 3U, 0U, zeros.data())) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_THROW(MultiplyTransposeRight(nullptr, 1U, nullptr, 1U, 1U, nullptr), std::invalid_argument) | EXPECT_THROW(MultiplyTransposeRight(nullptr, overflow, nullptr, 0U, 0U, nullptr), std::length_error) | EXPECT_THROW(CopyValues(&unchanged, overflow, &unchanged), std::length_error) | EXPECT_DOUBLE_EQ(unchanged, 42.0) EXPECT_TRUE(OuterProduct(nullptr, 0U, nullptr, 3U, nullptr)) | EXPECT_TRUE(MultiplyTransposeRight(nullptr, 2U, nullptr, 0U, 3U, nullptr)) | ASSERT_TRUE(MultiplyTransposeRight(nullptr, 2U, nullptr, 3U, 0U, zeros.data())) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_THROW(MultiplyTransposeRight(nullptr, 1U, nullptr, 1U, 1U, nullptr), std::invalid_argument) | EXPECT_THROW(MultiplyTransposeRight(nullptr, overflow, nullptr, 0U, 0U, nullptr), std::length_error) | EXPECT_THROW(CopyValues(&unchanged, overflow, &unchanged), std::length_error) | EXPECT_DOUBLE_EQ(unchanged, 42.0) -Refactor tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.ContiguousPrimitivesCheckEmptyAndOverflowBeforeUse DenseBlasInternal.ContiguousPrimitivesCheckEmptyAndOverflowBeforeUse; assertion 9개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.ContiguousPrimitivesCheckEmptyAndOverflowBeforeUse 유지 원문 검사 body 및 assertion 동일. 2ed41da5963f5cd8c8f1883a7bf7e6400ec02830e89b87c96d2272d5040a25dc 2ed41da5963f5cd8c8f1883a7bf7e6400ec02830e89b87c96d2272d5040a25dc EXPECT_DOUBLE_EQ(DotValues(nullptr, 0U, nullptr), 0.0) | EXPECT_DOUBLE_EQ(NormValues(nullptr, 0U), 0.0) | EXPECT_NO_THROW(ScaleValues(2.0, nullptr, 0U)) | EXPECT_NO_THROW(AxpyValues(2.0, nullptr, 0U, nullptr)) | EXPECT_THROW(DotValues(nullptr, overflow, nullptr), std::length_error) | EXPECT_THROW(NormValues(nullptr, overflow), std::length_error) | EXPECT_THROW(ScaleValues(2.0, &unchanged, overflow), std::length_error) | EXPECT_THROW(AxpyValues(2.0, nullptr, overflow, &unchanged), std::length_error) | EXPECT_DOUBLE_EQ(unchanged, 42.0) EXPECT_DOUBLE_EQ(DotValues(nullptr, 0U, nullptr), 0.0) | EXPECT_DOUBLE_EQ(NormValues(nullptr, 0U), 0.0) | EXPECT_NO_THROW(ScaleValues(2.0, nullptr, 0U)) | EXPECT_NO_THROW(AxpyValues(2.0, nullptr, 0U, nullptr)) | EXPECT_THROW(DotValues(nullptr, overflow, nullptr), std::length_error) | EXPECT_THROW(NormValues(nullptr, overflow), std::length_error) | EXPECT_THROW(ScaleValues(2.0, &unchanged, overflow), std::length_error) | EXPECT_THROW(AxpyValues(2.0, nullptr, overflow, &unchanged), std::length_error) | EXPECT_DOUBLE_EQ(unchanged, 42.0) -Refactor tests/unit/math/dense_blas_internal_test.cpp JetLinearSolve.RecoversMixedCubicCoefficientsWithOnePrimalFactor JetLinearSolve.RecoversMixedCubicCoefficientsWithOnePrimalFactor; assertion 3개 tests/unit/math/dense_blas_internal_test.cpp JetLinearSolve.RecoversMixedCubicCoefficientsWithOnePrimalFactor 유지 원문 검사 body 및 assertion 동일. a4023af7275d952ed8a1919ec83d546e161d40a68ab5306657ccf97b5b8c9b18 a4023af7275d952ed8a1919ec83d546e161d40a68ab5306657ccf97b5b8c9b18 ASSERT_TRUE(factor.HasValue()) | ASSERT_TRUE(SolveJetAction(a, rhs, factor.Value(), {1,2,3,4}, PolynomialConstant, PolynomialRead, PolynomialWrite, solved)) | EXPECT_NEAR(solved[row].c[i][j], expected[row].c[i][j], 2e-14) ASSERT_TRUE(factor.HasValue()) | ASSERT_TRUE(SolveJetAction(a, rhs, factor.Value(), {1,2,3,4}, PolynomialConstant, PolynomialRead, PolynomialWrite, solved)) | EXPECT_NEAR(solved[row].c[i][j], expected[row].c[i][j], 2e-14) -Refactor tests/unit/math/dense_blas_internal_test.cpp JetLinearSolve.FailedChannelSolvePreservesCandidateAndInputs JetLinearSolve.FailedChannelSolvePreservesCandidateAndInputs; assertion 5개 tests/unit/math/dense_blas_internal_test.cpp JetLinearSolve.FailedChannelSolvePreservesCandidateAndInputs 유지 원문 검사 body 및 assertion 동일. 30ae0ad962f0faf0e9eef5fa39985aeff2df2aaed4869a43378baf0769b30388 30ae0ad962f0faf0e9eef5fa39985aeff2df2aaed4869a43378baf0769b30388 ASSERT_TRUE(factor.HasValue()) | EXPECT_FALSE(SolveJetAction(a, rhs, factor.Value(), {1,2,3,4}, PolynomialConstant, PolynomialRead, PolynomialWrite, solved)) | EXPECT_EQ(solved[0].c[0][0], 17) | EXPECT_EQ(a[1][1].c[0][0], 1) | EXPECT_EQ(rhs[1].c[1][0], std::numeric_limits::infinity()) ASSERT_TRUE(factor.HasValue()) | EXPECT_FALSE(SolveJetAction(a, rhs, factor.Value(), {1,2,3,4}, PolynomialConstant, PolynomialRead, PolynomialWrite, solved)) | EXPECT_EQ(solved[0].c[0][0], 17) | EXPECT_EQ(a[1][1].c[0][0], 1) | EXPECT_EQ(rhs[1].c[1][0], std::numeric_limits::infinity()) -Refactor tests/unit/math/dense_blas_internal_test.cpp support@1-38 helper/oracle/fixture/include/static assertion 구간: fesa, FactorRhs, ExpectFactorSolution tests/unit/math/dense_blas_internal_test.cpp file-support 이관 raw primitive·TLS 복원 검사를 복원하고 Refactor factor/jet 검사를 유지한다. Cholesky lower·inverse 값은 DenseFactor::Lower와 SolveLower(identity)로 검사한다. 실패한 out-parameter 보존은 이전 owned factor/result 보존으로 검사한다. 옛 mutable reason enum·throw 구조는 typed Result의 shape/nonfinite/pivot 실패와 성공 후 재사용으로 이관한다. 8f13d3e6bf671a0c1d0a2130c4d1fb92818b0639a0f3a8f17ebd5a701e126838 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/math/dense_blas_internal_test.cpp support@329-366 helper/oracle/fixture/include/static assertion 구간: fesa, Polynomial, PolynomialConstant, PolynomialRead, PolynomialWrite tests/unit/math/dense_blas_internal_test.cpp file-support 유지 raw primitive·TLS 복원 검사를 복원하고 Refactor factor/jet 검사를 유지한다. Cholesky lower·inverse 값은 DenseFactor::Lower와 SolveLower(identity)로 검사한다. 실패한 out-parameter 보존은 이전 owned factor/result 보존으로 검사한다. 옛 mutable reason enum·throw 구조는 typed Result의 shape/nonfinite/pivot 실패와 성공 후 재사용으로 이관한다. 6d6e95a56f8e52a8509a0cd10d7a3ff86f0a0c886ebbb746be7b3b212792dfc4 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/math/dense_blas_internal_test.cpp support@427-428 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/dense_blas_internal_test.cpp file-support 유지 raw primitive·TLS 복원 검사를 복원하고 Refactor factor/jet 검사를 유지한다. Cholesky lower·inverse 값은 DenseFactor::Lower와 SolveLower(identity)로 검사한다. 실패한 out-parameter 보존은 이전 owned factor/result 보존으로 검사한다. 옛 mutable reason enum·throw 구조는 typed Result의 shape/nonfinite/pivot 실패와 성공 후 재사용으로 이관한다. 0c7b9a2d7d4c2814fe4dfea8e7034b85ea93318c441c7b770362b4e9a9dadcb5 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/math/high_low_arithmetic_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/math/high_low_arithmetic_test.cpp file 이관 Dev frozen oracle helper 원문을 유지한다. 모든 exponent·finite 분류·raw-bit 검사를 복원하고 Refactor packet dispatch 검사를 함께 남긴다. 9a7cff8145fef7279b78dae9839d85d69d4b85de012ff89c943efc9e3aa02e6f 6e7fafa845bdd0c3a648b846f2ed54bf2fd07d5ec492a7c84b164c93f6e6ecc4 해당 없음 해당 없음 -Refactor tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RetainsSubUlpAdditionsAndSignedCancellation HighLowArithmetic.RetainsSubUlpAdditionsAndSignedCancellation; assertion 15개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RetainsSubUlpAdditionsAndSignedCancellation 유지 원문 검사 body 및 assertion 동일. f2a492c6eb8068167a3979f743c32cbc73dfe847846d892e715ed7bfbc9e05ec f2a492c6eb8068167a3979f743c32cbc73dfe847846d892e715ed7bfbc9e05ec ASSERT_TRUE(ArithmeticEnvironmentSupported()) | EXPECT_FALSE(IsNormalized(HighLow{-0.0, -0.0})) | EXPECT_TRUE(IsNormalized(HighLow{-0.0})) | EXPECT_FALSE(std::signbit(HighLow{-0.0}.high)) | EXPECT_FALSE(std::signbit(Negate(HighLow{}).high)) | EXPECT_FALSE(std::signbit(Negate(HighLow{}).low)) | EXPECT_EQ(positive.high, 1) | EXPECT_EQ(positive.low, tiny) | EXPECT_EQ(Rounded(positive), 1) | EXPECT_EQ(difference.high, tiny) | EXPECT_EQ(difference.low, 0) | EXPECT_EQ(Compare(positive, HighLow{1}), 1) | EXPECT_EQ(Compare(HighLow{1, -tiny}, HighLow{1}), -1) | EXPECT_EQ(Compare(Add(positive, Negate(positive)), HighLow{}), 0) | EXPECT_EQ(Abs(HighLow{-1, -tiny}).low, tiny) ASSERT_TRUE(ArithmeticEnvironmentSupported()) | EXPECT_FALSE(IsNormalized(HighLow{-0.0, -0.0})) | EXPECT_TRUE(IsNormalized(HighLow{-0.0})) | EXPECT_FALSE(std::signbit(HighLow{-0.0}.high)) | EXPECT_FALSE(std::signbit(Negate(HighLow{}).high)) | EXPECT_FALSE(std::signbit(Negate(HighLow{}).low)) | EXPECT_EQ(positive.high, 1) | EXPECT_EQ(positive.low, tiny) | EXPECT_EQ(Rounded(positive), 1) | EXPECT_EQ(difference.high, tiny) | EXPECT_EQ(difference.low, 0) | EXPECT_EQ(Compare(positive, HighLow{1}), 1) | EXPECT_EQ(Compare(HighLow{1, -tiny}, HighLow{1}), -1) | EXPECT_EQ(Compare(Add(positive, Negate(positive)), HighLow{}), 0) | EXPECT_EQ(Abs(HighLow{-1, -tiny}).low, tiny) -Refactor tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.AllProductTermsAndDivisionResidualReachState HighLowArithmetic.AllProductTermsAndDivisionResidualReachState; assertion 6개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.AllProductTermsAndDivisionResidualReachState 유지 원문 검사 body 및 assertion 동일. 5d464b75e43ed56254ebd034fe40e7d2683352bbe913cd6eaf816614bd3582dd 5d464b75e43ed56254ebd034fe40e7d2683352bbe913cd6eaf816614bd3582dd EXPECT_EQ(product.high, 1) | EXPECT_EQ(product.low, -std::ldexp(1.0, -120)) | ASSERT_TRUE(IsNormalized(quotient)) | EXPECT_LE(std::abs(defect.high), std::ldexp(1.0, -104)) | EXPECT_EQ(cancellation.high, tiny / 2) | EXPECT_EQ(cancellation.low, 0) EXPECT_EQ(product.high, 1) | EXPECT_EQ(product.low, -std::ldexp(1.0, -120)) | ASSERT_TRUE(IsNormalized(quotient)) | EXPECT_LE(std::abs(defect.high), std::ldexp(1.0, -104)) | EXPECT_EQ(cancellation.high, tiny / 2) | EXPECT_EQ(cancellation.low, 0) -Refactor tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.NormalizesTiesAndCrossesPowerOfTwoBoundary HighLowArithmetic.NormalizesTiesAndCrossesPowerOfTwoBoundary; assertion 6개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.NormalizesTiesAndCrossesPowerOfTwoBoundary 유지 원문 검사 body 및 assertion 동일. 4bbb8298c7a24ac9be9d05d58a013ed1d2e3ae9602815e911f9596f567694549 4bbb8298c7a24ac9be9d05d58a013ed1d2e3ae9602815e911f9596f567694549 EXPECT_TRUE(IsNormalized(HighLow{1, half_ulp})) | EXPECT_FALSE(IsNormalized(HighLow{std::nextafter(1.0, 2.0), -half_ulp})) | EXPECT_EQ(result.high, std::nextafter(1.0, 2.0)) | EXPECT_EQ(result.low, 0) | EXPECT_EQ(Add(minimum, minimum).high, 2 * minimum.high) | EXPECT_EQ(Multiply(minimum, HighLow{1}).high, minimum.high) EXPECT_TRUE(IsNormalized(HighLow{1, half_ulp})) | EXPECT_FALSE(IsNormalized(HighLow{std::nextafter(1.0, 2.0), -half_ulp})) | EXPECT_EQ(result.high, std::nextafter(1.0, 2.0)) | EXPECT_EQ(result.low, 0) | EXPECT_EQ(Add(minimum, minimum).high, 2 * minimum.high) | EXPECT_EQ(Multiply(minimum, HighLow{1}).high, minimum.high) -Refactor tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RejectsUnsupportedDyadicTailAndNonfiniteResults HighLowArithmetic.RejectsUnsupportedDyadicTailAndNonfiniteResults; assertion 8개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RejectsUnsupportedDyadicTailAndNonfiniteResults 유지 원문 검사 body 및 assertion 동일. e13007c60ef0ca2d8c8755035337fb55cecb64bcf7483cb7695ab98c1d5cfaa1 e13007c60ef0ca2d8c8755035337fb55cecb64bcf7483cb7695ab98c1d5cfaa1 EXPECT_FALSE(IsFinite(Multiply(minimum, HighLow{0.5}))) | EXPECT_FALSE(IsFinite(Multiply(HighLow{std::ldexp(1.0, -1022)}, HighLow{std::nextafter(0.5, 1.0)}))) | EXPECT_FALSE(IsFinite(Divide(minimum, HighLow{2}))) | EXPECT_FALSE(IsFinite(Divide(HighLow{1}, HighLow{}))) | EXPECT_FALSE(IsFinite(Add(HighLow{std::numeric_limits::max()}, HighLow{std::numeric_limits::max()}))) | EXPECT_EQ(Compare(InvalidHighLow(), HighLow{}), 2) | EXPECT_FALSE(IsNormalized(HighLow{1, 1})) | EXPECT_TRUE(std::isnan(Rounded(HighLow{1, 1}))) EXPECT_FALSE(IsFinite(Multiply(minimum, HighLow{0.5}))) | EXPECT_FALSE(IsFinite(Multiply(HighLow{std::ldexp(1.0, -1022)}, HighLow{std::nextafter(0.5, 1.0)}))) | EXPECT_FALSE(IsFinite(Divide(minimum, HighLow{2}))) | EXPECT_FALSE(IsFinite(Divide(HighLow{1}, HighLow{}))) | EXPECT_FALSE(IsFinite(Add(HighLow{std::numeric_limits::max()}, HighLow{std::numeric_limits::max()}))) | EXPECT_EQ(Compare(InvalidHighLow(), HighLow{}), 2) | EXPECT_FALSE(IsNormalized(HighLow{1, 1})) | EXPECT_TRUE(std::isnan(Rounded(HighLow{1, 1}))) -Refactor tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.ExactDyadicOracleBoundsDiscardedTailAndRefinement HighLowArithmetic.ExactDyadicOracleBoundsDiscardedTailAndRefinement; assertion 13개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.ExactDyadicOracleBoundsDiscardedTailAndRefinement 유지 원문 검사 body 및 assertion 동일. 231d3d1a2023a915af0befbf01924f42b59b43b192520841785ac05d571e9452 231d3d1a2023a915af0befbf01924f42b59b43b192520841785ac05d571e9452 EXPECT_EQ(sum.high, std::ldexp(0x1.0000000000001p+0, scale)) | EXPECT_EQ(sum.low, -std::ldexp(1.0, scale-54)) | EXPECT_EQ(square.high, std::ldexp(1.0, 2*scale)) | EXPECT_EQ(square.low, std::ldexp(1.0, 2*scale-53)) | EXPECT_EQ(third.high, 0x1.5555555555555p-2) | EXPECT_EQ(third.low, 0x1.5555555555555p-56) | EXPECT_EQ(third_residual.high, -std::ldexp(1.0, -108)) | EXPECT_EQ(third_residual.low, 0) | EXPECT_EQ(refined.high, 0x1.999999999999ap-1) | EXPECT_EQ(refined.low, -0x1.8e147ae147ae1p-55) | EXPECT_EQ(boundary.high, 0x1.0000000000002p-970) | EXPECT_EQ(boundary.low, std::numeric_limits::denorm_min()) | EXPECT_FALSE(IsFinite(TwoProduct(std::nextafter(1.0, 2.0), std::nextafter(std::numeric_limits::min(), 1.0)))) EXPECT_EQ(sum.high, std::ldexp(0x1.0000000000001p+0, scale)) | EXPECT_EQ(sum.low, -std::ldexp(1.0, scale-54)) | EXPECT_EQ(square.high, std::ldexp(1.0, 2*scale)) | EXPECT_EQ(square.low, std::ldexp(1.0, 2*scale-53)) | EXPECT_EQ(third.high, 0x1.5555555555555p-2) | EXPECT_EQ(third.low, 0x1.5555555555555p-56) | EXPECT_EQ(third_residual.high, -std::ldexp(1.0, -108)) | EXPECT_EQ(third_residual.low, 0) | EXPECT_EQ(refined.high, 0x1.999999999999ap-1) | EXPECT_EQ(refined.low, -0x1.8e147ae147ae1p-55) | EXPECT_EQ(boundary.high, 0x1.0000000000002p-970) | EXPECT_EQ(boundary.low, std::numeric_limits::denorm_min()) | EXPECT_FALSE(IsFinite(TwoProduct(std::nextafter(1.0, 2.0), std::nextafter(std::numeric_limits::min(), 1.0)))) -Refactor tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RejectsChangedRoundingAndFlushToZeroEnvironment HighLowArithmetic.RejectsChangedRoundingAndFlushToZeroEnvironment; assertion 6개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RejectsChangedRoundingAndFlushToZeroEnvironment 유지 원문 검사 body 및 assertion 동일. 356cfeef68419bd3c33a3abd04e7d67b2bc2ea0a1b4c4bb8e0888fda56c6bc48 356cfeef68419bd3c33a3abd04e7d67b2bc2ea0a1b4c4bb8e0888fda56c6bc48 ASSERT_TRUE(ArithmeticEnvironmentSupported()) | ASSERT_EQ(std::fesetround(FE_DOWNWARD), 0) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) | ASSERT_EQ(std::fesetround(FE_TONEAREST), 0) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) ASSERT_TRUE(ArithmeticEnvironmentSupported()) | ASSERT_EQ(std::fesetround(FE_DOWNWARD), 0) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) | ASSERT_EQ(std::fesetround(FE_TONEAREST), 0) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) -Refactor tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.PacketDispatchRetainsComponentsAndInstructionGates HighLowArithmetic.PacketDispatchRetainsComponentsAndInstructionGates; assertion 14개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.PacketDispatchRetainsComponentsAndInstructionGates 유지 원문 검사 body 및 assertion 동일. cb8d79fd8eafc1efca1f29e6f4532ceed3288186124b2f3398242beda1c04a41 cb8d79fd8eafc1efca1f29e6f4532ceed3288186124b2f3398242beda1c04a41 EXPECT_TRUE(SupportsMaterialPacketInstructions(leaf1, 6, leaf7)) | EXPECT_FALSE(SupportsMaterialPacketInstructions(leaf1 & ~(1U << bit),6,leaf7)) | EXPECT_FALSE(SupportsMaterialPacketInstructions(leaf1,6,leaf7 & ~(1U << bit))) | EXPECT_FALSE(SupportsMaterialPacketInstructions(leaf1,2,leaf7)) | EXPECT_FALSE(SupportsMaterialPacketInstructions(leaf1,4,leaf7)) | EXPECT_TRUE(std::isnan(actual.values[lane].high)) | EXPECT_DOUBLE_EQ(actual.values[lane].high, expected.values[lane].high) | EXPECT_DOUBLE_EQ(actual.values[lane].low, expected.values[lane].low) | EXPECT_EQ(std::signbit(actual.values[lane].low), std::signbit(expected.values[lane].low)) | EXPECT_GT(finite_pairs, 0U) | EXPECT_GT(retained_low_pairs, 0U) | EXPECT_GT(invalid_pairs, 0U) | EXPECT_EQ(SelectMaterialPacketEvaluator(), EvaluateMaterialPacketScalar) | EXPECT_EQ(SelectMaterialPacketEvaluator(), selected) EXPECT_TRUE(SupportsMaterialPacketInstructions(leaf1, 6, leaf7)) | EXPECT_FALSE(SupportsMaterialPacketInstructions(leaf1 & ~(1U << bit),6,leaf7)) | EXPECT_FALSE(SupportsMaterialPacketInstructions(leaf1,6,leaf7 & ~(1U << bit))) | EXPECT_FALSE(SupportsMaterialPacketInstructions(leaf1,2,leaf7)) | EXPECT_FALSE(SupportsMaterialPacketInstructions(leaf1,4,leaf7)) | EXPECT_TRUE(std::isnan(actual.values[lane].high)) | EXPECT_DOUBLE_EQ(actual.values[lane].high, expected.values[lane].high) | EXPECT_DOUBLE_EQ(actual.values[lane].low, expected.values[lane].low) | EXPECT_EQ(std::signbit(actual.values[lane].low), std::signbit(expected.values[lane].low)) | EXPECT_GT(finite_pairs, 0U) | EXPECT_GT(retained_low_pairs, 0U) | EXPECT_GT(invalid_pairs, 0U) | EXPECT_EQ(SelectMaterialPacketEvaluator(), EvaluateMaterialPacketScalar) | EXPECT_EQ(SelectMaterialPacketEvaluator(), selected) -Refactor tests/unit/math/high_low_arithmetic_test.cpp support@1-11 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/high_low_arithmetic_test.cpp file-support 이관 Dev frozen oracle helper 원문을 유지한다. 모든 exponent·finite 분류·raw-bit 검사를 복원하고 Refactor packet dispatch 검사를 함께 남긴다. 87384a6fff2c8b0685ad5d32ad03255990ae389c329b23ccc57040fae22cc877 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/math/high_low_arithmetic_test.cpp support@129-131 helper/oracle/fixture/include/static assertion 구간: namespace tests/unit/math/high_low_arithmetic_test.cpp file-support 이관 Dev frozen oracle helper 원문을 유지한다. 모든 exponent·finite 분류·raw-bit 검사를 복원하고 Refactor packet dispatch 검사를 함께 남긴다. 3f7f376cbb4f7652496e0731de24fd5ba882bbbc64b6fdb2700f236135db934e 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/math/high_low_arithmetic_test.cpp support@206-206 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/math/high_low_arithmetic_test.cpp file-support 유지 Dev frozen oracle helper 원문을 유지한다. 모든 exponent·finite 분류·raw-bit 검사를 복원하고 Refactor packet dispatch 검사를 함께 남긴다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/math/matrix_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/math/matrix_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2c6513a08239b1a3280aba9945c43da4f1dc34c3dd8e2c6b31232436e9481854 e871743665669396e2ff3df6599a7020e1e9009ba325c1341493f4f940da9744 해당 없음 해당 없음 -Refactor tests/unit/math/matrix_test.cpp DenseMath.RowMajorMatrixMatchesKnownGemvGemm DenseMath.RowMajorMatrixMatchesKnownGemvGemm; assertion 39개 tests/unit/math/matrix_test.cpp DenseMath.RowMajorMatrixMatchesKnownGemvGemm 유지 원문 검사 body 및 assertion 동일. 80766b5923a34f53328f9a728d5714d0e8fc8448721f558a25f8cc297cae5317 80766b5923a34f53328f9a728d5714d0e8fc8448721f558a25f8cc297cae5317 EXPECT_THROW(static_cast(Matrix{wraparound_rows, 2}), std::length_error) | EXPECT_EQ(zero_row_product.Size(), 0U) | ASSERT_EQ(zero_column_product.Size(), 2U) | EXPECT_DOUBLE_EQ(zero_column_product[0], 0.0) | EXPECT_DOUBLE_EQ(zero_column_product[1], 0.0) | EXPECT_EQ(zero_inner_product.Rows(), 2U) | EXPECT_EQ(zero_inner_product.Columns(), 3U) | EXPECT_DOUBLE_EQ(zero_inner_product(row, column), 0.0) | EXPECT_EQ(&left(0, 0) + 1, &left(0, 1)) | EXPECT_EQ(&left(0, 0) + 2, &left(0, 2)) | EXPECT_EQ(&left(0, 0) + 3, &left(1, 0)) | EXPECT_DOUBLE_EQ(const_left(1, 2), 6.0) | EXPECT_DOUBLE_EQ(left(0, 0), 1.0) | EXPECT_DOUBLE_EQ(left(1, 2), 6.0) | EXPECT_EQ(copied.Rows(), 0U) | EXPECT_EQ(copied.Columns(), 0U) | EXPECT_EQ(moved.Rows(), 2U) | EXPECT_EQ(moved.Columns(), 3U) | EXPECT_DOUBLE_EQ(moved(0, 0), 42.0) | EXPECT_NO_THROW(static_cast(copied.Multiply(Vector{0}))) | EXPECT_EQ(copy_assigned.Rows(), 0U) | EXPECT_EQ(copy_assigned.Columns(), 0U) | EXPECT_EQ(move_assigned.Rows(), 2U) | EXPECT_EQ(move_assigned.Columns(), 3U) | EXPECT_DOUBLE_EQ(move_assigned(1, 2), -7.0) | ASSERT_EQ(matrix_vector_product.Size(), 2U) | EXPECT_DOUBLE_EQ(matrix_vector_product[0], 50.0) | EXPECT_DOUBLE_EQ(matrix_vector_product[1], 122.0) | ASSERT_EQ(matrix_product.Rows(), 2U) | ASSERT_EQ(matrix_product.Columns(), 2U) | EXPECT_DOUBLE_EQ(matrix_product(0, 0), 58.0) | EXPECT_DOUBLE_EQ(matrix_product(0, 1), 64.0) | EXPECT_DOUBLE_EQ(matrix_product(1, 0), 139.0) | EXPECT_DOUBLE_EQ(matrix_product(1, 1), 154.0) | EXPECT_THROW(static_cast(left(2, 0)), std::out_of_range) | EXPECT_THROW(static_cast(left(0, 3)), std::out_of_range) | EXPECT_THROW(static_cast(const_left(2, 0)), std::out_of_range) | EXPECT_THROW(static_cast(left.Multiply(Vector{2})), std::invalid_argument) | EXPECT_THROW(static_cast(left.Multiply(Matrix{4, 1})), std::invalid_argument) EXPECT_THROW(static_cast(Matrix{wraparound_rows, 2}), std::length_error) | EXPECT_EQ(zero_row_product.Size(), 0U) | ASSERT_EQ(zero_column_product.Size(), 2U) | EXPECT_DOUBLE_EQ(zero_column_product[0], 0.0) | EXPECT_DOUBLE_EQ(zero_column_product[1], 0.0) | EXPECT_EQ(zero_inner_product.Rows(), 2U) | EXPECT_EQ(zero_inner_product.Columns(), 3U) | EXPECT_DOUBLE_EQ(zero_inner_product(row, column), 0.0) | EXPECT_EQ(&left(0, 0) + 1, &left(0, 1)) | EXPECT_EQ(&left(0, 0) + 2, &left(0, 2)) | EXPECT_EQ(&left(0, 0) + 3, &left(1, 0)) | EXPECT_DOUBLE_EQ(const_left(1, 2), 6.0) | EXPECT_DOUBLE_EQ(left(0, 0), 1.0) | EXPECT_DOUBLE_EQ(left(1, 2), 6.0) | EXPECT_EQ(copied.Rows(), 0U) | EXPECT_EQ(copied.Columns(), 0U) | EXPECT_EQ(moved.Rows(), 2U) | EXPECT_EQ(moved.Columns(), 3U) | EXPECT_DOUBLE_EQ(moved(0, 0), 42.0) | EXPECT_NO_THROW(static_cast(copied.Multiply(Vector{0}))) | EXPECT_EQ(copy_assigned.Rows(), 0U) | EXPECT_EQ(copy_assigned.Columns(), 0U) | EXPECT_EQ(move_assigned.Rows(), 2U) | EXPECT_EQ(move_assigned.Columns(), 3U) | EXPECT_DOUBLE_EQ(move_assigned(1, 2), -7.0) | ASSERT_EQ(matrix_vector_product.Size(), 2U) | EXPECT_DOUBLE_EQ(matrix_vector_product[0], 50.0) | EXPECT_DOUBLE_EQ(matrix_vector_product[1], 122.0) | ASSERT_EQ(matrix_product.Rows(), 2U) | ASSERT_EQ(matrix_product.Columns(), 2U) | EXPECT_DOUBLE_EQ(matrix_product(0, 0), 58.0) | EXPECT_DOUBLE_EQ(matrix_product(0, 1), 64.0) | EXPECT_DOUBLE_EQ(matrix_product(1, 0), 139.0) | EXPECT_DOUBLE_EQ(matrix_product(1, 1), 154.0) | EXPECT_THROW(static_cast(left(2, 0)), std::out_of_range) | EXPECT_THROW(static_cast(left(0, 3)), std::out_of_range) | EXPECT_THROW(static_cast(const_left(2, 0)), std::out_of_range) | EXPECT_THROW(static_cast(left.Multiply(Vector{2})), std::invalid_argument) | EXPECT_THROW(static_cast(left.Multiply(Matrix{4, 1})), std::invalid_argument) -Refactor tests/unit/math/matrix_test.cpp DenseMath.MatrixContiguousScaleAndRobustNorm DenseMath.MatrixContiguousScaleAndRobustNorm; assertion 8개 tests/unit/math/matrix_test.cpp DenseMath.MatrixContiguousScaleAndRobustNorm 유지 원문 검사 body 및 assertion 동일. b432feff567c13942d7764fbf2866bdf46cd320be7f71254eea8b20782a18492 b432feff567c13942d7764fbf2866bdf46cd320be7f71254eea8b20782a18492 EXPECT_EQ(immutable.Data() + 3, &immutable(1U, 0U)) | EXPECT_NEAR(matrix.Norm(), std::sqrt(91.0), 2.0e-15) | EXPECT_DOUBLE_EQ(matrix.Data()[i], -2.0 * entries[i]) | EXPECT_DOUBLE_EQ(immutable(1U, 2U), 12.0) | EXPECT_NEAR(huge.Norm() / 1.0e308, std::sqrt(2.0), 4.0e-16) | EXPECT_NEAR(tiny.Norm() / 1.0e-300, std::sqrt(2.0), 4.0e-16) | EXPECT_DOUBLE_EQ(empty.Norm(), 0.0) | EXPECT_NO_THROW(empty.Scale(3.0)) EXPECT_EQ(immutable.Data() + 3, &immutable(1U, 0U)) | EXPECT_NEAR(matrix.Norm(), std::sqrt(91.0), 2.0e-15) | EXPECT_DOUBLE_EQ(matrix.Data()[i], -2.0 * entries[i]) | EXPECT_DOUBLE_EQ(immutable(1U, 2U), 12.0) | EXPECT_NEAR(huge.Norm() / 1.0e308, std::sqrt(2.0), 4.0e-16) | EXPECT_NEAR(tiny.Norm() / 1.0e-300, std::sqrt(2.0), 4.0e-16) | EXPECT_DOUBLE_EQ(empty.Norm(), 0.0) | EXPECT_NO_THROW(empty.Scale(3.0)) -Refactor tests/unit/math/matrix_test.cpp DenseMath.MatrixProductKeepsShapeAndFiniteValidationOrder DenseMath.MatrixProductKeepsShapeAndFiniteValidationOrder; assertion 6개 tests/unit/math/matrix_test.cpp DenseMath.MatrixProductKeepsShapeAndFiniteValidationOrder 유지 원문 검사 body 및 assertion 동일. 6a7fa3f0dadbb47c435375f9fbc9bccf297241d83387c4c17e195840106b3799 6a7fa3f0dadbb47c435375f9fbc9bccf297241d83387c4c17e195840106b3799 "EXPECT_STREQ(failure.what(), ""Matrix-vector multiplication has incompatible dimensions."") | EXPECT_THROW(static_cast(matrix.Multiply(Vector{2U})), std::invalid_argument) | EXPECT_THROW(static_cast(matrix.Multiply(Matrix{2U, 0U})), std::invalid_argument) | EXPECT_THROW(static_cast(Matrix{0U, 2U}.Multiply(Vector{2U, nan})), std::invalid_argument) | EXPECT_DOUBLE_EQ(square(0U, 0U), 18.0) | EXPECT_DOUBLE_EQ(finite(0U, 0U), 3.0)" "EXPECT_STREQ(failure.what(), ""Matrix-vector multiplication has incompatible dimensions."") | EXPECT_THROW(static_cast(matrix.Multiply(Vector{2U})), std::invalid_argument) | EXPECT_THROW(static_cast(matrix.Multiply(Matrix{2U, 0U})), std::invalid_argument) | EXPECT_THROW(static_cast(Matrix{0U, 2U}.Multiply(Vector{2U, nan})), std::invalid_argument) | EXPECT_DOUBLE_EQ(square(0U, 0U), 18.0) | EXPECT_DOUBLE_EQ(finite(0U, 0U), 3.0)" -Refactor tests/unit/math/matrix_test.cpp DenseMath.MatrixSelfAssignmentPreservesShapeAndStorage DenseMath.MatrixSelfAssignmentPreservesShapeAndStorage; assertion 5개 tests/unit/math/matrix_test.cpp DenseMath.MatrixSelfAssignmentPreservesShapeAndStorage 유지 원문 검사 body 및 assertion 동일. 9aab3255ebd10378558667f8795f35a8af6b9f8142933866d3012457bdb9afab 9aab3255ebd10378558667f8795f35a8af6b9f8142933866d3012457bdb9afab EXPECT_EQ(matrix.Rows(), 2U) | EXPECT_EQ(matrix.Columns(), 1U) | EXPECT_DOUBLE_EQ(matrix(1U, 0U), 7.0) | EXPECT_EQ(matrix.Rows(), 2U) | EXPECT_DOUBLE_EQ(matrix(1U, 0U), 7.0) EXPECT_EQ(matrix.Rows(), 2U) | EXPECT_EQ(matrix.Columns(), 1U) | EXPECT_DOUBLE_EQ(matrix(1U, 0U), 7.0) | EXPECT_EQ(matrix.Rows(), 2U) | EXPECT_DOUBLE_EQ(matrix(1U, 0U), 7.0) -Refactor tests/unit/math/matrix_test.cpp support@1-12 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/matrix_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 85adcb7d83136d0f31a1cb98ca6c83135504641a803971b78e9d9a0ecb0723f7 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/math/matrix_test.cpp support@168-170 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/matrix_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/math/sparse_matrix_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/math/sparse_matrix_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2d60a8b6821d8cf61c56f088cf73ad4324638979db7776a27f68113740e14ad7 ce2d95faaa89e5b4887d791745eee4b97e882482fa91e04b787dceaa268d663b 해당 없음 해당 없음 -Refactor tests/unit/math/sparse_matrix_test.cpp SparseAssembly.ValidatesKnownCsrAndMultiply SparseAssembly.ValidatesKnownCsrAndMultiply; assertion 13개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.ValidatesKnownCsrAndMultiply 유지 원문 검사 body 및 assertion 동일. 306be72faf3dbbf425d660063d3847f0d06a43498caa60943e847cc485a5d9c8 306be72faf3dbbf425d660063d3847f0d06a43498caa60943e847cc485a5d9c8 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(matrix.Rows(), 4U) | EXPECT_EQ(matrix.Columns(), 4U) | EXPECT_EQ(matrix.RowOffsets(), pattern.row_offsets) | EXPECT_EQ(matrix.ColumnIndices(), pattern.column_indices) | EXPECT_EQ(matrix.Values(), (std::vector{1.0, 2.0, 3.0, 4.0, 5.0})) | EXPECT_TRUE(matrix.Validate().IsOk()) | ASSERT_EQ(product.Size(), 4U) | EXPECT_DOUBLE_EQ(product[0U], 7.0) | EXPECT_DOUBLE_EQ(product[1U], 0.0) | EXPECT_DOUBLE_EQ(product[2U], 22.0) | EXPECT_DOUBLE_EQ(product[3U], 20.0) | EXPECT_THROW(static_cast(matrix.Multiply(Vector{3U})), std::invalid_argument) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(matrix.Rows(), 4U) | EXPECT_EQ(matrix.Columns(), 4U) | EXPECT_EQ(matrix.RowOffsets(), pattern.row_offsets) | EXPECT_EQ(matrix.ColumnIndices(), pattern.column_indices) | EXPECT_EQ(matrix.Values(), (std::vector{1.0, 2.0, 3.0, 4.0, 5.0})) | EXPECT_TRUE(matrix.Validate().IsOk()) | ASSERT_EQ(product.Size(), 4U) | EXPECT_DOUBLE_EQ(product[0U], 7.0) | EXPECT_DOUBLE_EQ(product[1U], 0.0) | EXPECT_DOUBLE_EQ(product[2U], 22.0) | EXPECT_DOUBLE_EQ(product[3U], 20.0) | EXPECT_THROW(static_cast(matrix.Multiply(Vector{3U})), std::invalid_argument) -Refactor tests/unit/math/sparse_matrix_test.cpp SparseAssembly.ReducesDuplicatesInFixedTupleOrder SparseAssembly.ReducesDuplicatesInFixedTupleOrder; assertion 7개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.ReducesDuplicatesInFixedTupleOrder 유지 원문 검사 body 및 assertion 동일. 58ef40306d7a2794d3714329bae3ac32fcb28e31493f45d24c5817813cc07a36 58ef40306d7a2794d3714329bae3ac32fcb28e31493f45d24c5817813cc07a36 ASSERT_TRUE(first.HasValue()) | ASSERT_EQ(first.Value().Values().size(), 1U) | EXPECT_DOUBLE_EQ(first.Value().Values()[0U], 1.0) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(second.Value().RowOffsets(), first.Value().RowOffsets()) | EXPECT_EQ(second.Value().ColumnIndices(), first.Value().ColumnIndices()) | EXPECT_EQ(second.Value().Values(), first.Value().Values()) ASSERT_TRUE(first.HasValue()) | ASSERT_EQ(first.Value().Values().size(), 1U) | EXPECT_DOUBLE_EQ(first.Value().Values()[0U], 1.0) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(second.Value().RowOffsets(), first.Value().RowOffsets()) | EXPECT_EQ(second.Value().ColumnIndices(), first.Value().ColumnIndices()) | EXPECT_EQ(second.Value().Values(), first.Value().Values()) -Refactor tests/unit/math/sparse_matrix_test.cpp SparseAssembly.RejectsInvalidIndexPatternAndShape SparseAssembly.RejectsInvalidIndexPatternAndShape; assertion 4개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.RejectsInvalidIndexPatternAndShape 유지 원문 검사 body 및 assertion 동일. 20889c0e8ab98ed0bbfbe684fcf8309c542a55123a6d5f0d7cd97d60cd25d104 20889c0e8ab98ed0bbfbe684fcf8309c542a55123a6d5f0d7cd97d60cd25d104 EXPECT_FALSE(result.HasValue()) | EXPECT_FALSE(result.GetStatus().IsOk()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(result.GetStatus().Diagnostics().empty()) EXPECT_FALSE(result.HasValue()) | EXPECT_FALSE(result.GetStatus().IsOk()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(result.GetStatus().Diagnostics().empty()) -Refactor tests/unit/math/sparse_matrix_test.cpp SparseAssembly.PreservesExpectedStructuralZeros SparseAssembly.PreservesExpectedStructuralZeros; assertion 5개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.PreservesExpectedStructuralZeros 유지 원문 검사 body 및 assertion 동일. 8a7bf76b61f4852be9d64fe9358d648f2c8be768942738a0785c52ed047ffd27 8a7bf76b61f4852be9d64fe9358d648f2c8be768942738a0785c52ed047ffd27 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().RowOffsets(), pattern.row_offsets) | EXPECT_EQ(result.Value().ColumnIndices(), pattern.column_indices) | EXPECT_EQ(result.Value().Values(), (std::vector{2.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(std::count(result.Value().Values().begin(), result.Value().Values().end(), 0.0), 4) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().RowOffsets(), pattern.row_offsets) | EXPECT_EQ(result.Value().ColumnIndices(), pattern.column_indices) | EXPECT_EQ(result.Value().Values(), (std::vector{2.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(std::count(result.Value().Values().begin(), result.Value().Values().end(), 0.0), 4) -Refactor tests/unit/math/sparse_matrix_test.cpp support@1-24 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/math/sparse_matrix_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 23c3df79753c201d7b02a8de310b9d238cdef8208af1e40f475ff3d65ccc99b2 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/math/sparse_matrix_test.cpp support@133-134 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/math/sparse_matrix_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/math/vector3_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/math/vector3_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 442331d7ccb19a8f989c48d0f71fdfb0f0a6473adf7af53e7a4b477f45b965a4 442331d7ccb19a8f989c48d0f71fdfb0f0a6473adf7af53e7a4b477f45b965a4 해당 없음 해당 없음 -Refactor tests/unit/math/vector3_test.cpp Vector3.StoresComponentsWithExactArithmetic Vector3.StoresComponentsWithExactArithmetic; assertion 18개 tests/unit/math/vector3_test.cpp Vector3.StoresComponentsWithExactArithmetic 유지 원문 검사 body 및 assertion 동일. 9a048f9faafa466a70e10b035ee0fe67423b83781ad22e7d0f69c50168b6a353 9a048f9faafa466a70e10b035ee0fe67423b83781ad22e7d0f69c50168b6a353 EXPECT_DOUBLE_EQ(lhs.X(), 1.0) | EXPECT_DOUBLE_EQ(lhs.Y(), -2.0) | EXPECT_DOUBLE_EQ(lhs.Z(), 3.0) | EXPECT_DOUBLE_EQ(lhs[0], 1.0) | EXPECT_DOUBLE_EQ(lhs[1], -2.0) | EXPECT_DOUBLE_EQ(lhs[2], 3.0) | EXPECT_DOUBLE_EQ(sum[0], -3.0) | EXPECT_DOUBLE_EQ(sum[1], 3.0) | EXPECT_DOUBLE_EQ(sum[2], 9.0) | EXPECT_DOUBLE_EQ(difference[0], 5.0) | EXPECT_DOUBLE_EQ(difference[1], -7.0) | EXPECT_DOUBLE_EQ(difference[2], -3.0) | EXPECT_DOUBLE_EQ(scaled[0], -2.0) | EXPECT_DOUBLE_EQ(scaled[1], 4.0) | EXPECT_DOUBLE_EQ(scaled[2], -6.0) | EXPECT_DOUBLE_EQ(divided[0], -0.5) | EXPECT_DOUBLE_EQ(divided[1], 1.0) | EXPECT_DOUBLE_EQ(divided[2], -1.5) EXPECT_DOUBLE_EQ(lhs.X(), 1.0) | EXPECT_DOUBLE_EQ(lhs.Y(), -2.0) | EXPECT_DOUBLE_EQ(lhs.Z(), 3.0) | EXPECT_DOUBLE_EQ(lhs[0], 1.0) | EXPECT_DOUBLE_EQ(lhs[1], -2.0) | EXPECT_DOUBLE_EQ(lhs[2], 3.0) | EXPECT_DOUBLE_EQ(sum[0], -3.0) | EXPECT_DOUBLE_EQ(sum[1], 3.0) | EXPECT_DOUBLE_EQ(sum[2], 9.0) | EXPECT_DOUBLE_EQ(difference[0], 5.0) | EXPECT_DOUBLE_EQ(difference[1], -7.0) | EXPECT_DOUBLE_EQ(difference[2], -3.0) | EXPECT_DOUBLE_EQ(scaled[0], -2.0) | EXPECT_DOUBLE_EQ(scaled[1], 4.0) | EXPECT_DOUBLE_EQ(scaled[2], -6.0) | EXPECT_DOUBLE_EQ(divided[0], -0.5) | EXPECT_DOUBLE_EQ(divided[1], 1.0) | EXPECT_DOUBLE_EQ(divided[2], -1.5) -Refactor tests/unit/math/vector3_test.cpp Vector3.ConvertsArrayAndPreservesScalarLeftEvaluationOrder Vector3.ConvertsArrayAndPreservesScalarLeftEvaluationOrder; assertion 6개 tests/unit/math/vector3_test.cpp Vector3.ConvertsArrayAndPreservesScalarLeftEvaluationOrder 유지 원문 검사 body 및 assertion 동일. 1f659f46fd78ea02d6456c20cf865a637d8d3e4f2ac5d5fe89ba27741a28c058 1f659f46fd78ea02d6456c20cf865a637d8d3e4f2ac5d5fe89ba27741a28c058 EXPECT_TRUE(value == Vector3(1.25, -2.5, 5.0)) | EXPECT_FALSE(value == Vector3(1.25, -2.5, 4.0)) | EXPECT_EQ(value.Components(), kComponents) | EXPECT_DOUBLE_EQ(scaled.X(), -2.5) | EXPECT_DOUBLE_EQ(scaled.Y(), 5.0) | EXPECT_DOUBLE_EQ(scaled.Z(), -10.0) EXPECT_TRUE(value == Vector3(1.25, -2.5, 5.0)) | EXPECT_FALSE(value == Vector3(1.25, -2.5, 4.0)) | EXPECT_EQ(value.Components(), kComponents) | EXPECT_DOUBLE_EQ(scaled.X(), -2.5) | EXPECT_DOUBLE_EQ(scaled.Y(), 5.0) | EXPECT_DOUBLE_EQ(scaled.Z(), -10.0) -Refactor tests/unit/math/vector3_test.cpp Vector3.ComputesDotProduct Vector3.ComputesDotProduct; assertion 1개 tests/unit/math/vector3_test.cpp Vector3.ComputesDotProduct 유지 원문 검사 body 및 assertion 동일. 6347f32d63b18e488dfb6a66c9bd3efc2c84beb950b8746efb888bbb580722d7 6347f32d63b18e488dfb6a66c9bd3efc2c84beb950b8746efb888bbb580722d7 EXPECT_DOUBLE_EQ(lhs.Dot(rhs), 12.0) EXPECT_DOUBLE_EQ(lhs.Dot(rhs), 12.0) -Refactor tests/unit/math/vector3_test.cpp Vector3.UsesRightHandedCrossProductOrientation Vector3.UsesRightHandedCrossProductOrientation; assertion 6개 tests/unit/math/vector3_test.cpp Vector3.UsesRightHandedCrossProductOrientation 유지 원문 검사 body 및 assertion 동일. f179b78f12bc066ce442f293298397b5fcc9fe03fce8fbd348f33c5fcd13a24a f179b78f12bc066ce442f293298397b5fcc9fe03fce8fbd348f33c5fcd13a24a EXPECT_DOUBLE_EQ(positive_z.X(), 0.0) | EXPECT_DOUBLE_EQ(positive_z.Y(), 0.0) | EXPECT_DOUBLE_EQ(positive_z.Z(), 1.0) | EXPECT_DOUBLE_EQ(negative_z.X(), 0.0) | EXPECT_DOUBLE_EQ(negative_z.Y(), 0.0) | EXPECT_DOUBLE_EQ(negative_z.Z(), -1.0) EXPECT_DOUBLE_EQ(positive_z.X(), 0.0) | EXPECT_DOUBLE_EQ(positive_z.Y(), 0.0) | EXPECT_DOUBLE_EQ(positive_z.Z(), 1.0) | EXPECT_DOUBLE_EQ(negative_z.X(), 0.0) | EXPECT_DOUBLE_EQ(negative_z.Y(), 0.0) | EXPECT_DOUBLE_EQ(negative_z.Z(), -1.0) -Refactor tests/unit/math/vector3_test.cpp Vector3.ComputesEuclideanNorm Vector3.ComputesEuclideanNorm; assertion 2개 tests/unit/math/vector3_test.cpp Vector3.ComputesEuclideanNorm 유지 원문 검사 body 및 assertion 동일. 2a865b62e7bd8940e5c9db652503bcd28230dfd4abb9f74a4a91282f0d917499 2a865b62e7bd8940e5c9db652503bcd28230dfd4abb9f74a4a91282f0d917499 EXPECT_DOUBLE_EQ(Vector3(2.0, -3.0, 6.0).Norm(), 7.0) | EXPECT_DOUBLE_EQ(Vector3(1.0e308, 1.0e308, 0.0).Norm(), expected) EXPECT_DOUBLE_EQ(Vector3(2.0, -3.0, 6.0).Norm(), 7.0) | EXPECT_DOUBLE_EQ(Vector3(1.0e308, 1.0e308, 0.0).Norm(), expected) -Refactor tests/unit/math/vector3_test.cpp Vector3.NormalizesNonzeroVectors Vector3.NormalizesNonzeroVectors; assertion 4개 tests/unit/math/vector3_test.cpp Vector3.NormalizesNonzeroVectors 유지 원문 검사 body 및 assertion 동일. 6aeabf80f8c56ed0db4cfff4658f47caa3550cc1c042a295dd95dce791e6f329 6aeabf80f8c56ed0db4cfff4658f47caa3550cc1c042a295dd95dce791e6f329 ASSERT_TRUE(normalized.has_value()) | EXPECT_DOUBLE_EQ(normalized->X(), 0.6) | EXPECT_DOUBLE_EQ(normalized->Y(), 0.0) | EXPECT_DOUBLE_EQ(normalized->Z(), 0.8) ASSERT_TRUE(normalized.has_value()) | EXPECT_DOUBLE_EQ(normalized->X(), 0.6) | EXPECT_DOUBLE_EQ(normalized->Y(), 0.0) | EXPECT_DOUBLE_EQ(normalized->Z(), 0.8) -Refactor tests/unit/math/vector3_test.cpp Vector3.ReportsFiniteComponents Vector3.ReportsFiniteComponents; assertion 3개 tests/unit/math/vector3_test.cpp Vector3.ReportsFiniteComponents 유지 원문 검사 body 및 assertion 동일. 5ff94e5120d1add8e2e3242698c75c0444e4c7d25ea530eb8adca0d48757cd96 5ff94e5120d1add8e2e3242698c75c0444e4c7d25ea530eb8adca0d48757cd96 EXPECT_TRUE(Vector3(1.0, -2.0, 3.0).IsFinite()) | EXPECT_FALSE(Vector3(infinity, 0.0, 0.0).IsFinite()) | EXPECT_FALSE(Vector3(0.0, not_a_number, 0.0).IsFinite()) EXPECT_TRUE(Vector3(1.0, -2.0, 3.0).IsFinite()) | EXPECT_FALSE(Vector3(infinity, 0.0, 0.0).IsFinite()) | EXPECT_FALSE(Vector3(0.0, not_a_number, 0.0).IsFinite()) -Refactor tests/unit/math/vector3_test.cpp Vector3.RejectsZeroAndNonfiniteNormalization Vector3.RejectsZeroAndNonfiniteNormalization; assertion 3개 tests/unit/math/vector3_test.cpp Vector3.RejectsZeroAndNonfiniteNormalization 유지 원문 검사 body 및 assertion 동일. cf0551716b1fac7a6af4c3690316df8e7059b681ba04d6a3dbf376c44c8ab8bb cf0551716b1fac7a6af4c3690316df8e7059b681ba04d6a3dbf376c44c8ab8bb EXPECT_FALSE(Vector3().Normalized().has_value()) | EXPECT_FALSE(Vector3(infinity, 0.0, 0.0).Normalized().has_value()) | EXPECT_FALSE(Vector3(0.0, not_a_number, 0.0).Normalized().has_value()) EXPECT_FALSE(Vector3().Normalized().has_value()) | EXPECT_FALSE(Vector3(infinity, 0.0, 0.0).Normalized().has_value()) | EXPECT_FALSE(Vector3(0.0, not_a_number, 0.0).Normalized().has_value()) -Refactor tests/unit/math/vector3_test.cpp Vector3.RightHandedFrameMatchesIndependentCoordinateTransform Vector3.RightHandedFrameMatchesIndependentCoordinateTransform; assertion 5개 tests/unit/math/vector3_test.cpp Vector3.RightHandedFrameMatchesIndependentCoordinateTransform 유지 원문 검사 body 및 assertion 동일. 101b35cfb655b7e66cdabe52c9dce6ba826f420bde08461b676c96f9d1ff3686 101b35cfb655b7e66cdabe52c9dce6ba826f420bde08461b676c96f9d1ff3686 EXPECT_DOUBLE_EQ(x_axis.Dot(global), -3.0) | EXPECT_DOUBLE_EQ(y_axis.Dot(global), 4.0) | EXPECT_DOUBLE_EQ(z_axis.Dot(global), 2.0) | EXPECT_TRUE(recovered == global) | EXPECT_DOUBLE_EQ(x_axis.Dot(y_axis.Cross(z_axis)), 1.0) EXPECT_DOUBLE_EQ(x_axis.Dot(global), -3.0) | EXPECT_DOUBLE_EQ(y_axis.Dot(global), 4.0) | EXPECT_DOUBLE_EQ(z_axis.Dot(global), 2.0) | EXPECT_TRUE(recovered == global) | EXPECT_DOUBLE_EQ(x_axis.Dot(y_axis.Cross(z_axis)), 1.0) -Refactor tests/unit/math/vector3_test.cpp support@1-12 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/vector3_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6a62e51f185970f04141b3a9d4bb5cda154999b19e74598b53adc1365e34f422 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/math/vector3_test.cpp support@128-130 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/vector3_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/math/vector_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/math/vector_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d1f3266cdc2f7f4c586e7512fe090580a641b270ebe8b0525660fa4e737c788c d1f3266cdc2f7f4c586e7512fe090580a641b270ebe8b0525660fa4e737c788c 해당 없음 해당 없음 -Refactor tests/unit/math/vector_test.cpp DenseMath.VectorOwnsAndChecksContiguousStorage DenseMath.VectorOwnsAndChecksContiguousStorage; assertion 31개 tests/unit/math/vector_test.cpp DenseMath.VectorOwnsAndChecksContiguousStorage 유지 원문 검사 body 및 assertion 동일. 4633911f5df21402045699292987f7ed2cec457b562c80c628cfaaea6c7d73ca 4633911f5df21402045699292987f7ed2cec457b562c80c628cfaaea6c7d73ca EXPECT_EQ(empty.Size(), 0U) | EXPECT_DOUBLE_EQ(empty.Norm(), 0.0) | EXPECT_NO_THROW(empty.Scale(3.0)) | EXPECT_NO_THROW(empty.Axpy(-2.0, Vector{0})) | EXPECT_THROW(static_cast(empty[0]), std::out_of_range) | EXPECT_EQ(original.Data() + 1, &original[1]) | EXPECT_EQ(original.Data() + 2, &original[2]) | EXPECT_EQ(const_original.Data() + 2, &const_original[2]) | EXPECT_NE(copied.Data(), original.Data()) | EXPECT_DOUBLE_EQ(original[0], 1.0) | EXPECT_NE(copy_assigned.Data(), original.Data()) | EXPECT_DOUBLE_EQ(original[1], -2.0) | EXPECT_EQ(copied.Size(), 0U) | EXPECT_EQ(moved.Size(), 3U) | EXPECT_DOUBLE_EQ(moved[0], 99.0) | EXPECT_NO_THROW(copied.Scale(4.0)) | EXPECT_EQ(copy_assigned.Size(), 0U) | EXPECT_EQ(move_assigned.Size(), 3U) | EXPECT_DOUBLE_EQ(move_assigned[1], 17.0) | EXPECT_DOUBLE_EQ(original.Dot(rhs), -24.0) | EXPECT_NEAR(original.Norm(), std::sqrt(14.0), 1.0e-15) | EXPECT_DOUBLE_EQ(scaled[0], -0.5) | EXPECT_DOUBLE_EQ(scaled[1], 1.0) | EXPECT_DOUBLE_EQ(scaled[2], -1.5) | EXPECT_DOUBLE_EQ(accumulated[0], 9.0) | EXPECT_DOUBLE_EQ(accumulated[1], 0.0) | EXPECT_DOUBLE_EQ(accumulated[2], 4.0) | EXPECT_THROW(static_cast(original[3]), std::out_of_range) | EXPECT_THROW(static_cast(const_original[3]), std::out_of_range) | EXPECT_THROW(static_cast(original.Dot(Vector{2})), std::invalid_argument) | EXPECT_THROW(original.Axpy(1.0, Vector{2}), std::invalid_argument) EXPECT_EQ(empty.Size(), 0U) | EXPECT_DOUBLE_EQ(empty.Norm(), 0.0) | EXPECT_NO_THROW(empty.Scale(3.0)) | EXPECT_NO_THROW(empty.Axpy(-2.0, Vector{0})) | EXPECT_THROW(static_cast(empty[0]), std::out_of_range) | EXPECT_EQ(original.Data() + 1, &original[1]) | EXPECT_EQ(original.Data() + 2, &original[2]) | EXPECT_EQ(const_original.Data() + 2, &const_original[2]) | EXPECT_NE(copied.Data(), original.Data()) | EXPECT_DOUBLE_EQ(original[0], 1.0) | EXPECT_NE(copy_assigned.Data(), original.Data()) | EXPECT_DOUBLE_EQ(original[1], -2.0) | EXPECT_EQ(copied.Size(), 0U) | EXPECT_EQ(moved.Size(), 3U) | EXPECT_DOUBLE_EQ(moved[0], 99.0) | EXPECT_NO_THROW(copied.Scale(4.0)) | EXPECT_EQ(copy_assigned.Size(), 0U) | EXPECT_EQ(move_assigned.Size(), 3U) | EXPECT_DOUBLE_EQ(move_assigned[1], 17.0) | EXPECT_DOUBLE_EQ(original.Dot(rhs), -24.0) | EXPECT_NEAR(original.Norm(), std::sqrt(14.0), 1.0e-15) | EXPECT_DOUBLE_EQ(scaled[0], -0.5) | EXPECT_DOUBLE_EQ(scaled[1], 1.0) | EXPECT_DOUBLE_EQ(scaled[2], -1.5) | EXPECT_DOUBLE_EQ(accumulated[0], 9.0) | EXPECT_DOUBLE_EQ(accumulated[1], 0.0) | EXPECT_DOUBLE_EQ(accumulated[2], 4.0) | EXPECT_THROW(static_cast(original[3]), std::out_of_range) | EXPECT_THROW(static_cast(const_original[3]), std::out_of_range) | EXPECT_THROW(static_cast(original.Dot(Vector{2})), std::invalid_argument) | EXPECT_THROW(original.Axpy(1.0, Vector{2}), std::invalid_argument) -Refactor tests/unit/math/vector_test.cpp DenseMath.VectorRobustNormSelfAliasAndNonfinitePropagation DenseMath.VectorRobustNormSelfAliasAndNonfinitePropagation; assertion 11개 tests/unit/math/vector_test.cpp DenseMath.VectorRobustNormSelfAliasAndNonfinitePropagation 유지 원문 검사 body 및 assertion 동일. 3fa0567d761cc2f34b42ad4d56d197c3c0c3381a063b029dc18c99788a537a37 3fa0567d761cc2f34b42ad4d56d197c3c0c3381a063b029dc18c99788a537a37 EXPECT_NEAR(large.Norm() / 1.0e308, std::sqrt(2.0), 4.0e-16) | EXPECT_NEAR(tiny.Norm() / 1.0e-300, std::sqrt(2.0), 4.0e-16) | EXPECT_DOUBLE_EQ(values[0], -2.0) | EXPECT_DOUBLE_EQ(values[1], 3.0) | EXPECT_DOUBLE_EQ(values.Dot(values), 13.0) | EXPECT_TRUE(std::isnan(nonfinite.Dot(Vector{1U, 1.0}))) | EXPECT_TRUE(std::isnan(nonfinite.Norm())) | EXPECT_NO_THROW(nonfinite.Scale(2.0)) | EXPECT_NO_THROW(nonfinite.Axpy(1.0, Vector{1U, 1.0})) | EXPECT_TRUE(std::isnan(nonfinite[0])) | EXPECT_DOUBLE_EQ(Vector{0U}.Dot(Vector{0U}), 0.0) EXPECT_NEAR(large.Norm() / 1.0e308, std::sqrt(2.0), 4.0e-16) | EXPECT_NEAR(tiny.Norm() / 1.0e-300, std::sqrt(2.0), 4.0e-16) | EXPECT_DOUBLE_EQ(values[0], -2.0) | EXPECT_DOUBLE_EQ(values[1], 3.0) | EXPECT_DOUBLE_EQ(values.Dot(values), 13.0) | EXPECT_TRUE(std::isnan(nonfinite.Dot(Vector{1U, 1.0}))) | EXPECT_TRUE(std::isnan(nonfinite.Norm())) | EXPECT_NO_THROW(nonfinite.Scale(2.0)) | EXPECT_NO_THROW(nonfinite.Axpy(1.0, Vector{1U, 1.0})) | EXPECT_TRUE(std::isnan(nonfinite[0])) | EXPECT_DOUBLE_EQ(Vector{0U}.Dot(Vector{0U}), 0.0) -Refactor tests/unit/math/vector_test.cpp support@1-12 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/vector_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. dd78aab9abb37ed986923048995a97daafd7eecb62218be73308b5921c5931c8 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/math/vector_test.cpp support@112-114 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/vector_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/model/domain_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/model/domain_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fc0dd95c444cac746db6083b88376bc8365ccd7d26790dd0dd6d51c3f41d6f77 fc0dd95c444cac746db6083b88376bc8365ccd7d26790dd0dd6d51c3f41d6f77 해당 없음 해당 없음 -Refactor tests/unit/model/domain_test.cpp ElementDefinition.DomainOwnsMixedDefinitionsInStableBaseOrder ElementDefinition.DomainOwnsMixedDefinitionsInStableBaseOrder; assertion 26개 tests/unit/model/domain_test.cpp ElementDefinition.DomainOwnsMixedDefinitionsInStableBaseOrder 유지 원문 검사 body 및 assertion 동일. f00cd134923f2e7389d5f87d43f04e6608137532bb437bdcc0affa9cae01e560 f00cd134923f2e7389d5f87d43f04e6608137532bb437bdcc0affa9cae01e560 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Elements().Size(), 2U) | EXPECT_EQ(beam.Kind(), fesa::ElementDefinitionKind::kEulerBeam3D) | EXPECT_EQ(beam.SourceId().source_label_text, ""0007"") | EXPECT_EQ(beam.SourceElementType(), ""B33"") | EXPECT_EQ(beam.NodeIndices(), (std::vector{0U, 1U})) | EXPECT_EQ(beam.MaterialIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(beam.PropertyIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(shell.Kind(), fesa::ElementDefinitionKind::kMitc4Shell) | EXPECT_EQ(shell.SourceId().source_label_text, ""0009"") | EXPECT_EQ(shell.SourceElementType(), ""S4R"") | EXPECT_EQ(shell.NodeIndices(), (std::vector{2U, 3U, 4U, 5U})) | EXPECT_EQ(shell.MaterialIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(shell.PropertyIndex(), fesa::EntityIndex{1U}) | ASSERT_EQ(domain.BeamElements().Size(), 1U) | ASSERT_EQ(domain.ShellElements().Size(), 1U) | EXPECT_EQ(&domain.BeamElements()[0U], &beam) | EXPECT_EQ(&domain.ShellElements()[0U], &shell) | ASSERT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Materials()[0U].Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(&domain.LinearElasticMaterials()[0U], &domain.Materials()[0U]) | ASSERT_EQ(domain.Properties().Size(), 2U) | EXPECT_EQ(domain.Properties()[0U].Kind(), fesa::ElementPropertyKind::kGeneralBeamSection) | EXPECT_EQ(domain.Properties()[1U].Kind(), fesa::ElementPropertyKind::kShellSection) | EXPECT_EQ(&domain.Sections()[0U], &domain.Properties()[0U]) | EXPECT_EQ(&domain.ShellSections()[0U], &domain.Properties()[1U])" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Elements().Size(), 2U) | EXPECT_EQ(beam.Kind(), fesa::ElementDefinitionKind::kEulerBeam3D) | EXPECT_EQ(beam.SourceId().source_label_text, ""0007"") | EXPECT_EQ(beam.SourceElementType(), ""B33"") | EXPECT_EQ(beam.NodeIndices(), (std::vector{0U, 1U})) | EXPECT_EQ(beam.MaterialIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(beam.PropertyIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(shell.Kind(), fesa::ElementDefinitionKind::kMitc4Shell) | EXPECT_EQ(shell.SourceId().source_label_text, ""0009"") | EXPECT_EQ(shell.SourceElementType(), ""S4R"") | EXPECT_EQ(shell.NodeIndices(), (std::vector{2U, 3U, 4U, 5U})) | EXPECT_EQ(shell.MaterialIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(shell.PropertyIndex(), fesa::EntityIndex{1U}) | ASSERT_EQ(domain.BeamElements().Size(), 1U) | ASSERT_EQ(domain.ShellElements().Size(), 1U) | EXPECT_EQ(&domain.BeamElements()[0U], &beam) | EXPECT_EQ(&domain.ShellElements()[0U], &shell) | ASSERT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Materials()[0U].Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(&domain.LinearElasticMaterials()[0U], &domain.Materials()[0U]) | ASSERT_EQ(domain.Properties().Size(), 2U) | EXPECT_EQ(domain.Properties()[0U].Kind(), fesa::ElementPropertyKind::kGeneralBeamSection) | EXPECT_EQ(domain.Properties()[1U].Kind(), fesa::ElementPropertyKind::kShellSection) | EXPECT_EQ(&domain.Sections()[0U], &domain.Properties()[0U]) | EXPECT_EQ(&domain.ShellSections()[0U], &domain.Properties()[1U])" -Refactor tests/unit/model/domain_test.cpp DomainModel.ImmutableOwnershipPreservesStableOrder DomainModel.ImmutableOwnershipPreservesStableOrder; assertion 33개 tests/unit/model/domain_test.cpp DomainModel.ImmutableOwnershipPreservesStableOrder 유지 원문 검사 body 및 assertion 동일. c6f7163bdaff86cf5fff21c3d9f5a0f5770dbdecd62f5af2fa64376558bc75b3 c6f7163bdaff86cf5fff21c3d9f5a0f5770dbdecd62f5af2fa64376558bc75b3 "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.SourcePath(), std::filesystem::path{""models/owned.inp""}) | EXPECT_EQ(domain.SourceContentIdentity(), ""fnv1a64:fedcba9876543210"") | ASSERT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 20) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""0020"") | EXPECT_DOUBLE_EQ(domain.Nodes()[0].coordinates[0], 2.0) | EXPECT_EQ(domain.Nodes()[1].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes().data(), first_node_address) | ASSERT_EQ(domain.BeamElements().Size(), 1U) | EXPECT_EQ(domain.BeamElements()[0].node_indices[0], 1U) | EXPECT_EQ(domain.BeamElements()[0].node_indices[1], 0U) | ASSERT_EQ(domain.Materials().Size(), 1U) | ASSERT_EQ(domain.Sections().Size(), 1U) | EXPECT_DOUBLE_EQ(domain.Sections()[0].section_points[0][0], -0.1) | ASSERT_EQ(domain.NodeSets().size(), 1U) | EXPECT_EQ(domain.NodeSets()[0].node_indices[0], 0U) | ASSERT_EQ(domain.ElementSets().size(), 1U) | EXPECT_EQ(domain.ElementSets()[0].element_indices[0], 0U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0].Name(), ""Step-1"") | EXPECT_DOUBLE_EQ(domain.Steps()[0].InitialIncrement(), 0.1) | EXPECT_DOUBLE_EQ(domain.Steps()[0].TimePeriod(), 1.0) | EXPECT_DOUBLE_EQ(domain.Steps()[0].MinimumIncrement(), 1.0e-5) | EXPECT_DOUBLE_EQ(domain.Steps()[0].MaximumIncrement(), 1.0) | EXPECT_EQ(domain.Steps()[0].ProcedureKind(), fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(domain.Steps()[0].IsNonlinearStatic()) | ASSERT_EQ(domain.Steps()[0].BoundaryConditions().size(), 6U) | ASSERT_EQ(domain.Steps()[0].Loads().size(), 1U) | ASSERT_EQ(domain.Steps()[0].ConcentratedLoads().Size(), 1U) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[2U], -1000.0) | ASSERT_EQ(domain.Warnings().size(), 1U) | EXPECT_EQ(domain.Warnings()[0].code, ""ignored-output-request"")" "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.SourcePath(), std::filesystem::path{""models/owned.inp""}) | EXPECT_EQ(domain.SourceContentIdentity(), ""fnv1a64:fedcba9876543210"") | ASSERT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 20) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""0020"") | EXPECT_DOUBLE_EQ(domain.Nodes()[0].coordinates[0], 2.0) | EXPECT_EQ(domain.Nodes()[1].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes().data(), first_node_address) | ASSERT_EQ(domain.BeamElements().Size(), 1U) | EXPECT_EQ(domain.BeamElements()[0].node_indices[0], 1U) | EXPECT_EQ(domain.BeamElements()[0].node_indices[1], 0U) | ASSERT_EQ(domain.Materials().Size(), 1U) | ASSERT_EQ(domain.Sections().Size(), 1U) | EXPECT_DOUBLE_EQ(domain.Sections()[0].section_points[0][0], -0.1) | ASSERT_EQ(domain.NodeSets().size(), 1U) | EXPECT_EQ(domain.NodeSets()[0].node_indices[0], 0U) | ASSERT_EQ(domain.ElementSets().size(), 1U) | EXPECT_EQ(domain.ElementSets()[0].element_indices[0], 0U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0].Name(), ""Step-1"") | EXPECT_DOUBLE_EQ(domain.Steps()[0].InitialIncrement(), 0.1) | EXPECT_DOUBLE_EQ(domain.Steps()[0].TimePeriod(), 1.0) | EXPECT_DOUBLE_EQ(domain.Steps()[0].MinimumIncrement(), 1.0e-5) | EXPECT_DOUBLE_EQ(domain.Steps()[0].MaximumIncrement(), 1.0) | EXPECT_EQ(domain.Steps()[0].ProcedureKind(), fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(domain.Steps()[0].IsNonlinearStatic()) | ASSERT_EQ(domain.Steps()[0].BoundaryConditions().size(), 6U) | ASSERT_EQ(domain.Steps()[0].Loads().size(), 1U) | ASSERT_EQ(domain.Steps()[0].ConcentratedLoads().Size(), 1U) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[2U], -1000.0) | ASSERT_EQ(domain.Warnings().size(), 1U) | EXPECT_EQ(domain.Warnings()[0].code, ""ignored-output-request"")" -Refactor tests/unit/model/domain_test.cpp DomainModel.MultipleIdentityInstancesDoNotMerge DomainModel.MultipleIdentityInstancesDoNotMerge; assertion 14개 tests/unit/model/domain_test.cpp DomainModel.MultipleIdentityInstancesDoNotMerge 유지 원문 검사 body 및 assertion 동일. af47d90dfe03fde953119eb419e7f2dc83bbc9da3cab2a7a9a4bc70935e11dbb af47d90dfe03fde953119eb419e7f2dc83bbc9da3cab2a7a9a4bc70935e11dbb "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 4U) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[2].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""1"") | EXPECT_EQ(domain.Nodes()[2].source_id.source_label_text, ""1"") | EXPECT_NE(domain.Nodes()[0].source_id.instance_name, domain.Nodes()[2].source_id.instance_name) | ASSERT_EQ(domain.BeamElements().Size(), 2U) | EXPECT_EQ(domain.BeamElements()[0].source_id.source_label, 1) | EXPECT_EQ(domain.BeamElements()[1].source_id.source_label, 1) | EXPECT_EQ(domain.BeamElements()[0].source_id.instance_name, ""Instance-A"") | EXPECT_EQ(domain.BeamElements()[1].source_id.instance_name, ""Instance-B"") | EXPECT_EQ(domain.BeamElements()[0].node_indices[0], 0U) | EXPECT_EQ(domain.BeamElements()[1].node_indices[0], 2U)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 4U) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[2].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""1"") | EXPECT_EQ(domain.Nodes()[2].source_id.source_label_text, ""1"") | EXPECT_NE(domain.Nodes()[0].source_id.instance_name, domain.Nodes()[2].source_id.instance_name) | ASSERT_EQ(domain.BeamElements().Size(), 2U) | EXPECT_EQ(domain.BeamElements()[0].source_id.source_label, 1) | EXPECT_EQ(domain.BeamElements()[1].source_id.source_label, 1) | EXPECT_EQ(domain.BeamElements()[0].source_id.instance_name, ""Instance-A"") | EXPECT_EQ(domain.BeamElements()[1].source_id.instance_name, ""Instance-B"") | EXPECT_EQ(domain.BeamElements()[0].node_indices[0], 0U) | EXPECT_EQ(domain.BeamElements()[1].node_indices[0], 2U)" -Refactor tests/unit/model/domain_test.cpp DomainModel.ShellOwnershipPreservesResolvedAssignmentsAndOptionalFrames DomainModel.ShellOwnershipPreservesResolvedAssignmentsAndOptionalFrames; assertion 22개 tests/unit/model/domain_test.cpp DomainModel.ShellOwnershipPreservesResolvedAssignmentsAndOptionalFrames 유지 원문 검사 body 및 assertion 동일. 4809f2a671c479fb442749d6d34966a00045cb2fd1d23f849a78fde2982fb76a 4809f2a671c479fb442749d6d34966a00045cb2fd1d23f849a78fde2982fb76a "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ShellElements().Size(), 2U) | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label, 20) | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label_text, ""0020"") | EXPECT_EQ(domain.ShellElements()[1].source_id.source_label, 10) | EXPECT_EQ(domain.ShellElements()[0].source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_EQ(domain.ShellElements()[1].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[0].node_indices[3], 7U) | EXPECT_EQ(domain.ShellElements()[0].material_index, 0U) | EXPECT_EQ(domain.ShellElements()[0].section_index, 0U) | ASSERT_EQ(domain.ShellSections().Size(), 2U) | EXPECT_EQ(domain.ShellSections()[0].name, ""Section-B"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[0].thickness, 0.02) | EXPECT_EQ(domain.ShellSections()[0].material_index, 0U) | EXPECT_EQ(domain.ShellSections()[1].name, ""Section-A"") | ASSERT_EQ(domain.ShellNodeInitialFrames().size(), 2U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].node_index, 4U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].director, (std::array{0.0, 0.0, 1.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_a, (std::array{1.0, 0.0, 0.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_b, (std::array{0.0, 1.0, 0.0})) | ASSERT_TRUE(no_frames_result.HasValue()) | EXPECT_TRUE(no_frames_result.Value().ShellNodeInitialFrames().empty())" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ShellElements().Size(), 2U) | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label, 20) | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label_text, ""0020"") | EXPECT_EQ(domain.ShellElements()[1].source_id.source_label, 10) | EXPECT_EQ(domain.ShellElements()[0].source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_EQ(domain.ShellElements()[1].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[0].node_indices[3], 7U) | EXPECT_EQ(domain.ShellElements()[0].material_index, 0U) | EXPECT_EQ(domain.ShellElements()[0].section_index, 0U) | ASSERT_EQ(domain.ShellSections().Size(), 2U) | EXPECT_EQ(domain.ShellSections()[0].name, ""Section-B"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[0].thickness, 0.02) | EXPECT_EQ(domain.ShellSections()[0].material_index, 0U) | EXPECT_EQ(domain.ShellSections()[1].name, ""Section-A"") | ASSERT_EQ(domain.ShellNodeInitialFrames().size(), 2U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].node_index, 4U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].director, (std::array{0.0, 0.0, 1.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_a, (std::array{1.0, 0.0, 0.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_b, (std::array{0.0, 1.0, 0.0})) | ASSERT_TRUE(no_frames_result.HasValue()) | EXPECT_TRUE(no_frames_result.Value().ShellNodeInitialFrames().empty())" -Refactor tests/unit/model/domain_test.cpp support@1-70 helper/oracle/fixture/include/static assertion 구간: MakeOwnedDefinition tests/unit/model/domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7f7d1304d91efcd8a4c1dd7ba01764f329b43c89d1282657290910bb34a13014 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/model/domain_test.cpp support@294-295 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eb5700ab2d23b38315cc91249e1dafb93f72ad934048c13f25c663dc769e2529 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/model/model_types_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/model/model_types_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8e73c0944e4a0592a63c397fe368b2568b35f9b176af5cb8a5f7eb409dd4556c 8e73c0944e4a0592a63c397fe368b2568b35f9b176af5cb8a5f7eb409dd4556c 해당 없음 해당 없음 -Refactor tests/unit/model/model_types_test.cpp DomainModel.SourceAndInternalIdentityRemainDistinct DomainModel.SourceAndInternalIdentityRemainDistinct; assertion 18개 tests/unit/model/model_types_test.cpp DomainModel.SourceAndInternalIdentityRemainDistinct 유지 원문 검사 body 및 assertion 동일. 1a34a5d22cd39f263dbb8fd33c71d7018509fd118804b50f3f683e33c3b8614f 1a34a5d22cd39f263dbb8fd33c71d7018509fd118804b50f3f683e33c3b8614f "EXPECT_EQ( std::make_tuple(first_identity.instance_name, first_identity.source_label, first_identity.source_label_text), std::make_tuple(equal_identity.instance_name, equal_identity.source_label, equal_identity.source_label_text)) | EXPECT_LT( std::make_tuple(first_identity.instance_name, first_identity.source_label, first_identity.source_label_text), std::make_tuple(later_identity.instance_name, later_identity.source_label, later_identity.source_label_text)) | ASSERT_EQ(definition.nodes.size(), 1U) | EXPECT_EQ(definition.nodes[0].source_id.source_label_text, ""0007"") | EXPECT_EQ(definition.nodes[0].location.line, 11U) | ASSERT_EQ(definition.instances.size(), 1U) | EXPECT_EQ(definition.instances[0].part_name, ""BeamPart"") | EXPECT_EQ(definition.instances[0].node_mappings[0].source_label, 7) | EXPECT_EQ(definition.instances[0].node_mappings[0].internal_index, 5U) | EXPECT_EQ(definition.instances[0].element_mappings[0].internal_index, 4U) | EXPECT_EQ(definition.steps[0].initial_increment, 0.1) | EXPECT_EQ(definition.steps[0].time_period, 1.0) | EXPECT_EQ(definition.steps[0].minimum_increment, 1.0e-5) | EXPECT_EQ(definition.steps[0].maximum_increment, 1.0) | EXPECT_EQ(definition.steps[0].procedure_kind, fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(definition.steps[0].nlgeom) | ASSERT_EQ(definition.warnings.size(), 1U) | EXPECT_EQ(definition.warnings[0].location.line, 75U)" "EXPECT_EQ( std::make_tuple(first_identity.instance_name, first_identity.source_label, first_identity.source_label_text), std::make_tuple(equal_identity.instance_name, equal_identity.source_label, equal_identity.source_label_text)) | EXPECT_LT( std::make_tuple(first_identity.instance_name, first_identity.source_label, first_identity.source_label_text), std::make_tuple(later_identity.instance_name, later_identity.source_label, later_identity.source_label_text)) | ASSERT_EQ(definition.nodes.size(), 1U) | EXPECT_EQ(definition.nodes[0].source_id.source_label_text, ""0007"") | EXPECT_EQ(definition.nodes[0].location.line, 11U) | ASSERT_EQ(definition.instances.size(), 1U) | EXPECT_EQ(definition.instances[0].part_name, ""BeamPart"") | EXPECT_EQ(definition.instances[0].node_mappings[0].source_label, 7) | EXPECT_EQ(definition.instances[0].node_mappings[0].internal_index, 5U) | EXPECT_EQ(definition.instances[0].element_mappings[0].internal_index, 4U) | EXPECT_EQ(definition.steps[0].initial_increment, 0.1) | EXPECT_EQ(definition.steps[0].time_period, 1.0) | EXPECT_EQ(definition.steps[0].minimum_increment, 1.0e-5) | EXPECT_EQ(definition.steps[0].maximum_increment, 1.0) | EXPECT_EQ(definition.steps[0].procedure_kind, fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(definition.steps[0].nlgeom) | ASSERT_EQ(definition.warnings.size(), 1U) | EXPECT_EQ(definition.warnings[0].location.line, 75U)" -Refactor tests/unit/model/model_types_test.cpp DomainModel.Mitc4ShellRecordsPreserveSourceAndInternalIdentity DomainModel.Mitc4ShellRecordsPreserveSourceAndInternalIdentity; assertion 10개 tests/unit/model/model_types_test.cpp DomainModel.Mitc4ShellRecordsPreserveSourceAndInternalIdentity 유지 원문 검사 body 및 assertion 동일. 3792a5dbf6bafaea0771dd6167e4dad3d5b97f16d4af9fea1beaad7163bd0757 3792a5dbf6bafaea0771dd6167e4dad3d5b97f16d4af9fea1beaad7163bd0757 "EXPECT_EQ(s4_element.source_id.instance_name, ""Shell-Instance"") | EXPECT_EQ(s4_element.source_id.source_label, 41) | EXPECT_EQ(s4_element.source_id.source_label_text, ""0041"") | EXPECT_EQ(s4_element.source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(s4r_element.source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_NE(s4_element.source_type, s4r_element.source_type) | EXPECT_EQ(fesa::kMitc4InternalFormulation, std::string_view{""FESA-MITC4""}) | EXPECT_EQ(s4_element.node_indices, (std::array{3U, 5U, 8U, 13U})) | EXPECT_EQ(s4_element.material_index, 2U) | EXPECT_EQ(s4_element.section_index, 7U)" "EXPECT_EQ(s4_element.source_id.instance_name, ""Shell-Instance"") | EXPECT_EQ(s4_element.source_id.source_label, 41) | EXPECT_EQ(s4_element.source_id.source_label_text, ""0041"") | EXPECT_EQ(s4_element.source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(s4r_element.source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_NE(s4_element.source_type, s4r_element.source_type) | EXPECT_EQ(fesa::kMitc4InternalFormulation, std::string_view{""FESA-MITC4""}) | EXPECT_EQ(s4_element.node_indices, (std::array{3U, 5U, 8U, 13U})) | EXPECT_EQ(s4_element.material_index, 2U) | EXPECT_EQ(s4_element.section_index, 7U)" -Refactor tests/unit/model/model_types_test.cpp support@1-32 helper/oracle/fixture/include/static assertion 구간: T, HasEquationId, HasEquationIds tests/unit/model/model_types_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bd6932bd12576c905f4c5d95d7902dba5b9be6626cdbee2a8299ecb10b7238c7 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/model/model_types_test.cpp support@133-134 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/model_types_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7dc636d3db680b7c9af260eae733472a8fbad5992eea8384efe301c7ff01862c 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/model/shell_geometry_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/model/shell_geometry_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3abea01e7cb6543d3f25106cfa97ad5f94c9166a91bf90fbd390a700401d6d9f 3abea01e7cb6543d3f25106cfa97ad5f94c9166a91bf90fbd390a700401d6d9f 해당 없음 해당 없음 -Refactor tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.BuildsDeterministicFramesForPlanarRotatedAndWarpedElements Mitc4Geometry.BuildsDeterministicFramesForPlanarRotatedAndWarpedElements; assertion 7개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.BuildsDeterministicFramesForPlanarRotatedAndWarpedElements 유지 원문 검사 body 및 assertion 동일. 89a2ec45af8b97d1f42896e1d0107362659e83a893cf60d7d679786c36f20afe 89a2ec45af8b97d1f42896e1d0107362659e83a893cf60d7d679786c36f20afe ASSERT_TRUE(planar.HasValue()) | ASSERT_EQ(planar.Value().element_data.size(), 1U) | EXPECT_NEAR(planar.Value().element_data[0].surface_area_weight, 1.0, 1.0e-12) | ASSERT_EQ(planar.Value().nodal_frames.size(), 4U) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(warped.HasValue()) | EXPECT_GT(warped.Value().element_data[0].surface_area_weight, 2.0) ASSERT_TRUE(planar.HasValue()) | ASSERT_EQ(planar.Value().element_data.size(), 1U) | EXPECT_NEAR(planar.Value().element_data[0].surface_area_weight, 1.0, 1.0e-12) | ASSERT_EQ(planar.Value().nodal_frames.size(), 4U) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(warped.HasValue()) | EXPECT_GT(warped.Value().element_data[0].surface_area_weight, 2.0) -Refactor tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.PreservesExactWarpedResultsAcrossVector3Migration Mitc4Geometry.PreservesExactWarpedResultsAcrossVector3Migration; assertion 14개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.PreservesExactWarpedResultsAcrossVector3Migration 유지 원문 검사 body 및 assertion 동일. c2020cdfcdb7453af2d1504928200ed4e401c22a150f8e0d0b043ef7f27bbdc6 c2020cdfcdb7453af2d1504928200ed4e401c22a150f8e0d0b043ef7f27bbdc6 ASSERT_TRUE(warped.HasValue()) | EXPECT_DOUBLE_EQ(normal.X(), -0x1.97105218e28c2p-5) | EXPECT_DOUBLE_EQ(normal.Y(), -0x1.97105218e28c2p-4) | EXPECT_DOUBLE_EQ(normal.Z(), 0x1.fcd4669f1b2f2p-1) | EXPECT_DOUBLE_EQ(element.surface_area_weight, 0x1.021ebe8f40622p+1) | EXPECT_DOUBLE_EQ(director.X(), -0x1.97105218e28c2p-5) | EXPECT_DOUBLE_EQ(director.Y(), -0x1.97105218e28c2p-4) | EXPECT_DOUBLE_EQ(director.Z(), 0x1.fcd4669f1b2f2p-1) | EXPECT_DOUBLE_EQ(tangent_a.X(), 0x1.ff5e152c2d2abp-1) | EXPECT_DOUBLE_EQ(tangent_a.Y(), -0x1.4408ec773d925p-8) | EXPECT_DOUBLE_EQ(tangent_a.Z(), 0x1.950b27950cf6dp-5) | EXPECT_DOUBLE_EQ(tangent_b.X(), 0.0) | EXPECT_DOUBLE_EQ(tangent_b.Y(), 0x1.fd7583bc82e28p-1) | EXPECT_DOUBLE_EQ(tangent_b.Z(), 0x1.9791363068b53p-4) ASSERT_TRUE(warped.HasValue()) | EXPECT_DOUBLE_EQ(normal.X(), -0x1.97105218e28c2p-5) | EXPECT_DOUBLE_EQ(normal.Y(), -0x1.97105218e28c2p-4) | EXPECT_DOUBLE_EQ(normal.Z(), 0x1.fcd4669f1b2f2p-1) | EXPECT_DOUBLE_EQ(element.surface_area_weight, 0x1.021ebe8f40622p+1) | EXPECT_DOUBLE_EQ(director.X(), -0x1.97105218e28c2p-5) | EXPECT_DOUBLE_EQ(director.Y(), -0x1.97105218e28c2p-4) | EXPECT_DOUBLE_EQ(director.Z(), 0x1.fcd4669f1b2f2p-1) | EXPECT_DOUBLE_EQ(tangent_a.X(), 0x1.ff5e152c2d2abp-1) | EXPECT_DOUBLE_EQ(tangent_a.Y(), -0x1.4408ec773d925p-8) | EXPECT_DOUBLE_EQ(tangent_a.Z(), 0x1.950b27950cf6dp-5) | EXPECT_DOUBLE_EQ(tangent_b.X(), 0.0) | EXPECT_DOUBLE_EQ(tangent_b.Y(), 0x1.fd7583bc82e28p-1) | EXPECT_DOUBLE_EQ(tangent_b.Z(), 0x1.9791363068b53p-4) -Refactor tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.AreaWeightsSharedDirectorsInStableSourceIdentityOrder Mitc4Geometry.AreaWeightsSharedDirectorsInStableSourceIdentityOrder; assertion 2개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.AreaWeightsSharedDirectorsInStableSourceIdentityOrder 유지 원문 검사 body 및 assertion 동일. c24fcef294b948a5b0cdbd9fa0822d7d6f18aa2e106569c357417a0f396e89fa c24fcef294b948a5b0cdbd9fa0822d7d6f18aa2e106569c357417a0f396e89fa ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) -Refactor tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.RejectsInvalidSurfaceJacobianAndIncidentOrientationCases Mitc4Geometry.RejectsInvalidSurfaceJacobianAndIncidentOrientationCases; assertion 0개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.RejectsInvalidSurfaceJacobianAndIncidentOrientationCases 유지 원문 검사 body 및 assertion 동일. 78afdfd80554bc5d9c2e688f0a7ee1213acaa0be1ba804306d6973825b1447e0 78afdfd80554bc5d9c2e688f0a7ee1213acaa0be1ba804306d6973825b1447e0 해당 없음 해당 없음 -Refactor tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.ExposesTheCompleteRequiredValidationPointInventory Mitc4Geometry.ExposesTheCompleteRequiredValidationPointInventory; assertion 12개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.ExposesTheCompleteRequiredValidationPointInventory 유지 원문 검사 body 및 assertion 동일. 0de2e1387e20a29baff982dcaf0fba7b261415b3a5a39c9c635e20f1529aff05 0de2e1387e20a29baff982dcaf0fba7b261415b3a5a39c9c635e20f1529aff05 ASSERT_EQ(points.size(), 17U) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kCenter; }), 1) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kStiffness; }), 8) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kTying; }), 4) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kRecovery; }), 4) | EXPECT_EQ(points.front().natural_coordinates, (Vector3{0.0, 0.0, 0.0})) | EXPECT_EQ(points[1].natural_coordinates, (Vector3{-gauss, -gauss, -gauss})) | EXPECT_EQ(points[8].natural_coordinates, (Vector3{-gauss, gauss, gauss})) | EXPECT_EQ(points[9].natural_coordinates, (Vector3{0.0, -1.0, 0.0})) | EXPECT_EQ(points[12].natural_coordinates, (Vector3{1.0, 0.0, 0.0})) | EXPECT_EQ(points[13].natural_coordinates, (Vector3{-gauss, -gauss, 0.0})) | EXPECT_EQ(points[16].natural_coordinates, (Vector3{-gauss, gauss, 0.0})) ASSERT_EQ(points.size(), 17U) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kCenter; }), 1) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kStiffness; }), 8) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kTying; }), 4) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kRecovery; }), 4) | EXPECT_EQ(points.front().natural_coordinates, (Vector3{0.0, 0.0, 0.0})) | EXPECT_EQ(points[1].natural_coordinates, (Vector3{-gauss, -gauss, -gauss})) | EXPECT_EQ(points[8].natural_coordinates, (Vector3{-gauss, gauss, gauss})) | EXPECT_EQ(points[9].natural_coordinates, (Vector3{0.0, -1.0, 0.0})) | EXPECT_EQ(points[12].natural_coordinates, (Vector3{1.0, 0.0, 0.0})) | EXPECT_EQ(points[13].natural_coordinates, (Vector3{-gauss, -gauss, 0.0})) | EXPECT_EQ(points[16].natural_coordinates, (Vector3{-gauss, gauss, 0.0})) -Refactor tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.RetainsReciprocalDeterminantOverflowGateAtTinyScale Mitc4Geometry.RetainsReciprocalDeterminantOverflowGateAtTinyScale; assertion 1개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.RetainsReciprocalDeterminantOverflowGateAtTinyScale 유지 원문 검사 body 및 assertion 동일. 36cb5ccf5f9110d50f87a34fe24a938659214c715959824e1003d4093e98bcf4 36cb5ccf5f9110d50f87a34fe24a938659214c715959824e1003d4093e98bcf4 EXPECT_TRUE(fesa::PreprocessShellGeometry( nodes, {Element(10U, {0U, 1U, 2U, 3U})}, Sections(2e-99)).HasValue()) EXPECT_TRUE(fesa::PreprocessShellGeometry( nodes, {Element(10U, {0U, 1U, 2U, 3U})}, Sections(2e-99)).HasValue()) -Refactor tests/unit/model/shell_geometry_test.cpp support@1-91 helper/oracle/fixture/include/static assertion 구간: Node, Element, Sections, Dot, Cross, Norm, ExpectVectorNear, ExpectRightHandedFrame, FrameFor, find_if, ExpectFailureCode tests/unit/model/shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7fecde30f91624d167ea26a62c28b4f280b502b07cb5999ed2668cb5db8dcdc8 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/model/shell_geometry_test.cpp support@166-167 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2511c5276f8f705a4d47ef40ba5103972050738b68fd8a2714f3fd319f718b5c 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/model/shell_geometry_test.cpp support@193-194 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3cb49d9660c0150c0645878e98e94da458f371a63d9cf921dafed78d62b6a4a0 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/model/shell_geometry_test.cpp support@247-248 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 05e26e807ccadaa099d4dc20c9590ec3fa57343328b240c1ed2d4dc9086c1321 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/model/source_target_resolver_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/model/source_target_resolver_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5868bd88560af25dea83f385748c40d274712c9dc28a344fca03f3cab760f8d1 5868bd88560af25dea83f385748c40d274712c9dc28a344fca03f3cab760f8d1 해당 없음 해당 없음 -Refactor tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.SeparatesNamespacesAndInstancesAndExpandsInDeclarationOrder SourceTargetResolver.SeparatesNamespacesAndInstancesAndExpandsInDeclarationOrder; assertion 10개 tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.SeparatesNamespacesAndInstancesAndExpandsInDeclarationOrder 유지 원문 검사 body 및 assertion 동일. 371f5279d1b122a9821fe2fa2e841a01f0c7f317f4824c7f1a10eb65bda481be 371f5279d1b122a9821fe2fa2e841a01f0c7f317f4824c7f1a10eb65bda481be "ASSERT_TRUE(nodes.HasValue()) | EXPECT_EQ(Indices(nodes.Value()), (std::vector{0U, 1U})) | EXPECT_EQ(nodes.Value()[0U].source_id.instance_name, ""Beam-1"") | EXPECT_EQ(nodes.Value()[0U].source_id.source_label_text, ""0010"") | ASSERT_TRUE(elements.HasValue()) | EXPECT_EQ(Indices(elements.Value()), (std::vector{4U})) | ASSERT_TRUE(second_instance.HasValue()) | EXPECT_EQ(Indices(second_instance.Value()), (std::vector{2U})) | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(Indices(direct.Value()), (std::vector{0U}))" "ASSERT_TRUE(nodes.HasValue()) | EXPECT_EQ(Indices(nodes.Value()), (std::vector{0U, 1U})) | EXPECT_EQ(nodes.Value()[0U].source_id.instance_name, ""Beam-1"") | EXPECT_EQ(nodes.Value()[0U].source_id.source_label_text, ""0010"") | ASSERT_TRUE(elements.HasValue()) | EXPECT_EQ(Indices(elements.Value()), (std::vector{4U})) | ASSERT_TRUE(second_instance.HasValue()) | EXPECT_EQ(Indices(second_instance.Value()), (std::vector{2U})) | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(Indices(direct.Value()), (std::vector{0U}))" -Refactor tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.RejectsMissingAmbiguousAndNonpositiveTargets SourceTargetResolver.RejectsMissingAmbiguousAndNonpositiveTargets; assertion 0개 tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.RejectsMissingAmbiguousAndNonpositiveTargets 유지 원문 검사 body 및 assertion 동일. 7a11d0e9feb5f2c40349b3fc51279e275ea27d6030de1e9489786952e1444aef 7a11d0e9feb5f2c40349b3fc51279e275ea27d6030de1e9489786952e1444aef 해당 없음 해당 없음 -Refactor tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.ReportsDuplicateMembershipsInDeterministicDeclarationOrder SourceTargetResolver.ReportsDuplicateMembershipsInDeterministicDeclarationOrder; assertion 7개 tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.ReportsDuplicateMembershipsInDeterministicDeclarationOrder 유지 원문 검사 body 및 assertion 동일. 8f72fa1e1fbb347fed00f0ae99086e57086d43ac80984243f2c5ee20bb141c29 8f72fa1e1fbb347fed00f0ae99086e57086d43ac80984243f2c5ee20bb141c29 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 2U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""duplicate-source-target"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].message, ""Duplicate resolved source target 20."") | EXPECT_EQ(result.GetStatus().Diagnostics()[1U].code, ""duplicate-source-target"") | EXPECT_EQ(result.GetStatus().Diagnostics()[1U].message, ""Duplicate resolved source target 10."")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 2U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""duplicate-source-target"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].message, ""Duplicate resolved source target 20."") | EXPECT_EQ(result.GetStatus().Diagnostics()[1U].code, ""duplicate-source-target"") | EXPECT_EQ(result.GetStatus().Diagnostics()[1U].message, ""Duplicate resolved source target 10."")" -Refactor tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.OwnsNodeCandidateIndexBeforeDomainCommit SourceTargetResolver.OwnsNodeCandidateIndexBeforeDomainCommit; assertion 10개 tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.OwnsNodeCandidateIndexBeforeDomainCommit 유지 원문 검사 body 및 assertion 동일. 9d4031c4c481dd1976681735a372eca73ebff8a010443fe0a0097a098182c864 9d4031c4c481dd1976681735a372eca73ebff8a010443fe0a0097a098182c864 "ASSERT_TRUE(ends.HasValue()) | EXPECT_EQ(Indices(ends.Value()), (std::vector{1U, 0U})) | EXPECT_EQ(ends.Value()[0U].source_id.source_label_text, ""0010"") | EXPECT_EQ(ends.Value()[1U].source_id.source_label_text, ""0020"") | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(Indices(direct.Value()), (std::vector{2U})) | ASSERT_FALSE(repeated.HasValue()) | ASSERT_EQ(repeated.GetStatus().Diagnostics().size(), 2U) | EXPECT_EQ(repeated.GetStatus().Diagnostics()[0U].message, ""Duplicate resolved source target 0020."") | EXPECT_EQ(repeated.GetStatus().Diagnostics()[1U].message, ""Duplicate resolved source target 0010."")" "ASSERT_TRUE(ends.HasValue()) | EXPECT_EQ(Indices(ends.Value()), (std::vector{1U, 0U})) | EXPECT_EQ(ends.Value()[0U].source_id.source_label_text, ""0010"") | EXPECT_EQ(ends.Value()[1U].source_id.source_label_text, ""0020"") | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(Indices(direct.Value()), (std::vector{2U})) | ASSERT_FALSE(repeated.HasValue()) | ASSERT_EQ(repeated.GetStatus().Diagnostics().size(), 2U) | EXPECT_EQ(repeated.GetStatus().Diagnostics()[0U].message, ""Duplicate resolved source target 0020."") | EXPECT_EQ(repeated.GetStatus().Diagnostics()[1U].message, ""Duplicate resolved source target 0010."")" -Refactor tests/unit/model/source_target_resolver_test.cpp support@1-52 helper/oracle/fixture/include/static assertion 구간: Entry, Indices, for, ExpectFailure tests/unit/model/source_target_resolver_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cea5c6ff21dff6057da6621ea47cd0fcb5ec20f1f524551e8bae951791033aa8 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/model/thermal_semantics_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/model/thermal_semantics_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e35fdae0a9d314a157526b4ebd72ff54eef3f8123b3646fd8f5f3c50b39bbaea e35fdae0a9d314a157526b4ebd72ff54eef3f8123b3646fd8f5f3c50b39bbaea 해당 없음 해당 없음 -Refactor tests/unit/model/thermal_semantics_test.cpp ThermalDomain.StructuralDefinitionHasNoThermalStep ThermalDomain.StructuralDefinitionHasNoThermalStep; assertion 2개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.StructuralDefinitionHasNoThermalStep 유지 원문 검사 body 및 assertion 동일. 5109e39fa2bd304e84323c45a63bff6d6948c4f8e385006533847d897edbb852 5109e39fa2bd304e84323c45a63bff6d6948c4f8e385006533847d897edbb852 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().ThermalStep(), nullptr) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().ThermalStep(), nullptr) -Refactor tests/unit/model/thermal_semantics_test.cpp IsotropicThermalMaterial.RequiresFinitePositivePropertiesAndIdentity IsotropicThermalMaterial.RequiresFinitePositivePropertiesAndIdentity; assertion 9개 tests/unit/model/thermal_semantics_test.cpp IsotropicThermalMaterial.RequiresFinitePositivePropertiesAndIdentity 유지 원문 검사 body 및 assertion 동일. 3eec96a6aa43b48716c7ef05b78fc8e81f08777ca547164a676e7ba5b64987ee 3eec96a6aa43b48716c7ef05b78fc8e81f08777ca547164a676e7ba5b64987ee "ASSERT_TRUE(valid.HasValue()) | EXPECT_EQ(valid.Value().Kind(), fesa::MaterialKind::kIsotropicThermal) | EXPECT_DOUBLE_EQ(valid.Value().Conductivity(), 45.0) | EXPECT_DOUBLE_EQ(valid.Value().Density(), 7800.0) | EXPECT_DOUBLE_EQ(valid.Value().SpecificHeat(), 500.0) | ASSERT_FALSE(invalid.HasValue()) | EXPECT_EQ(invalid.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(fesa::IsotropicThermalMaterial::Create({"""", 7, ""Thermal-Steel""}, ""Thermal-Steel"", 45.0, 0.0, 500.0, Location()) .HasValue()) | EXPECT_FALSE(fesa::IsotropicThermalMaterial::Create( {"""", 7, ""Thermal-Steel""}, ""Thermal-Steel"", 45.0, 7800.0, std::numeric_limits::quiet_NaN(), Location()) .HasValue())" "ASSERT_TRUE(valid.HasValue()) | EXPECT_EQ(valid.Value().Kind(), fesa::MaterialKind::kIsotropicThermal) | EXPECT_DOUBLE_EQ(valid.Value().Conductivity(), 45.0) | EXPECT_DOUBLE_EQ(valid.Value().Density(), 7800.0) | EXPECT_DOUBLE_EQ(valid.Value().SpecificHeat(), 500.0) | ASSERT_FALSE(invalid.HasValue()) | EXPECT_EQ(invalid.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(fesa::IsotropicThermalMaterial::Create({"""", 7, ""Thermal-Steel""}, ""Thermal-Steel"", 45.0, 0.0, 500.0, Location()) .HasValue()) | EXPECT_FALSE(fesa::IsotropicThermalMaterial::Create( {"""", 7, ""Thermal-Steel""}, ""Thermal-Steel"", 45.0, 7800.0, std::numeric_limits::quiet_NaN(), Location()) .HasValue())" -Refactor tests/unit/model/thermal_semantics_test.cpp ThermalDomain.OwnsFiveStationDefinitionsWithoutEquationState ThermalDomain.OwnsFiveStationDefinitionsWithoutEquationState; assertion 11개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.OwnsFiveStationDefinitionsWithoutEquationState 유지 원문 검사 body 및 assertion 동일. e6d226842e76067fc438dfd669bd073c05be7a9be7895ab909ad06d4ab8a0e72 e6d226842e76067fc438dfd669bd073c05be7a9be7895ab909ad06d4ab8a0e72 ASSERT_TRUE(result.HasValue()) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(domain.ThermalElements().Size(), 1U) | EXPECT_EQ(domain.ThermalElements()[0U].Kind(), fesa::ElementDefinitionKind::kDs4Thermal) | EXPECT_EQ(domain.ThermalElements()[0U].PropertyIndex(), fesa::Ds4ThermalDefinition::kNoPropertyIndex) | EXPECT_EQ(domain.ThermalElements()[0U].NodeIndices(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(domain.ThermalInitialConditions()[0U].station_values, (std::array{12.5, 12.5, 12.5, 12.5, 12.5})) | EXPECT_EQ(domain.ThermalStep()->Boundaries()[0U].value, 20.0) | EXPECT_EQ(domain.ThermalStep()->Loads()[0U].source_order, 0U) | EXPECT_EQ(static_cast(fesa::ThermalDofComponent::kBottom), 11) | EXPECT_EQ(static_cast(fesa::ThermalDofComponent::kTop), 15) ASSERT_TRUE(result.HasValue()) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(domain.ThermalElements().Size(), 1U) | EXPECT_EQ(domain.ThermalElements()[0U].Kind(), fesa::ElementDefinitionKind::kDs4Thermal) | EXPECT_EQ(domain.ThermalElements()[0U].PropertyIndex(), fesa::Ds4ThermalDefinition::kNoPropertyIndex) | EXPECT_EQ(domain.ThermalElements()[0U].NodeIndices(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(domain.ThermalInitialConditions()[0U].station_values, (std::array{12.5, 12.5, 12.5, 12.5, 12.5})) | EXPECT_EQ(domain.ThermalStep()->Boundaries()[0U].value, 20.0) | EXPECT_EQ(domain.ThermalStep()->Loads()[0U].source_order, 0U) | EXPECT_EQ(static_cast(fesa::ThermalDofComponent::kBottom), 11) | EXPECT_EQ(static_cast(fesa::ThermalDofComponent::kTop), 15) -Refactor tests/unit/model/thermal_semantics_test.cpp ThermalDomain.RejectsInactiveTargetsConflictsAndMixedElements ThermalDomain.RejectsInactiveTargetsConflictsAndMixedElements; assertion 8개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.RejectsInactiveTargetsConflictsAndMixedElements 유지 원문 검사 body 및 assertion 동일. 69b1b68b51176ef0a39d57b5c5899bc6c935fc3e6a82850b7634f13895ae26d6 69b1b68b51176ef0a39d57b5c5899bc6c935fc3e6a82850b7634f13895ae26d6 ASSERT_FALSE(inactive.HasValue()) | EXPECT_EQ(inactive.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(conflicting.HasValue()) | EXPECT_EQ(conflicting.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(mixed.HasValue()) | EXPECT_EQ(mixed.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(invalid_thickness.HasValue()) | EXPECT_EQ(invalid_thickness.GetStatus().Category(), fesa::FailureCategory::kModel) ASSERT_FALSE(inactive.HasValue()) | EXPECT_EQ(inactive.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(conflicting.HasValue()) | EXPECT_EQ(conflicting.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(mixed.HasValue()) | EXPECT_EQ(mixed.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(invalid_thickness.HasValue()) | EXPECT_EQ(invalid_thickness.GetStatus().Category(), fesa::FailureCategory::kModel) -Refactor tests/unit/model/thermal_semantics_test.cpp ThermalDomain.AllowsEqualInitialTargetsAndStepBoundaryOverride ThermalDomain.AllowsEqualInitialTargetsAndStepBoundaryOverride; assertion 4개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.AllowsEqualInitialTargetsAndStepBoundaryOverride 유지 원문 검사 body 및 assertion 동일. 7d2f88248ba8df15e130f352f1bcbce0886e513bfd575bcdf66862383f86ce12 7d2f88248ba8df15e130f352f1bcbce0886e513bfd575bcdf66862383f86ce12 EXPECT_TRUE(equal_initial.HasValue()) | ASSERT_FALSE(conflicting_initial.HasValue()) | EXPECT_EQ(conflicting_initial.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_TRUE(overriding_step.HasValue()) EXPECT_TRUE(equal_initial.HasValue()) | ASSERT_FALSE(conflicting_initial.HasValue()) | EXPECT_EQ(conflicting_initial.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_TRUE(overriding_step.HasValue()) -Refactor tests/unit/model/thermal_semantics_test.cpp ThermalDomain.RejectsInteriorThermalDofsAndInactiveFluxTargets ThermalDomain.RejectsInteriorThermalDofsAndInactiveFluxTargets; assertion 4개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.RejectsInteriorThermalDofsAndInactiveFluxTargets 유지 원문 검사 body 및 assertion 동일. 1e9cbd5b4303fc6d2706eda68d786d4bec26fe554c7043554f04b8588b7455f3 1e9cbd5b4303fc6d2706eda68d786d4bec26fe554c7043554f04b8588b7455f3 EXPECT_FALSE(boundary.HasValue()) | EXPECT_FALSE(flux.HasValue()) | EXPECT_FALSE(inactive_flux.HasValue()) | EXPECT_FALSE(inactive_boundary.HasValue()) EXPECT_FALSE(boundary.HasValue()) | EXPECT_FALSE(flux.HasValue()) | EXPECT_FALSE(inactive_flux.HasValue()) | EXPECT_FALSE(inactive_boundary.HasValue()) -Refactor tests/unit/model/thermal_semantics_test.cpp ThermalDomain.PreservesAdditiveFluxSourceOrder ThermalDomain.PreservesAdditiveFluxSourceOrder; assertion 6개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.PreservesAdditiveFluxSourceOrder 유지 원문 검사 body 및 assertion 동일. dd1914d0d09fc94c82e24118f005fc7d1ff4b5c31ceb318021508b6239a26a79 dd1914d0d09fc94c82e24118f005fc7d1ff4b5c31ceb318021508b6239a26a79 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0U].source_order, 0U) | EXPECT_EQ(loads[1U].source_order, 1U) | EXPECT_DOUBLE_EQ(loads[0U].power, -5.0) | EXPECT_DOUBLE_EQ(loads[1U].power, 3.0) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0U].source_order, 0U) | EXPECT_EQ(loads[1U].source_order, 1U) | EXPECT_DOUBLE_EQ(loads[0U].power, -5.0) | EXPECT_DOUBLE_EQ(loads[1U].power, 3.0) -Refactor tests/unit/model/thermal_semantics_test.cpp ThermalAnalysisModel.KeepsThermalSectionMaterialIndicesSeparateFromDomainMaterials ThermalAnalysisModel.KeepsThermalSectionMaterialIndicesSeparateFromDomainMaterials; assertion 12개 tests/unit/model/thermal_semantics_test.cpp ThermalAnalysisModel.KeepsThermalSectionMaterialIndicesSeparateFromDomainMaterials 유지 원문 검사 body 및 assertion 동일. 550c29842bdef0f9518150f2f263f6c2302ce2d0c108607913f3833bfbd9ace2 550c29842bdef0f9518150f2f263f6c2302ce2d0c108607913f3833bfbd9ace2 ASSERT_TRUE(domain_result.HasValue()) | ASSERT_EQ(domain.Materials().Size(), 3U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 2U) | EXPECT_EQ(domain.ThermalSections()[0U].material_index, 1U) | EXPECT_EQ(domain.ThermalSections()[1U].material_index, 0U) | EXPECT_EQ(domain.ThermalElements()[0U].MaterialIndex(), 2U) | EXPECT_EQ(domain.ThermalElements()[1U].MaterialIndex(), 1U) | EXPECT_EQ(domain.ThermalElements()[0U].PropertyIndex(), fesa::Ds4ThermalDefinition::kNoPropertyIndex) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(model_result.Value().ActiveThermalMaterials(), (std::vector{0U, 1U})) | EXPECT_EQ(model_result.Value().ActiveThermalSections(), (std::vector{0U, 1U})) | EXPECT_TRUE(model_result.Value().ActiveProperties().empty()) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_EQ(domain.Materials().Size(), 3U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 2U) | EXPECT_EQ(domain.ThermalSections()[0U].material_index, 1U) | EXPECT_EQ(domain.ThermalSections()[1U].material_index, 0U) | EXPECT_EQ(domain.ThermalElements()[0U].MaterialIndex(), 2U) | EXPECT_EQ(domain.ThermalElements()[1U].MaterialIndex(), 1U) | EXPECT_EQ(domain.ThermalElements()[0U].PropertyIndex(), fesa::Ds4ThermalDefinition::kNoPropertyIndex) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(model_result.Value().ActiveThermalMaterials(), (std::vector{0U, 1U})) | EXPECT_EQ(model_result.Value().ActiveThermalSections(), (std::vector{0U, 1U})) | EXPECT_TRUE(model_result.Value().ActiveProperties().empty()) -Refactor tests/unit/model/thermal_semantics_test.cpp ThermalAnalysisModel.ViewsConnectedDs4EntitiesWithoutOwningDomain ThermalAnalysisModel.ViewsConnectedDs4EntitiesWithoutOwningDomain; assertion 17개 tests/unit/model/thermal_semantics_test.cpp ThermalAnalysisModel.ViewsConnectedDs4EntitiesWithoutOwningDomain 유지 원문 검사 body 및 assertion 동일. 509fa86c25fb97bf5c46d2eb7dfe513ac53a0fbceef40979b47ed0a740fbac7c 509fa86c25fb97bf5c46d2eb7dfe513ac53a0fbceef40979b47ed0a740fbac7c ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_TRUE(model.IsThermal()) | EXPECT_EQ(model.ThermalStep(), domain.ThermalStep()) | EXPECT_THROW(model.Step(), std::logic_error) | EXPECT_EQ(model.ActiveThermalElements(), (std::vector{0U})) | EXPECT_EQ(model.ActiveThermalNodes(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(model.ActiveThermalMaterials(), (std::vector{0U})) | EXPECT_EQ(model.ActiveThermalSections(), (std::vector{0U})) | EXPECT_TRUE(model.ActiveProperties().empty()) | EXPECT_EQ(domain.ThermalSections()[0U].material_index, 0U) | EXPECT_EQ(domain.ThermalElements()[0U].MaterialIndex(), 0U) | EXPECT_EQ(&model.GetDomain(), &domain) | ASSERT_TRUE(moved_model.HasValue()) | EXPECT_EQ(&moved_model.Value().GetDomain(), &moved_domain) | EXPECT_DOUBLE_EQ(moved_domain.ThermalMaterials()[0U].Conductivity(), 45.0) | EXPECT_EQ(moved_domain.ThermalElements()[0U].SourceId().source_label, 8) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_TRUE(model.IsThermal()) | EXPECT_EQ(model.ThermalStep(), domain.ThermalStep()) | EXPECT_THROW(model.Step(), std::logic_error) | EXPECT_EQ(model.ActiveThermalElements(), (std::vector{0U})) | EXPECT_EQ(model.ActiveThermalNodes(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(model.ActiveThermalMaterials(), (std::vector{0U})) | EXPECT_EQ(model.ActiveThermalSections(), (std::vector{0U})) | EXPECT_TRUE(model.ActiveProperties().empty()) | EXPECT_EQ(domain.ThermalSections()[0U].material_index, 0U) | EXPECT_EQ(domain.ThermalElements()[0U].MaterialIndex(), 0U) | EXPECT_EQ(&model.GetDomain(), &domain) | ASSERT_TRUE(moved_model.HasValue()) | EXPECT_EQ(&moved_model.Value().GetDomain(), &moved_domain) | EXPECT_DOUBLE_EQ(moved_domain.ThermalMaterials()[0U].Conductivity(), 45.0) | EXPECT_EQ(moved_domain.ThermalElements()[0U].SourceId().source_label, 8) -Refactor tests/unit/model/thermal_semantics_test.cpp support@1-50 helper/oracle/fixture/include/static assertion 구간: Location, ValidDefinition tests/unit/model/thermal_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 34019d56ebed3f1fa39477e5c1846c9610f380a4cec751b860088f6e6ce221ba 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/model/thermal_shell_geometry_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 11개 tests/unit/model/thermal_shell_geometry_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2011bdeb9d673496a31e6ee31317452fb401fbfefb928cd97d085c99406dd033 2011bdeb9d673496a31e6ee31317452fb401fbfefb928cd97d085c99406dd033 해당 없음 해당 없음 -Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.CertifiesAffineDistortedSaddleAndSlenderPatches ThermalShellGeometry.CertifiesAffineDistortedSaddleAndSlenderPatches; assertion 5개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.CertifiesAffineDistortedSaddleAndSlenderPatches 유지 원문 검사 body 및 assertion 동일. 48147bb1a29cb0d24551a12e8a96d748c81fa670f440912e1d99901118128f8c 48147bb1a29cb0d24551a12e8a96d748c81fa670f440912e1d99901118128f8c EXPECT_TRUE(Kernel(kSquare).HasValue()) | EXPECT_TRUE( Kernel({{{0, 0, 0}, {2, 0, 0}, {3, 1, 0}, {1, 1, 0}}}).HasValue()) | EXPECT_TRUE( Kernel({{{0, 0, 0}, {2, 0, 0}, {1.5, 1, 0}, {0, 1, 0}}}).HasValue()) | EXPECT_TRUE(Kernel({{{0, 0, 0}, {1, 0, 0}, {1, std::ldexp(1., -40), 0}, {0, std::ldexp(1., -40), 0}}}) .HasValue()) | EXPECT_TRUE( Kernel({{{-1, -1, a}, {1, -1, -a}, {1, 1, a}, {-1, 1, -a}}}).HasValue()) EXPECT_TRUE(Kernel(kSquare).HasValue()) | EXPECT_TRUE( Kernel({{{0, 0, 0}, {2, 0, 0}, {3, 1, 0}, {1, 1, 0}}}).HasValue()) | EXPECT_TRUE( Kernel({{{0, 0, 0}, {2, 0, 0}, {1.5, 1, 0}, {0, 1, 0}}}).HasValue()) | EXPECT_TRUE(Kernel({{{0, 0, 0}, {1, 0, 0}, {1, std::ldexp(1., -40), 0}, {0, std::ldexp(1., -40), 0}}}) .HasValue()) | EXPECT_TRUE( Kernel({{{-1, -1, a}, {1, -1, -a}, {1, 1, a}, {-1, 1, -a}}}).HasValue()) -Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.PowerOfTwoScalingTranslationAndRotation ThermalShellGeometry.PowerOfTwoScalingTranslationAndRotation; assertion 3개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.PowerOfTwoScalingTranslationAndRotation 유지 원문 검사 body 및 assertion 동일. 5a22e1006b798b2d4a9544a4ee6af30a969558a0bafaba3dfc98634d36b62ff8 5a22e1006b798b2d4a9544a4ee6af30a969558a0bafaba3dfc98634d36b62ff8 EXPECT_TRUE(Kernel(patch).HasValue()) | EXPECT_TRUE(Kernel(translated).HasValue()) | EXPECT_TRUE(Kernel(rotated).HasValue()) EXPECT_TRUE(Kernel(patch).HasValue()) | EXPECT_TRUE(Kernel(translated).HasValue()) | EXPECT_TRUE(Kernel(rotated).HasValue()) -Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsWholePatchSingularityDespiteNonzeroGaussPoints ThermalShellGeometry.RejectsWholePatchSingularityDespiteNonzeroGaussPoints; assertion 4개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsWholePatchSingularityDespiteNonzeroGaussPoints 유지 원문 검사 body 및 assertion 동일. d4f657f21765c36aeb85cb4ef44f7eb0da408aaa215d6264aa01ae008fe24134 d4f657f21765c36aeb85cb4ef44f7eb0da408aaa215d6264aa01ae008fe24134 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].entity_identity, ""part:0027"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, 17U) | EXPECT_GT(std::abs(q - .25), 0.)" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].entity_identity, ""part:0027"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, 17U) | EXPECT_GT(std::abs(q - .25), 0.)" -Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsInvalidAndDoesNotRepairUncertainGeometry ThermalShellGeometry.RejectsInvalidAndDoesNotRepairUncertainGeometry; assertion 6개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsInvalidAndDoesNotRepairUncertainGeometry 유지 원문 검사 body 및 assertion 동일. 8507137261c0e52029ab56b39af1e9434cf478fcf9870c9d474c8f61ffb75f0e 8507137261c0e52029ab56b39af1e9434cf478fcf9870c9d474c8f61ffb75f0e "EXPECT_FALSE( Kernel({{{0, 0, 0}, {1, 1, 0}, {1, 0, 0}, {0, 1, 0}}}).HasValue()) | EXPECT_FALSE( Kernel({{{0, 0, 0}, {1, 0, 0}, {2, 0, 0}, {3, 0, 0}}}).HasValue()) | EXPECT_FALSE(Kernel(repeated).HasValue()) | EXPECT_FALSE(Kernel(patch).HasValue()) | EXPECT_FALSE(duplicate.HasValue()) | EXPECT_EQ(uncertain.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-geometry"")" "EXPECT_FALSE( Kernel({{{0, 0, 0}, {1, 1, 0}, {1, 0, 0}, {0, 1, 0}}}).HasValue()) | EXPECT_FALSE( Kernel({{{0, 0, 0}, {1, 0, 0}, {2, 0, 0}, {3, 0, 0}}}).HasValue()) | EXPECT_FALSE(Kernel(repeated).HasValue()) | EXPECT_FALSE(Kernel(patch).HasValue()) | EXPECT_FALSE(duplicate.HasValue()) | EXPECT_EQ(uncertain.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-geometry"")" -Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainEnforcesOppositeEdgesAndOneVertexLink ThermalShellGeometry.DomainEnforcesOppositeEdgesAndOneVertexLink; assertion 5개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainEnforcesOppositeEdgesAndOneVertexLink 유지 원문 검사 body 및 assertion 동일. 960d6f8e2311e574bde5319cf21f80fd621f40068ceba6271b3341a91f01e523 960d6f8e2311e574bde5319cf21f80fd621f40068ceba6271b3341a91f01e523 EXPECT_TRUE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{1, 4, 5, 2}}}))) | EXPECT_FALSE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{2, 5, 4, 1}}}))) | EXPECT_FALSE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{0, 1, 2, 3}}}))) | EXPECT_FALSE(Accepted(Mesh({{0, 0, 0}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0}, {-1, -1, 0}, {0, -1, 0}, {-1, 0, 0}}, {{{0, 1, 2, 3}}, {{0, 6, 4, 5}}}))) | EXPECT_FALSE( Accepted(Mesh({{0, 0, 0}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0}, {2, 0, 0}, {2, 1, 0}, {1, 0, 1}, {1, 1, 1}}, {{{0, 1, 2, 3}}, {{1, 4, 5, 2}}, {{1, 6, 7, 2}}}))) EXPECT_TRUE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{1, 4, 5, 2}}}))) | EXPECT_FALSE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{2, 5, 4, 1}}}))) | EXPECT_FALSE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{0, 1, 2, 3}}}))) | EXPECT_FALSE(Accepted(Mesh({{0, 0, 0}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0}, {-1, -1, 0}, {0, -1, 0}, {-1, 0, 0}}, {{{0, 1, 2, 3}}, {{0, 6, 4, 5}}}))) | EXPECT_FALSE( Accepted(Mesh({{0, 0, 0}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0}, {2, 0, 0}, {2, 1, 0}, {1, 0, 1}, {1, 1, 1}}, {{{0, 1, 2, 3}}, {{1, 4, 5, 2}}, {{1, 6, 7, 2}}}))) -Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainAllowsFoldAndDisconnectedCoordinateContact ThermalShellGeometry.DomainAllowsFoldAndDisconnectedCoordinateContact; assertion 3개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainAllowsFoldAndDisconnectedCoordinateContact 유지 원문 검사 body 및 assertion 동일. 5249d8d88ee57a712425ba038be3bac4ade7db9c481b522d83c2caade689a80f 5249d8d88ee57a712425ba038be3bac4ade7db9c481b522d83c2caade689a80f EXPECT_TRUE(Accepted(std::move(folded))) | EXPECT_TRUE(Accepted(disconnected)) | EXPECT_TRUE(Accepted(disconnected)) EXPECT_TRUE(Accepted(std::move(folded))) | EXPECT_TRUE(Accepted(disconnected)) | EXPECT_TRUE(Accepted(disconnected)) -Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainRejectsSourceSharingPartialEdgeWithoutGlobalScan ThermalShellGeometry.DomainRejectsSourceSharingPartialEdgeWithoutGlobalScan; assertion 3개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainRejectsSourceSharingPartialEdgeWithoutGlobalScan 유지 원문 검사 body 및 assertion 동일. 0c84d4620600808611f9c67496c87bba5ea2baddc6714c78facfcac24d1d4cfb 0c84d4620600808611f9c67496c87bba5ea2baddc6714c78facfcac24d1d4cfb "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-connection"") | EXPECT_FALSE(Accepted(invalid))" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-connection"") | EXPECT_FALSE(Accepted(invalid))" -Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.SearchesSeparatingDirectionsBeyondCenterAndCorners ThermalShellGeometry.SearchesSeparatingDirectionsBeyondCenterAndCorners; assertion 2개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.SearchesSeparatingDirectionsBeyondCenterAndCorners 유지 원문 검사 body 및 assertion 동일. e9e9cca17d49ca10988a52883efca96de60507cb1cf1af5a467e096037879591 e9e9cca17d49ca10988a52883efca96de60507cb1cf1af5a467e096037879591 EXPECT_TRUE( Kernel({{{3, -9, -3}, {1, 3, -3}, {-1, 3, 3}, {-3, 3, 3}}}).HasValue()) | EXPECT_TRUE( Kernel({{{-1, 4, -4}, {-1, -2, 2}, {3, 2, 4}, {-1, -4, -2}}}).HasValue()) EXPECT_TRUE( Kernel({{{3, -9, -3}, {1, 3, -3}, {-1, 3, 3}, {-3, 3, 3}}}).HasValue()) | EXPECT_TRUE( Kernel({{{-1, 4, -4}, {-1, -2, 2}, {3, 2, 4}, {-1, -4, -2}}}).HasValue()) -Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsAliasedSourceIdentityAndAcceptsClosedVertexLink ThermalShellGeometry.RejectsAliasedSourceIdentityAndAcceptsClosedVertexLink; assertion 2개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsAliasedSourceIdentityAndAcceptsClosedVertexLink 유지 원문 검사 body 및 assertion 동일. 5fc28937a2442f6232fecc5edfa705ee8777c0a5e5a5395d16875e9e7613ea60 5fc28937a2442f6232fecc5edfa705ee8777c0a5e5a5395d16875e9e7613ea60 EXPECT_FALSE(Accepted(aliases)) | EXPECT_TRUE(Accepted( Mesh({{-1, -1, 0}, {0, -1, 0}, {1, -1, 0}, {-1, 0, 0}, {0, 0, 0}, {1, 0, 0}, {-1, 1, 0}, {0, 1, 0}, {1, 1, 0}}, {{{0, 1, 4, 3}}, {{1, 2, 5, 4}}, {{3, 4, 7, 6}}, {{4, 5, 8, 7}}}))) EXPECT_FALSE(Accepted(aliases)) | EXPECT_TRUE(Accepted( Mesh({{-1, -1, 0}, {0, -1, 0}, {1, -1, 0}, {-1, 0, 0}, {0, 0, 0}, {1, 0, 0}, {-1, 1, 0}, {0, 1, 0}, {1, 1, 0}}, {{{0, 1, 4, 3}}, {{1, 2, 5, 4}}, {{3, 4, 7, 6}}, {{4, 5, 8, 7}}}))) -Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalGeometryAction.EnclosesIndependentDyadicTangentialConstraints ThermalGeometryAction.EnclosesIndependentDyadicTangentialConstraints; assertion 4개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalGeometryAction.EnclosesIndependentDyadicTangentialConstraints 유지 원문 검사 body 및 assertion 동일. 5db2ebc49bd654247d3660c7e89544f1609d6dd7bdbabe45cb56fede676e90c3 5db2ebc49bd654247d3660c7e89544f1609d6dd7bdbabe45cb56fede676e90c3 ASSERT_TRUE(evaluated.HasValue()) | EXPECT_DOUBLE_EQ(evaluated.Value().gradient[i][j],oracle[j]) | EXPECT_LE(interval.lower,oracle[j]) | EXPECT_GE(interval.upper,oracle[j]) ASSERT_TRUE(evaluated.HasValue()) | EXPECT_DOUBLE_EQ(evaluated.Value().gradient[i][j],oracle[j]) | EXPECT_LE(interval.lower,oracle[j]) | EXPECT_GE(interval.upper,oracle[j]) -Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalGeometryAction.PreservesWholePatchAndScaledFiniteRejections ThermalGeometryAction.PreservesWholePatchAndScaledFiniteRejections; assertion 8개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalGeometryAction.PreservesWholePatchAndScaledFiniteRejections 유지 원문 검사 body 및 assertion 동일. acd1faa4c8b61cf0b3d4048793883560afd74d5bbd7296d069f05e8d66084ca6 acd1faa4c8b61cf0b3d4048793883560afd74d5bbd7296d069f05e8d66084ca6 "ASSERT_TRUE(geometry.HasValue()) | EXPECT_TRUE(EvaluateSurface(geometry.Value(),xi,eta, Interval{Down(xi),Up(xi)},Interval{Down(eta),Up(eta)},{},{}).HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-geometry"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].entity_identity,""part:0027"") | ASSERT_FALSE(scaled.HasValue()) | EXPECT_EQ(scaled.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-metric"") | EXPECT_EQ(scaled.GetStatus().Diagnostics()[0].message, ""Metric inverse enclosure is not finite or excludes no zero divisor."")" "ASSERT_TRUE(geometry.HasValue()) | EXPECT_TRUE(EvaluateSurface(geometry.Value(),xi,eta, Interval{Down(xi),Up(xi)},Interval{Down(eta),Up(eta)},{},{}).HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-geometry"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].entity_identity,""part:0027"") | ASSERT_FALSE(scaled.HasValue()) | EXPECT_EQ(scaled.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-metric"") | EXPECT_EQ(scaled.GetStatus().Diagnostics()[0].message, ""Metric inverse enclosure is not finite or excludes no zero divisor."")" -Refactor tests/unit/model/thermal_shell_geometry_test.cpp support@1-49 helper/oracle/fixture/include/static assertion 구간: Kernel, Mesh, Accepted tests/unit/model/thermal_shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0820f520a641142881a56e7077bafb01de08e918672b8c044c696f5d739ae5fe 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/model/thermal_shell_geometry_test.cpp support@214-215 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/thermal_shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f4f8121dd2388b30f27a1454c1f3bd3ed0db6b42a9f01bb0e4cc53e5a048e339 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/model/thermal_shell_geometry_test.cpp support@278-278 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/thermal_shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/properties/element_property_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/properties/element_property_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 37fe800c84baee1240c919337d93fdaf0b06540901fcf27c1de88b3cab07b049 37fe800c84baee1240c919337d93fdaf0b06540901fcf27c1de88b3cab07b049 해당 없음 해당 없음 -Refactor tests/unit/properties/element_property_test.cpp ElementProperty.OwnsGeneralBeamSectionThroughVirtualBase ElementProperty.OwnsGeneralBeamSectionThroughVirtualBase; assertion 13개 tests/unit/properties/element_property_test.cpp ElementProperty.OwnsGeneralBeamSectionThroughVirtualBase 유지 원문 검사 body 및 assertion 동일. a82ebec7392b40890b5e5f520cf3384a81f765e1e258cd5c1062052283df0479 a82ebec7392b40890b5e5f520cf3384a81f765e1e258cd5c1062052283df0479 "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(property->Kind(), fesa::ElementPropertyKind::kGeneralBeamSection) | EXPECT_EQ(property->SourceId().source_label, 4) | EXPECT_EQ(property->SourceId().source_label_text, ""BeamSection"") | EXPECT_EQ(section.Name(), ""BeamSection"") | EXPECT_DOUBLE_EQ(section.Area(), 0.02) | EXPECT_DOUBLE_EQ(section.I11(), 1.0e-5) | EXPECT_DOUBLE_EQ(section.I12(), 0.0) | EXPECT_DOUBLE_EQ(section.I22(), 2.0e-5) | EXPECT_DOUBLE_EQ(section.TorsionalConstant(), 5.0e-6) | EXPECT_EQ(section.FirstAxis(), (std::array{0.0, 1.0, 0.0})) | EXPECT_EQ(section.SectionPoints(), (std::vector>{{-0.1, 0.0}, {0.1, 0.0}})) | EXPECT_EQ(section.Location().line, 40U)" "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(property->Kind(), fesa::ElementPropertyKind::kGeneralBeamSection) | EXPECT_EQ(property->SourceId().source_label, 4) | EXPECT_EQ(property->SourceId().source_label_text, ""BeamSection"") | EXPECT_EQ(section.Name(), ""BeamSection"") | EXPECT_DOUBLE_EQ(section.Area(), 0.02) | EXPECT_DOUBLE_EQ(section.I11(), 1.0e-5) | EXPECT_DOUBLE_EQ(section.I12(), 0.0) | EXPECT_DOUBLE_EQ(section.I22(), 2.0e-5) | EXPECT_DOUBLE_EQ(section.TorsionalConstant(), 5.0e-6) | EXPECT_EQ(section.FirstAxis(), (std::array{0.0, 1.0, 0.0})) | EXPECT_EQ(section.SectionPoints(), (std::vector>{{-0.1, 0.0}, {0.1, 0.0}})) | EXPECT_EQ(section.Location().line, 40U)" -Refactor tests/unit/properties/element_property_test.cpp ElementProperty.OwnsShellSectionThroughVirtualBase ElementProperty.OwnsShellSectionThroughVirtualBase; assertion 7개 tests/unit/properties/element_property_test.cpp ElementProperty.OwnsShellSectionThroughVirtualBase 유지 원문 검사 body 및 assertion 동일. f875a0e085b3368db099095f0bbce5ff999ecaaefc8f542b5f048a2cb965a65d f875a0e085b3368db099095f0bbce5ff999ecaaefc8f542b5f048a2cb965a65d "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(property->Kind(), fesa::ElementPropertyKind::kShellSection) | EXPECT_EQ(property->SourceId().source_label, 8) | EXPECT_EQ(section.Name(), ""ShellSection"") | EXPECT_DOUBLE_EQ(section.Thickness(), 0.01) | EXPECT_EQ(section.MaterialIndex(), fesa::EntityIndex{3}) | EXPECT_EQ(section.Location().file, ""models/property.inp"")" "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(property->Kind(), fesa::ElementPropertyKind::kShellSection) | EXPECT_EQ(property->SourceId().source_label, 8) | EXPECT_EQ(section.Name(), ""ShellSection"") | EXPECT_DOUBLE_EQ(section.Thickness(), 0.01) | EXPECT_EQ(section.MaterialIndex(), fesa::EntityIndex{3}) | EXPECT_EQ(section.Location().file, ""models/property.inp"")" -Refactor tests/unit/properties/element_property_test.cpp ElementProperty.PreservesEmptyOptionalSectionPointInventory ElementProperty.PreservesEmptyOptionalSectionPointInventory; assertion 2개 tests/unit/properties/element_property_test.cpp ElementProperty.PreservesEmptyOptionalSectionPointInventory 유지 원문 검사 body 및 assertion 동일. eb36af0169c99936f509a091e38bf8c4e4c7d8fb663887478c6b4453ce21a252 eb36af0169c99936f509a091e38bf8c4e4c7d8fb663887478c6b4453ce21a252 ASSERT_TRUE(section.HasValue()) | EXPECT_TRUE(section.Value().SectionPoints().empty()) ASSERT_TRUE(section.HasValue()) | EXPECT_TRUE(section.Value().SectionPoints().empty()) -Refactor tests/unit/properties/element_property_test.cpp ElementProperty.RejectsInvalidCurrentSectionFields ElementProperty.RejectsInvalidCurrentSectionFields; assertion 6개 tests/unit/properties/element_property_test.cpp ElementProperty.RejectsInvalidCurrentSectionFields 유지 원문 검사 body 및 assertion 동일. 0e388bbbd8142343bb098f7b6df8b4dc8079f90e5c73447c09e43c4dbce0f610 0e388bbbd8142343bb098f7b6df8b4dc8079f90e5c73447c09e43c4dbce0f610 ASSERT_FALSE(invalid_beam.HasValue()) | EXPECT_EQ(invalid_beam.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(coupled_beam.HasValue()) | EXPECT_FALSE(nonfinite_point.HasValue()) | ASSERT_FALSE(invalid_shell.HasValue()) | EXPECT_EQ(invalid_shell.GetStatus().Category(), fesa::FailureCategory::kModel) ASSERT_FALSE(invalid_beam.HasValue()) | EXPECT_EQ(invalid_beam.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(coupled_beam.HasValue()) | EXPECT_FALSE(nonfinite_point.HasValue()) | ASSERT_FALSE(invalid_shell.HasValue()) | EXPECT_EQ(invalid_shell.GetStatus().Category(), fesa::FailureCategory::kModel) -Refactor tests/unit/properties/element_property_test.cpp support@1-19 helper/oracle/fixture/include/static assertion 구간: PropertyLocation tests/unit/properties/element_property_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 433c8d2313668bc7e4780f44dca84936eae188a3c75110af9182756aa419efad 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/results/result_records_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/results/result_records_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bb72829dd1c5a3b89f5fcca9ae669acf8bc90697a26a5aa0c4ad0cddd14ac83e bb72829dd1c5a3b89f5fcca9ae669acf8bc90697a26a5aa0c4ad0cddd14ac83e 해당 없음 해당 없음 -Refactor tests/unit/results/result_records_test.cpp AnalysisState.PreservesStepFrameAndStableRowOrder AnalysisState.PreservesStepFrameAndStableRowOrder; assertion 25개 tests/unit/results/result_records_test.cpp AnalysisState.PreservesStepFrameAndStableRowOrder 유지 원문 검사 body 및 assertion 동일. 869b5c0c01c92f41cc3dd8a80fa5fe57725d2ce8581d61c8dcf3ac36ed0d8d8f 869b5c0c01c92f41cc3dd8a80fa5fe57725d2ce8581d61c8dcf3ac36ed0d8d8f "EXPECT_EQ(const_state.Identity().step_name, ""Step-1"") | EXPECT_EQ(const_state.Identity().frame_index, 0U) | ASSERT_EQ(const_state.EndpointResults().size(), 2U) | EXPECT_EQ(const_state.EndpointResults().data(), endpoint_storage) | EXPECT_EQ(const_state.EndpointResults()[0].element, 2U) | EXPECT_EQ(const_state.EndpointResults()[0].endpoint, -1) | EXPECT_EQ(const_state.EndpointResults()[0].node.instance_name, ""Beam-1"") | EXPECT_EQ(const_state.EndpointResults()[0].node.source_label, 10) | EXPECT_EQ(const_state.EndpointResults()[0].node.source_label_text, ""010"") | EXPECT_EQ(const_state.EndpointResults()[0].end_action, (std::array{1.0, 2.0, 3.0, 4.0, 5.0, 6.0})) | EXPECT_EQ(const_state.EndpointResults()[1].section_resultant, (std::array{17.0, 18.0, 19.0, 20.0})) | ASSERT_EQ(const_state.GaussResults().size(), 2U) | EXPECT_EQ(const_state.GaussResults().data(), gauss_storage) | EXPECT_EQ(const_state.GaussResults()[0].gauss_point, 1) | EXPECT_EQ(const_state.GaussResults()[1].gauss_point, 2) | EXPECT_EQ(const_state.GaussResults()[0].generalized_strain, (std::array{0.1, 0.2, 0.3, 0.4})) | EXPECT_EQ(const_state.GaussResults()[1].generalized_resultant, (std::array{1.5, 1.6, 1.7, 1.8})) | ASSERT_EQ(const_state.StressResults().size(), 2U) | EXPECT_EQ(const_state.StressResults().data(), stress_storage) | EXPECT_EQ(const_state.StressResults()[0].section_point, 1U) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].x1, -0.25) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].x2, 0.5) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].s11, 12.5) | EXPECT_EQ(const_state.StressResults()[0].source, ""input"") | EXPECT_EQ(const_state.StressResults()[1].section_point, 2U)" "EXPECT_EQ(const_state.Identity().step_name, ""Step-1"") | EXPECT_EQ(const_state.Identity().frame_index, 0U) | ASSERT_EQ(const_state.EndpointResults().size(), 2U) | EXPECT_EQ(const_state.EndpointResults().data(), endpoint_storage) | EXPECT_EQ(const_state.EndpointResults()[0].element, 2U) | EXPECT_EQ(const_state.EndpointResults()[0].endpoint, -1) | EXPECT_EQ(const_state.EndpointResults()[0].node.instance_name, ""Beam-1"") | EXPECT_EQ(const_state.EndpointResults()[0].node.source_label, 10) | EXPECT_EQ(const_state.EndpointResults()[0].node.source_label_text, ""010"") | EXPECT_EQ(const_state.EndpointResults()[0].end_action, (std::array{1.0, 2.0, 3.0, 4.0, 5.0, 6.0})) | EXPECT_EQ(const_state.EndpointResults()[1].section_resultant, (std::array{17.0, 18.0, 19.0, 20.0})) | ASSERT_EQ(const_state.GaussResults().size(), 2U) | EXPECT_EQ(const_state.GaussResults().data(), gauss_storage) | EXPECT_EQ(const_state.GaussResults()[0].gauss_point, 1) | EXPECT_EQ(const_state.GaussResults()[1].gauss_point, 2) | EXPECT_EQ(const_state.GaussResults()[0].generalized_strain, (std::array{0.1, 0.2, 0.3, 0.4})) | EXPECT_EQ(const_state.GaussResults()[1].generalized_resultant, (std::array{1.5, 1.6, 1.7, 1.8})) | ASSERT_EQ(const_state.StressResults().size(), 2U) | EXPECT_EQ(const_state.StressResults().data(), stress_storage) | EXPECT_EQ(const_state.StressResults()[0].section_point, 1U) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].x1, -0.25) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].x2, 0.5) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].s11, 12.5) | EXPECT_EQ(const_state.StressResults()[0].source, ""input"") | EXPECT_EQ(const_state.StressResults()[1].section_point, 2U)" -Refactor tests/unit/results/result_records_test.cpp AnalysisState.OwnsExactShellRowsInStableElementAndLocationOrder AnalysisState.OwnsExactShellRowsInStableElementAndLocationOrder; assertion 13개 tests/unit/results/result_records_test.cpp AnalysisState.OwnsExactShellRowsInStableElementAndLocationOrder 유지 원문 검사 body 및 assertion 동일. a0f71e39ab3e0d800b26636fca67c30c58ad846b26a9684454a311322065c4f1 a0f71e39ab3e0d800b26636fca67c30c58ad846b26a9684454a311322065c4f1 ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(const_state.ShellResults().size(), 8U) | EXPECT_EQ(const_state.ShellResults()[0].element, 3U) | EXPECT_EQ(const_state.ShellResults()[0].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(const_state.ShellResults()[3].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(const_state.ShellResults()[4].element, 7U) | EXPECT_EQ(const_state.ShellResults()[4].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ( const_state.ShellResults()[0].natural_coordinates, (std::array{-1.0 / std::sqrt(3.0), -1.0 / std::sqrt(3.0)})) | EXPECT_EQ(const_state.ShellResults()[2].generalized_strain, (std::array{321.0, 322.0, 323.0, 324.0, 325.0, 326.0, 327.0, 328.0})) | EXPECT_EQ(const_state.ShellResults()[7].section_resultant, (std::array{741.0, 742.0, 743.0, 744.0, 745.0, 746.0, 747.0, 748.0})) | EXPECT_EQ(const_state.ShellResults()[7].stress[0].position, fesa::ShellSectionPosition::kBottom) | EXPECT_DOUBLE_EQ(const_state.ShellResults()[7].stress[0].zeta, -1.0) | EXPECT_EQ(const_state.ShellResults()[7].stress[2].components, (std::array{757.0, 758.0, 759.0})) ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(const_state.ShellResults().size(), 8U) | EXPECT_EQ(const_state.ShellResults()[0].element, 3U) | EXPECT_EQ(const_state.ShellResults()[0].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(const_state.ShellResults()[3].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(const_state.ShellResults()[4].element, 7U) | EXPECT_EQ(const_state.ShellResults()[4].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ( const_state.ShellResults()[0].natural_coordinates, (std::array{-1.0 / std::sqrt(3.0), -1.0 / std::sqrt(3.0)})) | EXPECT_EQ(const_state.ShellResults()[2].generalized_strain, (std::array{321.0, 322.0, 323.0, 324.0, 325.0, 326.0, 327.0, 328.0})) | EXPECT_EQ(const_state.ShellResults()[7].section_resultant, (std::array{741.0, 742.0, 743.0, 744.0, 745.0, 746.0, 747.0, 748.0})) | EXPECT_EQ(const_state.ShellResults()[7].stress[0].position, fesa::ShellSectionPosition::kBottom) | EXPECT_DOUBLE_EQ(const_state.ShellResults()[7].stress[0].zeta, -1.0) | EXPECT_EQ(const_state.ShellResults()[7].stress[2].components, (std::array{757.0, 758.0, 759.0})) -Refactor tests/unit/results/result_records_test.cpp AnalysisState.CommitsFiniteShellGlobalEvidence AnalysisState.CommitsFiniteShellGlobalEvidence; assertion 4개 tests/unit/results/result_records_test.cpp AnalysisState.CommitsFiniteShellGlobalEvidence 유지 원문 검사 body 및 assertion 동일. 62ed08387eb7eff71c91920c4bebabfbed05791ab18a4fe8cbbf463396f7be15 62ed08387eb7eff71c91920c4bebabfbed05791ab18a4fe8cbbf463396f7be15 ASSERT_TRUE(status.IsOk()) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), 35.5) | EXPECT_EQ(state.Equilibrium(), (std::array{1.0, -2.0, 3.0, -4.0, 5.0, -6.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{1.0e-11, 2.0e-11, 3.0e-11})) ASSERT_TRUE(status.IsOk()) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), 35.5) | EXPECT_EQ(state.Equilibrium(), (std::array{1.0, -2.0, 3.0, -4.0, 5.0, -6.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{1.0e-11, 2.0e-11, 3.0e-11})) -Refactor tests/unit/results/result_records_test.cpp AnalysisState.InvalidShellCandidatesLeavePriorStateUnchanged AnalysisState.InvalidShellCandidatesLeavePriorStateUnchanged; assertion 1개 tests/unit/results/result_records_test.cpp AnalysisState.InvalidShellCandidatesLeavePriorStateUnchanged 유지 원문 검사 body 및 assertion 동일. 707b9669e1d0cb266cfbba53e13210c339cea51e651d10b1b57991ece003a113 707b9669e1d0cb266cfbba53e13210c339cea51e651d10b1b57991ece003a113 ASSERT_TRUE(state.CommitShellResults(expected_elements, committed).IsOk()) ASSERT_TRUE(state.CommitShellResults(expected_elements, committed).IsOk()) -Refactor tests/unit/results/result_records_test.cpp support@1-128 helper/oracle/fixture/include/static assertion 구간: MakeEmptyDofs, MakeShellRow, MakeShellCandidate, for, ExpectShellStateEquals, ExpectShellCandidateRejectedWithoutMutation tests/unit/results/result_records_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c3b1b99dba6177733aa2470d3dda8537c58aef89a290a4f6b3959dcd158bbbc0 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/results/result_records_test.cpp support@195-196 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_records_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 99cfd7cc1cbfee5f6699e5f92a5190f79a531c7be18944fe4cda2e9e2579c67c 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/results/result_records_test.cpp support@231-232 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_records_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8e9919be7709179a6da34b5355c75a2a62ae000d17bf61c217fc31533b110324 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/results/result_records_test.cpp support@248-249 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_records_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5553b473143aa6f5d1e0b9c4ab38b9d66e43c689916066d068f42b2635b92413 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/results/result_recovery_components_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/results/result_recovery_components_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 558db157e75e1cfb16f157c2ea2f181be03075ec5447d369c24eb0bc17047476 e5f882061497e99d8210a474c7f662c17de029fc7542ae8b4c7334a2be162c6d 해당 없음 해당 없음 -Refactor tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.GlobalEquilibriumUsesFullResidualAndGlobalOriginMoment ResultRecoveryComponents.GlobalEquilibriumUsesFullResidualAndGlobalOriginMoment; assertion 8개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.GlobalEquilibriumUsesFullResidualAndGlobalOriginMoment 유지 원문 검사 body 및 assertion 동일. 4b1d44d2f31879ee4c18e1f4cb5cdedafa0cb332e8c635b697fbcc02bef96a81 4b1d44d2f31879ee4c18e1f4cb5cdedafa0cb332e8c635b697fbcc02bef96a81 ASSERT_TRUE(centered_global.HasValue()) | ASSERT_TRUE(translated_global.HasValue()) | EXPECT_NEAR(centered_global.Value().residual[0U], -1.0e-9, 1.0e-14) | EXPECT_DOUBLE_EQ(centered_global.Value().reaction[0U], centered_global.Value().residual[0U]) | ASSERT_TRUE(centered_status.IsOk()) | ASSERT_TRUE(translated_status.IsOk()) | EXPECT_NEAR(translated_candidate.shell.equilibrium[component], centered_force[component], 1.0e-12) | EXPECT_NEAR(translated_candidate.shell.equilibrium[3U + component] - centered_candidate.shell.equilibrium[3U + component], translated_moment_delta[component], 5.0e-12) ASSERT_TRUE(centered_global.HasValue()) | ASSERT_TRUE(translated_global.HasValue()) | EXPECT_NEAR(centered_global.Value().residual[0U], -1.0e-9, 1.0e-14) | EXPECT_DOUBLE_EQ(centered_global.Value().reaction[0U], centered_global.Value().residual[0U]) | ASSERT_TRUE(centered_status.IsOk()) | ASSERT_TRUE(translated_status.IsOk()) | EXPECT_NEAR(translated_candidate.shell.equilibrium[component], centered_force[component], 1.0e-12) | EXPECT_NEAR(translated_candidate.shell.equilibrium[3U + component] - centered_candidate.shell.equilibrium[3U + component], translated_moment_delta[component], 5.0e-12) -Refactor tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.BeamResultRecoveryKeepsEndpointGaussAndStressIdentities ResultRecoveryComponents.BeamResultRecoveryKeepsEndpointGaussAndStressIdentities; assertion 18개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.BeamResultRecoveryKeepsEndpointGaussAndStressIdentities 유지 원문 검사 body 및 assertion 동일. 08f945a80aa1b49a9352f010897f1f0843eae7e8567334daf13602824dc12039 08f945a80aa1b49a9352f010897f1f0843eae7e8567334daf13602824dc12039 ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(candidate.endpoint_rows.size(), 2U) | ASSERT_EQ(candidate.gauss_rows.size(), 2U) | ASSERT_EQ(candidate.stress_rows.size(), 2U) | EXPECT_TRUE(candidate.has_beam_results) | EXPECT_EQ(candidate.endpoint_rows[0U].endpoint, 0) | EXPECT_EQ(candidate.endpoint_rows[1U].endpoint, 1) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[0U].end_action[0U], -2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[0U].section_resultant[0U], 2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[1U].end_action[0U], 2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[1U].section_resultant[0U], 2.0) | EXPECT_EQ(candidate.gauss_rows[0U].gauss_point, 1) | EXPECT_EQ(candidate.gauss_rows[1U].gauss_point, 2) | EXPECT_EQ(candidate.stress_rows[0U].section_point, 0U) | EXPECT_EQ(candidate.stress_rows[1U].section_point, 1U) | EXPECT_TRUE(rejected.endpoint_rows.empty()) | EXPECT_TRUE(rejected.gauss_rows.empty()) | EXPECT_TRUE(rejected.stress_rows.empty()) ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(candidate.endpoint_rows.size(), 2U) | ASSERT_EQ(candidate.gauss_rows.size(), 2U) | ASSERT_EQ(candidate.stress_rows.size(), 2U) | EXPECT_TRUE(candidate.has_beam_results) | EXPECT_EQ(candidate.endpoint_rows[0U].endpoint, 0) | EXPECT_EQ(candidate.endpoint_rows[1U].endpoint, 1) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[0U].end_action[0U], -2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[0U].section_resultant[0U], 2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[1U].end_action[0U], 2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[1U].section_resultant[0U], 2.0) | EXPECT_EQ(candidate.gauss_rows[0U].gauss_point, 1) | EXPECT_EQ(candidate.gauss_rows[1U].gauss_point, 2) | EXPECT_EQ(candidate.stress_rows[0U].section_point, 0U) | EXPECT_EQ(candidate.stress_rows[1U].section_point, 1U) | EXPECT_TRUE(rejected.endpoint_rows.empty()) | EXPECT_TRUE(rejected.gauss_rows.empty()) | EXPECT_TRUE(rejected.stress_rows.empty()) -Refactor tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.BeamResultRecoveryRejectsMalformedB33IdentityBeforeAppending ResultRecoveryComponents.BeamResultRecoveryRejectsMalformedB33IdentityBeforeAppending; assertion 4개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.BeamResultRecoveryRejectsMalformedB33IdentityBeforeAppending 유지 원문 검사 body 및 assertion 동일. 3f5b0c41e2ce77b59609c26e60409445ddd24bd89e0bf55f7f9c30736fdd5f35 3f5b0c41e2ce77b59609c26e60409445ddd24bd89e0bf55f7f9c30736fdd5f35 EXPECT_TRUE(candidate.endpoint_rows.empty()) | EXPECT_TRUE(candidate.gauss_rows.empty()) | EXPECT_TRUE(candidate.stress_rows.empty()) | EXPECT_FALSE(candidate.has_beam_results) EXPECT_TRUE(candidate.endpoint_rows.empty()) | EXPECT_TRUE(candidate.gauss_rows.empty()) | EXPECT_TRUE(candidate.stress_rows.empty()) | EXPECT_FALSE(candidate.has_beam_results) -Refactor tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.ShellResultRecoveryKeepsGpStressOrderAndPhysicalEnergy ResultRecoveryComponents.ShellResultRecoveryKeepsGpStressOrderAndPhysicalEnergy; assertion 13개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.ShellResultRecoveryKeepsGpStressOrderAndPhysicalEnergy 유지 원문 검사 body 및 assertion 동일. 6c9a8476d2005420d8bd58a3f3a3558cfadbd6c158bd213b0047e821bdd2d991 6c9a8476d2005420d8bd58a3f3a3558cfadbd6c158bd213b0047e821bdd2d991 ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(candidate.has_shell_results) | EXPECT_EQ(candidate.expected_shell_elements, (std::vector{element})) | ASSERT_EQ(candidate.shell.rows.size(), 4U) | EXPECT_EQ(candidate.shell.rows[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(candidate.shell.rows[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(candidate.shell.rows[0U].stress[0U].position, fesa::ShellSectionPosition::kBottom) | EXPECT_EQ(candidate.shell.rows[0U].stress[1U].position, fesa::ShellSectionPosition::kMiddle) | EXPECT_EQ(candidate.shell.rows[0U].stress[2U].position, fesa::ShellSectionPosition::kTop) | EXPECT_DOUBLE_EQ(candidate.shell.physical_strain_energy, 12.5) | EXPECT_TRUE(rejected.shell.rows.empty()) | EXPECT_TRUE(rejected.expected_shell_elements.empty()) | EXPECT_DOUBLE_EQ(rejected.shell.physical_strain_energy, 0.0) ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(candidate.has_shell_results) | EXPECT_EQ(candidate.expected_shell_elements, (std::vector{element})) | ASSERT_EQ(candidate.shell.rows.size(), 4U) | EXPECT_EQ(candidate.shell.rows[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(candidate.shell.rows[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(candidate.shell.rows[0U].stress[0U].position, fesa::ShellSectionPosition::kBottom) | EXPECT_EQ(candidate.shell.rows[0U].stress[1U].position, fesa::ShellSectionPosition::kMiddle) | EXPECT_EQ(candidate.shell.rows[0U].stress[2U].position, fesa::ShellSectionPosition::kTop) | EXPECT_DOUBLE_EQ(candidate.shell.physical_strain_energy, 12.5) | EXPECT_TRUE(rejected.shell.rows.empty()) | EXPECT_TRUE(rejected.expected_shell_elements.empty()) | EXPECT_DOUBLE_EQ(rejected.shell.physical_strain_energy, 0.0) -Refactor tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.CommitRecoveryCandidateRollsBackLaterInvalidShellBundle ResultRecoveryComponents.CommitRecoveryCandidateRollsBackLaterInvalidShellBundle; assertion 9개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.CommitRecoveryCandidateRollsBackLaterInvalidShellBundle 유지 원문 검사 body 및 assertion 동일. 55b6230e61eb0fc7cb6bdd7be3ad9832e2f1ec16cc1a95bf67ed1266f52d1cfe 55b6230e61eb0fc7cb6bdd7be3ad9832e2f1ec16cc1a95bf67ed1266f52d1cfe ASSERT_TRUE(state.CommitShellResults({0U}, std::move(prior_shell)).IsOk()) | ASSERT_EQ(state.EndpointResults().size(), prior.EndpointResults().size()) | EXPECT_EQ(state.EndpointResults()[0U].end_action, prior.EndpointResults()[0U].end_action) | ASSERT_EQ(state.ShellResults().size(), prior.ShellResults().size()) | EXPECT_EQ(state.ShellResults()[0U].location, prior.ShellResults()[0U].location) | EXPECT_EQ(state.ShellResults()[0U].section_resultant, prior.ShellResults()[0U].section_resultant) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior.PhysicalStrainEnergy()) | EXPECT_EQ(state.Equilibrium(), prior.Equilibrium()) | EXPECT_EQ(state.VerificationMetrics(), prior.VerificationMetrics()) ASSERT_TRUE(state.CommitShellResults({0U}, std::move(prior_shell)).IsOk()) | ASSERT_EQ(state.EndpointResults().size(), prior.EndpointResults().size()) | EXPECT_EQ(state.EndpointResults()[0U].end_action, prior.EndpointResults()[0U].end_action) | ASSERT_EQ(state.ShellResults().size(), prior.ShellResults().size()) | EXPECT_EQ(state.ShellResults()[0U].location, prior.ShellResults()[0U].location) | EXPECT_EQ(state.ShellResults()[0U].section_resultant, prior.ShellResults()[0U].section_resultant) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior.PhysicalStrainEnergy()) | EXPECT_EQ(state.Equilibrium(), prior.Equilibrium()) | EXPECT_EQ(state.VerificationMetrics(), prior.VerificationMetrics()) -Refactor tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.CommitRecoveryCandidateRejectsNonfiniteVectorAndPreservesWholeState ResultRecoveryComponents.CommitRecoveryCandidateRejectsNonfiniteVectorAndPreservesWholeState; assertion 1개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.CommitRecoveryCandidateRejectsNonfiniteVectorAndPreservesWholeState 유지 원문 검사 body 및 assertion 동일. 7fbd3ba0038bb7588dd981c89f1ebdb358900d942bf246d26295b1417082cf38 7fbd3ba0038bb7588dd981c89f1ebdb358900d942bf246d26295b1417082cf38 ASSERT_TRUE(state.CommitShellResults({0U}, std::move(prior_shell)).IsOk()) ASSERT_TRUE(state.CommitShellResults({0U}, std::move(prior_shell)).IsOk()) -Refactor tests/unit/results/result_recovery_components_test.cpp support@1-287 helper/oracle/fixture/include/static assertion 구간: ShellFixture, MakeSourceId, MakeBeamRows, MakeShellRows, MakeShellDefinition, MakeShellFixture, if, MakeShellPhysicalState, ExpectStatusCode, ExpectVectorEqual, ExpectAnalysisStateEqual tests/unit/results/result_recovery_components_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5c11d9bc4abf9701433cc401daa10ba8c47b67215a1ae623e36a81515e48de37 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/results/result_recovery_components_test.cpp support@355-356 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84e6d9367513adf07b62324adc589f360532892eb863dd167e0cf83cdda8477b 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/results/result_recovery_components_test.cpp support@394-395 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84e6d9367513adf07b62324adc589f360532892eb863dd167e0cf83cdda8477b 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/results/result_recovery_components_test.cpp support@452-453 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84e6d9367513adf07b62324adc589f360532892eb863dd167e0cf83cdda8477b 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/results/result_recovery_components_test.cpp support@488-489 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84e6d9367513adf07b62324adc589f360532892eb863dd167e0cf83cdda8477b 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/results/result_recovery_components_test.cpp support@553-554 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84e6d9367513adf07b62324adc589f360532892eb863dd167e0cf83cdda8477b 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/results/result_recovery_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 17개 tests/unit/results/result_recovery_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7b9358cc8459e3ec9c7fd6384982951ff5520dca7ee1b41eb671976c79c254e6 7b9358cc8459e3ec9c7fd6384982951ff5520dca7ee1b41eb671976c79c254e6 해당 없음 해당 없음 -Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.AggregatesFakeBeamBundlesInStableRuntimeOrder ResultRecovery.AggregatesFakeBeamBundlesInStableRuntimeOrder; assertion 25개 tests/unit/results/result_recovery_test.cpp ResultRecovery.AggregatesFakeBeamBundlesInStableRuntimeOrder 유지 원문 검사 body 및 assertion 동일. 61908298d8e691deb7066229f9dd58426ca57647ebabc07023e1a31ac0cda782 61908298d8e691deb7066229f9dd58426ca57647ebabc07023e1a31ac0cda782 ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(first.ObservedDisplacement().Size(), 12U) | EXPECT_DOUBLE_EQ(first.ObservedDisplacement()[0U], 0.1) | EXPECT_DOUBLE_EQ(first.ObservedDisplacement()[6U], 0.3) | ASSERT_EQ(second.ObservedDisplacement().Size(), 12U) | EXPECT_DOUBLE_EQ(second.ObservedDisplacement()[0U], 0.3) | EXPECT_DOUBLE_EQ(second.ObservedDisplacement()[6U], 0.0) | ASSERT_EQ(state.EndpointResults().size(), 4U) | ASSERT_EQ(state.GaussResults().size(), 4U) | ASSERT_EQ(state.StressResults().size(), 4U) | EXPECT_EQ(negative_endpoint.element, element) | EXPECT_EQ(negative_endpoint.endpoint, 0) | EXPECT_DOUBLE_EQ(negative_endpoint.end_action[0U], -value) | EXPECT_DOUBLE_EQ(negative_endpoint.section_resultant[0U], value) | EXPECT_EQ(positive_endpoint.element, element) | EXPECT_EQ(positive_endpoint.endpoint, 1) | EXPECT_DOUBLE_EQ(positive_endpoint.end_action[0U], value) | EXPECT_DOUBLE_EQ(positive_endpoint.section_resultant[0U], value) | EXPECT_EQ(state.GaussResults()[2U * element].element, element) | EXPECT_EQ(state.GaussResults()[2U * element].gauss_point, 1) | EXPECT_EQ(state.GaussResults()[2U * element + 1U].element, element) | EXPECT_EQ(state.GaussResults()[2U * element + 1U].gauss_point, 2) | EXPECT_EQ(state.StressResults()[2U * element].element, element) | EXPECT_EQ(state.StressResults()[2U * element + 1U].element, element) | EXPECT_TRUE(state.ShellResults().empty()) ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(first.ObservedDisplacement().Size(), 12U) | EXPECT_DOUBLE_EQ(first.ObservedDisplacement()[0U], 0.1) | EXPECT_DOUBLE_EQ(first.ObservedDisplacement()[6U], 0.3) | ASSERT_EQ(second.ObservedDisplacement().Size(), 12U) | EXPECT_DOUBLE_EQ(second.ObservedDisplacement()[0U], 0.3) | EXPECT_DOUBLE_EQ(second.ObservedDisplacement()[6U], 0.0) | ASSERT_EQ(state.EndpointResults().size(), 4U) | ASSERT_EQ(state.GaussResults().size(), 4U) | ASSERT_EQ(state.StressResults().size(), 4U) | EXPECT_EQ(negative_endpoint.element, element) | EXPECT_EQ(negative_endpoint.endpoint, 0) | EXPECT_DOUBLE_EQ(negative_endpoint.end_action[0U], -value) | EXPECT_DOUBLE_EQ(negative_endpoint.section_resultant[0U], value) | EXPECT_EQ(positive_endpoint.element, element) | EXPECT_EQ(positive_endpoint.endpoint, 1) | EXPECT_DOUBLE_EQ(positive_endpoint.end_action[0U], value) | EXPECT_DOUBLE_EQ(positive_endpoint.section_resultant[0U], value) | EXPECT_EQ(state.GaussResults()[2U * element].element, element) | EXPECT_EQ(state.GaussResults()[2U * element].gauss_point, 1) | EXPECT_EQ(state.GaussResults()[2U * element + 1U].element, element) | EXPECT_EQ(state.GaussResults()[2U * element + 1U].gauss_point, 2) | EXPECT_EQ(state.StressResults()[2U * element].element, element) | EXPECT_EQ(state.StressResults()[2U * element + 1U].element, element) | EXPECT_TRUE(state.ShellResults().empty()) -Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.AggregatesFakeShellBundleAndPhysicalEnergy ResultRecovery.AggregatesFakeShellBundleAndPhysicalEnergy; assertion 10개 tests/unit/results/result_recovery_test.cpp ResultRecovery.AggregatesFakeShellBundleAndPhysicalEnergy 유지 원문 검사 body 및 assertion 동일. 6010abc24720e7277736bbd3f31bc425d908c7545447ce70f5d5c1dc45880d8e 6010abc24720e7277736bbd3f31bc425d908c7545447ce70f5d5c1dc45880d8e ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(state.EndpointResults().empty()) | EXPECT_TRUE(state.GaussResults().empty()) | EXPECT_TRUE(state.StressResults().empty()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_EQ(state.ShellResults()[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(state.ShellResults()[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_DOUBLE_EQ(state.ShellResults()[0U].generalized_strain[0U], 1.0) | EXPECT_DOUBLE_EQ(state.ShellResults()[3U].section_resultant[0U], 40.0) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), physical_energy) ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(state.EndpointResults().empty()) | EXPECT_TRUE(state.GaussResults().empty()) | EXPECT_TRUE(state.StressResults().empty()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_EQ(state.ShellResults()[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(state.ShellResults()[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_DOUBLE_EQ(state.ShellResults()[0U].generalized_strain[0U], 1.0) | EXPECT_DOUBLE_EQ(state.ShellResults()[3U].section_resultant[0U], 40.0) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), physical_energy) -Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.FailingFakeBundleRollsBackTheWholeState ResultRecovery.FailingFakeBundleRollsBackTheWholeState; assertion 15개 tests/unit/results/result_recovery_test.cpp ResultRecovery.FailingFakeBundleRollsBackTheWholeState 유지 원문 검사 body 및 assertion 동일. 39c57c8c046735efba89779244e8a951423224037d0d5e5798550b3a057aaa61 39c57c8c046735efba89779244e8a951423224037d0d5e5798550b3a057aaa61 ASSERT_TRUE( state.CommitShellResults({0U}, std::move(stale_shell_candidate)).IsOk()) | EXPECT_EQ(state.Identity().step_name, prior.Identity().step_name) | EXPECT_EQ(state.Identity().frame_index, prior.Identity().frame_index) | ASSERT_EQ(state.EndpointResults().size(), prior.EndpointResults().size()) | EXPECT_EQ(state.EndpointResults()[0U].element, prior.EndpointResults()[0U].element) | EXPECT_EQ(state.EndpointResults()[0U].end_action, prior.EndpointResults()[0U].end_action) | ASSERT_EQ(state.GaussResults().size(), prior.GaussResults().size()) | EXPECT_EQ(state.GaussResults()[0U].generalized_resultant, prior.GaussResults()[0U].generalized_resultant) | ASSERT_EQ(state.StressResults().size(), prior.StressResults().size()) | EXPECT_DOUBLE_EQ(state.StressResults()[0U].s11, prior.StressResults()[0U].s11) | ASSERT_EQ(state.ShellResults().size(), prior.ShellResults().size()) | EXPECT_EQ(state.ShellResults()[0U].generalized_strain, prior.ShellResults()[0U].generalized_strain) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior.PhysicalStrainEnergy()) | EXPECT_EQ(state.Equilibrium(), prior.Equilibrium()) | EXPECT_EQ(state.VerificationMetrics(), prior.VerificationMetrics()) ASSERT_TRUE( state.CommitShellResults({0U}, std::move(stale_shell_candidate)).IsOk()) | EXPECT_EQ(state.Identity().step_name, prior.Identity().step_name) | EXPECT_EQ(state.Identity().frame_index, prior.Identity().frame_index) | ASSERT_EQ(state.EndpointResults().size(), prior.EndpointResults().size()) | EXPECT_EQ(state.EndpointResults()[0U].element, prior.EndpointResults()[0U].element) | EXPECT_EQ(state.EndpointResults()[0U].end_action, prior.EndpointResults()[0U].end_action) | ASSERT_EQ(state.GaussResults().size(), prior.GaussResults().size()) | EXPECT_EQ(state.GaussResults()[0U].generalized_resultant, prior.GaussResults()[0U].generalized_resultant) | ASSERT_EQ(state.StressResults().size(), prior.StressResults().size()) | EXPECT_DOUBLE_EQ(state.StressResults()[0U].s11, prior.StressResults()[0U].s11) | ASSERT_EQ(state.ShellResults().size(), prior.ShellResults().size()) | EXPECT_EQ(state.ShellResults()[0U].generalized_strain, prior.ShellResults()[0U].generalized_strain) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior.PhysicalStrainEnergy()) | EXPECT_EQ(state.Equilibrium(), prior.Equilibrium()) | EXPECT_EQ(state.VerificationMetrics(), prior.VerificationMetrics()) -Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.ComputesResidualReactionForNonzeroPrescription ResultRecovery.ComputesResidualReactionForNonzeroPrescription; assertion 12개 tests/unit/results/result_recovery_test.cpp ResultRecovery.ComputesResidualReactionForNonzeroPrescription 유지 원문 검사 body 및 assertion 동일. 08216ddb5db36bbc534126bdf775ee7846b18b311b89da188e0e53b71af49608 08216ddb5db36bbc534126bdf775ee7846b18b311b89da188e0e53b71af49608 ASSERT_TRUE(state.CommitShellResults({}, stale_shell_evidence).IsOk()) | ASSERT_TRUE(status.IsOk()) | EXPECT_DOUBLE_EQ(state.InternalForce()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[6U], 20.0) | EXPECT_DOUBLE_EQ(state.Residual()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.Residual()[6U], 0.0) | EXPECT_DOUBLE_EQ(state.Reaction()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.Reaction()[full_dof], 0.0) | EXPECT_TRUE(state.ShellResults().empty()) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), 0.0) | EXPECT_EQ(state.Equilibrium(), (std::array{0.0, 0.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{0.0, 0.0, 0.0})) ASSERT_TRUE(state.CommitShellResults({}, stale_shell_evidence).IsOk()) | ASSERT_TRUE(status.IsOk()) | EXPECT_DOUBLE_EQ(state.InternalForce()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[6U], 20.0) | EXPECT_DOUBLE_EQ(state.Residual()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.Residual()[6U], 0.0) | EXPECT_DOUBLE_EQ(state.Reaction()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.Reaction()[full_dof], 0.0) | EXPECT_TRUE(state.ShellResults().empty()) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), 0.0) | EXPECT_EQ(state.Equilibrium(), (std::array{0.0, 0.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{0.0, 0.0, 0.0})) -Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.EnforcesNormalizedFreeResidual ResultRecovery.EnforcesNormalizedFreeResidual; assertion 9개 tests/unit/results/result_recovery_test.cpp ResultRecovery.EnforcesNormalizedFreeResidual 유지 원문 검사 body 및 assertion 동일. 1e96704cc4b176ba73193a9853cc81c56fd130dd92540b88fbc71bef07655032 1e96704cc4b176ba73193a9853cc81c56fd130dd92540b88fbc71bef07655032 EXPECT_DOUBLE_EQ(failed.InternalForce()[0U], 91.0) | EXPECT_DOUBLE_EQ(failed.Residual()[0U], 92.0) | EXPECT_DOUBLE_EQ(failed.Reaction()[0U], 93.0) | EXPECT_DOUBLE_EQ(failed.Reaction()[6U], 94.0) | EXPECT_EQ(failed.EndpointResults().size(), 1U) | ASSERT_TRUE(threshold_status.IsOk()) | EXPECT_NE(threshold_pass.Residual()[6U], 0.0) | EXPECT_DOUBLE_EQ(threshold_pass.Reaction()[6U], threshold_pass.Residual()[6U]) | EXPECT_TRUE( fesa::ResultRecovery::Recover(*zero_fixture.model, *zero_fixture.dofs, *zero_fixture.stiffness, zero_equilibrium) .IsOk()) EXPECT_DOUBLE_EQ(failed.InternalForce()[0U], 91.0) | EXPECT_DOUBLE_EQ(failed.Residual()[0U], 92.0) | EXPECT_DOUBLE_EQ(failed.Reaction()[0U], 93.0) | EXPECT_DOUBLE_EQ(failed.Reaction()[6U], 94.0) | EXPECT_EQ(failed.EndpointResults().size(), 1U) | ASSERT_TRUE(threshold_status.IsOk()) | EXPECT_NE(threshold_pass.Residual()[6U], 0.0) | EXPECT_DOUBLE_EQ(threshold_pass.Reaction()[6U], threshold_pass.Residual()[6U]) | EXPECT_TRUE( fesa::ResultRecovery::Recover(*zero_fixture.model, *zero_fixture.dofs, *zero_fixture.stiffness, zero_equilibrium) .IsOk()) -Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.KeepsEndActionSectionAndGaussResultsDistinct ResultRecovery.KeepsEndActionSectionAndGaussResultsDistinct; assertion 10개 tests/unit/results/result_recovery_test.cpp ResultRecovery.KeepsEndActionSectionAndGaussResultsDistinct 유지 원문 검사 body 및 assertion 동일. 8202381a9f03eaa3d8d5a513ff7109d219c64045aa63639c3d67d6a1a1990838 8202381a9f03eaa3d8d5a513ff7109d219c64045aa63639c3d67d6a1a1990838 ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.EndpointResults().size(), 2U) | ASSERT_EQ(state.GaussResults().size(), 2U) | EXPECT_EQ(state.EndpointResults()[0U].endpoint, 0) | EXPECT_EQ(state.EndpointResults()[1U].endpoint, 1) | EXPECT_EQ(state.GaussResults()[0U].gauss_point, 1) | EXPECT_EQ(state.GaussResults()[1U].gauss_point, 2) | EXPECT_DOUBLE_EQ(state.EndpointResults()[0U].end_action[0U], -state.EndpointResults()[0U].section_resultant[0U]) | EXPECT_DOUBLE_EQ(state.EndpointResults()[1U].end_action[0U], state.EndpointResults()[1U].section_resultant[0U]) | EXPECT_DOUBLE_EQ(state.GaussResults()[0U].generalized_resultant[0U], state.EndpointResults()[0U].section_resultant[0U]) ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.EndpointResults().size(), 2U) | ASSERT_EQ(state.GaussResults().size(), 2U) | EXPECT_EQ(state.EndpointResults()[0U].endpoint, 0) | EXPECT_EQ(state.EndpointResults()[1U].endpoint, 1) | EXPECT_EQ(state.GaussResults()[0U].gauss_point, 1) | EXPECT_EQ(state.GaussResults()[1U].gauss_point, 2) | EXPECT_DOUBLE_EQ(state.EndpointResults()[0U].end_action[0U], -state.EndpointResults()[0U].section_resultant[0U]) | EXPECT_DOUBLE_EQ(state.EndpointResults()[1U].end_action[0U], state.EndpointResults()[1U].section_resultant[0U]) | EXPECT_DOUBLE_EQ(state.GaussResults()[0U].generalized_resultant[0U], state.EndpointResults()[0U].section_resultant[0U]) -Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.MatchesAxialTorsionAndTwoPlaneEndSigns ResultRecovery.MatchesAxialTorsionAndTwoPlaneEndSigns; assertion 1개 tests/unit/results/result_recovery_test.cpp ResultRecovery.MatchesAxialTorsionAndTwoPlaneEndSigns 유지 원문 검사 body 및 assertion 동일. 180b227a99c3cf6f4fc40c9dafa7a98cafcc456ef146b083300d66db8187a98e 180b227a99c3cf6f4fc40c9dafa7a98cafcc456ef146b083300d66db8187a98e ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) -Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.OrdersStressPointsAndDefaultCentroid ResultRecovery.OrdersStressPointsAndDefaultCentroid; assertion 14개 tests/unit/results/result_recovery_test.cpp ResultRecovery.OrdersStressPointsAndDefaultCentroid 유지 원문 검사 body 및 assertion 동일. 27b9a3f6418687d3b2b4d657ae2c41df972cefae91ec474d642f4f8664dea77b 27b9a3f6418687d3b2b4d657ae2c41df972cefae91ec474d642f4f8664dea77b "ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.StressResults().size(), 4U) | EXPECT_EQ(row.element, 0U) | EXPECT_EQ(row.gauss_point, static_cast(gauss + 1U)) | EXPECT_EQ(row.section_point, point + 1U) | EXPECT_DOUBLE_EQ(row.x1, section_points[point][0U]) | EXPECT_DOUBLE_EQ(row.x2, section_points[point][1U]) | EXPECT_EQ(row.source, ""input"") | ASSERT_TRUE(fesa::ResultRecovery::Recover( *default_fixture.model, *default_fixture.dofs, *default_fixture.stiffness, default_state) .IsOk()) | ASSERT_EQ(default_state.StressResults().size(), 2U) | EXPECT_EQ(row.section_point, 0U) | EXPECT_DOUBLE_EQ(row.x1, 0.0) | EXPECT_DOUBLE_EQ(row.x2, 0.0) | EXPECT_EQ(row.source, ""fesa-default"")" "ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.StressResults().size(), 4U) | EXPECT_EQ(row.element, 0U) | EXPECT_EQ(row.gauss_point, static_cast(gauss + 1U)) | EXPECT_EQ(row.section_point, point + 1U) | EXPECT_DOUBLE_EQ(row.x1, section_points[point][0U]) | EXPECT_DOUBLE_EQ(row.x2, section_points[point][1U]) | EXPECT_EQ(row.source, ""input"") | ASSERT_TRUE(fesa::ResultRecovery::Recover( *default_fixture.model, *default_fixture.dofs, *default_fixture.stiffness, default_state) .IsOk()) | ASSERT_EQ(default_state.StressResults().size(), 2U) | EXPECT_EQ(row.section_point, 0U) | EXPECT_DOUBLE_EQ(row.x1, 0.0) | EXPECT_DOUBLE_EQ(row.x2, 0.0) | EXPECT_EQ(row.source, ""fesa-default"")" -Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.RequiresInteriorEndpointConsistencyWithoutAveraging ResultRecovery.RequiresInteriorEndpointConsistencyWithoutAveraging; assertion 10개 tests/unit/results/result_recovery_test.cpp ResultRecovery.RequiresInteriorEndpointConsistencyWithoutAveraging 유지 원문 검사 body 및 assertion 동일. aa4603901819c039277bbba8fe36bfcecb9264320ae115f7e9e2d4e6d873a1b1 aa4603901819c039277bbba8fe36bfcecb9264320ae115f7e9e2d4e6d873a1b1 ASSERT_TRUE(normalized.HasValue()) | ASSERT_EQ(normalized.Value().size(), 3U) | EXPECT_EQ(normalized.Value()[1U].representative_element, 0U) | EXPECT_DOUBLE_EQ(normalized.Value()[1U].section_resultant[0U], 5.0) | ASSERT_FALSE(mismatch.HasValue()) | ASSERT_FALSE(nonfinite.HasValue()) | ASSERT_FALSE(invalid_tolerance.HasValue()) | ASSERT_FALSE(loaded.HasValue()) | ASSERT_FALSE(reversed.HasValue()) | ASSERT_FALSE(jumped.HasValue()) ASSERT_TRUE(normalized.HasValue()) | ASSERT_EQ(normalized.Value().size(), 3U) | EXPECT_EQ(normalized.Value()[1U].representative_element, 0U) | EXPECT_DOUBLE_EQ(normalized.Value()[1U].section_resultant[0U], 5.0) | ASSERT_FALSE(mismatch.HasValue()) | ASSERT_FALSE(nonfinite.HasValue()) | ASSERT_FALSE(invalid_tolerance.HasValue()) | ASSERT_FALSE(loaded.HasValue()) | ASSERT_FALSE(reversed.HasValue()) | ASSERT_FALSE(jumped.HasValue()) -Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.RecoversShellRowsInStableElementAndGpOrder ResultRecovery.RecoversShellRowsInStableElementAndGpOrder; assertion 8개 tests/unit/results/result_recovery_test.cpp ResultRecovery.RecoversShellRowsInStableElementAndGpOrder 유지 원문 검사 body 및 assertion 동일. 9b8de6c23bd1314478b477a76540282c66318f375a6ea2d344cdf3521ba57569 9b8de6c23bd1314478b477a76540282c66318f375a6ea2d344cdf3521ba57569 ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(state.ShellResults().size(), 8U) | EXPECT_EQ(row.element, element) | EXPECT_EQ(row.location, locations[point]) | EXPECT_EQ(row.natural_coordinates, coordinates[point]) | EXPECT_EQ(row.local_frame, expected_frame) | EXPECT_NEAR(row.generalized_strain[component], expected_strain[component], 1.0e-12) | EXPECT_NEAR(row.section_resultant[component], expected_resultant[component], 1.0e-12) ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(state.ShellResults().size(), 8U) | EXPECT_EQ(row.element, element) | EXPECT_EQ(row.location, locations[point]) | EXPECT_EQ(row.natural_coordinates, coordinates[point]) | EXPECT_EQ(row.local_frame, expected_frame) | EXPECT_NEAR(row.generalized_strain[component], expected_strain[component], 1.0e-12) | EXPECT_NEAR(row.section_resultant[component], expected_resultant[component], 1.0e-12) -Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.RecoversDirectBottomMiddleTopShellStress ResultRecovery.RecoversDirectBottomMiddleTopShellStress; assertion 5개 tests/unit/results/result_recovery_test.cpp ResultRecovery.RecoversDirectBottomMiddleTopShellStress 유지 원문 검사 body 및 assertion 동일. b3e0100d6b0502831741ebd4ba7e572f405e0fa496e7a864df24df615e6a681a b3e0100d6b0502831741ebd4ba7e572f405e0fa496e7a864df24df615e6a681a ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_EQ(row.stress[position].position, positions[position]) | EXPECT_DOUBLE_EQ(row.stress[position].zeta, zeta[position]) | EXPECT_NEAR(row.stress[position].components[component], expected_stress[position][component], 1.0e-12) ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_EQ(row.stress[position].position, positions[position]) | EXPECT_DOUBLE_EQ(row.stress[position].zeta, zeta[position]) | EXPECT_NEAR(row.stress[position].components[component], expected_stress[position][component], 1.0e-12) -Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.SumsOnlyPhysicalShellEnergyInSourceOrder ResultRecovery.SumsOnlyPhysicalShellEnergyInSourceOrder; assertion 3개 tests/unit/results/result_recovery_test.cpp ResultRecovery.SumsOnlyPhysicalShellEnergyInSourceOrder 유지 원문 검사 body 및 assertion 동일. 00b5b24a4976ce98df0b3e5204d6c3e1295111aa571f737aa02b5c59d7b9c4d8 00b5b24a4976ce98df0b3e5204d6c3e1295111aa571f737aa02b5c59d7b9c4d8 ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | EXPECT_NEAR(state.PhysicalStrainEnergy(), 72.16, 1.0e-12) | EXPECT_GT(stabilized_energy, state.PhysicalStrainEnergy()) ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | EXPECT_NEAR(state.PhysicalStrainEnergy(), 72.16, 1.0e-12) | EXPECT_GT(stabilized_energy, state.PhysicalStrainEnergy()) -Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.KeepsFullResidualAndComputesGlobalShellEquilibrium ResultRecovery.KeepsFullResidualAndComputesGlobalShellEquilibrium; assertion 11개 tests/unit/results/result_recovery_test.cpp ResultRecovery.KeepsFullResidualAndComputesGlobalShellEquilibrium 유지 원문 검사 body 및 assertion 동일. 26ba2a3d96f0e02c4b251de544b76a99d82d3346023d01b17cf80133ca3c067e 26ba2a3d96f0e02c4b251de544b76a99d82d3346023d01b17cf80133ca3c067e ASSERT_TRUE(full_load.HasValue()) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_DOUBLE_EQ(state.InternalForce()[full_dof], 0.0) | EXPECT_DOUBLE_EQ(state.Residual()[full_dof], -state.ExternalForce()[full_dof]) | EXPECT_DOUBLE_EQ(state.Reaction()[full_dof], state.Residual()[full_dof]) | EXPECT_EQ(state.Equilibrium(), (std::array{0.0, 0.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{0.0, 0.0, 0.0})) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*free_fixture.model, *free_fixture.dofs, *free_fixture.stiffness, perturbed) .IsOk()) | EXPECT_GT(metric, 0.0) | EXPECT_LE(metric, 1.0e-10) ASSERT_TRUE(full_load.HasValue()) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_DOUBLE_EQ(state.InternalForce()[full_dof], 0.0) | EXPECT_DOUBLE_EQ(state.Residual()[full_dof], -state.ExternalForce()[full_dof]) | EXPECT_DOUBLE_EQ(state.Reaction()[full_dof], state.Residual()[full_dof]) | EXPECT_EQ(state.Equilibrium(), (std::array{0.0, 0.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{0.0, 0.0, 0.0})) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*free_fixture.model, *free_fixture.dofs, *free_fixture.stiffness, perturbed) .IsOk()) | EXPECT_GT(metric, 0.0) | EXPECT_LE(metric, 1.0e-10) -Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.UsesGlobalOriginForShellMomentBalance ResultRecovery.UsesGlobalOriginForShellMomentBalance; assertion 5개 tests/unit/results/result_recovery_test.cpp ResultRecovery.UsesGlobalOriginForShellMomentBalance 유지 원문 검사 body 및 assertion 동일. 91bda66039ec2ad9dd1d554d2fec6de249e3b4327105a883b94dc64877e091b5 91bda66039ec2ad9dd1d554d2fec6de249e3b4327105a883b94dc64877e091b5 ASSERT_TRUE(fesa::ResultRecovery::Recover( *centered_fixture.model, *centered_fixture.dofs, *centered_fixture.stiffness, centered) .IsOk()) | ASSERT_TRUE(fesa::ResultRecovery::Recover( *translated_fixture.model, *translated_fixture.dofs, *translated_fixture.stiffness, translated) .IsOk()) | EXPECT_NEAR(translated.Equilibrium()[component], centered_force[component], 1.0e-12) | EXPECT_NEAR(translated.Equilibrium()[3U + component] - centered.Equilibrium()[3U + component], translated_moment_delta[component], 5.0e-12) | EXPECT_GT(std::abs(translated_moment_delta[2U]), 1.0e-9) ASSERT_TRUE(fesa::ResultRecovery::Recover( *centered_fixture.model, *centered_fixture.dofs, *centered_fixture.stiffness, centered) .IsOk()) | ASSERT_TRUE(fesa::ResultRecovery::Recover( *translated_fixture.model, *translated_fixture.dofs, *translated_fixture.stiffness, translated) .IsOk()) | EXPECT_NEAR(translated.Equilibrium()[component], centered_force[component], 1.0e-12) | EXPECT_NEAR(translated.Equilibrium()[3U + component] - centered.Equilibrium()[3U + component], translated_moment_delta[component], 5.0e-12) | EXPECT_GT(std::abs(translated_moment_delta[2U]), 1.0e-9) -Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.UsesScaleAwareShellMetricsAndRejectsExcess ResultRecovery.UsesScaleAwareShellMetricsAndRejectsExcess; assertion 6개 tests/unit/results/result_recovery_test.cpp ResultRecovery.UsesScaleAwareShellMetricsAndRejectsExcess 유지 원문 검사 body 및 assertion 동일. 1a8b5c99778239402aa2e0e22d9f40513451781fbc64d04853b30ab367af26a9 1a8b5c99778239402aa2e0e22d9f40513451781fbc64d04853b30ab367af26a9 ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, subunit) .IsOk()) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, large) .IsOk()) | EXPECT_GT(subunit.VerificationMetrics()[metric], 0.0) | EXPECT_GT(large.VerificationMetrics()[metric], 0.0) | EXPECT_NEAR(subunit.VerificationMetrics()[metric], large.VerificationMetrics()[metric], 1.0e-13) | ASSERT_TRUE(unbalanced_stiffness.HasValue()) ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, subunit) .IsOk()) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, large) .IsOk()) | EXPECT_GT(subunit.VerificationMetrics()[metric], 0.0) | EXPECT_GT(large.VerificationMetrics()[metric], 0.0) | EXPECT_NEAR(subunit.VerificationMetrics()[metric], large.VerificationMetrics()[metric], 1.0e-13) | ASSERT_TRUE(unbalanced_stiffness.HasValue()) -Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.InvalidLaterShellLeavesEntirePriorStateUnchanged ResultRecovery.InvalidLaterShellLeavesEntirePriorStateUnchanged; assertion 15개 tests/unit/results/result_recovery_test.cpp ResultRecovery.InvalidLaterShellLeavesEntirePriorStateUnchanged 유지 원문 검사 body 및 assertion 동일. cdc079f64476222e15342ee83a53f02ad11ba110191fcc7b334c22cccd03aaba cdc079f64476222e15342ee83a53f02ad11ba110191fcc7b334c22cccd03aaba ASSERT_TRUE(fesa::ResultRecovery::Recover(*valid_fixture.model, *valid_fixture.dofs, *valid_fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 8U) | ASSERT_TRUE(zero_stiffness.HasValue()) | EXPECT_DOUBLE_EQ(state.InternalForce()[0U], 91.0) | EXPECT_DOUBLE_EQ(state.Residual()[0U], 92.0) | EXPECT_DOUBLE_EQ(state.Reaction()[0U], 93.0) | EXPECT_EQ(state.EndpointResults().size(), 1U) | ASSERT_EQ(state.ShellResults().size(), 8U) | EXPECT_EQ(state.ShellResults().front().element, prior_first_row.element) | EXPECT_EQ(state.ShellResults().front().location, prior_first_row.location) | EXPECT_EQ(state.ShellResults().front().generalized_strain, prior_first_row.generalized_strain) | EXPECT_EQ(state.ShellResults().front().section_resultant, prior_first_row.section_resultant) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior_energy) | EXPECT_EQ(state.Equilibrium(), prior_equilibrium) | EXPECT_EQ(state.VerificationMetrics(), prior_metrics) ASSERT_TRUE(fesa::ResultRecovery::Recover(*valid_fixture.model, *valid_fixture.dofs, *valid_fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 8U) | ASSERT_TRUE(zero_stiffness.HasValue()) | EXPECT_DOUBLE_EQ(state.InternalForce()[0U], 91.0) | EXPECT_DOUBLE_EQ(state.Residual()[0U], 92.0) | EXPECT_DOUBLE_EQ(state.Reaction()[0U], 93.0) | EXPECT_EQ(state.EndpointResults().size(), 1U) | ASSERT_EQ(state.ShellResults().size(), 8U) | EXPECT_EQ(state.ShellResults().front().element, prior_first_row.element) | EXPECT_EQ(state.ShellResults().front().location, prior_first_row.location) | EXPECT_EQ(state.ShellResults().front().generalized_strain, prior_first_row.generalized_strain) | EXPECT_EQ(state.ShellResults().front().section_resultant, prior_first_row.section_resultant) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior_energy) | EXPECT_EQ(state.Equilibrium(), prior_equilibrium) | EXPECT_EQ(state.VerificationMetrics(), prior_metrics) -Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.RealSolidPayloadFailsClosedAndPreservesLegacyState ResultRecovery.RealSolidPayloadFailsClosedAndPreservesLegacyState; assertion 9개 tests/unit/results/result_recovery_test.cpp ResultRecovery.RealSolidPayloadFailsClosedAndPreservesLegacyState 유지 원문 검사 body 및 assertion 동일. b141c6cecbdb1ae52c1c6d824f368ca38f6d56aef54f660dac80dd383e2dd22d b141c6cecbdb1ae52c1c6d824f368ca38f6d56aef54f660dac80dd383e2dd22d "ASSERT_TRUE(solid.HasValue()) | ASSERT_TRUE(recovered.HasValue()) | ASSERT_EQ(std::get(recovered.Value().payload) .rows.size(), 8U) | EXPECT_DOUBLE_EQ(state.Displacement()[0], 37.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[0], 19.0) | ASSERT_EQ(state.EndpointResults().size(), 2U) | EXPECT_DOUBLE_EQ(state.EndpointResults()[0].section_resultant[0], 11.0) | EXPECT_EQ(state.Identity().step_name, ""prior-step"") | EXPECT_EQ(state.Identity().frame_index, 9U)" "ASSERT_TRUE(solid.HasValue()) | ASSERT_TRUE(recovered.HasValue()) | ASSERT_EQ(std::get(recovered.Value().payload) .rows.size(), 8U) | EXPECT_DOUBLE_EQ(state.Displacement()[0], 37.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[0], 19.0) | ASSERT_EQ(state.EndpointResults().size(), 2U) | EXPECT_DOUBLE_EQ(state.EndpointResults()[0].section_resultant[0], 11.0) | EXPECT_EQ(state.Identity().step_name, ""prior-step"") | EXPECT_EQ(state.Identity().frame_index, 9U)" -Refactor tests/unit/results/result_recovery_test.cpp support@1-486 helper/oracle/fixture/include/static assertion 구간: RecoveryFixture, ShellRecoveryFixture, FakeRecoveryElement, if, FullNodeComponents, MakeRuntimeLayout, MakeFakeBeamBundle, MakeFakeShellBundle, ExpectVectorEqual, MakeShellFixture, MakeShellPhysicalState, MakeAxialEquilibriumState, for, MakePatchState, ExpectStatusCode, ExpectScaledNear, MakeStationRows tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eb7cc3528f2f1b6ff89196b0aa6af7976ed75a3e979be52ea96ad2bdc358192a 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/results/result_recovery_test.cpp support@536-537 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 212a78df598b1f4fe28beea4828a6b61a489b64fdcab0d4dac8e166621522216 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/results/result_recovery_test.cpp support@567-568 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 212a78df598b1f4fe28beea4828a6b61a489b64fdcab0d4dac8e166621522216 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/results/result_recovery_test.cpp support@873-874 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. be9695a1dfd710a92ce4bd7a28b2ff4722998e936a18a40b7ad3b0924d6db21b 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/results/result_recovery_test.cpp support@922-923 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5b2f4ea71173df2f4c511be4321417651647b1f1d79e724c3bd99c3dc2ab8106 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/results/result_recovery_test.cpp support@950-951 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 77d8fb9f45d9b90eb930d818340de8b1fd2f4478fc8093bfbdeb0303184ca57f 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/results/result_recovery_test.cpp support@970-971 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 685f08a7676bc65e1f3c60ee0bba4f30043ab66b05381db014971b3a9376382e 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/results/result_recovery_test.cpp support@1014-1015 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. edf7cabe953adfaded5d4481da649c54147c680bae27dfe27563b87d850789f0 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/results/result_recovery_test.cpp support@1058-1059 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 685f08a7676bc65e1f3c60ee0bba4f30043ab66b05381db014971b3a9376382e 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/results/result_recovery_test.cpp support@1108-1109 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fa11ba7d5f866feb0c6e224aba5f382047c5f0c223ccedf90498730c1edf3fe8 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/results/results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/results/results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. afa4f1287a951645a1e9bd2c4cc5cb8603615670944362cf89f3780befd82dee afa4f1287a951645a1e9bd2c4cc5cb8603615670944362cf89f3780befd82dee 해당 없음 해당 없음 -Refactor tests/unit/results/results_writer_test.cpp PreparedResultsWriter.RoutesValueOutcomesAndPreservesWriterFailure PreparedResultsWriter.RoutesValueOutcomesAndPreservesWriterFailure; assertion 23개 tests/unit/results/results_writer_test.cpp PreparedResultsWriter.RoutesValueOutcomesAndPreservesWriterFailure 유지 원문 검사 body 및 assertion 동일. dc1caacf100a0b5668cc768a1f63a959e0b005e04c2b3a66d5dd0e103e355fa8 dc1caacf100a0b5668cc768a1f63a959e0b005e04c2b3a66d5dd0e103e355fa8 "ASSERT_TRUE(domain.HasValue()) | ASSERT_EQ(outcomes.size(), families.size()) | ASSERT_EQ(calls.families.size(), index + 1U) | EXPECT_EQ(calls.families.back(), families[index]) | EXPECT_EQ(calls.paths.back(), &output) | EXPECT_EQ(calls.domains.back(), &domain.Value()) | EXPECT_EQ(calls.diagnostics.back(), &diagnostics) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""candidate-close-failure"") | EXPECT_EQ(status.Diagnostics()[0U].location.file, ""source.inp"") | EXPECT_EQ(status.Diagnostics()[0U].location.line, 7U) | EXPECT_EQ(status.Diagnostics()[0U].keyword, ""WRITER"") | EXPECT_EQ(status.Diagnostics()[0U].entity_identity, ""0007"") | EXPECT_EQ(status.Diagnostics()[0U].message, ""Preserved writer failure."") | EXPECT_EQ(linear.received, &std::get(outcomes[0U]).state) | EXPECT_EQ(nonlinear.received, &std::get(outcomes[1U]).state) | EXPECT_EQ(eigen.received, &std::get(outcomes[2U])) | EXPECT_EQ(dynamic.received, &std::get(outcomes[3U]).state) | EXPECT_EQ(thermal.received, nullptr) | EXPECT_EQ(solid.static_state, &std::get(outcomes[4U]).state) | EXPECT_EQ(solid.frequency_state, &std::get(outcomes[5U])) | EXPECT_EQ(solid.dynamic_state, &std::get(outcomes[6U]).state)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_EQ(outcomes.size(), families.size()) | ASSERT_EQ(calls.families.size(), index + 1U) | EXPECT_EQ(calls.families.back(), families[index]) | EXPECT_EQ(calls.paths.back(), &output) | EXPECT_EQ(calls.domains.back(), &domain.Value()) | EXPECT_EQ(calls.diagnostics.back(), &diagnostics) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""candidate-close-failure"") | EXPECT_EQ(status.Diagnostics()[0U].location.file, ""source.inp"") | EXPECT_EQ(status.Diagnostics()[0U].location.line, 7U) | EXPECT_EQ(status.Diagnostics()[0U].keyword, ""WRITER"") | EXPECT_EQ(status.Diagnostics()[0U].entity_identity, ""0007"") | EXPECT_EQ(status.Diagnostics()[0U].message, ""Preserved writer failure."") | EXPECT_EQ(linear.received, &std::get(outcomes[0U]).state) | EXPECT_EQ(nonlinear.received, &std::get(outcomes[1U]).state) | EXPECT_EQ(eigen.received, &std::get(outcomes[2U])) | EXPECT_EQ(dynamic.received, &std::get(outcomes[3U]).state) | EXPECT_EQ(thermal.received, nullptr) | EXPECT_EQ(solid.static_state, &std::get(outcomes[4U]).state) | EXPECT_EQ(solid.frequency_state, &std::get(outcomes[5U])) | EXPECT_EQ(solid.dynamic_state, &std::get(outcomes[6U]).state)" -Refactor tests/unit/results/results_writer_test.cpp PreparedResultsWriter.MissingOptionalAdapterInvokesNoOtherWriter PreparedResultsWriter.MissingOptionalAdapterInvokesNoOtherWriter; assertion 7개 tests/unit/results/results_writer_test.cpp PreparedResultsWriter.MissingOptionalAdapterInvokesNoOtherWriter 유지 원문 검사 body 및 assertion 동일. b58ff6083f8ee297078a9bfbb93213d9d3cae595f93137da6141e772c5b5f537 b58ff6083f8ee297078a9bfbb93213d9d3cae595f93137da6141e772c5b5f537 ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, codes[index - 3U]) | EXPECT_EQ(status.Diagnostics()[0U].keyword, keywords[index - 3U]) | EXPECT_TRUE(calls.families.empty()) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, codes[index - 3U]) | EXPECT_EQ(status.Diagnostics()[0U].keyword, keywords[index - 3U]) | EXPECT_TRUE(calls.families.empty()) -Refactor tests/unit/results/results_writer_test.cpp support@1-133 helper/oracle/fixture/include/static assertion 구간: namespace, WriterCalls, Record, Writer, State, RecordingWriter, RecordingSolidWriter, EmptyOutcomes tests/unit/results/results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e1cd9f67666ffb3a9e533fc56adbe649df4861080460e9cd8208f22c8891a4fb 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 34개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eaebae0e4350e20ce66e07f762b7d2c867a06db4ad89afaac90c92bfc1d4ca61 eaebae0e4350e20ce66e07f762b7d2c867a06db4ad89afaac90c92bfc1d4ca61 해당 없음 해당 없음 -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.SolvesN1AndRetainsBackendEvidence MklFeastEigenSolver.SolvesN1AndRetainsBackendEvidence; assertion 19개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.SolvesN1AndRetainsBackendEvidence 유지 원문 검사 body 및 assertion 동일. a5e6952b5e691cd318758a58e51cc8c0cadbf6992466d2919582d812f7efc0fa a5e6952b5e691cd318758a58e51cc8c0cadbf6992466d2919582d812f7efc0fa "EXPECT_EQ(result.Value().requested_modes, 1U) | ASSERT_EQ(result.Value().eigenvalues.size(), 1U) | EXPECT_NEAR(result.Value().eigenvalues[0U], 4.0, 1.0e-10) | EXPECT_DOUBLE_EQ(result.Value().operator_scale, 4.0) | EXPECT_EQ(result.Value().eigenvectors.Rows(), 1U) | EXPECT_EQ(result.Value().eigenvectors.Columns(), 1U) | EXPECT_EQ(result.Value().thread_count, 1U) | ASSERT_EQ(result.Value().base_fpm.size(), 128U) | EXPECT_EQ(result.Value().base_fpm[5U], 0) | ASSERT_FALSE(result.Value().backend_calls.empty()) | EXPECT_EQ(result.Value().backend_calls.front().purpose, ""total-enclosure"") | EXPECT_EQ(result.Value().backend_calls.back().kind, ""solve"") | EXPECT_TRUE(result.Value().backend_calls.back().count_available) | EXPECT_EQ(result.Value().backend_calls.back().count, result.Value().eigenvalues.size()) | EXPECT_TRUE(result.Value().backend_calls.back().loop_available) | EXPECT_TRUE(result.Value().backend_calls.back().epsout_available) | EXPECT_EQ(result.Value().backend_calls.back().outcome, ""accepted"") | EXPECT_EQ(result.Value().backend_calls.back().decision_reason, ""accepted"") | EXPECT_FALSE(result.Value().upper_search_termination.empty())" "EXPECT_EQ(result.Value().requested_modes, 1U) | ASSERT_EQ(result.Value().eigenvalues.size(), 1U) | EXPECT_NEAR(result.Value().eigenvalues[0U], 4.0, 1.0e-10) | EXPECT_DOUBLE_EQ(result.Value().operator_scale, 4.0) | EXPECT_EQ(result.Value().eigenvectors.Rows(), 1U) | EXPECT_EQ(result.Value().eigenvectors.Columns(), 1U) | EXPECT_EQ(result.Value().thread_count, 1U) | ASSERT_EQ(result.Value().base_fpm.size(), 128U) | EXPECT_EQ(result.Value().base_fpm[5U], 0) | ASSERT_FALSE(result.Value().backend_calls.empty()) | EXPECT_EQ(result.Value().backend_calls.front().purpose, ""total-enclosure"") | EXPECT_EQ(result.Value().backend_calls.back().kind, ""solve"") | EXPECT_TRUE(result.Value().backend_calls.back().count_available) | EXPECT_EQ(result.Value().backend_calls.back().count, result.Value().eigenvalues.size()) | EXPECT_TRUE(result.Value().backend_calls.back().loop_available) | EXPECT_TRUE(result.Value().backend_calls.back().epsout_available) | EXPECT_EQ(result.Value().backend_calls.back().outcome, ""accepted"") | EXPECT_EQ(result.Value().backend_calls.back().decision_reason, ""accepted"") | EXPECT_FALSE(result.Value().upper_search_termination.empty())" -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.SolvesAllZeroWithExplicitPhysicalScale MklFeastEigenSolver.SolvesAllZeroWithExplicitPhysicalScale; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.SolvesAllZeroWithExplicitPhysicalScale 유지 원문 검사 body 및 assertion 동일. 9132a899409f4f8bb3a08c9f5c18c3f0ff1a4857bf1f98571340163e4553f691 9132a899409f4f8bb3a08c9f5c18c3f0ff1a4857bf1f98571340163e4553f691 ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_DOUBLE_EQ(result.Value().operator_scale, 7.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[0U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[1U], 0.0) ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_DOUBLE_EQ(result.Value().operator_scale, 7.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[0U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[1U], 0.0) -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesRepeatedMultiplicityAndStableOrder MklFeastEigenSolver.PreservesRepeatedMultiplicityAndStableOrder; assertion 8개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesRepeatedMultiplicityAndStableOrder 유지 원문 검사 body 및 assertion 동일. 569416623ee5b90db9c898f92f589b8eb7bda065baaf7f777feb8245b14f19a8 569416623ee5b90db9c898f92f589b8eb7bda065baaf7f777feb8245b14f19a8 ASSERT_EQ(first.Value().eigenvalues.size(), 3U) | EXPECT_NEAR(first.Value().eigenvalues[0U], 2.0, 1.0e-10) | EXPECT_NEAR(first.Value().eigenvalues[1U], 2.0, 1.0e-10) | EXPECT_NEAR(first.Value().eigenvalues[2U], 5.0, 1.0e-10) | EXPECT_EQ(first.Value().column_ids, second.Value().column_ids) | EXPECT_EQ(first.Value().column_ids, third.Value().column_ids) | EXPECT_EQ(first.Value().eigenvalues, second.Value().eigenvalues) | EXPECT_EQ(first.Value().eigenvalues, third.Value().eigenvalues) ASSERT_EQ(first.Value().eigenvalues.size(), 3U) | EXPECT_NEAR(first.Value().eigenvalues[0U], 2.0, 1.0e-10) | EXPECT_NEAR(first.Value().eigenvalues[1U], 2.0, 1.0e-10) | EXPECT_NEAR(first.Value().eigenvalues[2U], 5.0, 1.0e-10) | EXPECT_EQ(first.Value().column_ids, second.Value().column_ids) | EXPECT_EQ(first.Value().column_ids, third.Value().column_ids) | EXPECT_EQ(first.Value().eigenvalues, second.Value().eigenvalues) | EXPECT_EQ(first.Value().eigenvalues, third.Value().eigenvalues) -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.UsesGuardedPrefixWithoutDroppingRepeatedCluster MklFeastEigenSolver.UsesGuardedPrefixWithoutDroppingRepeatedCluster; assertion 6개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.UsesGuardedPrefixWithoutDroppingRepeatedCluster 유지 원문 검사 body 및 assertion 동일. 56315bd7fccef615e71cc32988f93ec30232ca90502bf20c0402180d597c0685 56315bd7fccef615e71cc32988f93ec30232ca90502bf20c0402180d597c0685 "EXPECT_GE(one_mode.Value().eigenvalues.size(), 40U) | EXPECT_GE(forty_first.Value().eigenvalues.size(), 41U) | EXPECT_NEAR(one_mode.Value().eigenvalues[index], 1.0, 1.0e-10) | EXPECT_NEAR(forty_first.Value().eigenvalues[40U], 2.0, 1.0e-10) | EXPECT_EQ(one_mode.Value().backend_calls.back().kind, ""solve"") | EXPECT_EQ(forty_first.Value().backend_calls.back().kind, ""solve"")" "EXPECT_GE(one_mode.Value().eigenvalues.size(), 40U) | EXPECT_GE(forty_first.Value().eigenvalues.size(), 41U) | EXPECT_NEAR(one_mode.Value().eigenvalues[index], 1.0, 1.0e-10) | EXPECT_NEAR(forty_first.Value().eigenvalues[40U], 2.0, 1.0e-10) | EXPECT_EQ(one_mode.Value().backend_calls.back().kind, ""solve"") | EXPECT_EQ(forty_first.Value().backend_calls.back().kind, ""solve"")" -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsSignificantNegativeSpectrum MklFeastEigenSolver.RejectsSignificantNegativeSpectrum; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsSignificantNegativeSpectrum 유지 원문 검사 body 및 assertion 동일. 0c5373e53f768aa91e99580e4d48e737a8b3ed32c98f141d8c4d2faa02a523d6 0c5373e53f768aa91e99580e4d48e737a8b3ed32c98f141d8c4d2faa02a523d6 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""negative-eigenvalue-spectrum"")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""negative-eigenvalue-spectrum"")" -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.KeepsCloseDistinctModesSeparated MklFeastEigenSolver.KeepsCloseDistinctModesSeparated; assertion 5개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.KeepsCloseDistinctModesSeparated 유지 원문 검사 body 및 assertion 동일. 14aacceeae53faa7a062beccd27707e37541fd4a20e7ccd64ad38f6bbacf57f0 14aacceeae53faa7a062beccd27707e37541fd4a20e7ccd64ad38f6bbacf57f0 ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(result.Value().eigenvalues[0U], 1.0, 1.0e-10) | EXPECT_NEAR(result.Value().eigenvalues[1U], 1.001, 1.0e-10) | EXPECT_NEAR(std::abs(result.Value().eigenvectors(0U, 0U)), 1.0, 1.0e-10) | EXPECT_NEAR(std::abs(result.Value().eigenvectors(1U, 1U)), 1.0, 1.0e-10) ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(result.Value().eigenvalues[0U], 1.0, 1.0e-10) | EXPECT_NEAR(result.Value().eigenvalues[1U], 1.001, 1.0e-10) | EXPECT_NEAR(std::abs(result.Value().eigenvectors(0U, 0U)), 1.0, 1.0e-10) | EXPECT_NEAR(std::abs(result.Value().eigenvectors(1U, 1U)), 1.0, 1.0e-10) -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RestoresCallingThreadLocalSetting MklFeastEigenSolver.RestoresCallingThreadLocalSetting; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RestoresCallingThreadLocalSetting 유지 원문 검사 body 및 assertion 동일. 83ad3e485cd51a75937fe2c31aa9ca90a33b7dddd67acdfeea5e2c8b21a3bb7f 83ad3e485cd51a75937fe2c31aa9ca90a33b7dddd67acdfeea5e2c8b21a3bb7f EXPECT_EQ(restored, 2) EXPECT_EQ(restored, 2) -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsInvalidRequestAndZeroScale MklFeastEigenSolver.RejectsInvalidRequestAndZeroScale; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsInvalidRequestAndZeroScale 유지 원문 검사 body 및 assertion 동일. 8689fda7e7994805ac76572196bc34cf736664e5b643b71233cacc3e6a29d13b 8689fda7e7994805ac76572196bc34cf736664e5b643b71233cacc3e6a29d13b "ASSERT_FALSE(zero_request.HasValue()) | EXPECT_EQ(zero_request.GetStatus().Diagnostics()[0U].code, ""feast-invalid-dimension"") | ASSERT_FALSE(invalid_scale.HasValue()) | EXPECT_EQ(invalid_scale.GetStatus().Diagnostics()[0U].code, ""feast-invalid-zero-scale"")" "ASSERT_FALSE(zero_request.HasValue()) | EXPECT_EQ(zero_request.GetStatus().Diagnostics()[0U].code, ""feast-invalid-dimension"") | ASSERT_FALSE(invalid_scale.HasValue()) | EXPECT_EQ(invalid_scale.GetStatus().Diagnostics()[0U].code, ""feast-invalid-zero-scale"")" -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesLowestPrefixForZeroAndPositiveSpectra MklFeastEigenSolver.PreservesLowestPrefixForZeroAndPositiveSpectra; assertion 3개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesLowestPrefixForZeroAndPositiveSpectra 유지 원문 검사 body 및 assertion 동일. aa89c5b6a3123bea8bd03219a4334166bf4f607ff70abfab02cb536b18768f5d aa89c5b6a3123bea8bd03219a4334166bf4f607ff70abfab02cb536b18768f5d ASSERT_TRUE(result.HasValue()) | ASSERT_GE(result.Value().eigenvalues.size(), requested) | EXPECT_NEAR(result.Value().eigenvalues[i], spectrum[i], 1e-10) ASSERT_TRUE(result.HasValue()) | ASSERT_GE(result.Value().eigenvalues.size(), requested) | EXPECT_NEAR(result.Value().eigenvalues[i], spectrum[i], 1e-10) -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.ResolvesCloseDistinctSpectrumAfterGivensCongruence MklFeastEigenSolver.ResolvesCloseDistinctSpectrumAfterGivensCongruence; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.ResolvesCloseDistinctSpectrumAfterGivensCongruence 유지 원문 검사 body 및 assertion 동일. b173141930f9c7d787cee4d5715c4f4fcf346e6fe947e9e8b1fa60784764641d b173141930f9c7d787cee4d5715c4f4fcf346e6fe947e9e8b1fa60784764641d ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().eigenvalues.size(), 4U) | EXPECT_NEAR(result.Value().eigenvalues[i], spectrum[i], 1e-12) | EXPECT_GT(result.Value().eigenvalues[1U] - result.Value().eigenvalues[0U], 1e-9) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().eigenvalues.size(), 4U) | EXPECT_NEAR(result.Value().eigenvalues[i], spectrum[i], 1e-12) | EXPECT_GT(result.Value().eigenvalues[1U] - result.Value().eigenvalues[0U], 1e-9) -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsFatalCountStatusWithoutRetry MklFeastEigenSolver.RejectsFatalCountStatusWithoutRetry; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsFatalCountStatusWithoutRetry 유지 원문 검사 body 및 assertion 동일. 23ef85953cd9408cae46249383f429500ae4234067387d6c8d0a3aa9eb5b96bf 23ef85953cd9408cae46249383f429500ae4234067387d6c8d0a3aa9eb5b96bf EXPECT_EQ(hook_calls, 1U) EXPECT_EQ(hook_calls, 1U) -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.BoundsCountCallsAndUpperSearchReservations MklFeastEigenSolver.BoundsCountCallsAndUpperSearchReservations; assertion 6개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.BoundsCountCallsAndUpperSearchReservations 유지 원문 검사 body 및 assertion 동일. 2e3d9cc28ce1c4d1909d0afc2950f88e8be5ba66d8f4344829561fe06601e8ca 2e3d9cc28ce1c4d1909d0afc2950f88e8be5ba66d8f4344829561fe06601e8ca EXPECT_TRUE(fesa::internal::CanCallFeast(511U)) | EXPECT_FALSE(fesa::internal::CanCallFeast(512U)) | EXPECT_FALSE(fesa::internal::CanCallFeast(kMaximum)) | EXPECT_TRUE(fesa::internal::CanStartUpperCandidate(363U)) | EXPECT_FALSE(fesa::internal::CanStartUpperCandidate(364U)) | EXPECT_FALSE(fesa::internal::CanStartUpperCandidate(kMaximum)) EXPECT_TRUE(fesa::internal::CanCallFeast(511U)) | EXPECT_FALSE(fesa::internal::CanCallFeast(512U)) | EXPECT_FALSE(fesa::internal::CanCallFeast(kMaximum)) | EXPECT_TRUE(fesa::internal::CanStartUpperCandidate(363U)) | EXPECT_FALSE(fesa::internal::CanStartUpperCandidate(364U)) | EXPECT_FALSE(fesa::internal::CanStartUpperCandidate(kMaximum)) -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.BoundsPrivateWorkspaceProductsBeforeAllocation MklFeastEigenSolver.BoundsPrivateWorkspaceProductsBeforeAllocation; assertion 7개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.BoundsPrivateWorkspaceProductsBeforeAllocation 유지 원문 검사 body 및 assertion 동일. 69110366294c0c4a271e8295fa2352576136369334a1db1c9346511d5496e742 69110366294c0c4a271e8295fa2352576136369334a1db1c9346511d5496e742 EXPECT_TRUE(fesa::internal::ProductFits(0U, kMaximum)) | EXPECT_TRUE(fesa::internal::ProductFits(1U, kMaximum)) | EXPECT_FALSE(fesa::internal::ProductFits(kMaximum, 2U)) | EXPECT_TRUE(fesa::internal::FitsDoubleStorage(0U)) | EXPECT_TRUE(fesa::internal::FitsDoubleStorage(storage_limit)) | EXPECT_FALSE(fesa::internal::FitsDoubleStorage(kMaximum)) | EXPECT_FALSE(fesa::internal::FitsDoubleStorage(storage_limit + 1U)) EXPECT_TRUE(fesa::internal::ProductFits(0U, kMaximum)) | EXPECT_TRUE(fesa::internal::ProductFits(1U, kMaximum)) | EXPECT_FALSE(fesa::internal::ProductFits(kMaximum, 2U)) | EXPECT_TRUE(fesa::internal::FitsDoubleStorage(0U)) | EXPECT_TRUE(fesa::internal::FitsDoubleStorage(storage_limit)) | EXPECT_FALSE(fesa::internal::FitsDoubleStorage(kMaximum)) | EXPECT_FALSE(fesa::internal::FitsDoubleStorage(storage_limit + 1U)) -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.TranslatesCountWorkspaceAllocationFailure MklFeastEigenSolver.TranslatesCountWorkspaceAllocationFailure; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.TranslatesCountWorkspaceAllocationFailure 유지 원문 검사 body 및 assertion 동일. 6653c1ccf3f12cf12023f4ed701c5a2dc2eac565ab6e4ab2da403e6f3a9dae65 6653c1ccf3f12cf12023f4ed701c5a2dc2eac565ab6e4ab2da403e6f3a9dae65 해당 없음 해당 없음 -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.TranslatesSolveWorkspaceAllocationFailure MklFeastEigenSolver.TranslatesSolveWorkspaceAllocationFailure; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.TranslatesSolveWorkspaceAllocationFailure 유지 원문 검사 body 및 assertion 동일. e6817b904d15200de1dc8c70b40668142140bdc4adb47c239509b16c4f911842 e6817b904d15200de1dc8c70b40668142140bdc4adb47c239509b16c4f911842 해당 없음 해당 없음 -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.StopsInitialInfoOneAfterThreeCountCalls MklFeastEigenSolver.StopsInitialInfoOneAfterThreeCountCalls; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.StopsInitialInfoOneAfterThreeCountCalls 유지 원문 검사 body 및 assertion 동일. 10672f977ec5bdc9692c2dfabec9acb4435e639b18d49cc197a2ccea7b53ff97 10672f977ec5bdc9692c2dfabec9acb4435e639b18d49cc197a2ccea7b53ff97 EXPECT_EQ(count_calls, 3U) EXPECT_EQ(count_calls, 3U) -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsFinalCountHistoryMismatch MklFeastEigenSolver.RejectsFinalCountHistoryMismatch; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsFinalCountHistoryMismatch 유지 원문 검사 body 및 assertion 동일. caea386d5db1999417f7d1140ee543ea3a5cd1398399815033afd2f1b45ebcd6 caea386d5db1999417f7d1140ee543ea3a5cd1398399815033afd2f1b45ebcd6 해당 없음 해당 없음 -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsDecreasingCountAcrossDistinctUpperGuards MklFeastEigenSolver.RejectsDecreasingCountAcrossDistinctUpperGuards; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsDecreasingCountAcrossDistinctUpperGuards 유지 원문 검사 body 및 assertion 동일. 1c401c1682daa62d7105287575a7eac825c905e53825c3ea124477f3a823be7b 1c401c1682daa62d7105287575a7eac825c905e53825c3ea124477f3a823be7b 해당 없음 해당 없음 -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesRawNegativeBoundaryAndRejectsBelowIt MklFeastEigenSolver.PreservesRawNegativeBoundaryAndRejectsBelowIt; assertion 5개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesRawNegativeBoundaryAndRejectsBelowIt 유지 원문 검사 body 및 assertion 동일. b6c6927ededce6c56a882de187bb35bbfa8c258b533098f90c7e54e6f0d5a324 b6c6927ededce6c56a882de187bb35bbfa8c258b533098f90c7e54e6f0d5a324 ASSERT_EQ(outputs.eigenvalues.size(), 3U) | ASSERT_EQ(result.Value().eigenvalues.size(), 3U) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[0U], negative) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[1U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[2U], 1.0) ASSERT_EQ(outputs.eigenvalues.size(), 3U) | ASSERT_EQ(result.Value().eigenvalues.size(), 3U) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[0U], negative) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[1U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[2U], 1.0) -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.DoesNotRepeatUnchangedSolveAfterReturnedMismatch MklFeastEigenSolver.DoesNotRepeatUnchangedSolveAfterReturnedMismatch; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.DoesNotRepeatUnchangedSolveAfterReturnedMismatch 유지 원문 검사 body 및 assertion 동일. bdfe92002dfd17522f8dd7038fd290fbe28018d76ea65976ca086695a056b013 bdfe92002dfd17522f8dd7038fd290fbe28018d76ea65976ca086695a056b013 EXPECT_EQ(solve_calls, 1U) EXPECT_EQ(solve_calls, 1U) -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RetriesSolveInfoTwoOnlyWithLargerInterval MklFeastEigenSolver.RetriesSolveInfoTwoOnlyWithLargerInterval; assertion 2개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RetriesSolveInfoTwoOnlyWithLargerInterval 유지 원문 검사 body 및 assertion 동일. bdab428a83baf0a5524548d01ca60a6c4b4383aad9358a756131de3b356e0d5a bdab428a83baf0a5524548d01ca60a6c4b4383aad9358a756131de3b356e0d5a ASSERT_EQ(solve_uppers.size(), 2U) | EXPECT_LT(solve_uppers[0U], solve_uppers[1U]) ASSERT_EQ(solve_uppers.size(), 2U) | EXPECT_LT(solve_uppers[0U], solve_uppers[1U]) -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsNonfiniteSolveOutputWithoutRetry MklFeastEigenSolver.RejectsNonfiniteSolveOutputWithoutRetry; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsNonfiniteSolveOutputWithoutRetry 유지 원문 검사 body 및 assertion 동일. 53d5c4a3981593c4552579e14bee4aaf3fd5e74c49b9fc74df3191bd3be660ad 53d5c4a3981593c4552579e14bee4aaf3fd5e74c49b9fc74df3191bd3be660ad EXPECT_EQ(solve_calls, 1U) EXPECT_EQ(solve_calls, 1U) -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsResidualFailureWithoutSolveRetry MklFeastEigenSolver.RejectsResidualFailureWithoutSolveRetry; assertion 2개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsResidualFailureWithoutSolveRetry 유지 원문 검사 body 및 assertion 동일. 5a606ee1a05bafe19f30255199a3379d849a730c837ae9e2d5b53c4a26c4aa91 5a606ee1a05bafe19f30255199a3379d849a730c837ae9e2d5b53c4a26c4aa91 "EXPECT_NE(result.GetStatus().Diagnostics().front().message.find( ""Independent whitened residual exceeds""), std::string::npos) | EXPECT_EQ(solve_calls, 1U)" "EXPECT_NE(result.GetStatus().Diagnostics().front().message.find( ""Independent whitened residual exceeds""), std::string::npos) | EXPECT_EQ(solve_calls, 1U)" -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsNonfiniteVectorAndEpsoutWithoutRetry MklFeastEigenSolver.RejectsNonfiniteVectorAndEpsoutWithoutRetry; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsNonfiniteVectorAndEpsoutWithoutRetry 유지 원문 검사 body 및 assertion 동일. 12662d8693c0d8389fc39fd1558d7d26688e89a1d30ccb5cd7ace90035fe7f3f 12662d8693c0d8389fc39fd1558d7d26688e89a1d30ccb5cd7ace90035fe7f3f EXPECT_EQ(solve_calls, 1U) EXPECT_EQ(solve_calls, 1U) -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsGramFailureWithoutSolveRetry MklFeastEigenSolver.RejectsGramFailureWithoutSolveRetry; assertion 2개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsGramFailureWithoutSolveRetry 유지 원문 검사 body 및 assertion 동일. 8e1f6270e69957b1ff42bd0c5c39722bbf98eb6392b7c4dea913ace4f900787a 8e1f6270e69957b1ff42bd0c5c39722bbf98eb6392b7c4dea913ace4f900787a ASSERT_EQ(outputs.vectors.size(), 4U) | EXPECT_EQ(solve_calls, 1U) ASSERT_EQ(outputs.vectors.size(), 4U) | EXPECT_EQ(solve_calls, 1U) -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.UsesCertifiedEnclosureAfterOptionalInfoOne MklFeastEigenSolver.UsesCertifiedEnclosureAfterOptionalInfoOne; assertion 3개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.UsesCertifiedEnclosureAfterOptionalInfoOne 유지 원문 검사 body 및 assertion 동일. 9cf4debc6123a3d0b3c8e8be2d275202c80cc9698fdc2583b3d3038995a98c3a 9cf4debc6123a3d0b3c8e8be2d275202c80cc9698fdc2583b3d3038995a98c3a "EXPECT_EQ(result.Value().upper_search_termination, ""optional-status"") | ASSERT_GE(result.Value().backend_calls.size(), 2U) | EXPECT_EQ(result.Value().backend_calls[1U].outcome, ""optional-abandoned"")" "EXPECT_EQ(result.Value().upper_search_termination, ""optional-status"") | ASSERT_GE(result.Value().backend_calls.size(), 2U) | EXPECT_EQ(result.Value().backend_calls[1U].outcome, ""optional-abandoned"")" -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.GenuineNonDiagonalMassPencil MklFeastGeneralized.GenuineNonDiagonalMassPencil; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.GenuineNonDiagonalMassPencil 유지 원문 검사 body 및 assertion 동일. 72baededa1bfdef264afcc9f4314a0886488e2c44bfe259c7ca37bfdb7de2118 72baededa1bfdef264afcc9f4314a0886488e2c44bfe259c7ca37bfdb7de2118 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(result.Value().eigenvalues[0], 8.0 / 3.0, 1e-11) | EXPECT_NEAR(result.Value().eigenvalues[1], 4.0, 1e-11) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(result.Value().eigenvalues[0], 8.0 / 3.0, 1e-11) | EXPECT_NEAR(result.Value().eigenvalues[1], 4.0, 1e-11) -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.RejectsIndefiniteMassAndInvalidBound MklFeastGeneralized.RejectsIndefiniteMassAndInvalidBound; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.RejectsIndefiniteMassAndInvalidBound 유지 원문 검사 body 및 assertion 동일. 5e8a9f7f9837fd0d117abee37fc9630d32c9c751a38c6163015a164f6b405ac3 5e8a9f7f9837fd0d117abee37fc9630d32c9c751a38c6163015a164f6b405ac3 해당 없음 해당 없음 -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.ValidatesPairsBeyondRequestedPrefix MklFeastGeneralized.ValidatesPairsBeyondRequestedPrefix; assertion 2개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.ValidatesPairsBeyondRequestedPrefix 유지 원문 검사 body 및 assertion 동일. 7f4b3d16aa4060b46421f1418006fddc70e34df70fd0d5e6186a7ca38a9e0841 7f4b3d16aa4060b46421f1418006fddc70e34df70fd0d5e6186a7ca38a9e0841 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().eigenvalues.size(), 3U) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().eigenvalues.size(), 3U) -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.RejectsCorruptUnselectedDirectionAndFatalCount MklFeastGeneralized.RejectsCorruptUnselectedDirectionAndFatalCount; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.RejectsCorruptUnselectedDirectionAndFatalCount 유지 원문 검사 body 및 assertion 동일. eefa09383f9cc94be8f9bf448ec69929396275705094abb5fa2355aeb2251473 eefa09383f9cc94be8f9bf448ec69929396275705094abb5fa2355aeb2251473 "EXPECT_NE( result.GetStatus().Diagnostics()[0].message.find(""Backend calls=""), std::string::npos)" "EXPECT_NE( result.GetStatus().Diagnostics()[0].message.find(""Backend calls=""), std::string::npos)" -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.LowestPrefixPreservesRepeatedBoundary MklFeastGeneralized.LowestPrefixPreservesRepeatedBoundary; assertion 3개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.LowestPrefixPreservesRepeatedBoundary 유지 원문 검사 body 및 assertion 동일. 2019942540740122b91b048dbd378523a47a784cfe5f3b959078ebad7131af05 2019942540740122b91b048dbd378523a47a784cfe5f3b959078ebad7131af05 ASSERT_TRUE(result.HasValue()) | ASSERT_GE(result.Value().eigenvalues.size(), 5U) | EXPECT_NEAR(result.Value().eigenvalues[i], 1.0, 1e-11) ASSERT_TRUE(result.HasValue()) | ASSERT_GE(result.Value().eigenvalues.size(), 5U) | EXPECT_NEAR(result.Value().eigenvalues[i], 1.0, 1e-11) -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.AllocationAndCountMismatchFailClosed MklFeastGeneralized.AllocationAndCountMismatchFailClosed; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.AllocationAndCountMismatchFailClosed 유지 원문 검사 body 및 assertion 동일. 1271827bfda37b6a706c22d62f642e48bdc6e3435a5bde4f99371889c0656158 1271827bfda37b6a706c22d62f642e48bdc6e3435a5bde4f99371889c0656158 해당 없음 해당 없음 -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.GeneralizedRetryRetainsCertifiedCountTrace MklFeastGeneralized.GeneralizedRetryRetainsCertifiedCountTrace; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.GeneralizedRetryRetainsCertifiedCountTrace 유지 원문 검사 body 및 assertion 동일. 658084530e78efa037f951551979e1681c86fa168014db6a798207bfee031bcf 658084530e78efa037f951551979e1681c86fa168014db6a798207bfee031bcf ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(injected) | EXPECT_NEAR(result.Value().eigenvalues[0], 1.0, 1e-11) | EXPECT_TRUE(retried) ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(injected) | EXPECT_NEAR(result.Value().eigenvalues[0], 1.0, 1e-11) | EXPECT_TRUE(retried) -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.LowerPrefixCountsProveNoOmittedModesAndRejectNegative MklFeastGeneralized.LowerPrefixCountsProveNoOmittedModesAndRejectNegative; assertion 8개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.LowerPrefixCountsProveNoOmittedModesAndRejectNegative 유지 원문 검사 body 및 assertion 동일. 8b1ef84c46097b604c26548141d8285b664a47537ed1df79c068f5623f7018f3 8b1ef84c46097b604c26548141d8285b664a47537ed1df79c068f5623f7018f3 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(call.info, 0) | EXPECT_TRUE(call.count_available) | EXPECT_EQ(call.count, 0U) | EXPECT_LT(call.upper, 0.0) | EXPECT_LT(call.lower, call.upper) | EXPECT_EQ(guards, 3U) | EXPECT_NEAR(result.Value().eigenvalues[0], 0.0, 1e-12) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(call.info, 0) | EXPECT_TRUE(call.count_available) | EXPECT_EQ(call.count, 0U) | EXPECT_LT(call.upper, 0.0) | EXPECT_LT(call.lower, call.upper) | EXPECT_EQ(guards, 3U) | EXPECT_NEAR(result.Value().eigenvalues[0], 0.0, 1e-12) -Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp support@1-115 helper/oracle/fixture/include/static assertion 구간: MakeDenseCsr, ExpectUnitGram, RequireSuccess, ExpectFailureCode, ExpectSameBackendCalls, ExpectSameProjector, ExpectThreadSettingRestored tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 91b74d929d69e24c9a0382a7498e011486ba87f933cd35ca4a433e1ceadb2a0c 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/solvers/linear/linear_solver_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/solvers/linear/linear_solver_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a5aa18ef7c3aedac56b92f87740e0fa5b59acdb8ccd714ae16cc54b732ddcee0 a5aa18ef7c3aedac56b92f87740e0fa5b59acdb8ccd714ae16cc54b732ddcee0 해당 없음 해당 없음 -Refactor tests/unit/solvers/linear/linear_solver_test.cpp MklPardisoSolver.RejectsInvalidCsrStateAndDimensions MklPardisoSolver.RejectsInvalidCsrStateAndDimensions; assertion 20개 tests/unit/solvers/linear/linear_solver_test.cpp MklPardisoSolver.RejectsInvalidCsrStateAndDimensions 유지 원문 검사 body 및 assertion 동일. 026abcfd859f19c844cf0c0ebd698138e53fb66f1846dae2c7bf8e387db960f1 026abcfd859f19c844cf0c0ebd698138e53fb66f1846dae2c7bf8e387db960f1 "EXPECT_EQ(before_factorize.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(untouched[0U], 17.0) | EXPECT_DOUBLE_EQ(untouched[1U], -4.0) | ASSERT_TRUE(solver.Factorize(empty).IsOk()) | EXPECT_TRUE(solver.Solve(fesa::Vector{0U}, empty_solution).IsOk()) | EXPECT_EQ(empty_solution.Size(), 0U) | ASSERT_TRUE(solver.Factorize(spd).IsOk()) | ASSERT_TRUE(solver.Solve(fesa::Vector{2U, 1.0}, solution).IsOk()) | EXPECT_NEAR(solution[0U], 2.0 / 11.0, 1.0e-14) | EXPECT_NEAR(solution[1U], 3.0 / 11.0, 1.0e-14) | EXPECT_DOUBLE_EQ(solution[0U], solved_first) | EXPECT_DOUBLE_EQ(solution[1U], solved_second) | EXPECT_DOUBLE_EQ(wrong_solution[0U], 41.0) | EXPECT_EQ(rectangular_status.Diagnostics().front().code, ""solver-matrix-not-square"") | EXPECT_FALSE(invalid_csr.HasValue()) | EXPECT_EQ(nonsymmetric_status.Diagnostics().front().code, ""solver-matrix-not-symmetric"") | ASSERT_FALSE(scaled_nonsymmetric_status.IsOk()) | EXPECT_EQ(scaled_nonsymmetric_status.Diagnostics().front().code, ""solver-matrix-not-symmetric"") | ASSERT_TRUE(no_diagonal.HasValue()) | EXPECT_EQ(no_diagonal_status.Diagnostics().front().code, ""solver-missing-diagonal"")" "EXPECT_EQ(before_factorize.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(untouched[0U], 17.0) | EXPECT_DOUBLE_EQ(untouched[1U], -4.0) | ASSERT_TRUE(solver.Factorize(empty).IsOk()) | EXPECT_TRUE(solver.Solve(fesa::Vector{0U}, empty_solution).IsOk()) | EXPECT_EQ(empty_solution.Size(), 0U) | ASSERT_TRUE(solver.Factorize(spd).IsOk()) | ASSERT_TRUE(solver.Solve(fesa::Vector{2U, 1.0}, solution).IsOk()) | EXPECT_NEAR(solution[0U], 2.0 / 11.0, 1.0e-14) | EXPECT_NEAR(solution[1U], 3.0 / 11.0, 1.0e-14) | EXPECT_DOUBLE_EQ(solution[0U], solved_first) | EXPECT_DOUBLE_EQ(solution[1U], solved_second) | EXPECT_DOUBLE_EQ(wrong_solution[0U], 41.0) | EXPECT_EQ(rectangular_status.Diagnostics().front().code, ""solver-matrix-not-square"") | EXPECT_FALSE(invalid_csr.HasValue()) | EXPECT_EQ(nonsymmetric_status.Diagnostics().front().code, ""solver-matrix-not-symmetric"") | ASSERT_FALSE(scaled_nonsymmetric_status.IsOk()) | EXPECT_EQ(scaled_nonsymmetric_status.Diagnostics().front().code, ""solver-matrix-not-symmetric"") | ASSERT_TRUE(no_diagonal.HasValue()) | EXPECT_EQ(no_diagonal_status.Diagnostics().front().code, ""solver-missing-diagonal"")" -Refactor tests/unit/solvers/linear/linear_solver_test.cpp EigenSolverContract.DispatchesBothPencilsAndDestroysThroughBase EigenSolverContract.DispatchesBothPencilsAndDestroysThroughBase; assertion 6개 tests/unit/solvers/linear/linear_solver_test.cpp EigenSolverContract.DispatchesBothPencilsAndDestroysThroughBase 유지 원문 검사 body 및 assertion 동일. 5d2764884b4c48c90b274024e9194123702a2f752ab7662af1fd9b3f154c7c4c 5d2764884b4c48c90b274024e9194123702a2f752ab7662af1fd9b3f154c7c4c EXPECT_FALSE(contract.Solve(empty, 3U, 7.0).HasValue()) | EXPECT_FALSE(contract.SolveGeneralized(empty, empty, 4U, 2.0, 11.0) .HasValue()) | EXPECT_EQ(observations->standard_calls, 1) | EXPECT_EQ(observations->generalized_calls, 1) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed) EXPECT_FALSE(contract.Solve(empty, 3U, 7.0).HasValue()) | EXPECT_FALSE(contract.SolveGeneralized(empty, empty, 4U, 2.0, 11.0) .HasValue()) | EXPECT_EQ(observations->standard_calls, 1) | EXPECT_EQ(observations->generalized_calls, 1) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed) -Refactor tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.RetainsDistinctStoragePoliciesAndFreshPhaseOrder PardisoSession.RetainsDistinctStoragePoliciesAndFreshPhaseOrder; assertion 21개 tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.RetainsDistinctStoragePoliciesAndFreshPhaseOrder 유지 원문 검사 body 및 assertion 동일. 0ac2763eb1e27f837ff6d32babfcccfbff042230d13c9855a6a56767b6ebccf0 0ac2763eb1e27f837ff6d32babfcccfbff042230d13c9855a6a56767b6ebccf0 EXPECT_EQ(call.equation_count, 2) | EXPECT_EQ(call.row_offsets[2], 3) | EXPECT_EQ(call.column_indices[0], 0) | EXPECT_EQ(call.column_indices[1], 1) | EXPECT_EQ(call.column_indices[2], 1) | EXPECT_EQ(call.matrix_type, 11) | EXPECT_EQ(call.row_offsets[2], 4) | EXPECT_DOUBLE_EQ(call.values[2], 0.0) | ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(fesa::Vector{2U, 1.0}, solution).IsOk()) | EXPECT_NEAR(solution[0], 2.0 / 11.0, 1e-14) | ASSERT_TRUE(solver.Solve(fesa::Vector{2U, 2.0}, solution).IsOk()) | EXPECT_NEAR(solution[1], 6.0 / 11.0, 1e-14) | ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | EXPECT_EQ(phases, (std::vector{11, 22, 33, 33, -1, 11, 22, -1})) | ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(fesa::Vector{2U, 6.0}, correction).IsOk()) | EXPECT_NEAR(correction[0], 2.0, 1e-14) | EXPECT_NEAR(correction[1], 2.0, 1e-14) | ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | EXPECT_EQ(phases, (std::vector{11, 22, 33, -1, 11, 22, -1})) EXPECT_EQ(call.equation_count, 2) | EXPECT_EQ(call.row_offsets[2], 3) | EXPECT_EQ(call.column_indices[0], 0) | EXPECT_EQ(call.column_indices[1], 1) | EXPECT_EQ(call.column_indices[2], 1) | EXPECT_EQ(call.matrix_type, 11) | EXPECT_EQ(call.row_offsets[2], 4) | EXPECT_DOUBLE_EQ(call.values[2], 0.0) | ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(fesa::Vector{2U, 1.0}, solution).IsOk()) | EXPECT_NEAR(solution[0], 2.0 / 11.0, 1e-14) | ASSERT_TRUE(solver.Solve(fesa::Vector{2U, 2.0}, solution).IsOk()) | EXPECT_NEAR(solution[1], 6.0 / 11.0, 1e-14) | ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | EXPECT_EQ(phases, (std::vector{11, 22, 33, 33, -1, 11, 22, -1})) | ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(fesa::Vector{2U, 6.0}, correction).IsOk()) | EXPECT_NEAR(correction[0], 2.0, 1e-14) | EXPECT_NEAR(correction[1], 2.0, 1e-14) | ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | EXPECT_EQ(phases, (std::vector{11, 22, 33, -1, 11, 22, -1})) -Refactor tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.FailedSolvePreservesOutputAndRetainedFactorization PardisoSession.FailedSolvePreservesOutputAndRetainedFactorization; assertion 9개 tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.FailedSolvePreservesOutputAndRetainedFactorization 유지 원문 검사 body 및 assertion 동일. d37fa6bfe33b1eabef4e408595013d01839f01a015d6446cb16e5c59f260ee38 d37fa6bfe33b1eabef4e408595013d01839f01a015d6446cb16e5c59f260ee38 "ASSERT_TRUE(solver.Factorize(MakeDenseCsr(1U, 1U, {2.0})).IsOk()) | ASSERT_FALSE(failed.IsOk()) | EXPECT_EQ(failed.Diagnostics().front().code, ""pardiso-solve-failed"") | EXPECT_DOUBLE_EQ(solution[0], 17.0) | ASSERT_FALSE(nonfinite.IsOk()) | EXPECT_EQ(nonfinite.Diagnostics().front().code, ""nonfinite-solver-solution"") | EXPECT_DOUBLE_EQ(solution[0], 17.0) | ASSERT_TRUE(solver.Solve(fesa::Vector{1U, 6.0}, solution).IsOk()) | EXPECT_DOUBLE_EQ(solution[0], 3.0)" "ASSERT_TRUE(solver.Factorize(MakeDenseCsr(1U, 1U, {2.0})).IsOk()) | ASSERT_FALSE(failed.IsOk()) | EXPECT_EQ(failed.Diagnostics().front().code, ""pardiso-solve-failed"") | EXPECT_DOUBLE_EQ(solution[0], 17.0) | ASSERT_FALSE(nonfinite.IsOk()) | EXPECT_EQ(nonfinite.Diagnostics().front().code, ""nonfinite-solver-solution"") | EXPECT_DOUBLE_EQ(solution[0], 17.0) | ASSERT_TRUE(solver.Solve(fesa::Vector{1U, 6.0}, solution).IsOk()) | EXPECT_DOUBLE_EQ(solution[0], 3.0)" -Refactor tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.ReleaseFailurePrecedesNewValidationAndInvalidatesState PardisoSession.ReleaseFailurePrecedesNewValidationAndInvalidatesState; assertion 7개 tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.ReleaseFailurePrecedesNewValidationAndInvalidatesState 유지 원문 검사 body 및 assertion 동일. 65bcca48a4bc8eade3056e8134a5b7707ac993b018a0ac4bb87bc4fbb1ef1aa9 65bcca48a4bc8eade3056e8134a5b7707ac993b018a0ac4bb87bc4fbb1ef1aa9 "ASSERT_TRUE(solver.Factorize(MakeDenseCsr(1U, 1U, {2.0})).IsOk()) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""pardiso-release-failed"") | ASSERT_FALSE(unavailable.IsOk()) | EXPECT_EQ(unavailable.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(output[0], 19.0) | EXPECT_EQ(releases, 1)" "ASSERT_TRUE(solver.Factorize(MakeDenseCsr(1U, 1U, {2.0})).IsOk()) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""pardiso-release-failed"") | ASSERT_FALSE(unavailable.IsOk()) | EXPECT_EQ(unavailable.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(output[0], 19.0) | EXPECT_EQ(releases, 1)" -Refactor tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.FactorizationFailuresAndExceptionsReleaseExactlyOnce PardisoSession.FactorizationFailuresAndExceptionsReleaseExactlyOnce; assertion 8개 tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.FactorizationFailuresAndExceptionsReleaseExactlyOnce 유지 원문 검사 body 및 assertion 동일. 86cdb4d887b0a38874787ffaaff4020fba82fa97ae6b09c6e170bffcb0b19c6b 86cdb4d887b0a38874787ffaaff4020fba82fa97ae6b09c6e170bffcb0b19c6b "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""pardiso-integer-overflow"") | EXPECT_FALSE(solver.Solve(fesa::Vector{1U, 1.0}, output).IsOk()) | EXPECT_DOUBLE_EQ(output[0], 29.0) | EXPECT_EQ(phases, failing_phase == 11 ? (std::vector{11, -1}) : (std::vector{11, 22, -1})) | EXPECT_THROW(solver.FactorizeFresh(matrix), std::runtime_error) | EXPECT_EQ(phases, (std::vector{11, -1})) | EXPECT_EQ(phases, (std::vector{11, -1}))" "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""pardiso-integer-overflow"") | EXPECT_FALSE(solver.Solve(fesa::Vector{1U, 1.0}, output).IsOk()) | EXPECT_DOUBLE_EQ(output[0], 29.0) | EXPECT_EQ(phases, failing_phase == 11 ? (std::vector{11, -1}) : (std::vector{11, 22, -1})) | EXPECT_THROW(solver.FactorizeFresh(matrix), std::runtime_error) | EXPECT_EQ(phases, (std::vector{11, -1})) | EXPECT_EQ(phases, (std::vector{11, -1}))" -Refactor tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.FailedTangentSolveRetainsStateButFailedFreshInvalidatesIt PardisoSession.FailedTangentSolveRetainsStateButFailedFreshInvalidatesIt; assertion 14개 tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.FailedTangentSolveRetainsStateButFailedFreshInvalidatesIt 유지 원문 검사 body 및 assertion 동일. c9ebef4503d7e7c96bae841dc2739dccc431699a65b4842c8366977b3eb3675c c9ebef4503d7e7c96bae841dc2739dccc431699a65b4842c8366977b3eb3675c "ASSERT_TRUE(solver.FactorizeFresh( MakeDenseCsr(2U, 2U, {2.0, 1.0, 0.0, 3.0})).IsOk()) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""pardiso-solve-failed"") | EXPECT_DOUBLE_EQ(correction[0], 31.0) | EXPECT_DOUBLE_EQ(correction[1], 31.0) | ASSERT_TRUE(solver.SolveCorrection(fesa::Vector{2U, 6.0}, correction).IsOk()) | EXPECT_NEAR(correction[0], 2.0, 1e-14) | EXPECT_NEAR(correction[1], 2.0, 1e-14) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""solver-matrix-not-square"") | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_NEAR(correction[0], 2.0, 1e-14) | EXPECT_NEAR(correction[1], 2.0, 1e-14)" "ASSERT_TRUE(solver.FactorizeFresh( MakeDenseCsr(2U, 2U, {2.0, 1.0, 0.0, 3.0})).IsOk()) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""pardiso-solve-failed"") | EXPECT_DOUBLE_EQ(correction[0], 31.0) | EXPECT_DOUBLE_EQ(correction[1], 31.0) | ASSERT_TRUE(solver.SolveCorrection(fesa::Vector{2U, 6.0}, correction).IsOk()) | EXPECT_NEAR(correction[0], 2.0, 1e-14) | EXPECT_NEAR(correction[1], 2.0, 1e-14) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""solver-matrix-not-square"") | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_NEAR(correction[0], 2.0, 1e-14) | EXPECT_NEAR(correction[1], 2.0, 1e-14)" -Refactor tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.EmptyLifecycleNeverInvokesBackend PardisoSession.EmptyLifecycleNeverInvokesBackend; assertion 7개 tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.EmptyLifecycleNeverInvokesBackend 유지 원문 검사 body 및 assertion 동일. c689a24fcc5fe8bcd502deaa8e11343b665059523de896d1b58190f59ddb44e3 c689a24fcc5fe8bcd502deaa8e11343b665059523de896d1b58190f59ddb44e3 ASSERT_TRUE(solver.Factorize(empty).IsOk()) | ASSERT_TRUE(solver.Solve(fesa::Vector{0U}, solution).IsOk()) | ASSERT_TRUE(solver.Factorize(empty).IsOk()) | ASSERT_TRUE(tangent.FactorizeFresh(empty).IsOk()) | ASSERT_TRUE(tangent.SolveCorrection(fesa::Vector{0U}, solution).IsOk()) | ASSERT_TRUE(tangent.FactorizeFresh(empty).IsOk()) | EXPECT_EQ(calls, 0) ASSERT_TRUE(solver.Factorize(empty).IsOk()) | ASSERT_TRUE(solver.Solve(fesa::Vector{0U}, solution).IsOk()) | ASSERT_TRUE(solver.Factorize(empty).IsOk()) | ASSERT_TRUE(tangent.FactorizeFresh(empty).IsOk()) | ASSERT_TRUE(tangent.SolveCorrection(fesa::Vector{0U}, solution).IsOk()) | ASSERT_TRUE(tangent.FactorizeFresh(empty).IsOk()) | EXPECT_EQ(calls, 0) -Refactor tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.RestoresDefaultThreadPolicyAndPreservesCallerOverride PardisoSession.RestoresDefaultThreadPolicyAndPreservesCallerOverride; assertion 5개 tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.RestoresDefaultThreadPolicyAndPreservesCallerOverride 유지 원문 검사 body 및 assertion 동일. afe5e61f02fd49e178975e1320c2c6bd5b385e8d3d351c1e2d8ddf8da54be01a afe5e61f02fd49e178975e1320c2c6bd5b385e8d3d351c1e2d8ddf8da54be01a EXPECT_EQ(mkl_get_max_threads(), caller_threads == 0 ? 1 : 2) | EXPECT_FALSE(solver.Factorize(matrix).IsOk()) | EXPECT_EQ(mkl_set_num_threads_local(caller_threads), caller_threads) | EXPECT_EQ(release_calls, 1) | EXPECT_EQ(mkl_set_num_threads_local(caller_threads), caller_threads) EXPECT_EQ(mkl_get_max_threads(), caller_threads == 0 ? 1 : 2) | EXPECT_FALSE(solver.Factorize(matrix).IsOk()) | EXPECT_EQ(mkl_set_num_threads_local(caller_threads), caller_threads) | EXPECT_EQ(release_calls, 1) | EXPECT_EQ(mkl_set_num_threads_local(caller_threads), caller_threads) -Refactor tests/unit/solvers/linear/linear_solver_test.cpp support@1-56 helper/oracle/fixture/include/static assertion 구간: MakeDenseCsr, ExpectSolverFailure tests/unit/solvers/linear/linear_solver_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 78a8b579a04f3c3dc7c959d45f7ef9271489b3e7638a0b34de24c3ff8421e23c 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/solvers/linear/linear_solver_test.cpp support@137-178 helper/oracle/fixture/include/static assertion 구간: RecordingEigenSolver tests/unit/solvers/linear/linear_solver_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b31e1a103b5d1e9f151dbb822bc2e9fda76b81520a3577098db488c967841767 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 27c0608a66a44ffba73d2d081a5689bece07002b272a0cc5443ce4457e35a8ae b278df4853fd35b4a609df18ba48bf7d27eeba7a88d58b7ff00d759f5461ccff 해당 없음 해당 없음 -Refactor tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.SolvesKnownSpdWithNormalizedResidual MklPardisoSolver.SolvesKnownSpdWithNormalizedResidual; assertion 4개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.SolvesKnownSpdWithNormalizedResidual 유지 원문 검사 body 및 assertion 동일. 0dd88a78ef239ae0d316f9fc4ecbfe7e6baba99a61eda7cc8f42e6616c09915c 0dd88a78ef239ae0d316f9fc4ecbfe7e6baba99a61eda7cc8f42e6616c09915c ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs, solution).IsOk()) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs, solution).IsOk()) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) -Refactor tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ReusesOneFactorizationForRepeatedRhs MklPardisoSolver.ReusesOneFactorizationForRepeatedRhs; assertion 7개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ReusesOneFactorizationForRepeatedRhs 유지 원문 검사 body 및 assertion 동일. 0d5dd1f6b920c6201997eef647077b4039020a9adaa93483733c395ce55ecaed 0d5dd1f6b920c6201997eef647077b4039020a9adaa93483733c395ce55ecaed ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs_first, first).IsOk()) | ASSERT_TRUE(solver.Solve(rhs_second, second).IsOk()) | EXPECT_LE(RelativeError(first, expected_first), 1.0e-9) | EXPECT_LE(RelativeError(second, expected_second), 1.0e-9) | EXPECT_LE(NormalizedResidual(matrix, first, rhs_first), 1.0e-10) | EXPECT_LE(NormalizedResidual(matrix, second, rhs_second), 1.0e-10) ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs_first, first).IsOk()) | ASSERT_TRUE(solver.Solve(rhs_second, second).IsOk()) | EXPECT_LE(RelativeError(first, expected_first), 1.0e-9) | EXPECT_LE(RelativeError(second, expected_second), 1.0e-9) | EXPECT_LE(NormalizedResidual(matrix, first, rhs_first), 1.0e-10) | EXPECT_LE(NormalizedResidual(matrix, second, rhs_second), 1.0e-10) -Refactor tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.StillRejectsNonsymmetricPublicCsr MklPardisoSolver.StillRejectsNonsymmetricPublicCsr; assertion 1개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.StillRejectsNonsymmetricPublicCsr 유지 원문 검사 body 및 assertion 동일. 2d3aeaa63b4de4a45b8b553f51fe2223bb64e4c36e107c154ea333382d3ef052 2d3aeaa63b4de4a45b8b553f51fe2223bb64e4c36e107c154ea333382d3ef052 "EXPECT_EQ(status.Diagnostics()[0U].code, ""solver-matrix-not-symmetric"")" "EXPECT_EQ(status.Diagnostics()[0U].code, ""solver-matrix-not-symmetric"")" -Refactor tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.RefactorizesWithoutLeakingState MklPardisoSolver.RefactorizesWithoutLeakingState; assertion 7개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.RefactorizesWithoutLeakingState 유지 원문 검사 body 및 assertion 동일. 72be7b9a87610a6d9dcb1324dc15b4d400c837e097dee540c00dd3e510921f35 72be7b9a87610a6d9dcb1324dc15b4d400c837e097dee540c00dd3e510921f35 ASSERT_TRUE(solver.Factorize(first_matrix).IsOk()) | ASSERT_TRUE( solver.Solve(first_matrix.Multiply(first_expected), first_solution) .IsOk()) | EXPECT_LE(RelativeError(first_solution, first_expected), 1.0e-9) | ASSERT_TRUE(solver.Factorize(second_matrix).IsOk()) | ASSERT_TRUE(solver.Solve(second_rhs, second_solution).IsOk()) | EXPECT_LE(RelativeError(second_solution, second_expected), 1.0e-9) | EXPECT_LE(NormalizedResidual(second_matrix, second_solution, second_rhs), 1.0e-10) ASSERT_TRUE(solver.Factorize(first_matrix).IsOk()) | ASSERT_TRUE( solver.Solve(first_matrix.Multiply(first_expected), first_solution) .IsOk()) | EXPECT_LE(RelativeError(first_solution, first_expected), 1.0e-9) | ASSERT_TRUE(solver.Factorize(second_matrix).IsOk()) | ASSERT_TRUE(solver.Solve(second_rhs, second_solution).IsOk()) | EXPECT_LE(RelativeError(second_solution, second_expected), 1.0e-9) | EXPECT_LE(NormalizedResidual(second_matrix, second_solution, second_rhs), 1.0e-10) -Refactor tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ClassifiesSingularIndefiniteAndNonfiniteFailures MklPardisoSolver.ClassifiesSingularIndefiniteAndNonfiniteFailures; assertion 10개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ClassifiesSingularIndefiniteAndNonfiniteFailures 유지 원문 검사 body 및 assertion 동일. 007dec8a37d6956c242634b01f7e6f8f496f0e02082a94437a15dd3caaf89673 007dec8a37d6956c242634b01f7e6f8f496f0e02082a94437a15dd3caaf89673 "EXPECT_TRUE(singular_status.Diagnostics()[0U].code == ""pardiso-zero-or-negative-pivot"" || singular_status.Diagnostics()[0U].code == ""pardiso-singular-diagonal"") | EXPECT_NE( singular_status.Diagnostics()[0U].entity_identity.find(""phase=22,error=""), std::string::npos) | EXPECT_TRUE(indefinite_status.Diagnostics()[0U].code == ""pardiso-zero-or-negative-pivot"" || indefinite_status.Diagnostics()[0U].code == ""pardiso-singular-diagonal"") | EXPECT_NE(indefinite_status.Diagnostics()[0U].entity_identity.find( ""phase=22,error=""), std::string::npos) | ASSERT_TRUE(solver.Factorize(spd).IsOk()) | EXPECT_EQ(rhs_status.Diagnostics()[0U].code, ""nonfinite-solver-rhs"") | EXPECT_DOUBLE_EQ(solution[0U], 23.0) | EXPECT_DOUBLE_EQ(solution[1U], -9.0) | EXPECT_FALSE(nonfinite_matrix.HasValue()) | EXPECT_EQ(nonfinite_matrix.GetStatus().Diagnostics()[0U].code, ""nonfinite-sparse-value"")" "EXPECT_TRUE(singular_status.Diagnostics()[0U].code == ""pardiso-zero-or-negative-pivot"" || singular_status.Diagnostics()[0U].code == ""pardiso-singular-diagonal"") | EXPECT_NE( singular_status.Diagnostics()[0U].entity_identity.find(""phase=22,error=""), std::string::npos) | EXPECT_TRUE(indefinite_status.Diagnostics()[0U].code == ""pardiso-zero-or-negative-pivot"" || indefinite_status.Diagnostics()[0U].code == ""pardiso-singular-diagonal"") | EXPECT_NE(indefinite_status.Diagnostics()[0U].entity_identity.find( ""phase=22,error=""), std::string::npos) | ASSERT_TRUE(solver.Factorize(spd).IsOk()) | EXPECT_EQ(rhs_status.Diagnostics()[0U].code, ""nonfinite-solver-rhs"") | EXPECT_DOUBLE_EQ(solution[0U], 23.0) | EXPECT_DOUBLE_EQ(solution[1U], -9.0) | EXPECT_FALSE(nonfinite_matrix.HasValue()) | EXPECT_EQ(nonfinite_matrix.GetStatus().Diagnostics()[0U].code, ""nonfinite-sparse-value"")" -Refactor tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ConditioningSweepPassesResolvedCasesAndFailsUnresolvedCasesExplicitly MklPardisoSolver.ConditioningSweepPassesResolvedCasesAndFailsUnresolvedCasesExplicitly; assertion 10개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ConditioningSweepPassesResolvedCasesAndFailsUnresolvedCasesExplicitly 유지 원문 검사 body 및 assertion 동일. 2e4b58fe2ef908b1c53f3dd40639f2423afb8429d5bdc7fdb80675b3efeceee2 2e4b58fe2ef908b1c53f3dd40639f2423afb8429d5bdc7fdb80675b3efeceee2 ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs, solution).IsOk()) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) | ASSERT_TRUE(resolved_solver.Factorize(resolved_matrix).IsOk()) | ASSERT_TRUE(resolved_solver.Solve(resolved_rhs, resolved_solution).IsOk()) | EXPECT_LE( NormalizedResidual(resolved_matrix, resolved_solution, resolved_rhs), 1.0e-10) | EXPECT_LE(RelativeError(resolved_solution, resolved_expected), 1.0e-9) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs, solution).IsOk()) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) | ASSERT_TRUE(resolved_solver.Factorize(resolved_matrix).IsOk()) | ASSERT_TRUE(resolved_solver.Solve(resolved_rhs, resolved_solution).IsOk()) | EXPECT_LE( NormalizedResidual(resolved_matrix, resolved_solution, resolved_rhs), 1.0e-10) | EXPECT_LE(RelativeError(resolved_solution, resolved_expected), 1.0e-9) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) -Refactor tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp support@1-89 helper/oracle/fixture/include/static assertion 구간: MakeDenseCsr, MakeVector, for, NormalizedResidual, if, RelativeError, ExpectStructuredSolverFailure tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. be39de09554cc190405a0bd1595f71c1c153921de7478644704b3d5caab279ca 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/solvers/linear/tangent_solver_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/solvers/linear/tangent_solver_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b6c7c50cbf6f3b4472f9058ed517905a66a3dea42255867c451d0c308aba7507 c457f80368b1e01bab7e7d177c0bda8283d0590e7150e064c270f86c9a95e858 해당 없음 해당 없음 -Refactor tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SolvesNonsymmetricKnownCorrection TangentSolver.SolvesNonsymmetricKnownCorrection; assertion 4개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SolvesNonsymmetricKnownCorrection 유지 원문 검사 body 및 assertion 동일. 838690231b74c1b272bda475dea0234187495f7e8c045ee449f04ae3ac0d1233 838690231b74c1b272bda475dea0234187495f7e8c045ee449f04ae3ac0d1233 ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(rhs, correction).IsOk()) | EXPECT_NEAR(correction[0U], 1.0, 1.0e-14) | EXPECT_NEAR(correction[1U], 2.0, 1.0e-14) ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(rhs, correction).IsOk()) | EXPECT_NEAR(correction[0U], 1.0, 1.0e-14) | EXPECT_NEAR(correction[1U], 2.0, 1.0e-14) -Refactor tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SolvesTrivialZeroEquationSystem TangentSolver.SolvesTrivialZeroEquationSystem; assertion 3개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SolvesTrivialZeroEquationSystem 유지 원문 검사 body 및 assertion 동일. 271ea5671ba0adda4eab6af4646dda04cf09d9a77c2f0857c1a1216458a9d1d1 271ea5671ba0adda4eab6af4646dda04cf09d9a77c2f0857c1a1216458a9d1d1 ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | EXPECT_TRUE(solver.SolveCorrection(fesa::Vector{0U}, correction).IsOk()) | EXPECT_EQ(correction.Size(), 0U) ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | EXPECT_TRUE(solver.SolveCorrection(fesa::Vector{0U}, correction).IsOk()) | EXPECT_EQ(correction.Size(), 0U) -Refactor tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.RejectsNonfiniteInputsWithoutModifyingCorrection TangentSolver.RejectsNonfiniteInputsWithoutModifyingCorrection; assertion 6개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.RejectsNonfiniteInputsWithoutModifyingCorrection 유지 원문 검사 body 및 assertion 동일. 11e41d7e1b0f4715dfddd024f947c926155d20ba0b4fa3d6734756afe8603bd6 11e41d7e1b0f4715dfddd024f947c926155d20ba0b4fa3d6734756afe8603bd6 "EXPECT_FALSE(nonfinite_matrix.HasValue()) | EXPECT_EQ(nonfinite_matrix.GetStatus().Diagnostics().front().code, ""nonfinite-sparse-value"") | ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(2U, {2.0, 1.0, 0.0, 3.0})) .IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""nonfinite-solver-rhs"") | EXPECT_DOUBLE_EQ(correction[0U], 17.0) | EXPECT_DOUBLE_EQ(correction[1U], -4.0)" "EXPECT_FALSE(nonfinite_matrix.HasValue()) | EXPECT_EQ(nonfinite_matrix.GetStatus().Diagnostics().front().code, ""nonfinite-sparse-value"") | ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(2U, {2.0, 1.0, 0.0, 3.0})) .IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""nonfinite-solver-rhs"") | EXPECT_DOUBLE_EQ(correction[0U], 17.0) | EXPECT_DOUBLE_EQ(correction[1U], -4.0)" -Refactor tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.ReportsSingularFactorizationDeterministically TangentSolver.ReportsSingularFactorizationDeterministically; assertion 3개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.ReportsSingularFactorizationDeterministically 유지 원문 검사 body 및 assertion 동일. 54a59242a6753c254e6f1e9b3b87783b30b47329241c5dda5d053a57eae851bc 54a59242a6753c254e6f1e9b3b87783b30b47329241c5dda5d053a57eae851bc "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""pardiso-perturbed-pivot"") | EXPECT_EQ(status.Diagnostics().front().entity_identity, ""phase=22"")" "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""pardiso-perturbed-pivot"") | EXPECT_EQ(status.Diagnostics().front().entity_identity, ""phase=22"")" -Refactor tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.RejectsSolveBeforeSuccessfulFactorization TangentSolver.RejectsSolveBeforeSuccessfulFactorization; assertion 3개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.RejectsSolveBeforeSuccessfulFactorization 유지 원문 검사 body 및 assertion 동일. eb2b17bad95e253fe1e9c3a8aed6f6fbf92e2921643507f4a11862c36c28d0d7 eb2b17bad95e253fe1e9c3a8aed6f6fbf92e2921643507f4a11862c36c28d0d7 "EXPECT_EQ(status.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(correction[0U], 23.0) | EXPECT_DOUBLE_EQ(correction[1U], -9.0)" "EXPECT_EQ(status.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(correction[0U], 23.0) | EXPECT_DOUBLE_EQ(correction[1U], -9.0)" -Refactor tests/unit/solvers/linear/tangent_solver_test.cpp support@1-57 helper/oracle/fixture/include/static assertion 구간: MakeDenseCsr, MakeVector, for, ExpectSolverFailure tests/unit/solvers/linear/tangent_solver_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 437aff9aeafd5c7aad5083cfce86a40114d04c4a326e4968e57fc84802f77710 최종 파일 SHA 참조 해당 없음 해당 없음 -Refactor tests/unit/solvers/linear/tangent_solver_test.cpp support@131-132 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/solvers/linear/tangent_solver_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 +source original_path original_identity verification_behavior final_path final_identity disposition reason original_sha256 final_sha256 original_assertions final_assertions cleanup_decision cleanup_reason_id cleanup_evidence +Dev tests/AGENTS.md file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/AGENTS.md file 유지 Dev의 현재 검사 정책을 유지한다. Refactor의 과거 실행별 지시는 이번 승인 범위를 대체하지 않는다. c2413bbcde33dad56ffd227536b79b9b9c707a5eb4a7874f0bc840824c4abfd5 c2413bbcde33dad56ffd227536b79b9b9c707a5eb4a7874f0bc840824c4abfd5 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/AGENTS.md support@1-16 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/AGENTS.md file-support 유지 Dev의 현재 검사 정책을 유지한다. Refactor의 과거 실행별 지시는 이번 승인 범위를 대체하지 않는다. 18aee7c622327cc5dd22beb5916532fd73567e42d03bae4e020fe07bc3a523f8 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/CMakeLists.txt file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/CMakeLists.txt file 이관 Refactor capability source 등록을 유지한다. 실제 native/CMake source 목록이 세 target 모두 일치하므로 본문 복원에 따른 translation unit 추가는 없다. 53cb1f15138a3e271131ffca6a73425ee886feaa14733c9655642fa15e278ba6 8c8c0b8343ada0c1ea259c017a5332bfa0e0a313adbfaabe84406327bc9dc8c9 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/CMakeLists.txt support@1-257 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/CMakeLists.txt file-support 이관 Refactor capability source 등록을 유지한다. 실제 native/CMake source 목록이 세 target 모두 일치하므로 본문 복원에 따른 translation unit 추가는 없다. 7faf0664f1caccc190d801c85a4403211f3bb60ae7c94d19d6620ae3189faf0a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/linear_frequency_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/integration/analysis/linear_frequency_procedure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 73da42092ea16d533f8a1725f6e925338fb4d8ff6901c5a462004aef3cacc770 73da42092ea16d533f8a1725f6e925338fb4d8ff6901c5a462004aef3cacc770 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.RejectsDomainWithoutFrequencyStep LinearFrequencyProcedureExecutor.RejectsDomainWithoutFrequencyStep; assertion 5개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.RejectsDomainWithoutFrequencyStep 유지 원문 검사 body 및 assertion 동일. e35f98ccd120a34e369c9100a4b68bc5f2bd57a79f0516fe8aace490a6157623 e35f98ccd120a34e369c9100a4b68bc5f2bd57a79f0516fe8aace490a6157623 "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-frequency-procedure"")" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-frequency-procedure"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.MatchesPartialBoundaryPencilAndFullResidualCovariance LinearFrequencyProcedureExecutor.MatchesPartialBoundaryPencilAndFullResidualCovariance; assertion 25개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.MatchesPartialBoundaryPencilAndFullResidualCovariance 유지 원문 검사 body 및 assertion 동일. 8112af69b3ed3bf699174664e3f50bc7fe4927aa4d8a1e3841e3c840ed29bbbe 8112af69b3ed3bf699174664e3f50bc7fe4927aa4d8a1e3841e3c840ed29bbbe ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(state.modes.size(), 1U) | EXPECT_EQ(state.mass_null_dimension, 0U) | EXPECT_EQ(state.finite_dimension, 1U) | EXPECT_NEAR(state.modes[0].eigenvalue, 10369.0 / 450.0, 1e-10) | EXPECT_EQ(state.modes[0].classification, 1U) | EXPECT_EQ(state.vectors.Rows(), 1U) | EXPECT_EQ(state.vectors.Columns(), 24U) | EXPECT_NEAR(state.vectors(0U, 5U), std::sqrt(50.0 / 3.0), 1e-12) | EXPECT_EQ(state.vectors(0U, dof), 0.0) | ASSERT_EQ(state.eigenpair_checks.size(), 1U) | EXPECT_NEAR(state.eigenpair_checks[0].modal_mass, 1.0, 1e-12) | EXPECT_LE(state.eigenpair_checks[0].eta_r, 1e-10) | EXPECT_LE(state.eigenpair_checks[0].eta_energy, 1e-10) | EXPECT_LE(state.eigenpair_checks[0].rho_b, 1e-10) | EXPECT_EQ(state.backend.eigenvectors.Rows(), 0U) | ASSERT_TRUE(static_domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_NEAR(kff, 10369.0 / 7500.0, 1e-12) | EXPECT_NEAR(displacement[5U], 7500.0 / 10369.0, 1e-12) | EXPECT_NEAR(residual[5U], 0.0, 1e-12) | EXPECT_NEAR(residual[i], expected, 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(state.modes.size(), 1U) | EXPECT_EQ(state.mass_null_dimension, 0U) | EXPECT_EQ(state.finite_dimension, 1U) | EXPECT_NEAR(state.modes[0].eigenvalue, 10369.0 / 450.0, 1e-10) | EXPECT_EQ(state.modes[0].classification, 1U) | EXPECT_EQ(state.vectors.Rows(), 1U) | EXPECT_EQ(state.vectors.Columns(), 24U) | EXPECT_NEAR(state.vectors(0U, 5U), std::sqrt(50.0 / 3.0), 1e-12) | EXPECT_EQ(state.vectors(0U, dof), 0.0) | ASSERT_EQ(state.eigenpair_checks.size(), 1U) | EXPECT_NEAR(state.eigenpair_checks[0].modal_mass, 1.0, 1e-12) | EXPECT_LE(state.eigenpair_checks[0].eta_r, 1e-10) | EXPECT_LE(state.eigenpair_checks[0].eta_energy, 1e-10) | EXPECT_LE(state.eigenpair_checks[0].rho_b, 1e-10) | EXPECT_EQ(state.backend.eigenvectors.Rows(), 0U) | ASSERT_TRUE(static_domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_NEAR(kff, 10369.0 / 7500.0, 1e-12) | EXPECT_NEAR(displacement[5U], 7500.0 / 10369.0, 1e-12) | EXPECT_NEAR(residual[5U], 0.0, 1e-12) | EXPECT_NEAR(residual[i], expected, 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.PartialBoundaryStaticRejectsUnbalancedDrillingMoment LinearFrequencyProcedureExecutor.PartialBoundaryStaticRejectsUnbalancedDrillingMoment; assertion 3개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.PartialBoundaryStaticRejectsUnbalancedDrillingMoment 유지 원문 검사 body 및 assertion 동일. 3257ad730d16550e25ba4286cfa165f6b4e84d2a54d3cc6b5d8163feea05465d 3257ad730d16550e25ba4286cfa165f6b4e84d2a54d3cc6b5d8163feea05465d "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_NE(StatusText(result.GetStatus()) .find(""global-equilibrium-tolerance-failure""), std::string::npos)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_NE(StatusText(result.GetStatus()) .find(""global-equilibrium-tolerance-failure""), std::string::npos)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.FreePanelRetainsSixRigidModesAndAllComputedEvidence LinearFrequencyProcedureExecutor.FreePanelRetainsSixRigidModesAndAllComputedEvidence; assertion 15개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.FreePanelRetainsSixRigidModesAndAllComputedEvidence 유지 원문 검사 body 및 assertion 동일. 9606266d6f08472c9d911615beddbfed51886ef04a943c708901bb30e245a992 9606266d6f08472c9d911615beddbfed51886ef04a943c708901bb30e245a992 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(state.mass_null_dimension, 4U) | EXPECT_EQ(state.finite_dimension, 20U) | ASSERT_EQ(state.modes.size(), 6U) | EXPECT_GE(state.eigenpair_checks.size(), 6U) | EXPECT_EQ(mode.classification, 0U) | EXPECT_EQ(mode.cluster_id, 1U) | EXPECT_LE(state.eta_gram, 1e-10) | EXPECT_LE(state.max_eta_orth, 1e-10) | EXPECT_LE(state.eta_mz, 1e-12) | EXPECT_LE(state.eta_kz, 1e-12) | EXPECT_LE(check.eta_r, 1e-10) | EXPECT_LE(check.eta_norm, 1e-10) | EXPECT_LE(check.eta_energy, 1e-10) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(state.mass_null_dimension, 4U) | EXPECT_EQ(state.finite_dimension, 20U) | ASSERT_EQ(state.modes.size(), 6U) | EXPECT_GE(state.eigenpair_checks.size(), 6U) | EXPECT_EQ(mode.classification, 0U) | EXPECT_EQ(mode.cluster_id, 1U) | EXPECT_LE(state.eta_gram, 1e-10) | EXPECT_LE(state.max_eta_orth, 1e-10) | EXPECT_LE(state.eta_mz, 1e-12) | EXPECT_LE(state.eta_kz, 1e-12) | EXPECT_LE(check.eta_r, 1e-10) | EXPECT_LE(check.eta_norm, 1e-10) | EXPECT_LE(check.eta_energy, 1e-10) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.ExcessRequestedModesFailsWithSourceContext LinearFrequencyProcedureExecutor.ExcessRequestedModesFailsWithSourceContext; assertion 6개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.ExcessRequestedModesFailsWithSourceContext 유지 원문 검사 body 및 assertion 동일. a384ea179cd4b72a4bedea2b8a465ff0e824a37858da50dfe0702d96c91b6c55 a384ea179cd4b72a4bedea2b8a465ff0e824a37858da50dfe0702d96c91b6c55 "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""insufficient-finite-modes"") | EXPECT_GT(result.GetStatus().Diagnostics()[0].location.line, 0U)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""insufficient-finite-modes"") | EXPECT_GT(result.GetStatus().Diagnostics()[0].location.line, 0U)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.PreservesDensityAndPhysicalUnitScaling LinearFrequencyProcedureExecutor.PreservesDensityAndPhysicalUnitScaling; assertion 12개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.PreservesDensityAndPhysicalUnitScaling 유지 원문 검사 body 및 assertion 동일. 54d62ee92fd5f41120fda65ddaeb341ba1f3bd0390e7cdf03c81b5f13b9f4fcd 54d62ee92fd5f41120fda65ddaeb341ba1f3bd0390e7cdf03c81b5f13b9f4fcd ASSERT_TRUE(baseline_domain.HasValue()) | ASSERT_TRUE(dense_domain.HasValue()) | ASSERT_TRUE(units_domain.HasValue()) | ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(dense.HasValue()) | ASSERT_TRUE(units.HasValue()) | EXPECT_NEAR( dense.Value().modes[0].eigenvalue / baseline.Value().modes[0].eigenvalue, 0.25, 1e-12) | EXPECT_NEAR(dense.Value().vectors(0U, 5U) / baseline.Value().vectors(0U, 5U), 0.5, 1e-12) | EXPECT_NEAR( units.Value().modes[0].eigenvalue / baseline.Value().modes[0].eigenvalue, 1.0, 1e-12) | EXPECT_NEAR( units.Value().vectors(0U, 5U) * length / baseline.Value().vectors(0U, 5U), 1.0, 1e-12) | EXPECT_LE(units.Value().eigenpair_checks[0].eta_r, 1e-10) | EXPECT_LE(units.Value().eigenpair_checks[0].eta_energy, 1e-10) ASSERT_TRUE(baseline_domain.HasValue()) | ASSERT_TRUE(dense_domain.HasValue()) | ASSERT_TRUE(units_domain.HasValue()) | ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(dense.HasValue()) | ASSERT_TRUE(units.HasValue()) | EXPECT_NEAR( dense.Value().modes[0].eigenvalue / baseline.Value().modes[0].eigenvalue, 0.25, 1e-12) | EXPECT_NEAR(dense.Value().vectors(0U, 5U) / baseline.Value().vectors(0U, 5U), 0.5, 1e-12) | EXPECT_NEAR( units.Value().modes[0].eigenvalue / baseline.Value().modes[0].eigenvalue, 1.0, 1e-12) | EXPECT_NEAR( units.Value().vectors(0U, 5U) * length / baseline.Value().vectors(0U, 5U), 1.0, 1e-12) | EXPECT_LE(units.Value().eigenpair_checks[0].eta_r, 1e-10) | EXPECT_LE(units.Value().eigenpair_checks[0].eta_energy, 1e-10) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/analysis/linear_frequency_procedure_test.cpp support@1-25 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_frequency_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a51e24264f3ae36759924761dd98817a3de835465648e49acff3d7c0b74e8f7c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/linear_frequency_procedure_test.cpp support@42-124 helper/oracle/fixture/include/static assertion 구간: StatusText, PanelDomain, if tests/integration/analysis/linear_frequency_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d9beda2ab213d77168db3de7088b66badb8266554add0a1df0249a3f53e814b2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/linear_frequency_procedure_test.cpp support@191-193 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_frequency_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d7ebb4e7a53ff4630e82b0c32bb66fd1bae66f119405d224a134d6256734b442 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/linear_static_analysis_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/integration/analysis/linear_static_analysis_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c796815b0cdc8b655da47ddab48bb3df2ef5d7334d949c9ede355e046b12294b c796815b0cdc8b655da47ddab48bb3df2ef5d7334d949c9ede355e046b12294b 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.FactorizesBeforeLoadAndSolvesWithoutRefactorization LinearStaticCli.FactorizesBeforeLoadAndSolvesWithoutRefactorization; assertion 5개 tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.FactorizesBeforeLoadAndSolvesWithoutRefactorization 유지 원문 검사 body 및 assertion 동일. 6da58cc645e25d2814d2622f68d964c8320625f00110b2e16ba19e5b1522ccc2 6da58cc645e25d2814d2622f68d964c8320625f00110b2e16ba19e5b1522ccc2 "ASSERT_TRUE(analysis->Run({input, output}).IsOk()) | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 1) | EXPECT_EQ(writer.WriteCalls(), 1) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize"", ""solver-solve"", ""writer-write""}))" "ASSERT_TRUE(analysis->Run({input, output}).IsOk()) | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 1) | EXPECT_EQ(writer.WriteCalls(), 1) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize"", ""solver-solve"", ""writer-write""}))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.FactorizesBeforeRejectingAnInvalidLoad LinearStaticCli.FactorizesBeforeRejectingAnInvalidLoad; assertion 8개 tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.FactorizesBeforeRejectingAnInvalidLoad 유지 원문 검사 body 및 assertion 동일. 65404a724a1ea299f6ceec1870dfa2b75eff091a7e83809aa589613be7e4e2fc 65404a724a1ea299f6ceec1870dfa2b75eff091a7e83809aa589613be7e4e2fc "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""unsupported-drilling-load"") | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 0) | EXPECT_EQ(writer.WriteCalls(), 0) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize""}))" "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""unsupported-drilling-load"") | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 0) | EXPECT_EQ(writer.WriteCalls(), 0) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize""}))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.RealPipelineHandlesAnalyticalAndNonzeroPrescription LinearStaticCli.RealPipelineHandlesAnalyticalAndNonzeroPrescription; assertion 17개 tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.RealPipelineHandlesAnalyticalAndNonzeroPrescription 유지 원문 검사 body 및 assertion 동일. 34f491015c713169674ef652f3e235e52cff78d9c55158b3dfa94614562c2a94 34f491015c713169674ef652f3e235e52cff78d9c55158b3dfa94614562c2a94 "ASSERT_TRUE(status.IsOk()) | EXPECT_EQ(writer.OutputPath(), output) | EXPECT_EQ(writer.NodeCount(), 2U) | EXPECT_TRUE(writer.Diagnostics().empty()) | ASSERT_EQ(state.Displacement().Size(), 12U) | EXPECT_EQ(state.Identity().step_name, ""Step-1"") | EXPECT_EQ(state.Identity().frame_index, 0U) | EXPECT_NEAR(state.Displacement()[0U], 0.1, 1.0e-12) | EXPECT_NEAR(state.Displacement()[6U], 0.2, 2.0e-10) | EXPECT_NEAR(state.ExternalForce()[6U], 10.0, 1.0e-12) | EXPECT_NEAR(state.InternalForce()[0U], -10.0, 1.0e-9) | EXPECT_NEAR(state.InternalForce()[6U], 10.0, 1.0e-9) | EXPECT_NEAR(state.Reaction()[0U], -10.0, 1.0e-9) | EXPECT_NEAR(state.Residual()[6U], 0.0, 1.0e-9) | EXPECT_EQ(state.EndpointResults().size(), 2U) | EXPECT_EQ(state.GaussResults().size(), 2U) | EXPECT_EQ(state.StressResults().size(), 2U)" "ASSERT_TRUE(status.IsOk()) | EXPECT_EQ(writer.OutputPath(), output) | EXPECT_EQ(writer.NodeCount(), 2U) | EXPECT_TRUE(writer.Diagnostics().empty()) | ASSERT_EQ(state.Displacement().Size(), 12U) | EXPECT_EQ(state.Identity().step_name, ""Step-1"") | EXPECT_EQ(state.Identity().frame_index, 0U) | EXPECT_NEAR(state.Displacement()[0U], 0.1, 1.0e-12) | EXPECT_NEAR(state.Displacement()[6U], 0.2, 2.0e-10) | EXPECT_NEAR(state.ExternalForce()[6U], 10.0, 1.0e-12) | EXPECT_NEAR(state.InternalForce()[0U], -10.0, 1.0e-9) | EXPECT_NEAR(state.InternalForce()[6U], 10.0, 1.0e-9) | EXPECT_NEAR(state.Reaction()[0U], -10.0, 1.0e-9) | EXPECT_NEAR(state.Residual()[6U], 0.0, 1.0e-9) | EXPECT_EQ(state.EndpointResults().size(), 2U) | EXPECT_EQ(state.GaussResults().size(), 2U) | EXPECT_EQ(state.StressResults().size(), 2U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.UsesExistingLifecycleAndExactlyOneFactorization Mitc4ShellCli.UsesExistingLifecycleAndExactlyOneFactorization; assertion 5개 tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.UsesExistingLifecycleAndExactlyOneFactorization 유지 원문 검사 body 및 assertion 동일. 1dea412548e1077c66d10536f0f8640b34a5b0eadc19bb0cebbf47878b4c0b9b 1dea412548e1077c66d10536f0f8640b34a5b0eadc19bb0cebbf47878b4c0b9b "ASSERT_TRUE(analysis->Run({input, output}).IsOk()) | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 1) | EXPECT_EQ(writer.WriteCalls(), 1) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize"", ""solver-solve"", ""writer-write""}))" "ASSERT_TRUE(analysis->Run({input, output}).IsOk()) | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 1) | EXPECT_EQ(writer.WriteCalls(), 1) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize"", ""solver-solve"", ""writer-write""}))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.AppliesKfcForNonzeroPrescribedDisplacement Mitc4ShellCli.AppliesKfcForNonzeroPrescribedDisplacement; assertion 17개 tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.AppliesKfcForNonzeroPrescribedDisplacement 유지 원문 검사 body 및 assertion 동일. 221c877473ceb9bc29a9ba1386ab2485083b7474572a5ba936ae3b9524c1e15a 221c877473ceb9bc29a9ba1386ab2485083b7474572a5ba936ae3b9524c1e15a EXPECT_TRUE(status.IsOk()) | ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(solver.FactorizeCalls(), 1) | ASSERT_EQ(solver.SolveCalls(), 1) | ASSERT_EQ(solver.FactorizedDimension(), 1U) | ASSERT_EQ(solver.Rhs().size(), 1U) | EXPECT_NEAR(solver.ScalarStiffness(), 440.0 / 9.0, 1.0e-12) | EXPECT_NEAR(solver.Rhs()[0U], -4.0 / 9.0, 1.0e-12) | EXPECT_EQ(writer.OutputPath(), output) | EXPECT_EQ(writer.NodeCount(), 4U) | EXPECT_EQ(writer.ShellElementCount(), 1U) | 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) | EXPECT_EQ(state.ShellResults().size(), 4U) | EXPECT_GT(state.PhysicalStrainEnergy(), 0.0) EXPECT_TRUE(status.IsOk()) | ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(solver.FactorizeCalls(), 1) | ASSERT_EQ(solver.SolveCalls(), 1) | ASSERT_EQ(solver.FactorizedDimension(), 1U) | ASSERT_EQ(solver.Rhs().size(), 1U) | EXPECT_NEAR(solver.ScalarStiffness(), 440.0 / 9.0, 1.0e-12) | EXPECT_NEAR(solver.Rhs()[0U], -4.0 / 9.0, 1.0e-12) | EXPECT_EQ(writer.OutputPath(), output) | EXPECT_EQ(writer.NodeCount(), 4U) | EXPECT_EQ(writer.ShellElementCount(), 1U) | 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) | EXPECT_EQ(state.ShellResults().size(), 4U) | EXPECT_GT(state.PhysicalStrainEnergy(), 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.RejectsSingularAndAcceptsZeroByZeroFreeSystem Mitc4ShellCli.RejectsSingularAndAcceptsZeroByZeroFreeSystem; assertion 9개 tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.RejectsSingularAndAcceptsZeroByZeroFreeSystem 유지 원문 검사 body 및 assertion 동일. 9bc841e0fc20cccf0cec07e025f03be672a5123d4c9fa5fcf23f9d0072fd34d6 9bc841e0fc20cccf0cec07e025f03be672a5123d4c9fa5fcf23f9d0072fd34d6 ASSERT_FALSE(singular.IsOk()) | EXPECT_EQ(singular.Category(), fesa::FailureCategory::kSolver) | EXPECT_EQ(singular_writer.WriteCalls(), 0) | ASSERT_TRUE(constrained.IsOk()) | EXPECT_EQ(constrained_solver.FactorizeCalls(), 1) | EXPECT_EQ(constrained_solver.FactorizedDimension(), 0U) | EXPECT_EQ(constrained_solver.SolveCalls(), 1) | EXPECT_TRUE(constrained_solver.Rhs().empty()) | EXPECT_EQ(constrained_writer.State().ShellResults().size(), 4U) ASSERT_FALSE(singular.IsOk()) | EXPECT_EQ(singular.Category(), fesa::FailureCategory::kSolver) | EXPECT_EQ(singular_writer.WriteCalls(), 0) | ASSERT_TRUE(constrained.IsOk()) | EXPECT_EQ(constrained_solver.FactorizeCalls(), 1) | EXPECT_EQ(constrained_solver.FactorizedDimension(), 0U) | EXPECT_EQ(constrained_solver.SolveCalls(), 1) | EXPECT_TRUE(constrained_solver.Rhs().empty()) | EXPECT_EQ(constrained_writer.State().ShellResults().size(), 4U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.DoesNotWriteAnInvalidRecoveryCandidate Mitc4ShellCli.DoesNotWriteAnInvalidRecoveryCandidate; assertion 6개 tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.DoesNotWriteAnInvalidRecoveryCandidate 유지 원문 검사 body 및 assertion 동일. 8c9ed32ac29d2ce92de257c1fe16ae692ff037e47ae1e267ceb47d2e14fb3999 8c9ed32ac29d2ce92de257c1fe16ae692ff037e47ae1e267ceb47d2e14fb3999 "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(adapter_events.empty())" "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(adapter_events.empty())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/linear_static_analysis_test.cpp support@1-306 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, WriteText, AxialDeck, AllConstrainedShellDeck, PrescribedShellDeck, SpyLinearSolver, RecordingMklSolver, NonfiniteLinearSolver, SpyResultsWriter, CapturingResultsWriter, State tests/integration/analysis/linear_static_analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 09f71dbb33b22661eb43b04ddd7730f00b09cf63202093cb5008f37fe51a59f2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/linear_static_analysis_test.cpp support@388-389 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_static_analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 36bbca6d939f00341c98ba573a4fdc3cfc85b6ef660852c5b0a862bfcfc0fd6c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/linear_static_analysis_test.cpp support@411-412 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_static_analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 58066e545facf79db27e598db7e91f24ed93b6771efa3ca779ecfe4df76a7344 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/linear_static_analysis_test.cpp support@449-450 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_static_analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. dd0e363915792cde8bf2d8793ddaec5a8c40204888921d46f70f1f507387ac4a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/linear_static_analysis_test.cpp support@485-486 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_static_analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 83bce9b68552044428c9e22ca488475bf399b515887403c179e0f49d9230a028 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/nonlinear_static_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/integration/analysis/nonlinear_static_procedure_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1e061b20491b18339e35610d48168180a3a8dc329fd09565e392268dbce7011c 88175e6ca8c6905e7706f40141e85676d7ce3c1763b49e2ebfb7beecd6d9feab 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/nonlinear_static_procedure_test.cpp NonlinearStaticProcedure.AllConstrainedNlgeomRunWritesSchemaV1AfterAcceptedFrames NonlinearStaticProcedure.AllConstrainedNlgeomRunWritesSchemaV1AfterAcceptedFrames; assertion 6개 tests/integration/analysis/nonlinear_static_procedure_test.cpp NonlinearStaticProcedure.AllConstrainedNlgeomRunWritesSchemaV1AfterAcceptedFrames 유지 원문 검사 body 및 assertion 동일. f26bd90fa30e1fa68296b58bf1a76cc5630c88cda15c0ef729d651d3395c74ec f26bd90fa30e1fa68296b58bf1a76cc5630c88cda15c0ef729d651d3395c74ec "ASSERT_EQ(exit_code, 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(metadata, 0) | EXPECT_EQ(ReadStringAttribute(metadata, ""feature_id""), ""nonlinear-static-newton-raphson"") | EXPECT_GT(H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0)" "ASSERT_EQ(exit_code, 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(metadata, 0) | EXPECT_EQ(ReadStringAttribute(metadata, ""feature_id""), ""nonlinear-static-newton-raphson"") | EXPECT_GT(H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/nonlinear_static_procedure_test.cpp NonlinearStaticProcedure.NonzeroPrescribedMotionWritesCurrentArmSpatialAppliedPlusReactionBalance NonlinearStaticProcedure.NonzeroPrescribedMotionWritesCurrentArmSpatialAppliedPlusReactionBalance; assertion 4개 tests/integration/analysis/nonlinear_static_procedure_test.cpp NonlinearStaticProcedure.NonzeroPrescribedMotionWritesCurrentArmSpatialAppliedPlusReactionBalance 유지 원문 검사 body 및 assertion 동일. 9ff42852bb00d02f437a4da95165fdf5d26e6b838001a0d5ab14a85a04317640 9ff42852bb00d02f437a4da95165fdf5d26e6b838001a0d5ab14a85a04317640 ASSERT_EQ(exit_code, 0) | ASSERT_GE(dataset, 0) | ASSERT_GE(H5Dread(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, actual.data()), 0) | EXPECT_NEAR(actual[component], expected[component], 1.0e-10) ASSERT_EQ(exit_code, 0) | ASSERT_GE(dataset, 0) | ASSERT_GE(H5Dread(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, actual.data()), 0) | EXPECT_NEAR(actual[component], expected[component], 1.0e-10) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/nonlinear_static_procedure_test.cpp support@1-292 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, WriteText, AllConstrainedNonlinearShellDeck, NonzeroPrescribedNonlinearShellDeck, Hdf5File, ReadStringAttribute, ReadNodalDataset, ReadConstraintMask, SpatialMoment, ReconstructGlobalBalance tests/integration/analysis/nonlinear_static_procedure_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 28bacfe1a5c4b6f4da94867bd5ac79b2b4e93a6f5fecfb0c4ab146dc9b324eef 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/nonlinear_static_procedure_test.cpp support@316-317 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/nonlinear_static_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 185679e57938f51bc52ac8004de60266decc8599baf2c9e6aac91a3cec7811be 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/nonlinear_static_procedure_test.cpp support@345-346 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/nonlinear_static_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/shell_surface_pressure_linear_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f160a13c739276bb27b6b769f4b5d7fc53ab6bbe0e4917b1388aa171313f834e f160a13c739276bb27b6b769f4b5d7fc53ab6bbe0e4917b1388aa171313f834e 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.UsesReferenceNormalAndAreaAfterPrescribedDisplacement LinearShellSurfacePressure.UsesReferenceNormalAndAreaAfterPrescribedDisplacement; assertion 2개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.UsesReferenceNormalAndAreaAfterPrescribedDisplacement 유지 원문 검사 body 및 assertion 동일. e721439d9254d983e65489ab2bbc4fb02e07d31658fc561f5401bfbd83abaa10 e721439d9254d983e65489ab2bbc4fb02e07d31658fc561f5401bfbd83abaa10 EXPECT_DOUBLE_EQ(state.Displacement()[8U], 5.0) | EXPECT_EQ(SumTranslation(state.ExternalForce()), (std::array{0.0, 0.0, -4.0})) EXPECT_DOUBLE_EQ(state.Displacement()[8U], 5.0) | EXPECT_EQ(SumTranslation(state.ExternalForce()), (std::array{0.0, 0.0, -4.0})) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.AssemblesBeforeProjectionAndIncludesConstrainedReaction LinearShellSurfacePressure.AssemblesBeforeProjectionAndIncludesConstrainedReaction; assertion 2개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.AssemblesBeforeProjectionAndIncludesConstrainedReaction 유지 원문 검사 body 및 assertion 동일. ba222e9848a5e378bcf9c71a3c33243ac8771e3fac0c5822851e2102ed967c4d ba222e9848a5e378bcf9c71a3c33243ac8771e3fac0c5822851e2102ed967c4d EXPECT_EQ(SumTranslation(state.ExternalForce()), (std::array{0.0, 0.0, -4.0})) | EXPECT_EQ(SumTranslation(state.Reaction()), (std::array{0.0, 0.0, 4.0})) EXPECT_EQ(SumTranslation(state.ExternalForce()), (std::array{0.0, 0.0, -4.0})) | EXPECT_EQ(SumTranslation(state.Reaction()), (std::array{0.0, 0.0, 4.0})) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.SatisfiesFreeResidualGlobalResultantAndMoment LinearShellSurfacePressure.SatisfiesFreeResidualGlobalResultantAndMoment; assertion 2개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.SatisfiesFreeResidualGlobalResultantAndMoment 유지 원문 검사 body 및 assertion 동일. 171514cf20d839500b5919fd98671a3c0f805d8552929fcc111886400eb35cb3 171514cf20d839500b5919fd98671a3c0f805d8552929fcc111886400eb35cb3 EXPECT_NEAR(value, 0.0, 1.0e-8) | EXPECT_NEAR(state.VerificationMetrics()[0U], 0.0, 1.0e-10) EXPECT_NEAR(value, 0.0, 1.0e-8) | EXPECT_NEAR(state.VerificationMetrics()[0U], 0.0, 1.0e-10) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.PreservesS4S4rMeshAndCyclicOrderInvariance LinearShellSurfacePressure.PreservesS4S4rMeshAndCyclicOrderInvariance; assertion 6개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.PreservesS4S4rMeshAndCyclicOrderInvariance 유지 원문 검사 body 및 assertion 동일. 1439f391357b0fe3f6dd44f5b7ce79f74d7ed2df71d6eb5a3b1f4c7081cf4237 1439f391357b0fe3f6dd44f5b7ce79f74d7ed2df71d6eb5a3b1f4c7081cf4237 ASSERT_EQ(s4.ExternalForce().Size(), s4r.ExternalForce().Size()) | ASSERT_EQ(s4.ExternalForce().Size(), cyclic.ExternalForce().Size()) | EXPECT_DOUBLE_EQ(s4.ExternalForce()[index], s4r.ExternalForce()[index]) | EXPECT_DOUBLE_EQ(s4.ExternalForce()[index], cyclic.ExternalForce()[index]) | EXPECT_DOUBLE_EQ(s4.Reaction()[index], s4r.Reaction()[index]) | EXPECT_DOUBLE_EQ(s4.Reaction()[index], cyclic.Reaction()[index]) ASSERT_EQ(s4.ExternalForce().Size(), s4r.ExternalForce().Size()) | ASSERT_EQ(s4.ExternalForce().Size(), cyclic.ExternalForce().Size()) | EXPECT_DOUBLE_EQ(s4.ExternalForce()[index], s4r.ExternalForce()[index]) | EXPECT_DOUBLE_EQ(s4.ExternalForce()[index], cyclic.ExternalForce()[index]) | EXPECT_DOUBLE_EQ(s4.Reaction()[index], s4r.Reaction()[index]) | EXPECT_DOUBLE_EQ(s4.Reaction()[index], cyclic.Reaction()[index]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.WritesSchemaZeroWithoutPressureDataset LinearShellSurfacePressure.WritesSchemaZeroWithoutPressureDataset; assertion 12개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.WritesSchemaZeroWithoutPressureDataset 유지 원문 검사 body 및 assertion 동일. a1753dcd30b46c5386bcb0198661ae6982efcbbce8c4b8deb2ab12729c7cd5c0 a1753dcd30b46c5386bcb0198661ae6982efcbbce8c4b8deb2ab12729c7cd5c0 "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | ASSERT_GE(metadata, 0) | ASSERT_GE(schema, 0) | ASSERT_GE(H5Aread(schema, H5T_NATIVE_UINT64, &schema_version), 0) | EXPECT_EQ(schema_version, 0U) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Aclose(schema), 0) | EXPECT_GE(H5Gclose(metadata), 0) | EXPECT_GE(H5Fclose(file), 0)" "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | ASSERT_GE(metadata, 0) | ASSERT_GE(schema, 0) | ASSERT_GE(H5Aread(schema, H5T_NATIVE_UINT64, &schema_version), 0) | EXPECT_EQ(schema_version, 0U) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Aclose(schema), 0) | EXPECT_GE(H5Gclose(metadata), 0) | EXPECT_GE(H5Fclose(file), 0)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/shell_surface_pressure_linear_test.cpp support@1-176 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, WriteText, ShellDeck, CapturingResultsWriter, State, RunLinear, SumTranslation tests/integration/analysis/shell_surface_pressure_linear_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e57c8ba9f74968a8c7ca06c327d4bae2312eb212b552414c2365975b785c1ef3 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 10개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 76f0d621c519f1ca1cb68fafd700bca52c94c69ac975a274eac995298ff77df3 76f0d621c519f1ca1cb68fafd700bca52c94c69ac975a274eac995298ff77df3 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.AssemblesFollowerForceFromCurrentTrialGeometry NonlinearShellSurfacePressure.AssemblesFollowerForceFromCurrentTrialGeometry; assertion 1개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.AssemblesFollowerForceFromCurrentTrialGeometry 유지 원문 검사 body 및 assertion 동일. 275b59b0a99ff5bcb4936eac0dd4373eb3fb04e88d56a47ff1aff8a27b2c86f9 275b59b0a99ff5bcb4936eac0dd4373eb3fb04e88d56a47ff1aff8a27b2c86f9 EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.FormsResidualAndTangentWithApprovedExternalSigns NonlinearShellSurfacePressure.FormsResidualAndTangentWithApprovedExternalSigns; assertion 2개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.FormsResidualAndTangentWithApprovedExternalSigns 유지 원문 검사 body 및 assertion 동일. 0a6136e7ba03b60316d311f5f6b42f16252978acda71b7d0b56f16eb12b209ba 0a6136e7ba03b60316d311f5f6b42f16252978acda71b7d0b56f16eb12b209ba EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_NEAR(SumTranslation(residual, 2U), 6.0, 1.0e-12) EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_NEAR(SumTranslation(residual, 2U), 6.0, 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.AppliesIncrementFactorExactlyOnce NonlinearShellSurfacePressure.AppliesIncrementFactorExactlyOnce; assertion 1개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.AppliesIncrementFactorExactlyOnce 유지 원문 검사 body 및 assertion 동일. fd422711071867040b064e56df5df62d50a20128bb59e934095f3657cf85f95e fd422711071867040b064e56df5df62d50a20128bb59e934095f3657cf85f95e EXPECT_NEAR(SumTranslation(external, 2U), -0.42, 1.0e-12) EXPECT_NEAR(SumTranslation(external, 2U), -0.42, 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.UsesFullUnsymmetricTangentSolverPath NonlinearShellSurfacePressure.UsesFullUnsymmetricTangentSolverPath; assertion 7개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.UsesFullUnsymmetricTangentSolverPath 유지 원문 검사 body 및 assertion 동일. 63a34f032cb16dd83f579b4dd4b484e3c326615ba25fa1133eee16013843c11f 63a34f032cb16dd83f579b4dd4b484e3c326615ba25fa1133eee16013843c11f EXPECT_NE(SumTranslation(external, 2U), 0.0) | EXPECT_NE(SumTranslation(residual, 2U), 0.0) | ASSERT_TRUE(central.HasValue()) | ASSERT_TRUE(forward.HasValue()) | ASSERT_TRUE(backward.HasValue()) | EXPECT_NEAR(finite_difference, central.Value().external_tangent[row * 24U + 12U], 1.0e-8) | EXPECT_TRUE(has_antisymmetric_entry) EXPECT_NE(SumTranslation(external, 2U), 0.0) | EXPECT_NE(SumTranslation(residual, 2U), 0.0) | ASSERT_TRUE(central.HasValue()) | ASSERT_TRUE(forward.HasValue()) | ASSERT_TRUE(backward.HasValue()) | EXPECT_NEAR(finite_difference, central.Value().external_tangent[row * 24U + 12U], 1.0e-8) | EXPECT_TRUE(has_antisymmetric_entry) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.ConvergesOpenPatchAndPreservesAntisymmetricEvidence NonlinearShellSurfacePressure.ConvergesOpenPatchAndPreservesAntisymmetricEvidence; assertion 2개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.ConvergesOpenPatchAndPreservesAntisymmetricEvidence 유지 원문 검사 body 및 assertion 동일. 04b9fe95ba4947d608fc9a7ec79b1740e70ecfbbcd3a01e2e16606d5243818ae 04b9fe95ba4947d608fc9a7ec79b1740e70ecfbbcd3a01e2e16606d5243818ae "EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_GT(H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0)" "EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_GT(H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.SatisfiesAcceptedFreeResidualAndFactorOneGlobalBalance NonlinearShellSurfacePressure.SatisfiesAcceptedFreeResidualAndFactorOneGlobalBalance; assertion 1개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.SatisfiesAcceptedFreeResidualAndFactorOneGlobalBalance 유지 원문 검사 body 및 assertion 동일. 57b26b0b13a3b8aeb13983659e70fa74ee28ce08b9657ee48534d4357dec6986 57b26b0b13a3b8aeb13983659e70fa74ee28ce08b9657ee48534d4357dec6986 EXPECT_LE(MaximumAbs(equilibrium), 1.0e-8) EXPECT_LE(MaximumAbs(equilibrium), 1.0e-8) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.IsObjectiveUnderRigidMotionAndTracksCurrentArea NonlinearShellSurfacePressure.IsObjectiveUnderRigidMotionAndTracksCurrentArea; assertion 4개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.IsObjectiveUnderRigidMotionAndTracksCurrentArea 유지 원문 검사 body 및 assertion 동일. bf38184a7460af3225ecdfb1d17c748cb2827953f7ab20cb0d09aa512b765102 bf38184a7460af3225ecdfb1d17c748cb2827953f7ab20cb0d09aa512b765102 ASSERT_TRUE(contribution.HasValue()) | EXPECT_NEAR(force_x, 0.0, 1.0e-12) | EXPECT_NEAR(force_y, 4.0, 1.0e-12) | EXPECT_NEAR(force_z, 0.0, 1.0e-12) ASSERT_TRUE(contribution.HasValue()) | EXPECT_NEAR(force_x, 0.0, 1.0e-12) | EXPECT_NEAR(force_y, 4.0, 1.0e-12) | EXPECT_NEAR(force_z, 0.0, 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.ReducesSerialAndParallelContributionsDeterministically NonlinearShellSurfacePressure.ReducesSerialAndParallelContributionsDeterministically; assertion 2개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.ReducesSerialAndParallelContributionsDeterministically 유지 원문 검사 body 및 assertion 동일. 7221071e8ff084a8b909b3820cf880025e76e8d17c003c07e58ce9bac6e812b5 7221071e8ff084a8b909b3820cf880025e76e8d17c003c07e58ce9bac6e812b5 EXPECT_EQ(first_force, second_force) | EXPECT_NE(SumTranslation(first_force, 2U), 0.0) EXPECT_EQ(first_force, second_force) | EXPECT_NE(SumTranslation(first_force, 2U), 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.InvalidTrialRollsBackCommittedFrameAndFinalOutput NonlinearShellSurfacePressure.InvalidTrialRollsBackCommittedFrameAndFinalOutput; assertion 2개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.InvalidTrialRollsBackCommittedFrameAndFinalOutput 유지 원문 검사 body 및 assertion 동일. 36e810eaf381a43605bffdffe6997ad85e7b0ed2e01de1c00989cbbb49d0f80d 36e810eaf381a43605bffdffe6997ad85e7b0ed2e01de1c00989cbbb49d0f80d EXPECT_NE(exit_code, 0) | EXPECT_EQ(ReadBytes(output), previous) EXPECT_NE(exit_code, 0) | EXPECT_EQ(ReadBytes(output), previous) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.WritesSchemaOneExternalInternalResidualReactionAndEquilibrium NonlinearShellSurfacePressure.WritesSchemaOneExternalInternalResidualReactionAndEquilibrium; assertion 3개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.WritesSchemaOneExternalInternalResidualReactionAndEquilibrium 유지 원문 검사 body 및 assertion 동일. 43eabc099c0167988e47483e5a56b5be6f7af1257dc4992ee64c812b925d6ad9 43eabc099c0167988e47483e5a56b5be6f7af1257dc4992ee64c812b925d6ad9 "EXPECT_GT(H5Lexists(file.Get(), (root + suffix).c_str(), H5P_DEFAULT), 0) | EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_EQ(H5Lexists(file.Get(), ""/surface_pressure"", H5P_DEFAULT), 0)" "EXPECT_GT(H5Lexists(file.Get(), (root + suffix).c_str(), H5P_DEFAULT), 0) | EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_EQ(H5Lexists(file.Get(), ""/surface_pressure"", H5P_DEFAULT), 0)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp support@1-224 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, Hdf5File, WriteText, ReadBytes, NonlinearPressureDeck, ReadFrameDataset, ReadEquilibrium, SumTranslation, MaximumAbs, for, CurrentPressureInput, RunNonlinearPressure tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ef95b2da7f58bff98fb85e60df3206dec9935f7f1af799fca4fade510af8a9aa 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_gauss_oracle.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/integration/analysis/thermal_gauss_oracle.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d788dbffcaedabfd16337b9683fd30803efb69cee2e64da08c09c4ccff29d12f d788dbffcaedabfd16337b9683fd30803efb69cee2e64da08c09c4ccff29d12f 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_gauss_oracle.h support@1-70 helper/oracle/fixture/include/static assertion 구간: thermal_oracle, GaussPoint tests/integration/analysis/thermal_gauss_oracle.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eefed1217413733d2b6f2c59534a7501f9a2256dddd8140f1b6fc970af8bcec6 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_oracle_generator.py file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/integration/analysis/thermal_oracle_generator.py file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9c7d218fb43f93b77f0b84d158fcdc32033931a63f67b46e0e8adbac48b678dd 9c7d218fb43f93b77f0b84d158fcdc32033931a63f67b46e0e8adbac48b678dd 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_oracle_generator.py add fixture/oracle/helper add tests/integration/analysis/thermal_oracle_generator.py add 유지 원문 검사 body 및 assertion 동일. 23e1150085d3fe1a5d74d2299831c98dd48f86eb9930a91b18600fc30d590845 23e1150085d3fe1a5d74d2299831c98dd48f86eb9930a91b18600fc30d590845 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_oracle_generator.py neg fixture/oracle/helper neg tests/integration/analysis/thermal_oracle_generator.py neg 유지 원문 검사 body 및 assertion 동일. 7f7c8cb6ea41ea38bda49db120a6d2cd2848779150281160c8d32c61b566b46e 7f7c8cb6ea41ea38bda49db120a6d2cd2848779150281160c8d32c61b566b46e 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_oracle_generator.py mul fixture/oracle/helper mul tests/integration/analysis/thermal_oracle_generator.py mul 유지 원문 검사 body 및 assertion 동일. 8be987139da7dda1626167aab28c0cff97553f2597f44e6e365ceab74df9bf11 8be987139da7dda1626167aab28c0cff97553f2597f44e6e365ceab74df9bf11 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_oracle_generator.py div fixture/oracle/helper div tests/integration/analysis/thermal_oracle_generator.py div 유지 원문 검사 body 및 assertion 동일. f88c22b7ecdac33d93b72af346a9809c1076dff336d7fe05e45a8ea0ce5cda98 f88c22b7ecdac33d93b72af346a9809c1076dff336d7fe05e45a8ea0ce5cda98 assert b[0] > 0 or b[1] < 0 assert b[0] > 0 or b[1] < 0 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_oracle_generator.py scale fixture/oracle/helper scale tests/integration/analysis/thermal_oracle_generator.py scale 유지 원문 검사 body 및 assertion 동일. b2d4e44e7198bea03d4b8e9aa478db99139a37e2df97553ad90c222e6c2d363e b2d4e44e7198bea03d4b8e9aa478db99139a37e2df97553ad90c222e6c2d363e 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_oracle_generator.py legendre fixture/oracle/helper legendre tests/integration/analysis/thermal_oracle_generator.py legendre 유지 원문 검사 body 및 assertion 동일. ac998c8e064d80b57bf76d7a32e7414ee2a98bc41f5bf66df11460e2a866ded5 ac998c8e064d80b57bf76d7a32e7414ee2a98bc41f5bf66df11460e2a866ded5 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_oracle_generator.py bracket fixture/oracle/helper bracket tests/integration/analysis/thermal_oracle_generator.py bracket 유지 원문 검사 body 및 assertion 동일. 6547b8bc55d38c8fc5108617a4b670ec13e1a35ff637dc4c2b49d4a89a27d47a 6547b8bc55d38c8fc5108617a4b670ec13e1a35ff637dc4c2b49d4a89a27d47a 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_oracle_generator.py rule fixture/oracle/helper rule tests/integration/analysis/thermal_oracle_generator.py rule 유지 원문 검사 body 및 assertion 동일. 66e3896608075721c4941eace553b6bd6dfb46f4035079736663145c9fe97998 66e3896608075721c4941eace553b6bd6dfb46f4035079736663145c9fe97998 assert pl * ph < 0 | assert all(a[1] < b[0] for a, b in zip(result, result[1:])) | assert sum(F(r[2]) for r in result) < 2 < sum(F(r[3]) for r in result) assert pl * ph < 0 | assert all(a[1] < b[0] for a, b in zip(result, result[1:])) | assert sum(F(r[2]) for r in result) < 2 < sum(F(r[3]) for r in result) 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_oracle_generator.py slab_fixtures fixture/oracle/helper slab_fixtures tests/integration/analysis/thermal_oracle_generator.py slab_fixtures 유지 원문 검사 body 및 assertion 동일. 975f511ac674e3b180991c3f72b487234ce8712cb424a85094be969c99361561 975f511ac674e3b180991c3f72b487234ce8712cb424a85094be969c99361561 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_oracle_generator.py support@1-14 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/thermal_oracle_generator.py file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a3be554d66397807817915492b0f6e5d20acf5873a97c99032017cd6cc6d01a5 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_oracle_generator.py support@215-244 helper/oracle/fixture/include/static assertion 구간: thermal_oracle, GaussPoint, Bracket, SlabCase tests/integration/analysis/thermal_oracle_generator.py file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5d91b01795d7cc5fbaa1b6c701fdd468978526c523b9a5d14136b3d82b5e9279 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_physics_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/integration/analysis/thermal_physics_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 76b826d9162c196c136134c48c4c5116b8b95d0dee90f65fa7a8359f97d26894 fd272656d0a4bfda4a8cf075b0064a27ac6f493cb32d73c32f7e308844148c81 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.InsulatedUniformAndZeroRetainAllFramesWithConservation ThermalPhysics.InsulatedUniformAndZeroRetainAllFramesWithConservation; assertion 5개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.InsulatedUniformAndZeroRetainAllFramesWithConservation 유지 원문 검사 body 및 assertion 동일. edf0f539db5122e88db306402c100c973d9367d15826ff41df5831b9874050c7 edf0f539db5122e88db306402c100c973d9367d15826ff41df5831b9874050c7 EXPECT_LE(std::abs(frame.temperature[i] - temperature), bound) | EXPECT_EQ(metrics.capacity_budget, 0) | EXPECT_EQ(metrics.energy_defect, 0) | EXPECT_EQ(metrics.dissipation_defect, 0) | EXPECT_EQ(metrics.flux_values, 8U * 4U * 72U) EXPECT_LE(std::abs(frame.temperature[i] - temperature), bound) | EXPECT_EQ(metrics.capacity_budget, 0) | EXPECT_EQ(metrics.energy_defect, 0) | EXPECT_EQ(metrics.dissipation_defect, 0) | EXPECT_EQ(metrics.flux_values, 8U * 4U * 72U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.DiscreteEigenmodeHasFirstOrderTimeConvergence ThermalPhysics.DiscreteEigenmodeHasFirstOrderTimeConvergence; assertion 4개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.DiscreteEigenmodeHasFirstOrderTimeConvergence 유지 원문 검사 body 및 assertion 동일. 1d52f524f76f2684bb44a8432cd192d154ee2cc3246fbea4cbe564c74132a60d 1d52f524f76f2684bb44a8432cd192d154ee2cc3246fbea4cbe564c74132a60d EXPECT_LE(agreement.hi, total_budget.hi) | EXPECT_LE((total_budget / mode_norm).hi, error_norm.lo / 1000) | EXPECT_GE(order, .97) | EXPECT_LE(order, 1.02) EXPECT_LE(agreement.hi, total_budget.hi) | EXPECT_LE((total_budget / mode_norm).hi, error_norm.lo / 1000) | EXPECT_GE(order, .97) | EXPECT_LE(order, 1.02) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.SignedOverlappingAndConstrainedPowerBalanceByComponent ThermalPhysics.SignedOverlappingAndConstrainedPowerBalanceByComponent; assertion 6개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.SignedOverlappingAndConstrainedPowerBalanceByComponent 유지 원문 검사 body 및 assertion 동일. 2d2c5cc010b1987f2ab8df39ea5a39746869dd7c226da2fdfe5f0337a2adbe16 2d2c5cc010b1987f2ab8df39ea5a39746869dd7c226da2fdfe5f0337a2adbe16 EXPECT_EQ(p.assembly.HeatInput()[20], 5) | EXPECT_EQ(p.assembly.HeatInput()[34], -5) | EXPECT_DOUBLE_EQ(frame.temperature[i], other_frame.temperature[i]) | EXPECT_LE(first.Abs(), metrics.steps[step - 1].energy_bound) | EXPECT_LE(energy[1].Abs(), metrics.steps[step - 1].energy_bound) | EXPECT_LE(reaction_shift.Abs(), subtraction.hi) EXPECT_EQ(p.assembly.HeatInput()[20], 5) | EXPECT_EQ(p.assembly.HeatInput()[34], -5) | EXPECT_DOUBLE_EQ(frame.temperature[i], other_frame.temperature[i]) | EXPECT_LE(first.Abs(), metrics.steps[step - 1].energy_bound) | EXPECT_LE(energy[1].Abs(), metrics.steps[step - 1].energy_bound) | EXPECT_LE(reaction_shift.Abs(), subtraction.hi) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.PrivateFullEndStripRespectsThicknessMaterialJumpAndFoldResistance ThermalPhysics.PrivateFullEndStripRespectsThicknessMaterialJumpAndFoldResistance; assertion 7개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.PrivateFullEndStripRespectsThicknessMaterialJumpAndFoldResistance 유지 원문 검사 body 및 assertion 동일. 98716955c3d594ac8083ae9a474374c5888912c98ba4d073f991296e2b65c1ae 98716955c3d594ac8083ae9a474374c5888912c98ba4d073f991296e2b65c1ae ASSERT_GT(denominator.lo, 0) | EXPECT_LE((I{result.temperature[i]} - mid).Abs(), bound.hi + (mid - I{mid.Mid()}).Abs()) | EXPECT_LE((right - mid).Abs(), reaction_budget.hi) | EXPECT_LE((left + mid).Abs(), reaction_budget.hi) | EXPECT_LE((left + right).Abs(), result.evidence.energy_bound) | EXPECT_LE((I{q.X()} + mid).Abs(), 24 * bound.hi + Gamma(2048).hi * 24) | EXPECT_LE((I{component} + I{5} / I{3}).Abs(), 400 * bound.hi + Gamma(2048).hi * 400) ASSERT_GT(denominator.lo, 0) | EXPECT_LE((I{result.temperature[i]} - mid).Abs(), bound.hi + (mid - I{mid.Mid()}).Abs()) | EXPECT_LE((right - mid).Abs(), reaction_budget.hi) | EXPECT_LE((left + mid).Abs(), reaction_budget.hi) | EXPECT_LE((left + right).Abs(), result.evidence.energy_bound) | EXPECT_LE((I{q.X()} + mid).Abs(), 24 * bound.hi + Gamma(2048).hi * 24) | EXPECT_LE((I{component} + I{5} / I{3}).Abs(), 400 * bound.hi + Gamma(2048).hi * 400) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.PrivateAffineFieldRotationNormalAndUnaveragedMidplaneTraces ThermalPhysics.PrivateAffineFieldRotationNormalAndUnaveragedMidplaneTraces; assertion 7개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.PrivateAffineFieldRotationNormalAndUnaveragedMidplaneTraces 유지 원문 검사 body 및 assertion 동일. 0149790ce0000a7f3bfa36e529afff49efc9d2cd79b3a2fa2038d5eaf5765773 0149790ce0000a7f3bfa36e529afff49efc9d2cd79b3a2fa2038d5eaf5765773 EXPECT_FALSE(cache.matrix.has_value()) | EXPECT_LE((dot - I{static_cast(a == b)}).Abs(), (Gamma(2048) * absolute).hi) | EXPECT_GT(r[0].Cross(r[1]).Dot(r[2]), 0) | EXPECT_LE(std::abs(q[c] - expected[c]), budget) | EXPECT_LE((actual_local - expected_local).Abs(), budget + Gamma(16).hi * k * (8 + 16 / h) * scale) | EXPECT_EQ(traces[0][6 * point + 2].Dot(normal), 0) | EXPECT_LE( std::abs(traces[0][6 * point + 3].Dot(normal) + 4 * k / h), (Gamma(2048) * I{2 * k * (8 + 16 / h)}).hi) EXPECT_FALSE(cache.matrix.has_value()) | EXPECT_LE((dot - I{static_cast(a == b)}).Abs(), (Gamma(2048) * absolute).hi) | EXPECT_GT(r[0].Cross(r[1]).Dot(r[2]), 0) | EXPECT_LE(std::abs(q[c] - expected[c]), budget) | EXPECT_LE((actual_local - expected_local).Abs(), budget + Gamma(16).hi * k * (8 + 16 / h) * scale) | EXPECT_EQ(traces[0][6 * point + 2].Dot(normal), 0) | EXPECT_LE( std::abs(traces[0][6 * point + 3].Dot(normal) + 4 * k / h), (Gamma(2048) * I{2 * k * (8 + 16 / h)}).hi) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.FullTwoDimensionalMeshesHaveSecondOrderTemperatureAndFirstOrderGradient ThermalPhysics.FullTwoDimensionalMeshesHaveSecondOrderTemperatureAndFirstOrderGradient; assertion 11개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.FullTwoDimensionalMeshesHaveSecondOrderTemperatureAndFirstOrderGradient 유지 원문 검사 body 및 assertion 동일. 0ceca38a5febc9b2b1dd637a6fdc3c6bade908c088a878422dd93f60377d48e4 0ceca38a5febc9b2b1dd637a6fdc3c6bade908c088a878422dd93f60377d48e4 EXPECT_LE((twelve.temperature - sixteen.temperature).Abs(), sixteen.temperature.lo * 1e-8) | EXPECT_LE((twelve.gradient - sixteen.gradient).Abs(), sixteen.gradient.lo * 1e-8) | EXPECT_LE(agreement.hi, forward.hi) | EXPECT_LE(forward.hi, sixteen.temperature.lo / 1000) | EXPECT_LE((Sqrt(I{24. * n * n + 1280}) * forward).hi, sixteen.gradient.lo / 1000) | EXPECT_LE(temporal.hi, spatial_error.temperature.lo / 32) | EXPECT_GE(temperature_order, 1.95) | EXPECT_LE(temperature_order, 2.05) | EXPECT_GE(gradient_order, .98) | EXPECT_LE(gradient_order, 1.03) | EXPECT_EQ(8 * (metrics.temperature_values + metrics.flux_values), 81074472U) EXPECT_LE((twelve.temperature - sixteen.temperature).Abs(), sixteen.temperature.lo * 1e-8) | EXPECT_LE((twelve.gradient - sixteen.gradient).Abs(), sixteen.gradient.lo * 1e-8) | EXPECT_LE(agreement.hi, forward.hi) | EXPECT_LE(forward.hi, sixteen.temperature.lo / 1000) | EXPECT_LE((Sqrt(I{24. * n * n + 1280}) * forward).hi, sixteen.gradient.lo / 1000) | EXPECT_LE(temporal.hi, spatial_error.temperature.lo / 32) | EXPECT_GE(temperature_order, 1.95) | EXPECT_LE(temperature_order, 2.05) | EXPECT_GE(gradient_order, .98) | EXPECT_LE(gradient_order, 1.03) | EXPECT_EQ(8 * (metrics.temperature_values + metrics.flux_values), 81074472U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/analysis/thermal_physics_test.cpp ThermalSlab.ActualMeshesMatchCertifiedP2AndSeparateFourierError ThermalSlab.ActualMeshesMatchCertifiedP2AndSeparateFourierError; assertion 10개 tests/integration/analysis/thermal_physics_test.cpp ThermalSlab.ActualMeshesMatchCertifiedP2AndSeparateFourierError 유지 원문 검사 body 및 assertion 동일. 35d85f768c1c0df7ccdf1dcfe80c2a8294bffdfc09fc9f32bef7e529eaa29491 35d85f768c1c0df7ccdf1dcfe80c2a8294bffdfc09fc9f32bef7e529eaa29491 EXPECT_EQ(p.state.CommittedState().temperature[row], 0) | ASSERT_GT(inverse_denominator.lo, 0) | EXPECT_LE(std::abs(element[sample][0]), flux_budget.hi) | EXPECT_LE(std::abs(element[sample][1]), flux_budget.hi) | EXPECT_LE((samples[quantity] - first_mesh[quantity]).Abs(), (I{first_budget[group]} + I{solver_budget[group]}).hi) | EXPECT_LE(roundoff.hi, oracle.space[group] / 1000) | EXPECT_LE(agreement[group], roundoff.hi) | EXPECT_LE(physical[group], (I{oracle.space[group]} + I{time_error[group]} + roundoff).hi) | EXPECT_LE((I{physical[group]} - I{space_error[group]}).Abs(), (I{time_error[group]} + roundoff).hi) | EXPECT_TRUE(plateau) EXPECT_EQ(p.state.CommittedState().temperature[row], 0) | ASSERT_GT(inverse_denominator.lo, 0) | EXPECT_LE(std::abs(element[sample][0]), flux_budget.hi) | EXPECT_LE(std::abs(element[sample][1]), flux_budget.hi) | EXPECT_LE((samples[quantity] - first_mesh[quantity]).Abs(), (I{first_budget[group]} + I{solver_budget[group]}).hi) | EXPECT_LE(roundoff.hi, oracle.space[group] / 1000) | EXPECT_LE(agreement[group], roundoff.hi) | EXPECT_LE(physical[group], (I{oracle.space[group]} + I{time_error[group]} + roundoff).hi) | EXPECT_LE((I{physical[group]} - I{space_error[group]}).Abs(), (I{time_error[group]} + roundoff).hi) | EXPECT_TRUE(plateau) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/analysis/thermal_physics_test.cpp support@1-335 helper/oracle/fixture/include/static assertion 구간: ti, Down, Up, I, Mid, Abs, Sqrt, Square, Gamma, Pi, Cos, if, ExpNegative, while, Power, T, Take, Checked, Mesh, Prepared, RunMetrics, Advance, for, Print, CapacityNorm tests/integration/analysis/thermal_physics_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e22ee5f0f8df809604139d7a6e4a6ee465534fa0dca5e807d128683d4dba9edf 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_physics_test.cpp support@355-429 helper/oracle/fixture/include/static assertion 구간: VerifyDiscreteEigenmode tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 302213d4b2826eec0d855386a82aa934f7517ca58b5a648eee7d7312b379e6a7 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_physics_test.cpp support@537-600 helper/oracle/fixture/include/static assertion 구간: ZeroLike, CertifiedInverse, if tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ed80a8f1fe0a8a5a570f4eee10c069f506b9a07b7e1187cae5bd9481521fb22a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_physics_test.cpp support@797-868 helper/oracle/fixture/include/static assertion 구간: ThicknessMass, ThicknessGradient, SpatialError, IntegrateSpatialError, for tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6fe84510f8e89a0b45ac65e8b403973d1a9f3333b13d9c73deaf7076f9ca12ee 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_physics_test.cpp support@957-959 helper/oracle/fixture/include/static assertion 구간: Bracket, ThermalSlab tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 132c3f6724f847d2eb1cb70298ba8cbba9a8d0a5f070b51734e71be7e07e0616 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_physics_test.cpp support@1131-1139 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e43aa8e23b2faf52e75adc8f5647bf291d27a232530b2c49b1bb17df2d2e329e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_slab_oracle.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/integration/analysis/thermal_slab_oracle.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2d4d4f58df2a9f08b25f850c59617100f2a8af10ba7bdebb7ee80e15b079ad27 2d4d4f58df2a9f08b25f850c59617100f2a8af10ba7bdebb7ee80e15b079ad27 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/analysis/thermal_slab_oracle.h support@1-359 helper/oracle/fixture/include/static assertion 구간: thermal_oracle, Bracket, SlabCase tests/integration/analysis/thermal_slab_oracle.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3dfe0819fc272857692d3de89c30080b4f509c425b6169550bba89114be56c1f 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/app/eigen_application_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/integration/app/eigen_application_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7632397db2daf06eb0ff79a311f4f61832f415ebee4aebe334c8bf5d97e83772 7632397db2daf06eb0ff79a311f4f61832f415ebee4aebe334c8bf5d97e83772 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/app/eigen_application_test.cpp EigenApplicationTest.DispatchesFrequencyAndWritesModalSibling EigenApplicationTest.DispatchesFrequencyAndWritesModalSibling; assertion 9개 tests/integration/app/eigen_application_test.cpp EigenApplicationTest.DispatchesFrequencyAndWritesModalSibling 유지 원문 검사 body 및 assertion 동일. 68264a89e2eea378557e983ac8734ba58b464af83c2ac2b3628f1f1fafa70ee3 68264a89e2eea378557e983ac8734ba58b464af83c2ac2b3628f1f1fafa70ee3 "ASSERT_EQ(fesa::FesaApplication{}.Run({input_.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output_)) | ASSERT_TRUE(std::filesystem::exists(log_)) | EXPECT_EQ(std::filesystem::file_size(log_), 0U) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/modes"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/vectors"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" "ASSERT_EQ(fesa::FesaApplication{}.Run({input_.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output_)) | ASSERT_TRUE(std::filesystem::exists(log_)) | EXPECT_EQ(std::filesystem::file_size(log_), 0U) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/modes"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/vectors"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/app/eigen_application_test.cpp EigenApplicationTest.EmptyPencilPreservesPreviousFinalAndEmptyLog EigenApplicationTest.EmptyPencilPreservesPreviousFinalAndEmptyLog; assertion 3개 tests/integration/app/eigen_application_test.cpp EigenApplicationTest.EmptyPencilPreservesPreviousFinalAndEmptyLog 유지 원문 검사 body 및 assertion 동일. c919926a783cca5aacef016773b325fbad92557b269875233aa77feb5f4cf253 c919926a783cca5aacef016773b325fbad92557b269875233aa77feb5f4cf253 EXPECT_EQ(fesa::FesaApplication{}.Run({input_.string()}), 4) | EXPECT_TRUE(std::string(std::istreambuf_iterator{previous}, {}) == original) | EXPECT_EQ(std::filesystem::file_size(log_), 0U) EXPECT_EQ(fesa::FesaApplication{}.Run({input_.string()}), 4) | EXPECT_TRUE(std::string(std::istreambuf_iterator{previous}, {}) == original) | EXPECT_EQ(std::filesystem::file_size(log_), 0U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/app/eigen_application_test.cpp support@1-81 helper/oracle/fixture/include/static assertion 구간: EigenApplicationTest, WriteDeck tests/integration/app/eigen_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 34d85c877e290ff9094967418cedc08e2751fe6074e5f3007b0b1dd16a22e861 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/app/eigen_application_test.cpp support@110-111 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/eigen_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/app/fesa_application_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/integration/app/fesa_application_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 07d63eb93467254f069d6ae86e2af022287e1ff0dba8272dbb08e830709a9ff0 07d63eb93467254f069d6ae86e2af022287e1ff0dba8272dbb08e830709a9ff0 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/app/fesa_application_test.cpp LinearStaticCli.DefaultOutputUsesInputSiblingDerivedName LinearStaticCli.DefaultOutputUsesInputSiblingDerivedName; assertion 2개 tests/integration/app/fesa_application_test.cpp LinearStaticCli.DefaultOutputUsesInputSiblingDerivedName 유지 원문 검사 body 및 assertion 동일. 32a254e96576eb69d5fa023125fa0bf941cf0d2a73be539df402feb8687b097f 32a254e96576eb69d5fa023125fa0bf941cf0d2a73be539df402feb8687b097f "ASSERT_EQ(result.exit_code, 0) | EXPECT_FALSE(std::filesystem::exists(directory.Path() / ""results.h5""))" "ASSERT_EQ(result.exit_code, 0) | EXPECT_FALSE(std::filesystem::exists(directory.Path() / ""results.h5""))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/app/fesa_application_test.cpp FesaApplication.OpensDerivedLogBeforeInputMapping FesaApplication.OpensDerivedLogBeforeInputMapping; assertion 3개 tests/integration/app/fesa_application_test.cpp FesaApplication.OpensDerivedLogBeforeInputMapping 유지 원문 검사 body 및 assertion 동일. 0ff45e4e3ddc200c86c04a2c7aeafc773da2345f78afda2eadc06eddd4d6d006 0ff45e4e3ddc200c86c04a2c7aeafc773da2345f78afda2eadc06eddd4d6d006 EXPECT_EQ(result.exit_code, 3) | ASSERT_TRUE(std::filesystem::exists(log)) | EXPECT_EQ(std::filesystem::file_size(log), 0U) EXPECT_EQ(result.exit_code, 3) | ASSERT_TRUE(std::filesystem::exists(log)) | EXPECT_EQ(std::filesystem::file_size(log), 0U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/app/fesa_application_test.cpp LinearStaticCli.ReturnsEveryExactExitCodeAndOrderedDiagnostic LinearStaticCli.ReturnsEveryExactExitCodeAndOrderedDiagnostic; assertion 9개 tests/integration/app/fesa_application_test.cpp LinearStaticCli.ReturnsEveryExactExitCodeAndOrderedDiagnostic 유지 원문 검사 body 및 assertion 동일. 466456fe6183443de50011587199f89bcfe4345da298f5ffcb6fb3bf21b27f83 466456fe6183443de50011587199f89bcfe4345da298f5ffcb6fb3bf21b27f83 "EXPECT_EQ(success.exit_code, 0) | EXPECT_EQ(usage.exit_code, 2) | EXPECT_EQ(input.exit_code, 3) | EXPECT_EQ(model.exit_code, 4) | EXPECT_EQ(solver.exit_code, 5) | EXPECT_EQ(repeated_output.exit_code, 2) | EXPECT_NE(repeated_output.standard_error.find(""code=cli-usage""), std::string::npos) | EXPECT_EQ(unknown_output_option.exit_code, 2) | EXPECT_NE(unknown_output_option.standard_error.find(""code=cli-usage""), std::string::npos)" "EXPECT_EQ(success.exit_code, 0) | EXPECT_EQ(usage.exit_code, 2) | EXPECT_EQ(input.exit_code, 3) | EXPECT_EQ(model.exit_code, 4) | EXPECT_EQ(solver.exit_code, 5) | EXPECT_EQ(repeated_output.exit_code, 2) | EXPECT_NE(repeated_output.standard_error.find(""code=cli-usage""), std::string::npos) | EXPECT_EQ(unknown_output_option.exit_code, 2) | EXPECT_NE(unknown_output_option.standard_error.find(""code=cli-usage""), std::string::npos)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/app/fesa_application_test.cpp LinearStaticCli.OutputSubstringRejectionLeavesDerivedFilesUnchanged LinearStaticCli.OutputSubstringRejectionLeavesDerivedFilesUnchanged; assertion 7개 tests/integration/app/fesa_application_test.cpp LinearStaticCli.OutputSubstringRejectionLeavesDerivedFilesUnchanged 유지 원문 검사 body 및 assertion 동일. 15e900377c4aa714bb7d75ea9dcefa8e379107ec7b3aae46f27c39781c4d73e4 15e900377c4aa714bb7d75ea9dcefa8e379107ec7b3aae46f27c39781c4d73e4 "EXPECT_EQ(result.exit_code, 2) | EXPECT_EQ( std::count(result.standard_error.begin(), result.standard_error.end(), '\n'), 1U) | EXPECT_NE(result.standard_error.find(""code=cli-usage""), std::string::npos) | EXPECT_EQ(SnapshotFile(results).contents, previous_results.contents) | EXPECT_EQ(SnapshotFile(results).write_time, previous_results.write_time) | EXPECT_EQ(SnapshotFile(log).contents, previous_log.contents) | EXPECT_EQ(SnapshotFile(log).write_time, previous_log.write_time)" "EXPECT_EQ(result.exit_code, 2) | EXPECT_EQ( std::count(result.standard_error.begin(), result.standard_error.end(), '\n'), 1U) | EXPECT_NE(result.standard_error.find(""code=cli-usage""), std::string::npos) | EXPECT_EQ(SnapshotFile(results).contents, previous_results.contents) | EXPECT_EQ(SnapshotFile(results).write_time, previous_results.write_time) | EXPECT_EQ(SnapshotFile(log).contents, previous_log.contents) | EXPECT_EQ(SnapshotFile(log).write_time, previous_log.write_time)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/app/fesa_application_test.cpp LinearStaticCli.BusyOutputLeaseLeavesDerivedFilesUnchanged LinearStaticCli.BusyOutputLeaseLeavesDerivedFilesUnchanged; assertion 7개 tests/integration/app/fesa_application_test.cpp LinearStaticCli.BusyOutputLeaseLeavesDerivedFilesUnchanged 유지 원문 검사 body 및 assertion 동일. 28fec91071cedec614407118354e3d04c18bccaf67210f5351846382380f4def 28fec91071cedec614407118354e3d04c18bccaf67210f5351846382380f4def "ASSERT_TRUE(lease.HasValue()) | EXPECT_EQ(result.exit_code, 6) | EXPECT_NE(result.standard_error.find(""code=output-busy""), std::string::npos) | EXPECT_EQ(SnapshotFile(results).contents, previous_results.contents) | EXPECT_EQ(SnapshotFile(results).write_time, previous_results.write_time) | EXPECT_EQ(SnapshotFile(log).contents, previous_log.contents) | EXPECT_EQ(SnapshotFile(log).write_time, previous_log.write_time)" "ASSERT_TRUE(lease.HasValue()) | EXPECT_EQ(result.exit_code, 6) | EXPECT_NE(result.standard_error.find(""code=output-busy""), std::string::npos) | EXPECT_EQ(SnapshotFile(results).contents, previous_results.contents) | EXPECT_EQ(SnapshotFile(results).write_time, previous_results.write_time) | EXPECT_EQ(SnapshotFile(log).contents, previous_log.contents) | EXPECT_EQ(SnapshotFile(log).write_time, previous_log.write_time)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/app/fesa_application_test.cpp LinearStaticCli.OutputRequestsDoNotFilterMandatoryResults LinearStaticCli.OutputRequestsDoNotFilterMandatoryResults; assertion 6개 tests/integration/app/fesa_application_test.cpp LinearStaticCli.OutputRequestsDoNotFilterMandatoryResults 유지 원문 검사 body 및 assertion 동일. 36ab47846953b9f89467d79516155a88696bf76e752f34933d9dc6169a28f6a3 36ab47846953b9f89467d79516155a88696bf76e752f34933d9dc6169a28f6a3 "ASSERT_EQ(plain.exit_code, 0) | ASSERT_EQ(requested.exit_code, 0) | EXPECT_EQ(ReadDoubleDataset(requested_file.Get(), path), ReadDoubleDataset(plain_file.Get(), path)) | EXPECT_EQ(DatasetDimensions(plain_file.Get(), ""/diagnostics""), std::vector({0U})) | ASSERT_EQ(requested_diagnostics.size(), 1U) | EXPECT_GT(requested_diagnostics[0U], 0U)" "ASSERT_EQ(plain.exit_code, 0) | ASSERT_EQ(requested.exit_code, 0) | EXPECT_EQ(ReadDoubleDataset(requested_file.Get(), path), ReadDoubleDataset(plain_file.Get(), path)) | EXPECT_EQ(DatasetDimensions(plain_file.Get(), ""/diagnostics""), std::vector({0U})) | ASSERT_EQ(requested_diagnostics.size(), 1U) | EXPECT_GT(requested_diagnostics[0U], 0U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/app/fesa_application_test.cpp Mitc4ShellCli.WritesShellHdf5ThroughTheExistingApplicationRoute Mitc4ShellCli.WritesShellHdf5ThroughTheExistingApplicationRoute; assertion 1개 tests/integration/app/fesa_application_test.cpp Mitc4ShellCli.WritesShellHdf5ThroughTheExistingApplicationRoute 유지 원문 검사 body 및 assertion 동일. f437d9ab3ce6cc9db9242318e612bb8e0f5acdf70ce8ca47910c24a6e2fefbf9 f437d9ab3ce6cc9db9242318e612bb8e0f5acdf70ce8ca47910c24a6e2fefbf9 ASSERT_EQ(result.exit_code, 0) ASSERT_EQ(result.exit_code, 0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/app/fesa_application_test.cpp support@1-355 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, CurrentDirectoryGuard, Hdf5Handle, WriteText, AxialDeck, AllConstrainedShellDeck, OpenFile, OpenDataset, DatasetDimensions, ReadDoubleDataset, for, ReadStringAttribute, ExpectMandatoryInventory, ExpectFesaHdf5Identity, ExpectShellHdf5Identity, AppRun, RunApplication, catch, ExpectDiagnosticFieldOrder, FileSnapshot, SnapshotFile tests/integration/app/fesa_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 86ad01a4a2d9c96621b43860360f5db1b874f41c64a92f5331a7d2c5f7a090b2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/app/fesa_application_test.cpp support@370-371 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/fesa_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0d9a57af3a9392fe92e3468c81957fece71dccadbc9c5c1d2ae25abcdcfcbf96 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/app/fesa_application_test.cpp support@424-426 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/fesa_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2e743f1bbe2074a4e496d4e18d5f0fb1d01581db88662ac2b7000cbbf3235f48 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/app/fesa_application_test.cpp support@454-456 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/fesa_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 485a5a091491fa984b66ae21431bff2ac7e5bd7b5981645f350c41c4c4d1ceff 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/app/fesa_application_test.cpp support@517-518 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/fesa_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7210dc43217ee6c97222f26b3a7441a44ac19ae603a5360e08ac32b4c466f12d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/app/shell_surface_pressure_application_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/integration/app/shell_surface_pressure_application_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 369cc07b69791c67f80fefdfebd3b3986bdd7ec3ddae0fc20cc7f9f01f1e4d07 369cc07b69791c67f80fefdfebd3b3986bdd7ec3ddae0fc20cc7f9f01f1e4d07 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.LinearFailurePreservesExistingFinalAndNoCandidate ShellSurfacePressureApplication.LinearFailurePreservesExistingFinalAndNoCandidate; assertion 2개 tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.LinearFailurePreservesExistingFinalAndNoCandidate 유지 원문 검사 body 및 assertion 동일. 4352e654ee0cbb33ae714e1d066609c2a6e2daf28d16df65df2da019d8af4e50 4352e654ee0cbb33ae714e1d066609c2a6e2daf28d16df65df2da019d8af4e50 EXPECT_NE(exit_code, 0) | EXPECT_EQ(ReadBytes(output), previous) EXPECT_NE(exit_code, 0) | EXPECT_EQ(ReadBytes(output), previous) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingLinearBehavior ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingLinearBehavior; assertion 7개 tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingLinearBehavior 유지 원문 검사 body 및 assertion 동일. 53128674e01206097130820f16e2df3d01c24e0961f07bad72972d923ed96683 53128674e01206097130820f16e2df3d01c24e0961f07bad72972d923ed96683 "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/frames/0/nodal/displacement"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/frames/0/nodal/displacement"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingNonlinearBehavior ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingNonlinearBehavior; assertion 7개 tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingNonlinearBehavior 유지 원문 검사 body 및 assertion 동일. a92cd868028262e66a83bd771b9a654819e00285b03907d87f49c87ae6ceb5fe a92cd868028262e66a83bd771b9a654819e00285b03907d87f49c87ae6ceb5fe "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/app/shell_surface_pressure_application_test.cpp support@1-137 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, WriteText, ReadBytes, ShellDeck, NonlinearShellDeck tests/integration/app/shell_surface_pressure_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 018b3c3f47b9ffbf3ee6fc438e63618a745aef6195e249c4b5acf8cbfd00ac04 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/app/solid_application_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/integration/app/solid_application_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4fe3fa020951bd776343af5d26def36392794dd74c5e19ca3d57427c489c6831 4fe3fa020951bd776343af5d26def36392794dd74c5e19ca3d57427c489c6831 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/app/solid_application_test.cpp SolidApplication.AllFiveActualProceduresWriteOfficialSolidSchema SolidApplication.AllFiveActualProceduresWriteOfficialSolidSchema; assertion 6개 tests/integration/app/solid_application_test.cpp SolidApplication.AllFiveActualProceduresWriteOfficialSolidSchema 유지 원문 검사 body 및 assertion 동일. 0cddac0e04be42a231c5f6677e088fd87072a425b750a23aab5690b0ed8c84bd 0cddac0e04be42a231c5f6677e088fd87072a425b750a23aab5690b0ed8c84bd ASSERT_EQ(fesa::FesaApplication{}.Run({files.input.string()}), 0) | ASSERT_GE(f, 0) | ASSERT_GE(g, 0) | ASSERT_GE(a, 0) | ASSERT_GE(H5Aread(a, t, &value), 0) | EXPECT_STREQ(value, solid_output_test::Procedure(p)) ASSERT_EQ(fesa::FesaApplication{}.Run({files.input.string()}), 0) | ASSERT_GE(f, 0) | ASSERT_GE(g, 0) | ASSERT_GE(a, 0) | ASSERT_GE(H5Aread(a, t, &value), 0) | EXPECT_STREQ(value, solid_output_test::Procedure(p)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/app/solid_application_test.cpp SolidApplication.NativeExecutableRunsAllFiveAndKeepsWarningsAndTypedLogs SolidApplication.NativeExecutableRunsAllFiveAndKeepsWarningsAndTypedLogs; assertion 20개 tests/integration/app/solid_application_test.cpp SolidApplication.NativeExecutableRunsAllFiveAndKeepsWarningsAndTypedLogs 유지 원문 검사 body 및 assertion 동일. 6fa687c0d3ddc09ca8dfdbe276e14156ffb4b98874acb4e66b2a3a815956eb96 6fa687c0d3ddc09ca8dfdbe276e14156ffb4b98874acb4e66b2a3a815956eb96 "ASSERT_GT(length, 0u) | ASSERT_LT(length, module.size()) | ASSERT_TRUE(std::filesystem::exists(executable)) | ASSERT_EQ(fesa::FesaApplication{}.Run({files.input.string()}), 0) | ASSERT_TRUE(CreateProcessW(executable.c_str(), command.data(), nullptr, nullptr, FALSE, CREATE_NO_WINDOW, nullptr, nullptr, &startup, &process)) | EXPECT_TRUE(GetExitCodeProcess(process.hProcess, &exit)) | ASSERT_EQ(wait, WAIT_OBJECT_0) | ASSERT_EQ(exit, 0u) | EXPECT_GT(H5Fis_hdf5(files.output.string().c_str()), 0) | EXPECT_EQ(NumericSnapshot(files.output, p), expected) | EXPECT_EQ(log.find(""correction_rotation""), std::string::npos) | EXPECT_EQ(log.find(""residual_moment""), std::string::npos) | EXPECT_NE(log.find(""schema=solid-static-log-v1""), std::string::npos) | EXPECT_NE(log.find(""schema=solid-hht-log-v1""), std::string::npos) | EXPECT_NE(log.find(""h2_physical_da_over_L=""), std::string::npos) | EXPECT_NE(log.find(""h2_algorithmic_dA_over_L=""), std::string::npos) | EXPECT_NE(log.find(""normalized-high-low-physical-state;RN64-observables""), std::string::npos) | ASSERT_GE(file, 0) | ASSERT_GE(diagnostics, 0) | EXPECT_GT(rows, 0u)" "ASSERT_GT(length, 0u) | ASSERT_LT(length, module.size()) | ASSERT_TRUE(std::filesystem::exists(executable)) | ASSERT_EQ(fesa::FesaApplication{}.Run({files.input.string()}), 0) | ASSERT_TRUE(CreateProcessW(executable.c_str(), command.data(), nullptr, nullptr, FALSE, CREATE_NO_WINDOW, nullptr, nullptr, &startup, &process)) | EXPECT_TRUE(GetExitCodeProcess(process.hProcess, &exit)) | ASSERT_EQ(wait, WAIT_OBJECT_0) | ASSERT_EQ(exit, 0u) | EXPECT_GT(H5Fis_hdf5(files.output.string().c_str()), 0) | EXPECT_EQ(NumericSnapshot(files.output, p), expected) | EXPECT_EQ(log.find(""correction_rotation""), std::string::npos) | EXPECT_EQ(log.find(""residual_moment""), std::string::npos) | EXPECT_NE(log.find(""schema=solid-static-log-v1""), std::string::npos) | EXPECT_NE(log.find(""schema=solid-hht-log-v1""), std::string::npos) | EXPECT_NE(log.find(""h2_physical_da_over_L=""), std::string::npos) | EXPECT_NE(log.find(""h2_algorithmic_dA_over_L=""), std::string::npos) | EXPECT_NE(log.find(""normalized-high-low-physical-state;RN64-observables""), std::string::npos) | ASSERT_GE(file, 0) | ASSERT_GE(diagnostics, 0) | EXPECT_GT(rows, 0u)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/app/solid_application_test.cpp SolidApplication.SuccessfulWarningsRetainSourceLocationAndTarget SolidApplication.SuccessfulWarningsRetainSourceLocationAndTarget; assertion 5개 tests/integration/app/solid_application_test.cpp SolidApplication.SuccessfulWarningsRetainSourceLocationAndTarget 유지 원문 검사 body 및 assertion 동일. cb7efd965f709cfc1e66b1751aaaf1c95e875fafa95a45ce6b96ab5f92a47918 cb7efd965f709cfc1e66b1751aaaf1c95e875fafa95a45ce6b96ab5f92a47918 "ASSERT_EQ(exit, 0) | EXPECT_NE(diagnostics.find(""code=inactive-solid-rotation-boundary""), std::string::npos) | EXPECT_NE(diagnostics.find(""entity_identity=Fixed""), std::string::npos) | EXPECT_NE(diagnostics.find(""line=30""), std::string::npos) | EXPECT_NE(diagnostics.find(files.input.generic_u8string()), std::string::npos)" "ASSERT_EQ(exit, 0) | EXPECT_NE(diagnostics.find(""code=inactive-solid-rotation-boundary""), std::string::npos) | EXPECT_NE(diagnostics.find(""entity_identity=Fixed""), std::string::npos) | EXPECT_NE(diagnostics.find(""line=30""), std::string::npos) | EXPECT_NE(diagnostics.find(files.input.generic_u8string()), std::string::npos)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/integration/app/solid_application_test.cpp support@1-73 helper/oracle/fixture/include/static assertion 구간: NumericSnapshot, for, if tests/integration/app/solid_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fae87db4332db2d58466c577879e346b24a315f8b02442f98f89f063011d1cdf 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/app/solid_application_test.cpp support@174-174 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/solid_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/app/thermal_application_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/integration/app/thermal_application_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 671f8895de95c3883587d1766671fc911af679e0ee1104ba90d6f260e2bb7ed4 921d9686ce735dc7e44d0e9bd61580838f969ce08e3f858550a099c9fc98cbef 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.ExecutesThermalInputThroughAtomicOutput ThermalApplicationTest.ExecutesThermalInputThroughAtomicOutput; assertion 27개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.ExecutesThermalInputThroughAtomicOutput 유지 원문 검사 body 및 assertion 동일. f6df36c87719748f81960dad63fa6e838d8bc71a7814c36d0d7cb28449bed204 f6df36c87719748f81960dad63fa6e838d8bc71a7814c36d0d7cb28449bed204 "ASSERT_EQ(run.exit_code, 0) | EXPECT_GT(H5Fis_hdf5(Path(""Heat.Model_results.h5"").string().c_str()), 0) | EXPECT_EQ(std::filesystem::file_size(Path(""Heat.Model_log.txt"")), 0U) | EXPECT_EQ(StringAttribute(metadata.Get(), ""source_step_name""), ""Raw Heat"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""feature_id""), ""shell-transient-heat-transfer"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""analysis_procedure""), ""uncoupled-transient-heat-transfer"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""source_input_identity"") .find(""path="" + Path(""Heat.Model.INP"").generic_u8string() + "";content_identity=""), 0U) | ASSERT_EQ(frames.size(), 4U) | EXPECT_EQ(frame.frame_index, index) | EXPECT_EQ(frame.increment_index, index) | EXPECT_EQ(frame.is_initial, index == 0 ? 1 : 0) | EXPECT_DOUBLE_EQ(frame.time, index == 3 ? .7 : static_cast(index) * .3) | EXPECT_DOUBLE_EQ(frame.time_increment, index == 0 ? 0 : index == 3 ? std::fma(-2., .3, .7) : .3) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/temperature""), (std::vector{4, 5})) | EXPECT_TRUE(std::isfinite(value)) | EXPECT_LT(value, 0.) | EXPECT_DOUBLE_EQ(value, -2.) | EXPECT_EQ( H5Lexists(file.Get(), (root + ""/nodal/reaction_heat_rate"").c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), (root + ""/element"").c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/reaction_heat_rate""), (std::vector{0})) | EXPECT_EQ(Shape(file.Get(), root + ""/element/heat_flux""), (std::vector{1, 4, 6, 3})) | EXPECT_EQ(Shape(file.Get(), ""/diagnostics""), (std::vector{1})) | ASSERT_GE(H5Tset_size(string_type.Get(), H5T_VARIABLE), 0) | ASSERT_GE(H5Tset_cset(string_type.Get(), H5T_CSET_UTF8), 0) | ASSERT_GE(H5Tinsert(row_type.Get(), ""code"", 0, string_type.Get()), 0) | ASSERT_GE(H5Dread(diagnostics.Get(), row_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &code), 0) | EXPECT_STREQ(code, ""ignored-input-keyword"")" "ASSERT_EQ(run.exit_code, 0) | EXPECT_GT(H5Fis_hdf5(Path(""Heat.Model_results.h5"").string().c_str()), 0) | EXPECT_EQ(std::filesystem::file_size(Path(""Heat.Model_log.txt"")), 0U) | EXPECT_EQ(StringAttribute(metadata.Get(), ""source_step_name""), ""Raw Heat"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""feature_id""), ""shell-transient-heat-transfer"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""analysis_procedure""), ""uncoupled-transient-heat-transfer"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""source_input_identity"") .find(""path="" + Path(""Heat.Model.INP"").generic_u8string() + "";content_identity=""), 0U) | ASSERT_EQ(frames.size(), 4U) | EXPECT_EQ(frame.frame_index, index) | EXPECT_EQ(frame.increment_index, index) | EXPECT_EQ(frame.is_initial, index == 0 ? 1 : 0) | EXPECT_DOUBLE_EQ(frame.time, index == 3 ? .7 : static_cast(index) * .3) | EXPECT_DOUBLE_EQ(frame.time_increment, index == 0 ? 0 : index == 3 ? std::fma(-2., .3, .7) : .3) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/temperature""), (std::vector{4, 5})) | EXPECT_TRUE(std::isfinite(value)) | EXPECT_LT(value, 0.) | EXPECT_DOUBLE_EQ(value, -2.) | EXPECT_EQ( H5Lexists(file.Get(), (root + ""/nodal/reaction_heat_rate"").c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), (root + ""/element"").c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/reaction_heat_rate""), (std::vector{0})) | EXPECT_EQ(Shape(file.Get(), root + ""/element/heat_flux""), (std::vector{1, 4, 6, 3})) | EXPECT_EQ(Shape(file.Get(), ""/diagnostics""), (std::vector{1})) | ASSERT_GE(H5Tset_size(string_type.Get(), H5T_VARIABLE), 0) | ASSERT_GE(H5Tset_cset(string_type.Get(), H5T_CSET_UTF8), 0) | ASSERT_GE(H5Tinsert(row_type.Get(), ""code"", 0, string_type.Get()), 0) | ASSERT_GE(H5Dread(diagnostics.Get(), row_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &code), 0) | EXPECT_STREQ(code, ""ignored-input-keyword"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.EndpointCloseUsesActualDeltaAndLargeIncrementUsesPeriod ThermalApplicationTest.EndpointCloseUsesActualDeltaAndLargeIncrementUsesPeriod; assertion 8개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.EndpointCloseUsesActualDeltaAndLargeIncrementUsesPeriod 유지 원문 검사 body 및 assertion 동일. ad5bd959038bf1bc1167ca2796d5badbb5ec663f87fe89df335c5b8acb760992 ad5bd959038bf1bc1167ca2796d5badbb5ec663f87fe89df335c5b8acb760992 ASSERT_EQ(run.exit_code, 0) | ASSERT_EQ(frames.size(), 4U) | EXPECT_DOUBLE_EQ(frames.back().time, .9) | EXPECT_DOUBLE_EQ(frames.back().time_increment, .3) | EXPECT_NE(frames.back().time_increment, frames[3].time - frames[2].time) | ASSERT_EQ(frames.size(), 2U) | EXPECT_DOUBLE_EQ(frames.back().time, .7) | EXPECT_DOUBLE_EQ(frames.back().time_increment, .7) ASSERT_EQ(run.exit_code, 0) | ASSERT_EQ(frames.size(), 4U) | EXPECT_DOUBLE_EQ(frames.back().time, .9) | EXPECT_DOUBLE_EQ(frames.back().time_increment, .3) | EXPECT_NE(frames.back().time_increment, frames[3].time - frames[2].time) | ASSERT_EQ(frames.size(), 2U) | EXPECT_DOUBLE_EQ(frames.back().time, .7) | EXPECT_DOUBLE_EQ(frames.back().time_increment, .7) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.RawInitialPrecedesPrescribedBoundaryProjection ThermalApplicationTest.RawInitialPrecedesPrescribedBoundaryProjection; assertion 5개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.RawInitialPrecedesPrescribedBoundaryProjection 유지 원문 검사 body 및 assertion 동일. 28ecc20ef5539e10837bbd26888c6c4700394e032a556a72b3732e7322abaad7 28ecc20ef5539e10837bbd26888c6c4700394e032a556a72b3732e7322abaad7 "ASSERT_EQ(run.exit_code, 0) | EXPECT_DOUBLE_EQ(value, -2) | EXPECT_DOUBLE_EQ(temperature[5 * node], 1) | EXPECT_DOUBLE_EQ(temperature[5 * node + 4], 1) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/reaction_heat_rate""), (std::vector{8}))" "ASSERT_EQ(run.exit_code, 0) | EXPECT_DOUBLE_EQ(value, -2) | EXPECT_DOUBLE_EQ(temperature[5 * node], 1) | EXPECT_DOUBLE_EQ(temperature[5 * node + 4], 1) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/reaction_heat_rate""), (std::vector{8}))" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.InputAndSolverFailuresPreservePreviousFinal ThermalApplicationTest.InputAndSolverFailuresPreservePreviousFinal; assertion 4개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.InputAndSolverFailuresPreservePreviousFinal 유지 원문 검사 body 및 assertion 동일. cfe5e9a34c0cbd33635c6d35935173a280c1378f0735dfc9e5a5777696c1bc7b cfe5e9a34c0cbd33635c6d35935173a280c1378f0735dfc9e5a5777696c1bc7b "EXPECT_EQ(run.exit_code, test.second) | EXPECT_FALSE(run.error.empty()) | EXPECT_EQ(ReadBytes(Path(""model_results.h5"")), previous) | EXPECT_EQ(std::filesystem::file_size(Path(""model_log.txt"")), 0U)" "EXPECT_EQ(run.exit_code, test.second) | EXPECT_FALSE(run.error.empty()) | EXPECT_EQ(ReadBytes(Path(""model_results.h5"")), previous) | EXPECT_EQ(std::filesystem::file_size(Path(""model_log.txt"")), 0U)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.BusyLeasePrecedesParsingAndPreservesBothOutputs ThermalApplicationTest.BusyLeasePrecedesParsingAndPreservesBothOutputs; assertion 5개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.BusyLeasePrecedesParsingAndPreservesBothOutputs 유지 원문 검사 body 및 assertion 동일. be71949b43487d6eed86586a4994ed0d9fd08e1263cb47f5d13b7c995aaf01a0 be71949b43487d6eed86586a4994ed0d9fd08e1263cb47f5d13b7c995aaf01a0 "ASSERT_TRUE(lease.HasValue()) | EXPECT_EQ(run.exit_code, 6) | EXPECT_NE(run.error.find(""code=output-busy""), std::string::npos) | EXPECT_EQ(ReadBytes(paths.results_path), ""previous final"") | EXPECT_EQ(ReadBytes(paths.log_path), ""previous log"")" "ASSERT_TRUE(lease.HasValue()) | EXPECT_EQ(run.exit_code, 6) | EXPECT_NE(run.error.find(""code=output-busy""), std::string::npos) | EXPECT_EQ(ReadBytes(paths.results_path), ""previous final"") | EXPECT_EQ(ReadBytes(paths.log_path), ""previous log"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.RealFinalizeFailurePreservesFinalAndRemovesCandidate ThermalApplicationTest.RealFinalizeFailurePreservesFinalAndRemovesCandidate; assertion 6개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.RealFinalizeFailurePreservesFinalAndRemovesCandidate 유지 원문 검사 body 및 assertion 동일. 5f48d5b0464432fadf5f0f9522ae62bb204c588633cc77c86517b58a81667be0 5f48d5b0464432fadf5f0f9522ae62bb204c588633cc77c86517b58a81667be0 "ASSERT_NE(locked, INVALID_HANDLE_VALUE) | EXPECT_TRUE(CloseHandle(locked)) | EXPECT_EQ(run.exit_code, 6) | EXPECT_EQ(ReadBytes(Path(""model_results.h5"")), ""previous final"") | EXPECT_EQ(std::filesystem::file_size(Path(""model_log.txt"")), 0U) | EXPECT_EQ(entry.path().filename().string().find("".tmp.""), std::string::npos)" "ASSERT_NE(locked, INVALID_HANDLE_VALUE) | EXPECT_TRUE(CloseHandle(locked)) | EXPECT_EQ(run.exit_code, 6) | EXPECT_EQ(ReadBytes(Path(""model_results.h5"")), ""previous final"") | EXPECT_EQ(std::filesystem::file_size(Path(""model_log.txt"")), 0U) | EXPECT_EQ(entry.path().filename().string().find("".tmp.""), std::string::npos)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.MissingAdaptersHaveSpecificFailureCategories ThermalApplicationTest.MissingAdaptersHaveSpecificFailureCategories; assertion 14개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.MissingAdaptersHaveSpecificFailureCategories 유지 원문 검사 body 및 assertion 동일. 96329adf31d0773e0ed5ee9335cb9c21be7908e2179d2c8abb4a74f7a5ba71c1 96329adf31d0773e0ed5ee9335cb9c21be7908e2179d2c8abb4a74f7a5ba71c1 "ASSERT_TRUE(prepared.HasValue()) | ASSERT_EQ(prepared.Value().domain.Steps().Size(), 0U) | ASSERT_TRUE(log.Open(Path(""model_log.txt"")).IsOk()) | ASSERT_FALSE(missing.HasValue()) | EXPECT_EQ(missing.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(missing.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].code, ""missing-thermal-executor"") | ASSERT_TRUE(outcome.HasValue()) | ASSERT_TRUE( std::holds_alternative(outcome.Value())) | ASSERT_TRUE(log.Close().IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0].code, ""missing-thermal-writer"") | EXPECT_EQ(ReadBytes(paths.results_path), ""previous final"")" "ASSERT_TRUE(prepared.HasValue()) | ASSERT_EQ(prepared.Value().domain.Steps().Size(), 0U) | ASSERT_TRUE(log.Open(Path(""model_log.txt"")).IsOk()) | ASSERT_FALSE(missing.HasValue()) | EXPECT_EQ(missing.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(missing.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].code, ""missing-thermal-executor"") | ASSERT_TRUE(outcome.HasValue()) | ASSERT_TRUE( std::holds_alternative(outcome.Value())) | ASSERT_TRUE(log.Close().IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0].code, ""missing-thermal-writer"") | EXPECT_EQ(ReadBytes(paths.results_path), ""previous final"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.ExistingStructuralStaticNonlinearAndHhtRoutesRemainAvailable ThermalApplicationTest.ExistingStructuralStaticNonlinearAndHhtRoutesRemainAvailable; assertion 2개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.ExistingStructuralStaticNonlinearAndHhtRoutesRemainAvailable 유지 원문 검사 body 및 assertion 동일. b103892efb098072fe2035f37dbc8731fa5d2819279d54cc1cc3a7e0dfc3b29d b103892efb098072fe2035f37dbc8731fa5d2819279d54cc1cc3a7e0dfc3b29d "ASSERT_EQ(run.exit_code, 0) | EXPECT_GT(H5Fis_hdf5(Path(""model_results.h5"").string().c_str()), 0)" "ASSERT_EQ(run.exit_code, 0) | EXPECT_GT(H5Fis_hdf5(Path(""model_results.h5"").string().c_str()), 0)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.NativeExecutableAcceptsThermalInputAndRejectsInteriorBoundary ThermalApplicationTest.NativeExecutableAcceptsThermalInputAndRejectsInteriorBoundary; assertion 9개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.NativeExecutableAcceptsThermalInputAndRejectsInteriorBoundary 유지 원문 검사 body 및 assertion 동일. 24830ff7dc3c76bc4465be558297597f8626d2f17796512e86b1853983bb48da 24830ff7dc3c76bc4465be558297597f8626d2f17796512e86b1853983bb48da "ASSERT_GT(length, 0U) | ASSERT_LT(length, module.size()) | ASSERT_TRUE(std::filesystem::exists(executable)) | ASSERT_TRUE(CreateProcessW(executable.c_str(), command.data(), nullptr, nullptr, FALSE, CREATE_NO_WINDOW, nullptr, nullptr, &startup, &process)) | EXPECT_TRUE(GetExitCodeProcess(process.hProcess, &exit)) | ASSERT_EQ(wait, WAIT_OBJECT_0) | EXPECT_EQ(exit, valid ? 0U : 3U) | EXPECT_GT(H5Fis_hdf5(Path(""native_results.h5"").string().c_str()), 0) | EXPECT_EQ(ReadBytes(Path(""native_results.h5"")), previous)" "ASSERT_GT(length, 0U) | ASSERT_LT(length, module.size()) | ASSERT_TRUE(std::filesystem::exists(executable)) | ASSERT_TRUE(CreateProcessW(executable.c_str(), command.data(), nullptr, nullptr, FALSE, CREATE_NO_WINDOW, nullptr, nullptr, &startup, &process)) | EXPECT_TRUE(GetExitCodeProcess(process.hProcess, &exit)) | ASSERT_EQ(wait, WAIT_OBJECT_0) | EXPECT_EQ(exit, valid ? 0U : 3U) | EXPECT_GT(H5Fis_hdf5(Path(""native_results.h5"").string().c_str()), 0) | EXPECT_EQ(ReadBytes(Path(""native_results.h5"")), previous)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/integration/app/thermal_application_test.cpp support@1-208 helper/oracle/fixture/include/static assertion 구간: HdfHandle, Get, Shape, Doubles, StringAttribute, FrameRow, Frames, ReadBytes, Replace, AppRun, RunApplication, ThermalApplicationTest, Path, Write, Deck tests/integration/app/thermal_application_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 41bdb373a6e9bad882ced3ad466906c1fd0524cc64b6f6824100f7ead487b3cf 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/integration/app/thermal_application_test.cpp support@490-491 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/thermal_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/reference/b33_reference_comparison_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/reference/b33_reference_comparison_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8de80a54713f644fb3f7e0d4a1f2d633cf05973b3fcb71ad23bb9e3b318b5296 8de80a54713f644fb3f7e0d4a1f2d633cf05973b3fcb71ad23bb9e3b318b5296 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/b33_reference_comparison_test.cpp B33ReferenceComparison.GeneratesAuthoritativeHdf5AndComparisonEvidence B33ReferenceComparison.GeneratesAuthoritativeHdf5AndComparisonEvidence; assertion 35개 tests/reference/b33_reference_comparison_test.cpp B33ReferenceComparison.GeneratesAuthoritativeHdf5AndComparisonEvidence 유지 원문 검사 body 및 assertion 동일. 082a94dba1c41737c5aad55d0f5f0c0e94a339a24de29e3dfba6d70ddf48f0ea 082a94dba1c41737c5aad55d0f5f0c0e94a339a24de29e3dfba6d70ddf48f0ea "ASSERT_TRUE(std::filesystem::create_directories(output_directory, error)) | ASSERT_FALSE(error) | ASSERT_EQ(reference_before.size(), 4U) | EXPECT_EQ(reference_before[0U].relative_path, std::filesystem::path{""cantilever beam displacements.csv""}) | EXPECT_EQ(reference_before[1U].relative_path, std::filesystem::path{""cantilever beam elemental forces.csv""}) | EXPECT_EQ(reference_before[2U].relative_path, std::filesystem::path{""cantilever beam reactions.csv""}) | EXPECT_EQ(reference_before[3U].relative_path, std::filesystem::path{""cantilever beam.inp""}) | ASSERT_TRUE(std::filesystem::copy_file(input, execution_input, error)) | ASSERT_FALSE(error) | ASSERT_EQ(application.Run({execution_input.string()}), 0) | ASSERT_TRUE(std::filesystem::is_regular_file(results)) | ASSERT_GT(H5Fis_hdf5(results.string().c_str()), 0) | EXPECT_GT(StressRowCount(results), 0U) | ASSERT_TRUE(comparison_result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.rows.size(), kExpectedRowCount) | ASSERT_EQ(report.metrics.size(), kExpectedMetricCount) | EXPECT_TRUE(std::all_of( report.rows.begin(), report.rows.end(), [](const fesa::test::RowDecision& row) { return row.passed && std::isfinite(row.absolute_error) && std::isfinite(row.tolerance) && row.tolerance >= 0.0 && std::isfinite(row.reference_scale) && std::isfinite(row.near_zero_band) && std::isfinite(row.relative_error) && row.fesa.model_id == ""cantilever-beam-b33"" && row.reference.model_id == ""cantilever-beam-b33"" && row.fesa.step_name == ""Step-1"" && row.reference.step_name == ""Step-1"" && row.fesa.frame_index == 0U && row.reference.frame_index == 0U && row.fesa.instance_name == ""PART-1_1-1"" && row.reference.instance_name == ""PART-1_1-1"" && !row.fesa.hdf5_dataset_path.empty(); })) | EXPECT_TRUE( std::all_of(report.metrics.begin(), report.metrics.end(), [](const fesa::test::ComponentMetrics& metric) { return std::isfinite(metric.reference_scale) && std::isfinite(metric.near_zero_band) && std::isfinite(metric.maximum_absolute_error) && std::isfinite(metric.relative_rms) && metric.rms_passed && metric.passed && metric.row_count > 0U && !metric.components.empty(); })) | EXPECT_FALSE(report.stress_comparison_applicable) | EXPECT_NE(report.stress_comparison_reason.find(""N/A""), std::string::npos) | EXPECT_NE(report.stress_comparison_reason.find(""HDF5""), std::string::npos) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | EXPECT_TRUE(std::isfinite(report.physics_evidence.free_residual_norm)) | EXPECT_LE(report.physics_evidence.free_residual_norm, 1.0e-3) | EXPECT_LE(Norm(Sum(report.physics_evidence.applied_force, report.physics_evidence.reaction_force)), 1.0e-3) | EXPECT_LE(Norm(Sum(report.physics_evidence.applied_moment_about_origin, report.physics_evidence.reaction_moment_about_origin)), 1.0e-2) | ASSERT_TRUE(fesa::test::ReferenceComparison::WriteDeterministicJson( report, comparison) .IsOk()) | ASSERT_TRUE(std::filesystem::is_regular_file(comparison)) | EXPECT_NE(json.find(""\""stress_comparison_applicable\"":false""), std::string::npos) | EXPECT_NE(json.find(""\""physics_evidence\""""), std::string::npos) | EXPECT_NE(json.find(""\""source_element_label\""""), std::string::npos) | EXPECT_NE(json.find(""\""family_identity\""""), std::string::npos) | EXPECT_NE(json.find(""\""row_count\""""), std::string::npos) | EXPECT_EQ(generated_names, (std::vector{""cantilever beam.inp"", ""cantilever beam_log.txt"", ""cantilever beam_results.h5"", ""comparison.json""}))" "ASSERT_TRUE(std::filesystem::create_directories(output_directory, error)) | ASSERT_FALSE(error) | ASSERT_EQ(reference_before.size(), 4U) | EXPECT_EQ(reference_before[0U].relative_path, std::filesystem::path{""cantilever beam displacements.csv""}) | EXPECT_EQ(reference_before[1U].relative_path, std::filesystem::path{""cantilever beam elemental forces.csv""}) | EXPECT_EQ(reference_before[2U].relative_path, std::filesystem::path{""cantilever beam reactions.csv""}) | EXPECT_EQ(reference_before[3U].relative_path, std::filesystem::path{""cantilever beam.inp""}) | ASSERT_TRUE(std::filesystem::copy_file(input, execution_input, error)) | ASSERT_FALSE(error) | ASSERT_EQ(application.Run({execution_input.string()}), 0) | ASSERT_TRUE(std::filesystem::is_regular_file(results)) | ASSERT_GT(H5Fis_hdf5(results.string().c_str()), 0) | EXPECT_GT(StressRowCount(results), 0U) | ASSERT_TRUE(comparison_result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.rows.size(), kExpectedRowCount) | ASSERT_EQ(report.metrics.size(), kExpectedMetricCount) | EXPECT_TRUE(std::all_of( report.rows.begin(), report.rows.end(), [](const fesa::test::RowDecision& row) { return row.passed && std::isfinite(row.absolute_error) && std::isfinite(row.tolerance) && row.tolerance >= 0.0 && std::isfinite(row.reference_scale) && std::isfinite(row.near_zero_band) && std::isfinite(row.relative_error) && row.fesa.model_id == ""cantilever-beam-b33"" && row.reference.model_id == ""cantilever-beam-b33"" && row.fesa.step_name == ""Step-1"" && row.reference.step_name == ""Step-1"" && row.fesa.frame_index == 0U && row.reference.frame_index == 0U && row.fesa.instance_name == ""PART-1_1-1"" && row.reference.instance_name == ""PART-1_1-1"" && !row.fesa.hdf5_dataset_path.empty(); })) | EXPECT_TRUE( std::all_of(report.metrics.begin(), report.metrics.end(), [](const fesa::test::ComponentMetrics& metric) { return std::isfinite(metric.reference_scale) && std::isfinite(metric.near_zero_band) && std::isfinite(metric.maximum_absolute_error) && std::isfinite(metric.relative_rms) && metric.rms_passed && metric.passed && metric.row_count > 0U && !metric.components.empty(); })) | EXPECT_FALSE(report.stress_comparison_applicable) | EXPECT_NE(report.stress_comparison_reason.find(""N/A""), std::string::npos) | EXPECT_NE(report.stress_comparison_reason.find(""HDF5""), std::string::npos) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | EXPECT_TRUE(std::isfinite(report.physics_evidence.free_residual_norm)) | EXPECT_LE(report.physics_evidence.free_residual_norm, 1.0e-3) | EXPECT_LE(Norm(Sum(report.physics_evidence.applied_force, report.physics_evidence.reaction_force)), 1.0e-3) | EXPECT_LE(Norm(Sum(report.physics_evidence.applied_moment_about_origin, report.physics_evidence.reaction_moment_about_origin)), 1.0e-2) | ASSERT_TRUE(fesa::test::ReferenceComparison::WriteDeterministicJson( report, comparison) .IsOk()) | ASSERT_TRUE(std::filesystem::is_regular_file(comparison)) | EXPECT_NE(json.find(""\""stress_comparison_applicable\"":false""), std::string::npos) | EXPECT_NE(json.find(""\""physics_evidence\""""), std::string::npos) | EXPECT_NE(json.find(""\""source_element_label\""""), std::string::npos) | EXPECT_NE(json.find(""\""family_identity\""""), std::string::npos) | EXPECT_NE(json.find(""\""row_count\""""), std::string::npos) | EXPECT_EQ(generated_names, (std::vector{""cantilever beam.inp"", ""cantilever beam_log.txt"", ""cantilever beam_results.h5"", ""comparison.json""}))" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/b33_reference_comparison_test.cpp support@1-147 helper/oracle/fixture/include/static assertion 구간: Hdf5Handle, if, ReferenceSnapshotEntry, ReadBytes, SnapshotTree, sort, ExpectTreeUnchanged, Norm, Sum, StressRowCount tests/reference/b33_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 08f0770f5aeb24b1560b8da3f35b583cbf85abfbf36dded9d21e96dfb54c38c3 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/eigen_reference_cases_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/reference/eigen_reference_cases_test.cpp file 이관 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 modal identity·수치 기준은 유지한다. f91504b627d58c1ea91174e4d32575067afd8ad6f6e8e9ca79b0bce519a4e661 4890fe18f1ff259890fbc9baf6f4f1c39fabd3bc0a42b8059581dfff7604aeb6 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/eigen_reference_cases_test.cpp EigenReference.RunsOriginalInputAndComparesAllModalFrameIdentities EigenReference.RunsOriginalInputAndComparesAllModalFrameIdentities; assertion 16개 tests/reference/eigen_reference_cases_test.cpp EigenReference.RunsOriginalInputAndComparesAllModalFrameIdentities 이관 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 modal identity·수치 기준은 유지한다. fa57f3fdb447c190ddefaab2218f9e44265ca1eaf577b3c5b28dd587f66ad32c e4f451acf146ec42a498f137080e48e956b4c57c5dbbbaff1a880d95123d254c "EXPECT_EQ(ReadBytes(input), input_before) | EXPECT_EQ(ReadBytes(text), text_before) | ASSERT_EQ(exit_code, 0) | ASSERT_TRUE(std::filesystem::is_regular_file(results)) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().passed) | EXPECT_EQ(comparison.Value().source_step_name, ""Step-2"") | EXPECT_EQ(comparison.Value().requested_mode_count, 10U) | ASSERT_EQ(comparison.Value().rows.size(), 10U) | ASSERT_EQ(comparison.Value().families.size(), 10U) | EXPECT_EQ(comparison.Value().rows[index].mode_id, index + 1U) | EXPECT_EQ(comparison.Value().rows[index].component, ""Value"") | EXPECT_EQ(comparison.Value().families[index].row_count, 1U) | EXPECT_TRUE(comparison.Value().families[index].passed) | EXPECT_EQ(ReadBytes(input), input_before) | EXPECT_EQ(ReadBytes(text), text_before)" "EXPECT_EQ(ReadBytes(input), input_before) | EXPECT_EQ(ReadBytes(text), text_before) | ASSERT_EQ(exit_code, 0) | ASSERT_TRUE(std::filesystem::is_regular_file(results)) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().passed) | EXPECT_EQ(comparison.Value().source_step_name, ""Step-2"") | EXPECT_EQ(comparison.Value().requested_mode_count, 10U) | ASSERT_EQ(comparison.Value().rows.size(), 10U) | ASSERT_EQ(comparison.Value().families.size(), 10U) | EXPECT_EQ(comparison.Value().rows[index].mode_id, index + 1U) | EXPECT_EQ(comparison.Value().rows[index].component, ""Value"") | EXPECT_EQ(comparison.Value().families[index].row_count, 1U) | EXPECT_TRUE(comparison.Value().families[index].passed) | EXPECT_EQ(ReadBytes(input), input_before) | EXPECT_EQ(ReadBytes(text), text_before)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/reference/eigen_reference_cases_test.cpp support@1-31 helper/oracle/fixture/include/static assertion 구간: ReadBytes, if tests/reference/eigen_reference_cases_test.cpp file-support 유지 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 modal identity·수치 기준은 유지한다. e6d5ed00a9bcbd734a958a0c92005773d61527a1f2fdad5e04571e08bb892da2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/eigen_reference_cases_test.cpp support@69-70 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/eigen_reference_cases_test.cpp file-support 유지 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 modal identity·수치 기준은 유지한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/eigen_reference_comparison.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/eigen_reference_comparison.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b46d4b18fcbf3bbcba3547c41cdecc3f206eb6ed6d2df44b7de4f3a8c2c86000 b46d4b18fcbf3bbcba3547c41cdecc3f206eb6ed6d2df44b7de4f3a8c2c86000 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/eigen_reference_comparison.cpp support@1-436 helper/oracle/fixture/include/static assertion 구간: fesa, ComparisonFailure, Fail, FailureStatus, Hdf5Handle, if, RequireId, RequireHdf, ReadUtf8Attribute, ReadUint64Attribute, Hdf5Mode, ReadModes, ParseFiniteNumber, data, RequireNumberSyntax, ReadReferenceText, while, Result, Compare, for, catch tests/reference/eigen_reference_comparison.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f8341d7432300658ef47c07672af81668f135597ea1bad54b73a9c9000e3c51b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/eigen_reference_comparison.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/eigen_reference_comparison.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 96423b9a6c85e87752a28c38eed575c834c724caad6692122523f49888391a15 96423b9a6c85e87752a28c38eed575c834c724caad6692122523f49888391a15 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/eigen_reference_comparison.h support@1-51 helper/oracle/fixture/include/static assertion 구간: fesa, EigenReferenceCase, EigenReferenceRowDecision, EigenReferenceComparisonReport, EigenReferenceComparison tests/reference/eigen_reference_comparison.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c66c08bae4956e9e12aa43fd98fcb70678b043ac7046cd085f1662494f61f0e0 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/eigen_reference_comparison_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/reference/eigen_reference_comparison_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f71ba9da827ff4740ce536149fef0f03dcd226f6c61f72a721973cae2b159e2a f71ba9da827ff4740ce536149fef0f03dcd226f6c61f72a721973cae2b159e2a 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/eigen_reference_comparison_test.cpp EigenReferenceComparison.DirectSchemaFixtureAcceptsRepeatedReorderedModes EigenReferenceComparison.DirectSchemaFixtureAcceptsRepeatedReorderedModes; assertion 14개 tests/reference/eigen_reference_comparison_test.cpp EigenReferenceComparison.DirectSchemaFixtureAcceptsRepeatedReorderedModes 유지 원문 검사 body 및 assertion 동일. c756a589e4eb9b1be73380851a5bf8e12dae19900777b023aa6929938a0f7db5 c756a589e4eb9b1be73380851a5bf8e12dae19900777b023aa6929938a0f7db5 "ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(ok.HasValue()) | EXPECT_EQ(ok.Value().policy_id, ""mitc4-eigen-first-implementation"") | EXPECT_DOUBLE_EQ(ok.Value().relative_rms_tolerance, 0.05) | EXPECT_EQ(ok.Value().families.size(), 2U) | ASSERT_GE(H5Dwrite(ds, t, H5S_ALL, H5S_ALL, H5P_DEFAULT, v), 0) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_EQ(comparison.Value().passed, sample.second) | EXPECT_EQ(comparison.Value().families[0].rms_passed, sample.second) | EXPECT_TRUE(comparison.Value().families[1].passed) | ASSERT_FALSE(comparison.HasValue()) | ASSERT_EQ(comparison.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(comparison.GetStatus().Diagnostics()[0U].code, invalid_text.expected_code) | EXPECT_FALSE( fesa::test::EigenReferenceComparison::Compare(reference_case).HasValue())" "ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(ok.HasValue()) | EXPECT_EQ(ok.Value().policy_id, ""mitc4-eigen-first-implementation"") | EXPECT_DOUBLE_EQ(ok.Value().relative_rms_tolerance, 0.05) | EXPECT_EQ(ok.Value().families.size(), 2U) | ASSERT_GE(H5Dwrite(ds, t, H5S_ALL, H5S_ALL, H5P_DEFAULT, v), 0) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_EQ(comparison.Value().passed, sample.second) | EXPECT_EQ(comparison.Value().families[0].rms_passed, sample.second) | EXPECT_TRUE(comparison.Value().families[1].passed) | ASSERT_FALSE(comparison.HasValue()) | ASSERT_EQ(comparison.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(comparison.GetStatus().Diagnostics()[0U].code, invalid_text.expected_code) | EXPECT_FALSE( fesa::test::EigenReferenceComparison::Compare(reference_case).HasValue())" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/eigen_reference_comparison_test.cpp support@1-54 helper/oracle/fixture/include/static assertion 구간: UniqueFixtureDirectory, Mode, Str, U tests/reference/eigen_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c8f66a74f9a84a0ee73ed94a47674bcef6637bcbda68daa9b9cac52cd0715989 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/eigen_reference_comparison_test.cpp support@193-193 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/eigen_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_cases_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/reference/mitc4_reference_cases_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 60c30a9f9b735df4571ef7bc262710fc3c1e84fb98b86b2d25611ff1406cb745 60c30a9f9b735df4571ef7bc262710fc3c1e84fb98b86b2d25611ff1406cb745 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_cases_test.cpp Mitc4S4Reference.PreservesS4AndWritesCommonMitc4Metadata Mitc4S4Reference.PreservesS4AndWritesCommonMitc4Metadata; assertion 0개 tests/reference/mitc4_reference_cases_test.cpp Mitc4S4Reference.PreservesS4AndWritesCommonMitc4Metadata 유지 원문 검사 body 및 assertion 동일. 0a439f95ff0f8ff6baf1784c2b8286af7c5e9abe4027f6ab711e7cfd274dd297 0a439f95ff0f8ff6baf1784c2b8286af7c5e9abe4027f6ab711e7cfd274dd297 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_cases_test.cpp Mitc4S4Reference.PassesBlockingUAndReportsEveryUrRow Mitc4S4Reference.PassesBlockingUAndReportsEveryUrRow; assertion 0개 tests/reference/mitc4_reference_cases_test.cpp Mitc4S4Reference.PassesBlockingUAndReportsEveryUrRow 유지 원문 검사 body 및 assertion 동일. 4305a332a97418a4548f580e4efd059145ba1f826292cc21d959bbeb55443add 4305a332a97418a4548f580e4efd059145ba1f826292cc21d959bbeb55443add 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_cases_test.cpp support@1-177 helper/oracle/fixture/include/static assertion 구간: ReadBytes, if, ArtifactSnapshot, Snapshot, ExpectUnchanged, CaseEvidence, RunCase, for, ExpectCommonMetadata, ExpectComparisonCoverage, count_if, EXPECT_TRUE, find_if tests/reference/mitc4_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 00c52267b127eef3d2cd68d7bf6171119e37f97b63bd848ff0448f70687590f3 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_cases_test.cpp support@186-187 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 60b4486538263f1db4cc916d19cd7fe382e843507683db5da9f99168f7336722 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_cases_test.cpp support@197-198 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_comparison.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/mitc4_reference_comparison.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 58ffb13b5dff2e34b3e57df1376627be96d8d0cd8691ca1f77568d5991f8a191 1e23f52e7a9ff7172bf67f5f9c3e460a05b86089b4df1f91566e502b3f7a3c69 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_comparison.cpp support@1-984 helper/oracle/fixture/include/static assertion 구간: fesa, ComparisonFailure, Fail, FailureStatus, Trim, find_if_not, SplitCsvLine, while, if, ParsePositiveLabel, ParseFiniteDouble, UppercaseAscii, transform, IdentityKey, WideRow, ReadReferenceCsv, Hdf5Handle, Hdf5ErrorSilencer, Hdf5VlenReclaimer, Reclaim, RequireId, RequireHdf, MakeUtf8StringType, OpenDataset, Dimensions, ReadStringAttribute, ReadUint64Attribute, RequireStringAttribute, RequireExactCompoundMembers, NodeReadRow, ReadNodes, ElementIdentityReadRow, RequireElementIdentity, for, ReadDisplacement, Hdf5Projection, ReadHdf5, RequireArtifacts, FiniteText, BranchName, switch, JsonEscape, WriteJsonStrings, Result, Compare, catch, WriteDeterministicJson tests/reference/mitc4_reference_comparison.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ba7f7e025e2dad0fa22b02dc44d600c2edb732f2bec5f89856fb2dab648b0958 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_comparison.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/mitc4_reference_comparison.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8bd6a36cb25ac102569f733fb560433f5352ddeb7788182e6bbd561da49e846c 51c8b78b44583986eeb175a839fd72a11ca5f3405bf016432da9563878c8f1f6 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_comparison.h support@1-93 helper/oracle/fixture/include/static assertion 구간: fesa, Mitc4ReferenceCase, Mitc4RowDecision, Mitc4ComponentMetrics, Mitc4VectorMetrics, Mitc4Warning, Mitc4ComparisonReport, Mitc4ReferenceComparison tests/reference/mitc4_reference_comparison.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 66926b7d72ccfcf4d1a0a42bfa456a43a8b71eac6b7dea8b91f381aff620cb5f 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_comparison_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/reference/mitc4_reference_comparison_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84620741c644b7ae7ae1cfc527b6effa1fe32d47175b1755be6f337f8d20aa45 b886b3cf9a6d3569e73f6792ce8ff0a84052c81eb21d78a31245fc74033bf370 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.MapsTrimmedHeaderAndSixComponentsBySourceIdentity Mitc4ReferenceComparison.MapsTrimmedHeaderAndSixComponentsBySourceIdentity; assertion 11개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.MapsTrimmedHeaderAndSixComponentsBySourceIdentity 유지 원문 검사 body 및 assertion 동일. 44461d859079ddd35dd95bcca00277017ed16033e7164b9e62d27f9d98e54836 44461d859079ddd35dd95bcca00277017ed16033e7164b9e62d27f9d98e54836 "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.rows.size(), 12U) | EXPECT_EQ(report.rows[0U].source_node_label, 1) | EXPECT_EQ(report.rows[0U].component, ""U1"") | EXPECT_EQ(report.rows[5U].component, ""UR3"") | EXPECT_EQ(report.rows[6U].source_node_label, 2) | ASSERT_EQ(report.metrics.size(), 2U) | EXPECT_EQ(report.metrics[0U].row_count, 6U) | EXPECT_EQ(report.metrics[1U].row_count, 6U) | EXPECT_TRUE(std::all_of(report.rows.begin(), report.rows.end(), [](const fesa::test::Mitc4RowDecision& row) { return row.case_id == ""shell-contract"" && row.instance_name == kInstanceName && row.within_tolerance; }))" "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.rows.size(), 12U) | EXPECT_EQ(report.rows[0U].source_node_label, 1) | EXPECT_EQ(report.rows[0U].component, ""U1"") | EXPECT_EQ(report.rows[5U].component, ""UR3"") | EXPECT_EQ(report.rows[6U].source_node_label, 2) | ASSERT_EQ(report.metrics.size(), 2U) | EXPECT_EQ(report.metrics[0U].row_count, 6U) | EXPECT_EQ(report.metrics[1U].row_count, 6U) | EXPECT_TRUE(std::all_of(report.rows.begin(), report.rows.end(), [](const fesa::test::Mitc4RowDecision& row) { return row.case_id == ""shell-contract"" && row.instance_name == kInstanceName && row.within_tolerance; }))" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RejectsInvalidInventoryBeforeNumericComparison Mitc4ReferenceComparison.RejectsInvalidInventoryBeforeNumericComparison; assertion 1개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RejectsInvalidInventoryBeforeNumericComparison 유지 원문 검사 body 및 assertion 동일. d4d1ef19df229bad1f14847b9c437910e324f55f638cb91dbec9ec9815681c09 d4d1ef19df229bad1f14847b9c437910e324f55f638cb91dbec9ec9815681c09 ASSERT_TRUE(std::filesystem::remove(fixture.Input())) ASSERT_TRUE(std::filesystem::remove(fixture.Input())) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.SharesTranslationScaleAcrossUComponentsAndUsesNearZeroBranches Mitc4ReferenceComparison.SharesTranslationScaleAcrossUComponentsAndUsesNearZeroBranches; assertion 19개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.SharesTranslationScaleAcrossUComponentsAndUsesNearZeroBranches 유지 원문 검사 body 및 assertion 동일. 3dbbc317c15107ab849cb8e39ca1a7f85c3a111c899a6074f98efcda9b6b5311 3dbbc317c15107ab849cb8e39ca1a7f85c3a111c899a6074f98efcda9b6b5311 "ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(report.passed) | ASSERT_NE(u1_zero, nullptr) | ASSERT_NE(u1_scaled, nullptr) | ASSERT_NE(u2_near, nullptr) | ASSERT_NE(u2_over, nullptr) | EXPECT_DOUBLE_EQ(u1_zero->tolerance, 8.0e-2) | EXPECT_TRUE(u1_zero->within_tolerance) | EXPECT_FALSE(u1_zero->relative_error_applicable) | EXPECT_FALSE(u1_scaled->within_tolerance) | EXPECT_NEAR(u1_scaled->normalized_error, 0.05005, 1.0e-12) | EXPECT_DOUBLE_EQ(u2_near->tolerance, 8.0e-2) | EXPECT_TRUE(u2_near->within_tolerance) | EXPECT_FALSE(u2_near->relative_error_applicable) | EXPECT_FALSE(u2_over->within_tolerance) | EXPECT_DOUBLE_EQ(u2_over->tolerance, 8.0e-2) | ASSERT_NE(translation, nullptr) | EXPECT_DOUBLE_EQ(translation->reference_scale, 8.0) | EXPECT_EQ(translation->components, (std::vector{""U1"", ""U2"", ""U3""}))" "ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(report.passed) | ASSERT_NE(u1_zero, nullptr) | ASSERT_NE(u1_scaled, nullptr) | ASSERT_NE(u2_near, nullptr) | ASSERT_NE(u2_over, nullptr) | EXPECT_DOUBLE_EQ(u1_zero->tolerance, 8.0e-2) | EXPECT_TRUE(u1_zero->within_tolerance) | EXPECT_FALSE(u1_zero->relative_error_applicable) | EXPECT_FALSE(u1_scaled->within_tolerance) | EXPECT_NEAR(u1_scaled->normalized_error, 0.05005, 1.0e-12) | EXPECT_DOUBLE_EQ(u2_near->tolerance, 8.0e-2) | EXPECT_TRUE(u2_near->within_tolerance) | EXPECT_FALSE(u2_near->relative_error_applicable) | EXPECT_FALSE(u2_over->within_tolerance) | EXPECT_DOUBLE_EQ(u2_over->tolerance, 8.0e-2) | ASSERT_NE(translation, nullptr) | EXPECT_DOUBLE_EQ(translation->reference_scale, 8.0) | EXPECT_EQ(translation->components, (std::vector{""U1"", ""U2"", ""U3""}))" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationExceedanceWarnsWithoutBlockingTranslationVerdict Mitc4ReferenceComparison.RotationExceedanceWarnsWithoutBlockingTranslationVerdict; assertion 11개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationExceedanceWarnsWithoutBlockingTranslationVerdict 유지 원문 검사 body 및 assertion 동일. 0a685f2a0ea27dcdc95dc89c981067220e0418afd2c3cc242569d38d86212613 0a685f2a0ea27dcdc95dc89c981067220e0418afd2c3cc242569d38d86212613 "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 2U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-exceedance"") | EXPECT_EQ(report.warnings[1U].code, ""rotation-reference-rms-exceedance"") | ASSERT_NE(row, nullptr) | EXPECT_FALSE(row->blocking) | EXPECT_FALSE(row->within_tolerance) | EXPECT_EQ(report.warnings[0U].row, static_cast(row - report.rows.data())) | EXPECT_NE(report.warnings[0U].message.find(""shell-contract""), std::string::npos) | EXPECT_NE(report.warnings[0U].message.find(""UR1""), std::string::npos)" "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 2U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-exceedance"") | EXPECT_EQ(report.warnings[1U].code, ""rotation-reference-rms-exceedance"") | ASSERT_NE(row, nullptr) | EXPECT_FALSE(row->blocking) | EXPECT_FALSE(row->within_tolerance) | EXPECT_EQ(report.warnings[0U].row, static_cast(row - report.rows.data())) | EXPECT_NE(report.warnings[0U].message.find(""shell-contract""), std::string::npos) | EXPECT_NE(report.warnings[0U].message.find(""UR1""), std::string::npos)" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationRmsExceedanceWarnsWhenEveryRotationRowPasses Mitc4ReferenceComparison.RotationRmsExceedanceWarnsWhenEveryRotationRowPasses; assertion 5개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationRmsExceedanceWarnsWhenEveryRotationRowPasses 유지 원문 검사 body 및 assertion 동일. b300a3ed2c250fb7fe702e7abdc96b7f2d90a9231c2f09107719e9be524a4521 b300a3ed2c250fb7fe702e7abdc96b7f2d90a9231c2f09107719e9be524a4521 "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 1U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-rms-exceedance"") | EXPECT_TRUE(std::all_of(report.rows.begin(), report.rows.end(), [](const fesa::test::Mitc4RowDecision& row) { return row.within_tolerance; }))" "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 1U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-rms-exceedance"") | EXPECT_TRUE(std::all_of(report.rows.begin(), report.rows.end(), [](const fesa::test::Mitc4RowDecision& row) { return row.within_tolerance; }))" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationRowAndRmsExceedancesProduceSeparateWarnings Mitc4ReferenceComparison.RotationRowAndRmsExceedancesProduceSeparateWarnings; assertion 7개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationRowAndRmsExceedancesProduceSeparateWarnings 유지 원문 검사 body 및 assertion 동일. deca37dbcad9f79f872439a23d198ead553f7e589eddb78d69f9c74acd722c39 deca37dbcad9f79f872439a23d198ead553f7e589eddb78d69f9c74acd722c39 "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 2U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-exceedance"") | EXPECT_EQ(report.warnings[1U].code, ""rotation-reference-rms-exceedance"") | EXPECT_LT(report.warnings[0U].row, report.rows.size()) | EXPECT_LT(report.warnings[1U].row, report.rows.size())" "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 2U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-exceedance"") | EXPECT_EQ(report.warnings[1U].code, ""rotation-reference-rms-exceedance"") | EXPECT_LT(report.warnings[0U].row, report.rows.size()) | EXPECT_LT(report.warnings[1U].row, report.rows.size())" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.ReportsMetricsVectorsWorstRowAndJsonDeterministically Mitc4ReferenceComparison.ReportsMetricsVectorsWorstRowAndJsonDeterministically; assertion 18개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.ReportsMetricsVectorsWorstRowAndJsonDeterministically 유지 원문 검사 body 및 assertion 동일. cff2c517222a6a1e2b7e9aba2c8336edfcb6740cb671e64b4a0ab0cb9c1172c6 cff2c517222a6a1e2b7e9aba2c8336edfcb6740cb671e64b4a0ab0cb9c1172c6 "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.metrics.size(), 2U) | ASSERT_EQ(report.vector_metrics.size(), 2U) | EXPECT_NEAR(report.vector_metrics[0U].displacement_norm_error, std::sqrt(0.3125) * 1.0e-9, 1.0e-21) | EXPECT_DOUBLE_EQ(report.vector_metrics[0U].rotation_norm_error, 0.75e-9) | ASSERT_LT(report.worst_row, report.rows.size()) | EXPECT_EQ(report.rows[report.worst_row].component, ""UR1"") | EXPECT_TRUE(std::isfinite(metric.reference_scale)) | EXPECT_TRUE(std::isfinite(metric.near_zero_band)) | EXPECT_TRUE(std::isfinite(metric.maximum_absolute_error)) | EXPECT_TRUE(std::isfinite(metric.relative_rms)) | EXPECT_FALSE(metric.components.empty()) | EXPECT_LT(metric.worst_row, report.rows.size()) | ASSERT_TRUE(fesa::test::Mitc4ReferenceComparison::WriteDeterministicJson( report, json_a) .IsOk()) | ASSERT_TRUE(fesa::test::Mitc4ReferenceComparison::WriteDeterministicJson( report, json_b) .IsOk()) | EXPECT_EQ(first, ReadBytes(json_b)) | EXPECT_NE(first.find(key), std::string::npos)" "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.metrics.size(), 2U) | ASSERT_EQ(report.vector_metrics.size(), 2U) | EXPECT_NEAR(report.vector_metrics[0U].displacement_norm_error, std::sqrt(0.3125) * 1.0e-9, 1.0e-21) | EXPECT_DOUBLE_EQ(report.vector_metrics[0U].rotation_norm_error, 0.75e-9) | ASSERT_LT(report.worst_row, report.rows.size()) | EXPECT_EQ(report.rows[report.worst_row].component, ""UR1"") | EXPECT_TRUE(std::isfinite(metric.reference_scale)) | EXPECT_TRUE(std::isfinite(metric.near_zero_band)) | EXPECT_TRUE(std::isfinite(metric.maximum_absolute_error)) | EXPECT_TRUE(std::isfinite(metric.relative_rms)) | EXPECT_FALSE(metric.components.empty()) | EXPECT_LT(metric.worst_row, report.rows.size()) | ASSERT_TRUE(fesa::test::Mitc4ReferenceComparison::WriteDeterministicJson( report, json_a) .IsOk()) | ASSERT_TRUE(fesa::test::Mitc4ReferenceComparison::WriteDeterministicJson( report, json_b) .IsOk()) | EXPECT_EQ(first, ReadBytes(json_b)) | EXPECT_NE(first.find(key), std::string::npos)" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RequiresOnlyDeclaredInputCsvAndHdf5 Mitc4ReferenceComparison.RequiresOnlyDeclaredInputCsvAndHdf5; assertion 3개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RequiresOnlyDeclaredInputCsvAndHdf5 유지 원문 검사 body 및 assertion 동일. 5e8e14898d5f4d7dc448a30743686c8627513240f85ab704fe3dc6e23c603a55 5e8e14898d5f4d7dc448a30743686c8627513240f85ab704fe3dc6e23c603a55 "EXPECT_EQ(names, (std::vector{""case.inp"", ""displacements.csv"", ""results.h5""})) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().passed)" "EXPECT_EQ(names, (std::vector{""case.inp"", ""displacements.csv"", ""results.h5""})) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().passed)" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_comparison_test.cpp support@1-476 helper/oracle/fixture/include/static assertion 구간: Hdf5Handle, if, RequireId, RequireHdf, MakeUtf8StringType, WriteStringAttribute, WriteUint64Attribute, CreateGroup, ComparisonValueRow, DefaultRows, Hdf5Options, NodeWriteRow, ElementWriteRow, WriteNodes, for, WriteElements, WriteDisplacement, WriteCsv, ContractFixture, ReferenceCase, ExpectFailureCode, FindRow, find_if, FindMetric, ReadBytes tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 37402c89c01cf3d2cc2e8ab77859308b01ab38311dacae197ad4bc1c5b5ab9f9 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_comparison_test.cpp support@509-510 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0395266b04005731c3a8af3c854de2e8675b475916ea8b790258cd372ba59d80 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_comparison_test.cpp support@591-592 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bbe05c4478ba04dae1068ff83f56d7e512486c768824cd8b6645449c28f0076c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_comparison_test.cpp support@638-639 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ee84c2fb6946961d9421c461d0c0de38916103a6aa11929f0b95ecb0bae198a2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_comparison_test.cpp support@706-707 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 54b3ad86c7b60c18d9bd032f8ba2e7e827c96c6da35e0194fb82dc04afcbae8e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_comparison_test.cpp support@755-756 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b1f4e55b34b476926e1cf7fe2ada3941a66cdc5cd6e79bd7e94ad257167f6dcc 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/mitc4_reference_comparison_test.cpp support@772-773 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_cases_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/reference/nonlinear_static_reference_cases_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d50d0cc07497cb23b71c50e59b5eba6896d601f76c57a416cb5d8fe2f950b269 d50d0cc07497cb23b71c50e59b5eba6896d601f76c57a416cb5d8fe2f950b269 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.AuditsEveryDeclaredArtifactBeforeExecution NonlinearStaticReference.AuditsEveryDeclaredArtifactBeforeExecution; assertion 8개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.AuditsEveryDeclaredArtifactBeforeExecution 유지 원문 검사 body 및 assertion 동일. 188bdb8763fbe96d17021a85b71a95d57a69789bc2d7a07ca0d86dbceb1d6c70 188bdb8763fbe96d17021a85b71a95d57a69789bc2d7a07ca0d86dbceb1d6c70 "ASSERT_TRUE(nonlinear_artifacts.HasValue()) | ASSERT_EQ(nonlinear_artifacts.Value().size(), 4U) | EXPECT_EQ(nonlinear_artifacts.Value()[0U].sha256, ""4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2"") | EXPECT_EQ(nonlinear_artifacts.Value()[3U].sha256, ""5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F"") | ASSERT_TRUE(linear_artifacts.HasValue()) | ASSERT_EQ(linear_artifacts.Value().size(), 4U) | EXPECT_EQ(linear_artifacts.Value()[0U].sha256, ""4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF"") | EXPECT_EQ(linear_artifacts.Value()[3U].sha256, ""2B75A5B0DEB045A283C9BB7E9B1153B79F7537FF487214BF4A23316B59B660A7"")" "ASSERT_TRUE(nonlinear_artifacts.HasValue()) | ASSERT_EQ(nonlinear_artifacts.Value().size(), 4U) | EXPECT_EQ(nonlinear_artifacts.Value()[0U].sha256, ""4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2"") | EXPECT_EQ(nonlinear_artifacts.Value()[3U].sha256, ""5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F"") | ASSERT_TRUE(linear_artifacts.HasValue()) | ASSERT_EQ(linear_artifacts.Value().size(), 4U) | EXPECT_EQ(linear_artifacts.Value()[0U].sha256, ""4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF"") | EXPECT_EQ(linear_artifacts.Value()[3U].sha256, ""2B75A5B0DEB045A283C9BB7E9B1153B79F7537FF487214BF4A23316B59B660A7"")" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.CopiesRunsComparesAndPreservesTheReadOnlyReferenceInventory NonlinearStaticReference.CopiesRunsComparesAndPreservesTheReadOnlyReferenceInventory; assertion 16개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.CopiesRunsComparesAndPreservesTheReadOnlyReferenceInventory 유지 원문 검사 body 및 assertion 동일. 2eede76606712cf98bc621846084840a3172005b4d3d556415eeb01cef3e286a 2eede76606712cf98bc621846084840a3172005b4d3d556415eeb01cef3e286a "ASSERT_TRUE(before.HasValue()) | ASSERT_TRUE(copied.HasValue()) | EXPECT_NE(copied.Value().parent_path(), reference_case.original_input_path.parent_path()) | EXPECT_EQ(ReadBytes(copied.Value()), ReadBytes(reference_case.original_input_path)) | ASSERT_TRUE(generated.HasValue()) | EXPECT_EQ(generated.Value().copied_input_path, copied.Value()) | EXPECT_TRUE(std::filesystem::is_regular_file( generated.Value().generated_results_hdf5)) | EXPECT_TRUE( std::filesystem::is_regular_file(generated.Value().generated_log_path)) | EXPECT_EQ(generated.Value().generated_results_hdf5.filename(), case_id == ""shellnl-s4-final"" ? ""shellNL_results.h5"" : ""shell_results.h5"") | EXPECT_EQ( generated.Value().generated_log_path.filename(), case_id == ""shellnl-s4-final"" ? ""shellNL_log.txt"" : ""shell_log.txt"") | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().blocking_passed) | EXPECT_EQ(comparison.Value().copied_input_path, copied.Value()) | EXPECT_EQ(comparison.Value().generated_log_path, generated.Value().generated_log_path) | EXPECT_EQ(FindFamily(comparison.Value(), ""RM3""), nullptr) | ASSERT_TRUE(after.HasValue())" "ASSERT_TRUE(before.HasValue()) | ASSERT_TRUE(copied.HasValue()) | EXPECT_NE(copied.Value().parent_path(), reference_case.original_input_path.parent_path()) | EXPECT_EQ(ReadBytes(copied.Value()), ReadBytes(reference_case.original_input_path)) | ASSERT_TRUE(generated.HasValue()) | EXPECT_EQ(generated.Value().copied_input_path, copied.Value()) | EXPECT_TRUE(std::filesystem::is_regular_file( generated.Value().generated_results_hdf5)) | EXPECT_TRUE( std::filesystem::is_regular_file(generated.Value().generated_log_path)) | EXPECT_EQ(generated.Value().generated_results_hdf5.filename(), case_id == ""shellnl-s4-final"" ? ""shellNL_results.h5"" : ""shell_results.h5"") | EXPECT_EQ( generated.Value().generated_log_path.filename(), case_id == ""shellnl-s4-final"" ? ""shellNL_log.txt"" : ""shell_log.txt"") | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().blocking_passed) | EXPECT_EQ(comparison.Value().copied_input_path, copied.Value()) | EXPECT_EQ(comparison.Value().generated_log_path, generated.Value().generated_log_path) | EXPECT_EQ(FindFamily(comparison.Value(), ""RM3""), nullptr) | ASSERT_TRUE(after.HasValue())" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.RejectsInvalidHdf5BeforeToleranceAndKeepsWarningOnlyClassification NonlinearStaticReference.RejectsInvalidHdf5BeforeToleranceAndKeepsWarningOnlyClassification; assertion 4개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.RejectsInvalidHdf5BeforeToleranceAndKeepsWarningOnlyClassification 유지 원문 검사 body 및 assertion 동일. c212189f32ba963e3f1464a12d8527079d439ef8c08cf77fa6186ab4c701cf1d c212189f32ba963e3f1464a12d8527079d439ef8c08cf77fa6186ab4c701cf1d ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | EXPECT_FALSE( fesa::test::CompareHdf5ToReferenceCsv(reference_case, invalid_hdf5) .HasValue()) | EXPECT_EQ( fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kWarningOnlyDifferences) ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | EXPECT_FALSE( fesa::test::CompareHdf5ToReferenceCsv(reference_case, invalid_hdf5) .HasValue()) | EXPECT_EQ( fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kWarningOnlyDifferences) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.AuditsRetainedStaticArtifacts NonlinearStaticReference.AuditsRetainedStaticArtifacts; assertion 7개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.AuditsRetainedStaticArtifacts 유지 원문 검사 body 및 assertion 동일. d8455237b6913bfc17eb366ce869732b1034a695dbc6da8104f52942fa5fa6fb d8455237b6913bfc17eb366ce869732b1034a695dbc6da8104f52942fa5fa6fb ASSERT_TRUE(before.HasValue()) | ASSERT_EQ(before.Value().size(), 4U) | ASSERT_TRUE(copied.HasValue()) | EXPECT_NE(copied.Value().parent_path(), reference_case.original_input_path.parent_path()) | ASSERT_TRUE(generated.HasValue()) | EXPECT_TRUE(std::filesystem::is_regular_file( generated.Value().generated_results_hdf5)) | ASSERT_TRUE(after.HasValue()) ASSERT_TRUE(before.HasValue()) | ASSERT_EQ(before.Value().size(), 4U) | ASSERT_TRUE(copied.HasValue()) | EXPECT_NE(copied.Value().parent_path(), reference_case.original_input_path.parent_path()) | ASSERT_TRUE(generated.HasValue()) | EXPECT_TRUE(std::filesystem::is_regular_file( generated.Value().generated_results_hdf5)) | ASSERT_TRUE(after.HasValue()) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.ReviewOnlyLocalReactionsCannotChangeBlockingVerdict NonlinearStaticReference.ReviewOnlyLocalReactionsCannotChangeBlockingVerdict; assertion 4개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.ReviewOnlyLocalReactionsCannotChangeBlockingVerdict 유지 원문 검사 body 및 assertion 동일. 65b04d41c62639181a36905c13090411b957dc30b224c524136459e7b051deb4 65b04d41c62639181a36905c13090411b957dc30b224c524136459e7b051deb4 ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().external_blocking_passed) ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().external_blocking_passed) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.BlocksOnGlobalBalanceAndAcceptedFreeResidual NonlinearStaticReference.BlocksOnGlobalBalanceAndAcceptedFreeResidual; assertion 7개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.BlocksOnGlobalBalanceAndAcceptedFreeResidual 유지 원문 검사 body 및 assertion 동일. 007fcebce090b5bf09d568e58cd17470b556ad70894f09e2dc2703f4cec41e51 007fcebce090b5bf09d568e58cd17470b556ad70894f09e2dc2703f4cec41e51 ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | ASSERT_TRUE(comparison.HasValue()) | ASSERT_NE(found, comparison.Value().internal_equilibrium.end()) | EXPECT_TRUE(found->passed) | EXPECT_TRUE(comparison.Value().internal_blocking_passed) | EXPECT_NE(comparison.Value().constrained_reaction_resultant.force, zero_resultant) ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | ASSERT_TRUE(comparison.HasValue()) | ASSERT_NE(found, comparison.Value().internal_equilibrium.end()) | EXPECT_TRUE(found->passed) | EXPECT_TRUE(comparison.Value().internal_blocking_passed) | EXPECT_NE(comparison.Value().constrained_reaction_resultant.force, zero_resultant) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.RejectsMissingExtraDuplicateAndNonfiniteRowsBeforeToleranceAndRecordsReviewOnlyFindings NonlinearStaticReference.RejectsMissingExtraDuplicateAndNonfiniteRowsBeforeToleranceAndRecordsReviewOnlyFindings; assertion 3개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.RejectsMissingExtraDuplicateAndNonfiniteRowsBeforeToleranceAndRecordsReviewOnlyFindings 유지 원문 검사 body 및 assertion 동일. f98dddaed34ee9b825986ce96db9d50e870ce4a58ceaa9e262995c448f58d601 f98dddaed34ee9b825986ce96db9d50e870ce4a58ceaa9e262995c448f58d601 "EXPECT_EQ(fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kFailed) | EXPECT_EQ(report.precheck_findings[1U].diagnostic_code, ""duplicate-row"") | EXPECT_EQ(report.precheck_findings[2U].diagnostic_code, ""nonfinite-row"")" "EXPECT_EQ(fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kFailed) | EXPECT_EQ(report.precheck_findings[1U].diagnostic_code, ""duplicate-row"") | EXPECT_EQ(report.precheck_findings[2U].diagnostic_code, ""nonfinite-row"")" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.GlobalForceAndMomentBalanceUseApprovedInclusiveOneEighthGate NonlinearStaticReference.GlobalForceAndMomentBalanceUseApprovedInclusiveOneEighthGate; assertion 9개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.GlobalForceAndMomentBalanceUseApprovedInclusiveOneEighthGate 유지 원문 검사 body 및 assertion 동일. 37b6f0097c7fdc4525f9c98325a913cc1c66be9a852f7ec7ea8d6dbe8e973336 37b6f0097c7fdc4525f9c98325a913cc1c66be9a852f7ec7ea8d6dbe8e973336 EXPECT_TRUE(below.passed) | ASSERT_TRUE(below.normalized_metric.has_value()) | EXPECT_EQ(*below.normalized_metric, 5.0e-9) | EXPECT_TRUE(boundary.passed) | ASSERT_TRUE(boundary.normalized_metric.has_value()) | EXPECT_EQ(*boundary.normalized_metric, 1.0e-8) | EXPECT_FALSE(above.passed) | ASSERT_TRUE(above.normalized_metric.has_value()) | EXPECT_GT(*above.normalized_metric, 1.0e-8) EXPECT_TRUE(below.passed) | ASSERT_TRUE(below.normalized_metric.has_value()) | EXPECT_EQ(*below.normalized_metric, 5.0e-9) | EXPECT_TRUE(boundary.passed) | ASSERT_TRUE(boundary.normalized_metric.has_value()) | EXPECT_EQ(*boundary.normalized_metric, 1.0e-8) | EXPECT_FALSE(above.passed) | ASSERT_TRUE(above.normalized_metric.has_value()) | EXPECT_GT(*above.normalized_metric, 1.0e-8) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.GlobalForceAndMomentExactZeroScaleRequiresExactZeroBalance NonlinearStaticReference.GlobalForceAndMomentExactZeroScaleRequiresExactZeroBalance; assertion 6개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.GlobalForceAndMomentExactZeroScaleRequiresExactZeroBalance 유지 원문 검사 body 및 assertion 동일. 04cc9d2dc3f468c5abd9317787db0c7dea8bb935021cf0bc51375c2e8a90d1bc 04cc9d2dc3f468c5abd9317787db0c7dea8bb935021cf0bc51375c2e8a90d1bc EXPECT_TRUE(exact_zero.passed) | EXPECT_EQ(exact_zero.scale, 0.0) | EXPECT_FALSE(exact_zero.normalized_metric.has_value()) | EXPECT_FALSE(nonzero.passed) | EXPECT_EQ(nonzero.scale, 0.0) | EXPECT_FALSE(nonzero.normalized_metric.has_value()) EXPECT_TRUE(exact_zero.passed) | EXPECT_EQ(exact_zero.scale, 0.0) | EXPECT_FALSE(exact_zero.normalized_metric.has_value()) | EXPECT_FALSE(nonzero.passed) | EXPECT_EQ(nonzero.scale, 0.0) | EXPECT_FALSE(nonzero.normalized_metric.has_value()) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_cases_test.cpp support@1-113 helper/oracle/fixture/include/static assertion 구간: ReadBytes, if, MakeCase, ExpectSnapshotsEqual, FindFamily, find_if, ExpectFamily, ExpectBlockingFamiliesPassed, for, ExpectInternalFamiliesPassed tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 287a99d8f479a4d4ed54bfe04a80c303dd3ef8d3b6dd67665ce65ec0404d6d3b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_cases_test.cpp support@134-135 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 90e14ecb07fccdcf231e83a52c8f744d9319ba16ae7f04c27256c406a6429dac 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_cases_test.cpp support@202-203 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 87ef91571b7fcd7d7161bb8b385c8e0bfdc90da3dc29f8a77c0e4592e5be6f83 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_cases_test.cpp support@246-247 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 75ed650921b2a719d01db3b9a8699b87ebb403589335c0dab3766f91a93dd189 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_cases_test.cpp support@273-274 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3989248f6a5e57cdd68d8ef2bf85830b385196f16f2e293b504208192705563c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_cases_test.cpp support@295-296 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f580803fc945d7c5cc37b9dcda1e262d1c4026b9a5b6544073525786b07f48be 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_cases_test.cpp support@338-339 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a7955cbfd2f91685d3d922391e61a1c415c6daed4cf7b2eddc4407e3fe715bc0 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_cases_test.cpp support@366-367 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3e9b6724351d2c4044c018875a3878cef2b85ee06c40f3ad50c76fe5acc6c8fb 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_cases_test.cpp support@393-394 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d365ebad227c3cdf28bfb737c8976d06bc3484e90b5556e13a91605a5367aabe 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_comparison.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/nonlinear_static_reference_comparison.cpp file 이관 SpatialMoment helper는 production inverse API 제거에 따라 독립 closed-form oracle로 이관한다. 비교 family·global balance·RF/RM review-only·finite 사전 gate는 유지한다. e71f156cb5bede1369b6b2e0999d21c5e89e8af5516f74ced906811a3eca55f5 64d9fa7d7067830bedd7316e66d68c32839c7e701fa8f6a49421cbbcce3938a2 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_comparison.cpp support@1-1722 helper/oracle/fixture/include/static assertion 구간: fesa, CaseContract, ContractFor, if, ComparisonFailure, Fail, FailureStatus, Normalized, IsDescendantOf, GenericPath, Trim, find_if_not, UppercaseAscii, transform, ReadBytes, RotateRight, Sha256, for, while, Fnv1a64, DeclaredArtifact, DeclaredArtifacts, Snapshot, SplitCsv, ParsePositiveLabel, ParseFiniteDouble, CsvWideRow, ReadCsvWideRows, Hdf5Handle, Hdf5ErrorSilencer, Hdf5VlenReclaimer, Reclaim, RequireId, RequireHdf, OpenDataset, Dimensions, MakeUtf8StringType, ReadStringAttribute, ReadUint64Attribute, RequireStringAttribute, NodeReadRow, Hdf5Node, ReadNodes, AcceptedFrameReadRow, ReadFactorOneFrame, ReadNodalDataset, ReadConstraintMask, Hdf5Projection, CopiedInputPathFor, ReadGlobalBalance, ReadNonlinearHdf5, RequireExactNodeLabels, RequirePressureInstance, Key, IsSelected, ProjectCsv, ProjectHdf5, EvaluateFamily, AppendFamily, ExpectedConstrainedLabels, RequiredConstrainedLabels, VectorAt, SpatialMoment, MaskedResidual, InfinityNorm, FreeRowCount, AppendInternal, AppendFreeResidual, AppendGlobalBalance, AppendInternalEquilibrium, DerivedLogPath, DerivedResultsPath, MakeReport, CompareLinearCase, CompareNonlinearCase, ComparePressureCase, NonlinearInternalEquilibriumReport, EvaluateGlobalBalance, ArtifactCheck, catch, CopyInputToExecutionDirectory, RunFesaApplicationOnCopiedInput, CompareHdf5ToReferenceCsv, ClassifyReferenceComparison, any_of, BuildReferenceComparisonReport tests/reference/nonlinear_static_reference_comparison.cpp file-support 이관 SpatialMoment helper는 production inverse API 제거에 따라 독립 closed-form oracle로 이관한다. 비교 family·global balance·RF/RM review-only·finite 사전 gate는 유지한다. 8d82015808ca837c0f643c5999afb602674fcf02f51c7f60ac8c0347bddee582 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_comparison.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/nonlinear_static_reference_comparison.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6f3832cec9b2ab5770948480045b2e454a5d0bc8fd2b6c38f0e134fbaf2983be 6f3832cec9b2ab5770948480045b2e454a5d0bc8fd2b6c38f0e134fbaf2983be 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/nonlinear_static_reference_comparison.h support@1-143 helper/oracle/fixture/include/static assertion 구간: fesa, NonlinearReferenceArtifactDisposition, NonlinearReferenceCase, ArtifactSnapshot, NonlinearReferenceDisposition, NonlinearReferenceRowKey, NonlinearReferenceFamilyReport, NonlinearReferencePrecheckFinding, NonlinearInternalEquilibriumReport, ConstrainedReactionResultantReport, GeneratedRunArtifacts, NonlinearReferenceComparisonReport, NonlinearReferenceClassification tests/reference/nonlinear_static_reference_comparison.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e61520b0bf03ec971e428abd42887d86bd74ee157eb174f0da25be3ca00d20ae 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_comparison.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/reference_comparison.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9680d6dd2deef156b5c8d000167cd6d3f6e29fe1b1fecc5a0f9cd6ebc0fa1602 9680d6dd2deef156b5c8d000167cd6d3f6e29fe1b1fecc5a0f9cd6ebc0fa1602 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_comparison.cpp support@1-1519 helper/oracle/fixture/include/static assertion 구간: fesa, ComparisonFailure, Fail, ComparisonFailureStatus, Trim, find_if_not, CollapseWhitespace, for, if, AsciiLower, transform, SplitCsvLine, while, ParsePositiveLabel, ParseFiniteDouble, WideReferenceRow, ReferenceTable, SectionReferenceRow, SectionReferenceTable, ReadReferenceCsv, find_if, ReadSectionReferenceCsv, RequireExactArtifactInventory, increment, ReadApprovedDomain, Hdf5Handle, Hdf5ErrorSilencer, Hdf5VlenReclaimer, RequireId, RequireHdf, OpenDataset, DatasetDimensions, ReadStringAttribute, ReadUint64Attribute, RequireStringAttribute, RequireResultAttributes, ReadDoubleDataset, RequireCompoundMembers, MakeVariableStringType, NodeMemoryRow, ElementMemoryRow, HdfNode, HdfElement, ReadNodeRows, ReadElementRows, RequireFiniteStress, StressValue, ExpectedLocalAxes, HdfProjection, ReadHdfProjection, OrderedRows, OrderedSectionRows, CanonicalRow, AppendNodalRows, AppendSectionRows, BranchName, switch, EvaluateFamily, MakePhysicsEvidence, QuantityName, WriteJsonString, WriteCanonicalRow, WriteArray, WriteStrings, FiniteReport, all_of, Result, Compare, catch, WriteDeterministicJson tests/reference/reference_comparison.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4f6eadb9f7705f35da852e0f4cf63f1af16a1f951faf90b6895841a4a7b12380 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_comparison.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/reference_comparison.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1ca9383ffed095fdb372fe7d16ec3d9c6fbace46c7a103e94c27220fc99b56b0 1ca9383ffed095fdb372fe7d16ec3d9c6fbace46c7a103e94c27220fc99b56b0 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_comparison.h support@1-102 helper/oracle/fixture/include/static assertion 구간: fesa, ComparisonQuantity, CanonicalComparisonRow, RowDecision, ComponentMetrics, PhysicsEvidence, ComparisonReport, ReferenceComparison tests/reference/reference_comparison.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1f39624e67c37926b656243337baed8a87b43b96547388e0d41dd6a25db0e37e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_comparison_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/reference/reference_comparison_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2dca374a67a3c55239c2402d4cd9541444283ec49ffb685037f90dad09c0e82f e39732a6cb8747725a43f7fc6341fd4688d04cd3f9f936ec33cbc79b232886af 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.PrecheckRejectsMissingSchemaDuplicateAndNonfiniteRows ReferenceComparisonContract.PrecheckRejectsMissingSchemaDuplicateAndNonfiniteRows; assertion 7개 tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.PrecheckRejectsMissingSchemaDuplicateAndNonfiniteRows 유지 원문 검사 body 및 assertion 동일. 810238882b3a881527ffba11344288d641d606f3538f88d2f5e55adba4409905 810238882b3a881527ffba11344288d641d606f3538f88d2f5e55adba4409905 ASSERT_TRUE(std::filesystem::remove(fixture.Legacy() / kDisplacementName)) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_GT(lines.size(), 2U) ASSERT_TRUE(std::filesystem::remove(fixture.Legacy() / kDisplacementName)) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_GT(lines.size(), 2U) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.AppliesSharedFamilyScaleAndNearZeroBranchesWithoutAnAbsoluteGate ReferenceComparisonContract.AppliesSharedFamilyScaleAndNearZeroBranchesWithoutAnAbsoluteGate; assertion 28개 tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.AppliesSharedFamilyScaleAndNearZeroBranchesWithoutAnAbsoluteGate 유지 원문 검사 body 및 assertion 동일. f6ca0c5aae73df95b70d24611a1948a63e24dc842bc9da29f03f7182f05ad9fd f6ca0c5aae73df95b70d24611a1948a63e24dc842bc9da29f03f7182f05ad9fd "ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(report.passed) | EXPECT_EQ(report.rows.size(), kExpectedRowCount) | EXPECT_EQ(report.metrics.size(), kExpectedMetricCount) | ASSERT_NE(zero, nullptr) | ASSERT_NE(near_zero, nullptr) | ASSERT_NE(deliberate_failure, nullptr) | EXPECT_DOUBLE_EQ(zero->reference.value, 0.0) | EXPECT_DOUBLE_EQ(zero->fesa.value, 0.0) | EXPECT_DOUBLE_EQ(zero->tolerance, near_zero_band) | EXPECT_TRUE(zero->passed) | EXPECT_TRUE(near_zero->passed) | EXPECT_FALSE(deliberate_failure->passed) | EXPECT_EQ(near_zero->tolerance_branch, ""near-zero"") | EXPECT_FALSE(near_zero->relative_error_applicable) | ASSERT_NE(my_metric, nullptr) | EXPECT_DOUBLE_EQ(my_metric->reference_scale, 1.0e7) | EXPECT_EQ(my_metric->components, (std::vector{""T"", ""My"", ""Mz""})) | ASSERT_NE(scaled, nullptr) | ASSERT_NE(residue, nullptr) | EXPECT_DOUBLE_EQ(scaled->tolerance, 5.0e5) | EXPECT_DOUBLE_EQ(scaled->absolute_error, 4.999e5) | EXPECT_TRUE(scaled->passed) | EXPECT_DOUBLE_EQ(residue->reference.value, -1.5625e-2) | EXPECT_DOUBLE_EQ(residue->fesa.value, 0.0) | EXPECT_DOUBLE_EQ(residue->absolute_error, 1.5625e-2) | EXPECT_DOUBLE_EQ(residue->tolerance, 1.0e5) | EXPECT_TRUE(residue->passed)" "ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(report.passed) | EXPECT_EQ(report.rows.size(), kExpectedRowCount) | EXPECT_EQ(report.metrics.size(), kExpectedMetricCount) | ASSERT_NE(zero, nullptr) | ASSERT_NE(near_zero, nullptr) | ASSERT_NE(deliberate_failure, nullptr) | EXPECT_DOUBLE_EQ(zero->reference.value, 0.0) | EXPECT_DOUBLE_EQ(zero->fesa.value, 0.0) | EXPECT_DOUBLE_EQ(zero->tolerance, near_zero_band) | EXPECT_TRUE(zero->passed) | EXPECT_TRUE(near_zero->passed) | EXPECT_FALSE(deliberate_failure->passed) | EXPECT_EQ(near_zero->tolerance_branch, ""near-zero"") | EXPECT_FALSE(near_zero->relative_error_applicable) | ASSERT_NE(my_metric, nullptr) | EXPECT_DOUBLE_EQ(my_metric->reference_scale, 1.0e7) | EXPECT_EQ(my_metric->components, (std::vector{""T"", ""My"", ""Mz""})) | ASSERT_NE(scaled, nullptr) | ASSERT_NE(residue, nullptr) | EXPECT_DOUBLE_EQ(scaled->tolerance, 5.0e5) | EXPECT_DOUBLE_EQ(scaled->absolute_error, 4.999e5) | EXPECT_TRUE(scaled->passed) | EXPECT_DOUBLE_EQ(residue->reference.value, -1.5625e-2) | EXPECT_DOUBLE_EQ(residue->fesa.value, 0.0) | EXPECT_DOUBLE_EQ(residue->absolute_error, 1.5625e-2) | EXPECT_DOUBLE_EQ(residue->tolerance, 1.0e5) | EXPECT_TRUE(residue->passed)" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.ReportsEveryRowAndAggregateMetricDeterministically ReferenceComparisonContract.ReportsEveryRowAndAggregateMetricDeterministically; assertion 24개 tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.ReportsEveryRowAndAggregateMetricDeterministically 유지 원문 검사 body 및 assertion 동일. 3aeb231f836acf51af5432b7c06df1e786278ff6fceeb3a53d50a9377653df3c 3aeb231f836acf51af5432b7c06df1e786278ff6fceeb3a53d50a9377653df3c "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.metrics.size(), kExpectedMetricCount) | EXPECT_TRUE(std::all_of( report.rows.begin(), report.rows.end(), [](const fesa::test::RowDecision& row) { return row.passed; })) | ASSERT_NE(metric, nullptr) | ASSERT_NE(worst, nullptr) | EXPECT_EQ(metric->row_count, kNodeCount * 3U) | EXPECT_DOUBLE_EQ(metric->reference_scale, 1.90476272e-2) | EXPECT_DOUBLE_EQ(metric->maximum_absolute_error, 1.0e-9) | EXPECT_NEAR(metric->relative_rms, std::sqrt(1.25 / static_cast(kNodeCount * 3U)) * 1.0e-9 / metric->reference_scale, 1.0e-21) | EXPECT_EQ(metric->worst_row, static_cast(worst - report.rows.data())) | EXPECT_FALSE(report.stress_comparison_applicable) | EXPECT_NE(report.stress_comparison_reason.find(""N/A""), std::string::npos) | EXPECT_NE(report.stress_comparison_reason.find(""HDF5""), std::string::npos) | EXPECT_DOUBLE_EQ(report.physics_evidence.free_residual_norm, 0.0) | EXPECT_EQ(report.physics_evidence.applied_force, (std::array{0.0, 0.0, -1.0e6})) | EXPECT_EQ(report.physics_evidence.reaction_force, (std::array{0.0, 0.0, 1.0e6})) | EXPECT_EQ(report.physics_evidence.applied_moment_about_origin, (std::array{0.0, 1.0e7, 0.0})) | EXPECT_EQ(report.physics_evidence.reaction_moment_about_origin, (std::array{0.0, -1.0e7, 0.0})) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | ASSERT_TRUE( fesa::test::ReferenceComparison::WriteDeterministicJson(report, json_a) .IsOk()) | ASSERT_TRUE( fesa::test::ReferenceComparison::WriteDeterministicJson(report, json_b) .IsOk()) | EXPECT_EQ(first, ReadBytes(json_b)) | EXPECT_NE(first.find(required), std::string::npos)" "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.metrics.size(), kExpectedMetricCount) | EXPECT_TRUE(std::all_of( report.rows.begin(), report.rows.end(), [](const fesa::test::RowDecision& row) { return row.passed; })) | ASSERT_NE(metric, nullptr) | ASSERT_NE(worst, nullptr) | EXPECT_EQ(metric->row_count, kNodeCount * 3U) | EXPECT_DOUBLE_EQ(metric->reference_scale, 1.90476272e-2) | EXPECT_DOUBLE_EQ(metric->maximum_absolute_error, 1.0e-9) | EXPECT_NEAR(metric->relative_rms, std::sqrt(1.25 / static_cast(kNodeCount * 3U)) * 1.0e-9 / metric->reference_scale, 1.0e-21) | EXPECT_EQ(metric->worst_row, static_cast(worst - report.rows.data())) | EXPECT_FALSE(report.stress_comparison_applicable) | EXPECT_NE(report.stress_comparison_reason.find(""N/A""), std::string::npos) | EXPECT_NE(report.stress_comparison_reason.find(""HDF5""), std::string::npos) | EXPECT_DOUBLE_EQ(report.physics_evidence.free_residual_norm, 0.0) | EXPECT_EQ(report.physics_evidence.applied_force, (std::array{0.0, 0.0, -1.0e6})) | EXPECT_EQ(report.physics_evidence.reaction_force, (std::array{0.0, 0.0, 1.0e6})) | EXPECT_EQ(report.physics_evidence.applied_moment_about_origin, (std::array{0.0, 1.0e7, 0.0})) | EXPECT_EQ(report.physics_evidence.reaction_moment_about_origin, (std::array{0.0, -1.0e7, 0.0})) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | ASSERT_TRUE( fesa::test::ReferenceComparison::WriteDeterministicJson(report, json_a) .IsOk()) | ASSERT_TRUE( fesa::test::ReferenceComparison::WriteDeterministicJson(report, json_b) .IsOk()) | EXPECT_EQ(first, ReadBytes(json_b)) | EXPECT_NE(first.find(required), std::string::npos)" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.PreservesSectionEndpointIdentityWithoutStationNormalization ReferenceComparisonContract.PreservesSectionEndpointIdentityWithoutStationNormalization; assertion 10개 tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.PreservesSectionEndpointIdentityWithoutStationNormalization 유지 원문 검사 body 및 assertion 동일. 35b078826866908199d78ce70bc394087ad8ad257cc7db971e29412a67ab19d2 35b078826866908199d78ce70bc394087ad8ad257cc7db971e29412a67ab19d2 ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | ASSERT_NE(interior, nullptr) | EXPECT_DOUBLE_EQ(interior->fesa.value, 9.0e6 - 5.0) | EXPECT_DOUBLE_EQ(interior->reference.value, 9.0e6) | EXPECT_DOUBLE_EQ(interior->absolute_error, 5.0) | ASSERT_NE(adjacent, nullptr) | EXPECT_DOUBLE_EQ(adjacent->fesa.value, 9.0e6) | EXPECT_DOUBLE_EQ(adjacent->reference.value, 9.0e6) ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | ASSERT_NE(interior, nullptr) | EXPECT_DOUBLE_EQ(interior->fesa.value, 9.0e6 - 5.0) | EXPECT_DOUBLE_EQ(interior->reference.value, 9.0e6) | EXPECT_DOUBLE_EQ(interior->absolute_error, 5.0) | ASSERT_NE(adjacent, nullptr) | EXPECT_DOUBLE_EQ(adjacent->fesa.value, 9.0e6) | EXPECT_DOUBLE_EQ(adjacent->reference.value, 9.0e6) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.MapsEachSectionCsvComponentToItsDirectEndpointResultant ReferenceComparisonContract.MapsEachSectionCsvComponentToItsDirectEndpointResultant; assertion 15개 tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.MapsEachSectionCsvComponentToItsDirectEndpointResultant 유지 원문 검사 body 및 assertion 동일. cb0ba7caae79f4c0d6d33c2fe7d29658710974c27d49edc9d208987cd21dcb73 cb0ba7caae79f4c0d6d33c2fe7d29658710974c27d49edc9d208987cd21dcb73 ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_NE(n, nullptr) | ASSERT_NE(t, nullptr) | ASSERT_NE(my, nullptr) | ASSERT_NE(mz, nullptr) | EXPECT_DOUBLE_EQ(n->reference.value, 11.0) | EXPECT_DOUBLE_EQ(t->reference.value, 22.0) | EXPECT_DOUBLE_EQ(my->reference.value, 33.0) | EXPECT_DOUBLE_EQ(mz->reference.value, 44.0) | EXPECT_DOUBLE_EQ(n->fesa.value, 11.0) | EXPECT_DOUBLE_EQ(t->fesa.value, 22.0) | EXPECT_DOUBLE_EQ(my->fesa.value, 33.0) | EXPECT_DOUBLE_EQ(mz->fesa.value, 44.0) ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_NE(n, nullptr) | ASSERT_NE(t, nullptr) | ASSERT_NE(my, nullptr) | ASSERT_NE(mz, nullptr) | EXPECT_DOUBLE_EQ(n->reference.value, 11.0) | EXPECT_DOUBLE_EQ(t->reference.value, 22.0) | EXPECT_DOUBLE_EQ(my->reference.value, 33.0) | EXPECT_DOUBLE_EQ(mz->reference.value, 44.0) | EXPECT_DOUBLE_EQ(n->fesa.value, 11.0) | EXPECT_DOUBLE_EQ(t->fesa.value, 22.0) | EXPECT_DOUBLE_EQ(my->fesa.value, 33.0) | EXPECT_DOUBLE_EQ(mz->fesa.value, 44.0) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_comparison_test.cpp support@1-424 helper/oracle/fixture/include/static assertion 구간: ComparisonValues, SourceRoot, BinaryRoot, ReadBytes, if, WriteBytes, ReadLines, WriteLines, for, ReplaceFirst, ReferenceValues, MakeDefinition, WriteResultsFixture, ContractFixture, ExpectFailureCode, FindRow, find_if, FindMetric, FindSectionRow, ExpectExactRowInventory tests/reference/reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 26a9f2cdd31fc7384d94d10efdfe1ab22d82b8c620ee16874094069b4671958b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_tolerance_policy.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/reference_tolerance_policy.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b2e6065df0d673be20fb10fbf0ef58705fc04c1788b5e52d1faaf7ebda33274f b2e6065df0d673be20fb10fbf0ef58705fc04c1788b5e52d1faaf7ebda33274f 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_tolerance_policy.cpp support@1-138 helper/oracle/fixture/include/static assertion 구간: fesa, IsFiniteFamily, if, all_of, EvaluateFamilies, for, ReferenceToleranceEvaluation, Evaluate, EvaluateMitc4EigenFirstImplementation tests/reference/reference_tolerance_policy.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 27b71db22073ee923ba13a8c32bff7ea14ab488d80c2ceefb7767747b68d52f0 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_tolerance_policy.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/reference_tolerance_policy.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9918e9b43e9b777dae620fc552badccc5570bb246a6499756df83b1c207f9e24 9918e9b43e9b777dae620fc552badccc5570bb246a6499756df83b1c207f9e24 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_tolerance_policy.h support@1-80 helper/oracle/fixture/include/static assertion 구간: fesa, ReferenceToleranceBranch, ReferenceToleranceRow, ReferenceToleranceFamily, ReferenceToleranceRowDecision, ReferenceToleranceFamilyDecision, ReferenceToleranceEvaluation, ReferenceTolerancePolicy tests/reference/reference_tolerance_policy.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. de2c46296fb2b5947a46c739ae21ad66802622b97ee4845543d3cd2a50ba03ac 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_tolerance_policy_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/reference/reference_tolerance_policy_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. be4a8896f4847dec26c07578c91d97f23f132c8a97c2507e5614011f70aa600f be4a8896f4847dec26c07578c91d97f23f132c8a97c2507e5614011f70aa600f 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.AppliesRelativeAndNearZeroThresholdsAtTheirInclusiveBoundaries ReferenceTolerancePolicy.AppliesRelativeAndNearZeroThresholdsAtTheirInclusiveBoundaries; assertion 19개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.AppliesRelativeAndNearZeroThresholdsAtTheirInclusiveBoundaries 유지 원문 검사 body 및 assertion 동일. 0796acda78954b1bf9b52659b043f23a0435245c7198961ebd96d84b241c9265 0796acda78954b1bf9b52659b043f23a0435245c7198961ebd96d84b241c9265 ASSERT_TRUE(evaluation.valid) | ASSERT_EQ(evaluation.families.size(), 1U) | EXPECT_EQ(family.row_count, 4U) | EXPECT_DOUBLE_EQ(family.reference_scale, 100.0) | EXPECT_DOUBLE_EQ(family.near_zero_band, 1.0) | EXPECT_EQ(family.near_zero_count, 2U) | EXPECT_FALSE(family.passed) | ASSERT_EQ(family.rows.size(), 4U) | EXPECT_EQ(family.rows[0U].branch, ReferenceToleranceBranch::kRelative) | EXPECT_TRUE(family.rows[0U].relative_error_applicable) | EXPECT_DOUBLE_EQ(family.rows[0U].relative_error, 0.05) | EXPECT_DOUBLE_EQ(family.rows[0U].threshold, 5.0) | EXPECT_TRUE(family.rows[0U].passed) | EXPECT_FALSE(family.rows[1U].passed) | EXPECT_EQ(family.rows[2U].branch, ReferenceToleranceBranch::kNearZero) | EXPECT_FALSE(family.rows[2U].relative_error_applicable) | EXPECT_DOUBLE_EQ(family.rows[2U].threshold, 1.0) | EXPECT_TRUE(family.rows[2U].passed) | EXPECT_FALSE(family.rows[3U].passed) ASSERT_TRUE(evaluation.valid) | ASSERT_EQ(evaluation.families.size(), 1U) | EXPECT_EQ(family.row_count, 4U) | EXPECT_DOUBLE_EQ(family.reference_scale, 100.0) | EXPECT_DOUBLE_EQ(family.near_zero_band, 1.0) | EXPECT_EQ(family.near_zero_count, 2U) | EXPECT_FALSE(family.passed) | ASSERT_EQ(family.rows.size(), 4U) | EXPECT_EQ(family.rows[0U].branch, ReferenceToleranceBranch::kRelative) | EXPECT_TRUE(family.rows[0U].relative_error_applicable) | EXPECT_DOUBLE_EQ(family.rows[0U].relative_error, 0.05) | EXPECT_DOUBLE_EQ(family.rows[0U].threshold, 5.0) | EXPECT_TRUE(family.rows[0U].passed) | EXPECT_FALSE(family.rows[1U].passed) | EXPECT_EQ(family.rows[2U].branch, ReferenceToleranceBranch::kNearZero) | EXPECT_FALSE(family.rows[2U].relative_error_applicable) | EXPECT_DOUBLE_EQ(family.rows[2U].threshold, 1.0) | EXPECT_TRUE(family.rows[2U].passed) | EXPECT_FALSE(family.rows[3U].passed) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.RejectsFamiliesWhoseScaleRelativeRmsExceedsOnePercent ReferenceTolerancePolicy.RejectsFamiliesWhoseScaleRelativeRmsExceedsOnePercent; assertion 7개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.RejectsFamiliesWhoseScaleRelativeRmsExceedsOnePercent 유지 원문 검사 body 및 assertion 동일. c92918fb5b5c06da814ac1213a2b80b8af1ffd52bd0f11339468ab1ff87eed5f c92918fb5b5c06da814ac1213a2b80b8af1ffd52bd0f11339468ab1ff87eed5f ASSERT_TRUE(evaluation.valid) | EXPECT_EQ(family.row_count, 4U) | EXPECT_TRUE(std::all_of(family.rows.begin(), family.rows.end(), [](const auto& row) { return row.passed; })) | EXPECT_NEAR(family.relative_rms, 0.011, 1.0e-15) | EXPECT_FALSE(family.rms_passed) | EXPECT_FALSE(family.passed) | EXPECT_FALSE(evaluation.passed) ASSERT_TRUE(evaluation.valid) | EXPECT_EQ(family.row_count, 4U) | EXPECT_TRUE(std::all_of(family.rows.begin(), family.rows.end(), [](const auto& row) { return row.passed; })) | EXPECT_NEAR(family.relative_rms, 0.011, 1.0e-15) | EXPECT_FALSE(family.rms_passed) | EXPECT_FALSE(family.passed) | EXPECT_FALSE(evaluation.passed) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.FailsClosedForZeroScaleNonzeroErrorWithoutNonfiniteMetrics ReferenceTolerancePolicy.FailsClosedForZeroScaleNonzeroErrorWithoutNonfiniteMetrics; assertion 14개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.FailsClosedForZeroScaleNonzeroErrorWithoutNonfiniteMetrics 유지 원문 검사 body 및 assertion 동일. 38ca8bda67fdaa127b1694bc937e3ca56f701ea313ab767da299fc747b33c7de 38ca8bda67fdaa127b1694bc937e3ca56f701ea313ab767da299fc747b33c7de "ASSERT_TRUE(evaluation.valid) | EXPECT_EQ(family.row_count, 2U) | EXPECT_DOUBLE_EQ(family.reference_scale, 0.0) | EXPECT_DOUBLE_EQ(family.near_zero_band, 0.0) | EXPECT_EQ(family.near_zero_count, 2U) | EXPECT_EQ(family.diagnostic_code, ""zero-reference-scale-nonzero-error"") | EXPECT_EQ(family.rows[0U].branch, ReferenceToleranceBranch::kZeroScaleExact) | EXPECT_TRUE(family.rows[0U].passed) | EXPECT_FALSE(family.rows[1U].passed) | EXPECT_FALSE(family.rows[1U].relative_error_applicable) | EXPECT_TRUE(std::isfinite(family.relative_rms)) | EXPECT_DOUBLE_EQ(family.relative_rms, 0.0) | EXPECT_FALSE(family.rms_passed) | EXPECT_FALSE(family.passed)" "ASSERT_TRUE(evaluation.valid) | EXPECT_EQ(family.row_count, 2U) | EXPECT_DOUBLE_EQ(family.reference_scale, 0.0) | EXPECT_DOUBLE_EQ(family.near_zero_band, 0.0) | EXPECT_EQ(family.near_zero_count, 2U) | EXPECT_EQ(family.diagnostic_code, ""zero-reference-scale-nonzero-error"") | EXPECT_EQ(family.rows[0U].branch, ReferenceToleranceBranch::kZeroScaleExact) | EXPECT_TRUE(family.rows[0U].passed) | EXPECT_FALSE(family.rows[1U].passed) | EXPECT_FALSE(family.rows[1U].relative_error_applicable) | EXPECT_TRUE(std::isfinite(family.relative_rms)) | EXPECT_DOUBLE_EQ(family.relative_rms, 0.0) | EXPECT_FALSE(family.rms_passed) | EXPECT_FALSE(family.passed)" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.KeepsWarningOnlyFamilyExceedanceOutOfBlockingVerdict ReferenceTolerancePolicy.KeepsWarningOnlyFamilyExceedanceOutOfBlockingVerdict; assertion 5개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.KeepsWarningOnlyFamilyExceedanceOutOfBlockingVerdict 유지 원문 검사 body 및 assertion 동일. ea07bf7d6def7cbd89bc911f979f710846ad558b1711613f3abcc97e14be0b8a ea07bf7d6def7cbd89bc911f979f710846ad558b1711613f3abcc97e14be0b8a ASSERT_TRUE(evaluation.valid) | ASSERT_EQ(evaluation.families.size(), 2U) | EXPECT_TRUE(evaluation.families[0U].passed) | EXPECT_FALSE(evaluation.families[1U].passed) | EXPECT_TRUE(evaluation.passed) ASSERT_TRUE(evaluation.valid) | ASSERT_EQ(evaluation.families.size(), 2U) | EXPECT_TRUE(evaluation.families[0U].passed) | EXPECT_FALSE(evaluation.families[1U].passed) | EXPECT_TRUE(evaluation.passed) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.RejectsNonfiniteInputsBeforeToleranceEvaluation ReferenceTolerancePolicy.RejectsNonfiniteInputsBeforeToleranceEvaluation; assertion 3개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.RejectsNonfiniteInputsBeforeToleranceEvaluation 유지 원문 검사 body 및 assertion 동일. 42628fe515d6debce07e8553911bb1a6b74e316265a0702267056258db827b45 42628fe515d6debce07e8553911bb1a6b74e316265a0702267056258db827b45 "EXPECT_FALSE(evaluation.valid) | EXPECT_EQ(evaluation.diagnostic_code, ""nonfinite-comparison-value"") | EXPECT_TRUE(evaluation.families.empty())" "EXPECT_FALSE(evaluation.valid) | EXPECT_EQ(evaluation.diagnostic_code, ""nonfinite-comparison-value"") | EXPECT_TRUE(evaluation.families.empty())" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationDoesNotRelaxCommonPolicy ReferenceTolerancePolicy.EigenFirstImplementationDoesNotRelaxCommonPolicy; assertion 6개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationDoesNotRelaxCommonPolicy 유지 원문 검사 body 및 assertion 동일. d4090ddd26b57509606e7f1dfdbfd22996f95d19c5d761d6368b6c07a467aca2 d4090ddd26b57509606e7f1dfdbfd22996f95d19c5d761d6368b6c07a467aca2 ASSERT_TRUE(common.valid) | ASSERT_TRUE(eigen.valid) | EXPECT_FALSE(common.passed) | EXPECT_TRUE(eigen.passed) | EXPECT_DOUBLE_EQ(eigen.families[0].relative_rms, 0.05) | EXPECT_DOUBLE_EQ(common.families[0].relative_rms, eigen.families[0].relative_rms) ASSERT_TRUE(common.valid) | ASSERT_TRUE(eigen.valid) | EXPECT_FALSE(common.passed) | EXPECT_TRUE(eigen.passed) | EXPECT_DOUBLE_EQ(eigen.families[0].relative_rms, 0.05) | EXPECT_DOUBLE_EQ(common.families[0].relative_rms, eigen.families[0].relative_rms) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationPreservesZeroAndFiniteChecks ReferenceTolerancePolicy.EigenFirstImplementationPreservesZeroAndFiniteChecks; assertion 5개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationPreservesZeroAndFiniteChecks 유지 원문 검사 body 및 assertion 동일. 463cda2ec4b8c4b83cc64d2b655af56b24f310add1ee6bc486c3f319e6ad076a 463cda2ec4b8c4b83cc64d2b655af56b24f310add1ee6bc486c3f319e6ad076a "EXPECT_FALSE(result.valid) | EXPECT_FALSE(result.passed) | ASSERT_TRUE(result.valid) | EXPECT_EQ(result.passed, row.fesa_value == 0.0) | EXPECT_EQ(result.families[0].diagnostic_code, ""zero-reference-scale-nonzero-error"")" "EXPECT_FALSE(result.valid) | EXPECT_FALSE(result.passed) | ASSERT_TRUE(result.valid) | EXPECT_EQ(result.passed, row.fesa_value == 0.0) | EXPECT_EQ(result.families[0].diagnostic_code, ""zero-reference-scale-nonzero-error"")" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationRejectsNonmodalFamilies ReferenceTolerancePolicy.EigenFirstImplementationRejectsNonmodalFamilies; assertion 3개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationRejectsNonmodalFamilies 유지 원문 검사 body 및 assertion 동일. cacd7f2e9c5bdc6c907786187817305395ce12155fa51e4e10ce01d364df2741 cacd7f2e9c5bdc6c907786187817305395ce12155fa51e4e10ce01d364df2741 "EXPECT_FALSE(result.valid) | EXPECT_FALSE(result.passed) | EXPECT_EQ(result.diagnostic_code, ""invalid-eigen-tolerance-family"")" "EXPECT_FALSE(result.valid) | EXPECT_FALSE(result.passed) | EXPECT_EQ(result.diagnostic_code, ""invalid-eigen-tolerance-family"")" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_tolerance_policy_test.cpp support@1-26 helper/oracle/fixture/include/static assertion 구간: MakeFamily tests/reference/reference_tolerance_policy_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9c2d3b770c78989b0bbe4bf618d87e318a4ddd8322aa0debfffe7cc932d3f028 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/reference_tolerance_policy_test.cpp support@172-173 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/reference_tolerance_policy_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 804f89fc0ec98c9824183e795d3edd19e930f7bc471f9012aa3d503be2f8974b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/shell_surface_pressure_reference_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/reference/shell_surface_pressure_reference_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 45a004e6e7ab3dba315796d54e1347b54fca3e1cad3b637a2dda6884ab846d7d 45a004e6e7ab3dba315796d54e1347b54fca3e1cad3b637a2dda6884ab846d7d 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/shell_surface_pressure_reference_test.cpp ShellSurfacePressureReference.ClassifiesTranslationBlockingAndRotationWarningOnly ShellSurfacePressureReference.ClassifiesTranslationBlockingAndRotationWarningOnly; assertion 1개 tests/reference/shell_surface_pressure_reference_test.cpp ShellSurfacePressureReference.ClassifiesTranslationBlockingAndRotationWarningOnly 유지 원문 검사 body 및 assertion 동일. ed6f0cea1655c6b579fecd966c3c2b1b62812f1e69475b98610c093cd4229455 ed6f0cea1655c6b579fecd966c3c2b1b62812f1e69475b98610c093cd4229455 EXPECT_EQ( fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kWarningOnlyDifferences) EXPECT_EQ( fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kWarningOnlyDifferences) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/shell_surface_pressure_reference_test.cpp support@1-12 helper/oracle/fixture/include/static assertion 구간: MakeTolerance tests/reference/shell_surface_pressure_reference_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8d9d1942187a363e8bc49004c4b7df1b110071843d5cdf55dccc741ee6066ea7 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/shell_surface_pressure_reference_test.cpp support@31-32 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/shell_surface_pressure_reference_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/thermal_reference_cases_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/reference/thermal_reference_cases_test.cpp file 이관 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 기존 diagnostic/nonblocking 판정은 유지한다. f796b0d84b1289f58caa791fe2c380e1b28b4322030ed505476f39c788f0db86 8b340c31cb028e1cf8e676f35869cb74d923c7e3f05d5ed8d3cc428722b4aed3 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/thermal_reference_cases_test.cpp ThermalReference.OriginalAbaqusNt11RemainsAnExplicitFailingDiagnostic ThermalReference.OriginalAbaqusNt11RemainsAnExplicitFailingDiagnostic; assertion 16개 tests/reference/thermal_reference_cases_test.cpp ThermalReference.OriginalAbaqusNt11RemainsAnExplicitFailingDiagnostic 이관 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 기존 diagnostic/nonblocking 판정은 유지한다. 552d85894324a70ebef68ce1b260bc7310dc32cc8f2e91bd12749b9883ab0f1c 86884d662acf255866202f5682b4e95db4785ee4a0da1ae2e83fc410f36a4290 ASSERT_FALSE(before_input.empty()) | ASSERT_FALSE(before_csv.empty()) | EXPECT_EQ(Bytes(input), before_input) | EXPECT_EQ(Bytes(csv), before_csv) | ASSERT_EQ(exit, 0) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(r.rows.size(), 729U) | ASSERT_TRUE(rows.good()) | EXPECT_EQ(r.family.reference_scale, 1000) | EXPECT_EQ(r.family.near_zero_band, 10) | EXPECT_FALSE(r.family.blocking) | EXPECT_FALSE(r.passed) | EXPECT_FALSE(r.family.rms_passed) | EXPECT_EQ(failed, 87U) | EXPECT_GT(r.family.relative_rms, fesa::test::ReferenceTolerancePolicy::kRelativeRmsTolerance) | EXPECT_GT(r.family.maximum_absolute_error, r.family.near_zero_band) ASSERT_FALSE(before_input.empty()) | ASSERT_FALSE(before_csv.empty()) | EXPECT_EQ(Bytes(input), before_input) | EXPECT_EQ(Bytes(csv), before_csv) | ASSERT_EQ(exit, 0) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(r.rows.size(), 729U) | ASSERT_TRUE(rows.good()) | EXPECT_EQ(r.family.reference_scale, 1000) | EXPECT_EQ(r.family.near_zero_band, 10) | EXPECT_FALSE(r.family.blocking) | EXPECT_FALSE(r.passed) | EXPECT_FALSE(r.family.rms_passed) | EXPECT_EQ(failed, 87U) | EXPECT_GT(r.family.relative_rms, fesa::test::ReferenceTolerancePolicy::kRelativeRmsTolerance) | EXPECT_GT(r.family.maximum_absolute_error, r.family.near_zero_band) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/reference/thermal_reference_cases_test.cpp support@1-15 helper/oracle/fixture/include/static assertion 구간: Bytes tests/reference/thermal_reference_cases_test.cpp file-support 유지 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 기존 diagnostic/nonblocking 판정은 유지한다. d748735499aeda58e97d6652289f5ba2fb3a8b1143f03a04e6159b38f93dbf0b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/thermal_reference_cases_test.cpp support@68-68 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/thermal_reference_cases_test.cpp file-support 유지 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 기존 diagnostic/nonblocking 판정은 유지한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/thermal_reference_comparison.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/thermal_reference_comparison.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0cb4c1b8595a16219808d6fe661571b59f7b7f2e100749d83baf2506dc0a61a0 0cb4c1b8595a16219808d6fe661571b59f7b7f2e100749d83baf2506dc0a61a0 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/thermal_reference_comparison.cpp support@1-417 helper/oracle/fixture/include/static assertion 구간: fesa, Failure, Require, H, Id, Shape, Attr, if, T, Scalar, Primitive, Field, Label, Trim, Result, CompareThermalSnapshots, for, catch, ReadThermalReferenceCsv, while, ReadThermalReferenceHdf5, NodeRow, Frame, CompareThermalReferenceFiles tests/reference/thermal_reference_comparison.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 56b6cc4aad9b0122c1a0d266048c889280113757493d372501e163005bab9e1f 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/thermal_reference_comparison.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/thermal_reference_comparison.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c0e30c7bdd6ef3fad7e0d69159888a15e35a096adbd77c8481913063d703a9e0 c0e30c7bdd6ef3fad7e0d69159888a15e35a096adbd77c8481913063d703a9e0 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/thermal_reference_comparison.h support@1-57 helper/oracle/fixture/include/static assertion 구간: fesa, ThermalReferenceRow, ThermalReferenceSnapshot, ThermalReferenceRowDecision, ThermalReferenceReport tests/reference/thermal_reference_comparison.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c1ecc31681e11d2a2b9a7f64773dc821acd8b3678d77c6063044b481a7f2409d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/thermal_reference_comparison_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/reference/thermal_reference_comparison_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d98e4228c027b4cedd45cc97c75fbd56694f91ecff32c875e32da384faa9a19e d98e4228c027b4cedd45cc97c75fbd56694f91ecff32c875e32da384faa9a19e 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.HdfSchemaMappingRejectsMalformedStationFrameAndNodeData ThermalReferenceComparison.HdfSchemaMappingRejectsMalformedStationFrameAndNodeData; assertion 4개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.HdfSchemaMappingRejectsMalformedStationFrameAndNodeData 유지 원문 검사 body 및 assertion 동일. b5991ec2a055de6dd67134f1cbf7445a7cfe8618f7089e1fe9968a22b3df1aaa b5991ec2a055de6dd67134f1cbf7445a7cfe8618f7089e1fe9968a22b3df1aaa ASSERT_TRUE(read.HasValue()) | EXPECT_EQ(result.HasValue(), defect == 0) | EXPECT_TRUE(result.Value().passed) | EXPECT_FALSE(read.HasValue()) ASSERT_TRUE(read.HasValue()) | EXPECT_EQ(result.HasValue(), defect == 0) | EXPECT_TRUE(result.Value().passed) | EXPECT_FALSE(read.HasValue()) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.MapsSourceLabelsWithoutRowOrderAndPreservesSignedValues ThermalReferenceComparison.MapsSourceLabelsWithoutRowOrderAndPreservesSignedValues; assertion 9개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.MapsSourceLabelsWithoutRowOrderAndPreservesSignedValues 유지 원문 검사 body 및 assertion 동일. 9fbe3d06c90283b2e1b9473474b689354f9dbd1bd2eca8c120e10127bfc472b9 9fbe3d06c90283b2e1b9473474b689354f9dbd1bd2eca8c120e10127bfc472b9 ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().passed) | ASSERT_EQ(result.Value().rows.size(), 3U) | EXPECT_EQ(result.Value().rows[1].label, 7U) | EXPECT_EQ(result.Value().rows[1].reference, -15.5742216) | EXPECT_EQ(result.Value().rows[1].tolerance.branch, fesa::test::ReferenceToleranceBranch::kRelative) | EXPECT_EQ(result.Value().family.reference_scale, 1000) | EXPECT_EQ(result.Value().family.near_zero_band, 10) | EXPECT_FALSE(result.Value().family.blocking) ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().passed) | ASSERT_EQ(result.Value().rows.size(), 3U) | EXPECT_EQ(result.Value().rows[1].label, 7U) | EXPECT_EQ(result.Value().rows[1].reference, -15.5742216) | EXPECT_EQ(result.Value().rows[1].tolerance.branch, fesa::test::ReferenceToleranceBranch::kRelative) | EXPECT_EQ(result.Value().family.reference_scale, 1000) | EXPECT_EQ(result.Value().family.near_zero_band, 10) | EXPECT_FALSE(result.Value().family.blocking) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.RejectsMissingExtraDuplicateAndNonfiniteBeforeTolerance ThermalReferenceComparison.RejectsMissingExtraDuplicateAndNonfiniteBeforeTolerance; assertion 1개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.RejectsMissingExtraDuplicateAndNonfiniteBeforeTolerance 유지 원문 검사 body 및 assertion 동일. bb8b648993b9f4ae838901f9566db7ca32f22e6bdbd6018213d68e1ff48dfc46 bb8b648993b9f4ae838901f9566db7ca32f22e6bdbd6018213d68e1ff48dfc46 "EXPECT_FALSE(fesa::test::CompareThermalSnapshots(actual, reference, {3, 7, 20}, ""Part-1-1"") .HasValue())" "EXPECT_FALSE(fesa::test::CompareThermalSnapshots(actual, reference, {3, 7, 20}, ""Part-1-1"") .HasValue())" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.RejectsWrongStepTimeIncrementInstanceAndStation ThermalReferenceComparison.RejectsWrongStepTimeIncrementInstanceAndStation; assertion 1개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.RejectsWrongStepTimeIncrementInstanceAndStation 유지 원문 검사 body 및 assertion 동일. e9b3d7890b38b8ac9d7124ef7b38cea8037bd5f2977145231c47928af3112462 e9b3d7890b38b8ac9d7124ef7b38cea8037bd5f2977145231c47928af3112462 "EXPECT_FALSE(fesa::test::CompareThermalSnapshots(actual, reference, {3, 7, 20}, ""Part-1-1"") .HasValue())" "EXPECT_FALSE(fesa::test::CompareThermalSnapshots(actual, reference, {3, 7, 20}, ""Part-1-1"") .HasValue())" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.UsesUnmodifiedFivePercentOnePercentAndExactZeroPolicy ThermalReferenceComparison.UsesUnmodifiedFivePercentOnePercentAndExactZeroPolicy; assertion 5개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.UsesUnmodifiedFivePercentOnePercentAndExactZeroPolicy 유지 원문 검사 body 및 assertion 동일. 6fa4b28f03af7accaa46980c8de1e428a784bed83de862984ec5c1fed45ea9db 6fa4b28f03af7accaa46980c8de1e428a784bed83de862984ec5c1fed45ea9db ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(result.Value().passed) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(result.Value().passed) | EXPECT_EQ(result.Value().family.reference_scale, 0) ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(result.Value().passed) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(result.Value().passed) | EXPECT_EQ(result.Value().family.reference_scale, 0) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.CsvRequiresExactHeaderFrameFiniteValuesAndSoleInstance ThermalReferenceComparison.CsvRequiresExactHeaderFrameFiniteValuesAndSoleInstance; assertion 2개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.CsvRequiresExactHeaderFrameFiniteValuesAndSoleInstance 유지 원문 검사 body 및 assertion 동일. 6a725850decb91c07895b0f8e6513e95e866004b4885a6f9cd0959b79b3d05f8 6a725850decb91c07895b0f8e6513e95e866004b4885a6f9cd0959b79b3d05f8 "EXPECT_EQ(result.HasValue(), text == header + valid) | EXPECT_FALSE(fesa::test::ReadThermalReferenceCsv(path, """").HasValue())" "EXPECT_EQ(result.HasValue(), text == header + valid) | EXPECT_FALSE(fesa::test::ReadThermalReferenceCsv(path, """").HasValue())" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/thermal_reference_comparison_test.cpp support@1-170 helper/oracle/fixture/include/static assertion 구간: TemporaryFolder, Handle, StringAttribute, T, ScalarAttribute, Dataset, comparator, Node, Frame tests/reference/thermal_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8fe742ff0a0ff661b374df3df48724fad479ad1702325197a6ff058cd08f3942 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/thermal_reference_comparison_test.cpp support@196-204 helper/oracle/fixture/include/static assertion 구간: Snapshot tests/reference/thermal_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 32bf1858c73c1cbf1f65ee1adc11e7230a993eb21b972a8b16916a5fe4eb2d21 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/reference/thermal_reference_comparison_test.cpp support@330-330 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/thermal_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Dev tests/test_cpp_policy_contract.py file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/test_cpp_policy_contract.py file 이관 Dev 정책과 Doxygen 선택성 검사를 유지한다. native 공통 property sheet와 다섯 consumer도 standard exception unwinding을 요구하도록 확장한다. 7f97a7758e483ca293caa39713202bd0c29097ce9983776c7b67c759a53513fc 48e7c3be9bfc735e239a5b023867fdd336e271fe44bcecb30cdebedc356a41c9 해당 없음 해당 없음 유지-정책계약 R-POLICY test-cleanup-review.md#r-policy +Dev tests/test_cpp_policy_contract.py read fixture/oracle/helper read tests/test_cpp_policy_contract.py read 유지 원문 검사 body 및 assertion 동일. 6850e04b82047b75e3cb9aaad4ff0ca00023108c96bdaeae20465eb8a0b1de51 6850e04b82047b75e3cb9aaad4ff0ca00023108c96bdaeae20465eb8a0b1de51 해당 없음 해당 없음 유지-정책계약 R-POLICY test-cleanup-review.md#r-policy +Dev tests/test_cpp_policy_contract.py doxygen_assignments fixture/oracle/helper doxygen_assignments tests/test_cpp_policy_contract.py doxygen_assignments 유지 원문 검사 body 및 assertion 동일. 109a90d7e1c2575992749ca28402bb0a2ebf9f35d2928a019c1de315108baa70 109a90d7e1c2575992749ca28402bb0a2ebf9f35d2928a019c1de315108baa70 해당 없음 해당 없음 유지-정책계약 R-POLICY test-cleanup-review.md#r-policy +Dev tests/test_cpp_policy_contract.py test_p_style_001_cpp_style_and_doxygen_tooling_contract test_p_style_001_cpp_style_and_doxygen_tooling_contract; assertion 0개 tests/test_cpp_policy_contract.py test_p_style_001_cpp_style_and_doxygen_tooling_contract 유지 원문 검사 body 및 assertion 동일. d9c1cca6221f3430bdf4d46bc51bbe14c3afe01a88948d1464ee406791e97524 d9c1cca6221f3430bdf4d46bc51bbe14c3afe01a88948d1464ee406791e97524 "assert not missing_paths, f""missing C++ policy files: {missing_paths}"" | assert setting in clang_format | assert setting in clang_tidy | assert doxyfile[""INPUT""].split() == [""include"", ""src""] | assert doxyfile[""EXCLUDE""].split() == [""tests""] | assert doxyfile[""WARN_AS_ERROR""] == ""YES"" | assert doxyfile[""OUTPUT_DIRECTORY""] == ""build/doxygen"" | assert doxyfile[""HTML_OUTPUT""] == ""html"" | assert ""build/"" in gitignore_lines | assert ""find_package(Doxygen QUIET)"" in cmake | assert doxygen_block is not None | assert ""add_custom_target(fesa_docs"" in doxygen_block.group(""body"") | assert ""Doxyfile"" in doxygen_block.group(""body"") | assert re.search(r""add_custom_target\(fesa_docs\s+ALL\b"", cmake) is None" "assert not missing_paths, f""missing C++ policy files: {missing_paths}"" | assert setting in clang_format | assert setting in clang_tidy | assert doxyfile[""INPUT""].split() == [""include"", ""src""] | assert doxyfile[""EXCLUDE""].split() == [""tests""] | assert doxyfile[""WARN_AS_ERROR""] == ""YES"" | assert doxyfile[""OUTPUT_DIRECTORY""] == ""build/doxygen"" | assert doxyfile[""HTML_OUTPUT""] == ""html"" | assert ""build/"" in gitignore_lines | assert ""find_package(Doxygen QUIET)"" in cmake | assert doxygen_block is not None | assert ""add_custom_target(fesa_docs"" in doxygen_block.group(""body"") | assert ""Doxyfile"" in doxygen_block.group(""body"") | assert re.search(r""add_custom_target\(fesa_docs\s+ALL\b"", cmake) is None" 유지-정책계약 R-POLICY test-cleanup-review.md#r-policy +Dev tests/test_cpp_policy_contract.py test_p_style_002_msvc_targets_enable_standard_exception_unwinding test_p_style_002_msvc_targets_enable_standard_exception_unwinding; assertion 0개 tests/test_cpp_policy_contract.py test_p_style_002_msvc_targets_enable_standard_exception_unwinding 이관 Dev 정책과 Doxygen 선택성 검사를 유지한다. native 공통 property sheet와 다섯 consumer도 standard exception unwinding을 요구하도록 확장한다. e01149ce11e343bcbf48355921b911803d9ea98bdd18c12d781e47dd7f56d853 f4b84302b1f5e2b2720c51c01f8a577b7f2716a19fb641b2d2c12d26cf5aa33e "assert compile_options is not None, f""missing compile options for {target}"" | assert ""/EHsc"" in compile_options.group(""body""), (" "assert compile_options is not None, f""missing compile options for {target}"" | assert ""/EHsc"" in compile_options.group(""body""), ( | assert props.findtext("".//m:ExceptionHandling"", namespaces=ns) == ""Sync"" | assert ""Fesa.Common.props"" in imports, target | assert all(item.text == ""Sync"" for item in overrides), target" 유지-정책계약 R-POLICY test-cleanup-review.md#r-policy +Dev tests/test_cpp_policy_contract.py support@1-7 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/test_cpp_policy_contract.py file-support 유지 Dev 정책과 Doxygen 선택성 검사를 유지한다. native 공통 property sheet와 다섯 consumer도 standard exception unwinding을 요구하도록 확장한다. cf93027038b44959a49c21bfaa3400d9cf59d302de2fff8fd023629ba7bb65f8 최종 파일 SHA 참조 해당 없음 해당 없음 유지-정책계약 R-POLICY test-cleanup-review.md#r-policy +Dev tests/unit/analysis/analysis_model_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/analysis/analysis_model_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 008c38d245f54595a9a057575e264b408f235df5e9ff4fad3ef342ab6ff4301a 008c38d245f54595a9a057575e264b408f235df5e9ff4fad3ef342ab6ff4301a 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/analysis_model_test.cpp AnalysisModel.ClassifiesActiveEntitiesInStableOrder AnalysisModel.ClassifiesActiveEntitiesInStableOrder; assertion 9개 tests/unit/analysis/analysis_model_test.cpp AnalysisModel.ClassifiesActiveEntitiesInStableOrder 유지 원문 검사 body 및 assertion 동일. a295d00387546de59b989c3ac1abc3835489a6a9cc331a2b564b4ab6f5b76497 a295d00387546de59b989c3ac1abc3835489a6a9cc331a2b564b4ab6f5b76497 ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(model.ActiveElements(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(model.ActiveMaterials(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveSections(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveBoundaryConditions(), (std::vector{0U, 1U, 2U, 3U, 4U, 5U})) | EXPECT_EQ(model.ActiveLoads(), (std::vector{0U, 1U, 2U})) | ASSERT_EQ(model.Step().Loads().size(), 3U) | EXPECT_EQ(&model.Step().Loads()[0U].get(), &domain_result.Value().Steps()[0U].Loads()[0U].get()) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(model.ActiveElements(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(model.ActiveMaterials(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveSections(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveBoundaryConditions(), (std::vector{0U, 1U, 2U, 3U, 4U, 5U})) | EXPECT_EQ(model.ActiveLoads(), (std::vector{0U, 1U, 2U})) | ASSERT_EQ(model.Step().Loads().size(), 3U) | EXPECT_EQ(&model.Step().Loads()[0U].get(), &domain_result.Value().Steps()[0U].Loads()[0U].get()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/analysis_model_test.cpp AnalysisModel.ReferencesWithoutCopyingOrMutatingDomain AnalysisModel.ReferencesWithoutCopyingOrMutatingDomain; assertion 12개 tests/unit/analysis/analysis_model_test.cpp AnalysisModel.ReferencesWithoutCopyingOrMutatingDomain 유지 원문 검사 body 및 assertion 동일. f48acbdd2020c7f7dcf6795c0bcb2efd01e531fca508a98469183cadaa6af312 f48acbdd2020c7f7dcf6795c0bcb2efd01e531fca508a98469183cadaa6af312 ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(&model.GetDomain(), &domain) | EXPECT_EQ(&model.Step(), &domain.Steps()[0]) | EXPECT_EQ(&model.GetDomain().Elements()[0U], element_address) | EXPECT_EQ(&model.GetDomain().Materials()[0U], material_address) | EXPECT_EQ(&model.GetDomain().Sections()[0U], section_address) | EXPECT_EQ(&model.GetDomain().Elements()[model.ActiveElements()[1]], &domain.Elements()[1]) | EXPECT_EQ(&model.GetDomain().Materials()[model.ActiveMaterials()[2]], &domain.Materials()[2]) | EXPECT_EQ(&model.GetDomain().Sections()[model.ActiveSections()[1]], &domain.Sections()[1]) | EXPECT_EQ(domain.Steps()[0].Name(), step_name) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[0U], first_load_magnitude) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(&model.GetDomain(), &domain) | EXPECT_EQ(&model.Step(), &domain.Steps()[0]) | EXPECT_EQ(&model.GetDomain().Elements()[0U], element_address) | EXPECT_EQ(&model.GetDomain().Materials()[0U], material_address) | EXPECT_EQ(&model.GetDomain().Sections()[0U], section_address) | EXPECT_EQ(&model.GetDomain().Elements()[model.ActiveElements()[1]], &domain.Elements()[1]) | EXPECT_EQ(&model.GetDomain().Materials()[model.ActiveMaterials()[2]], &domain.Materials()[2]) | EXPECT_EQ(&model.GetDomain().Sections()[model.ActiveSections()[1]], &domain.Sections()[1]) | EXPECT_EQ(domain.Steps()[0].Name(), step_name) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[0U], first_load_magnitude) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/analysis_model_test.cpp AnalysisModel.KeepsNonOwningMixedDefinitionAndPropertyIndices AnalysisModel.KeepsNonOwningMixedDefinitionAndPropertyIndices; assertion 9개 tests/unit/analysis/analysis_model_test.cpp AnalysisModel.KeepsNonOwningMixedDefinitionAndPropertyIndices 유지 원문 검사 body 및 assertion 동일. 36df6ff3f545836b79af2c8987b7bc0042b748e43cc1a2a8a83f2679904abb16 36df6ff3f545836b79af2c8987b7bc0042b748e43cc1a2a8a83f2679904abb16 ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(&model.GetDomain(), &domain) | EXPECT_EQ(model.ActiveElements(), (std::vector{0U, 1U, 2U, 3U, 4U})) | EXPECT_EQ(model.ActiveMaterials(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveProperties(), (std::vector{0U, 1U, 2U, 4U})) | EXPECT_EQ(&model.GetDomain().Elements()[model.ActiveElements()[4U]], &domain.Elements()[4U]) | EXPECT_EQ(&model.GetDomain().Materials()[model.ActiveMaterials()[1U]], &domain.Materials()[1U]) | EXPECT_EQ(&model.GetDomain().Properties()[model.ActiveProperties()[3U]], &domain.Properties()[4U]) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(&model.GetDomain(), &domain) | EXPECT_EQ(model.ActiveElements(), (std::vector{0U, 1U, 2U, 3U, 4U})) | EXPECT_EQ(model.ActiveMaterials(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveProperties(), (std::vector{0U, 1U, 2U, 4U})) | EXPECT_EQ(&model.GetDomain().Elements()[model.ActiveElements()[4U]], &domain.Elements()[4U]) | EXPECT_EQ(&model.GetDomain().Materials()[model.ActiveMaterials()[1U]], &domain.Materials()[1U]) | EXPECT_EQ(&model.GetDomain().Properties()[model.ActiveProperties()[3U]], &domain.Properties()[4U]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/analysis_model_test.cpp AnalysisModel.RejectsMissingOrMultipleStep AnalysisModel.RejectsMissingOrMultipleStep; assertion 15개 tests/unit/analysis/analysis_model_test.cpp AnalysisModel.RejectsMissingOrMultipleStep 유지 원문 검사 body 및 assertion 동일. 0815824dc498c89c2c43b00880b4458ce2b620a55e337c0a65de481074bb5318 0815824dc498c89c2c43b00880b4458ce2b620a55e337c0a65de481074bb5318 "ASSERT_TRUE(missing_domain.HasValue()) | ASSERT_FALSE(missing.HasValue()) | EXPECT_EQ(missing.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(missing.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].code, ""invalid-model-cardinality"") | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].keyword, ""STEP"") | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].entity_identity, ""0"") | ASSERT_TRUE(multiple_domain.HasValue()) | ASSERT_FALSE(multiple.HasValue()) | EXPECT_EQ(multiple.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(multiple.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].code, ""unsupported-multiple-step"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].keyword, ""STEP"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].entity_identity, ""Step-2"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].location.line, 60U)" "ASSERT_TRUE(missing_domain.HasValue()) | ASSERT_FALSE(missing.HasValue()) | EXPECT_EQ(missing.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(missing.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].code, ""invalid-model-cardinality"") | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].keyword, ""STEP"") | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].entity_identity, ""0"") | ASSERT_TRUE(multiple_domain.HasValue()) | ASSERT_FALSE(multiple.HasValue()) | EXPECT_EQ(multiple.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(multiple.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].code, ""unsupported-multiple-step"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].keyword, ""STEP"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].entity_identity, ""Step-2"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].location.line, 60U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/analysis_model_test.cpp support@1-94 helper/oracle/fixture/include/static assertion 구간: MakeDefinition, MakeMixedDefinition tests/unit/analysis/analysis_model_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 06aad822bf2ade2c6877393bd23043babd0680f2b0dd2fb85a7f4cda1d5a6287 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/analysis_model_test.cpp support@148-149 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/analysis_model_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c4948f64c25c201003b0122f19efe90f365b9e8c9e4aeb1f21a6cffa974d706a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/analysis_state_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/analysis/analysis_state_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fc1756cf35f167a555753a2b8ae5c3be3dec48e851ffb2d1a02003088024dbb1 cc752a188e4daa7862e6602271a728de64f67de407ab7e573e9f87380d2b5bbb 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/analysis_state_test.cpp AnalysisState.AllocatesOnlyV0FullVectors AnalysisState.AllocatesOnlyV0FullVectors; assertion 14개 tests/unit/analysis/analysis_state_test.cpp AnalysisState.AllocatesOnlyV0FullVectors 유지 원문 검사 body 및 assertion 동일. 42f5f3563e7bf05df3559cd1173b200e4625be35cbe6ebf91140bb4275cc7961 42f5f3563e7bf05df3559cd1173b200e4625be35cbe6ebf91140bb4275cc7961 ASSERT_EQ(dofs.FullDofCount(), 12U) | ASSERT_EQ(dofs.ConstrainedDofCount(), 6U) | EXPECT_EQ(vector->Size(), dofs.FullDofCount()) | EXPECT_NE(vectors[left]->Data(), vectors[right]->Data()) | EXPECT_DOUBLE_EQ(state.Displacement()[0], 4.0) | EXPECT_DOUBLE_EQ(state.Reaction()[11], -9.0) | EXPECT_DOUBLE_EQ(state.ExternalForce()[0], 0.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[0], 0.0) | EXPECT_DOUBLE_EQ(state.Residual()[0], 0.0) | EXPECT_FALSE(HasVelocity::value) | EXPECT_FALSE(HasAcceleration::value) | EXPECT_FALSE(HasTemperature::value) | EXPECT_FALSE(HasIterationHistory::value) | EXPECT_FALSE(HasNonlinearState::value) ASSERT_EQ(dofs.FullDofCount(), 12U) | ASSERT_EQ(dofs.ConstrainedDofCount(), 6U) | EXPECT_EQ(vector->Size(), dofs.FullDofCount()) | EXPECT_NE(vectors[left]->Data(), vectors[right]->Data()) | EXPECT_DOUBLE_EQ(state.Displacement()[0], 4.0) | EXPECT_DOUBLE_EQ(state.Reaction()[11], -9.0) | EXPECT_DOUBLE_EQ(state.ExternalForce()[0], 0.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[0], 0.0) | EXPECT_DOUBLE_EQ(state.Residual()[0], 0.0) | EXPECT_FALSE(HasVelocity::value) | EXPECT_FALSE(HasAcceleration::value) | EXPECT_FALSE(HasTemperature::value) | EXPECT_FALSE(HasIterationHistory::value) | EXPECT_FALSE(HasNonlinearState::value) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/analysis_state_test.cpp AnalysisState.CopiesOrMovesWithoutAliasing AnalysisState.CopiesOrMovesWithoutAliasing; assertion 17개 tests/unit/analysis/analysis_state_test.cpp AnalysisState.CopiesOrMovesWithoutAliasing 유지 원문 검사 body 및 assertion 동일. 20bcbe30286b42f64657a68599fd57793c882e3a0a1e6eab8a654ad6909dc75b 20bcbe30286b42f64657a68599fd57793c882e3a0a1e6eab8a654ad6909dc75b "EXPECT_NE(copied.Displacement().Data(), original.Displacement().Data()) | EXPECT_NE(copied.Reaction().Data(), original.Reaction().Data()) | EXPECT_NE(copied.EndpointResults().data(), original.EndpointResults().data()) | EXPECT_NE(copied.GaussResults().data(), original.GaussResults().data()) | EXPECT_NE(copied.StressResults().data(), original.StressResults().data()) | EXPECT_DOUBLE_EQ(original.Displacement()[0], 3.0) | EXPECT_DOUBLE_EQ(original.EndpointResults()[0].end_action[0], 1.0) | EXPECT_EQ(moved.Identity().step_name, ""Step-1"") | EXPECT_DOUBLE_EQ(moved.Displacement()[0], 30.0) | EXPECT_DOUBLE_EQ(moved.EndpointResults()[0].end_action[0], 20.0) | EXPECT_NE(moved.Displacement().Data(), original.Displacement().Data()) | EXPECT_NE(moved.EndpointResults().data(), original.EndpointResults().data()) | EXPECT_DOUBLE_EQ(original.Reaction()[11], -2.0) | EXPECT_EQ(copy_assigned.Identity().step_name, ""Step-1"") | EXPECT_EQ(move_assigned.Identity().step_name, ""Step-1"") | EXPECT_DOUBLE_EQ(move_assigned.Reaction()[11], -20.0) | EXPECT_NE(move_assigned.Reaction().Data(), original.Reaction().Data())" "EXPECT_NE(copied.Displacement().Data(), original.Displacement().Data()) | EXPECT_NE(copied.Reaction().Data(), original.Reaction().Data()) | EXPECT_NE(copied.EndpointResults().data(), original.EndpointResults().data()) | EXPECT_NE(copied.GaussResults().data(), original.GaussResults().data()) | EXPECT_NE(copied.StressResults().data(), original.StressResults().data()) | EXPECT_DOUBLE_EQ(original.Displacement()[0], 3.0) | EXPECT_DOUBLE_EQ(original.EndpointResults()[0].end_action[0], 1.0) | EXPECT_EQ(moved.Identity().step_name, ""Step-1"") | EXPECT_DOUBLE_EQ(moved.Displacement()[0], 30.0) | EXPECT_DOUBLE_EQ(moved.EndpointResults()[0].end_action[0], 20.0) | EXPECT_NE(moved.Displacement().Data(), original.Displacement().Data()) | EXPECT_NE(moved.EndpointResults().data(), original.EndpointResults().data()) | EXPECT_DOUBLE_EQ(original.Reaction()[11], -2.0) | EXPECT_EQ(copy_assigned.Identity().step_name, ""Step-1"") | EXPECT_EQ(move_assigned.Identity().step_name, ""Step-1"") | EXPECT_DOUBLE_EQ(move_assigned.Reaction()[11], -20.0) | EXPECT_NE(move_assigned.Reaction().Data(), original.Reaction().Data())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/analysis_state_test.cpp support@1-83 helper/oracle/fixture/include/static assertion 구간: T, HasVelocity, HasAcceleration, HasTemperature, HasIterationHistory, HasNonlinearState, MakeDofs, ExpectAllZero tests/unit/analysis/analysis_state_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d26e13e59ba23688906ac1371820260a0ced12f4b89c06c777da7435bda0ebbd 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/analysis_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/analysis/analysis_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5ee75fcbd1bc5a9a634d16239720a814a8fee06b04acb0893a617d557fe8cda7 7fa4c3708ec692f95b5c230c7d7c36f1ef665363228d1d26eea41fe5560eedfd 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/analysis_test.cpp Analysis.PropagatesStatusAndDestroysThroughMinimalAnalysis Analysis.PropagatesStatusAndDestroysThroughMinimalAnalysis; assertion 7개 tests/unit/analysis/analysis_test.cpp Analysis.PropagatesStatusAndDestroysThroughMinimalAnalysis 유지 원문 검사 body 및 assertion 동일. 946fa72dea150d4bb8404a904b626c9d3037ae9eb3b765a68e288560e7b21975 946fa72dea150d4bb8404a904b626c9d3037ae9eb3b765a68e288560e7b21975 "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""analysis-test-failure"") | EXPECT_EQ(concrete_observer->Request().input_path, request.input_path) | EXPECT_EQ(concrete_observer->Request().output_path, request.output_path) | EXPECT_TRUE(destroyed)" "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""analysis-test-failure"") | EXPECT_EQ(concrete_observer->Request().input_path, request.input_path) | EXPECT_EQ(concrete_observer->Request().output_path, request.output_path) | EXPECT_TRUE(destroyed)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/analysis_test.cpp support@1-40 helper/oracle/fixture/include/static assertion 구간: StatusAnalysis tests/unit/analysis/analysis_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5bebc48a355bf5e3306b1308047561d64e68a810108a4e8848f96ea0e1b97cd2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/dynamic_analysis_state_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/analysis/dynamic_analysis_state_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cef74dec5c670c9ebe42f481a7a2ed4dfe3b3eecd14e28451e9433cb86c29a07 25e30b540c37be5c7699132ddf7c5da319a4a1bf3fb8988b054c8e9941ca594f 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsUnknownOrChangingIntegrationFormulation DynamicAnalysisState.RejectsUnknownOrChangingIntegrationFormulation; assertion 6개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsUnknownOrChangingIntegrationFormulation 유지 원문 검사 body 및 assertion 동일. b299952d9c0f3e19395a6d489944cf36625188d909376ec71022cdfc3c04478e b299952d9c0f3e19395a6d489944cf36625188d909376ec71022cdfc3c04478e EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_TRUE(fixture.state.AcceptedFrames().empty()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(next).IsOk()) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), 1U) | EXPECT_TRUE(fixture.state.CommitAcceptedFrame(next).IsOk()) EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_TRUE(fixture.state.AcceptedFrames().empty()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(next).IsOk()) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), 1U) | EXPECT_TRUE(fixture.state.CommitAcceptedFrame(next).IsOk()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.DefaultStateRejectsTrialAndCommit DynamicAnalysisState.DefaultStateRejectsTrialAndCommit; assertion 7개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.DefaultStateRejectsTrialAndCommit 유지 원문 검사 body 및 assertion 동일. b4737286e2144fd021d33353dc82bdd2e178140858c8f7abd06756e0ce44a186 b4737286e2144fd021d33353dc82bdd2e178140858c8f7abd06756e0ce44a186 "EXPECT_FALSE(state.IsInitialized()) | EXPECT_TRUE(state.AcceptedFrames().empty()) | EXPECT_FALSE(state.BeginTrialFromCommitted().HasValue()) | EXPECT_THROW((void)state.CommittedState(), std::logic_error) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-invalid-state"")" "EXPECT_FALSE(state.IsInitialized()) | EXPECT_TRUE(state.AcceptedFrames().empty()) | EXPECT_FALSE(state.BeginTrialFromCommitted().HasValue()) | EXPECT_THROW((void)state.CommittedState(), std::logic_error) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-invalid-state"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.CommitsCompleteZeroCorrectionHistoryAndCopiesTrials DynamicAnalysisState.CommitsCompleteZeroCorrectionHistoryAndCopiesTrials; assertion 11개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.CommitsCompleteZeroCorrectionHistoryAndCopiesTrials 유지 원문 검사 body 및 assertion 동일. 6724599255887b6bf6c6e95acb67cf1a050081f3bbb2af3617e3abd7d2c2f4be 6724599255887b6bf6c6e95acb67cf1a050081f3bbb2af3617e3abd7d2c2f4be EXPECT_TRUE(fixture.state.IsInitialized()) | EXPECT_FALSE(fixture.state.BeginTrialFromCommitted().HasValue()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().reaction[2U], -4.0) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), index + 1U) | ASSERT_TRUE(trial.HasValue()) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().generalized_coordinates[0U], 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState() .shell_results[0U] .stress[0U] .components[0U], 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().time, 0.5) | EXPECT_FALSE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 3U)).IsOk()) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), 3U) EXPECT_TRUE(fixture.state.IsInitialized()) | EXPECT_FALSE(fixture.state.BeginTrialFromCommitted().HasValue()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().reaction[2U], -4.0) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), index + 1U) | ASSERT_TRUE(trial.HasValue()) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().generalized_coordinates[0U], 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState() .shell_results[0U] .stress[0U] .components[0U], 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().time, 0.5) | EXPECT_FALSE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 3U)).IsOk()) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), 3U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsMalformedInventoryScheduleAndPreservesEndpoint DynamicAnalysisState.RejectsMalformedInventoryScheduleAndPreservesEndpoint; assertion 8개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsMalformedInventoryScheduleAndPreservesEndpoint 유지 원문 검사 body 및 assertion 동일. ebf23f327fb58c09d0aa92da9d41f6059c31e1ff89f221511925e93e12b65922 ebf23f327fb58c09d0aa92da9d41f6059c31e1ff89f221511925e93e12b65922 "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-invalid-state"") | ASSERT_EQ(fixture.state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().time, 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().reaction[2U], -4.0) | EXPECT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 1U)).IsOk())" "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-invalid-state"") | ASSERT_EQ(fixture.state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().time, 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().reaction[2U], -4.0) | EXPECT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 1U)).IsOk())" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsInvalidInitialStateAndFreeReaction DynamicAnalysisState.RejectsInvalidInitialStateAndFreeReaction; assertion 6개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsInvalidInitialStateAndFreeReaction 유지 원문 검사 body 및 assertion 동일. 7651255fed1f126aeef752981e055c05207296c59c2ea57c8ece5b759bf5050e 7651255fed1f126aeef752981e055c05207296c59c2ea57c8ece5b759bf5050e EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_TRUE(fixture.state.AcceptedFrames().empty()) | EXPECT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_TRUE(fixture.state.AcceptedFrames().empty()) | EXPECT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.CreateRejectsInvalidScheduleAndNonzeroBoundary DynamicAnalysisState.CreateRejectsInvalidScheduleAndNonzeroBoundary; assertion 4개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.CreateRejectsInvalidScheduleAndNonzeroBoundary 유지 원문 검사 body 및 assertion 동일. bbfb29c502216154504e82bbab6dc0df768128bc6ce0543958c4637ea1f32ef6 bbfb29c502216154504e82bbab6dc0df768128bc6ce0543958c4637ea1f32ef6 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_FALSE( fesa::DynamicAnalysisState::Create(domain.Value(), dofs.Value()) .HasValue()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_FALSE( fesa::DynamicAnalysisState::Create(domain.Value(), dofs.Value()) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/dynamic_analysis_state_test.cpp support@1-142 helper/oracle/fixture/include/static assertion 구간: MakeDefinition, if, Fixture, MakeFixture, MakeFrame tests/unit/analysis/dynamic_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7a11e3f45e7410305d59981204ce69f453199fac55bfeaf62d2a5c8e6c409fa2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/dynamic_analysis_state_test.cpp support@321-322 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/dynamic_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/eigen_mass_assembly_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/analysis/eigen_mass_assembly_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8489602024286b7c66c26750ecbf627d361b893fa9083c7d2dd97d34bbe3c25e 8489602024286b7c66c26750ecbf627d361b893fa9083c7d2dd97d34bbe3c25e 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/eigen_mass_assembly_test.cpp EigenMassAssembly.ScattersHeterogeneousSharedNodeMassInSourceOrder EigenMassAssembly.ScattersHeterogeneousSharedNodeMassInSourceOrder; assertion 9개 tests/unit/analysis/eigen_mass_assembly_test.cpp EigenMassAssembly.ScattersHeterogeneousSharedNodeMassInSourceOrder 유지 원문 검사 body 및 assertion 동일. 6d9e4d731b921c8e3a160847675ebe72b28977b65f3abdee8fc959a4a183b62f 6d9e4d731b921c8e3a160847675ebe72b28977b65f3abdee8fc959a4a183b62f ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(expected.HasValue()) | EXPECT_LE(std::abs(expected.Value().mass - analytic_shared_rotary_mass) / analytic_shared_rotary_mass, 1e-12) | ASSERT_TRUE(state.HasValue()) | ASSERT_EQ(state.Value().free_dof_count, 1U) | ASSERT_EQ(state.Value().modes.size(), 1U) | EXPECT_LE(std::abs(state.Value().modes[0U].eigenvalue - expected_eigenvalue) / (std::abs(state.Value().modes[0U].eigenvalue) + std::abs(expected_eigenvalue)), 1e-12) | EXPECT_LE(std::abs(amplitude * amplitude * analytic_shared_rotary_mass - 1.0), 1e-12) | EXPECT_NEAR(eigenvalues[0U], eigenvalues[1U], 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(expected.HasValue()) | EXPECT_LE(std::abs(expected.Value().mass - analytic_shared_rotary_mass) / analytic_shared_rotary_mass, 1e-12) | ASSERT_TRUE(state.HasValue()) | ASSERT_EQ(state.Value().free_dof_count, 1U) | ASSERT_EQ(state.Value().modes.size(), 1U) | EXPECT_LE(std::abs(state.Value().modes[0U].eigenvalue - expected_eigenvalue) / (std::abs(state.Value().modes[0U].eigenvalue) + std::abs(expected_eigenvalue)), 1e-12) | EXPECT_LE(std::abs(amplitude * amplitude * analytic_shared_rotary_mass - 1.0), 1e-12) | EXPECT_NEAR(eigenvalues[0U], eigenvalues[1U], 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/eigen_mass_assembly_test.cpp support@1-148 helper/oracle/fixture/include/static assertion 구간: StatusText, SharedNodeDomain, SharedDofPencil, DirectSharedDofPencil tests/unit/analysis/eigen_mass_assembly_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 53cc183efe17e5050e7ea520df0757fe7dfdc9eba5668b6a1a2bcb51ae107667 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/eigen_mass_assembly_test.cpp support@179-180 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/eigen_mass_assembly_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/eigen_reduction_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/analysis/eigen_reduction_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8b9ae7711b40d67884aa28e863e458d968ae4d5c717e00034405aced6bddc9bb deeb284988187961964b2a213d19e3b2655f399294debdc175e43be75dada796 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.KeepsPositivePartialGlobalRotationAndOriginalPencil EigenReduction.KeepsPositivePartialGlobalRotationAndOriginalPencil; assertion 6개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.KeepsPositivePartialGlobalRotationAndOriginalPencil 유지 원문 검사 body 및 assertion 동일. 399fa920a441080dca52e78288f339ef61c0a5a2ffd35eac3374a02d2732c42a 399fa920a441080dca52e78288f339ef61c0a5a2ffd35eac3374a02d2732c42a ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 0U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 1U) | EXPECT_NEAR(result.Value().whitened_operator.Values()[0], 10369.0 / 450.0, 1e-12) | EXPECT_DOUBLE_EQ(y[i], 0.0) | EXPECT_NEAR(y[5U] * y[5U] * (3.0 / 50.0), 1.0, 1e-12) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 0U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 1U) | EXPECT_NEAR(result.Value().whitened_operator.Values()[0], 10369.0 / 450.0, 1e-12) | EXPECT_DOUBLE_EQ(y[i], 0.0) | EXPECT_NEAR(y[5U] * y[5U] * (3.0 / 50.0), 1.0, 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.RemovesOnlyActualFreeDirectorNull EigenReduction.RemovesOnlyActualFreeDirectorNull; assertion 7개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.RemovesOnlyActualFreeDirectorNull 유지 원문 검사 body 및 assertion 동일. 471fdf9ca8aeae5af42703e726987365971308fc83bc8104410a6a1840e1082a 471fdf9ca8aeae5af42703e726987365971308fc83bc8104410a6a1840e1082a ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().free_count, 6U) | EXPECT_EQ(result.Value().null_count, 1U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 5U) | EXPECT_NEAR(action[i], 7.0, 1e-12) | EXPECT_LE(result.Value().eta_kz, 1e-12) | EXPECT_FALSE(fesa::eigen_internal::BuildEigenReduction( Sparse(stiffness), {mass}, {frame}, std::vector(6U, 0U), {0.25}, 2.0) .HasValue()) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().free_count, 6U) | EXPECT_EQ(result.Value().null_count, 1U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 5U) | EXPECT_NEAR(action[i], 7.0, 1e-12) | EXPECT_LE(result.Value().eta_kz, 1e-12) | EXPECT_FALSE(fesa::eigen_internal::BuildEigenReduction( Sparse(stiffness), {mass}, {frame}, std::vector(6U, 0U), {0.25}, 2.0) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.RejectsNonfiniteUsedBasisAndPreservesPriorCandidate EigenReduction.RejectsNonfiniteUsedBasisAndPreservesPriorCandidate; assertion 7개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.RejectsNonfiniteUsedBasisAndPreservesPriorCandidate 유지 원문 검사 body 및 assertion 동일. 17b15f6df7d9d73d6c12f13f053f2e1efa72c49bfff52c6f4dcbbfbcdc2c45c7 17b15f6df7d9d73d6c12f13f053f2e1efa72c49bfff52c6f4dcbbfbcdc2c45c7 "ASSERT_TRUE(prior.HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Category(), fesa::FailureCategory::kSolver) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].code, ""invalid-eigen-mass-space"") | EXPECT_EQ(prior.Value().whitened_operator.Values(), prior_values) | ASSERT_TRUE(rerun.HasValue()) | EXPECT_EQ(rerun.Value().whitened_operator.Values(), prior_values)" "ASSERT_TRUE(prior.HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Category(), fesa::FailureCategory::kSolver) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].code, ""invalid-eigen-mass-space"") | EXPECT_EQ(prior.Value().whitened_operator.Values(), prior_values) | ASSERT_TRUE(rerun.HasValue()) | EXPECT_EQ(rerun.Value().whitened_operator.Values(), prior_values)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.RejectsPositiveButUnresolvableMassWithoutDeletingDofs EigenReduction.RejectsPositiveButUnresolvableMassWithoutDeletingDofs; assertion 2개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.RejectsPositiveButUnresolvableMassWithoutDeletingDofs 유지 원문 검사 body 및 assertion 동일. f6d11adf25938f2049286ead08de4b4714864ca4b1322e18bf3633bcf7854c31 f6d11adf25938f2049286ead08de4b4714864ca4b1322e18bf3633bcf7854c31 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""eigen-mass-conditioning"")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""eigen-mass-conditioning"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.WhitensOffDiagonalMassAndRestoresOriginalPencil EigenReduction.WhitensOffDiagonalMassAndRestoresOriginalPencil; assertion 7개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.WhitensOffDiagonalMassAndRestoresOriginalPencil 유지 원문 검사 body 및 assertion 동일. b5a7c3d712f378cd6568ccd879c6c7390686b963b0528af91c9a20bf8353e277 b5a7c3d712f378cd6568ccd879c6c7390686b963b0528af91c9a20bf8353e277 ASSERT_TRUE(reduction.HasValue()) | ASSERT_TRUE(eigen.HasValue()) | ASSERT_EQ(eigen.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(eigen.Value().eigenvalues[0], 2.0, 1e-12) | EXPECT_NEAR(eigen.Value().eigenvalues[1], 10.0 / 3.0, 1e-12) | EXPECT_NEAR(q.Dot(mq), 1.0, 1e-12) | EXPECT_LE(residual.Norm(), 1e-12) ASSERT_TRUE(reduction.HasValue()) | ASSERT_TRUE(eigen.HasValue()) | ASSERT_EQ(eigen.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(eigen.Value().eigenvalues[0], 2.0, 1e-12) | EXPECT_NEAR(eigen.Value().eigenvalues[1], 10.0 / 3.0, 1e-12) | EXPECT_NEAR(q.Dot(mq), 1.0, 1e-12) | EXPECT_LE(residual.Norm(), 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.PreservesSmallResolvablePositivePartialRotationMass EigenReduction.PreservesSmallResolvablePositivePartialRotationMass; assertion 4개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.PreservesSmallResolvablePositivePartialRotationMass 유지 원문 검사 body 및 assertion 동일. aff919e78c5664fb5231773c44978a9d7cbf02ee6f62c4a2a94d2abb33948434 aff919e78c5664fb5231773c44978a9d7cbf02ee6f62c4a2a94d2abb33948434 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 0U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 5U) | EXPECT_GE(result.Value().nodes[0].record.rcond_inf, 0x1p-32) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 0U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 5U) | EXPECT_GE(result.Value().nodes[0].record.rcond_inf, 0x1p-32) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.HandlesTwoFreeRotationsAndRejectsEmptyFiniteSpace EigenReduction.HandlesTwoFreeRotationsAndRejectsEmptyFiniteSpace; assertion 7개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.HandlesTwoFreeRotationsAndRejectsEmptyFiniteSpace 유지 원문 검사 body 및 assertion 동일. 9291ee1eebaa0910609397a4c53ac7f706ee44b9c19994ed2c1976a7c0e8befe 9291ee1eebaa0910609397a4c53ac7f706ee44b9c19994ed2c1976a7c0e8befe "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 1U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 1U) | EXPECT_FALSE(fesa::eigen_internal::BuildEigenReduction( Sparse(stiffness), {mass}, {frame}, mask, {0.25}, 1.0) .HasValue()) | ASSERT_FALSE(empty.HasValue()) | EXPECT_EQ(empty.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_EQ(empty.GetStatus().Diagnostics()[0].code, ""empty-eigenproblem"")" "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 1U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 1U) | EXPECT_FALSE(fesa::eigen_internal::BuildEigenReduction( Sparse(stiffness), {mass}, {frame}, mask, {0.25}, 1.0) .HasValue()) | ASSERT_FALSE(empty.HasValue()) | EXPECT_EQ(empty.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_EQ(empty.GetStatus().Diagnostics()[0].code, ""empty-eigenproblem"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/eigen_reduction_test.cpp support@1-51 helper/oracle/fixture/include/static assertion 구간: Sparse, NodalMass, TiltedFrame tests/unit/analysis/eigen_reduction_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f10d759cbbc50f34e2d035e0f584c041ad24aa29fd15de0651681519ec5258b5 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 20개 tests/unit/analysis/hht_dynamic_algebra_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. dc1a43a08e360283baf9701bf5a2839a21d561397d4ad732c921b31a10cf570e e926831b44741880a7a729c57266c668eeeccc9130be07eacdb97c5330338ad2 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidPredictorPreservesRatesFixedDofsAndOldState HhtNewtonStart.ValidPredictorPreservesRatesFixedDofsAndOldState; assertion 16개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidPredictorPreservesRatesFixedDofsAndOldState 유지 원문 검사 body 및 assertion 동일. 83ff51b06a72feea0d70aa1de3e1d8fa07f7128d4c4194861b5bb148ba8813f9 83ff51b06a72feea0d70aa1de3e1d8fa07f7128d4c4194861b5bb148ba8813f9 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_GT(frame.generalized_coordinates[2U], 0.0) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], predictor.coordinates[i]) | EXPECT_DOUBLE_EQ(frame.velocity[i], predictor.velocity[i]) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], parameters.alpha * old.acceleration[i] / (1.0 + parameters.alpha)) | EXPECT_DOUBLE_EQ(old.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.velocity[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(old.velocity[2U], 0.2) | EXPECT_DOUBLE_EQ(old.acceleration[2U], 0.3) | EXPECT_EQ(old.iteration_count, 7U) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_GT(frame.generalized_coordinates[2U], 0.0) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], predictor.coordinates[i]) | EXPECT_DOUBLE_EQ(frame.velocity[i], predictor.velocity[i]) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], parameters.alpha * old.acceleration[i] / (1.0 + parameters.alpha)) | EXPECT_DOUBLE_EQ(old.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.velocity[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(old.velocity[2U], 0.2) | EXPECT_DOUBLE_EQ(old.acceleration[2U], 0.3) | EXPECT_EQ(old.iteration_count, 7U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.InvalidPredictorGeometryUsesUnchangedAcceptedCoordinates HhtNewtonStart.InvalidPredictorGeometryUsesUnchangedAcceptedCoordinates; assertion 6개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.InvalidPredictorGeometryUsesUnchangedAcceptedCoordinates 유지 원문 검사 body 및 assertion 동일. 7f1ecc04486786cb084db0832cdaf162e71ddcf7e8ad02c3193dbb36d5d195f3 7f1ecc04486786cb084db0832cdaf162e71ddcf7e8ad02c3193dbb36d5d195f3 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(old.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(start.Value().frame.algorithmic_acceleration[i], auxiliary) | EXPECT_DOUBLE_EQ(start.Value().frame.acceleration[i], auxiliary / (1.0 + parameters.alpha)) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(old.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(start.Value().frame.algorithmic_acceleration[i], auxiliary) | EXPECT_DOUBLE_EQ(start.Value().frame.acceleration[i], auxiliary / (1.0 + parameters.alpha)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidChartRateOverflowIsNotReplacedByAcceptedGeometry HhtNewtonStart.ValidChartRateOverflowIsNotReplacedByAcceptedGeometry; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidChartRateOverflowIsNotReplacedByAcceptedGeometry 유지 원문 검사 body 및 assertion 동일. 52556a58a35b9a39362efc3fd2fff266da52dea44cfdea0e89c4c1c288705fee 52556a58a35b9a39362efc3fd2fff266da52dea44cfdea0e89c4c1c288705fee "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-dynamic-rotation"")" "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-dynamic-rotation"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.LaterOutsideChartNodeDoesNotHideEarlierRateOverflow HhtNewtonStart.LaterOutsideChartNodeDoesNotHideEarlierRateOverflow; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.LaterOutsideChartNodeDoesNotHideEarlierRateOverflow 유지 원문 검사 body 및 assertion 동일. 30d8bdf6512795f74fb1e1322a2a7266e83e2545f10f4cc95ecde8c83530594e 30d8bdf6512795f74fb1e1322a2a7266e83e2545f10f4cc95ecde8c83530594e "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-dynamic-rotation"")" "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-dynamic-rotation"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.UsesTheExistingPrincipalChartMarginForInitialSelection HhtNewtonStart.UsesTheExistingPrincipalChartMarginForInitialSelection; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.UsesTheExistingPrincipalChartMarginForInitialSelection 유지 원문 검사 body 및 assertion 동일. aad0befacc29ae3638004bedd9fcd0c4a0be3dcd89ec1c4a5f2b4ff45d505b57 aad0befacc29ae3638004bedd9fcd0c4a0be3dcd89ec1c4a5f2b4ff45d505b57 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], inside ? predictor.coordinates[5U] : 0.0) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], inside ? predictor.coordinates[5U] : 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.CommonEnergyScalingSelectsTheSmallerFreeResidual HhtNewtonStart.CommonEnergyScalingSelectsTheSmallerFreeResidual; assertion 5개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.CommonEnergyScalingSelectsTheSmallerFreeResidual 유지 원문 검사 body 및 assertion 동일. c81160bc3e25344f04144572f3efb18f086dfca03dab2442ab766da8e00fbb69 c81160bc3e25344f04144572f3efb18f086dfca03dab2442ab766da8e00fbb69 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(evaluated.HasValue()) | ASSERT_GT(drill_residual, 0.0) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], 0.25) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(evaluated.HasValue()) | ASSERT_GT(drill_residual, 0.0) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], 0.25) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ConstrainedReactionDoesNotChangeNontrivialFreeResidualTie HhtNewtonStart.ConstrainedReactionDoesNotChangeNontrivialFreeResidualTie; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ConstrainedReactionDoesNotChangeNontrivialFreeResidualTie 유지 원문 검사 body 및 assertion 동일. 82af7082c22c2e465b2b74e21b3fab82eebce0a797ce924fb0e62a7a6e4b8977 82af7082c22c2e465b2b74e21b3fab82eebce0a797ce924fb0e62a7a6e4b8977 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(evaluated.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], 0.25) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(evaluated.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], 0.25) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ScaledResidualOverflowRemainsAFailure HhtNewtonStart.ScaledResidualOverflowRemainsAFailure; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ScaledResidualOverflowRemainsAFailure 유지 원문 검사 body 및 assertion 동일. db53879667603238b22caad54b437d6e9355b60a01d62fcc5895c0ea29bd2206 db53879667603238b22caad54b437d6e9355b60a01d62fcc5895c0ea29bd2206 "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.AcceptedStartArithmeticFailureIsNotIgnoredDuringComparison HhtNewtonStart.AcceptedStartArithmeticFailureIsNotIgnoredDuringComparison; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.AcceptedStartArithmeticFailureIsNotIgnoredDuringComparison 유지 원문 검사 body 및 assertion 동일. ae45e703f39d5173207289f5bac55b10d4912d7faaeb7e31b0828c6c3d84bd59 ae45e703f39d5173207289f5bac55b10d4912d7faaeb7e31b0828c6c3d84bd59 "ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(valid_predictor.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" "ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(valid_predictor.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.RejectedPredictorDoesNotHideInvalidAcceptedStartRates HhtNewtonStart.RejectedPredictorDoesNotHideInvalidAcceptedStartRates; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.RejectedPredictorDoesNotHideInvalidAcceptedStartRates 유지 원문 검사 body 및 assertion 동일. 87af7acedf54a8bacd7dc709d4cf98bab2e8dd55c6033d7decfc9edf545cd69e 87af7acedf54a8bacd7dc709d4cf98bab2e8dd55c6033d7decfc9edf545cd69e "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"") | EXPECT_DOUBLE_EQ(old.generalized_coordinates[5U], 0.0)" "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"") | EXPECT_DOUBLE_EQ(old.generalized_coordinates[5U], 0.0)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidGeometryStressOverflowRemainsARecoveryFailure HhtNewtonStart.ValidGeometryStressOverflowRemainsARecoveryFailure; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidGeometryStressOverflowRemainsARecoveryFailure 유지 원문 검사 body 및 assertion 동일. 608c3757178a373edae163916eb616d060f80ed87e569f1a747ef533fba5e841 608c3757178a373edae163916eb616d060f80ed87e569f1a747ef533fba5e841 "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-nonlinear-shell-recovery"")" "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-nonlinear-shell-recovery"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.InitializesCoupledMasslessAccelerationFromHiddenEquation HhtDynamicAlgebra.InitializesCoupledMasslessAccelerationFromHiddenEquation; assertion 10개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.InitializesCoupledMasslessAccelerationFromHiddenEquation 유지 원문 검사 body 및 assertion 동일. dca81e4f5956f5fd2a869a3a5b03c9e15df863b98e40c9cf8489678b3d516a02 dca81e4f5956f5fd2a869a3a5b03c9e15df863b98e40c9cf8489678b3d516a02 ASSERT_TRUE(acceleration.HasValue()) | EXPECT_NEAR(acceleration.Value()[0], 1.0, 1.0e-12) | EXPECT_NEAR(acceleration.Value()[5], 0.7, 1.0e-12) | EXPECT_EQ(acceleration.Value()[full], 0.0) | ASSERT_EQ(nodes, std::vector{0U}) | EXPECT_TRUE(fesa::hht_internal::CompleteConstraintEvidence( *fixture.domain, fixture.dofs, assembly, 2.0, nodes, positive, tangent, &frame) .IsOk()) | ASSERT_EQ(frame.hidden_acceleration_defect.Size(), 1U) | EXPECT_NEAR(frame.hidden_acceleration_defect[0], 0.0, 1.0e-12) | EXPECT_GT(frame.hidden_acceleration_defect_scale[0], 0.0) | EXPECT_FALSE(pseudoinverse.IsOk()) ASSERT_TRUE(acceleration.HasValue()) | EXPECT_NEAR(acceleration.Value()[0], 1.0, 1.0e-12) | EXPECT_NEAR(acceleration.Value()[5], 0.7, 1.0e-12) | EXPECT_EQ(acceleration.Value()[full], 0.0) | ASSERT_EQ(nodes, std::vector{0U}) | EXPECT_TRUE(fesa::hht_internal::CompleteConstraintEvidence( *fixture.domain, fixture.dofs, assembly, 2.0, nodes, positive, tangent, &frame) .IsOk()) | ASSERT_EQ(frame.hidden_acceleration_defect.Size(), 1U) | EXPECT_NEAR(frame.hidden_acceleration_defect[0], 0.0, 1.0e-12) | EXPECT_GT(frame.hidden_acceleration_defect_scale[0], 0.0) | EXPECT_FALSE(pseudoinverse.IsOk()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsMissingCanonicalHiddenGradient HhtDynamicAlgebra.RejectsMissingCanonicalHiddenGradient; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsMissingCanonicalHiddenGradient 유지 원문 검사 body 및 assertion 동일. 74a7c54d874d6dc0045725cdb30a80de28ba7e3bfb9624462ed9234575436bbd 74a7c54d874d6dc0045725cdb30a80de28ba7e3bfb9624462ed9234575436bbd "ASSERT_FALSE(acceleration.HasValue()) | ASSERT_FALSE(acceleration.GetStatus().Diagnostics().empty()) | EXPECT_EQ(acceleration.GetStatus().Diagnostics().front().code, ""dynamic-algebraic-gradient"")" "ASSERT_FALSE(acceleration.HasValue()) | ASSERT_FALSE(acceleration.GetStatus().Diagnostics().empty()) | EXPECT_EQ(acceleration.GetStatus().Diagnostics().front().code, ""dynamic-algebraic-gradient"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.ChecksInitialConstraintAndVelocityWithoutRepair HhtDynamicAlgebra.ChecksInitialConstraintAndVelocityWithoutRepair; assertion 2개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.ChecksInitialConstraintAndVelocityWithoutRepair 유지 원문 검사 body 및 assertion 동일. 1f8d68dac0766ed6cfd75b6e55633612751022e7d9c6e8f77d67c06a694973a4 1f8d68dac0766ed6cfd75b6e55633612751022e7d9c6e8f77d67c06a694973a4 EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, inconsistent, 2.0, positive, tangent) .HasValue()) | EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, inconsistent, 2.0, positive, tangent) .HasValue()) EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, inconsistent, 2.0, positive, tangent) .HasValue()) | EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, inconsistent, 2.0, positive, tangent) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.KeepsAcceptedHiddenRateDefectsAsDiagnostics HhtDynamicAlgebra.KeepsAcceptedHiddenRateDefectsAsDiagnostics; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.KeepsAcceptedHiddenRateDefectsAsDiagnostics 유지 원문 검사 body 및 assertion 동일. b6656cadbd8eff4fe59cb6e649da8b73f332d6371a24e089e51a502fd701812a b6656cadbd8eff4fe59cb6e649da8b73f332d6371a24e089e51a502fd701812a ASSERT_TRUE(result.IsOk()) | EXPECT_NEAR(frame.hidden_velocity_defect[0], 0.3, 1.0e-12) | EXPECT_NEAR(frame.hidden_acceleration_defect[0], -0.6, 1.0e-12) ASSERT_TRUE(result.IsOk()) | EXPECT_NEAR(frame.hidden_velocity_defect[0], 0.3, 1.0e-12) | EXPECT_NEAR(frame.hidden_acceleration_defect[0], -0.6, 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsNegativePhysicalMassAndAlgebraicRankLoss HhtDynamicAlgebra.RejectsNegativePhysicalMassAndAlgebraicRankLoss; assertion 2개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsNegativePhysicalMassAndAlgebraicRankLoss 유지 원문 검사 body 및 assertion 동일. 78d8a27b28858536af53be59122d7afd794a448f30eee56de369e82b20ecb0a8 78d8a27b28858536af53be59122d7afd794a448f30eee56de369e82b20ecb0a8 EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, negative, 2.0, positive, tangent) .HasValue()) | EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, singular, 2.0, positive, tangent) .HasValue()) EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, negative, 2.0, positive, tangent) .HasValue()) | EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, singular, 2.0, positive, tangent) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.AppliesTheExactRegularityConditionBoundary HhtDynamicAlgebra.AppliesTheExactRegularityConditionBoundary; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.AppliesTheExactRegularityConditionBoundary 유지 원문 검사 body 및 assertion 동일. 6c6023800e47f2dee4b1e70509312f6286db2bb011b24117d285dca77fb219e3 6c6023800e47f2dee4b1e70509312f6286db2bb011b24117d285dca77fb219e3 "EXPECT_EQ(result.HasValue(), exponent <= 32) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""dynamic-algebraic-conditioning"")" "EXPECT_EQ(result.HasValue(), exponent <= 32) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""dynamic-algebraic-conditioning"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.AllFixedModelHasAnEmptyValidAccelerationSolve HhtDynamicAlgebra.AllFixedModelHasAnEmptyValidAccelerationSolve; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.AllFixedModelHasAnEmptyValidAccelerationSolve 유지 원문 검사 body 및 assertion 동일. b46d03f9802058ea1af7e6fb69903168a20526878111f1e1994389b609273c36 b46d03f9802058ea1af7e6fb69903168a20526878111f1e1994389b609273c36 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().Norm(), 0.0) | EXPECT_TRUE(fesa::hht_internal::CompleteConstraintEvidence( *fixture.domain, fixture.dofs, assembly, 2.0, {}, positive, tangent, &frame) .IsOk()) | EXPECT_EQ(frame.hidden_constraint.Size(), 0U) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().Norm(), 0.0) | EXPECT_TRUE(fesa::hht_internal::CompleteConstraintEvidence( *fixture.domain, fixture.dofs, assembly, 2.0, {}, positive, tangent, &frame) .IsOk()) | EXPECT_EQ(frame.hidden_constraint.Size(), 0U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.PartialBoundaryRetainsEveryNonzeroPhysicalDirection HhtDynamicAlgebra.PartialBoundaryRetainsEveryNonzeroPhysicalDirection; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.PartialBoundaryRetainsEveryNonzeroPhysicalDirection 유지 원문 검사 body 및 assertion 동일. 7d72f765cafbf817a9f26d9f8abd9d654664b17589b1824d0bdc885f35ffd953 7d72f765cafbf817a9f26d9f8abd9d654664b17589b1824d0bdc885f35ffd953 "EXPECT_EQ(nodes.size(), p == 0.0 ? 1U : 0U) | EXPECT_EQ(result.HasValue(), expected) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""dynamic-positive-mass-conditioning"")" "EXPECT_EQ(nodes.size(), p == 0.0 ? 1U : 0U) | EXPECT_EQ(result.HasValue(), expected) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""dynamic-positive-mass-conditioning"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsAdmissibleNullRankChangeBeforeAcceptingFrame HhtDynamicAlgebra.RejectsAdmissibleNullRankChangeBeforeAcceptingFrame; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsAdmissibleNullRankChangeBeforeAcceptingFrame 유지 원문 검사 body 및 assertion 동일. 614b49ef2166dc30907a57a85d9ecada764ca8a1864a6c55562c7e645b410611 614b49ef2166dc30907a57a85d9ecada764ca8a1864a6c55562c7e645b410611 "ASSERT_EQ(initial_nodes.size(), 1U) | ASSERT_FALSE(result.IsOk()) | EXPECT_EQ(result.Diagnostics()[0].code, ""dynamic-mass-null-rank-change"") | EXPECT_EQ(frame.hidden_constraint[0], 23.0)" "ASSERT_EQ(initial_nodes.size(), 1U) | ASSERT_FALSE(result.IsOk()) | EXPECT_EQ(result.Diagnostics()[0].code, ""dynamic-mass-null-rank-change"") | EXPECT_EQ(frame.hidden_constraint[0], 23.0)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp support@1-161 helper/oracle/fixture/include/static assertion 구간: Fixture, MakeFixture, if, Sparse, Assembly, EmptyTrial tests/unit/analysis/hht_dynamic_algebra_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b54e2c2f814694abbd26a1b4accdd404cb99fbcdb05093dd7f89602ee20ba702 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_dynamic_algebra_test.cpp support@671-672 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_dynamic_algebra_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_dynamic_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/analysis/hht_dynamic_procedure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c6f5b9faf1cca0ae80f587dc0b07dde9513b35303ee69d7bbb126583df98423b 7b16fff8a3edd6482b56b0c6ac02cbac5b292aecb05c82d51ac460f691befd3a 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.ClampedStepLoadHasPhysicalReactionAndZeroMotion HhtDynamicProcedure.ClampedStepLoadHasPhysicalReactionAndZeroMotion; assertion 13개 tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.ClampedStepLoadHasPhysicalReactionAndZeroMotion 유지 원문 검사 body 및 assertion 동일. af10ef2634dd693ac1345389ffd20c559b5cab842c16135d6ee600f40b749c52 af10ef2634dd693ac1345389ffd20c559b5cab842c16135d6ee600f40b749c52 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 3U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.reaction[2U], -4.0) | EXPECT_DOUBLE_EQ(frame.external_force[2U], 4.0) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.energy_defect, 0.0) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0.0) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 3U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.reaction[2U], -4.0) | EXPECT_DOUBLE_EQ(frame.external_force[2U], 4.0) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.energy_defect, 0.0) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.UnloadedFreeChannelsRemainExactlyAtRest HhtDynamicProcedure.UnloadedFreeChannelsRemainExactlyAtRest; assertion 13개 tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.UnloadedFreeChannelsRemainExactlyAtRest 유지 원문 검사 body 및 assertion 동일. 16d814c3946a314c5b19636f0dda7cbe9d6c7702feaf70a007d2e9546e81ab56 16d814c3946a314c5b19636f0dda7cbe9d6c7702feaf70a007d2e9546e81ab56 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 3U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ((*values)[i], 0.0) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.drilling_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.energy_defect, 0.0) | EXPECT_DOUBLE_EQ(metric, 0.0) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 3U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ((*values)[i], 0.0) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.drilling_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.energy_defect, 0.0) | EXPECT_DOUBLE_EQ(metric, 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.LargeDirectStepStartsFromAcceptedGeometry HhtDynamicProcedure.LargeDirectStepStartsFromAcceptedGeometry; assertion 10개 tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.LargeDirectStepStartsFromAcceptedGeometry 유지 원문 검사 body 및 assertion 동일. 03acc1280ba57f65c34c10dcee9d444861d413107a82328c271e8affa1349c9e 03acc1280ba57f65c34c10dcee9d444861d413107a82328c271e8affa1349c9e ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GT( std::abs(result.Value().state.AcceptedFrames()[0U].acceleration[14U]), 1e5) | EXPECT_LT(result.Value().state.CommittedState().generalized_coordinates[14U], 0.0) | EXPECT_LE(metric, 1e-10) | EXPECT_GT(result.Value().state.CommittedState().iteration_count, 0U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[dof], (1.0 + alpha) * frame.acceleration[dof] - alpha * frames[frame_index - 1U].acceleration[dof]) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GT( std::abs(result.Value().state.AcceptedFrames()[0U].acceleration[14U]), 1e5) | EXPECT_LT(result.Value().state.CommittedState().generalized_coordinates[14U], 0.0) | EXPECT_LE(metric, 1e-10) | EXPECT_GT(result.Value().state.CommittedState().iteration_count, 0U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[dof], (1.0 + alpha) * frame.acceleration[dof] - alpha * frames[frame_index - 1U].acceleration[dof]) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.PreservesBackendCauseAndAddsInitialFailureContext HhtDynamicProcedure.PreservesBackendCauseAndAddsInitialFailureContext; assertion 13개 tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.PreservesBackendCauseAndAddsInitialFailureContext 유지 원문 검사 body 및 assertion 동일. b869904675bfc24f3eff1a042534df660eca2c47b484a361461060c349de2e1f b869904675bfc24f3eff1a042534df660eca2c47b484a361461060c349de2e1f "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics().front().code, ""injected-tangent-backend"") | ASSERT_NE(found, result.GetStatus().Diagnostics().end()) | EXPECT_EQ(found->location.file, std::filesystem::path{""dynamic-state.inp""}) | EXPECT_EQ(found->location.line, 13U) | EXPECT_EQ(found->entity_identity, ""Transient Load"") | EXPECT_NE(found->message.find(""stage=initial""), std::string::npos) | EXPECT_NE(found->message.find(""increment=0""), std::string::npos) | EXPECT_NE(found->message.find(""time=0""), std::string::npos)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics().front().code, ""injected-tangent-backend"") | ASSERT_NE(found, result.GetStatus().Diagnostics().end()) | EXPECT_EQ(found->location.file, std::filesystem::path{""dynamic-state.inp""}) | EXPECT_EQ(found->location.line, 13U) | EXPECT_EQ(found->entity_identity, ""Transient Load"") | EXPECT_NE(found->message.find(""stage=initial""), std::string::npos) | EXPECT_NE(found->message.find(""increment=0""), std::string::npos) | EXPECT_NE(found->message.find(""time=0""), std::string::npos)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.UniformTranslationHasNoShellStrainAndIsDeterministicAcrossPartitions HhtDynamicProcedure.UniformTranslationHasNoShellStrainAndIsDeterministicAcrossPartitions; assertion 15개 tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.UniformTranslationHasNoShellStrainAndIsDeterministicAcrossPartitions 유지 원문 검사 body 및 assertion 동일. b0478c8b2a601459afa174f5b801ee5cfd08d11a8a971e979ef7ba8cde76dc28 b0478c8b2a601459afa174f5b801ee5cfd08d11a8a971e979ef7ba8cde76dc28 ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(partitioned.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(finite_rotation.HasValue()) | ASSERT_TRUE(rotated_finite_rotation.HasValue()) | ASSERT_EQ(frames.size(), 3U) | EXPECT_LE(std::abs(frame.physical_strain_energy) / kReferenceEnergy, 1e-10) | EXPECT_LE(std::abs(frame.drilling_energy) / kReferenceEnergy, 1e-10) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node] - frame.generalized_coordinates[0U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + 1U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + 2U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + rotation]), 1e-12) | EXPECT_GT(frames.back().generalized_coordinates[0U], 0.0) | EXPECT_GT(maximum_rotation, 0.0) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(partitioned.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(finite_rotation.HasValue()) | ASSERT_TRUE(rotated_finite_rotation.HasValue()) | ASSERT_EQ(frames.size(), 3U) | EXPECT_LE(std::abs(frame.physical_strain_energy) / kReferenceEnergy, 1e-10) | EXPECT_LE(std::abs(frame.drilling_energy) / kReferenceEnergy, 1e-10) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node] - frame.generalized_coordinates[0U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + 1U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + 2U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + rotation]), 1e-12) | EXPECT_GT(frames.back().generalized_coordinates[0U], 0.0) | EXPECT_GT(maximum_rotation, 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_dynamic_procedure_test.cpp support@1-330 helper/oracle/fixture/include/static assertion 구간: InjectedTangentFailure, FailingTangent, FailureText, for, MakeRigidTranslationDefinition, RotateGlobal, MakeRotatedRigidTranslationDefinition, MakeFiniteRotationDefinition, MakeRotatedFiniteRotationDefinition, RigidTranslationRun, ExpectSameSourceIds, RunRigidTranslation, ExpectSameDynamicHistory, ExpectRotatedDofVector, ExpectCovariantDynamicHistory, MakeDefinition, if tests/unit/analysis/hht_dynamic_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 678fa0e4df0f56e62f9a30783ffbf7e564661fc06a0fbc9bbf69bd6e25c8123c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_dynamic_procedure_test.cpp support@570-571 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_dynamic_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_energy_verification_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/analysis/hht_energy_verification_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9d0c672737a65b301b38b949aef26d0099451719a7fd98ffa7c5d1171e97a885 9d0c672737a65b301b38b949aef26d0099451719a7fd98ffa7c5d1171e97a885 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07AlphaZeroConservesLinearOscillatorEnergy HhtEnergyVerification.C07AlphaZeroConservesLinearOscillatorEnergy; assertion 2개 tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07AlphaZeroConservesLinearOscillatorEnergy 유지 원문 검사 body 및 assertion 동일. c212f946ce9196b35236724d344066dbfcb8d3df5910b001c265f1f5e8ef53b3 c212f946ce9196b35236724d344066dbfcb8d3df5910b001c265f1f5e8ef53b3 ASSERT_TRUE(parameters.HasValue()) | EXPECT_LE(maximum, 1.0e-10) ASSERT_TRUE(parameters.HasValue()) | EXPECT_LE(maximum, 1.0e-10) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07DefaultAlphaReportsEnergyAndPhaseChanges HhtEnergyVerification.C07DefaultAlphaReportsEnergyAndPhaseChanges; assertion 3개 tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07DefaultAlphaReportsEnergyAndPhaseChanges 유지 원문 검사 body 및 assertion 동일. 683b5ca010185dc76cd3ecf37078c479637fd0a00c07ed5a1a80a5a116c14933 683b5ca010185dc76cd3ecf37078c479637fd0a00c07ed5a1a80a5a116c14933 ASSERT_TRUE(parameters.HasValue()) | EXPECT_TRUE(std::isfinite(energy)) | EXPECT_LT(energy, 2.0) ASSERT_TRUE(parameters.HasValue()) | EXPECT_TRUE(std::isfinite(energy)) | EXPECT_LT(energy, 2.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07IndependentAmplificationHasThePrescribedSpectrum HhtEnergyVerification.C07IndependentAmplificationHasThePrescribedSpectrum; assertion 4개 tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07IndependentAmplificationHasThePrescribedSpectrum 유지 원문 검사 body 및 assertion 동일. a96cd1993dfff2d5f5c40fdaf6139af7e5f6aa82dfc5cc784de896f1df437bca a96cd1993dfff2d5f5c40fdaf6139af7e5f6aa82dfc5cc784de896f1df437bca EXPECT_NEAR(std::abs(roots[1]), 1.0, 1.0e-10) | EXPECT_NEAR(std::abs(roots[2]), 1.0, 1.0e-10) | EXPECT_LE(radius, 1.0 + 1.0e-10) | EXPECT_LT(error, previous_limit_error) EXPECT_NEAR(std::abs(roots[1]), 1.0, 1.0e-10) | EXPECT_NEAR(std::abs(roots[2]), 1.0, 1.0e-10) | EXPECT_LE(radius, 1.0 + 1.0e-10) | EXPECT_LT(error, previous_limit_error) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07SupportReactionUsesPhysicalAccelerationAndCoupling HhtEnergyVerification.C07SupportReactionUsesPhysicalAccelerationAndCoupling; assertion 4개 tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07SupportReactionUsesPhysicalAccelerationAndCoupling 유지 원문 검사 body 및 assertion 동일. 3462a480370c4e1ef1adba61c8cecbd490c5a188b1c0f71c8f381a648f7717f7 3462a480370c4e1ef1adba61c8cecbd490c5a188b1c0f71c8f381a648f7717f7 ASSERT_TRUE(parameters.HasValue()) | EXPECT_EQ(reaction, 0.5 * state.a[0]) | EXPECT_LE(std::abs(balance) / scale, 1.0e-10) | EXPECT_GT(mutation_difference, 1.0e-6) ASSERT_TRUE(parameters.HasValue()) | EXPECT_EQ(reaction, 0.5 * state.a[0]) | EXPECT_LE(std::abs(balance) / scale, 1.0e-10) | EXPECT_GT(mutation_difference, 1.0e-6) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_energy_verification_test.cpp support@1-119 helper/oracle/fixture/include/static assertion 구간: Oscillator, Advance, Amplification, Eigenvalues, if, for tests/unit/analysis/hht_energy_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 85df404875102d22dc4c86031757dd24174a652f4dc39cf7ce0f561c59a977b4 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_energy_verification_test.cpp support@222-223 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_energy_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_reduced_shell_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 25개 tests/unit/analysis/hht_reduced_shell_test.cpp file 이관 Dev trial cache·context 변경·copy/move 소유권·실패 우선순위·left-association 검사를 복원한다. 같은 trial의 독립 local 평가만 ShellTrialElement::EvaluateTrial 호출로 이관한다. d715219a60c73ce9803f2c386be3843221c48b1f90882c224ad714db3ea6c785 243fb1edd3dfd485e824cf11291087e0e6daf469a9c8d0f2ed04ce893e385129 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.SelectsCanonicalPivotAndLiftsCoordinates HhtReducedChart.SelectsCanonicalPivotAndLiftsCoordinates; assertion 7개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.SelectsCanonicalPivotAndLiftsCoordinates 유지 원문 검사 body 및 assertion 동일. 9be1e26c0f12a99552fa2c7e2a706eb69bf9829d16cea9fda53f6d60ed62dd86 9be1e26c0f12a99552fa2c7e2a706eb69bf9829d16cea9fda53f6d60ed62dd86 ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(chart.Value().null_nodes.size(), 4U) | EXPECT_EQ(chart.Value().pivot_components[node], 2U) | EXPECT_EQ(chart.Value().z_dofs[node], 6U * node + 5U) | ASSERT_TRUE(full.HasValue()) | EXPECT_DOUBLE_EQ(full.Value()[chart.Value().p_dofs[i]], p[i]) | EXPECT_DOUBLE_EQ(full.Value()[chart.Value().z_dofs[i]], z[i]) ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(chart.Value().null_nodes.size(), 4U) | EXPECT_EQ(chart.Value().pivot_components[node], 2U) | EXPECT_EQ(chart.Value().z_dofs[node], 6U * node + 5U) | ASSERT_TRUE(full.HasValue()) | EXPECT_DOUBLE_EQ(full.Value()[chart.Value().p_dofs[i]], p[i]) | EXPECT_DOUBLE_EQ(full.Value()[chart.Value().z_dofs[i]], z[i]) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.RetainsNodeWhenItsPartialBoundaryCutsTheNull HhtReducedChart.RetainsNodeWhenItsPartialBoundaryCutsTheNull; assertion 9개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.RetainsNodeWhenItsPartialBoundaryCutsTheNull 유지 원문 검사 body 및 assertion 동일. 6233920d1de0cb982482e84f4acac2853c5d4b5f8b76431c4e52cc215134cc89 6233920d1de0cb982482e84f4acac2853c5d4b5f8b76431c4e52cc215134cc89 ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(chart.Value().null_nodes.size(), 3U) | EXPECT_TRUE(std::find(chart.Value().null_nodes.begin(), chart.Value().null_nodes.end(), 0U) == chart.Value().null_nodes.end()) | EXPECT_TRUE(std::find(chart.Value().p_dofs.begin(), chart.Value().p_dofs.end(), 3U) != chart.Value().p_dofs.end()) | EXPECT_TRUE(std::find(chart.Value().p_dofs.begin(), chart.Value().p_dofs.end(), 4U) != chart.Value().p_dofs.end()) | ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(operators.HasValue()) | EXPECT_EQ(operators.Value().rows.size(), 3U) ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(chart.Value().null_nodes.size(), 3U) | EXPECT_TRUE(std::find(chart.Value().null_nodes.begin(), chart.Value().null_nodes.end(), 0U) == chart.Value().null_nodes.end()) | EXPECT_TRUE(std::find(chart.Value().p_dofs.begin(), chart.Value().p_dofs.end(), 3U) != chart.Value().p_dofs.end()) | EXPECT_TRUE(std::find(chart.Value().p_dofs.begin(), chart.Value().p_dofs.end(), 4U) != chart.Value().p_dofs.end()) | ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(operators.HasValue()) | EXPECT_EQ(operators.Value().rows.size(), 3U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.UsesActualFiniteInitialNullAndPreservesTransposeActions HhtReducedChart.UsesActualFiniteInitialNullAndPreservesTransposeActions; assertion 13개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.UsesActualFiniteInitialNullAndPreservesTransposeActions 유지 원문 검사 body 및 assertion 동일. 3a0cce3ce539ccc6181768741375eed175e179b4e875a97b2369e6bd7f6a4c2f 3a0cce3ce539ccc6181768741375eed175e179b4e875a97b2369e6bd7f6a4c2f ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(built.HasValue()) | EXPECT_EQ(chart.minimum_axes.front(), axis) | ASSERT_EQ(chart.z_columns.front().support.size(), 3U) | EXPECT_NEAR(column.support[i].value, raw[i] / norm, 1e-15) | EXPECT_TRUE(std::isfinite(column.support_radii[i])) | EXPECT_GE(column.support_radii[i], 0.0) | EXPECT_GT(std::abs(chart.z_columns.front().support[0U].value), 0.01) | ASSERT_TRUE(full.HasValue()) | ASSERT_TRUE(projected_p.HasValue()) | ASSERT_TRUE(projected_z.HasValue()) | EXPECT_NEAR(projected_p.Value()[i], p[i], 1e-15) | EXPECT_NEAR(projected_z.Value()[i], z[i], 1e-15) ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(built.HasValue()) | EXPECT_EQ(chart.minimum_axes.front(), axis) | ASSERT_EQ(chart.z_columns.front().support.size(), 3U) | EXPECT_NEAR(column.support[i].value, raw[i] / norm, 1e-15) | EXPECT_TRUE(std::isfinite(column.support_radii[i])) | EXPECT_GE(column.support_radii[i], 0.0) | EXPECT_GT(std::abs(chart.z_columns.front().support[0U].value), 0.01) | ASSERT_TRUE(full.HasValue()) | ASSERT_TRUE(projected_p.HasValue()) | ASSERT_TRUE(projected_z.HasValue()) | EXPECT_NEAR(projected_p.Value()[i], p[i], 1e-15) | EXPECT_NEAR(projected_z.Value()[i], z[i], 1e-15) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.MinimumAxisTieAndPartialBoundaryRetainExactZeros HhtReducedChart.MinimumAxisTieAndPartialBoundaryRetainExactZeros; assertion 5개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.MinimumAxisTieAndPartialBoundaryRetainExactZeros 유지 원문 검사 body 및 assertion 동일. 199055f0e67f5c20880dc18741e1294140016db419e6a95628c00e1cb1277f8b 199055f0e67f5c20880dc18741e1294140016db419e6a95628c00e1cb1277f8b ASSERT_TRUE(chart.HasValue()) | EXPECT_EQ(axis, 0U) | ASSERT_TRUE(full.HasValue()) | EXPECT_DOUBLE_EQ(full.Value()[5U], 0.0) | EXPECT_FALSE(column.fixed_plane) ASSERT_TRUE(chart.HasValue()) | EXPECT_EQ(axis, 0U) | ASSERT_TRUE(full.HasValue()) | EXPECT_DOUBLE_EQ(full.Value()[5U], 0.0) | EXPECT_FALSE(column.fixed_plane) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.ProperRotationRelatesRetainedPlanesByConstantOrthogonalMap HhtReducedChart.ProperRotationRelatesRetainedPlanesByConstantOrthogonalMap; assertion 8개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.ProperRotationRelatesRetainedPlanesByConstantOrthogonalMap 유지 원문 검사 body 및 assertion 동일. 0a3d19b8bfc9be9ba9e6f6d45bf817a8cde05698c75a9ae3355fb4c74ac52e62 0a3d19b8bfc9be9ba9e6f6d45bf817a8cde05698c75a9ae3355fb4c74ac52e62 ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(transformed.HasValue()) | ASSERT_TRUE(source.HasValue()) | ASSERT_TRUE(target.HasValue()) | ASSERT_EQ(si, 2U) | ASSERT_EQ(ti, 2U) | EXPECT_NEAR(target_plane[0U][k] * t[0U][j] + target_plane[1U][k] * t[1U][j], rotated[k], 1e-14) | EXPECT_NEAR(t[0U][i] * t[0U][j] + t[1U][i] * t[1U][j], i == j ? 1.0 : 0.0, 1e-14) ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(transformed.HasValue()) | ASSERT_TRUE(source.HasValue()) | ASSERT_TRUE(target.HasValue()) | ASSERT_EQ(si, 2U) | ASSERT_EQ(ti, 2U) | EXPECT_NEAR(target_plane[0U][k] * t[0U][j] + target_plane[1U][k] * t[1U][j], rotated[k], 1e-14) | EXPECT_NEAR(t[0U][i] * t[0U][j] + t[1U][i] * t[1U][j], i == j ? 1.0 : 0.0, 1e-14) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.RejectsSubnormalNormWithoutAValidCoefficientCertificate HhtReducedChart.RejectsSubnormalNormWithoutAValidCoefficientCertificate; assertion 1개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.RejectsSubnormalNormWithoutAValidCoefficientCertificate 유지 원문 검사 body 및 assertion 동일. c8389950eef75e9147da8658be67e71bb4c52c46db7991d0488a4937ac82c439 c8389950eef75e9147da8658be67e71bb4c52c46db7991d0488a4937ac82c439 EXPECT_FALSE(fesa::hht_reduced_internal::BuildFixedChart(fixture.dofs, rotations).HasValue()) EXPECT_FALSE(fesa::hht_reduced_internal::BuildFixedChart(fixture.dofs, rotations).HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.NativeCoefficientRadiiExportFixedInputReplay HhtReducedChart.NativeCoefficientRadiiExportFixedInputReplay; assertion 7개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.NativeCoefficientRadiiExportFixedInputReplay 유지 원문 검사 body 및 assertion 동일. 9c220fc2bc4ffd53650d9c3af693560d6beeaf06b5631d766ae082ff5ec3e8fb 9c220fc2bc4ffd53650d9c3af693560d6beeaf06b5631d766ae082ff5ec3e8fb ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(column, 2U) | ASSERT_EQ(p->support.size(), 3U) | EXPECT_TRUE(std::isfinite(radius)) | EXPECT_GE(radius, 0.0) | EXPECT_FALSE(fesa::hht_reduced_internal::BuildFixedChart(fixture.dofs, invalid).HasValue()) ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(column, 2U) | ASSERT_EQ(p->support.size(), 3U) | EXPECT_TRUE(std::isfinite(radius)) | EXPECT_GE(radius, 0.0) | EXPECT_FALSE(fesa::hht_reduced_internal::BuildFixedChart(fixture.dofs, invalid).HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.InvertibleGraphDoesNotCertifySelectorTransversality HhtReducedChart.InvertibleGraphDoesNotCertifySelectorTransversality; assertion 6개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.InvertibleGraphDoesNotCertifySelectorTransversality 유지 원문 검사 body 및 assertion 동일. 23c5ac02ecae6f1ee4b38528c74d1fe93200138fd51a2ab0d23b694c7e04abbe 23c5ac02ecae6f1ee4b38528c74d1fe93200138fd51a2ab0d23b694c7e04abbe ASSERT_TRUE(chart.HasValue()) | EXPECT_TRUE(fesa::hht_reduced_internal::SolveGraphSystem( fesa::hht_reduced_internal::GraphJacobian(operators, chart.Value()), fesa::Vector(4U, 1.0), solver).HasValue()) | ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::CheckSelectorTransversality( assembly, chart.Value(), solver).HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::CheckSelectorTransversality( assembly, chart.Value(), solver).HasValue()) ASSERT_TRUE(chart.HasValue()) | EXPECT_TRUE(fesa::hht_reduced_internal::SolveGraphSystem( fesa::hht_reduced_internal::GraphJacobian(operators, chart.Value()), fesa::Vector(4U, 1.0), solver).HasValue()) | ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::CheckSelectorTransversality( assembly, chart.Value(), solver).HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::CheckSelectorTransversality( assembly, chart.Value(), solver).HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.CompleteTrialConstraintDataMatchesFreshAndOwnsCopies HhtReducedOperators.CompleteTrialConstraintDataMatchesFreshAndOwnsCopies; assertion 16개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.CompleteTrialConstraintDataMatchesFreshAndOwnsCopies 이관 Dev trial cache·context 변경·copy/move 소유권·실패 우선순위·left-association 검사를 복원한다. 같은 trial의 독립 local 평가만 ShellTrialElement::EvaluateTrial 호출로 이관한다. c2550db2c3c2e988d3d7a1555cd933c9a2371d66d7e30d05aec89e026e8c1f28 8d91faae89582464d44dbe22e850c9d57ef109d3e474e000e43bce1cd93266c5 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(assembled.Value().trial_constraints.has_value()) | ASSERT_EQ(assembled.Value().trial_constraints->shells.size(), shells.Value().size()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(saved.directional_internal) | ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(reference.HasValue()) | ASSERT_TRUE(reused.HasValue()) | ASSERT_TRUE(marker.HasValue()) | EXPECT_NE(marker.Value().rows[0U].value, reused.Value().rows[0U].value) | EXPECT_NE( copy.trial_constraints->shells[0U].drilling_constraint[0U], assembled.Value().trial_constraints->shells[0U].drilling_constraint[0U]) | ASSERT_TRUE(moved_result.HasValue()) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(tbb_result.HasValue()) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(assembled.Value().trial_constraints.has_value()) | ASSERT_EQ(assembled.Value().trial_constraints->shells.size(), shells.Value().size()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(saved.directional_internal) | ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(reference.HasValue()) | ASSERT_TRUE(reused.HasValue()) | ASSERT_TRUE(marker.HasValue()) | EXPECT_NE(marker.Value().rows[0U].value, reused.Value().rows[0U].value) | EXPECT_NE( copy.trial_constraints->shells[0U].drilling_constraint[0U], assembled.Value().trial_constraints->shells[0U].drilling_constraint[0U]) | ASSERT_TRUE(moved_result.HasValue()) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(tbb_result.HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.ChangedTrialConstraintContextFallsBackInOriginalPosition HhtReducedOperators.ChangedTrialConstraintContextFallsBackInOriginalPosition; assertion 19개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.ChangedTrialConstraintContextFallsBackInOriginalPosition 유지 원문 검사 body 및 assertion 동일. c9c5b148483d6a734246aa230aa71782a630877d3309f2849b78b1abb6a32042 c9c5b148483d6a734246aa230aa71782a630877d3309f2849b78b1abb6a32042 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(assembled.Value().trial_constraints.has_value()) | ASSERT_TRUE( assembled.Value().trial_constraints->shells[0U].directional_internal) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(reference.HasValue()) | ASSERT_TRUE(actual.HasValue()) | ASSERT_TRUE(reference.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_EQ(mkl_set_num_threads_local(0), 2) | ASSERT_TRUE(reference.HasValue()) | ASSERT_TRUE(actual.HasValue()) | ASSERT_FALSE(failed.HasValue()) | ASSERT_FALSE(original.HasValue()) | ASSERT_EQ(failed.GetStatus().Diagnostics().size(), original.GetStatus().Diagnostics().size()) | EXPECT_EQ(failed.GetStatus().Diagnostics()[0U].code, original.GetStatus().Diagnostics()[0U].code) | EXPECT_EQ(failed.GetStatus().Diagnostics()[0U].message, original.GetStatus().Diagnostics()[0U].message) | ASSERT_TRUE(rerun.HasValue()) | ASSERT_TRUE(reference.HasValue()) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(assembled.Value().trial_constraints.has_value()) | ASSERT_TRUE( assembled.Value().trial_constraints->shells[0U].directional_internal) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(reference.HasValue()) | ASSERT_TRUE(actual.HasValue()) | ASSERT_TRUE(reference.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_EQ(mkl_set_num_threads_local(0), 2) | ASSERT_TRUE(reference.HasValue()) | ASSERT_TRUE(actual.HasValue()) | ASSERT_FALSE(failed.HasValue()) | ASSERT_FALSE(original.HasValue()) | ASSERT_EQ(failed.GetStatus().Diagnostics().size(), original.GetStatus().Diagnostics().size()) | EXPECT_EQ(failed.GetStatus().Diagnostics()[0U].code, original.GetStatus().Diagnostics()[0U].code) | EXPECT_EQ(failed.GetStatus().Diagnostics()[0U].message, original.GetStatus().Diagnostics()[0U].message) | ASSERT_TRUE(rerun.HasValue()) | ASSERT_TRUE(reference.HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.TrialContextControlsAndInitialFalseFailureLifetime HhtReducedOperators.TrialContextControlsAndInitialFalseFailureLifetime; assertion 25개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.TrialContextControlsAndInitialFalseFailureLifetime 유지 원문 검사 body 및 assertion 동일. 67b5b1519ea7f824e562dd9e5ecc22d093d8ccb9a5daefffe7ae7eea7e1c60db 67b5b1519ea7f824e562dd9e5ecc22d093d8ccb9a5daefffe7ae7eea7e1c60db ASSERT_TRUE(fesa::hht_internal::ReusableTrialContext(context, context)) | EXPECT_FALSE(fesa::hht_internal::ReusableTrialContext(context, changed)) | EXPECT_FALSE(fesa::hht_internal::ReusableTrialContext(unmasked, unmasked)) | EXPECT_FALSE(fesa::hht_internal::ReusableTrialContext(positive, positive)) | EXPECT_EQ(mkl_set_num_threads_local(0), 2) | EXPECT_FALSE(fesa::hht_internal::ReusableTrialContext(dynamic, dynamic)) | ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(position.HasValue()) | EXPECT_FALSE(position.Value().trial_constraints.has_value()) | ASSERT_TRUE(dynamic_trial.HasValue()) | ASSERT_TRUE(dynamic_trial.Value().trial_constraints.has_value()) | EXPECT_FALSE( dynamic_trial.Value().trial_constraints->shells[0U].directional_internal) | EXPECT_EQ(mkl_set_num_threads_local(0), 2) | ASSERT_TRUE(positive_trial.HasValue()) | ASSERT_TRUE(positive_trial.Value().trial_constraints.has_value()) | EXPECT_FALSE(positive_trial.Value() .trial_constraints->shells[0U] .directional_internal) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(initial.HasValue()) | EXPECT_FALSE(initial.Value().trial_constraints.has_value()) | EXPECT_FALSE(failure.HasValue()) | ASSERT_TRUE(current.HasValue()) | ASSERT_TRUE(next.HasValue()) | ASSERT_EQ(current.Value().trial_constraints->shells.size(), shells.Value().size()) | ASSERT_EQ(next.Value().trial_constraints->shells.size(), shells.Value().size()) | EXPECT_NE(¤t.Value().trial_constraints->shells[0U], &next.Value().trial_constraints->shells[0U]) ASSERT_TRUE(fesa::hht_internal::ReusableTrialContext(context, context)) | EXPECT_FALSE(fesa::hht_internal::ReusableTrialContext(context, changed)) | EXPECT_FALSE(fesa::hht_internal::ReusableTrialContext(unmasked, unmasked)) | EXPECT_FALSE(fesa::hht_internal::ReusableTrialContext(positive, positive)) | EXPECT_EQ(mkl_set_num_threads_local(0), 2) | EXPECT_FALSE(fesa::hht_internal::ReusableTrialContext(dynamic, dynamic)) | ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(position.HasValue()) | EXPECT_FALSE(position.Value().trial_constraints.has_value()) | ASSERT_TRUE(dynamic_trial.HasValue()) | ASSERT_TRUE(dynamic_trial.Value().trial_constraints.has_value()) | EXPECT_FALSE( dynamic_trial.Value().trial_constraints->shells[0U].directional_internal) | EXPECT_EQ(mkl_set_num_threads_local(0), 2) | ASSERT_TRUE(positive_trial.HasValue()) | ASSERT_TRUE(positive_trial.Value().trial_constraints.has_value()) | EXPECT_FALSE(positive_trial.Value() .trial_constraints->shells[0U] .directional_internal) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(initial.HasValue()) | EXPECT_FALSE(initial.Value().trial_constraints.has_value()) | EXPECT_FALSE(failure.HasValue()) | ASSERT_TRUE(current.HasValue()) | ASSERT_TRUE(next.HasValue()) | ASSERT_EQ(current.Value().trial_constraints->shells.size(), shells.Value().size()) | ASSERT_EQ(next.Value().trial_constraints->shells.size(), shells.Value().size()) | EXPECT_NE(¤t.Value().trial_constraints->shells[0U], &next.Value().trial_constraints->shells[0U]) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.NonfiniteMatchingTrialKeysPreserveOriginalFailure HhtReducedOperators.NonfiniteMatchingTrialKeysPreserveOriginalFailure; assertion 16개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.NonfiniteMatchingTrialKeysPreserveOriginalFailure 유지 원문 검사 body 및 assertion 동일. a0ae08eb280056ac6d02aef7595237997364b0fb7b5a8665e86687b24983559d a0ae08eb280056ac6d02aef7595237997364b0fb7b5a8665e86687b24983559d ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(assembled.Value().trial_constraints.has_value()) | ASSERT_TRUE( assembled.Value().trial_constraints->shells[0U].directional_internal) | ASSERT_TRUE(chart.HasValue()) | ASSERT_FALSE(original.HasValue()) | ASSERT_FALSE(actual.HasValue()) | EXPECT_EQ(actual.GetStatus().Category(), original.GetStatus().Category()) | ASSERT_EQ(a.size(), b.size()) | EXPECT_EQ(a[j].severity, b[j].severity) | EXPECT_EQ(a[j].code, b[j].code) | EXPECT_EQ(a[j].location.file, b[j].location.file) | EXPECT_EQ(a[j].location.line, b[j].location.line) | EXPECT_EQ(a[j].keyword, b[j].keyword) | EXPECT_EQ(a[j].entity_identity, b[j].entity_identity) | EXPECT_EQ(a[j].message, b[j].message) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(assembled.Value().trial_constraints.has_value()) | ASSERT_TRUE( assembled.Value().trial_constraints->shells[0U].directional_internal) | ASSERT_TRUE(chart.HasValue()) | ASSERT_FALSE(original.HasValue()) | ASSERT_FALSE(actual.HasValue()) | EXPECT_EQ(actual.GetStatus().Category(), original.GetStatus().Category()) | ASSERT_EQ(a.size(), b.size()) | EXPECT_EQ(a[j].severity, b[j].severity) | EXPECT_EQ(a[j].code, b[j].code) | EXPECT_EQ(a[j].location.file, b[j].location.file) | EXPECT_EQ(a[j].location.line, b[j].location.line) | EXPECT_EQ(a[j].keyword, b[j].keyword) | EXPECT_EQ(a[j].entity_identity, b[j].entity_identity) | EXPECT_EQ(a[j].message, b[j].message) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.NonfiniteMatchingTimeKeyMissPreservesFreshSuccess HhtReducedOperators.NonfiniteMatchingTimeKeyMissPreservesFreshSuccess; assertion 10개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.NonfiniteMatchingTimeKeyMissPreservesFreshSuccess 유지 원문 검사 body 및 assertion 동일. 06af6ebcbfae999adf35c836f87c4f1fd38e57c385028adec4ca457d2f798fd2 06af6ebcbfae999adf35c836f87c4f1fd38e57c385028adec4ca457d2f798fd2 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(assembled.Value().trial_constraints.has_value()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(reference.HasValue()) | ASSERT_TRUE(actual.HasValue()) | ASSERT_TRUE(producer.HasValue()) | EXPECT_FALSE(producer.Value().trial_constraints.has_value()) | ASSERT_TRUE(producer_result.HasValue()) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(assembled.Value().trial_constraints.has_value()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(reference.HasValue()) | ASSERT_TRUE(actual.HasValue()) | ASSERT_TRUE(producer.HasValue()) | EXPECT_FALSE(producer.Value().trial_constraints.has_value()) | ASSERT_TRUE(producer_result.HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.ScatterShellDerivativesByConstraintRow HhtReducedOperators.ScatterShellDerivativesByConstraintRow; assertion 15개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.ScatterShellDerivativesByConstraintRow 유지 원문 검사 body 및 assertion 동일. b57a6ce0864234af355f619fb8be4a19898393df437f5b314c8f1e2ee79dc0bd b57a6ce0864234af355f619fb8be4a19898393df437f5b314c8f1e2ee79dc0bd ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(operators.HasValue()) | ASSERT_EQ(operators.Value().rows.size(), 4U) | ASSERT_TRUE(graph_condition.HasValue()) | EXPECT_GE(graph_condition.Value(), std::ldexp(1.0, -32)) | EXPECT_DOUBLE_EQ(row.value, 0.0) | EXPECT_DOUBLE_EQ(row.value_scale, expected_scale) | EXPECT_FALSE(row.gradient.empty()) | EXPECT_FALSE(row.hessian.empty()) | EXPECT_LT(row.gradient.size(), fixture.dofs.FullDofCount()) | EXPECT_LT(entry.row, fixture.dofs.FullDofCount()) | EXPECT_LT(entry.column, fixture.dofs.FullDofCount()) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(operators.HasValue()) | ASSERT_EQ(operators.Value().rows.size(), 4U) | ASSERT_TRUE(graph_condition.HasValue()) | EXPECT_GE(graph_condition.Value(), std::ldexp(1.0, -32)) | EXPECT_DOUBLE_EQ(row.value, 0.0) | EXPECT_DOUBLE_EQ(row.value_scale, expected_scale) | EXPECT_FALSE(row.gradient.empty()) | EXPECT_FALSE(row.hessian.empty()) | EXPECT_LT(row.gradient.size(), fixture.dofs.FullDofCount()) | EXPECT_LT(entry.row, fixture.dofs.FullDofCount()) | EXPECT_LT(entry.column, fixture.dofs.FullDofCount()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.RejectsNonfiniteGraphResidualBeforeAcceptance HhtReducedEmbedding.RejectsNonfiniteGraphResidualBeforeAcceptance; assertion 4개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.RejectsNonfiniteGraphResidualBeforeAcceptance 유지 원문 검사 body 및 assertion 동일. aba990268187a0cee9fe762ab5acefe258144c3a8bcaf27245174b8cc87d6ac6 aba990268187a0cee9fe762ab5acefe258144c3a8bcaf27245174b8cc87d6ac6 "ASSERT_TRUE(chart.HasValue()) | ASSERT_FALSE(root.HasValue()) | ASSERT_FALSE(root.GetStatus().Diagnostics().empty()) | EXPECT_EQ(root.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" "ASSERT_TRUE(chart.HasValue()) | ASSERT_FALSE(root.HasValue()) | ASSERT_FALSE(root.GetStatus().Diagnostics().empty()) | EXPECT_EQ(root.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReturnsExactTwoCycleForFullHiddenCertification HhtReducedEmbedding.ReturnsExactTwoCycleForFullHiddenCertification; assertion 4개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReturnsExactTwoCycleForFullHiddenCertification 유지 원문 검사 body 및 assertion 동일. 1c20656897f7812ce5cf1b2993fc07ba03b3b4c04bcc5d9b8111bffb775607ab 1c20656897f7812ce5cf1b2993fc07ba03b3b4c04bcc5d9b8111bffb775607ab ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], -1.0) | EXPECT_DOUBLE_EQ(root.Value().q[0U], -1.0) | EXPECT_DOUBLE_EQ(root.Value().operators.rows[0U].value, -2.0) ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], -1.0) | EXPECT_DOUBLE_EQ(root.Value().q[0U], -1.0) | EXPECT_DOUBLE_EQ(root.Value().operators.rows[0U].value, -2.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReturnsEvaluatedTrialWhenLiftAbsorbsAChangedPrivateRoot HhtReducedEmbedding.ReturnsEvaluatedTrialWhenLiftAbsorbsAChangedPrivateRoot; assertion 12개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReturnsEvaluatedTrialWhenLiftAbsorbsAChangedPrivateRoot 유지 원문 검사 body 및 assertion 동일. 72f50cedc425b3beda1ad7a34363c76203e2792acbf3eff5bfdc4c3dee43c148 72f50cedc425b3beda1ad7a34363c76203e2792acbf3eff5bfdc4c3dee43c148 ASSERT_TRUE(built.HasValue()) | ASSERT_EQ(angular, 2U) | ASSERT_TRUE(original.HasValue()) | EXPECT_NE(changed[0U], seed[0U]) | ASSERT_TRUE(absorbed.HasValue()) | EXPECT_EQ(original.Value()[i], absorbed.Value()[i]) | ASSERT_TRUE(root.HasValue()) | EXPECT_EQ(root.Value().z[0U], seed[0U]) | EXPECT_NE(root.Value().operators.rows[0U].value, 0.0) | EXPECT_GT(root.Value().graph_residual_relative, 1e-10) | EXPECT_EQ(root.Value().graph_iteration_count, 0U) | EXPECT_EQ(root.Value().q[i], original.Value()[i]) ASSERT_TRUE(built.HasValue()) | ASSERT_EQ(angular, 2U) | ASSERT_TRUE(original.HasValue()) | EXPECT_NE(changed[0U], seed[0U]) | ASSERT_TRUE(absorbed.HasValue()) | EXPECT_EQ(original.Value()[i], absorbed.Value()[i]) | ASSERT_TRUE(root.HasValue()) | EXPECT_EQ(root.Value().z[0U], seed[0U]) | EXPECT_NE(root.Value().operators.rows[0U].value, 0.0) | EXPECT_GT(root.Value().graph_residual_relative, 1e-10) | EXPECT_EQ(root.Value().graph_iteration_count, 0U) | EXPECT_EQ(root.Value().q[i], original.Value()[i]) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.StopsAtExistingScaledPositionCertificate HhtReducedEmbedding.StopsAtExistingScaledPositionCertificate; assertion 5개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.StopsAtExistingScaledPositionCertificate 유지 원문 검사 body 및 assertion 동일. 40399a56a3e5ee5dd124159d271c7c833a7fb9bf4de311a17d44b0752fe90716 40399a56a3e5ee5dd124159d271c7c833a7fb9bf4de311a17d44b0752fe90716 ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], 0.0) | EXPECT_DOUBLE_EQ(root.Value().graph_residual_infinity, 5.0e-11) | EXPECT_DOUBLE_EQ(root.Value().graph_residual_relative, 5.0e-11) | EXPECT_DOUBLE_EQ(root.Value().graph_correction_infinity, 0.0) ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], 0.0) | EXPECT_DOUBLE_EQ(root.Value().graph_residual_infinity, 5.0e-11) | EXPECT_DOUBLE_EQ(root.Value().graph_residual_relative, 5.0e-11) | EXPECT_DOUBLE_EQ(root.Value().graph_correction_infinity, 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.RequiresExactZeroWhenPositionScaleIsZero HhtReducedEmbedding.RequiresExactZeroWhenPositionScaleIsZero; assertion 3개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.RequiresExactZeroWhenPositionScaleIsZero 유지 원문 검사 body 및 assertion 동일. 781274b693d154f790a5b856ea36ce7faf58048779d75a99636edfed40153d2d 781274b693d154f790a5b856ea36ce7faf58048779d75a99636edfed40153d2d ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], 0.0) | EXPECT_DOUBLE_EQ(root.Value().operators.rows[0U].value, 0.0) ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], 0.0) | EXPECT_DOUBLE_EQ(root.Value().operators.rows[0U].value, 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReconstructsRatesAcrossSelectedPartitionCancellation HhtReducedEmbedding.ReconstructsRatesAcrossSelectedPartitionCancellation; assertion 11개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReconstructsRatesAcrossSelectedPartitionCancellation 유지 원문 검사 body 및 assertion 동일. 99f396cb603db35827fd7516d26285d29dfd1fc5149f7f1ae100caf12b3c027f 99f396cb603db35827fd7516d26285d29dfd1fc5149f7f1ae100caf12b3c027f EXPECT_DOUBLE_EQ(plain_velocity_rhs, 0.0) | EXPECT_DOUBLE_EQ(plain_acceleration_rhs, 0.0) | ASSERT_TRUE(rates.HasValue()) | EXPECT_DOUBLE_EQ(rates.Value().velocity[0U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().velocity[1U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().velocity[2U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[0U], 0.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[1U], 0.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[2U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().z_velocity[0U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().z_acceleration[0U], 1.0) EXPECT_DOUBLE_EQ(plain_velocity_rhs, 0.0) | EXPECT_DOUBLE_EQ(plain_acceleration_rhs, 0.0) | ASSERT_TRUE(rates.HasValue()) | EXPECT_DOUBLE_EQ(rates.Value().velocity[0U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().velocity[1U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().velocity[2U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[0U], 0.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[1U], 0.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[2U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().z_velocity[0U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().z_acceleration[0U], 1.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReconstructsActualShellRatesWithMixedTimeLoad HhtReducedEmbedding.ReconstructsActualShellRatesWithMixedTimeLoad; assertion 53개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReconstructsActualShellRatesWithMixedTimeLoad 유지 원문 검사 body 및 assertion 동일. d7e9c115b48ed36f68722faa84b348585d6fd80567b49019bbac78cde25cd8b9 d7e9c115b48ed36f68722faa84b348585d6fd80567b49019bbac78cde25cd8b9 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(initial.HasValue()) | ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().q[2U], 0.01) | ASSERT_TRUE(rates.HasValue()) | ASSERT_TRUE(actual.HasValue()) | ASSERT_TRUE(operators.HasValue()) | EXPECT_NEAR(hidden[0U], 0.0, 1.0e-9) | EXPECT_NEAR(hidden[1U], 0.0, 1.0e-9) | EXPECT_NEAR(hidden[2U], 0.0, 1.0e-8) | EXPECT_TRUE(saw_time_term) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(reference_length.HasValue()) | ASSERT_TRUE(system.HasValue()) | ASSERT_EQ(system.Value().physical_count, chart.Value().p_dofs.size()) | ASSERT_EQ(system.Value().algebraic_count, chart.Value().z_dofs.size()) | ASSERT_TRUE(mapped.HasValue()) | EXPECT_DOUBLE_EQ(mapped.Value().coordinate[0U], 0.004) | EXPECT_DOUBLE_EQ(mapped.Value().velocity[0U], cv * 0.004) | EXPECT_DOUBLE_EQ(mapped.Value().acceleration[0U], ca * 0.004) | EXPECT_NEAR(mapped.Value().coordinate[entry.dof], -0.003 * entry.value, 1e-17) | EXPECT_NEAR(mapped.Value().velocity[entry.dof], 0.002 * entry.value, 1e-17) | EXPECT_NEAR(mapped.Value().acceleration[entry.dof], -0.001 * entry.value, 1e-17) | ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(projected_base.HasValue()) | EXPECT_NEAR(base.Value()[i], system.Value().row_scale[i] * projected_base.Value()[i], 1e-13 * system.Value().row_scale[i] * uncancelled) | ASSERT_GT(direction_norm, 0.0) | ASSERT_TRUE(mapped_direction.HasValue()) | ASSERT_GT(tangent_frobenius, 0.0) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_EQ(consecutive, expected_pass) | ASSERT_TRUE(no_force_actual.HasValue()) | ASSERT_TRUE(no_force_operators.HasValue()) | ASSERT_EQ(omitted_external_gradient.rows.size(), no_force_operators.Value().rows.size()) | ASSERT_EQ(omitted.size(), no_force.size()) | ASSERT_EQ(omitted[entry].dof, no_force[entry].dof) | ASSERT_TRUE(saw_external_position_gradient) | ASSERT_TRUE(omitted_external_gradient_system.HasValue()) | ASSERT_TRUE(ha_actual.HasValue()) | ASSERT_TRUE(ha_operators.HasValue()) | ASSERT_TRUE(ha_system.HasValue()) | ASSERT_TRUE(omitted_ha_system.HasValue()) | ASSERT_TRUE(hw_actual.HasValue()) | ASSERT_TRUE(hw_operators.HasValue()) | ASSERT_TRUE(hw_system.HasValue()) | ASSERT_TRUE(omitted_hw_system.HasValue()) | ASSERT_TRUE(third_system.HasValue()) | ASSERT_TRUE(mixed_time_system.HasValue()) | ASSERT_TRUE(omitted_second_time_rates.HasValue()) | EXPECT_GT(omitted_second_time_hidden, 1.0e-8) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(initial.HasValue()) | ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().q[2U], 0.01) | ASSERT_TRUE(rates.HasValue()) | ASSERT_TRUE(actual.HasValue()) | ASSERT_TRUE(operators.HasValue()) | EXPECT_NEAR(hidden[0U], 0.0, 1.0e-9) | EXPECT_NEAR(hidden[1U], 0.0, 1.0e-9) | EXPECT_NEAR(hidden[2U], 0.0, 1.0e-8) | EXPECT_TRUE(saw_time_term) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(reference_length.HasValue()) | ASSERT_TRUE(system.HasValue()) | ASSERT_EQ(system.Value().physical_count, chart.Value().p_dofs.size()) | ASSERT_EQ(system.Value().algebraic_count, chart.Value().z_dofs.size()) | ASSERT_TRUE(mapped.HasValue()) | EXPECT_DOUBLE_EQ(mapped.Value().coordinate[0U], 0.004) | EXPECT_DOUBLE_EQ(mapped.Value().velocity[0U], cv * 0.004) | EXPECT_DOUBLE_EQ(mapped.Value().acceleration[0U], ca * 0.004) | EXPECT_NEAR(mapped.Value().coordinate[entry.dof], -0.003 * entry.value, 1e-17) | EXPECT_NEAR(mapped.Value().velocity[entry.dof], 0.002 * entry.value, 1e-17) | EXPECT_NEAR(mapped.Value().acceleration[entry.dof], -0.001 * entry.value, 1e-17) | ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(projected_base.HasValue()) | EXPECT_NEAR(base.Value()[i], system.Value().row_scale[i] * projected_base.Value()[i], 1e-13 * system.Value().row_scale[i] * uncancelled) | ASSERT_GT(direction_norm, 0.0) | ASSERT_TRUE(mapped_direction.HasValue()) | ASSERT_GT(tangent_frobenius, 0.0) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_EQ(consecutive, expected_pass) | ASSERT_TRUE(no_force_actual.HasValue()) | ASSERT_TRUE(no_force_operators.HasValue()) | ASSERT_EQ(omitted_external_gradient.rows.size(), no_force_operators.Value().rows.size()) | ASSERT_EQ(omitted.size(), no_force.size()) | ASSERT_EQ(omitted[entry].dof, no_force[entry].dof) | ASSERT_TRUE(saw_external_position_gradient) | ASSERT_TRUE(omitted_external_gradient_system.HasValue()) | ASSERT_TRUE(ha_actual.HasValue()) | ASSERT_TRUE(ha_operators.HasValue()) | ASSERT_TRUE(ha_system.HasValue()) | ASSERT_TRUE(omitted_ha_system.HasValue()) | ASSERT_TRUE(hw_actual.HasValue()) | ASSERT_TRUE(hw_operators.HasValue()) | ASSERT_TRUE(hw_system.HasValue()) | ASSERT_TRUE(omitted_hw_system.HasValue()) | ASSERT_TRUE(third_system.HasValue()) | ASSERT_TRUE(mixed_time_system.HasValue()) | ASSERT_TRUE(omitted_second_time_rates.HasValue()) | EXPECT_GT(omitted_second_time_hidden, 1.0e-8) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RequiresEveryTranslationGateAndThaws HhtReducedChannelNewton.RequiresEveryTranslationGateAndThaws; assertion 10개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RequiresEveryTranslationGateAndThaws 유지 원문 검사 body 및 assertion 동일. 635a7b5bdebdb547e60223694971085c31ae50c328a17ee943f24d0f968e86b3 635a7b5bdebdb547e60223694971085c31ae50c328a17ee943f24d0f968e86b3 EXPECT_TRUE(refine({1e-10, 2e-10}, zero)) | EXPECT_FALSE(refine({2e-10, 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, 1e-10}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero, false)) | EXPECT_FALSE(refine({0.0, 2e-10}, correction)) | EXPECT_FALSE(refine({0.0, 2e-10}, correction)) | EXPECT_FALSE(refine({std::numeric_limits::infinity(), 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, std::numeric_limits::quiet_NaN()}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero)) EXPECT_TRUE(refine({1e-10, 2e-10}, zero)) | EXPECT_FALSE(refine({2e-10, 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, 1e-10}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero, false)) | EXPECT_FALSE(refine({0.0, 2e-10}, correction)) | EXPECT_FALSE(refine({0.0, 2e-10}, correction)) | EXPECT_FALSE(refine({std::numeric_limits::infinity(), 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, std::numeric_limits::quiet_NaN()}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RetainsAllAuxiliaryBlocksAndFullModelDefect HhtReducedChannelNewton.RetainsAllAuxiliaryBlocksAndFullModelDefect; assertion 22개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RetainsAllAuxiliaryBlocksAndFullModelDefect 유지 원문 검사 body 및 assertion 동일. e1aa1e05ebaeb7f832033a6db8283163510c5d3266ee5a5863a445694b12e3d7 e1aa1e05ebaeb7f832033a6db8283163510c5d3266ee5a5863a445694b12e3d7 ASSERT_TRUE(tangent.HasValue()) | ASSERT_TRUE(selected.HasValue()) | EXPECT_EQ(selected.Value().full_indices, (std::vector{1U, 2U, 3U, 4U, 5U})) | ASSERT_TRUE(solver.FactorizeFresh(selected.Value().tangent).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(selected.Value().rhs, step).IsOk()) | EXPECT_TRUE(fesa::hht_internal::CheckLinearSolve( selected.Value().tangent, selected.Value().rhs, step).IsOk()) | ASSERT_TRUE(embedded.HasValue()) | EXPECT_DOUBLE_EQ(embedded.Value()[0U], 0.0) | EXPECT_NEAR(embedded.Value()[i], expected[i], 1e-14) | EXPECT_FALSE(fesa::hht_internal::CheckLinearSolve( full.tangent, full.rhs, embedded.Value()).IsOk()) | ASSERT_TRUE(mapped.HasValue()) | EXPECT_DOUBLE_EQ(mapped.Value().coordinate[0U], 0.0) | EXPECT_DOUBLE_EQ(mapped.Value().velocity[0U], 0.0) | EXPECT_DOUBLE_EQ(mapped.Value().acceleration[0U], 0.0) | EXPECT_NEAR(mapped.Value().coordinate[5U], 0.4, 1e-14) | EXPECT_NEAR(mapped.Value().velocity[5U], 0.2, 1e-14) | EXPECT_NEAR(mapped.Value().acceleration[5U], -0.3, 1e-14) | ASSERT_TRUE(thawed.HasValue()) | EXPECT_EQ(thawed.Value().full_indices.size(), 6U) | EXPECT_DOUBLE_EQ(thawed.Value().rhs[0U], rhs[0U]) | EXPECT_FALSE(fesa::hht_reduced_internal::SelectAugmentedSolve( invalid, chart, true).HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::EmbedAugmentedSolution( selected.Value(), step, 6U).HasValue()) ASSERT_TRUE(tangent.HasValue()) | ASSERT_TRUE(selected.HasValue()) | EXPECT_EQ(selected.Value().full_indices, (std::vector{1U, 2U, 3U, 4U, 5U})) | ASSERT_TRUE(solver.FactorizeFresh(selected.Value().tangent).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(selected.Value().rhs, step).IsOk()) | EXPECT_TRUE(fesa::hht_internal::CheckLinearSolve( selected.Value().tangent, selected.Value().rhs, step).IsOk()) | ASSERT_TRUE(embedded.HasValue()) | EXPECT_DOUBLE_EQ(embedded.Value()[0U], 0.0) | EXPECT_NEAR(embedded.Value()[i], expected[i], 1e-14) | EXPECT_FALSE(fesa::hht_internal::CheckLinearSolve( full.tangent, full.rhs, embedded.Value()).IsOk()) | ASSERT_TRUE(mapped.HasValue()) | EXPECT_DOUBLE_EQ(mapped.Value().coordinate[0U], 0.0) | EXPECT_DOUBLE_EQ(mapped.Value().velocity[0U], 0.0) | EXPECT_DOUBLE_EQ(mapped.Value().acceleration[0U], 0.0) | EXPECT_NEAR(mapped.Value().coordinate[5U], 0.4, 1e-14) | EXPECT_NEAR(mapped.Value().velocity[5U], 0.2, 1e-14) | EXPECT_NEAR(mapped.Value().acceleration[5U], -0.3, 1e-14) | ASSERT_TRUE(thawed.HasValue()) | EXPECT_EQ(thawed.Value().full_indices.size(), 6U) | EXPECT_DOUBLE_EQ(thawed.Value().rhs[0U], rhs[0U]) | EXPECT_FALSE(fesa::hht_reduced_internal::SelectAugmentedSolve( invalid, chart, true).HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::EmbedAugmentedSolution( selected.Value(), step, 6U).HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RestrictedSingularityIsNotFullInvertibility HhtReducedChannelNewton.RestrictedSingularityIsNotFullInvertibility; assertion 4개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RestrictedSingularityIsNotFullInvertibility 유지 원문 검사 body 및 assertion 동일. 929b1e67526d7ea5095985c949c85d901e3f90db028afcd2bdd3826dba226d7b 929b1e67526d7ea5095985c949c85d901e3f90db028afcd2bdd3826dba226d7b ASSERT_TRUE(matrix.HasValue()) | ASSERT_TRUE(restricted.HasValue()) | ASSERT_TRUE(solver.FactorizeFresh(full.tangent).IsOk()) | EXPECT_FALSE(solver.FactorizeFresh(restricted.Value().tangent).IsOk()) ASSERT_TRUE(matrix.HasValue()) | ASSERT_TRUE(restricted.HasValue()) | ASSERT_TRUE(solver.FactorizeFresh(full.tangent).IsOk()) | EXPECT_FALSE(solver.FactorizeFresh(restricted.Value().tangent).IsOk()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.NullMetricKeepsFiniteLeftAssociatedProducts HhtReducedOperators.NullMetricKeepsFiniteLeftAssociatedProducts; assertion 9개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.NullMetricKeepsFiniteLeftAssociatedProducts 유지 원문 검사 body 및 assertion 동일. 4998c48dc3585979cd5e3480513dd96d58f984516945f1cadc4f32557ea92960 4998c48dc3585979cd5e3480513dd96d58f984516945f1cadc4f32557ea92960 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(std::isfinite(original_metric)) | ASSERT_GT(original_metric, 0.0) | ASSERT_FALSE(std::isfinite(block[1U] * n[1U] + block[2U] * n[2U])) | ASSERT_TRUE(metric.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(checked.HasValue()) | EXPECT_GE(checked.Value(), std::ldexp(1.0, -32)) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(std::isfinite(original_metric)) | ASSERT_GT(original_metric, 0.0) | ASSERT_FALSE(std::isfinite(block[1U] * n[1U] + block[2U] * n[2U])) | ASSERT_TRUE(metric.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(checked.HasValue()) | EXPECT_GE(checked.Value(), std::ldexp(1.0, -32)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_reduced_shell_test.cpp support@1-222 helper/oracle/fixture/include/static assertion 구간: RestoreTrialEnvironment, ExpectSameBits, ExpectSameOperators, Fixture, MakeFixture, if, Rotations, Assemble, SetComponentColumns, PIndex, Hidden, for tests/unit/analysis/hht_reduced_shell_test.cpp file-support 유지 Dev trial cache·context 변경·copy/move 소유권·실패 우선순위·left-association 검사를 복원한다. 같은 trial의 독립 local 평가만 ShellTrialElement::EvaluateTrial 호출로 이관한다. 4d9a4a9a4013ce8095a53b150b5202796b635ea1771c1143571453afa1f6bd63 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_reduced_shell_test.cpp support@1739-1740 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_reduced_shell_test.cpp file-support 유지 Dev trial cache·context 변경·copy/move 소유권·실패 우선순위·left-association 검사를 복원한다. 같은 trial의 독립 local 평가만 ShellTrialElement::EvaluateTrial 호출로 이관한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_shell_physics_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 27개 tests/unit/analysis/hht_shell_physics_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b8a2dbd416d53e6807dba075bb2f98ee88c0331d5398840569823997248412c4 029bc0a2ece9780b1c904e966bf71a2a43741317000b7bd1ea3544c2d07968a1 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.NodalRigidForceRatesMatchIndependentTimeDifferences HhtShellPhysics.NodalRigidForceRatesMatchIndependentTimeDifferences; assertion 2개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.NodalRigidForceRatesMatchIndependentTimeDifferences 유지 원문 검사 body 및 assertion 동일. 8e7bbb65a70d3694839108bc430e01ae3292d6b4ab980922f7c9577af3185f6c 8e7bbb65a70d3694839108bc430e01ae3292d6b4ab980922f7c9577af3185f6c ASSERT_GT(scale, 0.0) | EXPECT_LE(error / scale, 1.0e-6) ASSERT_GT(scale, 0.0) | EXPECT_LE(error / scale, 1.0e-6) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ExternalDrillingHessianBalancesGradientAcceleration HhtShellPhysics.ExternalDrillingHessianBalancesGradientAcceleration; assertion 8개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ExternalDrillingHessianBalancesGradientAcceleration 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e83c3c64a41a332d6dea5ac10002e9e4ff3915552778b2396731397294b40b0a 9456fd3f90ad9a3f30a93fd5e5d513eb2798f88ae63df197d1c0db7471c84a53 ASSERT_TRUE(external.HasValue()) | EXPECT_NEAR(external.Value().directional_second, -1.0 / 6.0, 1.0e-14) | EXPECT_NEAR(gradient_acceleration, 1.0 / 6.0, 1.0e-14) | EXPECT_NEAR(external.Value().directional_second + gradient_acceleration, 0.0, 1.0e-14) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(middle.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_NEAR(finite_difference, external.Value().directional_second, 1.0e-8) ASSERT_TRUE(external.HasValue()) | EXPECT_NEAR(external.Value().directional_second, -1.0 / 6.0, 1.0e-14) | EXPECT_NEAR(gradient_acceleration, 1.0 / 6.0, 1.0e-14) | EXPECT_NEAR(external.Value().directional_second + gradient_acceleration, 0.0, 1.0e-14) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(middle.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_NEAR(finite_difference, external.Value().directional_second, 1.0e-8) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ManufacturedHiddenCountsExternalHessianOnce HhtShellPhysics.ManufacturedHiddenCountsExternalHessianOnce; assertion 2개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ManufacturedHiddenCountsExternalHessianOnce 유지 원문 검사 body 및 assertion 동일. 66c7a72b17bea62b6f47d56a3ad1c08c66eec8169ebaaa0adcdc71e7b85a892c 66c7a72b17bea62b6f47d56a3ad1c08c66eec8169ebaaa0adcdc71e7b85a892c ASSERT_GT(scale, 0.0) | EXPECT_LE(std::abs(balance.hidden_acceleration_defect[node] - expected) / scale, 1.0e-12) ASSERT_GT(scale, 0.0) | EXPECT_LE(std::abs(balance.hidden_acceleration_defect[node] - expected) / scale, 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08aRigidOrbitMatchesIndependentVolumeForcePowerAndMomentum HhtShellPhysics.C08aRigidOrbitMatchesIndependentVolumeForcePowerAndMomentum; assertion 14개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08aRigidOrbitMatchesIndependentVolumeForcePowerAndMomentum 유지 원문 검사 body 및 assertion 동일. fcb752c10cea7eb76dfcbb5e2035bb3eb8392589fafa6e8673656dd5ecfe934f fcb752c10cea7eb76dfcbb5e2035bb3eb8392589fafa6e8673656dd5ecfe934f EXPECT_LE(difference.Norm() / oracle.force.Norm(), 1.0e-12) | EXPECT_LE(std::abs(assembly.frame.kinetic_energy - static_cast(oracle.kinetic)) / static_cast(oracle.kinetic), 1.0e-12) | EXPECT_LE(std::abs(oracle.force.Dot(exact.velocity) - static_cast(oracle.power)) / static_cast(oracle.power_scale), 1.0e-10) | EXPECT_LE(assembly.frame.physical_strain_energy / 800.0, 1.0e-10) | EXPECT_LE(assembly.frame.drilling_energy / 800.0, 1.0e-10) | EXPECT_DOUBLE_EQ(scaled_force.Norm(), 0.0) | EXPECT_LE(scaled_force.Norm() / force_scale, 1.0e-10) | EXPECT_LE(momentum_error / static_cast(oracle.momentum_scale), 1.0e-12) | EXPECT_LE( angular_error / static_cast(oracle.angular_momentum_scale), 1.0e-12) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_LE(value / scale, 1.0e-10) | EXPECT_TRUE(fesa::hht_internal::CompleteEquilibrium( *fixture.domain, fixture.dofs, assembly, &balance) .IsOk()) | EXPECT_LE(assembly.mass.Multiply(null).Norm() / mass_norm, 1.0e-12) | EXPECT_GT(maximum_rotation, 0.5) EXPECT_LE(difference.Norm() / oracle.force.Norm(), 1.0e-12) | EXPECT_LE(std::abs(assembly.frame.kinetic_energy - static_cast(oracle.kinetic)) / static_cast(oracle.kinetic), 1.0e-12) | EXPECT_LE(std::abs(oracle.force.Dot(exact.velocity) - static_cast(oracle.power)) / static_cast(oracle.power_scale), 1.0e-10) | EXPECT_LE(assembly.frame.physical_strain_energy / 800.0, 1.0e-10) | EXPECT_LE(assembly.frame.drilling_energy / 800.0, 1.0e-10) | EXPECT_DOUBLE_EQ(scaled_force.Norm(), 0.0) | EXPECT_LE(scaled_force.Norm() / force_scale, 1.0e-10) | EXPECT_LE(momentum_error / static_cast(oracle.momentum_scale), 1.0e-12) | EXPECT_LE( angular_error / static_cast(oracle.angular_momentum_scale), 1.0e-12) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_LE(value / scale, 1.0e-10) | EXPECT_TRUE(fesa::hht_internal::CompleteEquilibrium( *fixture.domain, fixture.dofs, assembly, &balance) .IsOk()) | EXPECT_LE(assembly.mass.Multiply(null).Norm() / mass_norm, 1.0e-12) | EXPECT_GT(maximum_rotation, 0.5) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisCoefficientRadiusSurvivesSparseProjectionAndLift HhtShellPhysics.BasisCoefficientRadiusSurvivesSparseProjectionAndLift; assertion 4개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisCoefficientRadiusSurvivesSparseProjectionAndLift 유지 원문 검사 body 및 assertion 동일. 28a447ddb306564c9364deaf08aacaeeb7189e3b604a6c594230eae915501a84 28a447ddb306564c9364deaf08aacaeeb7189e3b604a6c594230eae915501a84 EXPECT_GT(lifted[3U], 0.0) | EXPECT_GE(lifted[4U], 4.0 * 0x1p-53) | EXPECT_GE(lifted[5U], 4.0 * 0x1p-53) | EXPECT_GT(projected[0U], 2.0 * 0x1p-53) EXPECT_GT(lifted[3U], 0.0) | EXPECT_GE(lifted[4U], 4.0 * 0x1p-53) | EXPECT_GE(lifted[5U], 4.0 * 0x1p-53) | EXPECT_GT(projected[0U], 2.0 * 0x1p-53) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisRadiusReplayMatchesCompensatedProjectionAndCombinedLift HhtShellPhysics.BasisRadiusReplayMatchesCompensatedProjectionAndCombinedLift; assertion 11개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisRadiusReplayMatchesCompensatedProjectionAndCombinedLift 유지 원문 검사 body 및 assertion 동일. 31474d755fe7fa0af870a6fbb2bbba642858fd2250d3d8c7e01158e109379958 31474d755fe7fa0af870a6fbb2bbba642858fd2250d3d8c7e01158e109379958 EXPECT_DOUBLE_EQ(projected[0U], 1.0) | EXPECT_DOUBLE_EQ(projection_center[0U], projected[0U]) | EXPECT_GT(projection_radius[0U], 0.0) | EXPECT_DOUBLE_EQ(lifted[0U], 1.0) | EXPECT_DOUBLE_EQ(replay.center[0U], lifted[0U]) | EXPECT_DOUBLE_EQ(plain, 0.0) | EXPECT_GE(target_radius, 0.25) | EXPECT_DOUBLE_EQ(small_replay.center[0U], small_lifted[0U]) | EXPECT_DOUBLE_EQ(small_replay.center[0U], 1.0) | ASSERT_LT(small_replay.radius[0U], 0.25) | EXPECT_GE(small_target_radius, 0.25) EXPECT_DOUBLE_EQ(projected[0U], 1.0) | EXPECT_DOUBLE_EQ(projection_center[0U], projected[0U]) | EXPECT_GT(projection_radius[0U], 0.0) | EXPECT_DOUBLE_EQ(lifted[0U], 1.0) | EXPECT_DOUBLE_EQ(replay.center[0U], lifted[0U]) | EXPECT_DOUBLE_EQ(plain, 0.0) | EXPECT_GE(target_radius, 0.25) | EXPECT_DOUBLE_EQ(small_replay.center[0U], small_lifted[0U]) | EXPECT_DOUBLE_EQ(small_replay.center[0U], 1.0) | ASSERT_LT(small_replay.radius[0U], 0.25) | EXPECT_GE(small_target_radius, 0.25) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisLiftedAlgorithmicCorrectionUsesHhtFilterFactor HhtShellPhysics.BasisLiftedAlgorithmicCorrectionUsesHhtFilterFactor; assertion 3개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisLiftedAlgorithmicCorrectionUsesHhtFilterFactor 유지 원문 검사 body 및 assertion 동일. 1135c210293ec3de4a84aed758353386e122ef4db703182ee03e2b48fca4340c 1135c210293ec3de4a84aed758353386e122ef4db703182ee03e2b48fca4340c EXPECT_NEAR(projected[0U], delta_ar, 1.0e-15) | ASSERT_GT(omission_scale, 0.0) | EXPECT_GT(std::abs(omitted[0U] - delta_ar) / omission_scale, 1.0e-12) EXPECT_NEAR(projected[0U], delta_ar, 1.0e-15) | ASSERT_GT(omission_scale, 0.0) | EXPECT_GT(std::abs(omitted[0U] - delta_ar) / omission_scale, 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.CarriedArRadiiIncludeAbsorbedUpdatesAndInputHistory HhtShellPhysics.CarriedArRadiiIncludeAbsorbedUpdatesAndInputHistory; assertion 10개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.CarriedArRadiiIncludeAbsorbedUpdatesAndInputHistory 유지 원문 검사 body 및 assertion 동일. b6ca11dc0cf68db6fc9d0a966480453e8c85dff9d3588962557189cb91cf455b b6ca11dc0cf68db6fc9d0a966480453e8c85dff9d3588962557189cb91cf455b ASSERT_EQ(std::fegetround(), FE_TONEAREST) | ASSERT_DOUBLE_EQ(doubled, 2.0 * std::numeric_limits::denorm_min()) | ASSERT_DOUBLE_EQ(rounded, 1.0) | EXPECT_GE(first, tiny) | EXPECT_GT(second, first) | EXPECT_GE(second, 2.0 * tiny) | EXPECT_GE(ProductRadius(2.0, tiny, 4.0, tiny), 6.0 * tiny) | EXPECT_GE(QuotientRadius(1.0, tiny, 2.0, 0.0), 0.5 * tiny) | EXPECT_THROW(QuotientRadius(1.0, 0.0, 1.0, 1.0), std::runtime_error) | EXPECT_TRUE(std::isinf(AddRadius(std::numeric_limits::max(), std::numeric_limits::max(), 0.0))) ASSERT_EQ(std::fegetround(), FE_TONEAREST) | ASSERT_DOUBLE_EQ(doubled, 2.0 * std::numeric_limits::denorm_min()) | ASSERT_DOUBLE_EQ(rounded, 1.0) | EXPECT_GE(first, tiny) | EXPECT_GT(second, first) | EXPECT_GE(second, 2.0 * tiny) | EXPECT_GE(ProductRadius(2.0, tiny, 4.0, tiny), 6.0 * tiny) | EXPECT_GE(QuotientRadius(1.0, tiny, 2.0, 0.0), 0.5 * tiny) | EXPECT_THROW(QuotientRadius(1.0, 0.0, 1.0, 1.0), std::runtime_error) | EXPECT_TRUE(std::isinf(AddRadius(std::numeric_limits::max(), std::numeric_limits::max(), 0.0))) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.PrimaryCoordinateRetainsCorrectionAbsorbedByCarriedAr HhtShellPhysics.PrimaryCoordinateRetainsCorrectionAbsorbedByCarriedAr; assertion 6개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.PrimaryCoordinateRetainsCorrectionAbsorbedByCarriedAr 유지 원문 검사 body 및 assertion 동일. 4b84aaf12146380cfb61eeebe617e119bce3a1155aa3ea45d9c020bda2c1cb42 4b84aaf12146380cfb61eeebe617e119bce3a1155aa3ea45d9c020bda2c1cb42 EXPECT_DOUBLE_EQ(pp + factor * next_ar, initial_p) | EXPECT_GT(next_p, initial_p) | EXPECT_DOUBLE_EQ(next_p - initial_p, delta_p) | EXPECT_LE(std::abs(next_p - (pp + factor * next_ar)) / scale, 1.0e-12) | EXPECT_GT(first_radius, inherited_radius) | EXPECT_GT(AddRadius(next_p + delta_p, first_radius, 0.0), first_radius) EXPECT_DOUBLE_EQ(pp + factor * next_ar, initial_p) | EXPECT_GT(next_p, initial_p) | EXPECT_DOUBLE_EQ(next_p - initial_p, delta_p) | EXPECT_LE(std::abs(next_p - (pp + factor * next_ar)) / scale, 1.0e-12) | EXPECT_GT(first_radius, inherited_radius) | EXPECT_GT(AddRadius(next_p + delta_p, first_radius, 0.0), first_radius) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.CompensatedCoordinateRetainsAbsorbedNewtonCorrections HhtShellPhysics.CompensatedCoordinateRetainsAbsorbedNewtonCorrections; assertion 12개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.CompensatedCoordinateRetainsAbsorbedNewtonCorrections 유지 원문 검사 body 및 assertion 동일. f9679eaf06ac657dba93fb8d8bcd5d4b9942deb7d677c1fe4ffe86fc6f7fd072 f9679eaf06ac657dba93fb8d8bcd5d4b9942deb7d677c1fe4ffe86fc6f7fd072 EXPECT_DOUBLE_EQ(high, 1.0) | EXPECT_DOUBLE_EQ(low, delta) | EXPECT_DOUBLE_EQ(high, 1.0 + std::ldexp(1.0, -52)) | EXPECT_DOUBLE_EQ(low, 0.0) | EXPECT_GT(radius, inherited_radius) | EXPECT_GE(UpSum(radius, std::abs(low)), inherited_radius) | EXPECT_DOUBLE_EQ(high, 1.0 + std::ldexp(1.0, -52)) | EXPECT_DOUBLE_EQ(low, -delta) | EXPECT_DOUBLE_EQ(high, 2.0 * std::numeric_limits::denorm_min()) | EXPECT_DOUBLE_EQ(low, 0.0) | EXPECT_FALSE(std::isfinite(high)) | EXPECT_FALSE(std::isfinite(radius)) EXPECT_DOUBLE_EQ(high, 1.0) | EXPECT_DOUBLE_EQ(low, delta) | EXPECT_DOUBLE_EQ(high, 1.0 + std::ldexp(1.0, -52)) | EXPECT_DOUBLE_EQ(low, 0.0) | EXPECT_GT(radius, inherited_radius) | EXPECT_GE(UpSum(radius, std::abs(low)), inherited_radius) | EXPECT_DOUBLE_EQ(high, 1.0 + std::ldexp(1.0, -52)) | EXPECT_DOUBLE_EQ(low, -delta) | EXPECT_DOUBLE_EQ(high, 2.0 * std::numeric_limits::denorm_min()) | EXPECT_DOUBLE_EQ(low, 0.0) | EXPECT_FALSE(std::isfinite(high)) | EXPECT_FALSE(std::isfinite(radius)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.FrozenGraphIndicatorIncludesCoordinateAndRateCurvature HhtShellPhysics.FrozenGraphIndicatorIncludesCoordinateAndRateCurvature; assertion 8개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.FrozenGraphIndicatorIncludesCoordinateAndRateCurvature 유지 원문 검사 body 및 assertion 동일. 5f98ecd78623006a570c8acf4c252ad547abf5c9d490d0888e9ec4ccb39baa08 5f98ecd78623006a570c8acf4c252ad547abf5c9d490d0888e9ec4ccb39baa08 EXPECT_GE(indicator.coordinates[1U], 2.0e-6) | EXPECT_GE(indicator.velocity[1U], 2.0e-6 + 2.0e-7) | EXPECT_GE(indicator.acceleration[1U], 4.0e-6 + 4.0e-7 + 2.0e-8) | EXPECT_TRUE(std::isfinite(indicator.acceleration[1U])) | EXPECT_GE(indicator.algorithmic_acceleration[1U], (1.0 + parameters.alpha) * indicator.acceleration[1U]) | EXPECT_TRUE(std::isinf(unresolved.coordinates[1U])) | EXPECT_TRUE(std::isinf(unresolved.velocity[1U])) | EXPECT_TRUE(std::isinf(unresolved.acceleration[1U])) EXPECT_GE(indicator.coordinates[1U], 2.0e-6) | EXPECT_GE(indicator.velocity[1U], 2.0e-6 + 2.0e-7) | EXPECT_GE(indicator.acceleration[1U], 4.0e-6 + 4.0e-7 + 2.0e-8) | EXPECT_TRUE(std::isfinite(indicator.acceleration[1U])) | EXPECT_GE(indicator.algorithmic_acceleration[1U], (1.0 + parameters.alpha) * indicator.acceleration[1U]) | EXPECT_TRUE(std::isinf(unresolved.coordinates[1U])) | EXPECT_TRUE(std::isinf(unresolved.velocity[1U])) | EXPECT_TRUE(std::isinf(unresolved.acceleration[1U])) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.GraphBasisCertificateBoundsMatrixAndRhsPerturbations HhtShellPhysics.GraphBasisCertificateBoundsMatrixAndRhsPerturbations; assertion 13개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.GraphBasisCertificateBoundsMatrixAndRhsPerturbations 유지 원문 검사 body 및 assertion 동일. d620963924f330ab1f029380440d739230f3c3341475bcdbf97a3453f7fe5339 d620963924f330ab1f029380440d739230f3c3341475bcdbf97a3453f7fe5339 ASSERT_TRUE(inverse.complete) | EXPECT_LE(std::abs(actual[0U] - center[0U]), bound[0U]) | EXPECT_GT(bound[0U], 0.0) | EXPECT_GE(centered[0U], std::ldexp(1.0, -30)) | EXPECT_EQ(UpProduct(0.0, std::numeric_limits::infinity()), 0.0) | EXPECT_TRUE(std::isinf(UpProduct(0.0, std::numeric_limits::quiet_NaN()))) | EXPECT_FALSE(CertifyGraphInverse(products, &solver).complete) | EXPECT_THROW(BoundGraphSolution(products, inverse, rhs, fesa::Vector(1U), center), std::runtime_error) | ASSERT_TRUE(inverse.complete) | EXPECT_LE(std::abs(actual[i] - center[i]), bound[i]) | EXPECT_GT(bound[i], 9.0) | ASSERT_TRUE(invalid_inverse.complete) | EXPECT_THROW(BoundGraphSolution(products, invalid_inverse, rhs, fesa::Vector(4U), center), std::runtime_error) ASSERT_TRUE(inverse.complete) | EXPECT_LE(std::abs(actual[0U] - center[0U]), bound[0U]) | EXPECT_GT(bound[0U], 0.0) | EXPECT_GE(centered[0U], std::ldexp(1.0, -30)) | EXPECT_EQ(UpProduct(0.0, std::numeric_limits::infinity()), 0.0) | EXPECT_TRUE(std::isinf(UpProduct(0.0, std::numeric_limits::quiet_NaN()))) | EXPECT_FALSE(CertifyGraphInverse(products, &solver).complete) | EXPECT_THROW(BoundGraphSolution(products, inverse, rhs, fesa::Vector(1U), center), std::runtime_error) | ASSERT_TRUE(inverse.complete) | EXPECT_LE(std::abs(actual[i] - center[i]), bound[i]) | EXPECT_GT(bound[i], 9.0) | ASSERT_TRUE(invalid_inverse.complete) | EXPECT_THROW(BoundGraphSolution(products, invalid_inverse, rhs, fesa::Vector(4U), center), std::runtime_error) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.RestrictedLastSolvePreservesOmittedTranslationDefect HhtShellPhysics.RestrictedLastSolvePreservesOmittedTranslationDefect; assertion 10개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.RestrictedLastSolvePreservesOmittedTranslationDefect 유지 원문 검사 body 및 assertion 동일. c779af538471833c822bd7697c9114c63dcca6dbaa3ba7953dd8abadf7c306f2 c779af538471833c822bd7697c9114c63dcca6dbaa3ba7953dd8abadf7c306f2 ASSERT_TRUE(reduced::ShouldRefineAngular(chart, {0.0, 1.0}, {0.0, 0.0, 0.0, 0.0}, true)) | ASSERT_TRUE(selected.angular_only) | ASSERT_EQ(selected.full_indices, std::vector({1U})) | EXPECT_EQ(embedded[0U], 0.0) | EXPECT_EQ(embedded[1U], 1.0) | EXPECT_EQ(selected_residual[0U] - selected.rhs[0U], 0.0) | EXPECT_EQ(full_defect[0U], -2.0) | EXPECT_EQ(full_defect[1U], 0.0) | EXPECT_GT(std::abs(full_model[0U]), 0.0) | EXPECT_GT(std::abs(full_model[1U]), 0.0) ASSERT_TRUE(reduced::ShouldRefineAngular(chart, {0.0, 1.0}, {0.0, 0.0, 0.0, 0.0}, true)) | ASSERT_TRUE(selected.angular_only) | ASSERT_EQ(selected.full_indices, std::vector({1U})) | EXPECT_EQ(embedded[0U], 0.0) | EXPECT_EQ(embedded[1U], 1.0) | EXPECT_EQ(selected_residual[0U] - selected.rhs[0U], 0.0) | EXPECT_EQ(full_defect[0U], -2.0) | EXPECT_EQ(full_defect[1U], 0.0) | EXPECT_GT(std::abs(full_model[0U]), 0.0) | EXPECT_GT(std::abs(full_model[1U]), 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.RestrictedRecordNoiseIncludesFullModelOmittedUDefect HhtShellPhysics.RestrictedRecordNoiseIncludesFullModelOmittedUDefect; assertion 6개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.RestrictedRecordNoiseIncludesFullModelOmittedUDefect 유지 원문 검사 body 및 assertion 동일. 2deecf4d898da2c40d311b18173e7ae7a11f75f87024cc2f64e1cf63d0caedd1 2deecf4d898da2c40d311b18173e7ae7a11f75f87024cc2f64e1cf63d0caedd1 ASSERT_LT(u, chart.p_columns.size()) | ASSERT_LT(angular, chart.p_columns.size()) | ASSERT_EQ(restricted_selected.full_indices, baseline_selected.full_indices) | ASSERT_NE(full_defect[u], 0.0) | EXPECT_GT(mapped_model.coordinate.Norm(), 0.0) | EXPECT_GT(restricted_noise, baseline_noise) ASSERT_LT(u, chart.p_columns.size()) | ASSERT_LT(angular, chart.p_columns.size()) | ASSERT_EQ(restricted_selected.full_indices, baseline_selected.full_indices) | ASSERT_NE(full_defect[u], 0.0) | EXPECT_GT(mapped_model.coordinate.Norm(), 0.0) | EXPECT_GT(restricted_noise, baseline_noise) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ReducedManufacturedControllerKeepsExactInitialOrbit HhtShellPhysics.ReducedManufacturedControllerKeepsExactInitialOrbit; assertion 16개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ReducedManufacturedControllerKeepsExactInitialOrbit 유지 원문 검사 body 및 assertion 동일. 9bc51b902d77a1dbb6f75c292ca75f05e1bf8beb71bc73aef1176005d73804fd 9bc51b902d77a1dbb6f75c292ca75f05e1bf8beb71bc73aef1176005d73804fd ASSERT_EQ(grid.history.size(), 65U) | EXPECT_DOUBLE_EQ(grid.history.front().generalized_coordinates[i], exact.generalized_coordinates[i]) | EXPECT_DOUBLE_EQ(grid.history.front().velocity[i], exact.velocity[i]) | EXPECT_DOUBLE_EQ(grid.history.front().acceleration[i], exact.acceleration[i]) | EXPECT_DOUBLE_EQ(grid.history.front().algorithmic_acceleration[i], exact.acceleration[i]) | EXPECT_DOUBLE_EQ(frame.time, static_cast(index) / 64.0) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.generalized_coordinates.Size(), fixture.dofs.FullDofCount()) | EXPECT_EQ(frame.velocity.Size(), fixture.dofs.FullDofCount()) | EXPECT_EQ(frame.acceleration.Size(), fixture.dofs.FullDofCount()) | EXPECT_TRUE(std::isfinite((*channel)[i])) | EXPECT_LE(residual, 1.0e-10) | EXPECT_TRUE(std::isfinite((*defect)[i])) | EXPECT_EQ(grid.history.back().time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_DOUBLE_EQ(grid.history.back().time, 1.0) | EXPECT_GT(grid.maximum_rotation, 0.5) ASSERT_EQ(grid.history.size(), 65U) | EXPECT_DOUBLE_EQ(grid.history.front().generalized_coordinates[i], exact.generalized_coordinates[i]) | EXPECT_DOUBLE_EQ(grid.history.front().velocity[i], exact.velocity[i]) | EXPECT_DOUBLE_EQ(grid.history.front().acceleration[i], exact.acceleration[i]) | EXPECT_DOUBLE_EQ(grid.history.front().algorithmic_acceleration[i], exact.acceleration[i]) | EXPECT_DOUBLE_EQ(frame.time, static_cast(index) / 64.0) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.generalized_coordinates.Size(), fixture.dofs.FullDofCount()) | EXPECT_EQ(frame.velocity.Size(), fixture.dofs.FullDofCount()) | EXPECT_EQ(frame.acceleration.Size(), fixture.dofs.FullDofCount()) | EXPECT_TRUE(std::isfinite((*channel)[i])) | EXPECT_LE(residual, 1.0e-10) | EXPECT_TRUE(std::isfinite((*defect)[i])) | EXPECT_EQ(grid.history.back().time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_DOUBLE_EQ(grid.history.back().time, 1.0) | EXPECT_GT(grid.maximum_rotation, 0.5) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08aRigidManufacturedOrbitReducedCoordinateTimeConvergence HhtShellPhysics.C08aRigidManufacturedOrbitReducedCoordinateTimeConvergence; assertion 15개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08aRigidManufacturedOrbitReducedCoordinateTimeConvergence 유지 원문 검사 body 및 assertion 동일. 19dc62f139091fea4190eb7e7034119c9b725c4e46570f8acb6af9d590471c22 19dc62f139091fea4190eb7e7034119c9b725c4e46570f8acb6af9d590471c22 EXPECT_GT(grid.maximum_rotation, 0.5) | ASSERT_EQ(frame.hidden_velocity_defect.Size(), fixture.domain->Nodes().size()) | ASSERT_EQ(frame.hidden_velocity_defect_scale.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_EQ(frame.hidden_acceleration_defect.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_EQ(frame.hidden_acceleration_defect_scale.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_TRUE(std::isfinite(values.first)) | ASSERT_TRUE(std::isfinite(values.second)) | ASSERT_GE(values.second, 0.0) | EXPECT_DOUBLE_EQ(values.first, 0.0) | EXPECT_LE(std::abs(values.first) / values.second, 1.0e-10) | EXPECT_LE(errors.back()[channel], 1.0e-4) | ASSERT_GT(errors[grid][channel], 0.0) | ASSERT_GT(errors[grid + 1U][channel], 0.0) | EXPECT_GE(std::log2(errors[grid][channel] / errors[grid + 1U][channel]), 1.8) | EXPECT_GT(errors[grid][channel], 100.0 * std::max(grids[grid].solve_noise[channel], grids[grid].arithmetic_noise[channel])) EXPECT_GT(grid.maximum_rotation, 0.5) | ASSERT_EQ(frame.hidden_velocity_defect.Size(), fixture.domain->Nodes().size()) | ASSERT_EQ(frame.hidden_velocity_defect_scale.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_EQ(frame.hidden_acceleration_defect.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_EQ(frame.hidden_acceleration_defect_scale.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_TRUE(std::isfinite(values.first)) | ASSERT_TRUE(std::isfinite(values.second)) | ASSERT_GE(values.second, 0.0) | EXPECT_DOUBLE_EQ(values.first, 0.0) | EXPECT_LE(std::abs(values.first) / values.second, 1.0e-10) | EXPECT_LE(errors.back()[channel], 1.0e-4) | ASSERT_GT(errors[grid][channel], 0.0) | ASSERT_GT(errors[grid + 1U][channel], 0.0) | EXPECT_GE(std::log2(errors[grid][channel] / errors[grid + 1U][channel]), 1.8) | EXPECT_GT(errors[grid][channel], 100.0 * std::max(grids[grid].solve_noise[channel], grids[grid].arithmetic_noise[channel])) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08bInitialPhysicalSpectrumProbe HhtShellPhysics.C08bInitialPhysicalSpectrumProbe; assertion 4개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08bInitialPhysicalSpectrumProbe 유지 원문 검사 body 및 assertion 동일. 7673da377048ad5e617480ff75b5ef812d216306aa82ee6bd55e576582ea3551 7673da377048ad5e617480ff75b5ef812d216306aa82ee6bd55e576582ea3551 ASSERT_EQ(matrix.Rows(), 54U) | ASSERT_EQ(matrix.Columns(), 54U) | ASSERT_EQ(matrix.RowOffsets().size(), 55U) | ASSERT_LT(column, values.size()) ASSERT_EQ(matrix.Rows(), 54U) | ASSERT_EQ(matrix.Columns(), 54U) | ASSERT_EQ(matrix.RowOffsets().size(), 55U) | ASSERT_LT(column, values.size()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.PredictorStartCompletesPreviouslyFailingLumpedFreePlateGrid HhtShellPhysics.PredictorStartCompletesPreviouslyFailingLumpedFreePlateGrid; assertion 4개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.PredictorStartCompletesPreviouslyFailingLumpedFreePlateGrid 유지 원문 검사 body 및 assertion 동일. 874c85b16464eb1986a4f6579949282d69aec903ef832d63d9212c6eb545d4f0 874c85b16464eb1986a4f6579949282d69aec903ef832d63d9212c6eb545d4f0 ASSERT_EQ(evidence.history.size(), 65U) | EXPECT_DOUBLE_EQ(evidence.history.back().time, kEndTime) | EXPECT_GE(evidence.maximum_rotation, 0.2) | EXPECT_LT(evidence.maximum_rotation, std::acos(-1.0)) ASSERT_EQ(evidence.history.size(), 65U) | EXPECT_DOUBLE_EQ(evidence.history.back().time, kEndTime) | EXPECT_GE(evidence.maximum_rotation, 0.2) | EXPECT_LT(evidence.maximum_rotation, std::acos(-1.0)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08bFreeFiniteRotationPlateSelfConvergenceAndPhysicalInvariants HhtShellPhysics.C08bFreeFiniteRotationPlateSelfConvergenceAndPhysicalInvariants; assertion 11개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08bFreeFiniteRotationPlateSelfConvergenceAndPhysicalInvariants 유지 원문 검사 body 및 assertion 동일. 33dea1e6e2f44f6945fb386065b0319493f3658f049437474babe90c53736d20 33dea1e6e2f44f6945fb386065b0319493f3658f049437474babe90c53736d20 EXPECT_GE(grids.back().maximum_rotation, 0.2) | EXPECT_LE(differences.back()[channel], 1.0e-4) | ASSERT_GT(first, 0.0) | ASSERT_GT(second, 0.0) | EXPECT_GE(first / second, threshold) | EXPECT_GT(differences[pair][channel], 100.0 * noise) | EXPECT_LT(grids[final - 1U].*member, grids[final - 2U].*member) | EXPECT_LT(grids[final].*member, grids[final - 1U].*member) | EXPECT_LE(grids[final].*member, 0.6 * (grids[final - 1U].*member)) | EXPECT_LE(grids[final].*member, 1.0e-3) | EXPECT_LE(grids.back().momentum_error, 1.0e-3) EXPECT_GE(grids.back().maximum_rotation, 0.2) | EXPECT_LE(differences.back()[channel], 1.0e-4) | ASSERT_GT(first, 0.0) | ASSERT_GT(second, 0.0) | EXPECT_GE(first / second, threshold) | EXPECT_GT(differences[pair][channel], 100.0 * noise) | EXPECT_LT(grids[final - 1U].*member, grids[final - 2U].*member) | EXPECT_LT(grids[final].*member, grids[final - 1U].*member) | EXPECT_LE(grids[final].*member, 0.6 * (grids[final - 1U].*member)) | EXPECT_LE(grids[final].*member, 1.0e-3) | EXPECT_LE(grids.back().momentum_error, 1.0e-3) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.FrozenNearestCoordinatesPassPairArithmeticWithoutChangingHigh HhtReducedIncrement.FrozenNearestCoordinatesPassPairArithmeticWithoutChangingHigh; assertion 7개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.FrozenNearestCoordinatesPassPairArithmeticWithoutChangingHigh 유지 원문 검사 body 및 assertion 동일. ba5a3f724636ab75d38249cfc9c5583f72f8a08b3c0d67109c843892031a85d2 ba5a3f724636ab75d38249cfc9c5583f72f8a08b3c0d67109c843892031a85d2 EXPECT_TRUE(first.storage_pass) | EXPECT_TRUE(first.arithmetic_pass) | EXPECT_EQ(first.defect, 0.0) | EXPECT_TRUE(worst.storage_pass) | EXPECT_TRUE(worst.arithmetic_pass) | EXPECT_EQ(worst.defect, 0.0) | EXPECT_FALSE(missing_low.arithmetic_pass) EXPECT_TRUE(first.storage_pass) | EXPECT_TRUE(first.arithmetic_pass) | EXPECT_EQ(first.defect, 0.0) | EXPECT_TRUE(worst.storage_pass) | EXPECT_TRUE(worst.arithmetic_pass) | EXPECT_EQ(worst.defect, 0.0) | EXPECT_FALSE(missing_low.arithmetic_pass) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.StorageRequiresNearestEvenIncludingBothMidpointDirections HhtReducedIncrement.StorageRequiresNearestEvenIncludingBothMidpointDirections; assertion 8개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.StorageRequiresNearestEvenIncludingBothMidpointDirections 유지 원문 검사 body 및 assertion 동일. 01ead07c8dcec86cc541b6c45ad646cb7c1d2dd4d9eef28ba89436d7082a2954 01ead07c8dcec86cc541b6c45ad646cb7c1d2dd4d9eef28ba89436d7082a2954 EXPECT_TRUE(reduced::CheckPairIncrement(1.0, half_upper_spacing, 1.0, {half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(reduced::CheckPairIncrement(1.0, -std::ldexp(1.0, -54), 1.0, {-std::ldexp(1.0, -54)}, std::ldexp(1.0, -54)).storage_pass) | EXPECT_TRUE(reduced::CheckPairIncrement(-1.0, -half_upper_spacing, -1.0, {-half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(odd_tie.arithmetic_pass) | EXPECT_FALSE(odd_tie.storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(-odd, half_upper_spacing, -1.0, {-half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(misplaced_high.arithmetic_pass) | EXPECT_FALSE(misplaced_high.storage_pass) EXPECT_TRUE(reduced::CheckPairIncrement(1.0, half_upper_spacing, 1.0, {half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(reduced::CheckPairIncrement(1.0, -std::ldexp(1.0, -54), 1.0, {-std::ldexp(1.0, -54)}, std::ldexp(1.0, -54)).storage_pass) | EXPECT_TRUE(reduced::CheckPairIncrement(-1.0, -half_upper_spacing, -1.0, {-half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(odd_tie.arithmetic_pass) | EXPECT_FALSE(odd_tie.storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(-odd, half_upper_spacing, -1.0, {-half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(misplaced_high.arithmetic_pass) | EXPECT_FALSE(misplaced_high.storage_pass) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.WholeUpdateAndIndependentTraceRejectMissingCorrection HhtReducedIncrement.WholeUpdateAndIndependentTraceRejectMissingCorrection; assertion 5개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.WholeUpdateAndIndependentTraceRejectMissingCorrection 유지 원문 검사 body 및 assertion 동일. 262933302f3210cf4380812f75addf653e952d4ba8595c66d7d3b5772c59b6b5 262933302f3210cf4380812f75addf653e952d4ba8595c66d7d3b5772c59b6b5 EXPECT_TRUE(valid_whole.arithmetic_pass && valid_whole.storage_pass) | EXPECT_TRUE(valid_trace.arithmetic_pass && valid_trace.storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, correction, 1.0, {correction, 0.0, correction}, 2.0 * correction).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, correction, 1.0, {2.0 * correction, 0.0}, 2.0 * correction).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, -2.0 * correction, 1.0, {2.0 * correction, 0.0}, 2.0 * correction).arithmetic_pass) EXPECT_TRUE(valid_whole.arithmetic_pass && valid_whole.storage_pass) | EXPECT_TRUE(valid_trace.arithmetic_pass && valid_trace.storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, correction, 1.0, {correction, 0.0, correction}, 2.0 * correction).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, correction, 1.0, {2.0 * correction, 0.0}, 2.0 * correction).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, -2.0 * correction, 1.0, {2.0 * correction, 0.0}, 2.0 * correction).arithmetic_pass) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.ExactThresholdRejectsTailHiddenByRoundedRatio HhtReducedIncrement.ExactThresholdRejectsTailHiddenByRoundedRatio; assertion 8개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.ExactThresholdRejectsTailHiddenByRoundedRatio 유지 원문 검사 body 및 assertion 동일. a91408b59790f93c59b20fc737d66f81ae8f8cfe1e8502b13836b5ad0efbb24e a91408b59790f93c59b20fc737d66f81ae8f8cfe1e8502b13836b5ad0efbb24e EXPECT_TRUE(equality.arithmetic_pass) | EXPECT_EQ(above.ratio, threshold) | EXPECT_FALSE(above.arithmetic_pass) | EXPECT_EQ(above_decimal.ratio, threshold) | EXPECT_FALSE(above_decimal.arithmetic_pass) | EXPECT_TRUE(below.arithmetic_pass) | EXPECT_TRUE(maximum.arithmetic_pass) | EXPECT_FALSE(unsupported.arithmetic_pass) EXPECT_TRUE(equality.arithmetic_pass) | EXPECT_EQ(above.ratio, threshold) | EXPECT_FALSE(above.arithmetic_pass) | EXPECT_EQ(above_decimal.ratio, threshold) | EXPECT_FALSE(above_decimal.arithmetic_pass) | EXPECT_TRUE(below.arithmetic_pass) | EXPECT_TRUE(maximum.arithmetic_pass) | EXPECT_FALSE(unsupported.arithmetic_pass) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.ZeroScaleAndSubnormalArithmeticRemainExact HhtReducedIncrement.ZeroScaleAndSubnormalArithmeticRemainExact; assertion 8개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.ZeroScaleAndSubnormalArithmeticRemainExact 유지 원문 검사 body 및 assertion 동일. 6c6c8a54ef0f513faca05e189ae080d712597fbe859edf9c0df7169058d7086d 6c6c8a54ef0f513faca05e189ae080d712597fbe859edf9c0df7169058d7086d EXPECT_TRUE(zero.arithmetic_pass && zero.storage_pass) | EXPECT_TRUE(fixed_zero.arithmetic_pass && fixed_zero.storage_pass) | EXPECT_TRUE(tiny_valid.arithmetic_pass && tiny_valid.storage_pass) | EXPECT_EQ(tiny_valid.defect, 0.0) | EXPECT_TRUE(tiny_nonzero.storage_pass) | EXPECT_FALSE(tiny_nonzero.arithmetic_pass) | EXPECT_EQ(tiny_nonzero.defect, tiny) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, tiny, 0.0, {tiny}, tiny).storage_pass) EXPECT_TRUE(zero.arithmetic_pass && zero.storage_pass) | EXPECT_TRUE(fixed_zero.arithmetic_pass && fixed_zero.storage_pass) | EXPECT_TRUE(tiny_valid.arithmetic_pass && tiny_valid.storage_pass) | EXPECT_EQ(tiny_valid.defect, 0.0) | EXPECT_TRUE(tiny_nonzero.storage_pass) | EXPECT_FALSE(tiny_nonzero.arithmetic_pass) | EXPECT_EQ(tiny_nonzero.defect, tiny) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, tiny, 0.0, {tiny}, tiny).storage_pass) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.NonfiniteAndOverflowFailBeforeAcceptance HhtReducedIncrement.NonfiniteAndOverflowFailBeforeAcceptance; assertion 9개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.NonfiniteAndOverflowFailBeforeAcceptance 유지 원문 검사 body 및 assertion 동일. fb5fe44c1510d94b22e68a48f545271af54787ba6f38e7d57105f584b02eda1f fb5fe44c1510d94b22e68a48f545271af54787ba6f38e7d57105f584b02eda1f EXPECT_FALSE(reduced::CheckPairIncrement(invalid, 0.0, 0.0, {0.0}, 0.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, invalid, 0.0, {0.0}, 0.0).storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, invalid, {0.0}, 0.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, 0.0, {invalid}, 1.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, 0.0, {0.0}, invalid).arithmetic_pass) | EXPECT_FALSE(overflow.arithmetic_pass) | EXPECT_FALSE(overflow.storage_pass) | EXPECT_FALSE(unsupported.arithmetic_pass) | EXPECT_FALSE(unsupported.storage_pass) EXPECT_FALSE(reduced::CheckPairIncrement(invalid, 0.0, 0.0, {0.0}, 0.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, invalid, 0.0, {0.0}, 0.0).storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, invalid, {0.0}, 0.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, 0.0, {invalid}, 1.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, 0.0, {0.0}, invalid).arithmetic_pass) | EXPECT_FALSE(overflow.arithmetic_pass) | EXPECT_FALSE(overflow.storage_pass) | EXPECT_FALSE(unsupported.arithmetic_pass) | EXPECT_FALSE(unsupported.storage_pass) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedLifecycle.AllowsEvaluationAfterCorrection100ButNeverCorrection101 HhtReducedLifecycle.AllowsEvaluationAfterCorrection100ButNeverCorrection101; assertion 7개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedLifecycle.AllowsEvaluationAfterCorrection100ButNeverCorrection101 유지 원문 검사 body 및 assertion 동일. 60a86b1cfb0b9cc5f37aec09bacc49496468028cdff28ddf5010a1f482add364 60a86b1cfb0b9cc5f37aec09bacc49496468028cdff28ddf5010a1f482add364 EXPECT_TRUE(CanApplyOuterCorrection(0U)) | EXPECT_TRUE(CanApplyOuterCorrection(99U)) | EXPECT_FALSE(CanApplyOuterCorrection(100U)) | EXPECT_FALSE(CanApplyOuterCorrection(101U)) | EXPECT_EQ(corrections, 100U) | EXPECT_EQ(last_evaluation, 100U) | EXPECT_EQ(accepted, accept_at_100) EXPECT_TRUE(CanApplyOuterCorrection(0U)) | EXPECT_TRUE(CanApplyOuterCorrection(99U)) | EXPECT_FALSE(CanApplyOuterCorrection(100U)) | EXPECT_FALSE(CanApplyOuterCorrection(101U)) | EXPECT_EQ(corrections, 100U) | EXPECT_EQ(last_evaluation, 100U) | EXPECT_EQ(accepted, accept_at_100) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedLifecycle.FailedExecutionDoesNotPublishCandidateOrContaminateRetry HhtReducedLifecycle.FailedExecutionDoesNotPublishCandidateOrContaminateRetry; assertion 18개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedLifecycle.FailedExecutionDoesNotPublishCandidateOrContaminateRetry 유지 원문 검사 body 및 assertion 동일. 200703a9b2cc195cf471123955a0f052d0732809a02789d894ab9df46002879a 200703a9b2cc195cf471123955a0f052d0732809a02789d894ab9df46002879a "ASSERT_TRUE(baseline.HasValue()) | ASSERT_EQ(baseline.Value().state.AcceptedFrames().size(), 3U) | EXPECT_GT(baseline.Value().state.AcceptedFrames()[1U].generalized_coordinates[0U], 0.0) | ASSERT_FALSE(failed.HasValue()) | EXPECT_EQ(failing.failures, 1U) | EXPECT_EQ(failed.GetStatus().Diagnostics().front().code, ""c10-injected-backend"") | EXPECT_NE(partial_log.find(""\tincrement=2\t""), std::string::npos) | EXPECT_NE(partial_log.find(""\toutcome=failed""), std::string::npos) | EXPECT_NE(ReadLifecycleLog(baseline_path).find(line + '\n'), std::string::npos) | EXPECT_EQ(line.find(""\tincrement=2\t""), std::string::npos) | ASSERT_TRUE(retry.HasValue()) | ASSERT_EQ(actual.size(), expected.size()) | EXPECT_EQ(actual[frame].frame_index, expected[frame].frame_index) | EXPECT_EQ(actual[frame].iteration_count, expected[frame].iteration_count) | EXPECT_EQ(actual[frame].time, expected[frame].time) | ASSERT_EQ(left.Size(), right.Size()) | EXPECT_EQ(left[i], right[i]) | EXPECT_EQ(ReadLifecycleLog(retry_path), ReadLifecycleLog(baseline_path))" "ASSERT_TRUE(baseline.HasValue()) | ASSERT_EQ(baseline.Value().state.AcceptedFrames().size(), 3U) | EXPECT_GT(baseline.Value().state.AcceptedFrames()[1U].generalized_coordinates[0U], 0.0) | ASSERT_FALSE(failed.HasValue()) | EXPECT_EQ(failing.failures, 1U) | EXPECT_EQ(failed.GetStatus().Diagnostics().front().code, ""c10-injected-backend"") | EXPECT_NE(partial_log.find(""\tincrement=2\t""), std::string::npos) | EXPECT_NE(partial_log.find(""\toutcome=failed""), std::string::npos) | EXPECT_NE(ReadLifecycleLog(baseline_path).find(line + '\n'), std::string::npos) | EXPECT_EQ(line.find(""\tincrement=2\t""), std::string::npos) | ASSERT_TRUE(retry.HasValue()) | ASSERT_EQ(actual.size(), expected.size()) | EXPECT_EQ(actual[frame].frame_index, expected[frame].frame_index) | EXPECT_EQ(actual[frame].iteration_count, expected[frame].iteration_count) | EXPECT_EQ(actual[frame].time, expected[frame].time) | ASSERT_EQ(left.Size(), right.Size()) | EXPECT_EQ(left[i], right[i]) | EXPECT_EQ(ReadLifecycleLog(retry_path), ReadLifecycleLog(baseline_path))" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_shell_physics_test.cpp support@1-528 helper/oracle/fixture/include/static assertion 구간: Message, Require, Add, Scale, Cross, Dot, Norm, Triple, Coordinates, Store, Fixture, MakeFixture, if, EmptyFrame, Evaluate, VolumeOracle, Integrate, OrbitChart, RigidOrbit, OrbitPhysicalRates, RigidForceRates, SparseNorm, ManufacturedHidden, CompleteManufacturedConstraints tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bff094dc63055b397162f08ce704ce39f346436a57378522c8c80557b71d9529 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_shell_physics_test.cpp support@738-987 helper/oracle/fixture/include/static assertion 구간: InitializeNullVelocity, GridEvidence, RecoveredAcceleration, ArithmeticRadii, Up, UpSum, UpProduct, RoundoffRadius, AddRadius, ProductRadius, RateSumRadius, Add, Value, Radius, QuotientRadius, reduced, ProjectBasisRadii, AccumulateLiftBasisRadii, BasisLiftReplay, ReplayLiftBasisRadii, LiftBasisRadii tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 13a1ff8e33d6400d5bdcf494a3a6abe02fdbf33582c3f5de2ef4f71bf5bd18d7 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_shell_physics_test.cpp support@1137-1157 helper/oracle/fixture/include/static assertion 구간: AdditionLowPart, AdvanceCoordinate tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 61ed0abe9524b8e3099608f9f117ed4ed88fb40aa98039f13024486c80f3d640 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_shell_physics_test.cpp support@1189-1673 helper/oracle/fixture/include/static assertion 구간: HhtCoordinateFactorRadius, RadiusNorm, GraphBasisProducts, GraphInverseCertificate, ContractGraphBasis, for, SparseFromDense, UpperRowSum, FiniteMatrix, FiniteNonnegativeMatrix, FiniteVector, FiniteNonnegativeVector, HasInfiniteRadius, FillInfinite, CertifyGraphInverse, AddPhysicalContractionRadius, BoundGraphSolution, GraphArithmeticIndicator, if tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b2e045bbe0fa0615cde9321d1f050fb0e003242df9c3c54c8ad5fa110caf906a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_shell_physics_test.cpp support@1799-1929 helper/oracle/fixture/include/static assertion 구간: LastSolve, RecordNoise, for tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6b9392a417c11f51d48a97f27a0dc0542c4f005b1063414cb4b9403d1550a5e3 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_shell_physics_test.cpp support@2059-3079 helper/oracle/fixture/include/static assertion 구간: RecoverAcceleration, if, CompleteOriginalConstraints, RunPlate, for, Require, Trial, UpdateTrace, Differences, FrameError, RecoveredFrameError, RecoveredDifferences, AccelerationSplit tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 82a60a9bab9a1165f469ca2106a81e8e004ec8c859ea5301ab896f1da9329e8e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_shell_physics_test.cpp support@3565-3600 helper/oracle/fixture/include/static assertion 구간: ReadLifecycleLog, FailAfterAcceptedIncrement, while, if tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fdaacc9c5e36ed4d024ff28652880353526b01b1ea8bb6ab1fb4b1a86e0279f5 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_shell_physics_test.cpp support@3669-3670 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_temporal_verification_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/analysis/hht_temporal_verification_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 03565773d95b6bad350d360bb1b2b2489c81b19c5877a5c7bcc6362c951fb013 03565773d95b6bad350d360bb1b2b2489c81b19c5877a5c7bcc6362c951fb013 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C01MatchesConstantMassRecurrenceAndSecondOrder HhtTemporalVerification.C01MatchesConstantMassRecurrenceAndSecondOrder; assertion 1개 tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C01MatchesConstantMassRecurrenceAndSecondOrder 유지 원문 검사 body 및 assertion 동일. 17fe998913063fd19bb6401c48b979bf998384569d88bb14e42ce753c13ca7e6 17fe998913063fd19bb6401c48b979bf998384569d88bb14e42ce753c13ca7e6 EXPECT_LE(error.constant_mass_recurrence_difference, 1.0e-12) EXPECT_LE(error.constant_mass_recurrence_difference, 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C03VariableMassIsSecondOrderAndNaiveWeightingIsNot HhtTemporalVerification.C03VariableMassIsSecondOrderAndNaiveWeightingIsNot; assertion 2개 tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C03VariableMassIsSecondOrderAndNaiveWeightingIsNot 유지 원문 검사 body 및 assertion 동일. c1215c7361ecf522a71c80084595558d3433a6afa624d162f76e2d3535f641f7 c1215c7361ecf522a71c80084595558d3433a6afa624d162f76e2d3535f641f7 EXPECT_GT(errors.back().auxiliary_difference, 0.0) | EXPECT_LT(order, 1.5) EXPECT_GT(errors.back().auxiliary_difference, 0.0) | EXPECT_LT(order, 1.5) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04aCoupledMasslessCoordinatesHaveSecondOrder HhtTemporalVerification.C04aCoupledMasslessCoordinatesHaveSecondOrder; assertion 2개 tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04aCoupledMasslessCoordinatesHaveSecondOrder 유지 원문 검사 body 및 assertion 동일. 3b88debb5cff0df98f0085bd9f58e4fc847d99251be567cee3fb1e277d42e2c0 3b88debb5cff0df98f0085bd9f58e4fc847d99251be567cee3fb1e277d42e2c0 EXPECT_LE(errors[grid].constant_mass_recurrence_difference, 1.0e-12) | EXPECT_LE(errors[grid].reduced_difference, 1.0e-10) EXPECT_LE(errors[grid].constant_mass_recurrence_difference, 1.0e-12) | EXPECT_LE(errors[grid].reduced_difference, 1.0e-10) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04aFinestReductionComparisonIsNumericallyResolved HhtTemporalVerification.C04aFinestReductionComparisonIsNumericallyResolved; assertion 1개 tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04aFinestReductionComparisonIsNumericallyResolved 유지 원문 검사 body 및 assertion 동일. 29e3b4fcb4310f058433aebe1547c1b5df41000e2e29b6cae9506c8dc4960555 29e3b4fcb4310f058433aebe1547c1b5df41000e2e29b6cae9506c8dc4960555 EXPECT_LE(error.reduced_difference, 1.0e-10) EXPECT_LE(error.reduced_difference, 1.0e-10) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04bFullCartesianMovingNullConverges HhtTemporalVerification.C04bFullCartesianMovingNullConverges; assertion 5개 tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04bFullCartesianMovingNullConverges 유지 원문 검사 body 및 assertion 동일. d6e5f3a57a0983661a209be99ff249fae0ce28d7343f1a2d0e74de29a2ccfc95 d6e5f3a57a0983661a209be99ff249fae0ce28d7343f1a2d0e74de29a2ccfc95 EXPECT_LE(error.position_constraint, 1.0e-10) | EXPECT_LT(errors[grid].hidden_velocity, errors[grid - 1U].hidden_velocity) | EXPECT_LT(errors[grid].hidden_acceleration, errors[grid - 1U].hidden_acceleration) | EXPECT_LE(errors.back().hidden_velocity, 1.0e-6) | EXPECT_LE(errors.back().hidden_acceleration, 1.0e-4) EXPECT_LE(error.position_constraint, 1.0e-10) | EXPECT_LT(errors[grid].hidden_velocity, errors[grid - 1U].hidden_velocity) | EXPECT_LT(errors[grid].hidden_acceleration, errors[grid - 1U].hidden_acceleration) | EXPECT_LE(errors.back().hidden_velocity, 1.0e-6) | EXPECT_LE(errors.back().hidden_acceleration, 1.0e-4) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_temporal_verification_test.cpp support@1-451 helper/oracle/fixture/include/static assertion 구간: Case, ExactState, Dimension, Exact, if, Amplitudes, Equation, Evaluate, Multiply, Solve, Effective, Errors, Integrate, Sweep tests/unit/analysis/hht_temporal_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c427466b945f2d0b9cbfec1a629323a8f2d81fd7574c29f611baa1e6c07860ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_temporal_verification_test.cpp support@506-507 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_temporal_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_time_integration_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/analysis/hht_time_integration_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 068a7d057ec10b7f70a883d56ad54bb12f20873028b3bd7c34a1eb5c29adce20 068a7d057ec10b7f70a883d56ad54bb12f20873028b3bd7c34a1eb5c29adce20 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.KeepsPhysicalAndAlgorithmicAccelerationDistinct HhtTimeIntegrationTest.KeepsPhysicalAndAlgorithmicAccelerationDistinct; assertion 6개 tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.KeepsPhysicalAndAlgorithmicAccelerationDistinct 유지 원문 검사 body 및 assertion 동일. bc5623fd45c2fb228f48298ee47d4f1c5a287a1d18591f8e4f618814f7ffd9b8 bc5623fd45c2fb228f48298ee47d4f1c5a287a1d18591f8e4f618814f7ffd9b8 ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_NEAR(rates.Value().algorithmic_acceleration[0U], 2.0, 1e-14) | EXPECT_NEAR(rates.Value().acceleration[0U], 1.95 / 0.95, 1e-14) | EXPECT_NEAR(rates.Value().velocity[0U], 0.155, 1e-14) ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_NEAR(rates.Value().algorithmic_acceleration[0U], 2.0, 1e-14) | EXPECT_NEAR(rates.Value().acceleration[0U], 1.95 / 0.95, 1e-14) | EXPECT_NEAR(rates.Value().velocity[0U], 0.155, 1e-14) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.RejectsInvalidParametersAndTime HhtTimeIntegrationTest.RejectsInvalidParametersAndTime; assertion 7개 tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.RejectsInvalidParametersAndTime 유지 원문 검사 body 및 assertion 동일. 8f052b7f1a3b8fb822dc564e2365883b6827c3e9f566e2fd07dc2a67c9246816 8f052b7f1a3b8fb822dc564e2365883b6827c3e9f566e2fd07dc2a67c9246816 EXPECT_FALSE(MakeHhtParameters(0.01).HasValue()) | EXPECT_FALSE(MakeHhtParameters(-0.34).HasValue()) | ASSERT_TRUE(MakeHhtParameters(-1.0 / 3.0).HasValue()) | ASSERT_TRUE(parameters.HasValue()) | EXPECT_EQ(parameters.Value().beta, 0.25) | EXPECT_EQ(parameters.Value().gamma, 0.5) | EXPECT_FALSE(PredictHht(zero, zero, zero, 0.0, parameters.Value()).HasValue()) EXPECT_FALSE(MakeHhtParameters(0.01).HasValue()) | EXPECT_FALSE(MakeHhtParameters(-0.34).HasValue()) | ASSERT_TRUE(MakeHhtParameters(-1.0 / 3.0).HasValue()) | ASSERT_TRUE(parameters.HasValue()) | EXPECT_EQ(parameters.Value().beta, 0.25) | EXPECT_EQ(parameters.Value().gamma, 0.5) | EXPECT_FALSE(PredictHht(zero, zero, zero, 0.0, parameters.Value()).HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.StepOscillatorHasSecondOrderMaximumError HhtTimeIntegrationTest.StepOscillatorHasSecondOrderMaximumError; assertion 9개 tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.StepOscillatorHasSecondOrderMaximumError 유지 원문 검사 body 및 assertion 동일. 75ff32c40233ae10ed77f6cd3ffb13361d13d1c6a0acb05720d450f0d5f4d053 75ff32c40233ae10ed77f6cd3ffb13361d13d1c6a0acb05720d450f0d5f4d053 ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_GE(std::log2(previous_q / error_q), 1.8) | EXPECT_GE(std::log2(previous_v / error_v), 1.8) | EXPECT_GE(std::log2(previous_a / error_a), 1.8) | EXPECT_LT(error_q, 1e-4) | EXPECT_LT(error_v, 1e-4) | EXPECT_LT(error_a, 1e-4) ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_GE(std::log2(previous_q / error_q), 1.8) | EXPECT_GE(std::log2(previous_v / error_v), 1.8) | EXPECT_GE(std::log2(previous_a / error_a), 1.8) | EXPECT_LT(error_q, 1e-4) | EXPECT_LT(error_v, 1e-4) | EXPECT_LT(error_a, 1e-4) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/hht_time_integration_test.cpp support@1-9 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/analysis/hht_time_integration_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ae92a1fab37e019e61be13e7179238f0a1920b5d84bd46e196d22971dc9f979d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_time_integration_test.cpp support@40-41 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_time_integration_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5f00a39140d4b7cac4217349f6c92160b11694234e9665516332598cd78d2637 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/hht_time_integration_test.cpp support@95-97 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/analysis/hht_time_integration_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/newton_iteration_log_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 11개 tests/unit/analysis/newton_iteration_log_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d3101c094646165ee241aa223245bcbf7d58accb1a8f018d2c83fed3f484b9dc d3101c094646165ee241aa223245bcbf7d58accb1a8f018d2c83fed3f484b9dc 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.WritesOneLfTerminated39FieldRecordInApprovedOrder NewtonIterationLog.WritesOneLfTerminated39FieldRecordInApprovedOrder; assertion 4개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.WritesOneLfTerminated39FieldRecordInApprovedOrder 유지 원문 검사 body 및 assertion 동일. 478006c691de24dd68fd00fb670f08f3df30134ddab9b8d2c1300bcb3bbf9b9b 478006c691de24dd68fd00fb670f08f3df30134ddab9b8d2c1300bcb3bbf9b9b "ASSERT_EQ(fields.size(), labels.size()) | EXPECT_EQ(fields[index].substr(0U, fields[index].find('=')), labels[index]) | EXPECT_EQ(FieldValue(fields, ""record""), ""record=newton-iteration"") | EXPECT_EQ(FieldValue(fields, ""schema""), ""schema=nsnr-log-v1"")" "ASSERT_EQ(fields.size(), labels.size()) | EXPECT_EQ(fields[index].substr(0U, fields[index].find('=')), labels[index]) | EXPECT_EQ(FieldValue(fields, ""record""), ""record=newton-iteration"") | EXPECT_EQ(FieldValue(fields, ""schema""), ""schema=nsnr-log-v1"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.FormatsFiniteNumbersForLocaleIndependentRoundTrip NewtonIterationLog.FormatsFiniteNumbersForLocaleIndependentRoundTrip; assertion 5개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.FormatsFiniteNumbersForLocaleIndependentRoundTrip 유지 원문 검사 body 및 assertion 동일. af49c065bc4263fecd936356c425497319528bab0b5bbf04bcc82a252eac4ed0 af49c065bc4263fecd936356c425497319528bab0b5bbf04bcc82a252eac4ed0 EXPECT_EQ(result.ec, std::errc{}) | EXPECT_EQ(result.ptr, value.data() + value.size()) | EXPECT_DOUBLE_EQ(parsed, 0.12345678901234567) | EXPECT_NE(value.find('.'), std::string::npos) | EXPECT_EQ(value.find(','), std::string::npos) EXPECT_EQ(result.ec, std::errc{}) | EXPECT_EQ(result.ptr, value.data() + value.size()) | EXPECT_DOUBLE_EQ(parsed, 0.12345678901234567) | EXPECT_NE(value.find('.'), std::string::npos) | EXPECT_EQ(value.find(','), std::string::npos) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesChannelDecisionsAndExplicitOutcomeFields NewtonIterationLog.SerializesChannelDecisionsAndExplicitOutcomeFields; assertion 13개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesChannelDecisionsAndExplicitOutcomeFields 유지 원문 검사 body 및 assertion 동일. a72dbdfb59417fdad8806c162889401a17f516cfe5f527c4b08d6bfd1c12d076 a72dbdfb59417fdad8806c162889401a17f516cfe5f527c4b08d6bfd1c12d076 "EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_channel""), std::string{prefix} + ""_channel="" + std::string{prefix}) | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_numerator_norm""), std::string{prefix} + ""_numerator_norm=0.0012345678901234567"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_denominator_scale""), std::string{prefix} + ""_denominator_scale=1.2345678901234567"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_branch""), std::string{prefix} + ""_branch=relative"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold""), std::string{prefix} + ""_threshold=0.01"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold_unit""), std::string{prefix} + ""_threshold_unit=1"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_pass""), std::string{prefix} + ""_pass=1"") | EXPECT_EQ(FieldValue(fields, ""last_completed_stage""), ""last_completed_stage=convergence-gates"") | EXPECT_EQ(FieldValue(fields, ""failing_stage""), ""failing_stage=none"") | EXPECT_EQ(FieldValue(fields, ""combined_pass""), ""combined_pass=1"") | EXPECT_EQ(FieldValue(fields, ""transition""), ""transition=accept"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=accepted"") | EXPECT_EQ(FieldValue(fields, ""diagnostic_code""), ""diagnostic_code=none"")" "EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_channel""), std::string{prefix} + ""_channel="" + std::string{prefix}) | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_numerator_norm""), std::string{prefix} + ""_numerator_norm=0.0012345678901234567"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_denominator_scale""), std::string{prefix} + ""_denominator_scale=1.2345678901234567"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_branch""), std::string{prefix} + ""_branch=relative"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold""), std::string{prefix} + ""_threshold=0.01"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold_unit""), std::string{prefix} + ""_threshold_unit=1"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_pass""), std::string{prefix} + ""_pass=1"") | EXPECT_EQ(FieldValue(fields, ""last_completed_stage""), ""last_completed_stage=convergence-gates"") | EXPECT_EQ(FieldValue(fields, ""failing_stage""), ""failing_stage=none"") | EXPECT_EQ(FieldValue(fields, ""combined_pass""), ""combined_pass=1"") | EXPECT_EQ(FieldValue(fields, ""transition""), ""transition=accept"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=accepted"") | EXPECT_EQ(FieldValue(fields, ""diagnostic_code""), ""diagnostic_code=none"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesEmptyChannelsAsTypedZeroScaleDecisions NewtonIterationLog.SerializesEmptyChannelsAsTypedZeroScaleDecisions; assertion 8개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesEmptyChannelsAsTypedZeroScaleDecisions 유지 원문 검사 body 및 assertion 동일. 52595116ab45dfc4a15efc3027ebda7ed94578e61ba5516a49952da4787b3aea 52595116ab45dfc4a15efc3027ebda7ed94578e61ba5516a49952da4787b3aea "EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_numerator_norm""), std::string{prefix} + ""_numerator_norm=0"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_denominator_scale""), std::string{prefix} + ""_denominator_scale=0"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_branch""), std::string{prefix} + ""_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold""), std::string{prefix} + ""_threshold=0.001"") | EXPECT_EQ(FieldValue(fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=force"") | EXPECT_EQ(FieldValue(fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=force*length"") | EXPECT_EQ(FieldValue(fields, ""correction_translation_threshold_unit""), ""correction_translation_threshold_unit=length"") | EXPECT_EQ(FieldValue(fields, ""correction_rotation_threshold_unit""), ""correction_rotation_threshold_unit=1"")" "EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_numerator_norm""), std::string{prefix} + ""_numerator_norm=0"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_denominator_scale""), std::string{prefix} + ""_denominator_scale=0"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_branch""), std::string{prefix} + ""_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold""), std::string{prefix} + ""_threshold=0.001"") | EXPECT_EQ(FieldValue(fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=force"") | EXPECT_EQ(FieldValue(fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=force*length"") | EXPECT_EQ(FieldValue(fields, ""correction_translation_threshold_unit""), ""correction_translation_threshold_unit=length"") | EXPECT_EQ(FieldValue(fields, ""correction_rotation_threshold_unit""), ""correction_rotation_threshold_unit=1"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.EscapesStringsAndOmitsUnevaluatedFailureFields NewtonIterationLog.EscapesStringsAndOmitsUnevaluatedFailureFields; assertion 5개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.EscapesStringsAndOmitsUnevaluatedFailureFields 유지 원문 검사 body 및 assertion 동일. 2f3470b4d8bf9aacf7f50890f7b53816dfe990193f8af3a6d0cc066b88f7037d 2f3470b4d8bf9aacf7f50890f7b53816dfe990193f8af3a6d0cc066b88f7037d "EXPECT_EQ(ValueAfterEquals(fields[index]), not_evaluated) | EXPECT_EQ(FieldValue(fields, ""failing_stage""), ""failing_stage=load-boundary"") | EXPECT_EQ(FieldValue(fields, ""transition""), ""transition=fail\\ttransition"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=failed\\nrecord"") | EXPECT_EQ(FieldValue(fields, ""diagnostic_code""), ""diagnostic_code=external\\\\load\\r\\0"")" "EXPECT_EQ(ValueAfterEquals(fields[index]), not_evaluated) | EXPECT_EQ(FieldValue(fields, ""failing_stage""), ""failing_stage=load-boundary"") | EXPECT_EQ(FieldValue(fields, ""transition""), ""transition=fail\\ttransition"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=failed\\nrecord"") | EXPECT_EQ(FieldValue(fields, ""diagnostic_code""), ""diagnostic_code=external\\\\load\\r\\0"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.ReportsWriteFlushAndCloseStateFailures NewtonIterationLog.ReportsWriteFlushAndCloseStateFailures; assertion 2개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.ReportsWriteFlushAndCloseStateFailures 유지 원문 검사 body 및 assertion 동일. af4d515b9dc0ca7b6af0fa1cfae5d26577b3efc5ab172f3ee816db7044509e96 af4d515b9dc0ca7b6af0fa1cfae5d26577b3efc5ab172f3ee816db7044509e96 ASSERT_TRUE(closed_writer.Open(path).IsOk()) | ASSERT_TRUE(closed_writer.Close().IsOk()) ASSERT_TRUE(closed_writer.Open(path).IsOk()) | ASSERT_TRUE(closed_writer.Close().IsOk()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.LeavesZeroByteLogForNonNewtonControlledFailurePath NewtonIterationLog.LeavesZeroByteLogForNonNewtonControlledFailurePath; assertion 4개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.LeavesZeroByteLogForNonNewtonControlledFailurePath 유지 원문 검사 body 및 assertion 동일. 6e9b83153024bcd0b3e29402a533faf17fa26d708db7bc574ee13b8a1ffa9902 6e9b83153024bcd0b3e29402a533faf17fa26d708db7bc574ee13b8a1ffa9902 ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | EXPECT_TRUE(std::filesystem::exists(path)) | EXPECT_EQ(std::filesystem::file_size(path), 0U) ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | EXPECT_TRUE(std::filesystem::exists(path)) | EXPECT_EQ(std::filesystem::file_size(path), 0U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesEvaluatorProducedExternalScaleResidualDecisions NewtonIterationLog.SerializesEvaluatorProducedExternalScaleResidualDecisions; assertion 19개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesEvaluatorProducedExternalScaleResidualDecisions 유지 원문 검사 body 및 assertion 동일. 883a7d046a0275863ab3ba8717420a46120cd4730070a07ebf692cad2fdc6b1c 883a7d046a0275863ab3ba8717420a46120cd4730070a07ebf692cad2fdc6b1c "ASSERT_EQ(zero_fields.size(), 39U) | EXPECT_EQ(FieldValue(zero_fields, ""schema""), ""schema=nsnr-log-v1"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_denominator_scale""), ""residual_force_denominator_scale=0"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_denominator_scale""), ""residual_moment_denominator_scale=0"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_branch""), ""residual_force_branch=zero-scale"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_branch""), ""residual_moment_branch=zero-scale"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_threshold""), ""residual_force_threshold=0.001"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_threshold""), ""residual_moment_threshold=0.001"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=force"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=force*length"") | ASSERT_EQ(relative_fields.size(), 39U) | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_denominator_scale""), ""residual_force_denominator_scale=2"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_denominator_scale""), ""residual_moment_denominator_scale=2"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_branch""), ""residual_force_branch=relative"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_branch""), ""residual_moment_branch=relative"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_threshold""), ""residual_force_threshold=0.01"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_threshold""), ""residual_moment_threshold=0.01"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=1"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=1"")" "ASSERT_EQ(zero_fields.size(), 39U) | EXPECT_EQ(FieldValue(zero_fields, ""schema""), ""schema=nsnr-log-v1"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_denominator_scale""), ""residual_force_denominator_scale=0"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_denominator_scale""), ""residual_moment_denominator_scale=0"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_branch""), ""residual_force_branch=zero-scale"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_branch""), ""residual_moment_branch=zero-scale"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_threshold""), ""residual_force_threshold=0.001"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_threshold""), ""residual_moment_threshold=0.001"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=force"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=force*length"") | ASSERT_EQ(relative_fields.size(), 39U) | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_denominator_scale""), ""residual_force_denominator_scale=2"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_denominator_scale""), ""residual_moment_denominator_scale=2"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_branch""), ""residual_force_branch=relative"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_branch""), ""residual_moment_branch=relative"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_threshold""), ""residual_force_threshold=0.01"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_threshold""), ""residual_moment_threshold=0.01"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=1"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=1"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.WritesTimeAndAllTwoChannelMetrics DynamicNewtonIterationLog.WritesTimeAndAllTwoChannelMetrics; assertion 24개 tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.WritesTimeAndAllTwoChannelMetrics 유지 원문 검사 body 및 assertion 동일. 21230f3c31871e11f03f9fb62d0be2dc01e29447bf22847af4e642acd48094d0 21230f3c31871e11f03f9fb62d0be2dc01e29447bf22847af4e642acd48094d0 "ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(record).IsOk()) | ASSERT_TRUE(writer.Flush().IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | ASSERT_FALSE(bytes.empty()) | EXPECT_EQ(bytes.back(), '\n') | EXPECT_EQ(std::count(bytes.begin(), bytes.end(), '\n'), 1) | EXPECT_EQ(bytes.find('\r'), std::string::npos) | EXPECT_EQ(bytes.find(""target_factor""), std::string::npos) | EXPECT_EQ(bytes.find(""nsnr-log-v1""), std::string::npos) | EXPECT_EQ(fields.size(), 24U) | EXPECT_EQ(FieldValue(fields, ""record""), ""record=dynamic-newton-iteration"") | EXPECT_EQ(FieldValue(fields, ""schema""), ""schema=hht-log-v1"") | EXPECT_EQ(FieldValue(fields, ""increment""), ""increment=2"") | EXPECT_EQ(FieldValue(fields, ""iteration""), ""iteration=3"") | EXPECT_EQ(FieldValue(fields, ""time""), ""time=0.25"") | EXPECT_EQ(FieldValue(fields, ""stage""), ""stage=convergence"") | EXPECT_EQ(FieldValue(fields, ""residual_u_branch""), ""residual_u_branch=relative"") | EXPECT_EQ(FieldValue(fields, ""residual_phi_branch""), ""residual_phi_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, ""residual_pass""), ""residual_pass=1"") | EXPECT_EQ(FieldValue(fields, ""correction_pass""), ""correction_pass=1"") | EXPECT_EQ(parsed.ec, std::errc{}) | EXPECT_EQ(parsed.ptr, text.data() + text.size()) | EXPECT_DOUBLE_EQ(value, metric.second)" "ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(record).IsOk()) | ASSERT_TRUE(writer.Flush().IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | ASSERT_FALSE(bytes.empty()) | EXPECT_EQ(bytes.back(), '\n') | EXPECT_EQ(std::count(bytes.begin(), bytes.end(), '\n'), 1) | EXPECT_EQ(bytes.find('\r'), std::string::npos) | EXPECT_EQ(bytes.find(""target_factor""), std::string::npos) | EXPECT_EQ(bytes.find(""nsnr-log-v1""), std::string::npos) | EXPECT_EQ(fields.size(), 24U) | EXPECT_EQ(FieldValue(fields, ""record""), ""record=dynamic-newton-iteration"") | EXPECT_EQ(FieldValue(fields, ""schema""), ""schema=hht-log-v1"") | EXPECT_EQ(FieldValue(fields, ""increment""), ""increment=2"") | EXPECT_EQ(FieldValue(fields, ""iteration""), ""iteration=3"") | EXPECT_EQ(FieldValue(fields, ""time""), ""time=0.25"") | EXPECT_EQ(FieldValue(fields, ""stage""), ""stage=convergence"") | EXPECT_EQ(FieldValue(fields, ""residual_u_branch""), ""residual_u_branch=relative"") | EXPECT_EQ(FieldValue(fields, ""residual_phi_branch""), ""residual_phi_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, ""residual_pass""), ""residual_pass=1"") | EXPECT_EQ(FieldValue(fields, ""correction_pass""), ""correction_pass=1"") | EXPECT_EQ(parsed.ec, std::errc{}) | EXPECT_EQ(parsed.ptr, text.data() + text.size()) | EXPECT_DOUBLE_EQ(value, metric.second)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.EscapesFailureContextAndKeepsZeroScaleFailure DynamicNewtonIterationLog.EscapesFailureContextAndKeepsZeroScaleFailure; assertion 11개 tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.EscapesFailureContextAndKeepsZeroScaleFailure 유지 원문 검사 body 및 assertion 동일. 0f65cd37830b1416f99088775f625be1000782b62f4d62110c4c68d39859d164 0f65cd37830b1416f99088775f625be1000782b62f4d62110c4c68d39859d164 "ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(record).IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | EXPECT_EQ(std::count(bytes.begin(), bytes.end(), '\n'), 1) | EXPECT_EQ(FieldValue(fields, ""stage""), ""stage=mass\\tcheck"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=failed\\ntrial"") | EXPECT_EQ(FieldValue(fields, ""failure_code""), ""failure_code=dynamic\\\\mass\\rregularity"") | EXPECT_EQ(FieldValue(fields, ""residual_u_numerator""), ""residual_u_numerator=1"") | EXPECT_EQ(FieldValue(fields, ""residual_u_scale""), ""residual_u_scale=0"") | EXPECT_EQ(FieldValue(fields, ""residual_u_branch""), ""residual_u_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, ""residual_pass""), ""residual_pass=0"")" "ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(record).IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | EXPECT_EQ(std::count(bytes.begin(), bytes.end(), '\n'), 1) | EXPECT_EQ(FieldValue(fields, ""stage""), ""stage=mass\\tcheck"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=failed\\ntrial"") | EXPECT_EQ(FieldValue(fields, ""failure_code""), ""failure_code=dynamic\\\\mass\\rregularity"") | EXPECT_EQ(FieldValue(fields, ""residual_u_numerator""), ""residual_u_numerator=1"") | EXPECT_EQ(FieldValue(fields, ""residual_u_scale""), ""residual_u_scale=0"") | EXPECT_EQ(FieldValue(fields, ""residual_u_branch""), ""residual_u_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, ""residual_pass""), ""residual_pass=0"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.InvalidEvidencePreservesFlushedPrefixAndFailsLifecycle DynamicNewtonIterationLog.InvalidEvidencePreservesFlushedPrefixAndFailsLifecycle; assertion 4개 tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.InvalidEvidencePreservesFlushedPrefixAndFailsLifecycle 유지 원문 검사 body 및 assertion 동일. 6b1f341aed7b1b9de8b7a2a0f6a8da67a51219a45b3cd7d50ed8535e224165bc 6b1f341aed7b1b9de8b7a2a0f6a8da67a51219a45b3cd7d50ed8535e224165bc ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(CompleteDynamicRecord()).IsOk()) | ASSERT_TRUE(writer.Flush().IsOk()) | EXPECT_EQ(ReadLogBytes(path), prefix) ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(CompleteDynamicRecord()).IsOk()) | ASSERT_TRUE(writer.Flush().IsOk()) | EXPECT_EQ(ReadLogBytes(path), prefix) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/newton_iteration_log_test.cpp support@1-148 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, ExpectLogOutputFailure, SplitTabs, while, FieldValue, for, ValueAfterEquals, VectorFrom, MakeDecision, CompleteRecord, WriteAndRead tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3f36093d9eeb5955577586d7074fcf8e441c479b923ff29b85d93f9fa0a014db 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/newton_iteration_log_test.cpp support@181-182 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 19386ea2961b53078a1506ac96caf435499c2ce389a6c4bc8b1d1334e3450291 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/newton_iteration_log_test.cpp support@198-199 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f968f62ecd764a93d0aebdeb90b34d4f95aea19862f1025a8f99eeaa0f513e90 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/newton_iteration_log_test.cpp support@233-234 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 66bb75d8fde94c7f7e4f4ae4f2d8b281f4bd149a8cda9b86613f7499da6a8973 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/newton_iteration_log_test.cpp support@275-276 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 71ce16e6c3d23ad2f7d4620ddc39c24e95471753e20be5b664c828f13cb2ebb1 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/newton_iteration_log_test.cpp support@303-304 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2289d04b1dccb850b21a2112940a26b854cfb47de6032c0404ffd2a9a1257809 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/newton_iteration_log_test.cpp support@324-325 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ed7ec9f2fea8c0942706f056482e9ebbdd7f1c498b5b8ba0a274bdb7a0e1705b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/newton_iteration_log_test.cpp support@336-337 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 611c87e9e2a44fb7f16bfcb907f0ca1acf1ffc4101a78393551ee362850e63bf 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/newton_iteration_log_test.cpp support@416-439 helper/oracle/fixture/include/static assertion 구간: CompleteDynamicRecord, ReadLogBytes tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9f652c12fbac5b067b0d88e3ec7dcfe31f9bb9bdad34b6a378d15c84ae567c39 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/newton_iteration_log_test.cpp support@564-565 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/analysis/nonlinear_analysis_state_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 71de713d652861fd086471944762c2ce289442e6e2ba2e259db76fad20e63db1 71de713d652861fd086471944762c2ce289442e6e2ba2e259db76fad20e63db1 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.CreatesFactorZeroBaselineInStableIdentityOrder NonlinearAnalysisState.CreatesFactorZeroBaselineInStableIdentityOrder; assertion 10개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.CreatesFactorZeroBaselineInStableIdentityOrder 유지 원문 검사 body 및 assertion 동일. e055bd3a2aa163dedf599de37840273eb34bd74e59a8a94225360994929673f3 e055bd3a2aa163dedf599de37840273eb34bd74e59a8a94225360994929673f3 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(committed.increment_index, 0U) | EXPECT_DOUBLE_EQ(committed.load_factor, 0.0) | EXPECT_TRUE(committed.is_factor_zero_baseline) | EXPECT_TRUE(result.Value().AcceptedFrames().empty()) | ASSERT_EQ(committed.nodal_internal_order.size(), fixture.domain->Nodes().size()) | ASSERT_EQ(committed.nodal_source_ids.size(), fixture.domain->Nodes().size()) | EXPECT_EQ(committed.nodal_internal_order[node], node) | ASSERT_EQ(vector->Size(), fixture.dofs->FullDofCount()) | EXPECT_DOUBLE_EQ((*vector)[index], 0.0) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(committed.increment_index, 0U) | EXPECT_DOUBLE_EQ(committed.load_factor, 0.0) | EXPECT_TRUE(committed.is_factor_zero_baseline) | EXPECT_TRUE(result.Value().AcceptedFrames().empty()) | ASSERT_EQ(committed.nodal_internal_order.size(), fixture.domain->Nodes().size()) | ASSERT_EQ(committed.nodal_source_ids.size(), fixture.domain->Nodes().size()) | EXPECT_EQ(committed.nodal_internal_order[node], node) | ASSERT_EQ(vector->Size(), fixture.dofs->FullDofCount()) | EXPECT_DOUBLE_EQ((*vector)[index], 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.RejectsInvalidBaselineInventoryBeforeStateCreation NonlinearAnalysisState.RejectsInvalidBaselineInventoryBeforeStateCreation; assertion 1개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.RejectsInvalidBaselineInventoryBeforeStateCreation 유지 원문 검사 body 및 assertion 동일. 4ec9496b06d3904c913dea2c3ce00de01fbb8f56585ffc969b4c3ef52fcd464d 4ec9496b06d3904c913dea2c3ce00de01fbb8f56585ffc969b4c3ef52fcd464d EXPECT_FALSE(result.HasValue()) EXPECT_FALSE(result.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.RejectsNonfiniteBaselineAndDofMismatch NonlinearAnalysisState.RejectsNonfiniteBaselineAndDofMismatch; assertion 4개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.RejectsNonfiniteBaselineAndDofMismatch 유지 원문 검사 body 및 assertion 동일. 3ba1563177a1cb2640413807396826918fd0e25aa71517fdf1ec53fb5054735a 3ba1563177a1cb2640413807396826918fd0e25aa71517fdf1ec53fb5054735a EXPECT_FALSE(fesa::NonlinearAnalysisState::Create( *fixture.domain, *fixture.dofs, nonfinite_triad) .HasValue()) | EXPECT_FALSE(fesa::NonlinearAnalysisState::Create( *fixture.domain, *fixture.dofs, nonfinite_director) .HasValue()) | ASSERT_TRUE(empty_domain_result.HasValue()) | EXPECT_FALSE(dof_mismatch.HasValue()) EXPECT_FALSE(fesa::NonlinearAnalysisState::Create( *fixture.domain, *fixture.dofs, nonfinite_triad) .HasValue()) | EXPECT_FALSE(fesa::NonlinearAnalysisState::Create( *fixture.domain, *fixture.dofs, nonfinite_director) .HasValue()) | ASSERT_TRUE(empty_domain_result.HasValue()) | EXPECT_FALSE(dof_mismatch.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.PreservesDuplicateLabelsWhenInstancesDiffer NonlinearAnalysisState.PreservesDuplicateLabelsWhenInstancesDiffer; assertion 7개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.PreservesDuplicateLabelsWhenInstancesDiffer 유지 원문 검사 body 및 assertion 동일. e5a32acb933b1e65d2b1efef48bdee5223bd4276460d245229bf10410bfbf59b e5a32acb933b1e65d2b1efef48bdee5223bd4276460d245229bf10410bfbf59b ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | ASSERT_TRUE(dofs_result.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().CommittedState().nodal_source_ids.size(), 2U) | EXPECT_EQ(result.Value().CommittedState().nodal_source_ids[0U].source_label, result.Value().CommittedState().nodal_source_ids[1U].source_label) | EXPECT_NE(result.Value().CommittedState().nodal_source_ids[0U].instance_name, result.Value().CommittedState().nodal_source_ids[1U].instance_name) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | ASSERT_TRUE(dofs_result.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().CommittedState().nodal_source_ids.size(), 2U) | EXPECT_EQ(result.Value().CommittedState().nodal_source_ids[0U].source_label, result.Value().CommittedState().nodal_source_ids[1U].source_label) | EXPECT_NE(result.Value().CommittedState().nodal_source_ids[0U].instance_name, result.Value().CommittedState().nodal_source_ids[1U].instance_name) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.StartsIndependentTrialAndDiscardPreservesCommit NonlinearAnalysisState.StartsIndependentTrialAndDiscardPreservesCommit; assertion 3개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.StartsIndependentTrialAndDiscardPreservesCommit 유지 원문 검사 body 및 assertion 동일. c8246ffc811a47dcc57b704918eb2f14188fef66dd65d0f63ce0892482986949 c8246ffc811a47dcc57b704918eb2f14188fef66dd65d0f63ce0892482986949 ASSERT_TRUE(trial.HasValue()) | EXPECT_NE(trial.Value().displacement.Data(), state.CommittedState().displacement.Data()) | EXPECT_DOUBLE_EQ(state.CommittedState().nodal_director[0U][2U], 1.0) ASSERT_TRUE(trial.HasValue()) | EXPECT_NE(trial.Value().displacement.Data(), state.CommittedState().displacement.Data()) | EXPECT_DOUBLE_EQ(state.CommittedState().nodal_director[0U][2U], 1.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.CommitsOnlyStableCompleteAcceptedFrames NonlinearAnalysisState.CommitsOnlyStableCompleteAcceptedFrames; assertion 16개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.CommitsOnlyStableCompleteAcceptedFrames 유지 원문 검사 body 및 assertion 동일. c2c798a56a4a0a3e7e44c9a7208e608f5244ce3ba8f2e2204f03adf4dafdbac9 c2c798a56a4a0a3e7e44c9a7208e608f5244ce3ba8f2e2204f03adf4dafdbac9 ASSERT_TRUE(state.CommitAcceptedFrame(first).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_EQ(state.AcceptedFrames()[0U].frame_index, 0U) | EXPECT_EQ(state.AcceptedFrames()[0U].increment_index, 1U) | EXPECT_FALSE(state.AcceptedFrames()[0U].is_factor_one) | EXPECT_EQ(state.CommittedState().increment_index, 1U) | EXPECT_FALSE(state.CommittedState().is_factor_zero_baseline) | EXPECT_DOUBLE_EQ(state.CommittedState().residual[0U], 5.0) | EXPECT_DOUBLE_EQ(state.CommittedState().reaction[0U], 5.0) | ASSERT_EQ(state.CommittedState().shell_results.size(), 4U) | EXPECT_EQ(state.CommittedState().shell_results[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(state.CommittedState().shell_results[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | ASSERT_TRUE(state.CommitAcceptedFrame(final_frame).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 2U) | EXPECT_EQ(state.AcceptedFrames()[1U].frame_index, 1U) | EXPECT_TRUE(state.AcceptedFrames()[1U].is_factor_one) ASSERT_TRUE(state.CommitAcceptedFrame(first).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_EQ(state.AcceptedFrames()[0U].frame_index, 0U) | EXPECT_EQ(state.AcceptedFrames()[0U].increment_index, 1U) | EXPECT_FALSE(state.AcceptedFrames()[0U].is_factor_one) | EXPECT_EQ(state.CommittedState().increment_index, 1U) | EXPECT_FALSE(state.CommittedState().is_factor_zero_baseline) | EXPECT_DOUBLE_EQ(state.CommittedState().residual[0U], 5.0) | EXPECT_DOUBLE_EQ(state.CommittedState().reaction[0U], 5.0) | ASSERT_EQ(state.CommittedState().shell_results.size(), 4U) | EXPECT_EQ(state.CommittedState().shell_results[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(state.CommittedState().shell_results[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | ASSERT_TRUE(state.CommitAcceptedFrame(final_frame).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 2U) | EXPECT_EQ(state.AcceptedFrames()[1U].frame_index, 1U) | EXPECT_TRUE(state.AcceptedFrames()[1U].is_factor_one) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.AtomicallyRejectsMalformedAcceptedFrames NonlinearAnalysisState.AtomicallyRejectsMalformedAcceptedFrames; assertion 7개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.AtomicallyRejectsMalformedAcceptedFrames 유지 원문 검사 body 및 assertion 동일. c5236c5ae93e09ba72c3ae4a4deefec8eff58282d70ec1a3125f9895785189f5 c5236c5ae93e09ba72c3ae4a4deefec8eff58282d70ec1a3125f9895785189f5 "ASSERT_TRUE(state.CommitAcceptedFrame(first).IsOk()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-accepted-state"") | EXPECT_EQ(state.AcceptedFrames().size(), frame_count) | EXPECT_EQ(state.CommittedState().increment_index, before.increment_index) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, before.load_factor)" "ASSERT_TRUE(state.CommitAcceptedFrame(first).IsOk()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-accepted-state"") | EXPECT_EQ(state.AcceptedFrames().size(), frame_count) | EXPECT_EQ(state.CommittedState().increment_index, before.increment_index) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, before.load_factor)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.AtomicallyRejectsNonfiniteAcceptedFrame NonlinearAnalysisState.AtomicallyRejectsNonfiniteAcceptedFrame; assertion 6개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.AtomicallyRejectsNonfiniteAcceptedFrame 유지 원문 검사 body 및 assertion 동일. cc5e4a6773c3318499122f00929c214489dbb84190929c6eb5997ced2860c51c cc5e4a6773c3318499122f00929c214489dbb84190929c6eb5997ced2860c51c "ASSERT_TRUE(state.CommitAcceptedFrame(valid).IsOk()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-accepted-state"") | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, before.load_factor)" "ASSERT_TRUE(state.CommitAcceptedFrame(valid).IsOk()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-accepted-state"") | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, before.load_factor)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.StoresNoUnapprovedVerificationMetrics NonlinearAnalysisState.StoresNoUnapprovedVerificationMetrics; assertion 2개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.StoresNoUnapprovedVerificationMetrics 유지 원문 검사 body 및 assertion 동일. b69ab505986f7c4e96d680112f051eb4ad264b5a4b0d00534017599fbcec886d b69ab505986f7c4e96d680112f051eb4ad264b5a4b0d00534017599fbcec886d EXPECT_FALSE((HasVerificationMetrics::value)) | EXPECT_FALSE((HasVerificationMetrics::value)) EXPECT_FALSE((HasVerificationMetrics::value)) | EXPECT_FALSE((HasVerificationMetrics::value)) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp support@1-184 helper/oracle/fixture/include/static assertion 구간: Fixture, MakeFixture, if, MakeBaseline, MakeState, MakeShellRow, MakeShellRows, MakeFrame, T, HasVerificationMetrics, ExpectSourceIdEqual, ExpectVectorEqual tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2e56a14c0097a3200d0e43093dd79e3af9fbde80419d3561620f97d79996642e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp support@215-216 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bd37a239145c5cebe3e142065918acfbe17a8b4a9038df01ef0c3dc0653dd7a6 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp support@251-252 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8fe7a38902e0f0554e724e21bd6626055452ad1f94713ee1115cc0415d753fb2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp support@276-277 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 284e6386154a0d7de7b977bffbccc58a0cccdd9f7d48f388d64f6bedeab4288e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp support@318-319 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 00e2be860cc981a9ca4aa4ec18c34ff5e6071b8d9df6a4e02a2b41acdfb1cb7c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp support@336-338 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7926abaabd465ec5f2df8c1281d0d9f682d634e296091035784916bea8ca5ed0 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp support@369-370 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 15735dfe66660b9315679d163a8e4573eb57893a4db8bf85e7542c4cf8cc664b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp support@431-432 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 44e172af12e1ad94ad0079a1ed7dcc3e57c9ad141594f6626542163024522747 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_analysis_state_test.cpp support@451-452 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5064d5792cabc37a1beb0d4085f57716fdb52851fdf8bff86383f061be0fd2ae 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_static_control_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 13개 tests/unit/analysis/nonlinear_static_control_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d12853400861a54e112f715d41be7470bf32caff38740282301f452c636a668c d12853400861a54e112f715d41be7470bf32caff38740282301f452c636a668c 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearStaticControl.BuildsFixedFactorSequenceWithExactEndpoint NonlinearStaticControl.BuildsFixedFactorSequenceWithExactEndpoint; assertion 10개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearStaticControl.BuildsFixedFactorSequenceWithExactEndpoint 유지 원문 검사 body 및 assertion 동일. 03cf5328984955e5bd0957b26938892dbadee29219434b903c919e1c159bfc6f 03cf5328984955e5bd0957b26938892dbadee29219434b903c919e1c159bfc6f ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().size(), 10U) | EXPECT_EQ(increment.increment_index, static_cast(index + 1U)) | EXPECT_DOUBLE_EQ(increment.load_factor, static_cast(index + 1U) * 0.1) | EXPECT_EQ(increment.is_factor_one, index + 1U == result.Value().size()) | EXPECT_DOUBLE_EQ(result.Value().back().load_factor, 1.0) | ASSERT_TRUE(one_hundred_result.HasValue()) | ASSERT_EQ(one_hundred_result.Value().size(), 100U) | EXPECT_EQ(one_hundred_result.Value().back().increment_index, 100U) | EXPECT_TRUE(one_hundred_result.Value().back().is_factor_one) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().size(), 10U) | EXPECT_EQ(increment.increment_index, static_cast(index + 1U)) | EXPECT_DOUBLE_EQ(increment.load_factor, static_cast(index + 1U) * 0.1) | EXPECT_EQ(increment.is_factor_one, index + 1U == result.Value().size()) | EXPECT_DOUBLE_EQ(result.Value().back().load_factor, 1.0) | ASSERT_TRUE(one_hundred_result.HasValue()) | ASSERT_EQ(one_hundred_result.Value().size(), 100U) | EXPECT_EQ(one_hundred_result.Value().back().increment_index, 100U) | EXPECT_TRUE(one_hundred_result.Value().back().is_factor_one) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearStaticControl.IgnoresPositiveMinimumAndMaximumDuringStepping NonlinearStaticControl.IgnoresPositiveMinimumAndMaximumDuringStepping; assertion 5개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearStaticControl.IgnoresPositiveMinimumAndMaximumDuringStepping 유지 원문 검사 body 및 assertion 동일. 99470076262ba5d8b53bbdc942349594b403bf7b4c1ffbb01e172701fb11f882 99470076262ba5d8b53bbdc942349594b403bf7b4c1ffbb01e172701fb11f882 ASSERT_TRUE(first_result.HasValue()) | ASSERT_TRUE(second_result.HasValue()) | ASSERT_EQ(first_result.Value().size(), second_result.Value().size()) | EXPECT_DOUBLE_EQ(first_result.Value()[index].load_factor, second_result.Value()[index].load_factor) | EXPECT_EQ(first_result.Value()[index].increment_index, second_result.Value()[index].increment_index) ASSERT_TRUE(first_result.HasValue()) | ASSERT_TRUE(second_result.HasValue()) | ASSERT_EQ(first_result.Value().size(), second_result.Value().size()) | EXPECT_DOUBLE_EQ(first_result.Value()[index].load_factor, second_result.Value()[index].load_factor) | EXPECT_EQ(first_result.Value()[index].increment_index, second_result.Value()[index].increment_index) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.AppliesAbsoluteBoundaryTargetsWithoutCorrection NonlinearLoadBoundary.AppliesAbsoluteBoundaryTargetsWithoutCorrection; assertion 5개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.AppliesAbsoluteBoundaryTargetsWithoutCorrection 유지 원문 검사 body 및 assertion 동일. 5e3b97613fd46bce571853e5787057d6cae4c99e6b8114c00823878a5a43e764 5e3b97613fd46bce571853e5787057d6cae4c99e6b8114c00823878a5a43e764 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 2U) | EXPECT_DOUBLE_EQ(result.Value()[0U], 1.0) | EXPECT_DOUBLE_EQ(result.Value()[1U], -0.125) | EXPECT_EQ(TrialCoordinates(fixture)[constrained], 0.0) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 2U) | EXPECT_DOUBLE_EQ(result.Value()[0U], 1.0) | EXPECT_DOUBLE_EQ(result.Value()[1U], -0.125) | EXPECT_EQ(TrialCoordinates(fixture)[constrained], 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.AssemblesEverySharedNodeLoadOnceInFixedGlobalAxes NonlinearLoadBoundary.AssemblesEverySharedNodeLoadOnceInFixedGlobalAxes; assertion 7개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.AssemblesEverySharedNodeLoadOnceInFixedGlobalAxes 유지 원문 검사 body 및 assertion 동일. f9fd946c0c146cac052d1f2ce57c48e989e1700b61bc00e546bd78376a8707ba f9fd946c0c146cac052d1f2ce57c48e989e1700b61bc00e546bd78376a8707ba ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().generalized_external_force.Size(), fixture.dofs->FullDofCount()) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[0U], 2.0) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[1U], -1.0) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[3U], 0.5) | EXPECT_DOUBLE_EQ(fixture.domain->Steps()[0U] .ConcentratedLoads()[0U] .GlobalComponents()[0U], 8.0) | EXPECT_DOUBLE_EQ(fixture.domain->Steps()[0U] .ConcentratedLoads()[2U] .GlobalComponents()[3U], 2.0) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().generalized_external_force.Size(), fixture.dofs->FullDofCount()) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[0U], 2.0) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[1U], -1.0) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[3U], 0.5) | EXPECT_DOUBLE_EQ(fixture.domain->Steps()[0U] .ConcentratedLoads()[0U] .GlobalComponents()[0U], 8.0) | EXPECT_DOUBLE_EQ(fixture.domain->Steps()[0U] .ConcentratedLoads()[2U] .GlobalComponents()[3U], 2.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.RejectsDirectorAlignedMomentAboveTheExactBand NonlinearLoadBoundary.RejectsDirectorAlignedMomentAboveTheExactBand; assertion 4개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.RejectsDirectorAlignedMomentAboveTheExactBand 유지 원문 검사 body 및 assertion 동일. 6fd8c584b65e4594d07dee3e89a681ebbf4990173da1ace05bde715753ca71f3 6fd8c584b65e4594d07dee3e89a681ebbf4990173da1ace05bde715753ca71f3 "EXPECT_TRUE( fesa::CheckMomentAdmissibility(director, {1.0, 0.0, 1.0e-12}).IsOk()) | EXPECT_FALSE(rejected.IsOk()) | ASSERT_EQ(rejected.Diagnostics().size(), 1U) | EXPECT_EQ(rejected.Diagnostics()[0U].code, ""unsupported-drilling-load"")" "EXPECT_TRUE( fesa::CheckMomentAdmissibility(director, {1.0, 0.0, 1.0e-12}).IsOk()) | EXPECT_FALSE(rejected.IsOk()) | ASSERT_EQ(rejected.Diagnostics().size(), 1U) | EXPECT_EQ(rejected.Diagnostics()[0U].code, ""unsupported-drilling-load"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.PreservesSourceOrderDuringGlobalAccumulation NonlinearLoadBoundary.PreservesSourceOrderDuringGlobalAccumulation; assertion 6개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.PreservesSourceOrderDuringGlobalAccumulation 유지 원문 검사 body 및 assertion 동일. c3bb30245b6f1676ea97c2d939256da763d500b601a670f86968efa43d87b75a c3bb30245b6f1676ea97c2d939256da763d500b601a670f86968efa43d87b75a ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().generalized_external_force[0U], 1.0) | EXPECT_EQ(first.Value().generalized_external_tangent.RowOffsets(), second.Value().generalized_external_tangent.RowOffsets()) | EXPECT_EQ(first.Value().generalized_external_tangent.ColumnIndices(), second.Value().generalized_external_tangent.ColumnIndices()) | EXPECT_EQ(first.Value().generalized_external_tangent.Values(), second.Value().generalized_external_tangent.Values()) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().generalized_external_force[0U], 1.0) | EXPECT_EQ(first.Value().generalized_external_tangent.RowOffsets(), second.Value().generalized_external_tangent.RowOffsets()) | EXPECT_EQ(first.Value().generalized_external_tangent.ColumnIndices(), second.Value().generalized_external_tangent.ColumnIndices()) | EXPECT_EQ(first.Value().generalized_external_tangent.Values(), second.Value().generalized_external_tangent.Values()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.DifferentiatesOneFixedSpatialMomentAndUsesSubtraction NonlinearLoadBoundary.DifferentiatesOneFixedSpatialMomentAndUsesSubtraction; assertion 6개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.DifferentiatesOneFixedSpatialMomentAndUsesSubtraction 유지 원문 검사 body 및 assertion 동일. e3040db107a7fc1174faf58c76c4c5915e3a021adbdc44927ec95bf2dbf7877b e3040db107a7fc1174faf58c76c4c5915e3a021adbdc44927ec95bf2dbf7877b ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_LE(MaximumAbsoluteDifference(derivative, tangent_action), 1.0e-8) | EXPECT_DOUBLE_EQ(residual[3U], 5.0 - result.Value().generalized_external_force[3U]) | EXPECT_DOUBLE_EQ( -tangent_action[3U], -result.Value().generalized_external_tangent.Multiply(direction)[3U]) ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_LE(MaximumAbsoluteDifference(derivative, tangent_action), 1.0e-8) | EXPECT_DOUBLE_EQ(residual[3U], 5.0 - result.Value().generalized_external_force[3U]) | EXPECT_DOUBLE_EQ( -tangent_action[3U], -result.Value().generalized_external_tangent.Multiply(direction)[3U]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.UsesOwnedRelativeThresholdsForEveryChannel NonlinearConvergence.UsesOwnedRelativeThresholdsForEveryChannel; assertion 8개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.UsesOwnedRelativeThresholdsForEveryChannel 유지 원문 검사 body 및 assertion 동일. 6cfe9ea574efccc73afb0318189186da892593dc1ca54dcecc940c9f96d4b6ae 6cfe9ea574efccc73afb0318189186da892593dc1ca54dcecc940c9f96d4b6ae EXPECT_TRUE(result.combined_passed) | EXPECT_FALSE(decision.identity.empty()) | EXPECT_DOUBLE_EQ(decision.numerator_norm, 1.0e-2) | EXPECT_DOUBLE_EQ(decision.denominator_scale, 1.0) | EXPECT_EQ(decision.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(decision.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(decision.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(decision.passed) EXPECT_TRUE(result.combined_passed) | EXPECT_FALSE(decision.identity.empty()) | EXPECT_DOUBLE_EQ(decision.numerator_norm, 1.0e-2) | EXPECT_DOUBLE_EQ(decision.denominator_scale, 1.0) | EXPECT_EQ(decision.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(decision.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(decision.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(decision.passed) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.AppliesTypedZeroScaleGatesToEmptyChannels NonlinearConvergence.AppliesTypedZeroScaleGatesToEmptyChannels; assertion 7개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.AppliesTypedZeroScaleGatesToEmptyChannels 유지 원문 검사 body 및 assertion 동일. 6dae4244b6d4b6af487b476312174ee8d379aae3416c77f5833eeb43b1ac0a2f 6dae4244b6d4b6af487b476312174ee8d379aae3416c77f5833eeb43b1ac0a2f EXPECT_TRUE(result.combined_passed) | EXPECT_DOUBLE_EQ(decisions[index].numerator_norm, 0.0) | EXPECT_DOUBLE_EQ(decisions[index].denominator_scale, 0.0) | EXPECT_EQ(decisions[index].branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(decisions[index].threshold, fesa::kNewtonZeroScaleThreshold) | EXPECT_EQ(decisions[index].threshold_unit, units[index]) | EXPECT_TRUE(decisions[index].passed) EXPECT_TRUE(result.combined_passed) | EXPECT_DOUBLE_EQ(decisions[index].numerator_norm, 0.0) | EXPECT_DOUBLE_EQ(decisions[index].denominator_scale, 0.0) | EXPECT_EQ(decisions[index].branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(decisions[index].threshold, fesa::kNewtonZeroScaleThreshold) | EXPECT_EQ(decisions[index].threshold_unit, units[index]) | EXPECT_TRUE(decisions[index].passed) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.SelectsTypedZeroScaleFromExactZeroExternalResidualChannels NonlinearConvergence.SelectsTypedZeroScaleFromExactZeroExternalResidualChannels; assertion 10개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.SelectsTypedZeroScaleFromExactZeroExternalResidualChannels 유지 원문 검사 body 및 assertion 동일. 83f1b0cae81f3d8f7b93fe76c1857758f18b6e9d9c97b091cb9e101fb23f1f3e 83f1b0cae81f3d8f7b93fe76c1857758f18b6e9d9c97b091cb9e101fb23f1f3e EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(decisions[index].denominator_scale, 0.0) | EXPECT_EQ(decisions[index].branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(decisions[index].threshold, fesa::kNewtonZeroScaleThreshold) | EXPECT_EQ(decisions[index].threshold_unit, units[index]) | EXPECT_TRUE(decisions[index].passed) | EXPECT_FALSE(force_rejected.force_residual.passed) | EXPECT_FALSE(force_rejected.combined_passed) | EXPECT_FALSE(moment_rejected.moment_residual.passed) | EXPECT_FALSE(moment_rejected.combined_passed) EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(decisions[index].denominator_scale, 0.0) | EXPECT_EQ(decisions[index].branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(decisions[index].threshold, fesa::kNewtonZeroScaleThreshold) | EXPECT_EQ(decisions[index].threshold_unit, units[index]) | EXPECT_TRUE(decisions[index].passed) | EXPECT_FALSE(force_rejected.force_residual.passed) | EXPECT_FALSE(force_rejected.combined_passed) | EXPECT_FALSE(moment_rejected.moment_residual.passed) | EXPECT_FALSE(moment_rejected.combined_passed) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.UsesRelativeResidualScaleOnlyWhenMatchingExternalScaleIsNonzero NonlinearConvergence.UsesRelativeResidualScaleOnlyWhenMatchingExternalScaleIsNonzero; assertion 10개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.UsesRelativeResidualScaleOnlyWhenMatchingExternalScaleIsNonzero 유지 원문 검사 body 및 assertion 동일. 6d42f6c27a543b480e86044b3b77d0943d8cb2d2482dd1aba56d30e16a39058c 6d42f6c27a543b480e86044b3b77d0943d8cb2d2482dd1aba56d30e16a39058c EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(decision.denominator_scale, 2.0) | EXPECT_EQ(decision.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(decision.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(decision.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(decision.passed) | EXPECT_FALSE(fesa::EvaluateNewtonConvergence(input).force_residual.passed) | EXPECT_FALSE(fesa::EvaluateNewtonConvergence(input).moment_residual.passed) | EXPECT_FALSE(relative_rejected.force_residual.passed) | EXPECT_FALSE(relative_rejected.combined_passed) EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(decision.denominator_scale, 2.0) | EXPECT_EQ(decision.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(decision.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(decision.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(decision.passed) | EXPECT_FALSE(fesa::EvaluateNewtonConvergence(input).force_residual.passed) | EXPECT_FALSE(fesa::EvaluateNewtonConvergence(input).moment_residual.passed) | EXPECT_FALSE(relative_rejected.force_residual.passed) | EXPECT_FALSE(relative_rejected.combined_passed) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.RejectsNonfiniteResidualInputsBeforeSelectingOrAcceptingAChannel NonlinearConvergence.RejectsNonfiniteResidualInputsBeforeSelectingOrAcceptingAChannel; assertion 7개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.RejectsNonfiniteResidualInputsBeforeSelectingOrAcceptingAChannel 유지 원문 검사 body 및 assertion 동일. df264b5cae771cdeb5f4ea6aa1ca08c5353da8a51e88409b08509e598dd6e79e df264b5cae771cdeb5f4ea6aa1ca08c5353da8a51e88409b08509e598dd6e79e EXPECT_FALSE(decision.passed) | EXPECT_FALSE(result.combined_passed) | EXPECT_TRUE(relative.force_residual.passed) | EXPECT_DOUBLE_EQ(relative.force_residual.denominator_scale, smallest_external) | EXPECT_EQ(relative.force_residual.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(relative.force_residual.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(relative.force_residual.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) EXPECT_FALSE(decision.passed) | EXPECT_FALSE(result.combined_passed) | EXPECT_TRUE(relative.force_residual.passed) | EXPECT_DOUBLE_EQ(relative.force_residual.denominator_scale, smallest_external) | EXPECT_EQ(relative.force_residual.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(relative.force_residual.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(relative.force_residual.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.RequiresEveryResidualAndCorrectionChannelToPass NonlinearConvergence.RequiresEveryResidualAndCorrectionChannelToPass; assertion 8개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.RequiresEveryResidualAndCorrectionChannelToPass 유지 원문 검사 body 및 assertion 동일. a832011e0feb435ce0aa354c482a5af20cdcc12a5b3ee069a6805fa2760daa0f a832011e0feb435ce0aa354c482a5af20cdcc12a5b3ee069a6805fa2760daa0f EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(accepted.translation_correction.denominator_scale, 1.0) | EXPECT_DOUBLE_EQ(accepted.rotation_correction.denominator_scale, 1.0) | EXPECT_DOUBLE_EQ(accepted.translation_correction.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_DOUBLE_EQ(accepted.rotation_correction.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(accepted.translation_correction.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_EQ(accepted.rotation_correction.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_FALSE(result.combined_passed) EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(accepted.translation_correction.denominator_scale, 1.0) | EXPECT_DOUBLE_EQ(accepted.rotation_correction.denominator_scale, 1.0) | EXPECT_DOUBLE_EQ(accepted.translation_correction.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_DOUBLE_EQ(accepted.rotation_correction.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(accepted.translation_correction.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_EQ(accepted.rotation_correction.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_FALSE(result.combined_passed) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@1-158 helper/oracle/fixture/include/static assertion 구간: VectorFrom, Fixture, if, TrialCoordinates, AddScaled, MaximumAbsoluteDifference, RelativeConvergenceInput, ExactZeroExternalResidualInput tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6a0d6117066d7bc0244668abef8eff3eb3f09fefb66e56d8ff7dae4978b297e2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@184-185 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a728c5ddd282acb272a289129b2beaaf82361231a53854f9678579e963ca7bf5 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@204-205 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5d5d51f179b49fab4320bca3fb1a67c9514c031c6eb4146cd06e0fd67d94e32b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@221-222 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b88abcc3396bee3d80864ac6e5b5d69fd7a65489104a60fee981bfb1f80dcf66 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@250-251 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6d84fb8f223d3d49be0a8b3f94cc76dc49eb532f98b45a89eaf3f6b7c0d9d928 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@262-263 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 891df0432d2d49bd73ab72565c58f1833e37588e6e1f011e9622f474b2164e52 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@285-286 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. de1e68c7ef81aa7e6db55005224ab3b7051d71f20a74f0a005cadc3d2950055f 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@324-325 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 577d29344a758ac62f396a9e34591982aab171dd34082649c877701cf8834124 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@346-347 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 66b90623292bf823c4ec82313343514c4d6118d131a2112173300ffc87582cc6 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@376-377 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0413b1a93aa4812b4c92ab8aeba36ae964d35ffceb3ae14bde002cc02b4a128a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@414-415 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c2e9bb7f999bfecdf11b504b8f331912407fc2aace0ed3334b7095b7686f5f8a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@454-455 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. dc36777ce188869f3f1f91b7963b011739df7f02cac290f3dfac4efbe4bf15bf 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@500-501 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d661490b198257d4473dc5b81ce890e2389d53e281ec635145449812542abe98 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/nonlinear_static_control_test.cpp support@533-534 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/solid_frequency_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/unit/analysis/solid_frequency_procedure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 80a7a0dd4e765af6155d0ca9e52edc3c13f00e2082a4fcb60601e1ec20a23c56 afb4cc6cb6b1b6913bcfd0d473260ab060c91b66835e5570073472e3bc7f3dd5 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.FreeBrickRetainsSixRigidModes SolidFrequencyProcedure.FreeBrickRetainsSixRigidModes; assertion 6개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.FreeBrickRetainsSixRigidModes 유지 원문 검사 body 및 assertion 동일. cce9667bb3dd958f4277c3c2cea2cd1c9d7a29bbc73e03edfe674518cb099309 cce9667bb3dd958f4277c3c2cea2cd1c9d7a29bbc73e03edfe674518cb099309 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().modes.size(), 6U) | EXPECT_EQ(mode.classification, 0U) | EXPECT_EQ(result.Value().vectors.Rows(), 6U) | EXPECT_EQ(result.Value().vectors.Columns(), 24U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().modes.size(), 6U) | EXPECT_EQ(mode.classification, 0U) | EXPECT_EQ(result.Value().vectors.Rows(), 6U) | EXPECT_EQ(result.Value().vectors.Columns(), 24U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.RowSumLumpedPencilMatchesIndependentDenseOracle SolidFrequencyProcedure.RowSumLumpedPencilMatchesIndependentDenseOracle; assertion 22개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.RowSumLumpedPencilMatchesIndependentDenseOracle 유지 원문 검사 body 및 assertion 동일. 4c97e6d2016b331fe2696c558e569c93fce6a5040249a4fa536634b8617ae5fb 4c97e6d2016b331fe2696c558e569c93fce6a5040249a4fa536634b8617ae5fb "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(state.modes.size(), oracle.size()) | ASSERT_EQ(state.eigenpair_checks.size(), oracle.size()) | EXPECT_NEAR(state.modes[c].eigenvalue, oracle[c], 1e-10 * state.classification_scale) | EXPECT_EQ(state.modes[c].mode_id, c + 1) | EXPECT_EQ(state.eigenpair_checks[c].sorted_rank, c + 1) | EXPECT_LE(state.eigenpair_checks[c].eta_r, 1e-10) | EXPECT_LE(state.eigenpair_checks[c].eta_energy, 1e-10) | EXPECT_LE(state.eigenpair_checks[c].eta_norm, 1e-10) | EXPECT_NEAR(state.eigenpair_checks[c].modal_mass, 1.0, 1e-10) | EXPECT_EQ(state.vectors(c, row), 0.0) | EXPECT_GT(state.vectors(c, pivot), 0.0) | EXPECT_LE(state.eta_gram, 1e-10) | EXPECT_LE(state.max_eta_orth, 1e-10) | EXPECT_NEAR(state.mass_ideal_lower_bound, 12.0 / 27.0, 1e-13) | EXPECT_GT(state.mass_lower_bound, 0.0) | EXPECT_LT(state.mass_lower_bound, state.mass_ideal_lower_bound) | EXPECT_GT(state.mass_roundoff_guard, 0.0) | EXPECT_EQ(state.backend.integer_abi, ""ILP64"") | EXPECT_EQ(state.backend.eigenvectors.Rows(), 0U) | EXPECT_EQ(state.backend.backend_calls.front().kind, ""mass-spd"")" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(state.modes.size(), oracle.size()) | ASSERT_EQ(state.eigenpair_checks.size(), oracle.size()) | EXPECT_NEAR(state.modes[c].eigenvalue, oracle[c], 1e-10 * state.classification_scale) | EXPECT_EQ(state.modes[c].mode_id, c + 1) | EXPECT_EQ(state.eigenpair_checks[c].sorted_rank, c + 1) | EXPECT_LE(state.eigenpair_checks[c].eta_r, 1e-10) | EXPECT_LE(state.eigenpair_checks[c].eta_energy, 1e-10) | EXPECT_LE(state.eigenpair_checks[c].eta_norm, 1e-10) | EXPECT_NEAR(state.eigenpair_checks[c].modal_mass, 1.0, 1e-10) | EXPECT_EQ(state.vectors(c, row), 0.0) | EXPECT_GT(state.vectors(c, pivot), 0.0) | EXPECT_LE(state.eta_gram, 1e-10) | EXPECT_LE(state.max_eta_orth, 1e-10) | EXPECT_NEAR(state.mass_ideal_lower_bound, 12.0 / 27.0, 1e-13) | EXPECT_GT(state.mass_lower_bound, 0.0) | EXPECT_LT(state.mass_lower_bound, state.mass_ideal_lower_bound) | EXPECT_GT(state.mass_roundoff_guard, 0.0) | EXPECT_EQ(state.backend.integer_abi, ""ILP64"") | EXPECT_EQ(state.backend.eigenvectors.Rows(), 0U) | EXPECT_EQ(state.backend.backend_calls.front().kind, ""mass-spd"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.DensityLengthAndMaterialScaling SolidFrequencyProcedure.DensityLengthAndMaterialScaling; assertion 5개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.DensityLengthAndMaterialScaling 유지 원문 검사 body 및 assertion 동일. cdee8e33c911874556fd0de7f4206dabb00b6323ffc6dc258ea2775cd9d4203c cdee8e33c911874556fd0de7f4206dabb00b6323ffc6dc258ea2775cd9d4203c ASSERT_TRUE(base_domain.HasValue()) | ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(result.Value().modes[c].eigenvalue, base.Value().modes[c].eigenvalue * parameters[3], 1e-10 * result.Value().classification_scale) ASSERT_TRUE(base_domain.HasValue()) | ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(result.Value().modes[c].eigenvalue, base.Value().modes[c].eigenvalue * parameters[3], 1e-10 * result.Value().classification_scale) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.OneFreeDofAndAllConstrainedAndExcessRequest SolidFrequencyProcedure.OneFreeDofAndAllConstrainedAndExcessRequest; assertion 5개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.OneFreeDofAndAllConstrainedAndExcessRequest 유지 원문 검사 body 및 assertion 동일. c873c04a035270f6496bcb1e0d60a1558b2eccd3043729a891bc459cd0f18927 c873c04a035270f6496bcb1e0d60a1558b2eccd3043729a891bc459cd0f18927 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(result.Value().modes[0].eigenvalue, DenseOracle({2U})[0], 1e-11) | ASSERT_TRUE(invalid.HasValue()) | EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(invalid.Value()) .HasValue()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(result.Value().modes[0].eigenvalue, DenseOracle({2U})[0], 1e-11) | ASSERT_TRUE(invalid.HasValue()) | EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(invalid.Value()) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.MissingDensityAndFailedBackendPreservePriorCandidate SolidFrequencyProcedure.MissingDensityAndFailedBackendPreservePriorCandidate; assertion 7개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.MissingDensityAndFailedBackendPreservePriorCandidate 유지 원문 검사 body 및 assertion 동일. 3f418707dfaaffaae21da5242f50881cd3b4e2d1049377e14af02ad858f84b9c 3f418707dfaaffaae21da5242f50881cd3b4e2d1049377e14af02ad858f84b9c EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(missing.Value()) .HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(good.HasValue()) | EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(domain.Value()) .HasValue()) | EXPECT_EQ(good.Value().modes[0].eigenvalue, previous) | ASSERT_TRUE(again.HasValue()) | EXPECT_NEAR(again.Value().modes[0].eigenvalue, previous, 1e-12) EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(missing.Value()) .HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(good.HasValue()) | EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(domain.Value()) .HasValue()) | EXPECT_EQ(good.Value().modes[0].eigenvalue, previous) | ASSERT_TRUE(again.HasValue()) | EXPECT_NEAR(again.Value().modes[0].eigenvalue, previous, 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.NearZeroNegativeRemainsRawWithoutFrequency SolidFrequencyProcedure.NearZeroNegativeRemainsRawWithoutFrequency; assertion 6개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.NearZeroNegativeRemainsRawWithoutFrequency 유지 원문 검사 body 및 assertion 동일. 5c7466461ae588cfbd0a9a9bdd24664d5d7cf8f721ecf9fa68b53fa3041f35eb 5c7466461ae588cfbd0a9a9bdd24664d5d7cf8f721ecf9fa68b53fa3041f35eb ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_LT(result.Value().modes[0].eigenvalue, 0.0) | EXPECT_EQ(result.Value().modes[0].classification, 0U) | EXPECT_FALSE(result.Value().modes[0].frequency.has_value()) | EXPECT_EQ(mode.cluster_id, 1U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_LT(result.Value().modes[0].eigenvalue, 0.0) | EXPECT_EQ(result.Value().modes[0].classification, 0U) | EXPECT_FALSE(result.Value().modes[0].frequency.has_value()) | EXPECT_EQ(mode.cluster_id, 1U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.SuppliedFrequencyInputHasIndependentNumericalEvidence SolidFrequencyProcedure.SuppliedFrequencyInputHasIndependentNumericalEvidence; assertion 10개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.SuppliedFrequencyInputHasIndependentNumericalEvidence 유지 원문 검사 body 및 assertion 동일. 0287bfd4fea7a6dcac7e9ad689ef6fde57e28ebbe300516a82f71d32366695b0 0287bfd4fea7a6dcac7e9ad689ef6fde57e28ebbe300516a82f71d32366695b0 ASSERT_FALSE(root.empty()) | ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().modes.size(), 10U) | EXPECT_EQ(result.Value().vectors.Columns(), 3U * 442U) | EXPECT_GE(result.Value().eigenpair_checks.size(), 10U) | EXPECT_GT(result.Value().mass_lower_bound, 0.0) | EXPECT_LE(result.Value().eta_gram, 1e-10) | EXPECT_LE(result.Value().max_eta_orth, 1e-10) ASSERT_FALSE(root.empty()) | ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().modes.size(), 10U) | EXPECT_EQ(result.Value().vectors.Columns(), 3U * 442U) | EXPECT_GE(result.Value().eigenpair_checks.size(), 10U) | EXPECT_GT(result.Value().mass_lower_bound, 0.0) | EXPECT_LE(result.Value().eta_gram, 1e-10) | EXPECT_LE(result.Value().max_eta_orth, 1e-10) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.RejectsOverflowingOriginalPencilValidationScale SolidFrequencyProcedure.RejectsOverflowingOriginalPencilValidationScale; assertion 5개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.RejectsOverflowingOriginalPencilValidationScale 유지 원문 검사 body 및 assertion 동일. 23de9158e3984de0b4196abe914a4980b20b59e595d0f6de100b63c0608b4e5c 23de9158e3984de0b4196abe914a4980b20b59e595d0f6de100b63c0608b4e5c "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""solid-eigenpair-validation-failed"") | EXPECT_NE(result.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""solid-eigenpair-validation-failed"") | EXPECT_NE(result.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_frequency_procedure_test.cpp support@1-64 helper/oracle/fixture/include/static assertion 구간: StatusText, Brick tests/unit/analysis/solid_frequency_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 338ba214915b6614a5178292ab8ca1c8409f79c52bfdae155360a152c9033cc2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/solid_frequency_procedure_test.cpp support@77-136 helper/oracle/fixture/include/static assertion 구간: GradientIntegral, DenseOracle, FaceFree tests/unit/analysis/solid_frequency_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ce1a07c50cc327f05d6a67dcefec86324ec510e7189bc09589a7347b3ebac1a1 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 30개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1c1936b269135cad28f1bc2608001f50c8992fbca8c9e29c713f28439ffd7eda 8d90de51b606957522feabd9c9e063a463a91ecf2065fc63a21c893aed45276d 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.InitialLowPartsSurviveTrialCopyAndRejectedCommit SolidHhtPairedState.InitialLowPartsSurviveTrialCopyAndRejectedCommit; assertion 13개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.InitialLowPartsSurviveTrialCopyAndRejectedCommit 유지 원문 검사 body 및 assertion 동일. 825c8f0dad20f8717e1ea0b6b8603fd2644a8f3994ac000270d5f9e4327983e2 825c8f0dad20f8717e1ea0b6b8603fd2644a8f3994ac000270d5f9e4327983e2 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.Value().CommitAcceptedFrame(initial).IsOk()) | ASSERT_TRUE(trial.HasValue()) | EXPECT_EQ(trial.Value().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_EQ(trial.Value().low.residual_scale[0], std::ldexp(1.0, -61)) | EXPECT_EQ(trial.Value().low.linear_momentum_rate[0], std::ldexp(1.0, -59)) | EXPECT_EQ(trial.Value().low.angular_momentum_rate[1], std::ldexp(1.0, -60)) | EXPECT_EQ(state.Value().CommittedState().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_EQ(state.Value().CommittedState().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_EQ(state.Value().CommittedState().low.inertia_force[0], std::ldexp(1.0, -62)) | EXPECT_EQ(state.Value().CommittedState().low.angular_momentum_rate[2], -std::ldexp(1.0, -60)) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.Value().CommitAcceptedFrame(initial).IsOk()) | ASSERT_TRUE(trial.HasValue()) | EXPECT_EQ(trial.Value().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_EQ(trial.Value().low.residual_scale[0], std::ldexp(1.0, -61)) | EXPECT_EQ(trial.Value().low.linear_momentum_rate[0], std::ldexp(1.0, -59)) | EXPECT_EQ(trial.Value().low.angular_momentum_rate[1], std::ldexp(1.0, -60)) | EXPECT_EQ(state.Value().CommittedState().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_EQ(state.Value().CommittedState().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_EQ(state.Value().CommittedState().low.inertia_force[0], std::ldexp(1.0, -62)) | EXPECT_EQ(state.Value().CommittedState().low.angular_momentum_rate[2], -std::ldexp(1.0, -60)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.InvalidLowShapeFiniteNormalizationAndIdentitiesFail SolidHhtPairedState.InvalidLowShapeFiniteNormalizationAndIdentitiesFail; assertion 4개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.InvalidLowShapeFiniteNormalizationAndIdentitiesFail 유지 원문 검사 body 및 assertion 동일. 2b78c719a88df0067bb2b21166b8c312c308d89d1c1983c1c771809eb499d299 2b78c719a88df0067bb2b21166b8c312c308d89d1c1983c1c771809eb499d299 ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue()) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.SubUlpPhysicalDisplacementRecoversNonzeroRates SolidHhtPairedKinematics.SubUlpPhysicalDisplacementRecoversNonzeroRates; assertion 13개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.SubUlpPhysicalDisplacementRecoversNonzeroRates 유지 원문 검사 body 및 assertion 동일. 1f4fe6c56fb73d89e0ad67e5ff0f7f140cbcf1ec8e26da6ea909fe446d6f19c3 1f4fe6c56fb73d89e0ad67e5ff0f7f140cbcf1ec8e26da6ea909fe446d6f19c3 ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | EXPECT_EQ(predictor.Value().displacement[0], 1) | EXPECT_EQ(predictor.Value().displacement_low[0], epsilon) | ASSERT_TRUE(rates.HasValue()) | EXPECT_EQ(rates.Value().algorithmic_acceleration[0], 4 * epsilon) | EXPECT_EQ(rates.Value().acceleration[0], 4 * epsilon) | EXPECT_EQ(rates.Value().velocity[0], 2 * epsilon) | EXPECT_EQ(rates.Value().algorithmic_acceleration_low[0], 0) | EXPECT_EQ(rates.Value().acceleration_low[0], 0) | EXPECT_EQ(rates.Value().velocity_low[0], 0) | ASSERT_TRUE(rounded_rates.HasValue()) | EXPECT_EQ(rounded_rates.Value().acceleration[0], 0) ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | EXPECT_EQ(predictor.Value().displacement[0], 1) | EXPECT_EQ(predictor.Value().displacement_low[0], epsilon) | ASSERT_TRUE(rates.HasValue()) | EXPECT_EQ(rates.Value().algorithmic_acceleration[0], 4 * epsilon) | EXPECT_EQ(rates.Value().acceleration[0], 4 * epsilon) | EXPECT_EQ(rates.Value().velocity[0], 2 * epsilon) | EXPECT_EQ(rates.Value().algorithmic_acceleration_low[0], 0) | EXPECT_EQ(rates.Value().acceleration_low[0], 0) | EXPECT_EQ(rates.Value().velocity_low[0], 0) | ASSERT_TRUE(rounded_rates.HasValue()) | EXPECT_EQ(rounded_rates.Value().acceleration[0], 0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.PhysicalAndAuxiliaryRatesKeepOldPhysicalTerm SolidHhtPairedKinematics.PhysicalAndAuxiliaryRatesKeepOldPhysicalTerm; assertion 5개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.PhysicalAndAuxiliaryRatesKeepOldPhysicalTerm 유지 원문 검사 body 및 assertion 동일. 50303350d2b5f81d3838936cc4b1c4aefb9d23acffa5f1db16b392d59eadbc49 50303350d2b5f81d3838936cc4b1c4aefb9d23acffa5f1db16b392d59eadbc49 ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_EQ(rates.Value().algorithmic_acceleration[0], epsilon) | EXPECT_EQ(rates.Value().acceleration[0], 0) | EXPECT_EQ(rates.Value().velocity[0], 6 * epsilon) ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_EQ(rates.Value().algorithmic_acceleration[0], epsilon) | EXPECT_EQ(rates.Value().acceleration[0], 0) | EXPECT_EQ(rates.Value().velocity[0], 6 * epsilon) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.InvalidLowInputsFailWithoutChangingPredictor SolidHhtPairedKinematics.InvalidLowInputsFailWithoutChangingPredictor; assertion 6개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.InvalidLowInputsFailWithoutChangingPredictor 유지 원문 검사 body 및 assertion 동일. 42be154d7316bf84811c30432c01f348e2cd4964c15a9ca2a8542b3a4d099a72 42be154d7316bf84811c30432c01f348e2cd4964c15a9ca2a8542b3a4d099a72 ASSERT_TRUE(p.HasValue()) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(1, low), predictor, fesa::Vector(1), fesa::Vector(1), 1, p.Value()) .HasValue()) | EXPECT_EQ(predictor.displacement[0], 1) | EXPECT_EQ(predictor.displacement_low[0], 0) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(0), predictor, fesa::Vector(1), fesa::Vector(1), 1, p.Value()) .HasValue()) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(1), predictor, fesa::Vector(1), fesa::Vector(1), 1, invalid_parameters) .HasValue()) ASSERT_TRUE(p.HasValue()) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(1, low), predictor, fesa::Vector(1), fesa::Vector(1), 1, p.Value()) .HasValue()) | EXPECT_EQ(predictor.displacement[0], 1) | EXPECT_EQ(predictor.displacement_low[0], 0) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(0), predictor, fesa::Vector(1), fesa::Vector(1), 1, p.Value()) .HasValue()) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(1), predictor, fesa::Vector(1), fesa::Vector(1), 1, invalid_parameters) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.MassMultiplyKeepsSubUlpActionAndCancellation SolidHhtPairedKinematics.MassMultiplyKeepsSubUlpActionAndCancellation; assertion 7개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.MassMultiplyKeepsSubUlpActionAndCancellation 유지 원문 검사 body 및 assertion 동일. ef6f15688746af81bfd5dd21af5158228a986336d03b3619f12ec626edb65ebb ef6f15688746af81bfd5dd21af5158228a986336d03b3619f12ec626edb65ebb ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().high[0], 3 * epsilon) | EXPECT_EQ(result.Value().low[0], 0) | EXPECT_EQ(result.Value().high[1], -3) | EXPECT_EQ(result.Value().low[1], 3 * epsilon) | EXPECT_EQ(mass.Value().Multiply(high)[0], 0) ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().high[0], 3 * epsilon) | EXPECT_EQ(result.Value().low[0], 0) | EXPECT_EQ(result.Value().high[1], -3) | EXPECT_EQ(result.Value().low[1], 3 * epsilon) | EXPECT_EQ(mass.Value().Multiply(high)[0], 0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.WeightedIdentityPreservesNonzeroOldResidualLow SolidHhtPairedKinematics.WeightedIdentityPreservesNonzeroOldResidualLow; assertion 11개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.WeightedIdentityPreservesNonzeroOldResidualLow 유지 원문 검사 body 및 assertion 동일. 7bbac5223481362748fa1ff73b62f4b7a0758b25cbf6c9128cf1eeb983846480 7bbac5223481362748fa1ff73b62f4b7a0758b25cbf6c9128cf1eeb983846480 ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(fesa::detail::EvaluateSolidHhtHighLowForceIdentity( mass.Value(), 0, fesa::math_internal::HighLow(epsilon), next, old, -.25, &result)) | EXPECT_EQ(result.original.high, 3.25) | EXPECT_EQ(result.original.low, epsilon) | EXPECT_EQ(result.solved.high, 3.25) | EXPECT_EQ(result.solved.low, epsilon) | EXPECT_EQ(result.defect.high, 0) | EXPECT_EQ(result.metric.high, 0) | ASSERT_TRUE(fesa::detail::EvaluateSolidHhtHighLowForceIdentity( mass.Value(), 0, fesa::math_internal::HighLow(epsilon), next, old, -.25, &result)) | EXPECT_EQ(result.solved.low, 0) | EXPECT_EQ(result.defect.high, epsilon) ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(fesa::detail::EvaluateSolidHhtHighLowForceIdentity( mass.Value(), 0, fesa::math_internal::HighLow(epsilon), next, old, -.25, &result)) | EXPECT_EQ(result.original.high, 3.25) | EXPECT_EQ(result.original.low, epsilon) | EXPECT_EQ(result.solved.high, 3.25) | EXPECT_EQ(result.solved.low, epsilon) | EXPECT_EQ(result.defect.high, 0) | EXPECT_EQ(result.metric.high, 0) | ASSERT_TRUE(fesa::detail::EvaluateSolidHhtHighLowForceIdentity( mass.Value(), 0, fesa::math_internal::HighLow(epsilon), next, old, -.25, &result)) | EXPECT_EQ(result.solved.low, 0) | EXPECT_EQ(result.defect.high, epsilon) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.BackendEnvironmentMutationFailsAndPreservesPairs SolidHhtPairedState.BackendEnvironmentMutationFailsAndPreservesPairs; assertion 14개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.BackendEnvironmentMutationFailsAndPreservesPairs 유지 원문 검사 body 및 assertion 동일. 3f256cc73e3837028a0a56cde57bac0f445e407b546e0ec820c96be62645c8de 3f256cc73e3837028a0a56cde57bac0f445e407b546e0ec820c96be62645c8de "ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(fesa::math_internal::ArithmeticEnvironmentSupported()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_EQ(status.Diagnostics().front().code, ""solid-dynamic-arithmetic-environment"") | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(actual.displacement[0], expected.displacement[0]) | EXPECT_EQ(actual.low.displacement[0], expected.low.displacement[0]) | EXPECT_EQ(actual.acceleration[0], expected.acceleration[0]) | EXPECT_EQ(actual.low.acceleration[0], expected.low.acceleration[0]) | EXPECT_EQ(actual.external_work, expected.external_work) | EXPECT_EQ(actual.low.external_work, expected.low.external_work)" "ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(fesa::math_internal::ArithmeticEnvironmentSupported()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_EQ(status.Diagnostics().front().code, ""solid-dynamic-arithmetic-environment"") | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(actual.displacement[0], expected.displacement[0]) | EXPECT_EQ(actual.low.displacement[0], expected.low.displacement[0]) | EXPECT_EQ(actual.acceleration[0], expected.acceleration[0]) | EXPECT_EQ(actual.low.acceleration[0], expected.low.acceleration[0]) | EXPECT_EQ(actual.external_work, expected.external_work) | EXPECT_EQ(actual.low.external_work, expected.low.external_work)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AllConstrainedRetainsPhysicalReactionAndEightPoints SolidHhtDynamics.AllConstrainedRetainsPhysicalReactionAndEightPoints; assertion 9개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AllConstrainedRetainsPhysicalReactionAndEightPoints 유지 원문 검사 body 및 assertion 동일. 9aae6cd617d88f7c8d407f069a1bb691963a5b920d9c6ade7953aac765a05542 9aae6cd617d88f7c8d407f069a1bb691963a5b920d9c6ade7953aac765a05542 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 21U) | EXPECT_EQ(f.displacement.Size(), 24U) | EXPECT_EQ(f.solid_results.size(), 8U) | EXPECT_DOUBLE_EQ(f.reaction[1], -7) | EXPECT_DOUBLE_EQ(f.acceleration[1], 0) | EXPECT_DOUBLE_EQ(f.external_work, 0) | EXPECT_EQ(f.iteration_count, 0U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 21U) | EXPECT_EQ(f.displacement.Size(), 24U) | EXPECT_EQ(f.solid_results.size(), 8U) | EXPECT_DOUBLE_EQ(f.reaction[1], -7) | EXPECT_DOUBLE_EQ(f.acceleration[1], 0) | EXPECT_DOUBLE_EQ(f.external_work, 0) | EXPECT_EQ(f.iteration_count, 0U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.ActualEndpointsUseDifferentCurvesKnotsInteriorsAndHolds SolidHhtDynamics.ActualEndpointsUseDifferentCurvesKnotsInteriorsAndHolds; assertion 5개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.ActualEndpointsUseDifferentCurvesKnotsInteriorsAndHolds 유지 원문 검사 body 및 assertion 동일. c5e559e653ca89a7bb7004a700e7f2eeff2550e6ceb1f76318567165f97bed7a c5e559e653ca89a7bb7004a700e7f2eeff2550e6ceb1f76318567165f97bed7a ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(f.external_force[0], 2 * a + 3 * b, 1e-14) | EXPECT_DOUBLE_EQ(f.reaction[0], -f.external_force[0]) | EXPECT_DOUBLE_EQ(f.external_force[5], 7) | EXPECT_DOUBLE_EQ(f.time, static_cast(f.increment_index) * .125) ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(f.external_force[0], 2 * a + 3 * b, 1e-14) | EXPECT_DOUBLE_EQ(f.reaction[0], -f.external_force[0]) | EXPECT_DOUBLE_EQ(f.external_force[5], 7) | EXPECT_DOUBLE_EQ(f.time, static_cast(f.increment_index) * .125) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.RampStartsAtZeroAndAuxiliaryAccelerationIsDistinct SolidHhtDynamics.RampStartsAtZeroAndAuxiliaryAccelerationIsDistinct; assertion 10개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.RampStartsAtZeroAndAuxiliaryAccelerationIsDistinct 유지 원문 검사 body 및 assertion 동일. 8806b0f8147101e938132724b2e9fdc8f4a536db7c7d0c03962e17393a021ec9 8806b0f8147101e938132724b2e9fdc8f4a536db7c7d0c03962e17393a021ec9 ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frames.front().acceleration[0], 0) | EXPECT_GT(std::abs(frames[1].acceleration[0] - frames[1].algorithmic_acceleration[0]), 1e-5) | EXPECT_NEAR(f.algorithmic_acceleration[0], .95 * f.acceleration[0] + .05 * old.acceleration[0], 1e-14) | EXPECT_LT(f.iterations.back().update_metric, 1e-12) | EXPECT_LE(f.iterations.back().residual_metric, 1e-10) | EXPECT_DOUBLE_EQ(f.displacement[i], 0) | EXPECT_DOUBLE_EQ(f.velocity[i], 0) | EXPECT_DOUBLE_EQ(f.acceleration[i], 0) | EXPECT_DOUBLE_EQ(f.algorithmic_acceleration[i], 0) ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frames.front().acceleration[0], 0) | EXPECT_GT(std::abs(frames[1].acceleration[0] - frames[1].algorithmic_acceleration[0]), 1e-5) | EXPECT_NEAR(f.algorithmic_acceleration[0], .95 * f.acceleration[0] + .05 * old.acceleration[0], 1e-14) | EXPECT_LT(f.iterations.back().update_metric, 1e-12) | EXPECT_LE(f.iterations.back().residual_metric, 1e-10) | EXPECT_DOUBLE_EQ(f.displacement[i], 0) | EXPECT_DOUBLE_EQ(f.velocity[i], 0) | EXPECT_DOUBLE_EQ(f.acceleration[i], 0) | EXPECT_DOUBLE_EQ(f.algorithmic_acceleration[i], 0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.OneFreeTranslationHasAnalyticLumpedInertialSupportReactions SolidHhtDynamics.OneFreeTranslationHasAnalyticLumpedInertialSupportReactions; assertion 4개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.OneFreeTranslationHasAnalyticLumpedInertialSupportReactions 유지 원문 검사 body 및 assertion 동일. 1c002e47b63b342b26d3651c49bb19e06ac80d6f2744f2f435c9190103f3d797 1c002e47b63b342b26d3651c49bb19e06ac80d6f2744f2f435c9190103f3d797 ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(f.reaction[3 * b + c], reaction, roundoff * scale) | EXPECT_NEAR(weighted, endpoint_identity, roundoff * scale) | EXPECT_NEAR(f.iterations.back().weighted_residual_numerator, std::abs(weighted), roundoff * scale) ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(f.reaction[3 * b + c], reaction, roundoff * scale) | EXPECT_NEAR(weighted, endpoint_identity, roundoff * scale) | EXPECT_NEAR(f.iterations.back().weighted_residual_numerator, std::abs(weighted), roundoff * scale) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.BackendNanNonconvergenceAndInversionPreserveAcceptedInitial SolidHhtDynamics.BackendNanNonconvergenceAndInversionPreserveAcceptedInitial; assertion 21개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.BackendNanNonconvergenceAndInversionPreserveAcceptedInitial 유지 원문 검사 body 및 assertion 동일. 994315fd5e36287233e88949fa06cdd1a82a3df567118949362421a330549049 994315fd5e36287233e88949fa06cdd1a82a3df567118949362421a330549049 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_EQ(state.Value().CommittedState().increment_index, 0U) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], 0) | EXPECT_NEAR(state.Value().CommittedState().acceleration[0], .01 / .25, 1e-14) | ASSERT_FALSE(state.Value().IterationRecords().empty()) | EXPECT_EQ(state.Value().IterationRecords().back().stage, ""failed"") | EXPECT_FALSE(state.Value().IterationRecords().back().failure_code.empty()) | EXPECT_EQ(failed.evidence.iteration_index, 100U) | EXPECT_EQ(failed.failure_code, ""solid-dynamic-nonconvergence"") | EXPECT_FALSE(failed.failure_force_sum.has_value()) | EXPECT_NEAR(failed.evidence.worst_force_terms[1], expected_inertia, 32 * std::numeric_limits::epsilon() * std::abs(expected_inertia)) | EXPECT_DOUBLE_EQ(failed.evidence.worst_force_terms[2], 0) | EXPECT_DOUBLE_EQ(failed.evidence.worst_force_terms[3], .01) | EXPECT_FALSE(failed.evidence.residual_pass) | EXPECT_TRUE(failed.evidence.update_pass) | EXPECT_TRUE(failed.evidence.correction_pass) | EXPECT_TRUE(std::isfinite(value)) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().low.displacement[i], 0)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_EQ(state.Value().CommittedState().increment_index, 0U) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], 0) | EXPECT_NEAR(state.Value().CommittedState().acceleration[0], .01 / .25, 1e-14) | ASSERT_FALSE(state.Value().IterationRecords().empty()) | EXPECT_EQ(state.Value().IterationRecords().back().stage, ""failed"") | EXPECT_FALSE(state.Value().IterationRecords().back().failure_code.empty()) | EXPECT_EQ(failed.evidence.iteration_index, 100U) | EXPECT_EQ(failed.failure_code, ""solid-dynamic-nonconvergence"") | EXPECT_FALSE(failed.failure_force_sum.has_value()) | EXPECT_NEAR(failed.evidence.worst_force_terms[1], expected_inertia, 32 * std::numeric_limits::epsilon() * std::abs(expected_inertia)) | EXPECT_DOUBLE_EQ(failed.evidence.worst_force_terms[2], 0) | EXPECT_DOUBLE_EQ(failed.evidence.worst_force_terms[3], .01) | EXPECT_FALSE(failed.evidence.residual_pass) | EXPECT_TRUE(failed.evidence.update_pass) | EXPECT_TRUE(failed.evidence.correction_pass) | EXPECT_TRUE(std::isfinite(value)) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().low.displacement[i], 0)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.LateBackendFailurePreservesActualCommittedMotionAndHistory SolidHhtDynamics.LateBackendFailurePreservesActualCommittedMotionAndHistory; assertion 11개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.LateBackendFailurePreservesActualCommittedMotionAndHistory 유지 원문 검사 body 및 assertion 동일. 0e04bfa810734cd17fe3ed9b0ce99f803e24ecf3224cfee93f44df7f79d2f3b9 0e04bfa810734cd17fe3ed9b0ce99f803e24ecf3224cfee93f44df7f79d2f3b9 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(state.Value().CommittedState().increment_index, 1U) | EXPECT_GT(state.Value().CommittedState().displacement[0], 0) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], committed.displacement[0]) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().strain_energy, committed.strain_energy) | EXPECT_EQ(state.Value().CommittedState().solid_results[0].cauchy_stress, committed.solid_results[0].cauchy_stress) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(state.Value().CommittedState().increment_index, 1U) | EXPECT_GT(state.Value().CommittedState().displacement[0], 0) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], committed.displacement[0]) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().strain_energy, committed.strain_energy) | EXPECT_EQ(state.Value().CommittedState().solid_results[0].cauchy_stress, committed.solid_results[0].cauchy_stress) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.NonfiniteWeightedEvidenceCannotContaminateAcceptedHistory SolidHhtDynamics.NonfiniteWeightedEvidenceCannotContaminateAcceptedHistory; assertion 7개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.NonfiniteWeightedEvidenceCannotContaminateAcceptedHistory 유지 원문 검사 body 및 assertion 동일. 6e0271bb8ebda6f0a0c5a3a7a2287c385827fd8d17d18652b2208b204bf6ab8e 6e0271bb8ebda6f0a0c5a3a7a2287c385827fd8d17d18652b2208b204bf6ab8e ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(fesa::SolidHhtDynamicProcedureExecutor(parallel, mass, tangent) .ExecuteInto(domain.Value(), state.Value()) .IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(state.Value().CommittedState().solid_results[0].cauchy_stress, committed.solid_results[0].cauchy_stress) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], committed.displacement[0]) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(fesa::SolidHhtDynamicProcedureExecutor(parallel, mass, tangent) .ExecuteInto(domain.Value(), state.Value()) .IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(state.Value().CommittedState().solid_results[0].cauchy_stress, committed.solid_results[0].cauchy_stress) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], committed.displacement[0]) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AlphaZeroLinearUnforcedTailConservesEnergyAndTrapezoidWork SolidHhtDynamics.AlphaZeroLinearUnforcedTailConservesEnergyAndTrapezoidWork; assertion 6개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AlphaZeroLinearUnforcedTailConservesEnergyAndTrapezoidWork 유지 원문 검사 body 및 assertion 동일. dd866c138e709fdc9aa58b3b2e87b3781004ecb72d2991144c208d93d71b1ea8 dd866c138e709fdc9aa58b3b2e87b3781004ecb72d2991144c208d93d71b1ea8 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(status.IsOk()) | ASSERT_GT(tail, 1e-7) | EXPECT_NEAR(frames[n].external_work, work, 1e-16) | EXPECT_NEAR(frames[n].energy_balance_error, 0, 2e-12 * tail) | EXPECT_NEAR(frames[n].kinetic_energy + frames[n].strain_energy, tail, 2e-12 * tail) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(status.IsOk()) | ASSERT_GT(tail, 1e-7) | EXPECT_NEAR(frames[n].external_work, work, 1e-16) | EXPECT_NEAR(frames[n].energy_balance_error, 0, 2e-12 * tail) | EXPECT_NEAR(frames[n].kinetic_energy + frames[n].strain_energy, tail, 2e-12 * tail) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.InitialMassBackendFailuresPreserveEmptyHistory SolidHhtDynamics.InitialMassBackendFailuresPreserveEmptyHistory; assertion 12개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.InitialMassBackendFailuresPreserveEmptyHistory 유지 원문 검사 body 및 assertion 동일. e05bf94288c50cbcb48e82d010333756d3468e53ca60fd91f161a749ed0f1ffc e05bf94288c50cbcb48e82d010333756d3468e53ca60fd91f161a749ed0f1ffc "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue()) | ASSERT_EQ(records.size(), factorization ? 1U : 2U) | EXPECT_EQ(records.front().stage, ""initial-mass"") | EXPECT_EQ(records.front().outcome, ""residual-refinement"") | EXPECT_EQ(records.front().evidence.iteration_index, 0U) | EXPECT_FALSE(records.front().evidence.residual_pass) | EXPECT_EQ(records.back().stage, ""failed"") | EXPECT_EQ(records.back().failure_code, ""injected-backend"")" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue()) | ASSERT_EQ(records.size(), factorization ? 1U : 2U) | EXPECT_EQ(records.front().stage, ""initial-mass"") | EXPECT_EQ(records.front().outcome, ""residual-refinement"") | EXPECT_EQ(records.front().evidence.iteration_index, 0U) | EXPECT_FALSE(records.front().evidence.residual_pass) | EXPECT_EQ(records.back().stage, ""failed"") | EXPECT_EQ(records.back().failure_code, ""injected-backend"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AllFreeNoForceIsExactlyAtRestForLinearAndTl SolidHhtDynamics.AllFreeNoForceIsExactlyAtRestForLinearAndTl; assertion 10개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AllFreeNoForceIsExactlyAtRestForLinearAndTl 유지 원문 검사 body 및 assertion 동일. d09d84966fea765d732e231ff5dde9c2e8a649cbd91c3a946e2020274e398ddd d09d84966fea765d732e231ff5dde9c2e8a649cbd91c3a946e2020274e398ddd ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0) | EXPECT_DOUBLE_EQ(frame.strain_energy, 0) | EXPECT_DOUBLE_EQ(frame.displacement[i], 0) | EXPECT_DOUBLE_EQ(frame.velocity[i], 0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0) | EXPECT_DOUBLE_EQ(frame.residual[i], 0) | EXPECT_DOUBLE_EQ(frame.reaction[i], 0) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0) | EXPECT_DOUBLE_EQ(frame.strain_energy, 0) | EXPECT_DOUBLE_EQ(frame.displacement[i], 0) | EXPECT_DOUBLE_EQ(frame.velocity[i], 0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0) | EXPECT_DOUBLE_EQ(frame.residual[i], 0) | EXPECT_DOUBLE_EQ(frame.reaction[i], 0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtSourceSmoke.ReadOnlyOriginalLinearAcceptsAll101Endpoints SolidHhtSourceSmoke.ReadOnlyOriginalLinearAcceptsAll101Endpoints; assertion 0개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtSourceSmoke.ReadOnlyOriginalLinearAcceptsAll101Endpoints 유지 원문 검사 body 및 assertion 동일. 5391fef4221914378a7f90aee66f4b5dfdce359f6f20a5206103e3df7bc40d95 5391fef4221914378a7f90aee66f4b5dfdce359f6f20a5206103e3df7bc40d95 해당 없음 해당 없음 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtSourceSmoke.ReadOnlyOriginalNonlinearAcceptsAll101Endpoints SolidHhtSourceSmoke.ReadOnlyOriginalNonlinearAcceptsAll101Endpoints; assertion 0개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtSourceSmoke.ReadOnlyOriginalNonlinearAcceptsAll101Endpoints 유지 원문 검사 body 및 assertion 동일. 24b67b4ab019d0f53319e5523d3aa2893debf73e13edf2dab5f27889e9547dfd 24b67b4ab019d0f53319e5523d3aa2893debf73e13edf2dab5f27889e9547dfd 해당 없음 해당 없음 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.WeightedIdentityRetainsNonzeroOldResidualAndEffectiveTangent SolidHhtDynamics.WeightedIdentityRetainsNonzeroOldResidualAndEffectiveTangent; assertion 8개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.WeightedIdentityRetainsNonzeroOldResidualAndEffectiveTangent 유지 원문 검사 body 및 assertion 동일. f7634aeb2f9bf5b13387abd6ef3e10c9f2f0024741dbc34a156e27668892ce91 f7634aeb2f9bf5b13387abd6ef3e10c9f2f0024741dbc34a156e27668892ce91 ASSERT_TRUE(mass.HasValue()) | ASSERT_NE(old.residual[0], 0) | ASSERT_NE(old.residual[1], 0) | EXPECT_TRUE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), i, MA[i], next, old, alpha, &identities[i])) | EXPECT_LE(identities[i].metric, 1e-12) | EXPECT_NEAR( identities[i].original, identities[i].solved, 512 * std::numeric_limits::epsilon() * identities[i].scale) | EXPECT_GT( std::abs(identities[i].solved - (1 + alpha) * next.residual[i]), .01) | EXPECT_NEAR((right[i].solved - left[i].solved) / (2 * epsilon), tangent_direction[i], 1e-9 * std::abs(tangent_direction[i])) ASSERT_TRUE(mass.HasValue()) | ASSERT_NE(old.residual[0], 0) | ASSERT_NE(old.residual[1], 0) | EXPECT_TRUE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), i, MA[i], next, old, alpha, &identities[i])) | EXPECT_LE(identities[i].metric, 1e-12) | EXPECT_NEAR( identities[i].original, identities[i].solved, 512 * std::numeric_limits::epsilon() * identities[i].scale) | EXPECT_GT( std::abs(identities[i].solved - (1 + alpha) * next.residual[i]), .01) | EXPECT_NEAR((right[i].solved - left[i].solved) / (2 * epsilon), tangent_direction[i], 1e-9 * std::abs(tangent_direction[i])) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.WeightedIdentityRejectsNonfiniteAndOverflowBeforeNormReduction SolidHhtDynamics.WeightedIdentityRejectsNonfiniteAndOverflowBeforeNormReduction; assertion 8개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.WeightedIdentityRejectsNonfiniteAndOverflowBeforeNormReduction 유지 원문 검사 body 및 assertion 동일. 21767e2f26a9783ef8b3ea4897f8543314f9353f4d55800634852db6ca5e9b2a 21767e2f26a9783ef8b3ea4897f8543314f9353f4d55800634852db6ca5e9b2a ASSERT_TRUE(mass.HasValue()) | EXPECT_TRUE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) | EXPECT_EQ(identity.scale, 0) | EXPECT_EQ(identity.metric, 0) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, invalid, next, old, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, bad, previous, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) ASSERT_TRUE(mass.HasValue()) | EXPECT_TRUE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) | EXPECT_EQ(identity.scale, 0) | EXPECT_EQ(identity.metric, 0) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, invalid, next, old, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, bad, previous, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.FullFreeNewtonRecoversAllComponentsAfterCoupledTrialPerturbation SolidHhtDynamics.FullFreeNewtonRecoversAllComponentsAfterCoupledTrialPerturbation; assertion 8개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.FullFreeNewtonRecoversAllComponentsAfterCoupledTrialPerturbation 유지 원문 검사 body 및 assertion 동일. 9e1a1f350b3a8da815127d3678f269e8701013a5e689bab8a5a1c4dc5e965a41 9e1a1f350b3a8da815127d3678f269e8701013a5e689bab8a5a1c4dc5e965a41 ASSERT_TRUE(domain.HasValue()) | EXPECT_TRUE(tangent.kicked) | EXPECT_TRUE(tangent.full_size_all_calls) | EXPECT_TRUE(tangent.solved_after_kick) | ASSERT_TRUE(status.IsOk()) | EXPECT_LE(frame.iterations.back().residual_metric, 1e-10) | EXPECT_LE(frame.iterations.back().update_metric, 1e-12) | EXPECT_NEAR(frame.displacement[3 * n], .5 * frame.time * frame.time, roundoff * .5 * frame.time * frame.time) ASSERT_TRUE(domain.HasValue()) | EXPECT_TRUE(tangent.kicked) | EXPECT_TRUE(tangent.full_size_all_calls) | EXPECT_TRUE(tangent.solved_after_kick) | ASSERT_TRUE(status.IsOk()) | EXPECT_LE(frame.iterations.back().residual_metric, 1e-10) | EXPECT_LE(frame.iterations.back().update_metric, 1e-12) | EXPECT_NEAR(frame.displacement[3 * n], .5 * frame.time * frame.time, roundoff * .5 * frame.time * frame.time) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.RepresentableNeighborUsesHeldCouplingAndOriginalFullForceMetric SolidHhtFloat64History.RepresentableNeighborUsesHeldCouplingAndOriginalFullForceMetric; assertion 24개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.RepresentableNeighborUsesHeldCouplingAndOriginalFullForceMetric 유지 원문 검사 body 및 assertion 동일. edbbaae61828136237c20662167cca044b5992c324f9989e801d85b6ae72343a edbbaae61828136237c20662167cca044b5992c324f9989e801d85b6ae72343a ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(tangent.HasValue()) | ASSERT_GT(initial, 1e-10) | ASSERT_EQ(frame.residual[1], 0) | ASSERT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0, 1}, frame, 1, -.05, .275625, &selected)) | ASSERT_TRUE(selected.found) | EXPECT_EQ(selected.full_dof, 1U) | EXPECT_EQ(selected.displacement, std::nextafter(.5, -std::numeric_limits::infinity())) | EXPECT_EQ(selected.delta, selected.displacement - frame.displacement[1]) | EXPECT_LT(selected.predicted_metric, initial) | EXPECT_LE(selected.predicted_metric, 1e-10) | EXPECT_EQ(selected.predicted_metric, exact_metric) | ASSERT_TRUE(alternative_tangent.HasValue()) | ASSERT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), alternative_tangent.Value(), {0, 1}, frame, 1, -.05, .275625, &selected, &ranked)) | ASSERT_EQ(ranked.size(), 2U) | EXPECT_EQ(ranked[0].full_dof, 0U) | EXPECT_EQ(ranked[1].full_dof, 1U) | EXPECT_LT(ranked[0].predicted_metric, ranked[1].predicted_metric) | EXPECT_LT(ranked[1].predicted_metric, initial) | ASSERT_TRUE(accepted.HasValue()) | EXPECT_TRUE(accepted.Value()) | EXPECT_EQ(tried, (std::vector{0, 1})) | EXPECT_FALSE(invalid.HasValue()) | EXPECT_EQ(tried, (std::vector{0})) ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(tangent.HasValue()) | ASSERT_GT(initial, 1e-10) | ASSERT_EQ(frame.residual[1], 0) | ASSERT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0, 1}, frame, 1, -.05, .275625, &selected)) | ASSERT_TRUE(selected.found) | EXPECT_EQ(selected.full_dof, 1U) | EXPECT_EQ(selected.displacement, std::nextafter(.5, -std::numeric_limits::infinity())) | EXPECT_EQ(selected.delta, selected.displacement - frame.displacement[1]) | EXPECT_LT(selected.predicted_metric, initial) | EXPECT_LE(selected.predicted_metric, 1e-10) | EXPECT_EQ(selected.predicted_metric, exact_metric) | ASSERT_TRUE(alternative_tangent.HasValue()) | ASSERT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), alternative_tangent.Value(), {0, 1}, frame, 1, -.05, .275625, &selected, &ranked)) | ASSERT_EQ(ranked.size(), 2U) | EXPECT_EQ(ranked[0].full_dof, 0U) | EXPECT_EQ(ranked[1].full_dof, 1U) | EXPECT_LT(ranked[0].predicted_metric, ranked[1].predicted_metric) | EXPECT_LT(ranked[1].predicted_metric, initial) | ASSERT_TRUE(accepted.HasValue()) | EXPECT_TRUE(accepted.Value()) | EXPECT_EQ(tried, (std::vector{0, 1})) | EXPECT_FALSE(invalid.HasValue()) | EXPECT_EQ(tried, (std::vector{0})) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.RepresentableNeighborKeepsExactZeroAndRejectsInvalidArithmetic SolidHhtDynamics.RepresentableNeighborKeepsExactZeroAndRejectsInvalidArithmetic; assertion 6개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.RepresentableNeighborKeepsExactZeroAndRejectsInvalidArithmetic 유지 원문 검사 body 및 assertion 동일. d9613a73dba9cc37e8a8f2190ca794fcacc17920cf0fba558508b576429d4d31 d9613a73dba9cc37e8a8f2190ca794fcacc17920cf0fba558508b576429d4d31 ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(tangent.HasValue()) | EXPECT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, frame, .1, -.05, .275625, &selected)) | EXPECT_FALSE(selected.found) | EXPECT_FALSE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, bad, .1, -.05, .275625, &selected)) | EXPECT_FALSE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, frame, 0, -.05, .275625, &selected)) ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(tangent.HasValue()) | EXPECT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, frame, .1, -.05, .275625, &selected)) | EXPECT_FALSE(selected.found) | EXPECT_FALSE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, bad, .1, -.05, .275625, &selected)) | EXPECT_FALSE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, frame, 0, -.05, .275625, &selected)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.ActualNewtonStallAtLowHalfOfTwoCycleTriesFallback SolidHhtFloat64History.ActualNewtonStallAtLowHalfOfTwoCycleTriesFallback; assertion 10개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.ActualNewtonStallAtLowHalfOfTwoCycleTriesFallback 유지 원문 검사 body 및 assertion 동일. 704d7a705643dd225528629f4b721162a3c853dd1a41efd579935737b8adeb80 704d7a705643dd225528629f4b721162a3c853dd1a41efd579935737b8adeb80 "ASSERT_LT(current_metric, previous_metric) | ASSERT_TRUE(history.Capture(previous, mask, metrics, 0, false)) | ASSERT_TRUE(history.Capture(current, mask, metrics, 1, false)) | EXPECT_TRUE(history.Match(previous, mask, metrics, false, &repeat)) | ASSERT_TRUE(selected.HasValue()) | EXPECT_TRUE(selected.Value()) | EXPECT_EQ(evaluated, (std::vector{""complete-newton"", ""actual-neighbor""})) | ASSERT_TRUE(productive.HasValue()) | EXPECT_FALSE(productive.Value()) | EXPECT_EQ(evaluated, (std::vector{""complete-newton""}))" "ASSERT_LT(current_metric, previous_metric) | ASSERT_TRUE(history.Capture(previous, mask, metrics, 0, false)) | ASSERT_TRUE(history.Capture(current, mask, metrics, 1, false)) | EXPECT_TRUE(history.Match(previous, mask, metrics, false, &repeat)) | ASSERT_TRUE(selected.HasValue()) | EXPECT_TRUE(selected.Value()) | EXPECT_EQ(evaluated, (std::vector{""complete-newton"", ""actual-neighbor""})) | ASSERT_TRUE(productive.HasValue()) | EXPECT_FALSE(productive.Value()) | EXPECT_EQ(evaluated, (std::vector{""complete-newton""}))" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.ExactNewtonLoopHistoryDetectsThreeStateRecurrence SolidHhtFloat64History.ExactNewtonLoopHistoryDetectsThreeStateRecurrence; assertion 28개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.ExactNewtonLoopHistoryDetectsThreeStateRecurrence 유지 원문 검사 body 및 assertion 동일. 0d255c9f25e86d515bd140a91ed3a0af1f996156162df0c81c8e8cb340b2cd78 0d255c9f25e86d515bd140a91ed3a0af1f996156162df0c81c8e8cb340b2cd78 ASSERT_TRUE(history.Capture(first, first_mask, first_metrics, 4, false)) | ASSERT_TRUE(history.Capture(second, second_mask, second_metrics, 5, false)) | ASSERT_TRUE(history.Capture(third, first_mask, second_metrics, 6, false)) | EXPECT_EQ(history.Size(), 3U) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_TRUE(e.repeat) | EXPECT_EQ(e.matched_entry_iteration, 4U) | EXPECT_EQ(e.history_entry_count, 3U) | EXPECT_EQ(e.changed_translations, 0U) | EXPECT_EQ(e.changed_holding_mask, 0U) | EXPECT_EQ(e.changed_correction_metrics, 0U) | ASSERT_TRUE(history.Match(first, second_mask, first_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, different_metrics, false, &e)) | EXPECT_TRUE( e.repeat) | EXPECT_EQ(e.changed_correction_metrics, 1U) | ASSERT_TRUE(history.Match(first, first_mask, failing_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, true, &e)) | EXPECT_FALSE(e.repeat) | EXPECT_FALSE( history.Match(fesa::Vector(2), first_mask, first_metrics, false, &e)) | EXPECT_FALSE(history.Match(first, {false}, first_metrics, false, &e)) | EXPECT_FALSE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_FALSE(history.Capture(first, first_mask, first_metrics, 7, false)) | EXPECT_FALSE(history.Match(first, first_mask, bad_metrics, false, &e)) | EXPECT_FALSE(history.Capture(first, first_mask, bad_metrics, 7, false)) ASSERT_TRUE(history.Capture(first, first_mask, first_metrics, 4, false)) | ASSERT_TRUE(history.Capture(second, second_mask, second_metrics, 5, false)) | ASSERT_TRUE(history.Capture(third, first_mask, second_metrics, 6, false)) | EXPECT_EQ(history.Size(), 3U) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_TRUE(e.repeat) | EXPECT_EQ(e.matched_entry_iteration, 4U) | EXPECT_EQ(e.history_entry_count, 3U) | EXPECT_EQ(e.changed_translations, 0U) | EXPECT_EQ(e.changed_holding_mask, 0U) | EXPECT_EQ(e.changed_correction_metrics, 0U) | ASSERT_TRUE(history.Match(first, second_mask, first_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, different_metrics, false, &e)) | EXPECT_TRUE( e.repeat) | EXPECT_EQ(e.changed_correction_metrics, 1U) | ASSERT_TRUE(history.Match(first, first_mask, failing_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, true, &e)) | EXPECT_FALSE(e.repeat) | EXPECT_FALSE( history.Match(fesa::Vector(2), first_mask, first_metrics, false, &e)) | EXPECT_FALSE(history.Match(first, {false}, first_metrics, false, &e)) | EXPECT_FALSE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_FALSE(history.Capture(first, first_mask, first_metrics, 7, false)) | EXPECT_FALSE(history.Match(first, first_mask, bad_metrics, false, &e)) | EXPECT_FALSE(history.Capture(first, first_mask, bad_metrics, 7, false)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.EquivalentFailedNewtonEntrySurvivesRepresentableMove SolidHhtFloat64History.EquivalentFailedNewtonEntrySurvivesRepresentableMove; assertion 21개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.EquivalentFailedNewtonEntrySurvivesRepresentableMove 유지 원문 검사 body 및 assertion 동일. 6b2aeb48d13d507d18a5dd85677f1fbc3204be7f109d4237fb3cae32ca59e4e1 6b2aeb48d13d507d18a5dd85677f1fbc3204be7f109d4237fb3cae32ca59e4e1 "ASSERT_TRUE(history.Capture(failed, mask, correction, 23, true)) | EXPECT_EQ(history.Size(), 0U) | ASSERT_TRUE(history.Capture(failed, mask, large, 23, false)) | EXPECT_EQ(history.Size(), 0U) | ASSERT_TRUE(history.Capture(failed, mask, correction, 23, false)) | EXPECT_TRUE(history.Match(failed, mask, correction, false, &e)) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(first.Value()) | EXPECT_NE(actual[0], failed[0]) | EXPECT_TRUE(history.Match(failed, mask, new_metrics, false, &e)) | EXPECT_TRUE(e.repeat) | EXPECT_EQ(e.matched_entry_iteration, 23U) | ASSERT_TRUE(second.HasValue()) | EXPECT_TRUE(second.Value()) | EXPECT_EQ(applied, (std::vector{""accepted-ulp"", ""returning-newton-evaluated"", ""another-accepted-ulp""})) | ASSERT_TRUE(history.Match(fresh, mask, new_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(failed, {true, false}, new_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(failed, mask, new_metrics, true, &e)) | EXPECT_FALSE(e.repeat)" "ASSERT_TRUE(history.Capture(failed, mask, correction, 23, true)) | EXPECT_EQ(history.Size(), 0U) | ASSERT_TRUE(history.Capture(failed, mask, large, 23, false)) | EXPECT_EQ(history.Size(), 0U) | ASSERT_TRUE(history.Capture(failed, mask, correction, 23, false)) | EXPECT_TRUE(history.Match(failed, mask, correction, false, &e)) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(first.Value()) | EXPECT_NE(actual[0], failed[0]) | EXPECT_TRUE(history.Match(failed, mask, new_metrics, false, &e)) | EXPECT_TRUE(e.repeat) | EXPECT_EQ(e.matched_entry_iteration, 23U) | ASSERT_TRUE(second.HasValue()) | EXPECT_TRUE(second.Value()) | EXPECT_EQ(applied, (std::vector{""accepted-ulp"", ""returning-newton-evaluated"", ""another-accepted-ulp""})) | ASSERT_TRUE(history.Match(fresh, mask, new_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(failed, {true, false}, new_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(failed, mask, new_metrics, true, &e)) | EXPECT_FALSE(e.repeat)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.UnsupportedPairedProductsPreserveEmptyHistory SolidHhtDynamics.UnsupportedPairedProductsPreserveEmptyHistory; assertion 9개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.UnsupportedPairedProductsPreserveEmptyHistory 유지 원문 검사 body 및 assertion 동일. ee1b43798dba3932ce708b5da15e9939ca00a2600a213127e00db3b0a0fdfd03 ee1b43798dba3932ce708b5da15e9939ca00a2600a213127e00db3b0a0fdfd03 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_NE(status.Diagnostics().front().message.find(""supported""), std::string::npos) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue())" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_NE(status.Diagnostics().front().message.find(""supported""), std::string::npos) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue())" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.FailureShadowRecoversCancellationAndRejectsOverflow SolidHhtDynamics.FailureShadowRecoversCancellationAndRejectsOverflow; assertion 8개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.FailureShadowRecoversCancellationAndRejectsOverflow 유지 원문 검사 body 및 assertion 동일. e0a5f34b9c1b33e66905824b7b4c1a4a0987200be7dc62c0e9f98a1ff767e22b e0a5f34b9c1b33e66905824b7b4c1a4a0987200be7dc62c0e9f98a1ff767e22b ASSERT_TRUE(fesa::detail::AccumulateSolidHhtForceShadow( term, 0, &sum, &correction, &absolute_sum)) | EXPECT_EQ(sum, 0) | EXPECT_EQ(sum + correction, 1) | ASSERT_TRUE(fesa::detail::AccumulateSolidHhtForceShadow( 1e308, 0, &sum, &correction, &absolute_sum)) | EXPECT_FALSE(fesa::detail::AccumulateSolidHhtForceShadow( -1e308, 0, &sum, &correction, &absolute_sum)) | EXPECT_EQ(sum, 1e308) | EXPECT_EQ(absolute_sum, 1e308) | EXPECT_FALSE(fesa::detail::AccumulateSolidHhtForceShadow( 0, std::numeric_limits::quiet_NaN(), &sum, &correction, &absolute_sum)) ASSERT_TRUE(fesa::detail::AccumulateSolidHhtForceShadow( term, 0, &sum, &correction, &absolute_sum)) | EXPECT_EQ(sum, 0) | EXPECT_EQ(sum + correction, 1) | ASSERT_TRUE(fesa::detail::AccumulateSolidHhtForceShadow( 1e308, 0, &sum, &correction, &absolute_sum)) | EXPECT_FALSE(fesa::detail::AccumulateSolidHhtForceShadow( -1e308, 0, &sum, &correction, &absolute_sum)) | EXPECT_EQ(sum, 1e308) | EXPECT_EQ(absolute_sum, 1e308) | EXPECT_FALSE(fesa::detail::AccumulateSolidHhtForceShadow( 0, std::numeric_limits::quiet_NaN(), &sum, &correction, &absolute_sum)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp support@1-151 helper/oracle/fixture/include/static assertion 구간: RunDynamics, Injected, ControlledTangent, FailedMass, OneFree, namespace, PairedUniformInitial tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e167ec455207cb5017c17c0b7637acff39128fa39f59e11d3c25f2701f98c2ff 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp support@375-444 helper/oracle/fixture/include/static assertion 구간: RestoreArithmeticEnvironment, MutateArithmeticEnvironment, defined, EnvironmentMass, EnvironmentTangent tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b2d00fc08e11c3ce43e06b98f3dae891caf968c4b4fa6bd29a53bdab50fb2004 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp support@854-975 helper/oracle/fixture/include/static assertion 구간: CheckOriginalSourceDeck, if, for tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3246a745bf72b60f32cde913fdf1d843b9baa70e5c6d6a3887a9d41f9bbbdf45 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f741d023883fd91114346b233a5a1b14c9bc760085fe9830079643d4eea06f84 2973549ac31485ce1ab52ad5dc69ca0e8790f437361cf696f53e4bac0b9c627c 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.PairedSerialAndTbbPreserveEveryLowComponent SolidHhtTemporal.PairedSerialAndTbbPreserveEveryLowComponent; assertion 0개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.PairedSerialAndTbbPreserveEveryLowComponent 유지 원문 검사 body 및 assertion 동일. 925f400f0ca59d4e2137357ae92f2a0dd2d7509f13b020d8976c51c5aca4650c 925f400f0ca59d4e2137357ae92f2a0dd2d7509f13b020d8976c51c5aca4650c 해당 없음 해당 없음 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.FreeConstantForceHasAnalyticalInitialAcceleration SolidHhtTemporal.FreeConstantForceHasAnalyticalInitialAcceleration; assertion 4개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.FreeConstantForceHasAnalyticalInitialAcceleration 유지 원문 검사 body 및 assertion 동일. cb0a64053e82c3ccc5536f4e9436ad00984a15283b69f2f32cad33eb3f89713f cb0a64053e82c3ccc5536f4e9436ad00984a15283b69f2f32cad33eb3f89713f ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(initial.acceleration[3 * node], 1, 1e-13) | EXPECT_DOUBLE_EQ(initial.displacement[3 * node], 0) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(initial.acceleration[3 * node], 1, 1e-13) | EXPECT_DOUBLE_EQ(initial.displacement[3 * node], 0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.AllFreeUniformForceRetainsExactRigidTranslationBehavior SolidHhtTemporal.AllFreeUniformForceRetainsExactRigidTranslationBehavior; assertion 9개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.AllFreeUniformForceRetainsExactRigidTranslationBehavior 유지 원문 검사 body 및 assertion 동일. 8f852ae83f87b923ddb98e6b8def6326dadb54b8a8e7f239ca53f21cb5740be0 8f852ae83f87b923ddb98e6b8def6326dadb54b8a8e7f239ca53f21cb5740be0 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(std::any_of( state.Value().IterationRecords().begin(), state.Value().IterationRecords().end(), [](const auto& record) { return record.outcome == ""paired-candidate""; })) | EXPECT_NEAR(f.displacement[3 * n], .5 * f.time * f.time, roundoff * .5 * f.time * f.time) | EXPECT_NEAR(f.velocity[3 * n], f.time, roundoff * f.time) | EXPECT_NEAR(f.acceleration[3 * n], 1, roundoff) | EXPECT_NEAR(f.displacement[3 * n + c], 0, roundoff * .5 * f.time * f.time) | EXPECT_NEAR(f.velocity[3 * n + c], 0, roundoff * f.time) | EXPECT_NEAR(f.acceleration[3 * n + c], 0, roundoff)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(std::any_of( state.Value().IterationRecords().begin(), state.Value().IterationRecords().end(), [](const auto& record) { return record.outcome == ""paired-candidate""; })) | EXPECT_NEAR(f.displacement[3 * n], .5 * f.time * f.time, roundoff * .5 * f.time * f.time) | EXPECT_NEAR(f.velocity[3 * n], f.time, roundoff * f.time) | EXPECT_NEAR(f.acceleration[3 * n], 1, roundoff) | EXPECT_NEAR(f.displacement[3 * n + c], 0, roundoff * .5 * f.time * f.time) | EXPECT_NEAR(f.velocity[3 * n + c], 0, roundoff * f.time) | EXPECT_NEAR(f.acceleration[3 * n + c], 0, roundoff)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.PairedNewtonKeepsAllOriginalComponentsAcrossAxesAndScales SolidHhtTemporal.PairedNewtonKeepsAllOriginalComponentsAcrossAxesAndScales; assertion 10개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.PairedNewtonKeepsAllOriginalComponentsAcrossAxesAndScales 유지 원문 검사 body 및 assertion 동일. 7652c6a7c34e2a7cb0a270e47e8f0e15059187b39635ba1980ddbfac049e0764 7652c6a7c34e2a7cb0a270e47e8f0e15059187b39635ba1980ddbfac049e0764 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(status.IsOk()) | EXPECT_LE(frame.iterations.back().residual_metric, 1e-10) | EXPECT_LE(frame.iterations.back().update_metric, 1e-12) | EXPECT_NEAR(frame.displacement[3 * node + c], .5 * a * frame.time * frame.time, roundoff * .5 * acceleration * frame.time * frame.time) | EXPECT_NEAR(frame.velocity[3 * node + c], a * frame.time, roundoff * acceleration * frame.time) | EXPECT_NEAR(frame.acceleration[3 * node + c], a, roundoff * acceleration) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(status.IsOk()) | EXPECT_LE(frame.iterations.back().residual_metric, 1e-10) | EXPECT_LE(frame.iterations.back().update_metric, 1e-12) | EXPECT_NEAR(frame.displacement[3 * node + c], .5 * a * frame.time * frame.time, roundoff * .5 * acceleration * frame.time * frame.time) | EXPECT_NEAR(frame.velocity[3 * node + c], a * frame.time, roundoff * acceleration * frame.time) | EXPECT_NEAR(frame.acceleration[3 * node + c], a, roundoff * acceleration) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.ActualTwoBrickLinearAndRotatingSmallStrainTlAreSecondOrder SolidHhtTemporal.ActualTwoBrickLinearAndRotatingSmallStrainTlAreSecondOrder; assertion 4개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.ActualTwoBrickLinearAndRotatingSmallStrainTlAreSecondOrder 유지 원문 검사 body 및 assertion 동일. e27884c416eb70f27d47e3985209f13751955e5c30a689ad6d938474f41ca416 e27884c416eb70f27d47e3985209f13751955e5c30a689ad6d938474f41ca416 EXPECT_GT(fine[j], 1e-8) | EXPECT_LT(coarse[j], .1) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) EXPECT_GT(fine[j], 1e-8) | EXPECT_LT(coarse[j], .1) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.IndependentThreeDofBrickOscillatorHasSecondOrderUVA SolidHhtTemporal.IndependentThreeDofBrickOscillatorHasSecondOrderUVA; assertion 5개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.IndependentThreeDofBrickOscillatorHasSecondOrderUVA 유지 원문 검사 body 및 assertion 동일. a3cc00aa843d56fb0d6354682dccb6ddb98a61b624f57e2337a37499cc7e3efa a3cc00aa843d56fb0d6354682dccb6ddb98a61b624f57e2337a37499cc7e3efa ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) | EXPECT_GT(errors[2][j], 1e-15) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) | EXPECT_GT(errors[2][j], 1e-15) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.IndependentScalarBrickOscillatorHasSecondOrderUVA SolidHhtTemporal.IndependentScalarBrickOscillatorHasSecondOrderUVA; assertion 7개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.IndependentScalarBrickOscillatorHasSecondOrderUVA 유지 원문 검사 body 및 assertion 동일. 8cd02e0db682a2480cd82a7ce3bb9d235ada6080f491eb79a280b4fd3469633f 8cd02e0db682a2480cd82a7ce3bb9d235ada6080f491eb79a280b4fd3469633f ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR( f.kinetic_energy, .5 * m * f.velocity[0] * f.velocity[0], 512 * std::numeric_limits::epsilon() * f.kinetic_energy) | EXPECT_NEAR(f.strain_energy, .5 * k * f.displacement[0] * f.displacement[0], 512 * std::numeric_limits::epsilon() * f.strain_energy) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) | EXPECT_GT(errors[2][j], 1e-8) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR( f.kinetic_energy, .5 * m * f.velocity[0] * f.velocity[0], 512 * std::numeric_limits::epsilon() * f.kinetic_energy) | EXPECT_NEAR(f.strain_energy, .5 * k * f.displacement[0] * f.displacement[0], 512 * std::numeric_limits::epsilon() * f.strain_energy) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) | EXPECT_GT(errors[2][j], 1e-8) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.FixedThicknessBendingRetainsDiscreteBulkBias SolidHhtTemporal.FixedThicknessBendingRetainsDiscreteBulkBias; assertion 3개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.FixedThicknessBendingRetainsDiscreteBulkBias 유지 원문 검사 body 및 assertion 동일. e9210764d5fd451d439b84dfd39db8695cac0f2bb2e9aefc1913caaa132185f4 e9210764d5fd451d439b84dfd39db8695cac0f2bb2e9aefc1913caaa132185f4 EXPECT_NEAR(energy[0] / continuum, limit + parasitic, 2e-11) | EXPECT_NEAR(energy[2] / continuum, 0, 2e-13) | EXPECT_NEAR(previous_parasitic / parasitic, 4, 1e-13) EXPECT_NEAR(energy[0] / continuum, limit + parasitic, 2e-11) | EXPECT_NEAR(energy[2] / continuum, 0, 2e-13) | EXPECT_NEAR(previous_parasitic / parasitic, 4, 1e-13) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.BendingMeshRefinementQuantifiesFullIntegrationShearLocking SolidHhtTemporal.BendingMeshRefinementQuantifiesFullIntegrationShearLocking; assertion 4개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.BendingMeshRefinementQuantifiesFullIntegrationShearLocking 유지 원문 검사 body 및 assertion 동일. f2d9632408ddbfd1de879876b41c4dbed627801d1bc3b1454cedd7b77345ce1d f2d9632408ddbfd1de879876b41c4dbed627801d1bc3b1454cedd7b77345ce1d EXPECT_NEAR(error, shear - missing_bulk, 2e-11) | EXPECT_NEAR(energy[1] / continuum, 4 * mu / (3 * axial) + shear, 2e-11) | EXPECT_NEAR(energy[2] / continuum, bulk / axial - missing_bulk, 2e-11) | EXPECT_NEAR(previous_error / error, 4, 1e-10) EXPECT_NEAR(error, shear - missing_bulk, 2e-11) | EXPECT_NEAR(energy[1] / continuum, 4 * mu / (3 * axial) + shear, 2e-11) | EXPECT_NEAR(energy[2] / continuum, bulk / axial - missing_bulk, 2e-11) | EXPECT_NEAR(previous_error / error, 4, 1e-10) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp support@1-332 helper/oracle/fixture/include/static assertion 구간: AffineMotion, Motion, if, Apply, TwoBricks, ExactForce, ExactMassProduct, AddCross, ManufacturedRun, for tests/unit/analysis/solid_hht_temporal_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4c8ee89aab5bd9798906f93ce66756ce94ef4d24fd91379106f91fb317702361 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/solid_hht_temporal_verification_test.cpp support@602-649 helper/oracle/fixture/include/static assertion 구간: BendingEnergy tests/unit/analysis/solid_hht_temporal_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5ea1a45d3745809343ba4a3358aaafeb00f60c830f663189069687af8a684b7f 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/solid_hht_test_fixture.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/unit/analysis/solid_hht_test_fixture.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e2621f72b12715391a06e51ec23a320063679e90af74443afd5237197194b962 2ffd1ec89405f926f038cb58fc612604ff8e17853c134caf7cb127c32685cefd 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/solid_hht_test_fixture.h support@1-52 helper/oracle/fixture/include/static assertion 구간: solid_hht_test, Brick, Message tests/unit/analysis/solid_hht_test_fixture.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e2621f72b12715391a06e51ec23a320063679e90af74443afd5237197194b962 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/solid_static_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 22개 tests/unit/analysis/solid_static_procedure_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 34391f18bae6f8ff3abe2d99d252ab74cbdd481fd066ba1594419eb2f1da5ab1 8253b2e91a4db4d52cc039a5084ddfb93f7b0ffd1d10b1680e0e79439eabcb04 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LinearForceNonzeroSupportAndCompleteRecovery SolidStaticProcedure.LinearForceNonzeroSupportAndCompleteRecovery; assertion 17개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LinearForceNonzeroSupportAndCompleteRecovery 유지 원문 검사 body 및 assertion 동일. 0661804c27dc3d473e445fb06a9874f92a9e56b90ad2f77cafcd5eda24a801ed 0661804c27dc3d473e445fb06a9874f92a9e56b90ad2f77cafcd5eda24a801ed ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 1U) | EXPECT_EQ(frame.frame_index, 0U) | EXPECT_DOUBLE_EQ(frame.load_factor, 1.0) | ASSERT_EQ(frame.displacement.Size(), 24U) | ASSERT_EQ(frame.solid_results.size(), 8U) | EXPECT_NEAR(frame.displacement[3 * a], 0.02 + 0.01 * kX[a][0], 1e-13) | EXPECT_NEAR(frame.displacement[3 * a + 1], -0.0025 * kX[a][1], 1e-13) | EXPECT_NEAR(frame.displacement[3 * a + 2], -0.0025 * kX[a][2], 1e-13) | EXPECT_DOUBLE_EQ(frame.reaction[3 * a], 0.0) | EXPECT_NEAR(frame.reaction[3 * a], -0.3, 1e-13) | EXPECT_NEAR(frame.physical_strain_energy, 0.006, 1e-13) | EXPECT_NEAR(point.cauchy_stress[0], 1.2, 1e-12) | EXPECT_NEAR(point.cauchy_stress[1], 0.0, 1e-12) | EXPECT_NEAR(point.strain[0], 0.01, 1e-13) | EXPECT_NEAR(value, 0.0, 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 1U) | EXPECT_EQ(frame.frame_index, 0U) | EXPECT_DOUBLE_EQ(frame.load_factor, 1.0) | ASSERT_EQ(frame.displacement.Size(), 24U) | ASSERT_EQ(frame.solid_results.size(), 8U) | EXPECT_NEAR(frame.displacement[3 * a], 0.02 + 0.01 * kX[a][0], 1e-13) | EXPECT_NEAR(frame.displacement[3 * a + 1], -0.0025 * kX[a][1], 1e-13) | EXPECT_NEAR(frame.displacement[3 * a + 2], -0.0025 * kX[a][2], 1e-13) | EXPECT_DOUBLE_EQ(frame.reaction[3 * a], 0.0) | EXPECT_NEAR(frame.reaction[3 * a], -0.3, 1e-13) | EXPECT_NEAR(frame.physical_strain_energy, 0.006, 1e-13) | EXPECT_NEAR(point.cauchy_stress[0], 1.2, 1e-12) | EXPECT_NEAR(point.cauchy_stress[1], 0.0, 1e-12) | EXPECT_NEAR(point.strain[0], 0.01, 1e-13) | EXPECT_NEAR(value, 0.0, 1e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.AllConstrainedShearHasTensorStrainAndLinearMomentEvidence SolidStaticProcedure.AllConstrainedShearHasTensorStrainAndLinearMomentEvidence; assertion 8개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.AllConstrainedShearHasTensorStrainAndLinearMomentEvidence 유지 원문 검사 body 및 assertion 동일. e2c2aaea106d7f59e5ac8f4e9b545fe99ced00b92c0113d4e36fd40d305a972b e2c2aaea106d7f59e5ac8f4e9b545fe99ced00b92c0113d4e36fd40d305a972b ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(point.strain[3], 0.015, 1e-13) | EXPECT_NEAR(point.cauchy_stress[3], 1.44, 1e-12) | EXPECT_NEAR(frame.physical_strain_energy, 0.0504, 1e-13) | EXPECT_GT(std::abs(frame.balance.current_internal_moment[2]), 1e-5) | EXPECT_NEAR(frame.balance.current_internal_moment[2], frame.balance.linearization_moment[2], 1e-12) | EXPECT_NEAR(frame.balance.reference_internal_moment[2], 0.0, 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(point.strain[3], 0.015, 1e-13) | EXPECT_NEAR(point.cauchy_stress[3], 1.44, 1e-12) | EXPECT_NEAR(frame.physical_strain_energy, 0.0504, 1e-13) | EXPECT_GT(std::abs(frame.balance.current_internal_moment[2]), 1e-5) | EXPECT_NEAR(frame.balance.current_internal_moment[2], frame.balance.linearization_moment[2], 1e-12) | EXPECT_NEAR(frame.balance.reference_internal_moment[2], 0.0, 1e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.NonlinearDirectScheduleScalesForceAndAbsoluteTargets SolidStaticProcedure.NonlinearDirectScheduleScalesForceAndAbsoluteTargets; assertion 13개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.NonlinearDirectScheduleScalesForceAndAbsoluteTargets 유지 원문 검사 body 및 assertion 동일. d9e5db680ab7cfefe0bb0adc600921ea6a1ce60566317367656d013931bfebf6 d9e5db680ab7cfefe0bb0adc600921ea6a1ce60566317367656d013931bfebf6 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 4U) | EXPECT_EQ(frame.frame_index, n) | EXPECT_EQ(frame.increment_index, n + 1U) | EXPECT_DOUBLE_EQ(frame.load_factor, 0.25 * (n + 1)) | EXPECT_DOUBLE_EQ(frame.displacement[0], 0.02 * frame.load_factor) | EXPECT_DOUBLE_EQ(frame.external_force[3], 0.3 * frame.load_factor) | EXPECT_GT(frame.iteration_count, 1U) | EXPECT_EQ(frame.is_factor_one, n == 3) | EXPECT_NEAR(value, 0.0, 1e-12) | ASSERT_FALSE(result.Value().state.IterationRecords().empty()) | EXPECT_TRUE(result.Value().state.IterationRecords().back().accepted) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 4U) | EXPECT_EQ(frame.frame_index, n) | EXPECT_EQ(frame.increment_index, n + 1U) | EXPECT_DOUBLE_EQ(frame.load_factor, 0.25 * (n + 1)) | EXPECT_DOUBLE_EQ(frame.displacement[0], 0.02 * frame.load_factor) | EXPECT_DOUBLE_EQ(frame.external_force[3], 0.3 * frame.load_factor) | EXPECT_GT(frame.iteration_count, 1U) | EXPECT_EQ(frame.is_factor_one, n == 3) | EXPECT_NEAR(value, 0.0, 1e-12) | ASSERT_FALSE(result.Value().state.IterationRecords().empty()) | EXPECT_TRUE(result.Value().state.IterationRecords().back().accepted) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PurePrescribedNonlinearAndSmallLoadLinearLimit SolidStaticProcedure.PurePrescribedNonlinearAndSmallLoadLinearLimit; assertion 9개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PurePrescribedNonlinearAndSmallLoadLinearLimit 유지 원문 검사 body 및 assertion 동일. 45b82b45c2f4ba29abb9e5f78b83dea26d453f512441f7bb2d79443d02ab4f92 45b82b45c2f4ba29abb9e5f78b83dea26d453f512441f7bb2d79443d02ab4f92 ASSERT_TRUE(pure.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(record.force_residual.branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(record.force_residual.denominator_scale, 0.0) | ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(l.HasValue()) | ASSERT_TRUE(n.HasValue()) | EXPECT_NEAR(l.Value().state.CommittedState().displacement[i], n.Value().state.CommittedState().displacement[i], 2e-13) ASSERT_TRUE(pure.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(record.force_residual.branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(record.force_residual.denominator_scale, 0.0) | ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(l.HasValue()) | ASSERT_TRUE(n.HasValue()) | EXPECT_NEAR(l.Value().state.CommittedState().displacement[i], n.Value().state.CommittedState().displacement[i], 2e-13) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.StrainedThenRotatedTLCauchyAndEnergyOracle SolidStaticProcedure.StrainedThenRotatedTLCauchyAndEnergyOracle; assertion 7개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.StrainedThenRotatedTLCauchyAndEnergyOracle 유지 원문 검사 body 및 assertion 동일. ae7f274dc580d801db003d380539c0153f30638e98a1aef9ddb9bed86a5cf421 ae7f274dc580d801db003d380539c0153f30638e98a1aef9ddb9bed86a5cf421 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(point.strain[0], green, 1e-13) | EXPECT_NEAR( point.cauchy_stress[0], std::pow(std::cos(angle), 2) * s0 + std::pow(std::sin(angle), 2) * s1, 1e-11) | EXPECT_NEAR(point.cauchy_stress[3], std::sin(angle) * std::cos(angle) * (s0 - s1), 1e-11) | EXPECT_NEAR(frame.physical_strain_energy, 72 * green * green, 1e-12) | EXPECT_NEAR(value, 0.0, 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(point.strain[0], green, 1e-13) | EXPECT_NEAR( point.cauchy_stress[0], std::pow(std::cos(angle), 2) * s0 + std::pow(std::sin(angle), 2) * s1, 1e-11) | EXPECT_NEAR(point.cauchy_stress[3], std::sin(angle) * std::cos(angle) * (s0 - s1), 1e-11) | EXPECT_NEAR(frame.physical_strain_energy, 72 * green * green, 1e-12) | EXPECT_NEAR(value, 0.0, 1e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.FailedBackendKeepsActualAcceptedHistory SolidStaticProcedure.FailedBackendKeepsActualAcceptedHistory; assertion 11개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.FailedBackendKeepsActualAcceptedHistory 유지 원문 검사 body 및 assertion 동일. 8fcbb8d30b751700e685c57cf7f932779ef1105776f8c5cde20834df611a5075 8fcbb8d30b751700e685c57cf7f932779ef1105776f8c5cde20834df611a5075 "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.25) | EXPECT_EQ(state.CommittedState().displacement.Size(), 24U) | EXPECT_EQ(state.CommittedState().solid_results.size(), 8U) | EXPECT_EQ(state.IterationRecords().back().diagnostic_code, ""injected-backend"") | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | EXPECT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.25)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.25) | EXPECT_EQ(state.CommittedState().displacement.Size(), 24U) | EXPECT_EQ(state.CommittedState().solid_results.size(), 8U) | EXPECT_EQ(state.IterationRecords().back().diagnostic_code, ""injected-backend"") | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | EXPECT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.25)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.GeometryIterationAndNonfiniteFailuresPreserveBaseline SolidStaticProcedure.GeometryIterationAndNonfiniteFailuresPreserveBaseline; assertion 10개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.GeometryIterationAndNonfiniteFailuresPreserveBaseline 유지 원문 검사 body 및 assertion 동일. d01826c155aeded9026db515baedaf45ea10080a9ac6c9e5604e3e8f05b46770 d01826c155aeded9026db515baedaf45ea10080a9ac6c9e5604e3e8f05b46770 ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(state.AcceptedFrames().empty()) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.0) | ASSERT_EQ(state.CommittedState().displacement.Size(), 24U) | EXPECT_DOUBLE_EQ(state.CommittedState().displacement[i], 0.0) | ASSERT_FALSE(state.IterationRecords().empty()) | EXPECT_FALSE(state.IterationRecords().back().accepted) | EXPECT_FALSE(state.IterationRecords().back().diagnostic_code.empty()) | EXPECT_EQ(state.IterationRecords().back().iteration, 100U) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(state.AcceptedFrames().empty()) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.0) | ASSERT_EQ(state.CommittedState().displacement.Size(), 24U) | EXPECT_DOUBLE_EQ(state.CommittedState().displacement[i], 0.0) | ASSERT_FALSE(state.IterationRecords().empty()) | EXPECT_FALSE(state.IterationRecords().back().accepted) | EXPECT_FALSE(state.IterationRecords().back().diagnostic_code.empty()) | EXPECT_EQ(state.IterationRecords().back().iteration, 100U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.UnconstrainedSolidFailsWithoutRegularization SolidStaticProcedure.UnconstrainedSolidFailsWithoutRegularization; assertion 2개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.UnconstrainedSolidFailsWithoutRegularization 유지 원문 검사 body 및 assertion 동일. 26a02bf428c8b4d8684b66f3b75d4fc83e96c18d6497d81dba18879b19b2c81f 26a02bf428c8b4d8684b66f3b75d4fc83e96c18d6497d81dba18879b19b2c81f ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(result.HasValue()) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(result.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.EightElementAffinePatchHasSolvedInteriorAndStableRows SolidStaticProcedure.EightElementAffinePatchHasSolvedInteriorAndStableRows; assertion 18개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.EightElementAffinePatchHasSolvedInteriorAndStableRows 유지 원문 검사 body 및 assertion 동일. db9abadb927e8b0a0bb434ae43107b27275e65355b74fbba89d72cfad8c88d91 db9abadb927e8b0a0bb434ae43107b27275e65355b74fbba89d72cfad8c88d91 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(frame.solid_results.size(), 64U) | EXPECT_NEAR(frame.displacement[3 * 13], 0.05, 1e-13) | EXPECT_NEAR(frame.displacement[3 * 13 + 1], 0.0, 1e-13) | EXPECT_NEAR(frame.displacement[3 * 13 + 2], 0.0, 1e-13) | EXPECT_NEAR(frame.physical_strain_energy, 8 * 0.0504, 1e-12) | EXPECT_EQ(frame.solid_results[g].element, g / 8) | EXPECT_EQ(frame.solid_results[g].integration_point, static_cast(g % 8 + 1)) | EXPECT_NEAR(frame.solid_results[g].cauchy_stress[0], 2.88, 1e-12) | EXPECT_NEAR(frame.solid_results[g].cauchy_stress[3], 1.44, 1e-12) | ASSERT_TRUE(parallel_result.HasValue()) | EXPECT_DOUBLE_EQ(parallel_frame.physical_strain_energy, frame.physical_strain_energy) | EXPECT_DOUBLE_EQ(parallel_frame.displacement[i], frame.displacement[i]) | EXPECT_DOUBLE_EQ(parallel_frame.internal_force[i], frame.internal_force[i]) | EXPECT_DOUBLE_EQ(parallel_frame.residual[i], frame.residual[i]) | EXPECT_EQ(parallel_frame.solid_results[g].cauchy_stress, frame.solid_results[g].cauchy_stress) | EXPECT_EQ(parallel_frame.solid_results[g].strain, frame.solid_results[g].strain) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(frame.solid_results.size(), 64U) | EXPECT_NEAR(frame.displacement[3 * 13], 0.05, 1e-13) | EXPECT_NEAR(frame.displacement[3 * 13 + 1], 0.0, 1e-13) | EXPECT_NEAR(frame.displacement[3 * 13 + 2], 0.0, 1e-13) | EXPECT_NEAR(frame.physical_strain_energy, 8 * 0.0504, 1e-12) | EXPECT_EQ(frame.solid_results[g].element, g / 8) | EXPECT_EQ(frame.solid_results[g].integration_point, static_cast(g % 8 + 1)) | EXPECT_NEAR(frame.solid_results[g].cauchy_stress[0], 2.88, 1e-12) | EXPECT_NEAR(frame.solid_results[g].cauchy_stress[3], 1.44, 1e-12) | ASSERT_TRUE(parallel_result.HasValue()) | EXPECT_DOUBLE_EQ(parallel_frame.physical_strain_energy, frame.physical_strain_energy) | EXPECT_DOUBLE_EQ(parallel_frame.displacement[i], frame.displacement[i]) | EXPECT_DOUBLE_EQ(parallel_frame.internal_force[i], frame.internal_force[i]) | EXPECT_DOUBLE_EQ(parallel_frame.residual[i], frame.residual[i]) | EXPECT_EQ(parallel_frame.solid_results[g].cauchy_stress, frame.solid_results[g].cauchy_stress) | EXPECT_EQ(parallel_frame.solid_results[g].strain, frame.solid_results[g].strain) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LaterInvertedPrescribedTrialPreservesThreeAcceptedFrames SolidStaticProcedure.LaterInvertedPrescribedTrialPreservesThreeAcceptedFrames; assertion 8개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LaterInvertedPrescribedTrialPreservesThreeAcceptedFrames 유지 원문 검사 body 및 assertion 동일. aa4fc98ea93ac0cf4107c008482a044d58aa6fe24db7d22ac1f070603a8cd04c aa4fc98ea93ac0cf4107c008482a044d58aa6fe24db7d22ac1f070603a8cd04c ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 3U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.75) | EXPECT_NEAR(state.CommittedState().displacement[3], -0.9, 1e-15) | ASSERT_EQ(state.CommittedState().solid_results.size(), 8U) | EXPECT_EQ(state.IterationRecords().back().increment_index, 4U) | EXPECT_FALSE(state.IterationRecords().back().accepted) ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 3U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.75) | EXPECT_NEAR(state.CommittedState().displacement[3], -0.9, 1e-15) | ASSERT_EQ(state.CommittedState().solid_results.size(), 8U) | EXPECT_EQ(state.IterationRecords().back().increment_index, 4U) | EXPECT_FALSE(state.IterationRecords().back().accepted) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PartiallySupportedRigidMechanismAlsoFailsUnloaded SolidStaticProcedure.PartiallySupportedRigidMechanismAlsoFailsUnloaded; assertion 3개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PartiallySupportedRigidMechanismAlsoFailsUnloaded 유지 원문 검사 body 및 assertion 동일. 7f3830b55f5ac74af77b283eb5c3bc1c1e747a146c92b19de6d45f417141e9c5 7f3830b55f5ac74af77b283eb5c3bc1c1e747a146c92b19de6d45f417141e9c5 ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.SerialAndTbbFramesAndFailureEvidenceAreIdentical SolidStaticProcedure.SerialAndTbbFramesAndFailureEvidenceAreIdentical; assertion 18개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.SerialAndTbbFramesAndFailureEvidenceAreIdentical 유지 원문 검사 body 및 assertion 동일. 2204b6d824ccabcf85805a5c154e72abfcd625aa56a832f3814e99a3e0e70a47 2204b6d824ccabcf85805a5c154e72abfcd625aa56a832f3814e99a3e0e70a47 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(a.HasValue()) | ASSERT_TRUE(b.HasValue()) | ASSERT_EQ(a.Value().state.AcceptedFrames().size(), b.Value().state.AcceptedFrames().size()) | EXPECT_DOUBLE_EQ(af.physical_strain_energy, bf.physical_strain_energy) | EXPECT_EQ(af.global_equilibrium, bf.global_equilibrium) | EXPECT_DOUBLE_EQ(af.displacement[i], bf.displacement[i]) | EXPECT_DOUBLE_EQ(af.residual[i], bf.residual[i]) | EXPECT_DOUBLE_EQ(af.reaction[i], bf.reaction[i]) | EXPECT_EQ(af.solid_results[g].cauchy_stress, bf.solid_results[g].cauchy_stress) | EXPECT_EQ(af.solid_results[g].strain, bf.solid_results[g].strain) | ASSERT_TRUE(invalid.HasValue()) | ASSERT_FALSE(as.IsOk()) | ASSERT_FALSE(bs.IsOk()) | EXPECT_EQ(as.Diagnostics()[0].code, bs.Diagnostics()[0].code) | EXPECT_EQ(sa.AcceptedFrames().size(), sb.AcceptedFrames().size()) | EXPECT_EQ(sa.IterationRecords().back().stage, sb.IterationRecords().back().stage) | EXPECT_DOUBLE_EQ(sa.CommittedState().physical_strain_energy, sb.CommittedState().physical_strain_energy) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(a.HasValue()) | ASSERT_TRUE(b.HasValue()) | ASSERT_EQ(a.Value().state.AcceptedFrames().size(), b.Value().state.AcceptedFrames().size()) | EXPECT_DOUBLE_EQ(af.physical_strain_energy, bf.physical_strain_energy) | EXPECT_EQ(af.global_equilibrium, bf.global_equilibrium) | EXPECT_DOUBLE_EQ(af.displacement[i], bf.displacement[i]) | EXPECT_DOUBLE_EQ(af.residual[i], bf.residual[i]) | EXPECT_DOUBLE_EQ(af.reaction[i], bf.reaction[i]) | EXPECT_EQ(af.solid_results[g].cauchy_stress, bf.solid_results[g].cauchy_stress) | EXPECT_EQ(af.solid_results[g].strain, bf.solid_results[g].strain) | ASSERT_TRUE(invalid.HasValue()) | ASSERT_FALSE(as.IsOk()) | ASSERT_FALSE(bs.IsOk()) | EXPECT_EQ(as.Diagnostics()[0].code, bs.Diagnostics()[0].code) | EXPECT_EQ(sa.AcceptedFrames().size(), sb.AcceptedFrames().size()) | EXPECT_EQ(sa.IterationRecords().back().stage, sb.IterationRecords().back().stage) | EXPECT_DOUBLE_EQ(sa.CommittedState().physical_strain_energy, sb.CommittedState().physical_strain_energy) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.InvalidRecoveryAndRepeatedExecutionKeepAcceptedFrame SolidStaticProcedure.InvalidRecoveryAndRepeatedExecutionKeepAcceptedFrame; assertion 9개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.InvalidRecoveryAndRepeatedExecutionKeepAcceptedFrame 유지 원문 검사 body 및 assertion 동일. c7dfc371a7b67a1c78981dc4d1deb65f7122dcff6108ae6c7ec65caf7448d811 c7dfc371a7b67a1c78981dc4d1deb65f7122dcff6108ae6c7ec65caf7448d811 ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(fesa::SolidStaticProcedureExecutor(serial, linear, tangent) .ExecuteInto(domain.Value(), state) .IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().physical_strain_energy, valid.physical_strain_energy) | EXPECT_EQ(state.CommittedState().solid_results[0].cauchy_stress, valid.solid_results[0].cauchy_stress) | EXPECT_FALSE(fesa::SolidStaticProcedureExecutor(serial, linear, tangent) .ExecuteInto(domain.Value(), state) .IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(fesa::SolidStaticProcedureExecutor(serial, linear, tangent) .ExecuteInto(domain.Value(), state) .IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().physical_strain_energy, valid.physical_strain_energy) | EXPECT_EQ(state.CommittedState().solid_results[0].cauchy_stress, valid.solid_results[0].cauchy_stress) | EXPECT_FALSE(fesa::SolidStaticProcedureExecutor(serial, linear, tangent) .ExecuteInto(domain.Value(), state) .IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.StressedIndefiniteFreeTangentUsesCapableBackend SolidStaticProcedure.StressedIndefiniteFreeTangentUsesCapableBackend; assertion 6개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.StressedIndefiniteFreeTangentUsesCapableBackend 유지 원문 검사 body 및 assertion 동일. b812d55397294e1477756f267282142cdab4613da0d6ba78c49161e44a4bb757 b812d55397294e1477756f267282142cdab4613da0d6ba78c49161e44a4bb757 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(tangent.rayleigh_sum, -21.12, 1e-12) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 1U) | EXPECT_NEAR(frame.displacement[3 * a + 1], 0.0, 1e-13) | EXPECT_NEAR(frame.solid_results[0].strain[0], -.48, 1e-13) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(tangent.rayleigh_sum, -21.12, 1e-12) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 1U) | EXPECT_NEAR(frame.displacement[3 * a + 1], 0.0, 1e-13) | EXPECT_NEAR(frame.solid_results[0].strain[0], -.48, 1e-13) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.FullyConstrainedZeroDisplacementRetainsSupportLoadResidual SolidStaticProcedure.FullyConstrainedZeroDisplacementRetainsSupportLoadResidual; assertion 8개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.FullyConstrainedZeroDisplacementRetainsSupportLoadResidual 유지 원문 검사 body 및 assertion 동일. 956d6dd86eb3526eb262dd5e38e7b4245a5a0dda8fba51effed01c553a14f29f 956d6dd86eb3526eb262dd5e38e7b4245a5a0dda8fba51effed01c553a14f29f ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frame.internal_force[0], 0.0) | EXPECT_DOUBLE_EQ(frame.residual[0], -7.0) | EXPECT_DOUBLE_EQ(frame.reaction[0], -7.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | ASSERT_EQ(frame.solid_results.size(), 8U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frame.internal_force[0], 0.0) | EXPECT_DOUBLE_EQ(frame.residual[0], -7.0) | EXPECT_DOUBLE_EQ(frame.reaction[0], -7.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | ASSERT_EQ(frame.solid_results.size(), 8U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.UniformPrescribedTranslationHasExactlyZeroRecovery SolidStaticProcedure.UniformPrescribedTranslationHasExactlyZeroRecovery; assertion 11개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.UniformPrescribedTranslationHasExactlyZeroRecovery 유지 원문 검사 body 및 assertion 동일. 283e16609b747830674f685910884882be83a270558850725c06370227b2ff47 283e16609b747830674f685910884882be83a270558850725c06370227b2ff47 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(frame.displacement.Size(), 24U) | EXPECT_DOUBLE_EQ(frame.displacement[i], translation[i % 3U]) | EXPECT_DOUBLE_EQ(frame.internal_force[i], 0.0) | EXPECT_DOUBLE_EQ(frame.residual[i], 0.0) | EXPECT_DOUBLE_EQ(frame.reaction[i], 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | ASSERT_EQ(frame.solid_results.size(), 8U) | EXPECT_DOUBLE_EQ(strain, 0.0) | EXPECT_DOUBLE_EQ(stress, 0.0) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(frame.displacement.Size(), 24U) | EXPECT_DOUBLE_EQ(frame.displacement[i], translation[i % 3U]) | EXPECT_DOUBLE_EQ(frame.internal_force[i], 0.0) | EXPECT_DOUBLE_EQ(frame.residual[i], 0.0) | EXPECT_DOUBLE_EQ(frame.reaction[i], 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | ASSERT_EQ(frame.solid_results.size(), 8U) | EXPECT_DOUBLE_EQ(strain, 0.0) | EXPECT_DOUBLE_EQ(stress, 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.MixedStrainAndTranslationPreserveAnalyticRecovery SolidStaticProcedure.MixedStrainAndTranslationPreserveAnalyticRecovery; assertion 16개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.MixedStrainAndTranslationPreserveAnalyticRecovery 유지 원문 검사 body 및 assertion 동일. d39c4b7c1d12b2e0b05fc9b5df66b9d0a184eee9e1f297b5fb4ea583f8655f8d d39c4b7c1d12b2e0b05fc9b5df66b9d0a184eee9e1f297b5fb4ea583f8655f8d ASSERT_TRUE(original_domain.HasValue()) | ASSERT_TRUE(translated_domain.HasValue()) | ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(translated.HasValue()) | EXPECT_NEAR(frame->physical_strain_energy, 0.1640625, 1e-13) | EXPECT_NEAR(point.strain[0], 1.0 / 32, 1e-15) | EXPECT_NEAR(point.strain[3], 1.0 / 32, 1e-15) | EXPECT_NEAR(point.cauchy_stress[c], stress[c], 1e-13) | EXPECT_NEAR(frame->internal_force[3 * node + c], exact_force[c], 1e-13) | EXPECT_NEAR(frame->reaction[3 * node + c], exact_force[c], 1e-13) | EXPECT_DOUBLE_EQ(a.physical_strain_energy, b.physical_strain_energy) | EXPECT_DOUBLE_EQ(a.internal_force[i], b.internal_force[i]) | EXPECT_DOUBLE_EQ(a.reaction[i], b.reaction[i]) | EXPECT_DOUBLE_EQ(a.residual[i], b.residual[i]) | EXPECT_EQ(a.solid_results[g].strain, b.solid_results[g].strain) | EXPECT_EQ(a.solid_results[g].cauchy_stress, b.solid_results[g].cauchy_stress) ASSERT_TRUE(original_domain.HasValue()) | ASSERT_TRUE(translated_domain.HasValue()) | ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(translated.HasValue()) | EXPECT_NEAR(frame->physical_strain_energy, 0.1640625, 1e-13) | EXPECT_NEAR(point.strain[0], 1.0 / 32, 1e-15) | EXPECT_NEAR(point.strain[3], 1.0 / 32, 1e-15) | EXPECT_NEAR(point.cauchy_stress[c], stress[c], 1e-13) | EXPECT_NEAR(frame->internal_force[3 * node + c], exact_force[c], 1e-13) | EXPECT_NEAR(frame->reaction[3 * node + c], exact_force[c], 1e-13) | EXPECT_DOUBLE_EQ(a.physical_strain_energy, b.physical_strain_energy) | EXPECT_DOUBLE_EQ(a.internal_force[i], b.internal_force[i]) | EXPECT_DOUBLE_EQ(a.reaction[i], b.reaction[i]) | EXPECT_DOUBLE_EQ(a.residual[i], b.residual[i]) | EXPECT_EQ(a.solid_results[g].strain, b.solid_results[g].strain) | EXPECT_EQ(a.solid_results[g].cauchy_stress, b.solid_results[g].cauchy_stress) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PureLargeRigidRotationEndsAtZeroStrainEnergy SolidStaticProcedure.PureLargeRigidRotationEndsAtZeroStrainEnergy; assertion 5개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PureLargeRigidRotationEndsAtZeroStrainEnergy 유지 원문 검사 body 및 assertion 동일. 4fe6729cebd103240b949a646d1071d16c80aa9b748edec55cac4187a571090d 4fe6729cebd103240b949a646d1071d16c80aa9b748edec55cac4187a571090d ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(frame.physical_strain_energy, 0.0, 1e-25) | EXPECT_NEAR(value, 0.0, 1e-14) | EXPECT_NEAR(value, 0.0, 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(frame.physical_strain_energy, 0.0, 1e-25) | EXPECT_NEAR(value, 0.0, 1e-14) | EXPECT_NEAR(value, 0.0, 1e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.OrdinaryStaticKeepsExistingFinalShortFactorPath SolidStaticProcedure.OrdinaryStaticKeepsExistingFinalShortFactorPath; assertion 6개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.OrdinaryStaticKeepsExistingFinalShortFactorPath 유지 원문 검사 body 및 assertion 동일. f89b10887a1fc24fed122505ce929cd71894836076dc926635924d209419eb98 f89b10887a1fc24fed122505ce929cd71894836076dc926635924d209419eb98 ASSERT_NE(position, std::string::npos) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 4U) | EXPECT_NEAR(result.Value().state.AcceptedFrames()[i].load_factor, factors[i], 1e-15) | EXPECT_DOUBLE_EQ(result.Value().state.CommittedState().load_factor, 1.0) ASSERT_NE(position, std::string::npos) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 4U) | EXPECT_NEAR(result.Value().state.AcceptedFrames()[i].load_factor, factors[i], 1e-15) | EXPECT_DOUBLE_EQ(result.Value().state.CommittedState().load_factor, 1.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.BoundedSpatialRefinementReportsFullIntegrationLocking SolidStaticProcedure.BoundedSpatialRefinementReportsFullIntegrationLocking; assertion 6개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.BoundedSpatialRefinementReportsFullIntegrationLocking 유지 원문 검사 body 및 assertion 동일. 0be527378cf6b99c5d21b37fae3756fcf90b3baf550974c57e04fc9f1f828875 0be527378cf6b99c5d21b37fae3756fcf90b3baf550974c57e04fc9f1f828875 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GT(tip, previous[material]) | EXPECT_LT(tip, 1.05 * beam_limit) | EXPECT_LT(final[1], final[0]) | EXPECT_GT(std::abs(final[1] - beam_limit), std::abs(final[0] - beam_limit)) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GT(tip, previous[material]) | EXPECT_LT(tip, 1.05 * beam_limit) | EXPECT_LT(final[1], final[0]) | EXPECT_GT(std::abs(final[1] - beam_limit), std::abs(final[0] - beam_limit)) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LaterIterationNonfiniteAndGeometryFailureKeepEveryAcceptedQuantity SolidStaticProcedure.LaterIterationNonfiniteAndGeometryFailureKeepEveryAcceptedQuantity; assertion 16개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LaterIterationNonfiniteAndGeometryFailureKeepEveryAcceptedQuantity 유지 원문 검사 body 및 assertion 동일. d625f760d2aab29539cf34d792d6540f1c67c9e627fe2e17ec186ddc74df2f36 d625f760d2aab29539cf34d792d6540f1c67c9e627fe2e17ec186ddc74df2f36 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(successful.HasValue()) | ASSERT_EQ(expected.iteration_count, 2U) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_EQ(actual.global_equilibrium, expected.global_equilibrium) | EXPECT_DOUBLE_EQ(actual.physical_strain_energy, expected.physical_strain_energy) | EXPECT_DOUBLE_EQ(actual.displacement[i], expected.displacement[i]) | EXPECT_DOUBLE_EQ(actual.internal_force[i], expected.internal_force[i]) | EXPECT_DOUBLE_EQ(actual.external_force[i], expected.external_force[i]) | EXPECT_DOUBLE_EQ(actual.residual[i], expected.residual[i]) | EXPECT_DOUBLE_EQ(actual.reaction[i], expected.reaction[i]) | EXPECT_EQ(actual.solid_results[g].strain, expected.solid_results[g].strain) | EXPECT_EQ(actual.solid_results[g].cauchy_stress, expected.solid_results[g].cauchy_stress) | EXPECT_EQ(state.IterationRecords().back().increment_index, 2U) | EXPECT_FALSE(state.IterationRecords().back().accepted) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(successful.HasValue()) | ASSERT_EQ(expected.iteration_count, 2U) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_EQ(actual.global_equilibrium, expected.global_equilibrium) | EXPECT_DOUBLE_EQ(actual.physical_strain_energy, expected.physical_strain_energy) | EXPECT_DOUBLE_EQ(actual.displacement[i], expected.displacement[i]) | EXPECT_DOUBLE_EQ(actual.internal_force[i], expected.internal_force[i]) | EXPECT_DOUBLE_EQ(actual.external_force[i], expected.external_force[i]) | EXPECT_DOUBLE_EQ(actual.residual[i], expected.residual[i]) | EXPECT_DOUBLE_EQ(actual.reaction[i], expected.reaction[i]) | EXPECT_EQ(actual.solid_results[g].strain, expected.solid_results[g].strain) | EXPECT_EQ(actual.solid_results[g].cauchy_stress, expected.solid_results[g].cauchy_stress) | EXPECT_EQ(state.IterationRecords().back().increment_index, 2U) | EXPECT_FALSE(state.IterationRecords().back().accepted) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.ExecutesBothUnmodifiedStaticSourceDecksThroughDirectApi SolidStaticProcedure.ExecutesBothUnmodifiedStaticSourceDecksThroughDirectApi; assertion 8개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.ExecutesBothUnmodifiedStaticSourceDecksThroughDirectApi 유지 원문 검사 body 및 assertion 동일. d3a90f93d9d9490f75afc00c665defc23cf55c13bfbca813fa2fed3140416ce3 d3a90f93d9d9490f75afc00c665defc23cf55c13bfbca813fa2fed3140416ce3 ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frame.load_factor, 1.0) | EXPECT_EQ(frame.increment_index, 10U) | EXPECT_EQ(frame.displacement.Size(), 442U * 3U) | EXPECT_EQ(frame.solid_results.size(), 300U * 8U) | EXPECT_EQ(state.AcceptedFrames().size(), domain.Value().Steps()[0].IsNonlinearStatic() ? 10U : 1U) ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frame.load_factor, 1.0) | EXPECT_EQ(frame.increment_index, 10U) | EXPECT_EQ(frame.displacement.Size(), 442U * 3U) | EXPECT_EQ(frame.solid_results.size(), 300U * 8U) | EXPECT_EQ(state.AcceptedFrames().size(), domain.Value().Steps()[0].IsNonlinearStatic() ? 10U : 1U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_procedure_test.cpp support@1-151 helper/oracle/fixture/include/static assertion 구간: Deck, Map, Message, ExecuteSolid, Supports, Tension, AffineBoundary, FailedTangent, Mode, ObservedIndefiniteTangent tests/unit/analysis/solid_static_procedure_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e4768526452793c2de88bf64c053e12858ebb196ae6e2088db2b57174f836c7a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/solid_static_procedure_test.cpp support@687-728 helper/oracle/fixture/include/static assertion 구간: Cantilever tests/unit/analysis/solid_static_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 18b6fff6c45d794f77ce9044335c69313a256236f3b9cee759f0d5d8a33ca76e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/solid_static_state_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/analysis/solid_static_state_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1693abc34bf1b4346ff3a17979cb8a763cb16950fee6b5a5471e402d4faf621d 1693abc34bf1b4346ff3a17979cb8a763cb16950fee6b5a5471e402d4faf621d 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/solid_static_state_test.cpp SolidStaticControls.PurePrescribedUsesAbsoluteForceAndOnlyTwoChannels SolidStaticControls.PurePrescribedUsesAbsoluteForceAndOnlyTwoChannels; assertion 8개 tests/unit/analysis/solid_static_state_test.cpp SolidStaticControls.PurePrescribedUsesAbsoluteForceAndOnlyTwoChannels 유지 원문 검사 body 및 assertion 동일. 64090bf859cad1c1f823058b375f44107bd69be3ea8a455abc6f1eb059ba2578 64090bf859cad1c1f823058b375f44107bd69be3ea8a455abc6f1eb059ba2578 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().force_residual.branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(result.Value().force_residual.denominator_scale, 0.0) | EXPECT_EQ(result.Value().force_residual.threshold_unit, fesa::NewtonChannelUnit::kForce) | EXPECT_EQ(result.Value().translation_correction.threshold_unit, fesa::NewtonChannelUnit::kLength) | EXPECT_TRUE(result.Value().force_residual.passed) | EXPECT_TRUE(result.Value().translation_correction.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence( residual, internal, external, correction, increment) .Value() .force_residual.passed) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().force_residual.branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(result.Value().force_residual.denominator_scale, 0.0) | EXPECT_EQ(result.Value().force_residual.threshold_unit, fesa::NewtonChannelUnit::kForce) | EXPECT_EQ(result.Value().translation_correction.threshold_unit, fesa::NewtonChannelUnit::kLength) | EXPECT_TRUE(result.Value().force_residual.passed) | EXPECT_TRUE(result.Value().translation_correction.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence( residual, internal, external, correction, increment) .Value() .force_residual.passed) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_state_test.cpp SolidStaticControls.RelativeLimitsRawNormsAndNonfiniteFailure SolidStaticControls.RelativeLimitsRawNormsAndNonfiniteFailure; assertion 10개 tests/unit/analysis/solid_static_state_test.cpp SolidStaticControls.RelativeLimitsRawNormsAndNonfiniteFailure 유지 원문 검사 body 및 assertion 동일. 9ced91c636ffa144e3fe1bd9748589a2a38f7afe41bd79eb1a71a7d0336144a8 9ced91c636ffa144e3fe1bd9748589a2a38f7afe41bd79eb1a71a7d0336144a8 ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().force_residual.numerator_norm, 1.0) | EXPECT_DOUBLE_EQ(result.Value().force_residual.denominator_scale, 100.0) | EXPECT_EQ(result.Value().force_residual.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_EQ(result.Value().force_residual.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(result.Value().force_residual.passed) | EXPECT_TRUE(result.Value().translation_correction.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence(r, f, p, du, u) .Value() .force_residual.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence(r, f, p, du, u).HasValue()) | EXPECT_FALSE( fesa::EvaluateSolidStaticConvergence(r, f, fesa::Vector{2U}, du, u) .HasValue()) ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().force_residual.numerator_norm, 1.0) | EXPECT_DOUBLE_EQ(result.Value().force_residual.denominator_scale, 100.0) | EXPECT_EQ(result.Value().force_residual.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_EQ(result.Value().force_residual.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(result.Value().force_residual.passed) | EXPECT_TRUE(result.Value().translation_correction.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence(r, f, p, du, u) .Value() .force_residual.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence(r, f, p, du, u).HasValue()) | EXPECT_FALSE( fesa::EvaluateSolidStaticConvergence(r, f, fesa::Vector{2U}, du, u) .HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/analysis/solid_static_state_test.cpp support@1-6 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/solid_static_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e53402f8f5992b27b6c5a2443adf6251c74adbe566e295fba59e1621404883ca 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/thermal_analysis_state_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/analysis/thermal_analysis_state_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a6d89b30f8bb178f16912e6f1fca3bed6b31c6b4b3439095542d51ae5eef5b60 505bda8adef4e2255a4ce1d76d08c96b5806da8652e397048a0b49e5fb364557 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.OwnsRawInitialInventoryAfterDomainAndAssemblyDestruction ThermalAnalysisState.OwnsRawInitialInventoryAfterDomainAndAssemblyDestruction; assertion 24개 tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.OwnsRawInitialInventoryAfterDomainAndAssemblyDestruction 유지 원문 검사 body 및 assertion 동일. 29995b83f8751fc439725b0f3a266b7237c909a921280e02a60ef86b340ba760 29995b83f8751fc439725b0f3a266b7237c909a921280e02a60ef86b340ba760 "ASSERT_TRUE(state.HasValue()) | EXPECT_EQ(state.Value().NodeOrder(), (std::vector{1, 2, 3, 4})) | EXPECT_EQ(state.Value().NodeSourceIds()[0].source_label_text, ""0007"") | EXPECT_EQ(state.Value().ElementSourceIds()[0].source_label_text, ""0013"") | EXPECT_EQ(state.Value().ElementOrder(), (std::vector{0})) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_TRUE(initial.is_initial) | EXPECT_FALSE(initial.completed.has_value()) | EXPECT_EQ(initial.time, 0) | EXPECT_EQ(initial.time_increment, 0) | EXPECT_EQ(initial.temperature[a], -20.) | EXPECT_EQ(initial.temperature[5 + a], 0.) | EXPECT_EQ(initial.temperature[10 + a], 0.) | EXPECT_EQ(initial.temperature[15 + a], 7.125) | ASSERT_EQ(state.Value().ReactionDofs().size(), 2U) | EXPECT_EQ(state.Value().ReactionDofs()[0].node, 1U) | EXPECT_EQ(state.Value().ReactionDofs()[0].source_dof, 11) | EXPECT_EQ(state.Value().ReactionDofs()[1].node, 4U) | EXPECT_EQ(state.Value().ReactionDofs()[1].source_dof, 15) | EXPECT_EQ(state.Value().ConstraintMask()[row][a], ((row == 0 && a == 0) || (row == 3 && a == 4)) ? 1 : 0) | ASSERT_EQ(state.Value().FluxLocalFrames().size(), 1U) | EXPECT_EQ(frame[0], (fesa::Vector3{1, 0, 0})) | EXPECT_EQ(frame[1], (fesa::Vector3{0, 1, 0})) | EXPECT_EQ(frame[2], (fesa::Vector3{0, 0, 1}))" "ASSERT_TRUE(state.HasValue()) | EXPECT_EQ(state.Value().NodeOrder(), (std::vector{1, 2, 3, 4})) | EXPECT_EQ(state.Value().NodeSourceIds()[0].source_label_text, ""0007"") | EXPECT_EQ(state.Value().ElementSourceIds()[0].source_label_text, ""0013"") | EXPECT_EQ(state.Value().ElementOrder(), (std::vector{0})) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_TRUE(initial.is_initial) | EXPECT_FALSE(initial.completed.has_value()) | EXPECT_EQ(initial.time, 0) | EXPECT_EQ(initial.time_increment, 0) | EXPECT_EQ(initial.temperature[a], -20.) | EXPECT_EQ(initial.temperature[5 + a], 0.) | EXPECT_EQ(initial.temperature[10 + a], 0.) | EXPECT_EQ(initial.temperature[15 + a], 7.125) | ASSERT_EQ(state.Value().ReactionDofs().size(), 2U) | EXPECT_EQ(state.Value().ReactionDofs()[0].node, 1U) | EXPECT_EQ(state.Value().ReactionDofs()[0].source_dof, 11) | EXPECT_EQ(state.Value().ReactionDofs()[1].node, 4U) | EXPECT_EQ(state.Value().ReactionDofs()[1].source_dof, 15) | EXPECT_EQ(state.Value().ConstraintMask()[row][a], ((row == 0 && a == 0) || (row == 3 && a == 4)) ? 1 : 0) | ASSERT_EQ(state.Value().FluxLocalFrames().size(), 1U) | EXPECT_EQ(frame[0], (fesa::Vector3{1, 0, 0})) | EXPECT_EQ(frame[1], (fesa::Vector3{0, 1, 0})) | EXPECT_EQ(frame[2], (fesa::Vector3{0, 0, 1}))" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.CompletedZeroReactionPayloadAndExactActualDelta ThermalAnalysisState.CompletedZeroReactionPayloadAndExactActualDelta; assertion 20개 tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.CompletedZeroReactionPayloadAndExactActualDelta 유지 원문 검사 body 및 assertion 동일. faed8c798f105f506facfa91da0c77b9b7b74944851a63a32542901d8887197f faed8c798f105f506facfa91da0c77b9b7b74944851a63a32542901d8887197f ASSERT_TRUE(state.HasValue()) | EXPECT_TRUE(state.Value().ReactionDofs().empty()) | EXPECT_FALSE(state.Value().IsComplete()) | ASSERT_TRUE(frame.HasValue()) | ASSERT_TRUE(frame.Value().completed.has_value()) | EXPECT_EQ(frame.Value().completed->reaction_heat_rate.Size(), 0U) | EXPECT_EQ(frame.Value().time_increment, .3) | ASSERT_TRUE(state.Value().CommitAcceptedFrame(frame.Value()).IsOk()) | EXPECT_TRUE(state.Value().IsComplete()) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 4U) | EXPECT_EQ(state.Value().CommittedState().time, .9) | EXPECT_EQ(state.Value().CommittedState().time_increment, .3) | EXPECT_NE(state.Value().CommittedState().time - state.Value().AcceptedFrames()[2].time, .3) | EXPECT_EQ(state.Value().NominalTimeIncrement(), .3) | EXPECT_EQ(state.Value().TimePeriod(), .9) | EXPECT_FALSE( state.Value().CommitAcceptedFrame(state.Value().CommittedState()).IsOk()) | ASSERT_TRUE(short_state.HasValue()) | ASSERT_TRUE(last.HasValue()) | EXPECT_EQ(last.Value().time, 10.) | EXPECT_EQ(last.Value().time_increment, 1.) ASSERT_TRUE(state.HasValue()) | EXPECT_TRUE(state.Value().ReactionDofs().empty()) | EXPECT_FALSE(state.Value().IsComplete()) | ASSERT_TRUE(frame.HasValue()) | ASSERT_TRUE(frame.Value().completed.has_value()) | EXPECT_EQ(frame.Value().completed->reaction_heat_rate.Size(), 0U) | EXPECT_EQ(frame.Value().time_increment, .3) | ASSERT_TRUE(state.Value().CommitAcceptedFrame(frame.Value()).IsOk()) | EXPECT_TRUE(state.Value().IsComplete()) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 4U) | EXPECT_EQ(state.Value().CommittedState().time, .9) | EXPECT_EQ(state.Value().CommittedState().time_increment, .3) | EXPECT_NE(state.Value().CommittedState().time - state.Value().AcceptedFrames()[2].time, .3) | EXPECT_EQ(state.Value().NominalTimeIncrement(), .3) | EXPECT_EQ(state.Value().TimePeriod(), .9) | EXPECT_FALSE( state.Value().CommitAcceptedFrame(state.Value().CommittedState()).IsOk()) | ASSERT_TRUE(short_state.HasValue()) | ASSERT_TRUE(last.HasValue()) | EXPECT_EQ(last.Value().time, 10.) | EXPECT_EQ(last.Value().time_increment, 1.) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.EveryRejectedCandidatePreservesEntireAcceptedHistory ThermalAnalysisState.EveryRejectedCandidatePreservesEntireAcceptedHistory; assertion 9개 tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.EveryRejectedCandidatePreservesEntireAcceptedHistory 유지 원문 검사 body 및 assertion 동일. aaa377193cb0575e53405ed69aeeb7cc32e7c97bc56c05922bce6edcc2b1e74c aaa377193cb0575e53405ed69aeeb7cc32e7c97bc56c05922bce6edcc2b1e74c ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(state.CommitAcceptedFrame(first.Value()).IsOk()) | ASSERT_TRUE(candidate.HasValue()) | EXPECT_FALSE(state.CommitAcceptedFrame(candidate.Value()).IsOk()) | EXPECT_EQ(Snapshot(state), snapshot) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(state.CommitAcceptedFrame(second.Value()).IsOk()) | EXPECT_NE(state.CommittedState().temperature[0], 900) ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(state.CommitAcceptedFrame(first.Value()).IsOk()) | ASSERT_TRUE(candidate.HasValue()) | EXPECT_FALSE(state.CommitAcceptedFrame(candidate.Value()).IsOk()) | EXPECT_EQ(Snapshot(state), snapshot) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(state.CommitAcceptedFrame(second.Value()).IsOk()) | EXPECT_NE(state.CommittedState().temperature[0], 900) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.CheckedCandidateRejectsMissingDataAndHugeGridDoesNotPreallocateHistory ThermalAnalysisState.CheckedCandidateRejectsMissingDataAndHugeGridDoesNotPreallocateHistory; assertion 11개 tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.CheckedCandidateRejectsMissingDataAndHugeGridDoesNotPreallocateHistory 유지 원문 검사 body 및 assertion 동일. 5d135e0312f358eb833a0a1dfd014621f15196041711663bd84ceb65e3027aec 5d135e0312f358eb833a0a1dfd014621f15196041711663bd84ceb65e3027aec ASSERT_TRUE(state.HasValue()) | EXPECT_EQ(state.Value().TimeGrid().Count(), 4294967295U) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_FALSE(state.Value().IsComplete()) | ASSERT_TRUE(last.HasValue()) | EXPECT_EQ(last.Value().frame_index, 4294967295ULL) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(last.Value()).IsOk()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(0, fesa::Vector{20}, fesa::Vector{0}, {{}}) .HasValue()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(1, fesa::Vector{19}, fesa::Vector{0}, {{}}) .HasValue()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(1, fesa::Vector{20}, fesa::Vector{1}, {{}}) .HasValue()) | EXPECT_FALSE(state.Value() .MakeCompletedFrame(1, fesa::Vector{20}, fesa::Vector{0}, {}) .HasValue()) ASSERT_TRUE(state.HasValue()) | EXPECT_EQ(state.Value().TimeGrid().Count(), 4294967295U) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_FALSE(state.Value().IsComplete()) | ASSERT_TRUE(last.HasValue()) | EXPECT_EQ(last.Value().frame_index, 4294967295ULL) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(last.Value()).IsOk()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(0, fesa::Vector{20}, fesa::Vector{0}, {{}}) .HasValue()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(1, fesa::Vector{19}, fesa::Vector{0}, {{}}) .HasValue()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(1, fesa::Vector{20}, fesa::Vector{1}, {{}}) .HasValue()) | EXPECT_FALSE(state.Value() .MakeCompletedFrame(1, fesa::Vector{20}, fesa::Vector{0}, {}) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.RejectsAssemblyFromAnotherDomainAndInvalidSchedule ThermalAnalysisState.RejectsAssemblyFromAnotherDomainAndInvalidSchedule; assertion 9개 tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.RejectsAssemblyFromAnotherDomainAndInvalidSchedule 유지 원문 검사 body 및 assertion 동일. 6cf18a4e7b7be31455ff4b43a91438c2dd613d6d822d85a7ba34e30d330c4bfd 6cf18a4e7b7be31455ff4b43a91438c2dd613d6d822d85a7ba34e30d330c4bfd ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(fm.HasValue()) | ASSERT_TRUE(sm.HasValue()) | ASSERT_TRUE(fd.HasValue()) | ASSERT_TRUE(sd.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | EXPECT_FALSE(fesa::ThermalAnalysisState::Create(sm.Value(), sd.Value(), assembly.Value()) .HasValue()) | EXPECT_FALSE(State(false, 10, 3, 3).HasValue()) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(fm.HasValue()) | ASSERT_TRUE(sm.HasValue()) | ASSERT_TRUE(fd.HasValue()) | ASSERT_TRUE(sd.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | EXPECT_FALSE(fesa::ThermalAnalysisState::Create(sm.Value(), sd.Value(), assembly.Value()) .HasValue()) | EXPECT_FALSE(State(false, 10, 3, 3).HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/thermal_analysis_state_test.cpp support@1-115 helper/oracle/fixture/include/static assertion 구간: Definition, if, State, Candidate, Snapshot, for tests/unit/analysis/thermal_analysis_state_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7fe1bd0d0fcf6ec2be86f1abdffa0db02e82fa5f0b1a7070b8ac08221bff9429 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/thermal_time_grid_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/analysis/thermal_time_grid_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a2f5f4ff554e4c7d127640394d45cd41bba3df2adde92d39071f720af402ff3e a2f5f4ff554e4c7d127640394d45cd41bba3df2adde92d39071f720af402ff3e 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.SingleStepUsesPeriodAsActualIncrement ThermalTimeGrid.SingleStepUsesPeriodAsActualIncrement; assertion 3개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.SingleStepUsesPeriodAsActualIncrement 유지 원문 검사 body 및 assertion 동일. df81cdf149e0a1f046502f072502b69775e5fded5a9aa972da75fc19d78c9157 df81cdf149e0a1f046502f072502b69775e5fded5a9aa972da75fc19d78c9157 ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 1U) | EXPECT_EQ(grid.Value().Delta(1U), 2.0) ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 1U) | EXPECT_EQ(grid.Value().Delta(1U), 2.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.PreservesGenuineRemainderOutsideInputCells ThermalTimeGrid.PreservesGenuineRemainderOutsideInputCells; assertion 3개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.PreservesGenuineRemainderOutsideInputCells 유지 원문 검사 body 및 assertion 동일. 1e5b5e3355eb2dd4f5bf7575918fd02b20d03764ecd41dad7b95bacae0ca4ee0 1e5b5e3355eb2dd4f5bf7575918fd02b20d03764ecd41dad7b95bacae0ca4ee0 ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 4U) | EXPECT_EQ(grid.Value().Delta(4U), 1.6653345369377348e-16) ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 4U) | EXPECT_EQ(grid.Value().Delta(4U), 1.6653345369377348e-16) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.OriginalSubnormalCellsRespectOpenAndClosedContact ThermalTimeGrid.OriginalSubnormalCellsRespectOpenAndClosedContact; assertion 5개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.OriginalSubnormalCellsRespectOpenAndClosedContact 유지 원문 검사 body 및 assertion 동일. b3750249efc6650ce8d7651338ad3bbd1a681960df204dc61df4047dbb7b7cec b3750249efc6650ce8d7651338ad3bbd1a681960df204dc61df4047dbb7b7cec ASSERT_TRUE(even.HasValue()) | ASSERT_TRUE(odd.HasValue()) | EXPECT_EQ(even.Value().Count(), 3U) | EXPECT_EQ(odd.Value().Count(), 4U) | EXPECT_EQ(odd.Value().Delta(4U), 2 * tiny) ASSERT_TRUE(even.HasValue()) | ASSERT_TRUE(odd.HasValue()) | EXPECT_EQ(even.Value().Count(), 3U) | EXPECT_EQ(odd.Value().Count(), 4U) | EXPECT_EQ(odd.Value().Delta(4U), 2 * tiny) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.DecimalCellsCounterexampleAndScale ThermalTimeGrid.DecimalCellsCounterexampleAndScale; assertion 8개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.DecimalCellsCounterexampleAndScale 유지 원문 검사 body 및 assertion 동일. 55542fd9e560e9916102520ef1a4955d9b86bf134c0bbc4d6010cee6fa01e746 55542fd9e560e9916102520ef1a4955d9b86bf134c0bbc4d6010cee6fa01e746 ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 3U) | EXPECT_EQ(grid.Value().Delta(3U), delta) | EXPECT_EQ(grid.Value().Time(3U), period) | ASSERT_TRUE(old_counterexample.HasValue()) | EXPECT_EQ(old_counterexample.Value().Count(), 31U) | EXPECT_EQ(old_counterexample.Value().Delta(31U), .17262758624947144) | EXPECT_FALSE( fesa::ThermalTimeGrid::Create(5.351455173733616, .17262758624947144, 30U) .HasValue()) ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 3U) | EXPECT_EQ(grid.Value().Delta(3U), delta) | EXPECT_EQ(grid.Value().Time(3U), period) | ASSERT_TRUE(old_counterexample.HasValue()) | EXPECT_EQ(old_counterexample.Value().Count(), 31U) | EXPECT_EQ(old_counterexample.Value().Delta(31U), .17262758624947144) | EXPECT_FALSE( fesa::ThermalTimeGrid::Create(5.351455173733616, .17262758624947144, 30U) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.BinadeLimitsAndMaximumFinitePreserveOriginalCells ThermalTimeGrid.BinadeLimitsAndMaximumFinitePreserveOriginalCells; assertion 8개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.BinadeLimitsAndMaximumFinitePreserveOriginalCells 유지 원문 검사 body 및 assertion 동일. 51807a8419bb57da7a52205af4bae20dd05265ee7bc2f446e396d861b9894232 51807a8419bb57da7a52205af4bae20dd05265ee7bc2f446e396d861b9894232 ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 3U) | EXPECT_EQ(grid.Value().Delta(3U), max / 3) | ASSERT_TRUE(upper.HasValue()) | EXPECT_EQ(upper.Value().Count(), 4294967295U) | EXPECT_TRUE(upper.Value().Frame(4294967295U).HasValue()) | EXPECT_FALSE( fesa::ThermalTimeGrid::Create(4294967296., 1., 4294967295U).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create( max, std::numeric_limits::denorm_min(), 4294967295U) .HasValue()) ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 3U) | EXPECT_EQ(grid.Value().Delta(3U), max / 3) | ASSERT_TRUE(upper.HasValue()) | EXPECT_EQ(upper.Value().Count(), 4294967295U) | EXPECT_TRUE(upper.Value().Frame(4294967295U).HasValue()) | EXPECT_FALSE( fesa::ThermalTimeGrid::Create(4294967296., 1., 4294967295U).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create( max, std::numeric_limits::denorm_min(), 4294967295U) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.ShortenedIncrementAndCheckedFrames ThermalTimeGrid.ShortenedIncrementAndCheckedFrames; assertion 15개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.ShortenedIncrementAndCheckedFrames 유지 원문 검사 body 및 assertion 동일. 26a8db8885d7920f5ee954491b801daefb3c4ad8e88e8bca8ffc4a394f668c07 26a8db8885d7920f5ee954491b801daefb3c4ad8e88e8bca8ffc4a394f668c07 ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 4U) | EXPECT_EQ(grid.Value().Time(0U), 0.) | ASSERT_TRUE(grid.Value().Frame(i).HasValue()) | EXPECT_EQ(grid.Value().Time(i), i == 4 ? 10. : 3. * i) | EXPECT_EQ(grid.Value().Delta(i), i == 4 ? 1. : 3.) | EXPECT_FALSE(grid.Value().Frame(0U).HasValue()) | EXPECT_FALSE(grid.Value().Frame(5U).HasValue()) | ASSERT_TRUE(decimals.HasValue()) | EXPECT_EQ(decimals.Value().Time(3U), .30000000000000004) | EXPECT_EQ(decimals.Value().Delta(10U), .1) | ASSERT_TRUE(close.HasValue()) | ASSERT_TRUE(short_last.HasValue()) | EXPECT_EQ(close.Value().Delta(3U), .3) | EXPECT_EQ(short_last.Value().Delta(3U), .2999999999999998) ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 4U) | EXPECT_EQ(grid.Value().Time(0U), 0.) | ASSERT_TRUE(grid.Value().Frame(i).HasValue()) | EXPECT_EQ(grid.Value().Time(i), i == 4 ? 10. : 3. * i) | EXPECT_EQ(grid.Value().Delta(i), i == 4 ? 1. : 3.) | EXPECT_FALSE(grid.Value().Frame(0U).HasValue()) | EXPECT_FALSE(grid.Value().Frame(5U).HasValue()) | ASSERT_TRUE(decimals.HasValue()) | EXPECT_EQ(decimals.Value().Time(3U), .30000000000000004) | EXPECT_EQ(decimals.Value().Delta(10U), .1) | ASSERT_TRUE(close.HasValue()) | ASSERT_TRUE(short_last.HasValue()) | EXPECT_EQ(close.Value().Delta(3U), .3) | EXPECT_EQ(short_last.Value().Delta(3U), .2999999999999998) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.RejectsInvalidControlsBeforeIntegerConversion ThermalTimeGrid.RejectsInvalidControlsBeforeIntegerConversion; assertion 5개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.RejectsInvalidControlsBeforeIntegerConversion 유지 원문 검사 body 및 assertion 동일. b7b300d2a27beb1ef71e1c4d21f574e4e5ae22ed3fe52417e940fbd4138cc5d4 b7b300d2a27beb1ef71e1c4d21f574e4e5ae22ed3fe52417e940fbd4138cc5d4 EXPECT_FALSE(fesa::ThermalTimeGrid::Create(bad, 1.).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create(1., bad).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create(1., 1., 0U).HasValue()) | ASSERT_TRUE(equal.HasValue()) | EXPECT_EQ(equal.Value().Delta(1U), 2.) EXPECT_FALSE(fesa::ThermalTimeGrid::Create(bad, 1.).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create(1., bad).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create(1., 1., 0U).HasValue()) | ASSERT_TRUE(equal.HasValue()) | EXPECT_EQ(equal.Value().Delta(1U), 2.) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/thermal_time_grid_test.cpp support@1-7 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/thermal_time_grid_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4d7509a96a86780faf4709a37c3191b68a01d0bb865d28925558e8e69d405ef2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/transient_heat_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 10개 tests/unit/analysis/transient_heat_procedure_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ee408d0deb583f35c838e9e7457ef28de8d017edab31e6c2eae3b6eb3cdf03cd efff26c6a7451be803515541313038b9555ee01362e280915dab4d272586bef6 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.RawConstrainedCapacityProducesSignedTwoDofJump TransientHeatProcedure.RawConstrainedCapacityProducesSignedTwoDofJump; assertion 8개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.RawConstrainedCapacityProducesSignedTwoDofJump 유지 원문 검사 body 및 assertion 동일. 980805fa102cb221909d1766e40746ce9cf7fae52ceea5e89b51cf424ad0b73f 980805fa102cb221909d1766e40746ce9cf7fae52ceea5e89b51cf424ad0b73f ASSERT_TRUE(first.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().temperature[0], -.2) | EXPECT_DOUBLE_EQ(first.Value().reaction[0], 4.8) | ASSERT_TRUE(second.HasValue()) | EXPECT_NEAR(second.Value().temperature[0], .04, 16 * std::numeric_limits::epsilon() * .04) | EXPECT_DOUBLE_EQ(second.Value().reaction[0], 1.44) | EXPECT_EQ(solver.factorizations, 1) | EXPECT_EQ(solver.solves, 2) ASSERT_TRUE(first.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().temperature[0], -.2) | EXPECT_DOUBLE_EQ(first.Value().reaction[0], 4.8) | ASSERT_TRUE(second.HasValue()) | EXPECT_NEAR(second.Value().temperature[0], .04, 16 * std::numeric_limits::epsilon() * .04) | EXPECT_DOUBLE_EQ(second.Value().reaction[0], 1.44) | EXPECT_EQ(solver.factorizations, 1) | EXPECT_EQ(solver.solves, 2) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.AllConstrainedBypassesZeroSizeFactorization TransientHeatProcedure.AllConstrainedBypassesZeroSizeFactorization; assertion 5개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.AllConstrainedBypassesZeroSizeFactorization 유지 원문 검사 body 및 assertion 동일. 202ca407a90853cb361a166c1a72d391cf1a085616e54ed9c39d5c3d5d13a566 202ca407a90853cb361a166c1a72d391cf1a085616e54ed9c39d5c3d5d13a566 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().reaction[0], 6) | EXPECT_EQ(result.Value().reaction[1], 6) | EXPECT_EQ(solver.factorizations, 0) | EXPECT_EQ(solver.solves, 0) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().reaction[0], 6) | EXPECT_EQ(result.Value().reaction[1], 6) | EXPECT_EQ(solver.factorizations, 0) | EXPECT_EQ(solver.solves, 0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.CancellationCannotUseFullSystemScaleToPassCertificate TransientHeatProcedure.CancellationCannotUseFullSystemScaleToPassCertificate; assertion 3개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.CancellationCannotUseFullSystemScaleToPassCertificate 유지 원문 검사 body 및 assertion 동일. 5e0a1ecdf9e220cf428d03065cb6e98777df3afbfa34e41ce945372420f3004e 5e0a1ecdf9e220cf428d03065cb6e98777df3afbfa34e41ce945372420f3004e ASSERT_TRUE(valid.HasValue()) | EXPECT_DOUBLE_EQ(valid.Value().temperature[0], .8) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, old, .5, solver, cache) .HasValue()) ASSERT_TRUE(valid.HasValue()) | EXPECT_DOUBLE_EQ(valid.Value().temperature[0], .8) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, old, .5, solver, cache) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.ExactZeroAndUniformInsulatedStatesAndActualDeltaCache TransientHeatProcedure.ExactZeroAndUniformInsulatedStatesAndActualDeltaCache; assertion 12개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.ExactZeroAndUniformInsulatedStatesAndActualDeltaCache 유지 원문 검사 body 및 assertion 동일. ac935c01b0c672b156e573888f2e14ff26dfd1ee8579b195b45a210b274f7b78 ac935c01b0c672b156e573888f2e14ff26dfd1ee8579b195b45a210b274f7b78 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(state.IsComplete()) | EXPECT_EQ(state.AcceptedFrames().size(), schedule.steps + 1) | EXPECT_EQ(state.CommittedState().time, schedule.period) | EXPECT_EQ(state.CommittedState().time_increment, schedule.last) | EXPECT_EQ(solver.factorizations, schedule.factors) | EXPECT_EQ(solver.solves, static_cast(schedule.steps)) | EXPECT_FALSE(state.AcceptedFrames()[0].completed.has_value()) | EXPECT_EQ(frame.temperature[i], 0) | EXPECT_NEAR(frame.temperature[i], initial, 4096 * 0x1p-53 * initial) | EXPECT_EQ(frame.completed->reaction_heat_rate.Size(), 0U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(state.IsComplete()) | EXPECT_EQ(state.AcceptedFrames().size(), schedule.steps + 1) | EXPECT_EQ(state.CommittedState().time, schedule.period) | EXPECT_EQ(state.CommittedState().time_increment, schedule.last) | EXPECT_EQ(solver.factorizations, schedule.factors) | EXPECT_EQ(solver.solves, static_cast(schedule.steps)) | EXPECT_FALSE(state.AcceptedFrames()[0].completed.has_value()) | EXPECT_EQ(frame.temperature[i], 0) | EXPECT_NEAR(frame.temperature[i], initial, 4096 * 0x1p-53 * initial) | EXPECT_EQ(frame.completed->reaction_heat_rate.Size(), 0U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.MklMatchesIndependentAffineDiscreteModeAndDissipation TransientHeatProcedure.MklMatchesIndependentAffineDiscreteModeAndDissipation; assertion 15개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.MklMatchesIndependentAffineDiscreteModeAndDissipation 유지 원문 검사 body 및 assertion 동일. 469b0381e9116d635764dd3052feeddf1df682d761cf3122988c87b66b6157ec 469b0381e9116d635764dd3052feeddf1df682d761cf3122988c87b66b6157ec ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(candidate.temperature[i], mode[i / 5] / 4, bound) | EXPECT_LE(candidate.evidence.beta_cert, candidate.evidence.beta_limit) | EXPECT_LE(candidate.evidence.energy_defect, candidate.evidence.energy_bound) | EXPECT_TRUE(candidate.evidence.dissipation_checked) | EXPECT_LE(candidate.evidence.dissipation_defect, candidate.evidence.dissipation_bound) | ASSERT_TRUE(flux.HasValue()) | EXPECT_NEAR(q.X(), .5, 16 * bound + 4096 * 0x1p-53 * .5) | EXPECT_NEAR(q.Y(), 0, 16 * bound) | EXPECT_NEAR(q.Z(), 0, 16 * bound) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(candidate.temperature[i], mode[i / 5] / 4, bound) | EXPECT_LE(candidate.evidence.beta_cert, candidate.evidence.beta_limit) | EXPECT_LE(candidate.evidence.energy_defect, candidate.evidence.energy_bound) | EXPECT_TRUE(candidate.evidence.dissipation_checked) | EXPECT_LE(candidate.evidence.dissipation_defect, candidate.evidence.dissipation_bound) | ASSERT_TRUE(flux.HasValue()) | EXPECT_NEAR(q.X(), .5, 16 * bound + 4096 * 0x1p-53 * .5) | EXPECT_NEAR(q.Y(), 0, 16 * bound) | EXPECT_NEAR(q.Z(), 0, 16 * bound) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.LaterSolveRecoveryAndPayloadFailuresPreserveEveryAcceptedBit TransientHeatProcedure.LaterSolveRecoveryAndPayloadFailuresPreserveEveryAcceptedBit; assertion 13개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.LaterSolveRecoveryAndPayloadFailuresPreserveEveryAcceptedBit 유지 원문 검사 body 및 assertion 동일. 2f4ea89dc0b1fb735d45915b043a1f2de650e0a55a98df2b4d95ce7bad84c001 2f4ea89dc0b1fb735d45915b043a1f2de650e0a55a98df2b4d95ce7bad84c001 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_FALSE(state.Value().IsComplete()) | EXPECT_EQ(evidence.size(), 1U) | EXPECT_EQ(Snapshot(state.Value()), before) | EXPECT_EQ(state.Value().AcceptedFrames()[0].temperature[0], 2) | EXPECT_EQ(state.Value().CommittedState().temperature[0], 1) | EXPECT_EQ(solver.factorizations, 1) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_FALSE(state.Value().IsComplete()) | EXPECT_EQ(evidence.size(), 1U) | EXPECT_EQ(Snapshot(state.Value()), before) | EXPECT_EQ(state.Value().AcceptedFrames()[0].temperature[0], 2) | EXPECT_EQ(state.Value().CommittedState().temperature[0], 1) | EXPECT_EQ(solver.factorizations, 1) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.SignedPowerConstrainedReactionAndDisconnectedComponentBalance TransientHeatProcedure.SignedPowerConstrainedReactionAndDisconnectedComponentBalance; assertion 14개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.SignedPowerConstrainedReactionAndDisconnectedComponentBalance 유지 원문 검사 body 및 assertion 동일. c99828c6527db730f1bb8ec96e489a85090c34c5d3084fe0a1dc5fc3dd507e15 c99828c6527db730f1bb8ec96e489a85090c34c5d3084fe0a1dc5fc3dd507e15 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(evidence.size(), 2U) | EXPECT_NEAR(balance[0], .25 * reaction, evidence[step - 1].energy_bound + 4096 * 0x1p-53 * scale[0]) | EXPECT_NEAR(balance[1], 0, evidence[step - 1].energy_bound + 4096 * 0x1p-53 * scale[1]) | EXPECT_FALSE(evidence[step - 1].dissipation_checked) | ASSERT_TRUE(other_domain.HasValue()) | ASSERT_TRUE(other.HasValue()) | EXPECT_NEAR(first.temperature[i], second.temperature[i], 4096 * 0x1p-53 * std::abs(second.temperature[i])) | EXPECT_NEAR(first.completed->reaction_heat_rate[0] - second.completed->reaction_heat_rate[0], -3., 4096 * 0x1p-53 * 3) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(evidence.size(), 2U) | EXPECT_NEAR(balance[0], .25 * reaction, evidence[step - 1].energy_bound + 4096 * 0x1p-53 * scale[0]) | EXPECT_NEAR(balance[1], 0, evidence[step - 1].energy_bound + 4096 * 0x1p-53 * scale[1]) | EXPECT_FALSE(evidence[step - 1].dissipation_checked) | ASSERT_TRUE(other_domain.HasValue()) | ASSERT_TRUE(other.HasValue()) | EXPECT_NEAR(first.temperature[i], second.temperature[i], 4096 * 0x1p-53 * std::abs(second.temperature[i])) | EXPECT_NEAR(first.completed->reaction_heat_rate[0] - second.completed->reaction_heat_rate[0], -3., 4096 * 0x1p-53 * 3) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.ConstructionEnclosuresRetainExactIdentitiesAndSubnormalLoss TransientHeatProcedure.ConstructionEnclosuresRetainExactIdentitiesAndSubnormalLoss; assertion 9개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.ConstructionEnclosuresRetainExactIdentitiesAndSubnormalLoss 유지 원문 검사 body 및 assertion 동일. 99c40aa53ebd7840c50827f7a7cba6e8c37e21c37797d984dfff01c81f812fb5 99c40aa53ebd7840c50827f7a7cba6e8c37e21c37797d984dfff01c81f812fb5 EXPECT_EQ(value.lower, expected) | EXPECT_EQ(value.upper, expected) | EXPECT_LE(midpoint.lower, 1) | EXPECT_GE(midpoint.upper, std::nextafter(1., 2.)) | EXPECT_LE(half.lower, 0) | EXPECT_GE(half.upper, tiny) | EXPECT_NE(half.lower, half.upper) | EXPECT_FALSE( b::Mul(b::I{std::numeric_limits::max()}, b::I{2}).IsFinite()) | EXPECT_GT(b::Roundoff(80, b::I{tiny}).upper, 0) EXPECT_EQ(value.lower, expected) | EXPECT_EQ(value.upper, expected) | EXPECT_LE(midpoint.lower, 1) | EXPECT_GE(midpoint.upper, std::nextafter(1., 2.)) | EXPECT_LE(half.lower, 0) | EXPECT_GE(half.upper, tiny) | EXPECT_NE(half.lower, half.upper) | EXPECT_FALSE( b::Mul(b::I{std::numeric_limits::max()}, b::I{2}).IsFinite()) | EXPECT_GT(b::Roundoff(80, b::I{tiny}).upper, 0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.GenericAlgebraRejectsInvalidInputsAndUncertifiedSubnormalSolve TransientHeatProcedure.GenericAlgebraRejectsInvalidInputsAndUncertifiedSubnormalSolve; assertion 5개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.GenericAlgebraRejectsInvalidInputsAndUncertifiedSubnormalSolve 유지 원문 검사 body 및 assertion 동일. 521aae60d1b90ac0380baf56f738a93910d9d758dbc2a785fb80e0cc5548087b 521aae60d1b90ac0380baf56f738a93910d9d758dbc2a785fb80e0cc5548087b EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, fesa::Vector{2}, delta, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, {{0}, {0}, fesa::Vector{1, 1}}, fesa::Vector{2}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, fesa::Vector{1}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({invalid, c, q}, p, fesa::Vector{2}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, small, fesa::Vector{2}, .5, solver, cache) .HasValue()) EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, fesa::Vector{2}, delta, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, {{0}, {0}, fesa::Vector{1, 1}}, fesa::Vector{2}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, fesa::Vector{1}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({invalid, c, q}, p, fesa::Vector{2}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, small, fesa::Vector{2}, .5, solver, cache) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.SerialAndTbbExecutionsHaveIdenticalAcceptedHistories TransientHeatProcedure.SerialAndTbbExecutionsHaveIdenticalAcceptedHistories; assertion 4개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.SerialAndTbbExecutionsHaveIdenticalAcceptedHistories 유지 원문 검사 body 및 assertion 동일. d88a406c7cd08b89d4d7877bf387792819e771b3133dbf4ab7f248ecbd55cb22 d88a406c7cd08b89d4d7877bf387792819e771b3133dbf4ab7f248ecbd55cb22 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(left.HasValue()) | ASSERT_TRUE(right.HasValue()) | EXPECT_EQ(Snapshot(left.Value().state), Snapshot(right.Value().state)) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(left.HasValue()) | ASSERT_TRUE(right.HasValue()) | EXPECT_EQ(Snapshot(left.Value().state), Snapshot(right.Value().state)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/analysis/transient_heat_procedure_test.cpp support@1-101 helper/oracle/fixture/include/static assertion 구간: ti, Messages, Plate, TwoMatrix, CountingSolver, Snapshot, for, if tests/unit/analysis/transient_heat_procedure_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 431e3b6b4a2eb8c51ca8135b26c47253934ad5c305674bac102094a5382a2d1d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/app/output_paths_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/app/output_paths_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 23aa6fa1dac950505061d2d64a2ad10abffb76bcabc0232cd0afef512c863107 23aa6fa1dac950505061d2d64a2ad10abffb76bcabc0232cd0afef512c863107 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/app/output_paths_test.cpp OutputPaths.RejectsFirstTokenContainingOutputSubstring OutputPaths.RejectsFirstTokenContainingOutputSubstring; assertion 2개 tests/unit/app/output_paths_test.cpp OutputPaths.RejectsFirstTokenContainingOutputSubstring 유지 원문 검사 body 및 assertion 동일. b5fcd67ff4f6a7eaa6e06e55668193dd70ba3822879887699b02d4baf7b419b1 b5fcd67ff4f6a7eaa6e06e55668193dd70ba3822879887699b02d4baf7b419b1 "ASSERT_FALSE(paths.HasValue()) | EXPECT_EQ(paths.GetStatus().Diagnostics().front().entity_identity, ""argument_index=0;argument=abc--outputdef"")" "ASSERT_FALSE(paths.HasValue()) | EXPECT_EQ(paths.GetStatus().Diagnostics().front().entity_identity, ""argument_index=0;argument=abc--outputdef"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/app/output_paths_test.cpp OutputPaths.RejectsEveryOutputSubstringVariant OutputPaths.RejectsEveryOutputSubstringVariant; assertion 1개 tests/unit/app/output_paths_test.cpp OutputPaths.RejectsEveryOutputSubstringVariant 유지 원문 검사 body 및 assertion 동일. 9ccaab67728c7c0a433b6ece05c14731aa50e6b5010d9de5e18eb258fe6b4d3d 9ccaab67728c7c0a433b6ece05c14731aa50e6b5010d9de5e18eb258fe6b4d3d ASSERT_FALSE(paths.HasValue()) ASSERT_FALSE(paths.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/app/output_paths_test.cpp OutputPaths.DerivesNormalizedSiblingNamesFromRelativeInput OutputPaths.DerivesNormalizedSiblingNamesFromRelativeInput; assertion 4개 tests/unit/app/output_paths_test.cpp OutputPaths.DerivesNormalizedSiblingNamesFromRelativeInput 유지 원문 검사 body 및 assertion 동일. be83317f7274e5567210d53981799a741b7beb27bd40f47391f2417fac426bd0 be83317f7274e5567210d53981799a741b7beb27bd40f47391f2417fac426bd0 "ASSERT_TRUE(paths.HasValue()) | EXPECT_EQ( paths.Value().input_path, std::filesystem::path{""C:/invocation/current/models/Beam.Model.INP""}) | EXPECT_EQ(paths.Value().results_path, std::filesystem::path{ ""C:/invocation/current/models/Beam.Model_results.h5""}) | EXPECT_EQ(paths.Value().log_path, std::filesystem::path{ ""C:/invocation/current/models/Beam.Model_log.txt""})" "ASSERT_TRUE(paths.HasValue()) | EXPECT_EQ( paths.Value().input_path, std::filesystem::path{""C:/invocation/current/models/Beam.Model.INP""}) | EXPECT_EQ(paths.Value().results_path, std::filesystem::path{ ""C:/invocation/current/models/Beam.Model_results.h5""}) | EXPECT_EQ(paths.Value().log_path, std::filesystem::path{ ""C:/invocation/current/models/Beam.Model_log.txt""})" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/app/output_paths_test.cpp OutputPaths.PreservesBasenameCaseAndPrecedingDots OutputPaths.PreservesBasenameCaseAndPrecedingDots; assertion 3개 tests/unit/app/output_paths_test.cpp OutputPaths.PreservesBasenameCaseAndPrecedingDots 유지 원문 검사 body 및 assertion 동일. 61885c6eea856194a2be897fc370b6aaaab094a608da558e7459b8e5798941a8 61885c6eea856194a2be897fc370b6aaaab094a608da558e7459b8e5798941a8 "ASSERT_TRUE(paths.HasValue()) | EXPECT_EQ(paths.Value().results_path, std::filesystem::path{""C:/models/.Beam.v2_results.h5""}) | EXPECT_EQ(paths.Value().log_path, std::filesystem::path{""C:/models/.Beam.v2_log.txt""})" "ASSERT_TRUE(paths.HasValue()) | EXPECT_EQ(paths.Value().results_path, std::filesystem::path{""C:/models/.Beam.v2_results.h5""}) | EXPECT_EQ(paths.Value().log_path, std::filesystem::path{""C:/models/.Beam.v2_log.txt""})" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/app/output_paths_test.cpp OutputPaths.RejectsInputWithoutInpFinalExtension OutputPaths.RejectsInputWithoutInpFinalExtension; assertion 1개 tests/unit/app/output_paths_test.cpp OutputPaths.RejectsInputWithoutInpFinalExtension 유지 원문 검사 body 및 assertion 동일. 0014158f8fc76b488d78ce4409d51ef8f401c1f051f2cd0db5620a776c3b9953 0014158f8fc76b488d78ce4409d51ef8f401c1f051f2cd0db5620a776c3b9953 ASSERT_FALSE(paths.HasValue()) ASSERT_FALSE(paths.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/app/output_paths_test.cpp OutputPaths.LeaseCollisionPreservesPublicOutputPaths OutputPaths.LeaseCollisionPreservesPublicOutputPaths; assertion 6개 tests/unit/app/output_paths_test.cpp OutputPaths.LeaseCollisionPreservesPublicOutputPaths 유지 원문 검사 body 및 assertion 동일. b93c20d80194e4d6ef75b5cc9deeed307c666c32d1eb009a75058426755fa409 b93c20d80194e4d6ef75b5cc9deeed307c666c32d1eb009a75058426755fa409 ASSERT_TRUE(first.HasValue()) | EXPECT_FALSE(std::filesystem::exists(paths.results_path)) | EXPECT_FALSE(std::filesystem::exists(paths.log_path)) | ASSERT_FALSE(second.HasValue()) | EXPECT_FALSE(std::filesystem::exists(paths.results_path)) | EXPECT_FALSE(std::filesystem::exists(paths.log_path)) ASSERT_TRUE(first.HasValue()) | EXPECT_FALSE(std::filesystem::exists(paths.results_path)) | EXPECT_FALSE(std::filesystem::exists(paths.log_path)) | ASSERT_FALSE(second.HasValue()) | EXPECT_FALSE(std::filesystem::exists(paths.results_path)) | EXPECT_FALSE(std::filesystem::exists(paths.log_path)) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/app/output_paths_test.cpp OutputPaths.AnalysisRequestCarriesInputResultAndLogPaths OutputPaths.AnalysisRequestCarriesInputResultAndLogPaths; assertion 3개 tests/unit/app/output_paths_test.cpp OutputPaths.AnalysisRequestCarriesInputResultAndLogPaths 유지 원문 검사 body 및 assertion 동일. c48fbc834105a6cd2380b9a77237a1f2990fd348e4c796cb5ba405a37b2d07b2 c48fbc834105a6cd2380b9a77237a1f2990fd348e4c796cb5ba405a37b2d07b2 "EXPECT_EQ(request.input_path, ""C:/models/model.inp"") | EXPECT_EQ(request.output_path, ""C:/models/model_results.h5"") | EXPECT_EQ(request.log_path, ""C:/models/model_log.txt"")" "EXPECT_EQ(request.input_path, ""C:/models/model.inp"") | EXPECT_EQ(request.output_path, ""C:/models/model_results.h5"") | EXPECT_EQ(request.log_path, ""C:/models/model_log.txt"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/app/output_paths_test.cpp support@1-49 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, ExpectFailureCode tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8dbf6924f3d67728bb5446141ed4ace5ac53a860966902e0e81cfe6dc39db3c4 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/app/output_paths_test.cpp support@71-72 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b196b7affd091bd4430c558ecb836979300676f2db7a408c62e9271c62e40d71 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/app/output_paths_test.cpp support@89-90 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a5bd942724af8adb3d7c4b014a78f9a28247931c4ea15756008b12b39aeb68fd 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/app/output_paths_test.cpp support@109-110 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. af57532578cc6d4bc6c633b7417372ef65a6b94c1efa40c6a66a0c0a47624792 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/app/output_paths_test.cpp support@128-129 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 30515567df68d6c58a8531445f79936aa9236b7440ac2d675f11334b4e1278b9 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/app/output_paths_test.cpp support@140-141 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/assembly/load_assembler_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 13개 tests/unit/assembly/load_assembler_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 34eb602efea7903941426ad18f10ba54bdabd46e4e262ba6efcb5ffabf2af2d3 34eb602efea7903941426ad18f10ba54bdabd46e4e262ba6efcb5ffabf2af2d3 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AccumulatesGenericContributionsInSuppliedSourceOrder LoadAssembly.AccumulatesGenericContributionsInSuppliedSourceOrder; assertion 3개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AccumulatesGenericContributionsInSuppliedSourceOrder 유지 원문 검사 body 및 assertion 동일. aff7361b21837067a746e74160c69e478361e53af3444bffe4d0e557a557c690 aff7361b21837067a746e74160c69e478361e53af3444bffe4d0e557a557c690 ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value()[0U], -1.0) | EXPECT_DOUBLE_EQ(result.Value()[2U], -2.5) ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value()[0U], -1.0) | EXPECT_DOUBLE_EQ(result.Value()[2U], -2.5) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsGenericContributionErrorsBeforeCandidateCommit LoadAssembly.RejectsGenericContributionErrorsBeforeCandidateCommit; assertion 2개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsGenericContributionErrorsBeforeCandidateCommit 유지 원문 검사 body 및 assertion 동일. 4516bacc631826833398902d64155fc5f6d7c6906375f9966010ff7e7691dc7e 4516bacc631826833398902d64155fc5f6d7c6906375f9966010ff7e7691dc7e ASSERT_TRUE(repeated.HasValue()) | EXPECT_DOUBLE_EQ(repeated.Value()[1U], 3.0) ASSERT_TRUE(repeated.HasValue()) | EXPECT_DOUBLE_EQ(repeated.Value()[1U], 3.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AssemblesNodeSetAndSixComponentLoads LoadAssembly.AssemblesNodeSetAndSixComponentLoads; assertion 5개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AssemblesNodeSetAndSixComponentLoads 유지 원문 검사 body 및 assertion 동일. 1bdb44b82711f7c6e58780cce70be76a8c21cd6eb2017a77241d7b4ed031b4d5 1bdb44b82711f7c6e58780cce70be76a8c21cd6eb2017a77241d7b4ed031b4d5 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 12U) | EXPECT_EQ( std::vector(result.Value().Data(), result.Value().Data() + 12U), (std::vector{1.0, 2.0, 0.0, -4.0, 5.0, 0.0, 1.0, 0.0, 3.0, 0.0, 5.0, 6.0})) | EXPECT_EQ(fixture.dofs->ConstrainedDofs(), (std::vector{0U})) | EXPECT_DOUBLE_EQ(result.Value()[0U], 1.0) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 12U) | EXPECT_EQ( std::vector(result.Value().Data(), result.Value().Data() + 12U), (std::vector{1.0, 2.0, 0.0, -4.0, 5.0, 0.0, 1.0, 0.0, 3.0, 0.0, 5.0, 6.0})) | EXPECT_EQ(fixture.dofs->ConstrainedDofs(), (std::vector{0U})) | EXPECT_DOUBLE_EQ(result.Value()[0U], 1.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AccumulatesSignedLoadsInSourceOrder LoadAssembly.AccumulatesSignedLoadsInSourceOrder; assertion 4개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AccumulatesSignedLoadsInSourceOrder 유지 원문 검사 body 및 assertion 동일. 0e27baa9eedd061df41e6eb0ceaaf6ed5073343675c3d17412eb4bb33f7c055f 0e27baa9eedd061df41e6eb0ceaaf6ed5073343675c3d17412eb4bb33f7c055f ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value()[0U], 1.0) | EXPECT_DOUBLE_EQ(second.Value()[0U], 0.0) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value()[0U], 1.0) | EXPECT_DOUBLE_EQ(second.Value()[0U], 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AggregatesAllSixGlobalShellLoadComponentsInSourceOrder LoadAssembly.AggregatesAllSixGlobalShellLoadComponentsInSourceOrder; assertion 3개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AggregatesAllSixGlobalShellLoadComponentsInSourceOrder 유지 원문 검사 body 및 assertion 동일. 79cc99592d223bf47a84a2e6417bf67d9cd139106e217bba7ea034759ea36814 79cc99592d223bf47a84a2e6417bf67d9cd139106e217bba7ea034759ea36814 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 24U) | EXPECT_EQ( std::vector(result.Value().Data(), result.Value().Data() + 6U), (std::vector{1.0, 2.0, 3.0, 4.0, 5.0, 0.0})) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 24U) | EXPECT_EQ( std::vector(result.Value().Data(), result.Value().Data() + 6U), (std::vector{1.0, 2.0, 3.0, 4.0, 5.0, 0.0})) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AcceptsExactlyZeroAggregateShellMoment LoadAssembly.AcceptsExactlyZeroAggregateShellMoment; assertion 4개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AcceptsExactlyZeroAggregateShellMoment 유지 원문 검사 body 및 assertion 동일. 733bd45f5146ff23a07a82104b8331e28b49c335ddf6a0aec54ad75bf642a316 733bd45f5146ff23a07a82104b8331e28b49c335ddf6a0aec54ad75bf642a316 ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value()[3U], 0.0) | EXPECT_DOUBLE_EQ(result.Value()[4U], 0.0) | EXPECT_DOUBLE_EQ(result.Value()[5U], 0.0) ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value()[3U], 0.0) | EXPECT_DOUBLE_EQ(result.Value()[4U], 0.0) | EXPECT_DOUBLE_EQ(result.Value()[5U], 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.EnforcesAggregateShellMomentDirectorProjectionThreshold LoadAssembly.EnforcesAggregateShellMomentDirectorProjectionThreshold; assertion 7개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.EnforcesAggregateShellMomentDirectorProjectionThreshold 유지 원문 검사 body 및 assertion 동일. fea2c3252ba8945cb8611b9feb2879b6eeaa387e739a47709caf10ce8a447337 fea2c3252ba8945cb8611b9feb2879b6eeaa387e739a47709caf10ce8a447337 "ASSERT_TRUE(accepted.HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(rejected.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""unsupported-drilling-load"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].keyword, ""CLOAD"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].entity_identity, ""10"")" "ASSERT_TRUE(accepted.HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(rejected.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""unsupported-drilling-load"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].keyword, ""CLOAD"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].entity_identity, ""10"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsDrillingMomentBeforeEffectiveRhsCanBeFormed LoadAssembly.RejectsDrillingMomentBeforeEffectiveRhsCanBeFormed; assertion 4개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsDrillingMomentBeforeEffectiveRhsCanBeFormed 유지 원문 검사 body 및 assertion 동일. 18508214d24d7672307273a6b6575be56d3d3e18b1890c1a5889d38969795375 18508214d24d7672307273a6b6575be56d3d3e18b1890c1a5889d38969795375 "ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(rejected.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""unsupported-drilling-load"")" "ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(rejected.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""unsupported-drilling-load"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.FormsNonzeroPrescribedEffectiveRhs LoadAssembly.FormsNonzeroPrescribedEffectiveRhs; assertion 4개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.FormsNonzeroPrescribedEffectiveRhs 유지 원문 검사 body 및 assertion 동일. ec68ce4b41d1de543a53650df90bfd6ff69f294deb6e1ed1ccdf92e34e1a90b4 ec68ce4b41d1de543a53650df90bfd6ff69f294deb6e1ed1ccdf92e34e1a90b4 ASSERT_TRUE(full.HasValue()) | ASSERT_TRUE(rhs.HasValue()) | ASSERT_EQ(rhs.Value().Size(), 4U) | EXPECT_EQ(std::vector(rhs.Value().Data(), rhs.Value().Data() + 4U), (std::vector{10.0, 18.0, 39.0, 38.0})) ASSERT_TRUE(full.HasValue()) | ASSERT_TRUE(rhs.HasValue()) | ASSERT_EQ(rhs.Value().Size(), 4U) | EXPECT_EQ(std::vector(rhs.Value().Data(), rhs.Value().Data() + 4U), (std::vector{10.0, 18.0, 39.0, 38.0})) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsNonfiniteOrDimensionMismatch LoadAssembly.RejectsNonfiniteOrDimensionMismatch; assertion 0개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsNonfiniteOrDimensionMismatch 유지 원문 검사 body 및 assertion 동일. 5cc4ddbbe4657de7260e4d3d06882ec35eddc096aaa2410c36fc7c0d1d8c2d87 5cc4ddbbe4657de7260e4d3d06882ec35eddc096aaa2410c36fc7c0d1d8c2d87 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.ZeroLoadsRemainZero LoadAssembly.ZeroLoadsRemainZero; assertion 8개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.ZeroLoadsRemainZero 유지 원문 검사 body 및 assertion 동일. 7635872252315cd7031e15d3dc4016b63f745528c55c7be84c6651c5f25dcf19 7635872252315cd7031e15d3dc4016b63f745528c55c7be84c6651c5f25dcf19 ASSERT_TRUE(full.HasValue()) | EXPECT_TRUE(std::all_of(full.Value().Data(), full.Value().Data() + full.Value().Size(), [](const double value) { return value == 0.0; })) | ASSERT_TRUE(free_rhs.HasValue()) | EXPECT_EQ(free_rhs.Value().Size(), 6U) | EXPECT_TRUE(std::all_of(free_rhs.Value().Data(), free_rhs.Value().Data() + free_rhs.Value().Size(), [](const double value) { return value == 0.0; })) | ASSERT_TRUE(constrained_full.HasValue()) | ASSERT_TRUE(constrained_rhs.HasValue()) | EXPECT_EQ(constrained_rhs.Value().Size(), 0U) ASSERT_TRUE(full.HasValue()) | EXPECT_TRUE(std::all_of(full.Value().Data(), full.Value().Data() + full.Value().Size(), [](const double value) { return value == 0.0; })) | ASSERT_TRUE(free_rhs.HasValue()) | EXPECT_EQ(free_rhs.Value().Size(), 6U) | EXPECT_TRUE(std::all_of(free_rhs.Value().Data(), free_rhs.Value().Data() + free_rhs.Value().Size(), [](const double value) { return value == 0.0; })) | ASSERT_TRUE(constrained_full.HasValue()) | ASSERT_TRUE(constrained_rhs.HasValue()) | EXPECT_EQ(constrained_rhs.Value().Size(), 0U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.PreservesOrderedCancellationInPrescribedCorrection LoadAssembly.PreservesOrderedCancellationInPrescribedCorrection; assertion 5개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.PreservesOrderedCancellationInPrescribedCorrection 유지 원문 검사 body 및 assertion 동일. d6e8d73924701453a7baadca084ff79663c300ab2e9b670eebdc2af86b2345d0 d6e8d73924701453a7baadca084ff79663c300ab2e9b670eebdc2af86b2345d0 ASSERT_TRUE(rhs.HasValue()) | ASSERT_EQ(rhs.Value().Size(), 3U) | EXPECT_DOUBLE_EQ(rhs.Value()[0U], 0.0) | EXPECT_DOUBLE_EQ(rhs.Value()[1U], -1.0) | EXPECT_DOUBLE_EQ(rhs.Value()[2U], 0.0) ASSERT_TRUE(rhs.HasValue()) | ASSERT_EQ(rhs.Value().Size(), 3U) | EXPECT_DOUBLE_EQ(rhs.Value()[0U], 0.0) | EXPECT_DOUBLE_EQ(rhs.Value()[1U], -1.0) | EXPECT_DOUBLE_EQ(rhs.Value()[2U], 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/load_assembler_test.cpp LoadAssembly.SelectsFirstOrderedOverflowDiagnostic LoadAssembly.SelectsFirstOrderedOverflowDiagnostic; assertion 3개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.SelectsFirstOrderedOverflowDiagnostic 유지 원문 검사 body 및 assertion 동일. e3e2469155d1d3b62eb83bc0d55881ce8a93c78cf7ae13c191f54a00fe1a8655 e3e2469155d1d3b62eb83bc0d55881ce8a93c78cf7ae13c191f54a00fe1a8655 "ASSERT_EQ(rhs.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rhs.GetStatus().Diagnostics()[0U].entity_identity, ""0"") | EXPECT_NE(rhs.GetStatus().Diagnostics()[0U].message.find(""row sum""), std::string::npos)" "ASSERT_EQ(rhs.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rhs.GetStatus().Diagnostics()[0U].entity_identity, ""0"") | EXPECT_NE(rhs.GetStatus().Diagnostics()[0U].message.find(""row sum""), std::string::npos)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/load_assembler_test.cpp support@1-189 helper/oracle/fixture/include/static assertion 구간: LoadFixture, MakeFixture, if, MakeShellFixture, MakeDenseSparse, ExpectFailureCode, FakeLoad tests/unit/assembly/load_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 09f288a427937029f1c93b5bd10b79a1ce75968600aab87a6017627ab43bbb4d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/assembly/load_assembler_test.cpp support@276-277 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/assembly/load_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a0c3d2fdca7428b4606aecf54fc991ff71f42a6f8dfbf900da33db75c07db5e7 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/assembly/load_assembler_test.cpp support@301-302 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/assembly/load_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e5f1c6b05c193f37b5f5903549e70c2637df4efaa741399afea556790fcdd57d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/assembly/load_assembler_test.cpp support@320-321 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/assembly/load_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6d8dccf1a14f246c0076046744d9f5f32eb359e499a133ad3f09fc9a287f59b3 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/assembly/load_assembler_test.cpp support@343-344 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/assembly/load_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 27a372ac23810e34bb1331fb06ff49031906985bdadbc563bb9322e0c7b5e944 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/assembly/parallel_for_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/assembly/parallel_for_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c33eb3d92d7e4fd8c3ae369e223cc123437ab59d17653a4114fc4d80b1230314 c33eb3d92d7e4fd8c3ae369e223cc123437ab59d17653a4114fc4d80b1230314 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/assembly/parallel_for_test.cpp ParallelFor.ZeroOneManyExecuteExactlyOnce ParallelFor.ZeroOneManyExecuteExactlyOnce; assertion 2개 tests/unit/assembly/parallel_for_test.cpp ParallelFor.ZeroOneManyExecuteExactlyOnce 유지 원문 검사 body 및 assertion 동일. ae877ba853b9d44bca19a62c65606b8130804cfd09d020aed0c560e1bf25fbb3 ae877ba853b9d44bca19a62c65606b8130804cfd09d020aed0c560e1bf25fbb3 EXPECT_EQ(zero_visits.load(std::memory_order_relaxed), 0U) | EXPECT_EQ(visits[index].load(std::memory_order_relaxed), 1U) EXPECT_EQ(zero_visits.load(std::memory_order_relaxed), 0U) | EXPECT_EQ(visits[index].load(std::memory_order_relaxed), 1U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/parallel_for_test.cpp ParallelFor.SerialAndTbbProduceStableIndexedOutput ParallelFor.SerialAndTbbProduceStableIndexedOutput; assertion 4개 tests/unit/assembly/parallel_for_test.cpp ParallelFor.SerialAndTbbProduceStableIndexedOutput 유지 원문 검사 body 및 assertion 동일. 2ab6268405c5255e272585cd37131ac4b46b20a59e68b8e4a151839a35ac727b 2ab6268405c5255e272585cd37131ac4b46b20a59e68b8e4a151839a35ac727b EXPECT_EQ(serial_visits[index].load(std::memory_order_relaxed), 1U) | EXPECT_EQ(tbb_visits[index].load(std::memory_order_relaxed), 1U) | EXPECT_EQ(tbb_output[index].load(std::memory_order_relaxed), serial_output[index].load(std::memory_order_relaxed)) | EXPECT_EQ(tbb_output[index].load(std::memory_order_relaxed), value_for_index(index)) EXPECT_EQ(serial_visits[index].load(std::memory_order_relaxed), 1U) | EXPECT_EQ(tbb_visits[index].load(std::memory_order_relaxed), 1U) | EXPECT_EQ(tbb_output[index].load(std::memory_order_relaxed), serial_output[index].load(std::memory_order_relaxed)) | EXPECT_EQ(tbb_output[index].load(std::memory_order_relaxed), value_for_index(index)) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/parallel_for_test.cpp ParallelFor.PropagatesBodyExceptionByContract ParallelFor.PropagatesBodyExceptionByContract; assertion 1개 tests/unit/assembly/parallel_for_test.cpp ParallelFor.PropagatesBodyExceptionByContract 유지 원문 검사 body 및 assertion 동일. e3d433539fb80a97ab4be815cbe5d2cd45434502bb2566bf94ff67bc15d4ee84 e3d433539fb80a97ab4be815cbe5d2cd45434502bb2566bf94ff67bc15d4ee84 "EXPECT_EQ(std::string{error.what()}, ""parallel-for-body-failure"")" "EXPECT_EQ(std::string{error.what()}, ""parallel-for-body-failure"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/parallel_for_test.cpp support@1-25 helper/oracle/fixture/include/static assertion 구간: fesa, ParallelForBodyError, ParallelForBackends tests/unit/assembly/parallel_for_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9cd2b8b3b770e02c02d2fe88f4966177d86c949c6fc0904fdbcfbedc9994989a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/assembly/parallel_for_test.cpp support@112-114 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/assembly/parallel_for_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/assembly/sparse_assembler_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/assembly/sparse_assembler_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 189583b8d3501b8337b55f56051ea1d57e55626bb5358df9787651ef96c34697 0a9627a0923db100df6ce2d8ca2fada0d5d86cd156d2f12ac1c979a6f8291215 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.AssemblesFakeRuntimeContributionsIntoExactDeterministicCsr SparseAssembly.AssemblesFakeRuntimeContributionsIntoExactDeterministicCsr; assertion 14개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.AssemblesFakeRuntimeContributionsIntoExactDeterministicCsr 유지 원문 검사 body 및 assertion 동일. 12ccb35b0634063643caa859a19ad70b4c5ffdd9c844561cf80ee3c18ab716f0 12ccb35b0634063643caa859a19ad70b4c5ffdd9c844561cf80ee3c18ab716f0 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), elements.size()) | EXPECT_EQ(serial.Value().Rows(), 18U) | EXPECT_EQ(serial.Value().Columns(), 18U) | EXPECT_EQ(serial.Value().RowOffsets(), (std::vector{0U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 6U, 6U, 9U, 9U, 9U, 12U})) | EXPECT_EQ(serial.Value().ColumnIndices(), (std::vector{0U, 12U, 0U, 12U, 14U, 17U, 12U, 14U, 17U, 12U, 14U, 17U})) | EXPECT_EQ(serial.Value().Values(), (std::vector{1.0, 2.0, 3.0, 9.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0})) | ASSERT_TRUE(repeated.HasValue()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), elements.size()) | EXPECT_EQ(serial.Value().Rows(), 18U) | EXPECT_EQ(serial.Value().Columns(), 18U) | EXPECT_EQ(serial.Value().RowOffsets(), (std::vector{0U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 6U, 6U, 9U, 9U, 9U, 12U})) | EXPECT_EQ(serial.Value().ColumnIndices(), (std::vector{0U, 12U, 0U, 12U, 14U, 17U, 12U, 14U, 17U, 12U, 14U, 17U})) | EXPECT_EQ(serial.Value().Values(), (std::vector{1.0, 2.0, 3.0, 9.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0})) | ASSERT_TRUE(repeated.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.SerialTbbAndRepeatedRunsAreByteIdentical SparseAssembly.SerialTbbAndRepeatedRunsAreByteIdentical; assertion 20개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.SerialTbbAndRepeatedRunsAreByteIdentical 유지 원문 검사 body 및 assertion 동일. 5849dbe7757b88a61317b8233042ef8e96361c3df7ffc77c6e5f428e52989d1e 5849dbe7757b88a61317b8233042ef8e96361c3df7ffc77c6e5f428e52989d1e ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | ASSERT_TRUE(dofs_result.HasValue()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), 2U) | EXPECT_EQ(serial.Value().Rows(), 18U) | EXPECT_EQ(serial.Value().Columns(), 18U) | EXPECT_EQ(serial.Value().RowOffsets(), dofs_result.Value().GetSparsePattern().row_offsets) | EXPECT_EQ(serial.Value().ColumnIndices(), dofs_result.Value().GetSparsePattern().column_indices) | EXPECT_TRUE(serial.Value().Validate().IsOk()) | ASSERT_TRUE(repeated.HasValue()) | EXPECT_DOUBLE_EQ(Entry(serial.Value(), row, column), Entry(serial.Value(), column, row)) | EXPECT_NEAR(Entry(serial.Value(), 0U, 0U), 120.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 0U, 6U), -120.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 6U, 6U), 200.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 6U, 12U), -80.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 12U, 12U), 80.0, 1.0e-12) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | ASSERT_TRUE(dofs_result.HasValue()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), 2U) | EXPECT_EQ(serial.Value().Rows(), 18U) | EXPECT_EQ(serial.Value().Columns(), 18U) | EXPECT_EQ(serial.Value().RowOffsets(), dofs_result.Value().GetSparsePattern().row_offsets) | EXPECT_EQ(serial.Value().ColumnIndices(), dofs_result.Value().GetSparsePattern().column_indices) | EXPECT_TRUE(serial.Value().Validate().IsOk()) | ASSERT_TRUE(repeated.HasValue()) | EXPECT_DOUBLE_EQ(Entry(serial.Value(), row, column), Entry(serial.Value(), column, row)) | EXPECT_NEAR(Entry(serial.Value(), 0U, 0U), 120.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 0U, 6U), -120.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 6U, 6U), 200.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 6U, 12U), -80.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 12U, 12U), 80.0, 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.AssemblesFourNodeTwentyFourDofKernelAndPreservesDiagonalSlots SparseAssembly.AssemblesFourNodeTwentyFourDofKernelAndPreservesDiagonalSlots; assertion 12개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.AssemblesFourNodeTwentyFourDofKernelAndPreservesDiagonalSlots 유지 원문 검사 body 및 assertion 동일. 49e404af06df45dd33c41511e4b767b397f204af6dee8ddf123a19cc1159d489 49e404af06df45dd33c41511e4b767b397f204af6dee8ddf123a19cc1159d489 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(expected.HasValue()) | EXPECT_EQ(assembled.Value().Rows(), 24U) | EXPECT_EQ(assembled.Value().Columns(), 24U) | EXPECT_EQ(assembled.Value().Values().size(), 24U * 24U) | EXPECT_EQ(assembled.Value().RowOffsets(), dofs.Value().GetSparsePattern().row_offsets) | EXPECT_EQ(assembled.Value().ColumnIndices(), dofs.Value().GetSparsePattern().column_indices) | EXPECT_NE(std::lower_bound(begin, end, row), end) | EXPECT_DOUBLE_EQ(Entry(assembled.Value(), row, column), expected.Value().stabilized_global24(row, column)) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(expected.HasValue()) | EXPECT_EQ(assembled.Value().Rows(), 24U) | EXPECT_EQ(assembled.Value().Columns(), 24U) | EXPECT_EQ(assembled.Value().Values().size(), 24U * 24U) | EXPECT_EQ(assembled.Value().RowOffsets(), dofs.Value().GetSparsePattern().row_offsets) | EXPECT_EQ(assembled.Value().ColumnIndices(), dofs.Value().GetSparsePattern().column_indices) | EXPECT_NE(std::lower_bound(begin, end, row), end) | EXPECT_DOUBLE_EQ(Entry(assembled.Value(), row, column), expected.Value().stabilized_global24(row, column)) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.ShellSerialTbbReverseAndRepeatedRunsAreByteIdentical SparseAssembly.ShellSerialTbbReverseAndRepeatedRunsAreByteIdentical; assertion 6개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.ShellSerialTbbReverseAndRepeatedRunsAreByteIdentical 유지 원문 검사 body 및 assertion 동일. 8a7b6de57d65db7469d0151373d4dc4642b7279f6e4e036f8cc76bb27e0db170 8a7b6de57d65db7469d0151373d4dc4642b7279f6e4e036f8cc76bb27e0db170 ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), 2U) | ASSERT_TRUE(repeated.HasValue()) ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), 2U) | ASSERT_TRUE(repeated.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.S4AndS4rSemanticFixturesAssembleIdenticalStiffness SparseAssembly.S4AndS4rSemanticFixturesAssembleIdenticalStiffness; assertion 3개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.S4AndS4rSemanticFixturesAssembleIdenticalStiffness 유지 원문 검사 body 및 assertion 동일. e5a06a15276973da6be56d1ee497a913c183e8fae82909c70d28845de7fd434c e5a06a15276973da6be56d1ee497a913c183e8fae82909c70d28845de7fd434c ASSERT_TRUE(s4.HasValue()) | ASSERT_TRUE(s4r.HasValue()) | EXPECT_TRUE(std::any_of(s4.Value().Values().begin(), s4.Value().Values().end(), [](const double value) { return value != 0.0; })) ASSERT_TRUE(s4.HasValue()) | ASSERT_TRUE(s4r.HasValue()) | EXPECT_TRUE(std::any_of(s4.Value().Values().begin(), s4.Value().Values().end(), [](const double value) { return value != 0.0; })) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/sparse_assembler_test.cpp support@1-228 helper/oracle/fixture/include/static assertion 구간: MakeDefinition, MakeShellDefinition, if, DirectShellStiffness, AssembleShell, T, ByteIdentical, Entry, ReverseParallelFor, FakeStiffnessElement, MatrixFromRows, ExpectByteIdentical tests/unit/assembly/sparse_assembler_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c50684935a4642f8ccb99b80d27ad56a660aac55c1dbe5627c85a45c24cbafb5 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/assembly/sparse_assembler_test.cpp support@416-417 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/assembly/sparse_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/assembly/surface_pressure_assembler_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/assembly/surface_pressure_assembler_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 65b0c1bd703fc7bafdbd8200cf61935a039da6b80295f0ddee35027d2cf2dc78 65b0c1bd703fc7bafdbd8200cf61935a039da6b80295f0ddee35027d2cf2dc78 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.AssemblesFullDofsInPressureFacetAndRecordOrder SurfacePressureAssembly.AssemblesFullDofsInPressureFacetAndRecordOrder; assertion 12개 tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.AssemblesFullDofsInPressureFacetAndRecordOrder 유지 원문 검사 body 및 assertion 동일. 61ec658b973ff4f2a3c4dc06cd90c2b4dd2b5ac5d323c41996fcea64dd0375c7 61ec658b973ff4f2a3c4dc06cd90c2b4dd2b5ac5d323c41996fcea64dd0375c7 ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().diagnostics.empty()) | ASSERT_EQ(result.Value().full_external_force.Size(), 24U) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 1U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 2U], -0.5) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 3U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 4U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 5U], 0.0) | EXPECT_EQ(result.Value().full_external_tangent.Rows(), 24U) | EXPECT_EQ(result.Value().full_external_tangent.Columns(), 24U) | EXPECT_EQ(value, 0.0) ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().diagnostics.empty()) | ASSERT_EQ(result.Value().full_external_force.Size(), 24U) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 1U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 2U], -0.5) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 3U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 4U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 5U], 0.0) | EXPECT_EQ(result.Value().full_external_tangent.Rows(), 24U) | EXPECT_EQ(result.Value().full_external_tangent.Columns(), 24U) | EXPECT_EQ(value, 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.AddsRepeatedRecordsAndAppliesUnitFactorExactlyOnce SurfacePressureAssembly.AddsRepeatedRecordsAndAppliesUnitFactorExactlyOnce; assertion 2개 tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.AddsRepeatedRecordsAndAppliesUnitFactorExactlyOnce 유지 원문 검사 body 및 assertion 동일. 8fdc8dc50f731553ae45c3c08e921158c7ddc9dd639562d30ea5261e09ad46d8 8fdc8dc50f731553ae45c3c08e921158c7ddc9dd639562d30ea5261e09ad46d8 ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[node * 6U + 2U], -1.0) ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[node * 6U + 2U], -1.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.IsBitwiseStableForSerialAndParallelLocalEvaluation SurfacePressureAssembly.IsBitwiseStableForSerialAndParallelLocalEvaluation; assertion 8개 tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.IsBitwiseStableForSerialAndParallelLocalEvaluation 유지 원문 검사 body 및 assertion 동일. 48444c6f2917e44301611c69abf5fe3192dddea0f8bd5491faa6798a1b1ee682 48444c6f2917e44301611c69abf5fe3192dddea0f8bd5491faa6798a1b1ee682 ASSERT_TRUE(serial_result.HasValue()) | ASSERT_TRUE(parallel_result.HasValue()) | EXPECT_EQ(Values(serial_result.Value().full_external_force), Values(parallel_result.Value().full_external_force)) | EXPECT_EQ(serial_result.Value().full_external_tangent.RowOffsets(), parallel_result.Value().full_external_tangent.RowOffsets()) | EXPECT_EQ(serial_result.Value().full_external_tangent.ColumnIndices(), parallel_result.Value().full_external_tangent.ColumnIndices()) | EXPECT_EQ(serial_result.Value().full_external_tangent.Values(), parallel_result.Value().full_external_tangent.Values()) | EXPECT_TRUE(serial_result.Value().diagnostics.empty()) | EXPECT_TRUE(parallel_result.Value().diagnostics.empty()) ASSERT_TRUE(serial_result.HasValue()) | ASSERT_TRUE(parallel_result.HasValue()) | EXPECT_EQ(Values(serial_result.Value().full_external_force), Values(parallel_result.Value().full_external_force)) | EXPECT_EQ(serial_result.Value().full_external_tangent.RowOffsets(), parallel_result.Value().full_external_tangent.RowOffsets()) | EXPECT_EQ(serial_result.Value().full_external_tangent.ColumnIndices(), parallel_result.Value().full_external_tangent.ColumnIndices()) | EXPECT_EQ(serial_result.Value().full_external_tangent.Values(), parallel_result.Value().full_external_tangent.Values()) | EXPECT_TRUE(serial_result.Value().diagnostics.empty()) | EXPECT_TRUE(parallel_result.Value().diagnostics.empty()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/assembly/surface_pressure_assembler_test.cpp support@1-122 helper/oracle/fixture/include/static assertion 구간: PressureFixture, MakeFixture, if, Values tests/unit/assembly/surface_pressure_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 212fb026f9860fa82917c9a2a8e06c719b1338a414784431d36b14ce79330338 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/assembly/thermal_assembler_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/assembly/thermal_assembler_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bcac60bb3167ad3e6ec2d45f9ee08c7535bb121f71cae21a7cac9053440ec25a bcac60bb3167ad3e6ec2d45f9ee08c7535bb121f71cae21a7cac9053440ec25a 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.HandAssemblyPreservesSharedStationsMaterialOffsetAndThicknessJump ThermalAssembler.HandAssemblyPreservesSharedStationsMaterialOffsetAndThicknessJump; assertion 12개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.HandAssemblyPreservesSharedStationsMaterialOffsetAndThicknessJump 유지 원문 검사 body 및 assertion 동일. 2b58c82002dcecc533fba0030b665848e18c223902521a1e83fd2a87d742cb62 2b58c82002dcecc533fba0030b665848e18c223902521a1e83fd2a87d742cb62 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_EQ(assembled.Value().Conductivity().Rows(), 30U) | EXPECT_LE(std::abs(k(i, j) - expected.k(i, j)), ek(i, j) + gamma * expected.pk(i, j)) | EXPECT_LE(std::abs(c(i, j) - expected.c(i, j)), ec(i, j) + gamma * expected.pc(i, j)) | EXPECT_EQ(domain.Value().ThermalElements()[0].MaterialIndex(), 1U) | EXPECT_EQ(domain.Value().ThermalElements()[1].MaterialIndex(), 2U) | EXPECT_EQ(assembled.Value().ElementOrder(), (std::vector{0, 1})) | EXPECT_EQ(assembled.Value().Kernels()[0].SourceId().source_label_text, ""0009"") | EXPECT_EQ(assembled.Value().Scatters()[0][5 + a], assembled.Value().Scatters()[1][a])" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_EQ(assembled.Value().Conductivity().Rows(), 30U) | EXPECT_LE(std::abs(k(i, j) - expected.k(i, j)), ek(i, j) + gamma * expected.pk(i, j)) | EXPECT_LE(std::abs(c(i, j) - expected.c(i, j)), ec(i, j) + gamma * expected.pc(i, j)) | EXPECT_EQ(domain.Value().ThermalElements()[0].MaterialIndex(), 1U) | EXPECT_EQ(domain.Value().ThermalElements()[1].MaterialIndex(), 2U) | EXPECT_EQ(assembled.Value().ElementOrder(), (std::vector{0, 1})) | EXPECT_EQ(assembled.Value().Kernels()[0].SourceId().source_label_text, ""0009"") | EXPECT_EQ(assembled.Value().Scatters()[0][5 + a], assembled.Value().Scatters()[1][a])" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.SourceRowHeatInputRetainsPrescribedSignedDuplicateContributions ThermalAssembler.SourceRowHeatInputRetainsPrescribedSignedDuplicateContributions; assertion 15개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.SourceRowHeatInputRetainsPrescribedSignedDuplicateContributions 유지 원문 검사 body 및 assertion 동일. 17db9c94e9a588ae74c5f1a31a66d769b4b99a42263a1a0e04de71a3a1d53b0a 17db9c94e9a588ae74c5f1a31a66d769b4b99a42263a1a0e04de71a3a1d53b0a ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(dofs.Value().FreeEquation(full).has_value()) | EXPECT_EQ(result.Value().HeatInput()[full], 5.) | EXPECT_EQ(result.Value().HeatInput()[4], -7.) | EXPECT_GE(result.Value().HeatInputError()[full], 1.) | EXPECT_EQ(result.Value().HeatInput()[i], 0.) | EXPECT_EQ(result.Value().HeatInputError()[i], 0.) | ASSERT_TRUE(second_domain.HasValue()) | ASSERT_TRUE(second_model.HasValue()) | ASSERT_TRUE(second_dofs.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(second.Value().HeatInput()[full], 6.) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(dofs.Value().FreeEquation(full).has_value()) | EXPECT_EQ(result.Value().HeatInput()[full], 5.) | EXPECT_EQ(result.Value().HeatInput()[4], -7.) | EXPECT_GE(result.Value().HeatInputError()[full], 1.) | EXPECT_EQ(result.Value().HeatInput()[i], 0.) | EXPECT_EQ(result.Value().HeatInputError()[i], 0.) | ASSERT_TRUE(second_domain.HasValue()) | ASSERT_TRUE(second_model.HasValue()) | ASSERT_TRUE(second_dofs.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(second.Value().HeatInput()[full], 6.) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.SerialAndActualTbbOperatorsBoundsAndFluxAreBitwiseEqual ThermalAssembler.SerialAndActualTbbOperatorsBoundsAndFluxAreBitwiseEqual; assertion 11개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.SerialAndActualTbbOperatorsBoundsAndFluxAreBitwiseEqual 유지 원문 검사 body 및 assertion 동일. 7083d3f901965e28ae9783d436dcef27b2622cb304a5b6631c6081a6656a27e3 7083d3f901965e28ae9783d436dcef27b2622cb304a5b6631c6081a6656a27e3 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(parallel.HasValue()) | EXPECT_EQ(serial.Value().Conductivity().RowOffsets(), parallel.Value().Conductivity().RowOffsets()) | EXPECT_EQ(serial.Value().Conductivity().ColumnIndices(), parallel.Value().Conductivity().ColumnIndices()) | EXPECT_EQ( std::memcmp(serial.Value().HeatInput().Data(), parallel.Value().HeatInput().Data(), 30 * sizeof(double)), 0) | ASSERT_TRUE(sf.HasValue()) | ASSERT_TRUE(pf.HasValue()) | EXPECT_EQ( std::memcmp(sf.Value()[e][r].Components().data(), pf.Value()[e][r].Components().data(), 3 * sizeof(double)), 0) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(parallel.HasValue()) | EXPECT_EQ(serial.Value().Conductivity().RowOffsets(), parallel.Value().Conductivity().RowOffsets()) | EXPECT_EQ(serial.Value().Conductivity().ColumnIndices(), parallel.Value().Conductivity().ColumnIndices()) | EXPECT_EQ( std::memcmp(serial.Value().HeatInput().Data(), parallel.Value().HeatInput().Data(), 30 * sizeof(double)), 0) | ASSERT_TRUE(sf.HasValue()) | ASSERT_TRUE(pf.HasValue()) | EXPECT_EQ( std::memcmp(sf.Value()[e][r].Components().data(), pf.Value()[e][r].Components().data(), 3 * sizeof(double)), 0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.DisconnectedComponentsHaveNoCrossBlockEntries ThermalAssembler.DisconnectedComponentsHaveNoCrossBlockEntries; assertion 6개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.DisconnectedComponentsHaveNoCrossBlockEntries 유지 원문 검사 body 및 assertion 동일. 18403e156469c7c5012f27a63e4d9f13d4a7cef5d14cf64fb3c66e8b2b461fd9 18403e156469c7c5012f27a63e4d9f13d4a7cef5d14cf64fb3c66e8b2b461fd9 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(matrix.Rows(), 40U) | EXPECT_EQ(row < 20, matrix.ColumnIndices()[p] < 20) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(matrix.Rows(), 40U) | EXPECT_EQ(row < 20, matrix.ColumnIndices()[p] < 20) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.RejectsWrongProfilesPartitionsAndNonfiniteAccumulation ThermalAssembler.RejectsWrongProfilesPartitionsAndNonfiniteAccumulation; assertion 11개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.RejectsWrongProfilesPartitionsAndNonfiniteAccumulation 유지 원문 검사 body 및 assertion 동일. 17b959b03e9990bb95823d4e571e8e027d95babe4d8e5f02400d920e12e24961 17b959b03e9990bb95823d4e571e8e027d95babe4d8e5f02400d920e12e24961 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(model.Value(), fesa::DofManager{}, fesa::SerialParallelFor{}) .HasValue()) | ASSERT_TRUE(other_domain.HasValue()) | ASSERT_TRUE(other_model.HasValue()) | ASSERT_TRUE(other_dofs.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(model.Value(), other_dofs.Value(), fesa::SerialParallelFor{}) .HasValue()) | ASSERT_TRUE(overflow_domain.HasValue()) | ASSERT_TRUE(overflow_model.HasValue()) | ASSERT_TRUE(overflow_dofs.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(overflow_model.Value(), overflow_dofs.Value(), fesa::TbbParallelFor{}) .HasValue()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(model.Value(), fesa::DofManager{}, fesa::SerialParallelFor{}) .HasValue()) | ASSERT_TRUE(other_domain.HasValue()) | ASSERT_TRUE(other_model.HasValue()) | ASSERT_TRUE(other_dofs.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(model.Value(), other_dofs.Value(), fesa::SerialParallelFor{}) .HasValue()) | ASSERT_TRUE(overflow_domain.HasValue()) | ASSERT_TRUE(overflow_model.HasValue()) | ASSERT_TRUE(overflow_dofs.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(overflow_model.Value(), overflow_dofs.Value(), fesa::TbbParallelFor{}) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.ParallelKernelFailuresSelectStableSourceElement ThermalAssembler.ParallelKernelFailuresSelectStableSourceElement; assertion 7개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.ParallelKernelFailuresSelectStableSourceElement 유지 원문 검사 body 및 assertion 동일. 705c5cdaa64861e8c3cdc7f638eb3bbc8d6d8bb25de3e78dec00674cb5bee2f4 705c5cdaa64861e8c3cdc7f638eb3bbc8d6d8bb25de3e78dec00674cb5bee2f4 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_FALSE(serial.HasValue()) | ASSERT_FALSE(parallel.HasValue()) | EXPECT_EQ(serial.GetStatus().Diagnostics()[0].entity_identity, ""plate:0009"") | EXPECT_EQ(parallel.GetStatus().Diagnostics()[0].entity_identity, ""plate:0009"")" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_FALSE(serial.HasValue()) | ASSERT_FALSE(parallel.HasValue()) | EXPECT_EQ(serial.GetStatus().Diagnostics()[0].entity_identity, ""plate:0009"") | EXPECT_EQ(parallel.GetStatus().Diagnostics()[0].entity_identity, ""plate:0009"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/assembly/thermal_assembler_test.cpp support@1-117 helper/oracle/fixture/include/static assertion 구간: Model, Dense, ExpectedMatrices, Expected, SameBits tests/unit/assembly/thermal_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b3e9525aaced1be323ec738ea9213a2323dd745f550425b6a612fa09fa176d50 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/build_info_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/build_info_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8bf9bfef45c45c9a09e0a0f98ee4cc38316e2550894c6e27ca599fdd650298b8 8bf9bfef45c45c9a09e0a0f98ee4cc38316e2550894c6e27ca599fdd650298b8 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/build_info_test.cpp BuildInfo.VersionIsStableAndNonEmpty BuildInfo.VersionIsStableAndNonEmpty; assertion 3개 tests/unit/build_info_test.cpp BuildInfo.VersionIsStableAndNonEmpty 유지 원문 검사 body 및 assertion 동일. 0cb8bda21730c82347550102836f3bade449b4c590aa77348381f5066c040bd0 0cb8bda21730c82347550102836f3bade449b4c590aa77348381f5066c040bd0 "EXPECT_FALSE(first.empty()) | EXPECT_EQ(first, second) | EXPECT_TRUE(std::regex_match(std::string(first), std::regex{R""(^[0-9]+\.[0-9]+\.[0-9]+$)""}))" "EXPECT_FALSE(first.empty()) | EXPECT_EQ(first, second) | EXPECT_TRUE(std::regex_match(std::string(first), std::regex{R""(^[0-9]+\.[0-9]+\.[0-9]+$)""}))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/build_info_test.cpp BuildInfo.PublicHeaderHasNoBackendDependency BuildInfo.PublicHeaderHasNoBackendDependency; assertion 0개 tests/unit/build_info_test.cpp BuildInfo.PublicHeaderHasNoBackendDependency 유지 원문 검사 body 및 assertion 동일. 918ff7cf6a6f923c243045921b33a38cf1e94cfc73a2247b7fac6ac76ecc09a8 918ff7cf6a6f923c243045921b33a38cf1e94cfc73a2247b7fac6ac76ecc09a8 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/build_info_test.cpp support@1-9 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/build_info_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c574474e8a7db434a18523c880adfe46ee608d4109b4dffa1ea623ef3c291ac5 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/constraints/boundary_condition_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/constraints/boundary_condition_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b5ff07b5925aab743568eff705c8827f7186889ad15541e90d2ed9fe6998ce79 b5ff07b5925aab743568eff705c8827f7186889ad15541e90d2ed9fe6998ce79 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.ResolvesStableNonzeroDefinitionsThroughBase BoundaryCondition.ResolvesStableNonzeroDefinitionsThroughBase; assertion 8개 tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.ResolvesStableNonzeroDefinitionsThroughBase 유지 원문 검사 body 및 assertion 동일. 8a449e3e0a082370655dda3bce51393da93ba796aac899f07b22572bffcc239d 8a449e3e0a082370655dda3bce51393da93ba796aac899f07b22572bffcc239d ASSERT_TRUE(definitions.HasValue()) | ASSERT_EQ(definitions.Value().size(), 2U) | EXPECT_EQ(definitions.Value()[0U].source_order, 4U) | EXPECT_EQ(definitions.Value()[0U].full_dof_index, 8U) | EXPECT_DOUBLE_EQ(definitions.Value()[0U].prescribed_value, 2.5) | EXPECT_EQ(definitions.Value()[1U].source_order, 4U) | EXPECT_EQ(definitions.Value()[1U].full_dof_index, 2U) | EXPECT_DOUBLE_EQ(definitions.Value()[1U].prescribed_value, 2.5) ASSERT_TRUE(definitions.HasValue()) | ASSERT_EQ(definitions.Value().size(), 2U) | EXPECT_EQ(definitions.Value()[0U].source_order, 4U) | EXPECT_EQ(definitions.Value()[0U].full_dof_index, 8U) | EXPECT_DOUBLE_EQ(definitions.Value()[0U].prescribed_value, 2.5) | EXPECT_EQ(definitions.Value()[1U].source_order, 4U) | EXPECT_EQ(definitions.Value()[1U].full_dof_index, 2U) | EXPECT_DOUBLE_EQ(definitions.Value()[1U].prescribed_value, 2.5) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.DomainOwnsExpandedPolymorphicDefinitionsStably BoundaryCondition.DomainOwnsExpandedPolymorphicDefinitionsStably; assertion 10개 tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.DomainOwnsExpandedPolymorphicDefinitionsStably 유지 원문 검사 body 및 assertion 동일. ccb7ed25f7f922616192d64201aa0dd2e02b20fc5f8c7e0b71b99921adff83f8 ccb7ed25f7f922616192d64201aa0dd2e02b20fc5f8c7e0b71b99921adff83f8 ASSERT_EQ(boundaries.size(), 2U) | EXPECT_EQ(fixture.model->ActiveBoundaryConditions(), (std::vector{0U, 1U})) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(first.Value()[0U].source_order, 0U) | EXPECT_EQ(first.Value()[0U].full_dof_index, 6U) | EXPECT_EQ(second.Value()[0U].source_order, 1U) | EXPECT_EQ(second.Value()[0U].full_dof_index, 7U) | EXPECT_DOUBLE_EQ(first.Value()[0U].prescribed_value, 1.25) | EXPECT_DOUBLE_EQ(second.Value()[0U].prescribed_value, 1.25) ASSERT_EQ(boundaries.size(), 2U) | EXPECT_EQ(fixture.model->ActiveBoundaryConditions(), (std::vector{0U, 1U})) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(first.Value()[0U].source_order, 0U) | EXPECT_EQ(first.Value()[0U].full_dof_index, 6U) | EXPECT_EQ(second.Value()[0U].source_order, 1U) | EXPECT_EQ(second.Value()[0U].full_dof_index, 7U) | EXPECT_DOUBLE_EQ(first.Value()[0U].prescribed_value, 1.25) | EXPECT_DOUBLE_EQ(second.Value()[0U].prescribed_value, 1.25) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.RejectsDuplicateConflictAndNonfiniteBeforeCandidateCommit BoundaryCondition.RejectsDuplicateConflictAndNonfiniteBeforeCandidateCommit; assertion 1개 tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.RejectsDuplicateConflictAndNonfiniteBeforeCandidateCommit 유지 원문 검사 body 및 assertion 동일. 0777dfa7d90a00f5b781ac55fbcd26140ce971f90872e5d827092036852f2a74 0777dfa7d90a00f5b781ac55fbcd26140ce971f90872e5d827092036852f2a74 ASSERT_TRUE( fixture.dofs->Build(*fixture.model, elements, {std::cref(initial)}) .IsOk()) ASSERT_TRUE( fixture.dofs->Build(*fixture.model, elements, {std::cref(initial)}) .IsOk()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.AcceptsIdenticalOverlapAcrossSourceDefinitions BoundaryCondition.AcceptsIdenticalOverlapAcrossSourceDefinitions; assertion 1개 tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.AcceptsIdenticalOverlapAcrossSourceDefinitions 유지 원문 검사 body 및 assertion 동일. 55ca5cd284184aa80c4d75cdced2736d1dedf3ee376f11277ff7ce933d8b1ba7 55ca5cd284184aa80c4d75cdced2736d1dedf3ee376f11277ff7ce933d8b1ba7 ASSERT_TRUE(status.IsOk()) ASSERT_TRUE(status.IsOk()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.ConcreteRejectsNonfinitePrescribedValue BoundaryCondition.ConcreteRejectsNonfinitePrescribedValue; assertion 3개 tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.ConcreteRejectsNonfinitePrescribedValue 유지 원문 검사 body 및 assertion 동일. 365ded0ccec2ef519edcd4c018361f02600a7e9ad1cf3964445965e9828e3a4a 365ded0ccec2ef519edcd4c018361f02600a7e9ad1cf3964445965e9828e3a4a "ASSERT_FALSE(result.HasValue()) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""nonfinite-prescribed-value"")" "ASSERT_FALSE(result.HasValue()) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""nonfinite-prescribed-value"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/constraints/boundary_condition_test.cpp support@1-104 helper/oracle/fixture/include/static assertion 구간: BoundaryFixture, FakeBoundaryCondition, ExpectFailureCode, ExpectCandidate tests/unit/constraints/boundary_condition_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7f03c2fa0d373d6420b1c18029f29a429ed75303d12a175e71a3ce669882c48a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/constraints/essential_constraints_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/constraints/essential_constraints_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ba9c09cde54c8d7ff5a12a38159a7c1de0001262a0186201a81bcbd2bade63d6 3bbaa9486249cbfa5978af50408dc25eab1164fe110ebec87ea7f60f2019353a 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.ExtractsHandComputedBlocksInStableOrder EssentialConstraints.ExtractsHandComputedBlocksInStableOrder; assertion 18개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.ExtractsHandComputedBlocksInStableOrder 유지 원문 검사 body 및 assertion 동일. 674065ab604b3a41a09e73738260e57022bc1c90af16f0d1ff822a3fe000a923 674065ab604b3a41a09e73738260e57022bc1c90af16f0d1ff822a3fe000a923 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(blocks.k_ff.RowOffsets(), (std::vector{0U, 4U, 8U, 12U, 16U})) | EXPECT_EQ(blocks.k_ff.ColumnIndices(), (std::vector{0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U})) | EXPECT_EQ( blocks.k_ff.Values(), (std::vector{1.0, 3.0, 4.0, 6.0, 21.0, 23.0, 24.0, 26.0, 31.0, 33.0, 34.0, 36.0, 51.0, 53.0, 54.0, 56.0})) | EXPECT_EQ(blocks.k_fc.RowOffsets(), (std::vector{0U, 2U, 4U, 6U, 8U})) | EXPECT_EQ(blocks.k_fc.ColumnIndices(), (std::vector{0U, 1U, 0U, 1U, 0U, 1U, 0U, 1U})) | EXPECT_EQ(blocks.k_fc.Values(), (std::vector{2.0, 5.0, 22.0, 0.0, 32.0, 35.0, 52.0, 55.0})) | EXPECT_EQ(blocks.k_cf.RowOffsets(), (std::vector{0U, 4U, 8U})) | EXPECT_EQ(blocks.k_cf.ColumnIndices(), (std::vector{0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U})) | EXPECT_EQ( blocks.k_cf.Values(), (std::vector{11.0, 13.0, 14.0, 16.0, 41.0, 43.0, 44.0, 46.0})) | EXPECT_EQ(blocks.k_cc.RowOffsets(), (std::vector{0U, 2U, 4U})) | EXPECT_EQ(blocks.k_cc.ColumnIndices(), (std::vector{0U, 1U, 0U, 1U})) | EXPECT_EQ(blocks.k_cc.Values(), (std::vector{12.0, 15.0, 42.0, 45.0})) | EXPECT_EQ(blocks.k_fc.Values()[3U], 0.0) | EXPECT_TRUE(blocks.k_ff.Validate().IsOk()) | EXPECT_TRUE(blocks.k_fc.Validate().IsOk()) | EXPECT_TRUE(blocks.k_cf.Validate().IsOk()) | EXPECT_TRUE(blocks.k_cc.Validate().IsOk()) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(blocks.k_ff.RowOffsets(), (std::vector{0U, 4U, 8U, 12U, 16U})) | EXPECT_EQ(blocks.k_ff.ColumnIndices(), (std::vector{0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U})) | EXPECT_EQ( blocks.k_ff.Values(), (std::vector{1.0, 3.0, 4.0, 6.0, 21.0, 23.0, 24.0, 26.0, 31.0, 33.0, 34.0, 36.0, 51.0, 53.0, 54.0, 56.0})) | EXPECT_EQ(blocks.k_fc.RowOffsets(), (std::vector{0U, 2U, 4U, 6U, 8U})) | EXPECT_EQ(blocks.k_fc.ColumnIndices(), (std::vector{0U, 1U, 0U, 1U, 0U, 1U, 0U, 1U})) | EXPECT_EQ(blocks.k_fc.Values(), (std::vector{2.0, 5.0, 22.0, 0.0, 32.0, 35.0, 52.0, 55.0})) | EXPECT_EQ(blocks.k_cf.RowOffsets(), (std::vector{0U, 4U, 8U})) | EXPECT_EQ(blocks.k_cf.ColumnIndices(), (std::vector{0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U})) | EXPECT_EQ( blocks.k_cf.Values(), (std::vector{11.0, 13.0, 14.0, 16.0, 41.0, 43.0, 44.0, 46.0})) | EXPECT_EQ(blocks.k_cc.RowOffsets(), (std::vector{0U, 2U, 4U})) | EXPECT_EQ(blocks.k_cc.ColumnIndices(), (std::vector{0U, 1U, 0U, 1U})) | EXPECT_EQ(blocks.k_cc.Values(), (std::vector{12.0, 15.0, 42.0, 45.0})) | EXPECT_EQ(blocks.k_fc.Values()[3U], 0.0) | EXPECT_TRUE(blocks.k_ff.Validate().IsOk()) | EXPECT_TRUE(blocks.k_fc.Validate().IsOk()) | EXPECT_TRUE(blocks.k_cf.Validate().IsOk()) | EXPECT_TRUE(blocks.k_cc.Validate().IsOk()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.HandlesNoAllAndMixedConstraints EssentialConstraints.HandlesNoAllAndMixedConstraints; assertion 5개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.HandlesNoAllAndMixedConstraints 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4cf6053dbce4a0b8d79b1da2940de913fac25bdc4c6032dbdb6ba5be584c5efb 66201f4cf9837297e77488d6cb0babc1c5dd36934af64abe3b39cf85b4865cfd ASSERT_TRUE(none.HasValue()) | EXPECT_EQ(none.Value().k_ff.Values(), full.Values()) | ASSERT_TRUE(all.HasValue()) | EXPECT_EQ(all.Value().k_cc.Values(), full.Values()) | ASSERT_TRUE(mixed.HasValue()) ASSERT_TRUE(none.HasValue()) | EXPECT_EQ(none.Value().k_ff.Values(), full.Values()) | ASSERT_TRUE(all.HasValue()) | EXPECT_EQ(all.Value().k_cc.Values(), full.Values()) | ASSERT_TRUE(empty_rhs.HasValue()) | EXPECT_EQ(empty_rhs.Value().Size(), 0U) | ASSERT_TRUE(full_rhs.HasValue()) | EXPECT_EQ(full_rhs.Value()[i], static_cast(i) - 2.0) | EXPECT_EQ(full_load[i], static_cast(i) - 2.0) | ASSERT_TRUE(mixed.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.PreservesShellSizedNoMixedAndAllConstraintRoundTrips EssentialConstraints.PreservesShellSizedNoMixedAndAllConstraintRoundTrips; assertion 7개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.PreservesShellSizedNoMixedAndAllConstraintRoundTrips 유지 원문 검사 body 및 assertion 동일. c943e0be6dafdad411e9dc5b075259ff93ba3d6edad1aac44186128b70255f2f c943e0be6dafdad411e9dc5b075259ff93ba3d6edad1aac44186128b70255f2f ASSERT_TRUE(none.HasValue()) | ASSERT_TRUE(mixed.HasValue()) | ASSERT_EQ(mixed_reconstructed.Size(), mixed_full.Size()) | EXPECT_DOUBLE_EQ(mixed_reconstructed[index], mixed_full[index]) | ASSERT_TRUE(all.HasValue()) | ASSERT_EQ(all_reconstructed.Size(), 24U) | EXPECT_DOUBLE_EQ(all_reconstructed[node * 6U + component], node + 1.0) ASSERT_TRUE(none.HasValue()) | ASSERT_TRUE(mixed.HasValue()) | ASSERT_EQ(mixed_reconstructed.Size(), mixed_full.Size()) | EXPECT_DOUBLE_EQ(mixed_reconstructed[index], mixed_full[index]) | ASSERT_TRUE(all.HasValue()) | ASSERT_EQ(all_reconstructed.Size(), 24U) | EXPECT_DOUBLE_EQ(all_reconstructed[node * 6U + component], node + 1.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.ReconstructsNonzeroPrescribedValues EssentialConstraints.ReconstructsNonzeroPrescribedValues; assertion 12개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.ReconstructsNonzeroPrescribedValues 유지 원문 검사 body 및 assertion 동일. 38aa54591420c254c738c4a4c26e333f8bfdf17f2f7e937f55b241729d5668fb 38aa54591420c254c738c4a4c26e333f8bfdf17f2f7e937f55b241729d5668fb EXPECT_EQ(free.Size(), 4U) | EXPECT_DOUBLE_EQ(free[0U], 10.0) | EXPECT_DOUBLE_EQ(free[1U], 20.0) | EXPECT_DOUBLE_EQ(free[2U], 30.0) | EXPECT_DOUBLE_EQ(free[3U], 40.0) | EXPECT_EQ(constrained.Size(), 2U) | EXPECT_DOUBLE_EQ(constrained[0U], 2.5) | EXPECT_DOUBLE_EQ(constrained[1U], -3.25) | EXPECT_EQ(constrained[0U], dofs.PrescribedValues()[0U]) | EXPECT_EQ(constrained[1U], dofs.PrescribedValues()[1U]) | ASSERT_EQ(reconstructed.Size(), full.Size()) | EXPECT_DOUBLE_EQ(reconstructed[index], full[index]) EXPECT_EQ(free.Size(), 4U) | EXPECT_DOUBLE_EQ(free[0U], 10.0) | EXPECT_DOUBLE_EQ(free[1U], 20.0) | EXPECT_DOUBLE_EQ(free[2U], 30.0) | EXPECT_DOUBLE_EQ(free[3U], 40.0) | EXPECT_EQ(constrained.Size(), 2U) | EXPECT_DOUBLE_EQ(constrained[0U], 2.5) | EXPECT_DOUBLE_EQ(constrained[1U], -3.25) | EXPECT_EQ(constrained[0U], dofs.PrescribedValues()[0U]) | EXPECT_EQ(constrained[1U], dofs.PrescribedValues()[1U]) | ASSERT_EQ(reconstructed.Size(), full.Size()) | EXPECT_DOUBLE_EQ(reconstructed[index], full[index]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.RejectsDimensionOrOrderMismatch EssentialConstraints.RejectsDimensionOrOrderMismatch; assertion 9개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.RejectsDimensionOrOrderMismatch 유지 원문 검사 body 및 assertion 동일. fc0cc64c86498e9c8468b6ad373ac9e32ec0bca9361615ae3f974df070dab2cf fc0cc64c86498e9c8468b6ad373ac9e32ec0bca9361615ae3f974df070dab2cf "ASSERT_FALSE(wrong_dimension.HasValue()) | EXPECT_EQ(wrong_dimension.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(wrong_dimension.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(wrong_dimension.GetStatus().Diagnostics()[0U].code, ""invalid-constraint-dimensions"") | ASSERT_FALSE(wrong_order.HasValue()) | EXPECT_EQ(wrong_order.GetStatus().Diagnostics()[0U].code, ""invalid-constraint-dimensions"") | EXPECT_THROW(static_cast(policy.GatherFree(fesa::Vector{5U}, dofs)), std::invalid_argument) | EXPECT_THROW( static_cast(policy.GatherConstrained(fesa::Vector{7U}, dofs)), std::invalid_argument) | EXPECT_THROW(static_cast(policy.ReconstructFull( fesa::Vector{4U}, fesa::Vector{2U}, dofs)), std::invalid_argument)" "ASSERT_FALSE(wrong_dimension.HasValue()) | EXPECT_EQ(wrong_dimension.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(wrong_dimension.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(wrong_dimension.GetStatus().Diagnostics()[0U].code, ""invalid-constraint-dimensions"") | ASSERT_FALSE(wrong_order.HasValue()) | EXPECT_EQ(wrong_order.GetStatus().Diagnostics()[0U].code, ""invalid-constraint-dimensions"") | EXPECT_THROW(static_cast(policy.GatherFree(fesa::Vector{5U}, dofs)), std::invalid_argument) | EXPECT_THROW( static_cast(policy.GatherConstrained(fesa::Vector{7U}, dofs)), std::invalid_argument) | EXPECT_THROW(static_cast(policy.ReconstructFull( fesa::Vector{4U}, fesa::Vector{2U}, dofs)), std::invalid_argument)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/constraints/essential_constraints_test.cpp support@1-119 helper/oracle/fixture/include/static assertion 구간: MakeDofs, MakeShellSizedDofs, MakeMatrix, SequentialDense, ExpectShape tests/unit/constraints/essential_constraints_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c602591b393576ff60645484d498b40d49ed261333bf24372248afc863e80d03 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/constraints/essential_constraints_test.cpp support@196-197 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/constraints/essential_constraints_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f6c2b9c304b34fa866abe406a7be1ab65a57b15b93aee4428636ed4eaa067081 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/core/ascii_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/core/ascii_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b26eaed43661b405fda69e4a287f40ce7f0d5efd2f7ff7aa0459cf32dd802ae4 25872dbd7f04fbdb796adecf712db87424f628615095e50d25e86d7ff05d70f1 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/core/ascii_test.cpp Ascii.LowercasesOnlyAsciiUppercaseBytes Ascii.LowercasesOnlyAsciiUppercaseBytes; assertion 5개 tests/unit/core/ascii_test.cpp Ascii.LowercasesOnlyAsciiUppercaseBytes 유지 원문 검사 body 및 assertion 동일. 909d024cf51f4c78bfbfbc0f844a4deb4d7995a1359e245bab03859c6a3f9dde 909d024cf51f4c78bfbfbc0f844a4deb4d7995a1359e245bab03859c6a3f9dde EXPECT_EQ(fesa::AsciiLower('A'), 'a') | EXPECT_EQ(fesa::AsciiLower('Z'), 'z') | EXPECT_EQ(fesa::AsciiLower('a'), 'a') | EXPECT_EQ(fesa::AsciiLower('0'), '0') | EXPECT_EQ(fesa::AsciiLower(non_ascii), non_ascii) EXPECT_EQ(fesa::AsciiLower('A'), 'a') | EXPECT_EQ(fesa::AsciiLower('Z'), 'z') | EXPECT_EQ(fesa::AsciiLower('a'), 'a') | EXPECT_EQ(fesa::AsciiLower('0'), '0') | EXPECT_EQ(fesa::AsciiLower(non_ascii), non_ascii) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/core/ascii_test.cpp Ascii.ComparesNamesWithoutLocaleOrUnicodeFolding Ascii.ComparesNamesWithoutLocaleOrUnicodeFolding; assertion 3개 tests/unit/core/ascii_test.cpp Ascii.ComparesNamesWithoutLocaleOrUnicodeFolding 유지 원문 검사 body 및 assertion 동일. 3db876d5e00670ef938aa3f78a4b4841b4aa9eb02bf470d659053719c7a47c27 3db876d5e00670ef938aa3f78a4b4841b4aa9eb02bf470d659053719c7a47c27 "EXPECT_TRUE(fesa::AsciiCaseInsensitiveEquals(""Beam-1"", ""bEaM-1"")) | EXPECT_FALSE(fesa::AsciiCaseInsensitiveEquals(""Beam-1"", ""Beam-10"")) | EXPECT_FALSE( fesa::AsciiCaseInsensitiveEquals(uppercase_byte, lowercase_byte))" "EXPECT_TRUE(fesa::AsciiCaseInsensitiveEquals(""Beam-1"", ""bEaM-1"")) | EXPECT_FALSE(fesa::AsciiCaseInsensitiveEquals(""Beam-1"", ""Beam-10"")) | EXPECT_FALSE( fesa::AsciiCaseInsensitiveEquals(uppercase_byte, lowercase_byte))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/core/ascii_test.cpp Ascii.ParsesOnlyCompletePositiveBaseTenSourceLabels Ascii.ParsesOnlyCompletePositiveBaseTenSourceLabels; assertion 11개 tests/unit/core/ascii_test.cpp Ascii.ParsesOnlyCompletePositiveBaseTenSourceLabels 유지 원문 검사 body 및 assertion 동일. 5770a5761723357706fadea333c7cf6c288511a29681077cb3f914cb4a236bf4 5770a5761723357706fadea333c7cf6c288511a29681077cb3f914cb4a236bf4 "ASSERT_TRUE(one.HasValue()) | EXPECT_EQ(one.Value(), 1) | ASSERT_TRUE(leading_zeroes.HasValue()) | EXPECT_EQ(leading_zeroes.Value(), 42) | ASSERT_TRUE(maximum.HasValue()) | EXPECT_EQ(maximum.Value(), (std::numeric_limits::max)()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-source-label"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].entity_identity, invalid)" "ASSERT_TRUE(one.HasValue()) | EXPECT_EQ(one.Value(), 1) | ASSERT_TRUE(leading_zeroes.HasValue()) | EXPECT_EQ(leading_zeroes.Value(), 42) | ASSERT_TRUE(maximum.HasValue()) | EXPECT_EQ(maximum.Value(), (std::numeric_limits::max)()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-source-label"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].entity_identity, invalid)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/core/ascii_test.cpp support@1-9 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/core/ascii_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 92beb48f1d8771676e841d9c0e884cace86bb18b98dbe9a629f21fa1d9e0bc9e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/core/diagnostic_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/core/diagnostic_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 440becb7f8e8ffe6db9b32b757b08a56baea19da46808dc42c426e0f9edb14e5 440becb7f8e8ffe6db9b32b757b08a56baea19da46808dc42c426e0f9edb14e5 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/core/diagnostic_test.cpp CoreDiagnostics.DiagnosticsSortDeterministically CoreDiagnostics.DiagnosticsSortDeterministically; assertion 15개 tests/unit/core/diagnostic_test.cpp CoreDiagnostics.DiagnosticsSortDeterministically 유지 원문 검사 body 및 assertion 동일. 2f659a7cf12be1a5e3e0221806e86f389fb3992907f5bcb4d533d160bbeb90ab 2f659a7cf12be1a5e3e0221806e86f389fb3992907f5bcb4d533d160bbeb90ab "ASSERT_EQ(diagnostics.size(), 7U) | EXPECT_EQ(diagnostics[0].message, ""line"") | EXPECT_EQ(diagnostics[1].message, ""keyword"") | EXPECT_EQ(diagnostics[2].message, ""first-equal"") | EXPECT_EQ(diagnostics[3].message, ""second-equal"") | EXPECT_EQ(diagnostics[4].message, ""code-z"") | EXPECT_EQ(diagnostics[5].message, ""entity-2"") | EXPECT_EQ(diagnostics[6].message, ""file-b"") | EXPECT_EQ(exact.severity, fesa::Severity::kError) | EXPECT_EQ(exact.code, ""a"") | EXPECT_EQ(exact.location.file, std::filesystem::path{""a.inp""}) | EXPECT_EQ(exact.location.line, 3U) | EXPECT_EQ(exact.keyword, ""*NODE"") | EXPECT_EQ(exact.entity_identity, ""I.1"") | EXPECT_EQ(exact.message, ""first-equal"")" "ASSERT_EQ(diagnostics.size(), 7U) | EXPECT_EQ(diagnostics[0].message, ""line"") | EXPECT_EQ(diagnostics[1].message, ""keyword"") | EXPECT_EQ(diagnostics[2].message, ""first-equal"") | EXPECT_EQ(diagnostics[3].message, ""second-equal"") | EXPECT_EQ(diagnostics[4].message, ""code-z"") | EXPECT_EQ(diagnostics[5].message, ""entity-2"") | EXPECT_EQ(diagnostics[6].message, ""file-b"") | EXPECT_EQ(exact.severity, fesa::Severity::kError) | EXPECT_EQ(exact.code, ""a"") | EXPECT_EQ(exact.location.file, std::filesystem::path{""a.inp""}) | EXPECT_EQ(exact.location.line, 3U) | EXPECT_EQ(exact.keyword, ""*NODE"") | EXPECT_EQ(exact.entity_identity, ""I.1"") | EXPECT_EQ(exact.message, ""first-equal"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/core/diagnostic_test.cpp support@1-25 helper/oracle/fixture/include/static assertion 구간: MakeDiagnostic tests/unit/core/diagnostic_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ae3d439e5440487b75c91d95add36374b3f77363663cdc902e830a9174a669e9 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/core/source_identity_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/core/source_identity_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 601d563a839e0ce63c6a47ddbb4cb2dc60386ecb2483519532e969affe387b85 a6ebba2d2f9e09be684e817e41b14b6572bcce0706d5114c8c8a88f6ac145746 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/core/source_identity_test.cpp CoreDiagnostics.SourceIdentityPreservesRawIdentity CoreDiagnostics.SourceIdentityPreservesRawIdentity; assertion 5개 tests/unit/core/source_identity_test.cpp CoreDiagnostics.SourceIdentityPreservesRawIdentity 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0fe861b09827bc7d70b9062d27ca9696e91dd91c1a8d62f2482b3f761915b0a3 f466209fca1d6d1f9aff769f37534515999cf4a71f1da756c95e007d1a1599c3 "EXPECT_EQ(location.file, std::filesystem::path{""models/My Beam.inp""}) | EXPECT_EQ(location.line, 27U) | EXPECT_EQ(identity.instance_name, ""Beam-Instance_A"") | EXPECT_EQ(identity.source_label, 42) | EXPECT_EQ(identity.source_label_text, ""00042"")" "EXPECT_EQ(location.file, std::filesystem::path{""models/My Beam.inp""}) | EXPECT_EQ(location.line, 27U) | EXPECT_EQ(identity.instance_name, ""Beam-Instance_A"") | EXPECT_EQ(identity.source_label, 42) | EXPECT_EQ(identity.source_label_text, ""00042"") | EXPECT_TRUE(fesa::SourceIdentityEquals(identity, identity)) | EXPECT_FALSE(fesa::SourceIdentityEquals( identity, {""beam-instance_a"", std::int64_t{42}, ""00042""})) | EXPECT_FALSE(fesa::SourceIdentityEquals( identity, {""Beam-Instance_A"", std::int64_t{43}, ""00042""})) | EXPECT_FALSE(fesa::SourceIdentityEquals( identity, {""Beam-Instance_A"", std::int64_t{42}, ""42""}))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/core/source_identity_test.cpp support@1-8 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/core/source_identity_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d2c1c5608afd74a75014476a740b7734f890ded534eb9532ad90766dcc16b86a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/core/status_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/core/status_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5c035458f1d67d43c340b41fa3f4581a1b3b1df2859903ddfa12da838ac7ff69 3cae23bb04187b6d104c3575d24a87daee20f5c1779dfcfd762ef299105aea42 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/core/status_test.cpp CoreDiagnostics.ResultEnforcesValueErrorExclusivity CoreDiagnostics.ResultEnforcesValueErrorExclusivity; assertion 21개 tests/unit/core/status_test.cpp CoreDiagnostics.ResultEnforcesValueErrorExclusivity 유지 원문 검사 body 및 assertion 동일. 9e7d9261f2c51e9a1cb0ef57442073618731b3a1867833debe5c3b9d0b064be2 9e7d9261f2c51e9a1cb0ef57442073618731b3a1867833debe5c3b9d0b064be2 "EXPECT_TRUE(ok.IsOk()) | EXPECT_FALSE(ok.Category().has_value()) | EXPECT_TRUE(ok.Diagnostics().empty()) | EXPECT_FALSE(uncategorized.IsOk()) | EXPECT_FALSE(uncategorized.Category().has_value()) | ASSERT_EQ(uncategorized.Diagnostics().size(), 1U) | EXPECT_EQ(uncategorized.Diagnostics()[0].code, ""invalid-beam-length"") | EXPECT_FALSE(categorized.IsOk()) | ASSERT_TRUE(categorized.Category().has_value()) | EXPECT_EQ(*categorized.Category(), fesa::FailureCategory::kModel) | EXPECT_TRUE(success.HasValue()) | EXPECT_TRUE(success.GetStatus().IsOk()) | EXPECT_EQ(success.Value(), ""solved"") | EXPECT_EQ(copied.Value(), ""solved"") | EXPECT_EQ(moved.Value(), ""solved"") | EXPECT_FALSE(failure.HasValue()) | EXPECT_FALSE(failure.GetStatus().IsOk()) | EXPECT_EQ(failure.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_THROW(failure.Value(), std::logic_error) | EXPECT_THROW(const_failure.Value(), std::logic_error) | EXPECT_THROW((void)fesa::Result::Failure(fesa::Status::Ok()), std::invalid_argument)" "EXPECT_TRUE(ok.IsOk()) | EXPECT_FALSE(ok.Category().has_value()) | EXPECT_TRUE(ok.Diagnostics().empty()) | EXPECT_FALSE(uncategorized.IsOk()) | EXPECT_FALSE(uncategorized.Category().has_value()) | ASSERT_EQ(uncategorized.Diagnostics().size(), 1U) | EXPECT_EQ(uncategorized.Diagnostics()[0].code, ""invalid-beam-length"") | EXPECT_FALSE(categorized.IsOk()) | ASSERT_TRUE(categorized.Category().has_value()) | EXPECT_EQ(*categorized.Category(), fesa::FailureCategory::kModel) | EXPECT_TRUE(success.HasValue()) | EXPECT_TRUE(success.GetStatus().IsOk()) | EXPECT_EQ(success.Value(), ""solved"") | EXPECT_EQ(copied.Value(), ""solved"") | EXPECT_EQ(moved.Value(), ""solved"") | EXPECT_FALSE(failure.HasValue()) | EXPECT_FALSE(failure.GetStatus().IsOk()) | EXPECT_EQ(failure.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_THROW(failure.Value(), std::logic_error) | EXPECT_THROW(const_failure.Value(), std::logic_error) | EXPECT_THROW((void)fesa::Result::Failure(fesa::Status::Ok()), std::invalid_argument)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/core/status_test.cpp support@1-23 helper/oracle/fixture/include/static assertion 구간: ModelDiagnostic tests/unit/core/status_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f1984a10d2ad68533d1189e8e10140c63e153857bb4df27e6279f8ad7345c9ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/element_factory_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/elements/element_factory_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 26a556dd970ee14c9fefbdcdfabb78eae52ccf0edbeda4940c2657488459d3f0 39cdff0a92b9a86f0efe54457c47f57bb8fa0a48887eae940198046c8f5249f0 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/element_factory_test.cpp ElementFactory.CreatesBeamWithStableLayoutStiffnessAndRecovery ElementFactory.CreatesBeamWithStableLayoutStiffnessAndRecovery; assertion 21개 tests/unit/elements/element_factory_test.cpp ElementFactory.CreatesBeamWithStableLayoutStiffnessAndRecovery 유지 원문 검사 body 및 assertion 동일. 6ea821d717c92f195c2f3d8cac87a3f58f9db2377459cd40674d113374366e34 6ea821d717c92f195c2f3d8cac87a3f58f9db2377459cd40674d113374366e34 "EXPECT_NE(probe, nullptr) | EXPECT_TRUE(destroyed) | ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(candidate.Value(), nullptr) | EXPECT_EQ(layout.source_id.source_label_text, ""7"") | EXPECT_EQ(layout.node_indices, (std::vector{0U, 1U})) | EXPECT_EQ(layout.components_per_node, (std::vector{ fesa::DofComponent::kUx, fesa::DofComponent::kUy, fesa::DofComponent::kUz, fesa::DofComponent::kUrx, fesa::DofComponent::kUry, fesa::DofComponent::kUrz})) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_EQ(stiffness.Value().layout.node_indices, layout.node_indices) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_id.source_label_text, ""7"") | ASSERT_TRUE(std::holds_alternative( result.Value().payload)) | ASSERT_EQ(rows.endpoint_rows.size(), 2U) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[0U].end_action[0U], -10.0) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[1U].end_action[0U], 10.0) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[0U].section_resultant[0U], 10.0) | EXPECT_EQ(rows.endpoint_rows[0U].node.source_label_text, ""1"") | EXPECT_EQ(rows.endpoint_rows[1U].node.source_label_text, ""2"") | EXPECT_EQ(rows.gauss_rows.size(), 2U) | EXPECT_EQ(rows.stress_rows.size(), 2U)" "EXPECT_NE(probe, nullptr) | EXPECT_TRUE(destroyed) | ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(candidate.Value(), nullptr) | EXPECT_EQ(layout.source_id.source_label_text, ""7"") | EXPECT_EQ(layout.node_indices, (std::vector{0U, 1U})) | EXPECT_EQ(layout.components_per_node, (std::vector{ fesa::DofComponent::kUx, fesa::DofComponent::kUy, fesa::DofComponent::kUz, fesa::DofComponent::kUrx, fesa::DofComponent::kUry, fesa::DofComponent::kUrz})) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_EQ(stiffness.Value().layout.node_indices, layout.node_indices) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_id.source_label_text, ""7"") | ASSERT_TRUE(std::holds_alternative( result.Value().payload)) | ASSERT_EQ(rows.endpoint_rows.size(), 2U) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[0U].end_action[0U], -10.0) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[1U].end_action[0U], 10.0) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[0U].section_resultant[0U], 10.0) | EXPECT_EQ(rows.endpoint_rows[0U].node.source_label_text, ""1"") | EXPECT_EQ(rows.endpoint_rows[1U].node.source_label_text, ""2"") | EXPECT_EQ(rows.gauss_rows.size(), 2U) | EXPECT_EQ(rows.stress_rows.size(), 2U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/element_factory_test.cpp ElementFactory.CreatesMitc4WithStableLayoutStiffnessAndRecovery ElementFactory.CreatesMitc4WithStableLayoutStiffnessAndRecovery; assertion 15개 tests/unit/elements/element_factory_test.cpp ElementFactory.CreatesMitc4WithStableLayoutStiffnessAndRecovery 유지 원문 검사 body 및 assertion 동일. 998ad7873f34e6ae9b95cc403602d8c995903164d6857c4952be354731aa6645 998ad7873f34e6ae9b95cc403602d8c995903164d6857c4952be354731aa6645 ASSERT_EQ(domain.Elements().Size(), 2U) | ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(candidate.Value(), nullptr) | EXPECT_EQ(element->DofLayout().node_indices, (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(element->DofLayout().components_per_node.size(), 6U) | ASSERT_TRUE(stiffness.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(direct_stiffness.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(std::holds_alternative( result.Value().payload)) | ASSERT_EQ(rows.rows.size(), 4U) | EXPECT_DOUBLE_EQ(rows.physical_strain_energy, 0.0) | EXPECT_EQ(rows.rows[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(rows.rows[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(row.element, fesa::EntityIndex{1U}) ASSERT_EQ(domain.Elements().Size(), 2U) | ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(candidate.Value(), nullptr) | EXPECT_EQ(element->DofLayout().node_indices, (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(element->DofLayout().components_per_node.size(), 6U) | ASSERT_TRUE(stiffness.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(direct_stiffness.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(std::holds_alternative( result.Value().payload)) | ASSERT_EQ(rows.rows.size(), 4U) | EXPECT_DOUBLE_EQ(rows.physical_strain_energy, 0.0) | EXPECT_EQ(rows.rows[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(rows.rows[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(row.element, fesa::EntityIndex{1U}) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/element_factory_test.cpp ElementFactory.OwnerBuildsNonOwningViewInStableElementOrder ElementFactory.OwnerBuildsNonOwningViewInStableElementOrder; assertion 7개 tests/unit/elements/element_factory_test.cpp ElementFactory.OwnerBuildsNonOwningViewInStableElementOrder 유지 원문 검사 body 및 assertion 동일. 11cc51a03beb75fe145b0865b12fb782a7bea43f352e46f4c198462f397e1196 11cc51a03beb75fe145b0865b12fb782a7bea43f352e46f4c198462f397e1196 "ASSERT_TRUE(beam.HasValue()) | ASSERT_TRUE(shell.HasValue()) | ASSERT_EQ(view.size(), 2U) | EXPECT_EQ(&view[0U].get(), owner[0U].get()) | EXPECT_EQ(&view[1U].get(), owner[1U].get()) | EXPECT_EQ(view[0U].get().DofLayout().source_id.source_label_text, ""7"") | EXPECT_EQ(view[1U].get().DofLayout().source_id.source_label_text, ""9"")" "ASSERT_TRUE(beam.HasValue()) | ASSERT_TRUE(shell.HasValue()) | ASSERT_EQ(view.size(), 2U) | EXPECT_EQ(&view[0U].get(), owner[0U].get()) | EXPECT_EQ(&view[1U].get(), owner[1U].get()) | EXPECT_EQ(view[0U].get().DofLayout().source_id.source_label_text, ""7"") | EXPECT_EQ(view[1U].get().DofLayout().source_id.source_label_text, ""9"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/element_factory_test.cpp ElementFactory.RejectsUnknownAndIncompatibleDefinitions ElementFactory.RejectsUnknownAndIncompatibleDefinitions; assertion 1개 tests/unit/elements/element_factory_test.cpp ElementFactory.RejectsUnknownAndIncompatibleDefinitions 유지 원문 검사 body 및 assertion 동일. 0e0b2765c7cebcbf59f6649a659226c9e963c37cf207db198ee2dd0a7a23f2c8 0e0b2765c7cebcbf59f6649a659226c9e963c37cf207db198ee2dd0a7a23f2c8 "EXPECT_EQ(missing_frame_result.GetStatus().Diagnostics()[0U].code, ""missing-shell-frame"")" "EXPECT_EQ(missing_frame_result.GetStatus().Diagnostics()[0U].code, ""missing-shell-frame"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/element_factory_test.cpp ElementFactory.SolidBindingPreservesThreeComponentsAndReferenceMass ElementFactory.SolidBindingPreservesThreeComponentsAndReferenceMass; assertion 15개 tests/unit/elements/element_factory_test.cpp ElementFactory.SolidBindingPreservesThreeComponentsAndReferenceMass 유지 원문 검사 body 및 assertion 동일. e0459ed0666964dd9f2f6f40d000d99842fe6e79acb14fe683fed56000f054f2 e0459ed0666964dd9f2f6f40d000d99842fe6e79acb14fe683fed56000f054f2 ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(solid, nullptr) | EXPECT_EQ(solid->DofLayout().source_id.source_label, 99) | EXPECT_EQ(solid->DofLayout().components_per_node, (std::vector{fesa::DofComponent::kUx, fesa::DofComponent::kUy, fesa::DofComponent::kUz})) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_EQ(stiffness.Value().values.Rows(), 24U) | ASSERT_TRUE(mass.HasValue()) | ASSERT_EQ(mass.Value().values.Rows(), 24U) | ASSERT_EQ(mass.Value().values.Columns(), 24U) | EXPECT_NEAR(total_mass, 2.0, 1.0e-13) | EXPECT_NEAR(mass.Value().values(row, column), 0.25, 1.0e-15) | EXPECT_DOUBLE_EQ(mass.Value().values(row, column), 0.0) | ASSERT_TRUE(response.HasValue()) | EXPECT_EQ(response.Value().points[point].element, 0U) | EXPECT_EQ(response.Value().points[point].integration_point, point + 1U) ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(solid, nullptr) | EXPECT_EQ(solid->DofLayout().source_id.source_label, 99) | EXPECT_EQ(solid->DofLayout().components_per_node, (std::vector{fesa::DofComponent::kUx, fesa::DofComponent::kUy, fesa::DofComponent::kUz})) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_EQ(stiffness.Value().values.Rows(), 24U) | ASSERT_TRUE(mass.HasValue()) | ASSERT_EQ(mass.Value().values.Rows(), 24U) | ASSERT_EQ(mass.Value().values.Columns(), 24U) | EXPECT_NEAR(total_mass, 2.0, 1.0e-13) | EXPECT_NEAR(mass.Value().values(row, column), 0.25, 1.0e-15) | EXPECT_DOUBLE_EQ(mass.Value().values(row, column), 0.0) | ASSERT_TRUE(response.HasValue()) | EXPECT_EQ(response.Value().points[point].element, 0U) | EXPECT_EQ(response.Value().points[point].integration_point, point + 1U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/element_factory_test.cpp ElementFactory.SolidStaticBindingKeepsAbsentDensityAndRejectsForeignOwner ElementFactory.SolidStaticBindingKeepsAbsentDensityAndRejectsForeignOwner; assertion 6개 tests/unit/elements/element_factory_test.cpp ElementFactory.SolidStaticBindingKeepsAbsentDensityAndRejectsForeignOwner 유지 원문 검사 body 및 assertion 동일. 67e0aa39b78dbefe0e852900de54f14318d5ae806e09ab40348a8798d246bd3f 67e0aa39b78dbefe0e852900de54f14318d5ae806e09ab40348a8798d246bd3f "ASSERT_TRUE(candidate.HasValue()) | EXPECT_TRUE(candidate.Value()->ComputeStiffness().HasValue()) | ASSERT_NE(solid, nullptr) | EXPECT_FALSE(solid->ComputeMass().HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""invalid-element-definition"")" "ASSERT_TRUE(candidate.HasValue()) | EXPECT_TRUE(candidate.Value()->ComputeStiffness().HasValue()) | ASSERT_NE(solid, nullptr) | EXPECT_FALSE(solid->ComputeMass().HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""invalid-element-definition"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/element_factory_test.cpp ElementFactory.SolidBindingRejectsReferenceInversionWithSourceContext ElementFactory.SolidBindingRejectsReferenceInversionWithSourceContext; assertion 3개 tests/unit/elements/element_factory_test.cpp ElementFactory.SolidBindingRejectsReferenceInversionWithSourceContext 유지 원문 검사 body 및 assertion 동일. ae4abe144881d88e3568e44f6d0bd4559ad3f9fdb401f326a722bbce37b492e7 ae4abe144881d88e3568e44f6d0bd4559ad3f9fdb401f326a722bbce37b492e7 "ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].entity_identity, ""Solid-1:99"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].location.line, 12U)" "ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].entity_identity, ""Solid-1:99"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].location.line, 12U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/element_factory_test.cpp support@1-203 helper/oracle/fixture/include/static assertion 구간: ShellDefinition, MakeDomain, if, SolidDefinition, ExpectSameMatrix, ExpectModelFailure, UnknownElementDefinition, DestructionProbeElement tests/unit/elements/element_factory_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5df55285ae0fae1c4f738f882bddf024296bcd204b785093108491fe34daed7d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/euler_beam_3d_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 11개 tests/unit/elements/euler_beam_3d_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 36b1305028805eacc62bf2e85b8abdf3512eb322f1a41429062b810365d79c0f 36b1305028805eacc62bf2e85b8abdf3512eb322f1a41429062b810365d79c0f 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.HermiteAndBMatrixMatchReviewedSigns EulerBeam3D.HermiteAndBMatrixMatchReviewedSigns; assertion 8개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.HermiteAndBMatrixMatchReviewedSigns 유지 원문 검사 body 및 assertion 동일. 72cf906f5dc17ad6e999e6805a6067f89c06a80fc3bb6982948a7ea36cfee95d 72cf906f5dc17ad6e999e6805a6067f89c06a80fc3bb6982948a7ea36cfee95d EXPECT_NEAR(recovery.gauss_generalized_strains[point][0U], axial_strain, 1.0e-14) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][1U], twist, 1.0e-14) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][2U], -curvature(w, x), 1.0e-13) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][3U], curvature(v, x), 1.0e-13) | EXPECT_NEAR(recovery.endpoint_section_resultants[0U][2U], material.youngs_modulus * section.i11 * -curvature(w, 0.0), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[1U][2U], material.youngs_modulus * section.i11 * -curvature(w, length), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[0U][3U], material.youngs_modulus * section.i22 * curvature(v, 0.0), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[1U][3U], material.youngs_modulus * section.i22 * curvature(v, length), 1.0e-5) EXPECT_NEAR(recovery.gauss_generalized_strains[point][0U], axial_strain, 1.0e-14) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][1U], twist, 1.0e-14) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][2U], -curvature(w, x), 1.0e-13) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][3U], curvature(v, x), 1.0e-13) | EXPECT_NEAR(recovery.endpoint_section_resultants[0U][2U], material.youngs_modulus * section.i11 * -curvature(w, 0.0), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[1U][2U], material.youngs_modulus * section.i11 * -curvature(w, length), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[0U][3U], material.youngs_modulus * section.i22 * curvature(v, 0.0), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[1U][3U], material.youngs_modulus * section.i22 * curvature(v, length), 1.0e-5) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.TwoPointGaussMatchesClosedStiffness EulerBeam3D.TwoPointGaussMatchesClosedStiffness; assertion 2개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.TwoPointGaussMatchesClosedStiffness 유지 원문 검사 body 및 assertion 동일. 5051a070e070c7eae4c852c1ea6f81abc26e94829ee91053d119f37018340643 5051a070e070c7eae4c852c1ea6f81abc26e94829ee91053d119f37018340643 EXPECT_LE(NormalizedMatrixError(actual, closed), kMatrixTolerance) | EXPECT_LE(NormalizedMatrixError(actual, transpose), kMatrixTolerance) EXPECT_LE(NormalizedMatrixError(actual, closed), kMatrixTolerance) | EXPECT_LE(NormalizedMatrixError(actual, transpose), kMatrixTolerance) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.HasSixRigidModesRankSixAndPositiveDeformationEnergy EulerBeam3D.HasSixRigidModesRankSixAndPositiveDeformationEnergy; assertion 4개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.HasSixRigidModesRankSixAndPositiveDeformationEnergy 유지 원문 검사 body 및 assertion 동일. 516ae9c2a58b6b19177233b4b31579a5096c950576c35ec6af2ad868dc41b63b 516ae9c2a58b6b19177233b4b31579a5096c950576c35ec6af2ad868dc41b63b EXPECT_LE(normalizedResidual, kRigidTolerance) | EXPECT_EQ(positive_count, 6) | EXPECT_GE(value, -kRigidTolerance * maximum_singular_value) | EXPECT_GT(QuadraticEnergy(stiffness, deformation), 0.0) EXPECT_LE(normalizedResidual, kRigidTolerance) | EXPECT_EQ(positive_count, 6) | EXPECT_GE(value, -kRigidTolerance * maximum_singular_value) | EXPECT_GT(QuadraticEnergy(stiffness, deformation), 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RotatedTransformPreservesWorkAndEnergy EulerBeam3D.RotatedTransformPreservesWorkAndEnergy; assertion 4개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RotatedTransformPreservesWorkAndEnergy 유지 원문 검사 body 및 assertion 동일. bcead48fa3010457278ea1a7c367260ca6fb9d4e01d8f58374fcfeafbd0c653d bcead48fa3010457278ea1a7c367260ca6fb9d4e01d8f58374fcfeafbd0c653d EXPECT_NEAR(dot, row == column ? 1.0 : 0.0, 1.0e-14) | EXPECT_NEAR(Determinant(rotation), 1.0, 1.0e-14) | EXPECT_LE(NormalizedMatrixError(global, expected_global), kMatrixTolerance) | EXPECT_NEAR(recovery.gauss_generalized_strains[0U][0U], (local_displacement[6U] - local_displacement[0U]) / 3.0, 1.0e-14) EXPECT_NEAR(dot, row == column ? 1.0 : 0.0, 1.0e-14) | EXPECT_NEAR(Determinant(rotation), 1.0, 1.0e-14) | EXPECT_LE(NormalizedMatrixError(global, expected_global), kMatrixTolerance) | EXPECT_NEAR(recovery.gauss_generalized_strains[0U][0U], (local_displacement[6U] - local_displacement[0U]) / 3.0, 1.0e-14) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.PreservesExactRotatedResultsAcrossVector3Migration EulerBeam3D.PreservesExactRotatedResultsAcrossVector3Migration; assertion 11개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.PreservesExactRotatedResultsAcrossVector3Migration 유지 원문 검사 body 및 assertion 동일. cf0127ac571a9fbf42f03f5ca9df5cb1211781ca31220dd266c7494bd465005b cf0127ac571a9fbf42f03f5ca9df5cb1211781ca31220dd266c7494bd465005b EXPECT_DOUBLE_EQ(delta.Norm(), 3.0) | EXPECT_DOUBLE_EQ(global(0U, 0U), 0x1.65f135da12f68p+28) | EXPECT_DOUBLE_EQ(global(0U, 1U), 0x1.6261c084bda12p+28) | EXPECT_DOUBLE_EQ(global(0U, 2U), 0x1.630ca684bda13p+27) | EXPECT_DOUBLE_EQ(global(4U, 4U), 0x1.068e359b59b58p+22) | EXPECT_DOUBLE_EQ(global(5U, 11U), 0x1.2d14a7ee7ee7bp+22) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][0U], 0x1.1111111111110p-5) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][1U], 0x1.1111111111111p-5) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][2U], -0x1.382425a7d2473p-6) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][3U], -0x1.a9389137b051dp-6) | EXPECT_DOUBLE_EQ(recovery.endpoint_section_resultants[1U][2U], 0x1.525c94a87359fp+17) EXPECT_DOUBLE_EQ(delta.Norm(), 3.0) | EXPECT_DOUBLE_EQ(global(0U, 0U), 0x1.65f135da12f68p+28) | EXPECT_DOUBLE_EQ(global(0U, 1U), 0x1.6261c084bda12p+28) | EXPECT_DOUBLE_EQ(global(0U, 2U), 0x1.630ca684bda13p+27) | EXPECT_DOUBLE_EQ(global(4U, 4U), 0x1.068e359b59b58p+22) | EXPECT_DOUBLE_EQ(global(5U, 11U), 0x1.2d14a7ee7ee7bp+22) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][0U], 0x1.1111111111110p-5) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][1U], 0x1.1111111111111p-5) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][2U], -0x1.382425a7d2473p-6) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][3U], -0x1.a9389137b051dp-6) | EXPECT_DOUBLE_EQ(recovery.endpoint_section_resultants[1U][2U], 0x1.525c94a87359fp+17) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.ConstantLineLoadMatchesAllSignedComponents EulerBeam3D.ConstantLineLoadMatchesAllSignedComponents; assertion 5개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.ConstantLineLoadMatchesAllSignedComponents 유지 원문 검사 body 및 assertion 동일. 6d608896998acfb9e31d28e2a9700cc5bfa9f3f273b5de08f201f18d6358f4f5 6d608896998acfb9e31d28e2a9700cc5bfa9f3f273b5de08f201f18d6358f4f5 ASSERT_EQ(equivalent.Size(), expected.size()) | EXPECT_GT(relative_errors[0U], relative_errors[1U]) | EXPECT_GT(relative_errors[1U], relative_errors[2U]) | EXPECT_NEAR( std::log(relative_errors[0U] / relative_errors[1U]) / std::log(2.0), 4.0, 1.0e-8) | EXPECT_NEAR( std::log(relative_errors[1U] / relative_errors[2U]) / std::log(2.0), 4.0, 1.0e-8) ASSERT_EQ(equivalent.Size(), expected.size()) | EXPECT_GT(relative_errors[0U], relative_errors[1U]) | EXPECT_GT(relative_errors[1U], relative_errors[2U]) | EXPECT_NEAR( std::log(relative_errors[0U] / relative_errors[1U]) / std::log(2.0), 4.0, 1.0e-8) | EXPECT_NEAR( std::log(relative_errors[1U] / relative_errors[2U]) / std::log(2.0), 4.0, 1.0e-8) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.AnalyticalAxialTorsionAndTwoPlaneBendingRecover EulerBeam3D.AnalyticalAxialTorsionAndTwoPlaneBendingRecover; assertion 2개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.AnalyticalAxialTorsionAndTwoPlaneBendingRecover 유지 원문 검사 body 및 assertion 동일. ec321db32dec17dd4598bb2af11029172b73838ff38e434a120520c4c8a66136 ec321db32dec17dd4598bb2af11029172b73838ff38e434a120520c4c8a66136 EXPECT_NEAR(local_yrecovery.endpoint_section_resultants[1U][3U], 0.0, 1.0e-8) | EXPECT_NEAR(local_zrecovery.endpoint_section_resultants[1U][2U], 0.0, 1.0e-8) EXPECT_NEAR(local_yrecovery.endpoint_section_resultants[1U][3U], 0.0, 1.0e-8) | EXPECT_NEAR(local_zrecovery.endpoint_section_resultants[1U][2U], 0.0, 1.0e-8) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RejectsInvalidGeometryAndProperties EulerBeam3D.RejectsInvalidGeometryAndProperties; assertion 5개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RejectsInvalidGeometryAndProperties 유지 원문 검사 body 및 assertion 동일. 84aca3252ee968479adb3ff42de486fae5c3eb0ecfc270ead2f5b7272471a512 84aca3252ee968479adb3ff42de486fae5c3eb0ecfc270ead2f5b7272471a512 EXPECT_EQ(result.GetStatus().Category(), FailureCategory::kModel) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, code) | EXPECT_TRUE(EulerBeam3D::Create(scaled_first, above_threshold, valid_section, valid_material) .HasValue()) | EXPECT_TRUE( EulerBeam3D::Create(origin, unit_x, guide_above_threshold, valid_material) .HasValue()) EXPECT_EQ(result.GetStatus().Category(), FailureCategory::kModel) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, code) | EXPECT_TRUE(EulerBeam3D::Create(scaled_first, above_threshold, valid_section, valid_material) .HasValue()) | EXPECT_TRUE( EulerBeam3D::Create(origin, unit_x, guide_above_threshold, valid_material) .HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RecoversSectionPointAndDefaultCentroidS11 EulerBeam3D.RecoversSectionPointAndDefaultCentroidS11; assertion 11개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RecoversSectionPointAndDefaultCentroidS11 유지 원문 검사 body 및 assertion 동일. 22288ebdd3e81a891dc0f67b7ce14995403506506faa4cc045838d070fdd22d2 22288ebdd3e81a891dc0f67b7ce14995403506506faa4cc045838d070fdd22d2 "ASSERT_EQ(recovery.stress_points.size(), 4U) | EXPECT_EQ(stress.gauss_point, static_cast(gauss_point + 1U)) | EXPECT_EQ(stress.section_point, point + 1U) | EXPECT_DOUBLE_EQ(stress.x1, x1) | EXPECT_DOUBLE_EQ(stress.x2, x2) | ASSERT_EQ(default_recovery.stress_points.size(), 2U) | EXPECT_EQ(stress.gauss_point, static_cast(gauss_point + 1U)) | EXPECT_EQ(stress.section_point, 0U) | EXPECT_DOUBLE_EQ(stress.x1, 0.0) | EXPECT_DOUBLE_EQ(stress.x2, 0.0) | EXPECT_EQ(stress.source, ""fesa-default"")" "ASSERT_EQ(recovery.stress_points.size(), 4U) | EXPECT_EQ(stress.gauss_point, static_cast(gauss_point + 1U)) | EXPECT_EQ(stress.section_point, point + 1U) | EXPECT_DOUBLE_EQ(stress.x1, x1) | EXPECT_DOUBLE_EQ(stress.x2, x2) | ASSERT_EQ(default_recovery.stress_points.size(), 2U) | EXPECT_EQ(stress.gauss_point, static_cast(gauss_point + 1U)) | EXPECT_EQ(stress.section_point, 0U) | EXPECT_DOUBLE_EQ(stress.x1, 0.0) | EXPECT_DOUBLE_EQ(stress.x2, 0.0) | EXPECT_EQ(stress.source, ""fesa-default"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.ReproducesConstantStrainTwistAndCurvaturePatches EulerBeam3D.ReproducesConstantStrainTwistAndCurvaturePatches; assertion 4개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.ReproducesConstantStrainTwistAndCurvaturePatches 유지 원문 검사 body 및 assertion 동일. 4fa6d99d84b69f21604df5fa097dd5c21494f16445f261d75d87e8ebfbccd76e 4fa6d99d84b69f21604df5fa097dd5c21494f16445f261d75d87e8ebfbccd76e EXPECT_NEAR(recovery.equilibrium_end_actions[0U][1U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[0U][2U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[1U][1U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[1U][2U], 0.0, 1.0e-8) EXPECT_NEAR(recovery.equilibrium_end_actions[0U][1U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[0U][2U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[1U][1U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[1U][2U], 0.0, 1.0e-8) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.OnePointNegativeControlHasRankFour EulerBeam3D.OnePointNegativeControlHasRankFour; assertion 2개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.OnePointNegativeControlHasRankFour 유지 원문 검사 body 및 assertion 동일. 09b807bbb8c23f7aca5a27cdb8df60f75e866fec3d12dfce52a2c9271fec75da 09b807bbb8c23f7aca5a27cdb8df60f75e866fec3d12dfce52a2c9271fec75da EXPECT_EQ(SymmetricRank(one_point, kRigidTolerance), 4U) | EXPECT_EQ(SymmetricRank(production, kRigidTolerance), 6U) EXPECT_EQ(SymmetricRank(one_point, kRigidTolerance), 4U) | EXPECT_EQ(SymmetricRank(production, kRigidTolerance), 6U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/euler_beam_3d_test.cpp support@1-500 helper/oracle/fixture/include/static assertion 구간: fesa, MakeNode, MakeMaterial, RequireBeam, if, AlignedBeam, MaximumAbsoluteEntry, MatrixIsFinite, NormalizedMatrixError, VectorNorm, QuadraticEnergy, ExpectScaledNear, ExpectRelativeNear, ExpectedClosedStiffness, SymmetricEigenvalues, SymmetricRank, for, count_if, TestOnlyOnePointStiffness, SolveFixedFirstNode, SolveDenseSystem, SolveUniformTransverseCantilever, UniformLoadInteriorDisplacementError, TransformationFromKnownRows, TransposeMultiply, Determinant tests/unit/elements/euler_beam_3d_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8fe565c3a19d57cd6870d3739c431b99fc41c549a91faa396fd25baea0ebb604 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/euler_beam_3d_test.cpp support@1137-1139 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/elements/euler_beam_3d_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/finite_rotation_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/elements/finite_rotation_test.cpp file 이관 원래 3-column inverse identity를 SpatialMomentSO3의 모든 unit-vector solve로 이관한다. 1e-11과 finite 검사를 유지하고 Refactor의 독립 z-axis virtual-work 검사를 함께 남긴다. 6404d4c360ec2cc2779d394442b7ed9dd520ad9a2742394650f50a699619c5af 60399a9c2b20a3752b3f57a1b74807dbb4db0800c7aa8c5ce375375a1f93340f 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/finite_rotation_test.cpp FiniteRotation.ZeroCoordinatePreservesInitialFrameAndDirector FiniteRotation.ZeroCoordinatePreservesInitialFrameAndDirector; assertion 2개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.ZeroCoordinatePreservesInitialFrameAndDirector 유지 원문 검사 body 및 assertion 동일. aad5b1d13028179488b58dd96eca0f52247abdd44548c24f6b2a5c67b6a12aa5 aad5b1d13028179488b58dd96eca0f52247abdd44548c24f6b2a5c67b6a12aa5 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().phi, Vector3{}) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().phi, Vector3{}) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/finite_rotation_test.cpp FiniteRotation.FiniteCoordinateBuildsProperTriadAndDirector FiniteRotation.FiniteCoordinateBuildsProperTriadAndDirector; assertion 1개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.FiniteCoordinateBuildsProperTriadAndDirector 유지 원문 검사 body 및 assertion 동일. 1013327e87dfbcfd8516fe145e8e8051a97b90d1f4321ff5bdc4f99dbe198e94 1013327e87dfbcfd8516fe145e8e8051a97b90d1f4321ff5bdc4f99dbe198e94 ASSERT_TRUE(result.HasValue()) ASSERT_TRUE(result.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/finite_rotation_test.cpp FiniteRotation.GlobalIncrementRebuildsFixedReferenceOrientation FiniteRotation.GlobalIncrementRebuildsFixedReferenceOrientation; assertion 3개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.GlobalIncrementRebuildsFixedReferenceOrientation 유지 원문 검사 body 및 assertion 동일. 069a14c550efe63bd5178dae6e8c3ae73a67dbff8c75ee68d7af81582d3336dd 069a14c550efe63bd5178dae6e8c3ae73a67dbff8c75ee68d7af81582d3336dd ASSERT_TRUE(committed.HasValue()) | ASSERT_TRUE(updated.HasValue()) | EXPECT_EQ(updated.Value().phi, expected_phi) ASSERT_TRUE(committed.HasValue()) | ASSERT_TRUE(updated.HasValue()) | EXPECT_EQ(updated.Value().phi, expected_phi) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/finite_rotation_test.cpp FiniteRotation.RejectsCoordinatesInsidePrincipalBranchMargin FiniteRotation.RejectsCoordinatesInsidePrincipalBranchMargin; assertion 5개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.RejectsCoordinatesInsidePrincipalBranchMargin 유지 원문 검사 body 및 assertion 동일. 12de3e3e90b293e3c19a0cc9620342eab8bad27fd9185362bf6aefb4c3c4334d 12de3e3e90b293e3c19a0cc9620342eab8bad27fd9185362bf6aefb4c3c4334d "EXPECT_TRUE(MakeFiniteRotationState(Vector3{pi - 2.0 * margin, 0.0, 0.0}, initial_frame) .HasValue()) | ASSERT_FALSE(ambiguous.HasValue()) | ASSERT_FALSE(ambiguous.GetStatus().IsOk()) | ASSERT_EQ(ambiguous.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(ambiguous.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"")" "EXPECT_TRUE(MakeFiniteRotationState(Vector3{pi - 2.0 * margin, 0.0, 0.0}, initial_frame) .HasValue()) | ASSERT_FALSE(ambiguous.HasValue()) | ASSERT_FALSE(ambiguous.GetStatus().IsOk()) | ASSERT_EQ(ambiguous.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(ambiguous.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/finite_rotation_test.cpp FiniteRotation.JacobiansAreFiniteInverseTransposeAndDerivativeConsistent FiniteRotation.JacobiansAreFiniteInverseTransposeAndDerivativeConsistent; assertion 3개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.JacobiansAreFiniteInverseTransposeAndDerivativeConsistent 이관 원래 3-column inverse identity를 SpatialMomentSO3의 모든 unit-vector solve로 이관한다. 1e-11과 finite 검사를 유지하고 Refactor의 독립 z-axis virtual-work 검사를 함께 남긴다. de23e8a2e899273546a62b6d2d04f9b13ca22c99017a7e110d3680b0f54a2d05 a39013f3e24d31e9ecb14e3117116d4f8be30cb57b65c734d2d81b560719432a EXPECT_TRUE(IsFinite(left_jacobian)) | EXPECT_TRUE(IsFinite(inverse_transpose)) | EXPECT_NEAR(identity(row, column), row == column ? 1.0 : 0.0, 1.0e-11) EXPECT_TRUE(IsFinite(left_jacobian)) | ASSERT_TRUE(solved.HasValue()) | EXPECT_TRUE(std::isfinite(solved.Value().X())) | EXPECT_TRUE(std::isfinite(solved.Value().Y())) | EXPECT_TRUE(std::isfinite(solved.Value().Z())) | EXPECT_NEAR(identity_column[row], row == column ? 1.0 : 0.0, 1.0e-11) | ASSERT_TRUE(spatial.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/finite_rotation_test.cpp FiniteRotation.RejectsNonfiniteCoordinatesAndInvalidInitialFrames FiniteRotation.RejectsNonfiniteCoordinatesAndInvalidInitialFrames; assertion 8개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.RejectsNonfiniteCoordinatesAndInvalidInitialFrames 유지 원문 검사 body 및 assertion 동일. 5da1952beb0840c9e5ab9fb79e02c5a2519d977763fb497904b3741c3d2a52d7 5da1952beb0840c9e5ab9fb79e02c5a2519d977763fb497904b3741c3d2a52d7 "ASSERT_FALSE(nonfinite.HasValue()) | ASSERT_EQ(nonfinite.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(nonfinite.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"") | EXPECT_FALSE(MakeFiniteRotationState(Vector3{}, invalid_frame).HasValue()) | ASSERT_TRUE(committed.HasValue()) | ASSERT_FALSE(invalid_increment.HasValue()) | ASSERT_EQ(invalid_increment.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(invalid_increment.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"")" "ASSERT_FALSE(nonfinite.HasValue()) | ASSERT_EQ(nonfinite.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(nonfinite.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"") | EXPECT_FALSE(MakeFiniteRotationState(Vector3{}, invalid_frame).HasValue()) | ASSERT_TRUE(committed.HasValue()) | ASSERT_FALSE(invalid_increment.HasValue()) | ASSERT_EQ(invalid_increment.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(invalid_increment.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/finite_rotation_test.cpp support@1-97 helper/oracle/fixture/include/static assertion 구간: fesa, InitialFrame, Transpose, Multiply, Determinant, IsFinite, if, ExpectMatrixNear, ExpectVectorNear, ExpectProperOrthogonal tests/unit/elements/finite_rotation_test.cpp file-support 유지 원래 3-column inverse identity를 SpatialMomentSO3의 모든 unit-vector solve로 이관한다. 1e-11과 finite 검사를 유지하고 Refactor의 독립 z-axis virtual-work 검사를 함께 남긴다. 214fd606ec176af7e65bf83ad0dd1cdaf0a15c0de6afd34a6fc06b5596dfab88 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/finite_rotation_test.cpp support@227-229 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/elements/finite_rotation_test.cpp file-support 유지 원래 3-column inverse identity를 SpatialMomentSO3의 모든 unit-vector solve로 이관한다. 1e-11과 finite 검사를 유지하고 Refactor의 독립 z-axis virtual-work 검사를 함께 남긴다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/hex8_element_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 35개 tests/unit/elements/hex8_element_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e346ef7775cc96410eacfea1e7e15ecf2b62b6f125a2e475f9e15e3e97e1acaa a80b2714cc9ea75d6b97dead96c8ff8d443812c306278883e54a74d8b4515d40 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.ExactBrickStiffnessAndRowSumLumpedMass Hex8Element.ExactBrickStiffnessAndRowSumLumpedMass; assertion 7개 tests/unit/elements/hex8_element_test.cpp Hex8Element.ExactBrickStiffnessAndRowSumLumpedMass 유지 원문 검사 body 및 assertion 동일. 4958ab7f7854bb45aa79de051af75399166c78d31010d04061a611e3f1b0af57 4958ab7f7854bb45aa79de051af75399166c78d31010d04061a611e3f1b0af57 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(stiffness.HasValue()) | ASSERT_TRUE(mass.HasValue()) | ASSERT_EQ(k.Rows(), 24U) | ASSERT_EQ(m.Columns(), 24U) | EXPECT_NEAR(k(3 * a + i, 3 * b + j), exact, 2e-12) | EXPECT_NEAR(m(3 * a + i, 3 * b + j), expected_mass, 2e-14) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(stiffness.HasValue()) | ASSERT_TRUE(mass.HasValue()) | ASSERT_EQ(k.Rows(), 24U) | ASSERT_EQ(m.Columns(), 24U) | EXPECT_NEAR(k(3 * a + i, 3 * b + j), exact, 2e-12) | EXPECT_NEAR(m(3 * a + i, 3 * b + j), expected_mass, 2e-14) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.AffineTensorShearAndEightDistinctRecoveryPoints Hex8Element.AffineTensorShearAndEightDistinctRecoveryPoints; assertion 13개 tests/unit/elements/hex8_element_test.cpp Hex8Element.AffineTensorShearAndEightDistinctRecoveryPoints 유지 원문 검사 body 및 assertion 동일. 313b67ab5495cf7f93ddcbf2e7b5060057d3b60bbe619ea1a8bf18aa0c834287 313b67ab5495cf7f93ddcbf2e7b5060057d3b60bbe619ea1a8bf18aa0c834287 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(r.Value().strain_energy, 48.0 * 48.0 * 0.0002, 1e-12) | EXPECT_EQ(p.element, 7U) | EXPECT_EQ(p.integration_point, static_cast(g + 1)) | EXPECT_NEAR(p.strain[3], 0.01, 1e-16) | EXPECT_NEAR(p.cauchy_stress[3], 0.96, 1e-14) | EXPECT_DOUBLE_EQ(p.natural_coordinates[i], natural[i]) | EXPECT_NEAR(p.reference_coordinates[i], natural[i] * static_cast(i + 1U), 2e-15) | EXPECT_LT(r.Value().points[2].natural_coordinates[0], 0.0) | EXPECT_GT(r.Value().points[2].natural_coordinates[1], 0.0) | ASSERT_TRUE(recovered.HasValue()) | EXPECT_EQ(std::get(recovered.Value().payload) .rows.size(), 8U) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(r.Value().strain_energy, 48.0 * 48.0 * 0.0002, 1e-12) | EXPECT_EQ(p.element, 7U) | EXPECT_EQ(p.integration_point, static_cast(g + 1)) | EXPECT_NEAR(p.strain[3], 0.01, 1e-16) | EXPECT_NEAR(p.cauchy_stress[3], 0.96, 1e-14) | EXPECT_DOUBLE_EQ(p.natural_coordinates[i], natural[i]) | EXPECT_NEAR(p.reference_coordinates[i], natural[i] * static_cast(i + 1U), 2e-15) | EXPECT_LT(r.Value().points[2].natural_coordinates[0], 0.0) | EXPECT_GT(r.Value().points[2].natural_coordinates[1], 0.0) | ASSERT_TRUE(recovered.HasValue()) | EXPECT_EQ(std::get(recovered.Value().payload) .rows.size(), 8U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.UniformTranslationHasExactlyZeroLinearForceAndEnergy Hex8Element.UniformTranslationHasExactlyZeroLinearForceAndEnergy; assertion 6개 tests/unit/elements/hex8_element_test.cpp Hex8Element.UniformTranslationHasExactlyZeroLinearForceAndEnergy 유지 원문 검사 body 및 assertion 동일. d26359e5ed35c184732756cded1c265d5d66185d9350490c6338e407985d9af7 d26359e5ed35c184732756cded1c265d5d66185d9350490c6338e407985d9af7 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_EQ(response.Value().strain_energy, 0.0) | EXPECT_EQ(response.Value().internal_force[i], 0.0) | EXPECT_EQ(point.strain[i], 0.0) | EXPECT_EQ(point.cauchy_stress[i], 0.0) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_EQ(response.Value().strain_energy, 0.0) | EXPECT_EQ(response.Value().internal_force[i], 0.0) | EXPECT_EQ(point.strain[i], 0.0) | EXPECT_EQ(point.cauchy_stress[i], 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.LinearResponseIsUnchangedByExactlyRepresentableTranslation Hex8Element.LinearResponseIsUnchangedByExactlyRepresentableTranslation; assertion 7개 tests/unit/elements/hex8_element_test.cpp Hex8Element.LinearResponseIsUnchangedByExactlyRepresentableTranslation 유지 원문 검사 body 및 assertion 동일. b6369e091941f9510897d937e44e5aea48b57bb6b78b0075ad1061ff7a9de3ab b6369e091941f9510897d937e44e5aea48b57bb6b78b0075ad1061ff7a9de3ab ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(translated.HasValue()) | EXPECT_EQ(translated.Value().strain_energy, original.Value().strain_energy) | EXPECT_EQ(translated.Value().internal_force[i], original.Value().internal_force[i]) | EXPECT_EQ(translated.Value().points[g].strain, original.Value().points[g].strain) | EXPECT_EQ(translated.Value().points[g].cauchy_stress, original.Value().points[g].cauchy_stress) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(translated.HasValue()) | EXPECT_EQ(translated.Value().strain_energy, original.Value().strain_energy) | EXPECT_EQ(translated.Value().internal_force[i], original.Value().internal_force[i]) | EXPECT_EQ(translated.Value().points[g].strain, original.Value().points[g].strain) | EXPECT_EQ(translated.Value().points[g].cauchy_stress, original.Value().points[g].cauchy_stress) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.TinySignedAffineStretchRetainsStvkStressForceAndEnergy Hex8Element.TinySignedAffineStretchRetainsStvkStressForceAndEnergy; assertion 8개 tests/unit/elements/hex8_element_test.cpp Hex8Element.TinySignedAffineStretchRetainsStvkStressForceAndEnergy 유지 원문 검사 body 및 assertion 동일. 78a9f3a03973517e375627e6db91c92f87055a4a578afaad01162ecd40bb8807 78a9f3a03973517e375627e6db91c92f87055a4a578afaad01162ecd40bb8807 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, expected_energy, 1e-12 * expected_energy) | EXPECT_NEAR(point.strain[0], green, 1e-12 * std::abs(green)) | EXPECT_NEAR(point.cauchy_stress[0], (1.0 + stretch) * sxx, 1e-12 * std::abs(sxx)) | EXPECT_NEAR(point.cauchy_stress[1], syy / (1.0 + stretch), 1e-12 * std::abs(syy)) | EXPECT_NEAR(point.cauchy_stress[2], syy / (1.0 + stretch), 1e-12 * std::abs(syy)) | EXPECT_NEAR(response.Value().internal_force[3U * a + i], expected[i], 1e-12 * std::abs(expected[i])) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, expected_energy, 1e-12 * expected_energy) | EXPECT_NEAR(point.strain[0], green, 1e-12 * std::abs(green)) | EXPECT_NEAR(point.cauchy_stress[0], (1.0 + stretch) * sxx, 1e-12 * std::abs(sxx)) | EXPECT_NEAR(point.cauchy_stress[1], syy / (1.0 + stretch), 1e-12 * std::abs(syy)) | EXPECT_NEAR(point.cauchy_stress[2], syy / (1.0 + stretch), 1e-12 * std::abs(syy)) | EXPECT_NEAR(response.Value().internal_force[3U * a + i], expected[i], 1e-12 * std::abs(expected[i])) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.FiniteRigidRotationHasZeroGreenEnergyAndForce Hex8Element.FiniteRigidRotationHasZeroGreenEnergyAndForce; assertion 4개 tests/unit/elements/hex8_element_test.cpp Hex8Element.FiniteRigidRotationHasZeroGreenEnergyAndForce 유지 원문 검사 body 및 assertion 동일. e455a9ed32fdd0e8e47fc3c290a1b727a91e2fa4e8bdaf6fbdc1afcf350feff8 e455a9ed32fdd0e8e47fc3c290a1b727a91e2fa4e8bdaf6fbdc1afcf350feff8 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(r.Value().strain_energy, 0.0, 1e-25) | EXPECT_LT(r.Value().internal_force.Norm(), 1e-11) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(r.Value().strain_energy, 0.0, 1e-25) | EXPECT_LT(r.Value().internal_force.Norm(), 1e-11) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsCollapsedAndInvalidMaterial Hex8Element.RejectsCollapsedAndInvalidMaterial; assertion 3개 tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsCollapsedAndInvalidMaterial 유지 원문 검사 body 및 assertion 동일. f7a6d301ea33b5e96a07e058df286d6cd4862431368a3073a678fb7d25013412 f7a6d301ea33b5e96a07e058df286d6cd4862431368a3073a678fb7d25013412 EXPECT_FALSE(Make(x).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, 0.5).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, -1.0).HasValue()) EXPECT_FALSE(Make(x).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, 0.5).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, -1.0).HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.CertifiesPositiveQuadraticAfterSubdivision Hex8Element.CertifiesPositiveQuadraticAfterSubdivision; assertion 3개 tests/unit/elements/hex8_element_test.cpp Hex8Element.CertifiesPositiveQuadraticAfterSubdivision 유지 원문 검사 body 및 assertion 동일. 95b193341de90670eec4e7255153d7dceed178a93f1f64c003a50b742b00a37d 95b193341de90670eec4e7255153d7dceed178a93f1f64c003a50b742b00a37d ASSERT_TRUE(r.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(total, 2.0 * 8.0 * (.1125 + 1.0 / 3.0), 2e-14) ASSERT_TRUE(r.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(total, 2.0 * 8.0 * (.1125 + 1.0 / 3.0), 2e-14) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsInteriorFoldDespiteAll27SamplesAndGaussBeingPositive Hex8Element.RejectsInteriorFoldDespiteAll27SamplesAndGaussBeingPositive; assertion 7개 tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsInteriorFoldDespiteAll27SamplesAndGaussBeingPositive 유지 원문 검사 body 및 assertion 동일. bbc9326a1a8cd88f3825aed2389ec7e1ef842966741646d352f0832789f5d0c2 bbc9326a1a8cd88f3825aed2389ec7e1ef842966741646d352f0832789f5d0c2 "EXPECT_GT(xi * xi - .5 * xi + .0575, 0.0) | EXPECT_LT(.25 * .25 - .5 * .25 + .0575, 0.0) | ASSERT_FALSE(invalid.HasValue()) | EXPECT_NE(invalid.GetStatus().Diagnostics()[0].message.find(""nonpositive""), std::string::npos) | ASSERT_TRUE(valid.HasValue()) | EXPECT_FALSE(valid.Value().EvaluateNonlinear(u).HasValue()) | EXPECT_FALSE(valid.Value().EvaluateLinear(u).HasValue())" "EXPECT_GT(xi * xi - .5 * xi + .0575, 0.0) | EXPECT_LT(.25 * .25 - .5 * .25 + .0575, 0.0) | ASSERT_FALSE(invalid.HasValue()) | EXPECT_NE(invalid.GetStatus().Diagnostics()[0].message.find(""nonpositive""), std::string::npos) | ASSERT_TRUE(valid.HasValue()) | EXPECT_FALSE(valid.Value().EvaluateNonlinear(u).HasValue()) | EXPECT_FALSE(valid.Value().EvaluateLinear(u).HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.UnresolvedZeroInteriorJacobianFailsClosed Hex8Element.UnresolvedZeroInteriorJacobianFailsClosed; assertion 2개 tests/unit/elements/hex8_element_test.cpp Hex8Element.UnresolvedZeroInteriorJacobianFailsClosed 유지 원문 검사 body 및 assertion 동일. 25134743bf7dbd34b8f67e84c1f7410aca7787da7e52867c5219e8fd69b5915a 25134743bf7dbd34b8f67e84c1f7410aca7787da7e52867c5219e8fd69b5915a "ASSERT_FALSE(invalid.HasValue()) | EXPECT_NE(invalid.GetStatus().Diagnostics()[0].message.find(""unresolved""), std::string::npos)" "ASSERT_FALSE(invalid.HasValue()) | EXPECT_NE(invalid.GetStatus().Diagnostics()[0].message.find(""unresolved""), std::string::npos)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.TinyUncertainCurrentAdditionCannotBeAccepted Hex8Element.TinyUncertainCurrentAdditionCannotBeAccepted; assertion 2개 tests/unit/elements/hex8_element_test.cpp Hex8Element.TinyUncertainCurrentAdditionCannotBeAccepted 유지 원문 검사 body 및 assertion 동일. 27e5e73c83e4d58b025bd6e1a66cee4ffbee4247950b398ed98dace4cc6cb471 27e5e73c83e4d58b025bd6e1a66cee4ffbee4247950b398ed98dace4cc6cb471 ASSERT_TRUE(valid.HasValue()) | EXPECT_FALSE(valid.Value().EvaluateNonlinear(u).HasValue()) ASSERT_TRUE(valid.HasValue()) | EXPECT_FALSE(valid.Value().EvaluateNonlinear(u).HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.SixRigidModesAndZeroStateTangent Hex8Element.SixRigidModesAndZeroStateTangent; assertion 6개 tests/unit/elements/hex8_element_test.cpp Hex8Element.SixRigidModesAndZeroStateTangent 유지 원문 검사 body 및 assertion 동일. 981fc257d430c76b022b6abdc8164538b5b2b0ad71090c5ad34aa8687b2600f4 981fc257d430c76b022b6abdc8164538b5b2b0ad71090c5ad34aa8687b2600f4 ASSERT_TRUE(element.HasValue()) | EXPECT_LT(k.Multiply(u).Norm(), 2e-12) | ASSERT_TRUE(trial.HasValue()) | EXPECT_NEAR(trial.Value().tangent(i, j), k(i, j), 2e-12) | EXPECT_DOUBLE_EQ(trial.Value().geometric_tangent(i, j), 0.0) | EXPECT_NEAR(k(i, j), k(j, i), 2e-12) ASSERT_TRUE(element.HasValue()) | EXPECT_LT(k.Multiply(u).Norm(), 2e-12) | ASSERT_TRUE(trial.HasValue()) | EXPECT_NEAR(trial.Value().tangent(i, j), k(i, j), 2e-12) | EXPECT_DOUBLE_EQ(trial.Value().geometric_tangent(i, j), 0.0) | EXPECT_NEAR(k(i, j), k(j, i), 2e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.RowSumLumpedMassHasAll24PositiveDirectionsAndReferenceInvariance Hex8Element.RowSumLumpedMassHasAll24PositiveDirectionsAndReferenceInvariance; assertion 5개 tests/unit/elements/hex8_element_test.cpp Hex8Element.RowSumLumpedMassHasAll24PositiveDirectionsAndReferenceInvariance 유지 원문 검사 body 및 assertion 동일. 83b4b4951ae0ceb3a1ebba1031cb1b93db157eb11ceafe07c0e9a6efaf526056 83b4b4951ae0ceb3a1ebba1031cb1b93db157eb11ceafe07c0e9a6efaf526056 ASSERT_TRUE(element.HasValue()) | EXPECT_NEAR(mv[a], eigenvalue * v[a], 3e-14) | EXPECT_GT(v.Dot(mv), 0.0) | ASSERT_TRUE(element.Value().EvaluateNonlinear(Affine(Brick(), f)).HasValue()) | EXPECT_DOUBLE_EQ(before(i, j), after(i, j)) ASSERT_TRUE(element.HasValue()) | EXPECT_NEAR(mv[a], eigenvalue * v[a], 3e-14) | EXPECT_GT(v.Dot(mv), 0.0) | ASSERT_TRUE(element.Value().EvaluateNonlinear(Affine(Brick(), f)).HasValue()) | EXPECT_DOUBLE_EQ(before(i, j), after(i, j)) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.GeometryMaterialDensityScalingAndCoordinateCovariance Hex8Element.GeometryMaterialDensityScalingAndCoordinateCovariance; assertion 7개 tests/unit/elements/hex8_element_test.cpp Hex8Element.GeometryMaterialDensityScalingAndCoordinateCovariance 유지 원문 검사 body 및 assertion 동일. 4eb1091302e1a3fe888acb6e43f848406b05514f67e8e607ebebb448e2c3ae33 4eb1091302e1a3fe888acb6e43f848406b05514f67e8e607ebebb448e2c3ae33 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(rotated_element.HasValue()) | ASSERT_TRUE(scaled.HasValue()) | EXPECT_NEAR(kr(3 * a + i, 3 * b + j), oracle, 3e-12) | EXPECT_NEAR(mr(3 * a + i, 3 * b + j), m(3 * a + i, 3 * b + j), 3e-14) | EXPECT_NEAR(ks(3 * a + i, 3 * b + j), 7.5 * k(3 * a + i, 3 * b + j), 3e-11) | EXPECT_NEAR(ms(3 * a + i, 3 * b + j), 5.0 * 15.625 * m(3 * a + i, 3 * b + j), 3e-12) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(rotated_element.HasValue()) | ASSERT_TRUE(scaled.HasValue()) | EXPECT_NEAR(kr(3 * a + i, 3 * b + j), oracle, 3e-12) | EXPECT_NEAR(mr(3 * a + i, 3 * b + j), m(3 * a + i, 3 * b + j), 3e-14) | EXPECT_NEAR(ks(3 * a + i, 3 * b + j), 7.5 * k(3 * a + i, 3 * b + j), 3e-11) | EXPECT_NEAR(ms(3 * a + i, 3 * b + j), 5.0 * 15.625 * m(3 * a + i, 3 * b + j), 3e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedAffinePatchHasExactEnergyAndGlobalCauchyGreenTensors Hex8Element.WarpedAffinePatchHasExactEnergyAndGlobalCauchyGreenTensors; assertion 7개 tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedAffinePatchHasExactEnergyAndGlobalCauchyGreenTensors 유지 원문 검사 body 및 assertion 동일. fe44f6f0a2891d1d47828642165b5b6797671cfe463b004bbb2fb282a442fd8d fe44f6f0a2891d1d47828642165b5b6797671cfe463b004bbb2fb282a442fd8d ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | EXPECT_NEAR(trial.Value().strain_energy, volume * (24.0 * trace * trace + 48.0 * contraction), 2e-12) | EXPECT_NEAR(p.strain[c], green[i][j], 5e-16) | EXPECT_NEAR(p.cauchy_stress[c], sigma[i][j], 8e-14) | EXPECT_NEAR(force[i], 0.0, 5e-13) | EXPECT_NEAR(moment[i], 0.0, 2e-12) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | EXPECT_NEAR(trial.Value().strain_energy, volume * (24.0 * trace * trace + 48.0 * contraction), 2e-12) | EXPECT_NEAR(p.strain[c], green[i][j], 5e-16) | EXPECT_NEAR(p.cauchy_stress[c], sigma[i][j], 8e-14) | EXPECT_NEAR(force[i], 0.0, 5e-13) | EXPECT_NEAR(moment[i], 0.0, 2e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.StrainedRigidRotationPreservesEnergyAndCovariantForceTangent Hex8Element.StrainedRigidRotationPreservesEnergyAndCovariantForceTangent; assertion 6개 tests/unit/elements/hex8_element_test.cpp Hex8Element.StrainedRigidRotationPreservesEnergyAndCovariantForceTangent 유지 원문 검사 body 및 assertion 동일. cdc4257cf115d6d2c10dbdfb298f45077d8821f024dcec44056b2a7a71c3589f cdc4257cf115d6d2c10dbdfb298f45077d8821f024dcec44056b2a7a71c3589f ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | EXPECT_NEAR(rotated.Value().strain_energy, baseline.Value().strain_energy, 3e-12) | EXPECT_NEAR(rotated.Value().internal_force[3 * a + i], expected[i], 3e-12) | EXPECT_NEAR(rotated.Value().tangent(3 * a + i, 3 * b + j), expected_k, 7e-12) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | EXPECT_NEAR(rotated.Value().strain_energy, baseline.Value().strain_energy, 3e-12) | EXPECT_NEAR(rotated.Value().internal_force[3 * a + i], expected[i], 3e-12) | EXPECT_NEAR(rotated.Value().tangent(3 * a + i, 3 * b + j), expected_k, 7e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.EnergyForceAndForceTangentDirectionalStepSweep Hex8Element.EnergyForceAndForceTangentDirectionalStepSweep; assertion 11개 tests/unit/elements/hex8_element_test.cpp Hex8Element.EnergyForceAndForceTangentDirectionalStepSweep 유지 원문 검사 body 및 assertion 동일. c1ac1963af7f68ce46427d45877d677e804ed410b87c23a0a35910fb1386ff55 c1ac1963af7f68ce46427d45877d677e804ed410b87c23a0a35910fb1386ff55 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | ASSERT_TRUE(rp.HasValue()) | ASSERT_TRUE(rm.HasValue()) | EXPECT_LT(energy_error[1], .02 * energy_error[0]) | EXPECT_LT(force_error[1], .02 * force_error[0]) | EXPECT_LT(*std::min_element(energy_error.begin(), energy_error.end()), 1e-7) | EXPECT_LT(*std::min_element(force_error.begin(), force_error.end()), 1e-7) | EXPECT_GT(energy_error.back(), *std::min_element(energy_error.begin(), energy_error.end())) | EXPECT_NEAR(trial.Value().tangent(i, j), trial.Value().tangent(j, i), MaxEntry(trial.Value().tangent) * 2e-14) | EXPECT_DOUBLE_EQ(trial.Value().tangent(i, j), trial.Value().material_tangent(i, j) + trial.Value().geometric_tangent(i, j)) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | ASSERT_TRUE(rp.HasValue()) | ASSERT_TRUE(rm.HasValue()) | EXPECT_LT(energy_error[1], .02 * energy_error[0]) | EXPECT_LT(force_error[1], .02 * force_error[0]) | EXPECT_LT(*std::min_element(energy_error.begin(), energy_error.end()), 1e-7) | EXPECT_LT(*std::min_element(force_error.begin(), force_error.end()), 1e-7) | EXPECT_GT(energy_error.back(), *std::min_element(energy_error.begin(), energy_error.end())) | EXPECT_NEAR(trial.Value().tangent(i, j), trial.Value().tangent(j, i), MaxEntry(trial.Value().tangent) * 2e-14) | EXPECT_DOUBLE_EQ(trial.Value().tangent(i, j), trial.Value().material_tangent(i, j) + trial.Value().geometric_tangent(i, j)) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.TranslatedWarpedLinearResponseRetainsEnergyAndTangentVariation Hex8Element.TranslatedWarpedLinearResponseRetainsEnergyAndTangentVariation; assertion 8개 tests/unit/elements/hex8_element_test.cpp Hex8Element.TranslatedWarpedLinearResponseRetainsEnergyAndTangentVariation 유지 원문 검사 body 및 assertion 동일. 3aee6e7ad64dc19c22977520ef31f2117eb4c6fd4f7fdf4c71fdbc351525e89c 3aee6e7ad64dc19c22977520ef31f2117eb4c6fd4f7fdf4c71fdbc351525e89c ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | ASSERT_NE(derivative, 0.0) | ASSERT_GT(tangent_direction.Norm(), 0.0) | ASSERT_TRUE(rp.HasValue()) | ASSERT_TRUE(rm.HasValue()) | EXPECT_LT(*std::min_element(energy_error.begin(), energy_error.end()), 1e-7) | EXPECT_LT(*std::min_element(force_error.begin(), force_error.end()), 1e-7) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | ASSERT_NE(derivative, 0.0) | ASSERT_GT(tangent_direction.Norm(), 0.0) | ASSERT_TRUE(rp.HasValue()) | ASSERT_TRUE(rm.HasValue()) | EXPECT_LT(*std::min_element(energy_error.begin(), energy_error.end()), 1e-7) | EXPECT_LT(*std::min_element(force_error.begin(), force_error.end()), 1e-7) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.InvalidInputsAndFailedTrialPreservePriorResponseAndReference Hex8Element.InvalidInputsAndFailedTrialPreservePriorResponseAndReference; assertion 23개 tests/unit/elements/hex8_element_test.cpp Hex8Element.InvalidInputsAndFailedTrialPreservePriorResponseAndReference 유지 원문 검사 body 및 assertion 동일. eafc89af7adfd7c0e8325f391adaccb0253f22989cd839d88e804ef1747ba172 eafc89af7adfd7c0e8325f391adaccb0253f22989cd839d88e804ef1747ba172 "EXPECT_FALSE(Make(Brick(), 0.0).HasValue()) | EXPECT_FALSE( Make(Brick(), std::numeric_limits::infinity()).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, std::numeric_limits::quiet_NaN()) .HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, .25, 0.0).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, .25, -1.0).HasValue()) | EXPECT_FALSE( Make(Brick(), 120.0, .25, std::numeric_limits::infinity()) .HasValue()) | EXPECT_FALSE(Make(nonfinite).HasValue()) | ASSERT_TRUE(no_density.HasValue()) | EXPECT_FALSE(no_density.Value().ComputeMass().HasValue()) | ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(accepted.HasValue()) | EXPECT_FALSE(element.Value().EvaluateNonlinear(failed).HasValue()) | EXPECT_FALSE(element.Value().EvaluateLinear(fesa::Vector{23U}).HasValue()) | EXPECT_FALSE(Make(inverted).HasValue()) | ASSERT_TRUE(again.HasValue()) | EXPECT_DOUBLE_EQ(accepted.Value().strain_energy, again.Value().strain_energy) | EXPECT_DOUBLE_EQ(accepted.Value().internal_force[i], again.Value().internal_force[i]) | EXPECT_DOUBLE_EQ(accepted.Value().tangent(i, j), again.Value().tangent(i, j)) | ASSERT_FALSE(failure.HasValue()) | EXPECT_EQ(failure.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_EQ(diagnostic.location.line, 4U) | EXPECT_EQ(diagnostic.keyword, ""C3D8"") | EXPECT_EQ(diagnostic.entity_identity, ""PART-1:42"")" "EXPECT_FALSE(Make(Brick(), 0.0).HasValue()) | EXPECT_FALSE( Make(Brick(), std::numeric_limits::infinity()).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, std::numeric_limits::quiet_NaN()) .HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, .25, 0.0).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, .25, -1.0).HasValue()) | EXPECT_FALSE( Make(Brick(), 120.0, .25, std::numeric_limits::infinity()) .HasValue()) | EXPECT_FALSE(Make(nonfinite).HasValue()) | ASSERT_TRUE(no_density.HasValue()) | EXPECT_FALSE(no_density.Value().ComputeMass().HasValue()) | ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(accepted.HasValue()) | EXPECT_FALSE(element.Value().EvaluateNonlinear(failed).HasValue()) | EXPECT_FALSE(element.Value().EvaluateLinear(fesa::Vector{23U}).HasValue()) | EXPECT_FALSE(Make(inverted).HasValue()) | ASSERT_TRUE(again.HasValue()) | EXPECT_DOUBLE_EQ(accepted.Value().strain_energy, again.Value().strain_energy) | EXPECT_DOUBLE_EQ(accepted.Value().internal_force[i], again.Value().internal_force[i]) | EXPECT_DOUBLE_EQ(accepted.Value().tangent(i, j), again.Value().tangent(i, j)) | ASSERT_FALSE(failure.HasValue()) | EXPECT_EQ(failure.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_EQ(diagnostic.location.line, 4U) | EXPECT_EQ(diagnostic.keyword, ""C3D8"") | EXPECT_EQ(diagnostic.entity_identity, ""PART-1:42"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.InvalidLayoutsAreRejectedBeforeNumericalWork Hex8Element.InvalidLayoutsAreRejectedBeforeNumericalWork; assertion 4개 tests/unit/elements/hex8_element_test.cpp Hex8Element.InvalidLayoutsAreRejectedBeforeNumericalWork 유지 원문 검사 body 및 assertion 동일. a7ca0be993c579446617dabcfc9a712b6f62501b3ac95ccceb134dd90997bee1 a7ca0be993c579446617dabcfc9a712b6f62501b3ac95ccceb134dd90997bee1 EXPECT_FALSE( fesa::Hex8Element::Create(7U, duplicate, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, missing, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, wrong_order, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, rotation, Brick(), material).HasValue()) EXPECT_FALSE( fesa::Hex8Element::Create(7U, duplicate, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, missing, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, wrong_order, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, rotation, Brick(), material).HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.LinearStiffnessHasOnlyTheSixRigidNullDirections Hex8Element.LinearStiffnessHasOnlyTheSixRigidNullDirections; assertion 2개 tests/unit/elements/hex8_element_test.cpp Hex8Element.LinearStiffnessHasOnlyTheSixRigidNullDirections 유지 원문 검사 body 및 assertion 동일. 87f05ea3e4d1a7ddcb6193da61ab7d81812977f0bb3598ad5b32781d868650f2 87f05ea3e4d1a7ddcb6193da61ab7d81812977f0bb3598ad5b32781d868650f2 ASSERT_TRUE(element.HasValue()) | ASSERT_GT(value, 0.0) ASSERT_TRUE(element.HasValue()) | ASSERT_GT(value, 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.NonlinearSmallLoadApproachesLinearResponse Hex8Element.NonlinearSmallLoadApproachesLinearResponse; assertion 6개 tests/unit/elements/hex8_element_test.cpp Hex8Element.NonlinearSmallLoadApproachesLinearResponse 유지 원문 검사 body 및 assertion 동일. 3c2e1d6f5f5b8adf802500e646e7efca6aed2be1a4f2b685d98bc30f7927f326 3c2e1d6f5f5b8adf802500e646e7efca6aed2be1a4f2b685d98bc30f7927f326 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(linear.HasValue()) | EXPECT_NEAR(linear.Value().strain_energy, .5 * u.Dot(k.Multiply(u)), 1e-14) | EXPECT_LT(error[1], .12 * error[0]) | EXPECT_LT(error[2], .12 * error[1]) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(linear.HasValue()) | EXPECT_NEAR(linear.Value().strain_energy, .5 * u.Dot(k.Multiply(u)), 1e-14) | EXPECT_LT(error[1], .12 * error[0]) | EXPECT_LT(error[2], .12 * error[1]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsUnrepresentableShearAndMassInsteadOfReturningZeros Hex8Element.RejectsUnrepresentableShearAndMassInsteadOfReturningZeros; assertion 3개 tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsUnrepresentableShearAndMassInsteadOfReturningZeros 유지 원문 검사 body 및 assertion 동일. 030f54c1c851716efb795775685d456b6b30de54201b82b51707735e2ce8993e 030f54c1c851716efb795775685d456b6b30de54201b82b51707735e2ce8993e EXPECT_FALSE(Make(Brick(), tiny, .25).HasValue()) | ASSERT_TRUE(element.HasValue()) | EXPECT_FALSE(element.Value().ComputeMass().HasValue()) EXPECT_FALSE(Make(Brick(), tiny, .25).HasValue()) | ASSERT_TRUE(element.HasValue()) | EXPECT_FALSE(element.Value().ComputeMass().HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.DirectBulkSurvivesNearNegativePoissonBound Hex8Element.DirectBulkSurvivesNearNegativePoissonBound; assertion 3개 tests/unit/elements/hex8_element_test.cpp Hex8Element.DirectBulkSurvivesNearNegativePoissonBound 유지 원문 검사 body 및 assertion 동일. b409b61a9964e0974b9805bd990ef6c7ff26668ed043b3966161af7cd68927ce b409b61a9964e0974b9805bd990ef6c7ff26668ed043b3966161af7cd68927ce ASSERT_TRUE(element.HasValue()) | EXPECT_GT(1.0 / (3.0 * (1.0 - 2.0 * nu)), 0.0) | EXPECT_TRUE(element.Value().EvaluateLinear(zero).HasValue()) ASSERT_TRUE(element.HasValue()) | EXPECT_GT(1.0 / (3.0 * (1.0 - 2.0 * nu)), 0.0) | EXPECT_TRUE(element.Value().EvaluateLinear(zero).HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.OrdinaryNegativePoissonRatioRetainsPositiveVolumetricEnergy Hex8Element.OrdinaryNegativePoissonRatioRetainsPositiveVolumetricEnergy; assertion 4개 tests/unit/elements/hex8_element_test.cpp Hex8Element.OrdinaryNegativePoissonRatioRetainsPositiveVolumetricEnergy 유지 원문 검사 body 및 assertion 동일. b73dc4b5fd199b08ca51058ccbaf627b1e6a18d8977180164595181c99323fb7 b73dc4b5fd199b08ca51058ccbaf627b1e6a18d8977180164595181c99323fb7 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, 48.0 * .5 * bulk * trace * trace, 2e-14) | EXPECT_NEAR(point.cauchy_stress[i], bulk * trace, 2e-14) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, 48.0 * .5 * bulk * trace * trace, 2e-14) | EXPECT_NEAR(point.cauchy_stress[i], bulk * trace, 2e-14) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.FiniteInputsThatOverflowDerivedArithmeticFailClosed Hex8Element.FiniteInputsThatOverflowDerivedArithmeticFailClosed; assertion 10개 tests/unit/elements/hex8_element_test.cpp Hex8Element.FiniteInputsThatOverflowDerivedArithmeticFailClosed 유지 원문 검사 body 및 assertion 동일. 5e6ac7207369709d94127e8b67d20735dc11818d5ff0e03fe463d16a3c34300f 5e6ac7207369709d94127e8b67d20735dc11818d5ff0e03fe463d16a3c34300f "ASSERT_FALSE(bad_material.HasValue()) | EXPECT_NE(bad_material.GetStatus().Diagnostics()[0].message.find(""finite""), std::string::npos) | ASSERT_FALSE(bad_geometry.HasValue()) | EXPECT_NE(bad_geometry.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos) | ASSERT_TRUE(element.HasValue()) | ASSERT_FALSE(bad_mass.HasValue()) | EXPECT_NE(bad_mass.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos) | ASSERT_FALSE(bad_trial.HasValue()) | EXPECT_NE(bad_trial.GetStatus().Diagnostics()[0].message.find(""trial""), std::string::npos) | EXPECT_NE(bad_trial.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos)" "ASSERT_FALSE(bad_material.HasValue()) | EXPECT_NE(bad_material.GetStatus().Diagnostics()[0].message.find(""finite""), std::string::npos) | ASSERT_FALSE(bad_geometry.HasValue()) | EXPECT_NE(bad_geometry.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos) | ASSERT_TRUE(element.HasValue()) | ASSERT_FALSE(bad_mass.HasValue()) | EXPECT_NE(bad_mass.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos) | ASSERT_FALSE(bad_trial.HasValue()) | EXPECT_NE(bad_trial.GetStatus().Diagnostics()[0].message.find(""trial""), std::string::npos) | EXPECT_NE(bad_trial.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.BackendOperandRejectionRetainsOriginalStiffnessDiagnostic Hex8Element.BackendOperandRejectionRetainsOriginalStiffnessDiagnostic; assertion 3개 tests/unit/elements/hex8_element_test.cpp Hex8Element.BackendOperandRejectionRetainsOriginalStiffnessDiagnostic 유지 원문 검사 body 및 assertion 동일. 5e5f0b08b76057ba308b8598cfbb4bff467e83ec36a8f2d6a6a4b6ba392773c6 5e5f0b08b76057ba308b8598cfbb4bff467e83ec36a8f2d6a6a4b6ba392773c6 "ASSERT_FALSE(element.HasValue()) | EXPECT_EQ(element.GetStatus().Diagnostics()[0].code, ""invalid-hex8"") | EXPECT_EQ(element.GetStatus().Diagnostics()[0].message, ""Hex8 reference stiffness is nonfinite."")" "ASSERT_FALSE(element.HasValue()) | EXPECT_EQ(element.GetStatus().Diagnostics()[0].code, ""invalid-hex8"") | EXPECT_EQ(element.GetStatus().Diagnostics()[0].message, ""Hex8 reference stiffness is nonfinite."")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.TensorFailureRetainsPriorityOverEnergyAndTangentOverflow Hex8Element.TensorFailureRetainsPriorityOverEnergyAndTangentOverflow; assertion 4개 tests/unit/elements/hex8_element_test.cpp Hex8Element.TensorFailureRetainsPriorityOverEnergyAndTangentOverflow 유지 원문 검사 body 및 assertion 동일. 824f69867bc8e222afd9c8430f87581663312e6964833b42fb11af055bc84f84 824f69867bc8e222afd9c8430f87581663312e6964833b42fb11af055bc84f84 "ASSERT_TRUE(element.HasValue()) | ASSERT_FALSE(response.HasValue()) | EXPECT_EQ(response.GetStatus().Diagnostics()[0].code, ""invalid-hex8"") | EXPECT_EQ(response.GetStatus().Diagnostics()[0].message, ""Hex8 trial tensor is nonfinite."")" "ASSERT_TRUE(element.HasValue()) | ASSERT_FALSE(response.HasValue()) | EXPECT_EQ(response.GetStatus().Diagnostics()[0].code, ""invalid-hex8"") | EXPECT_EQ(response.GetStatus().Diagnostics()[0].message, ""Hex8 trial tensor is nonfinite."")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedRowSumMassMatchesIndependentNodalIntegralsAndNonuniformEnergy Hex8Element.WarpedRowSumMassMatchesIndependentNodalIntegralsAndNonuniformEnergy; assertion 6개 tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedRowSumMassMatchesIndependentNodalIntegralsAndNonuniformEnergy 유지 원문 검사 body 및 assertion 동일. bf8a73def3fe445aed1d34414e6487babf97967f7a2eee63f30dc54cc56e719b bf8a73def3fe445aed1d34414e6487babf97967f7a2eee63f30dc54cc56e719b ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(actual(3U * a + i, 3U * a + j), i == j ? expected[a] : 0.0, 3e-14) | EXPECT_GT(max_nodal - min_nodal, 1e-4) | EXPECT_NEAR(lumped_energy, independent_energy, 3e-14 * independent_energy) | EXPECT_GT(std::abs(lumped_energy - uniform_energy), 1e-4) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(actual(3U * a + i, 3U * a + j), i == j ? expected[a] : 0.0, 3e-14) | EXPECT_GT(max_nodal - min_nodal, 1e-4) | EXPECT_NEAR(lumped_energy, independent_energy, 3e-14 * independent_energy) | EXPECT_GT(std::abs(lumped_energy - uniform_energy), 1e-4) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedNonaffineQuadratureDifferenceIsQuantifiedAndRefines Hex8Element.WarpedNonaffineQuadratureDifferenceIsQuantifiedAndRefines; assertion 4개 tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedNonaffineQuadratureDifferenceIsQuantifiedAndRefines 유지 원문 검사 body 및 assertion 동일. 5d17d7efabd51400aebc4c48b3b6ce69588a7ceabc7181514c40a0fbc9b85a80 5d17d7efabd51400aebc4c48b3b6ce69588a7ceabc7181514c40a0fbc9b85a80 ASSERT_TRUE(element.HasValue()) | EXPECT_NEAR(.5 * u.Dot(k.Multiply(u)), q2[0], budget * q2[0]) | EXPECT_GT(stiffness_discrepancy, 1e-8) | EXPECT_LT(std::abs(q5[0] - q7[0]), .05 * std::abs(q3[0] - q7[0])) ASSERT_TRUE(element.HasValue()) | EXPECT_NEAR(.5 * u.Dot(k.Multiply(u)), q2[0], budget * q2[0]) | EXPECT_GT(stiffness_discrepancy, 1e-8) | EXPECT_LT(std::abs(q5[0] - q7[0]), .05 * std::abs(q3[0] - q7[0])) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeNonaffinePolynomialEnergyForceHessianAndActualStrain Hex8Element.MeanVolumeNonaffinePolynomialEnergyForceHessianAndActualStrain; assertion 14개 tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeNonaffinePolynomialEnergyForceHessianAndActualStrain 유지 원문 검사 body 및 assertion 동일. 57b07c678307c09776b4d21ca346b44d0c11e07901b38c8ded396f3d1b7a05e4 57b07c678307c09776b4d21ca346b44d0c11e07901b38c8ded396f3d1b7a05e4 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(r.strain_energy, energy, 2e-14) | EXPECT_NEAR(r.internal_force[6] + r.internal_force[18], force, 2e-13) | EXPECT_NEAR(r.tangent(6, 6) + r.tangent(6, 18) + r.tangent(18, 6) + r.tangent(18, 18), hessian, 2e-12) | EXPECT_NEAR(point.strain[0], exx, 2e-15) | EXPECT_NEAR(point.strain[1], eyy, 2e-15) | EXPECT_NEAR(point.strain[3], exy, 2e-15) | EXPECT_NEAR( point.cauchy_stress[0], nonlinear ? (t * t * sxx + 2 * t * c * px * sxy + c * c * px * px * syy) / t : sxx, 2e-13) | EXPECT_NEAR(point.cauchy_stress[1], nonlinear ? syy / t : syy, 2e-13) | EXPECT_NEAR(point.cauchy_stress[2], nonlinear ? szz / t : szz, 2e-13) | EXPECT_NEAR(point.cauchy_stress[3], nonlinear ? (t * sxy + c * px * syy) / t : sxy, 2e-13) | EXPECT_NEAR(k(0, 0), 41.0 / 18, 2e-14) | EXPECT_NEAR(k(0, 1), 19.0 / 30, 2e-14) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(r.strain_energy, energy, 2e-14) | EXPECT_NEAR(r.internal_force[6] + r.internal_force[18], force, 2e-13) | EXPECT_NEAR(r.tangent(6, 6) + r.tangent(6, 18) + r.tangent(18, 6) + r.tangent(18, 18), hessian, 2e-12) | EXPECT_NEAR(point.strain[0], exx, 2e-15) | EXPECT_NEAR(point.strain[1], eyy, 2e-15) | EXPECT_NEAR(point.strain[3], exy, 2e-15) | EXPECT_NEAR( point.cauchy_stress[0], nonlinear ? (t * t * sxx + 2 * t * c * px * sxy + c * c * px * px * syy) / t : sxx, 2e-13) | EXPECT_NEAR(point.cauchy_stress[1], nonlinear ? syy / t : syy, 2e-13) | EXPECT_NEAR(point.cauchy_stress[2], nonlinear ? szz / t : szz, 2e-13) | EXPECT_NEAR(point.cauchy_stress[3], nonlinear ? (t * sxy + c * px * syy) / t : sxy, 2e-13) | EXPECT_NEAR(k(0, 0), 41.0 / 18, 2e-14) | EXPECT_NEAR(k(0, 1), 19.0 / 30, 2e-14) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedStressUsesReferenceWeightedTrace Hex8Element.MeanVolumeWarpedStressUsesReferenceWeightedTrace; assertion 5개 tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedStressUsesReferenceWeightedTrace 유지 원문 검사 body 및 assertion 동일. 59532de38aa69f4c4457d06696198fcd7c2f3a8fa6ff9c031d5167d0997ff48f 59532de38aa69f4c4457d06696198fcd7c2f3a8fa6ff9c031d5167d0997ff48f ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_GT(std::abs(mean - arithmetic), 1e-8) | EXPECT_NEAR((s[0] + s[1] + s[2]) / 3, 80 * mean, 2e-13) | EXPECT_NEAR(response.Value().strain_energy, WarpedQuadratureEnergies(u, 2)[0], 2e-12) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_GT(std::abs(mean - arithmetic), 1e-8) | EXPECT_NEAR((s[0] + s[1] + s[2]) / 3, 80 * mean, 2e-13) | EXPECT_NEAR(response.Value().strain_energy, WarpedQuadratureEnergies(u, 2)[0], 2e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeDirectBulkSupportsBoundsWithoutLambdaOrThreeBulkGuard Hex8Element.MeanVolumeDirectBulkSupportsBoundsWithoutLambdaOrThreeBulkGuard; assertion 9개 tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeDirectBulkSupportsBoundsWithoutLambdaOrThreeBulkGuard 유지 원문 검사 body 및 assertion 동일. c28569a10dbd624762f2603dcbc1fde256d3cb97dba712040d799994fbf19f2f c28569a10dbd624762f2603dcbc1fde256d3cb97dba712040d799994fbf19f2f EXPECT_TRUE( Make(MeanVolumeUnitBrick(), 12, std::nextafter(-1.0, 0.0)).HasValue()) | EXPECT_TRUE( Make(MeanVolumeUnitBrick(), 1, std::nextafter(.5, 0.0)).HasValue()) | ASSERT_TRUE(huge.HasValue()) | ASSERT_TRUE(std::isfinite(direct_bulk)) | ASSERT_FALSE(std::isfinite(3 * direct_bulk)) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, expected, 1e-13 * expected) | EXPECT_FALSE(Make(MeanVolumeUnitBrick(), 1e308, .499).HasValue()) | EXPECT_FALSE(Make(MeanVolumeUnitBrick(), std::numeric_limits::denorm_min(), -.5) .HasValue()) EXPECT_TRUE( Make(MeanVolumeUnitBrick(), 12, std::nextafter(-1.0, 0.0)).HasValue()) | EXPECT_TRUE( Make(MeanVolumeUnitBrick(), 1, std::nextafter(.5, 0.0)).HasValue()) | ASSERT_TRUE(huge.HasValue()) | ASSERT_TRUE(std::isfinite(direct_bulk)) | ASSERT_FALSE(std::isfinite(3 * direct_bulk)) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, expected, 1e-13 * expected) | EXPECT_FALSE(Make(MeanVolumeUnitBrick(), 1e308, .499).HasValue()) | EXPECT_FALSE(Make(MeanVolumeUnitBrick(), std::numeric_limits::denorm_min(), -.5) .HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedIndependentEnergyHasCoupledNodeZeroDerivatives Hex8Element.MeanVolumeWarpedIndependentEnergyHasCoupledNodeZeroDerivatives; assertion 9개 tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedIndependentEnergyHasCoupledNodeZeroDerivatives 유지 원문 검사 body 및 assertion 동일. 3b485161230c69549e449fb7f27b5a942570fa036874622b9d715638e65df1e2 3b485161230c69549e449fb7f27b5a942570fa036874622b9d715638e65df1e2 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(paired.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, energy, 2e-12) | EXPECT_NEAR(paired.Value().high.strain_energy, energy, 2e-12) | EXPECT_NEAR(direction.Dot(response.Value().internal_force), df, 2e-10) | EXPECT_NEAR(direction.Dot(paired.Value().high.internal_force), df, 2e-10) | EXPECT_NEAR(direction.Dot(response.Value().tangent.Multiply(direction)), ddf, 2e-8) | EXPECT_NEAR(direction.Dot(paired.Value().high.tangent.Multiply(direction)), ddf, 2e-8) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(paired.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, energy, 2e-12) | EXPECT_NEAR(paired.Value().high.strain_energy, energy, 2e-12) | EXPECT_NEAR(direction.Dot(response.Value().internal_force), df, 2e-10) | EXPECT_NEAR(direction.Dot(paired.Value().high.internal_force), df, 2e-10) | EXPECT_NEAR(direction.Dot(response.Value().tangent.Multiply(direction)), ddf, 2e-8) | EXPECT_NEAR(direction.Dot(paired.Value().high.tangent.Multiply(direction)), ddf, 2e-8) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedLowOnlyStateRetainsWeightedCubicEnergy Hex8Element.MeanVolumeWarpedLowOnlyStateRetainsWeightedCubicEnergy; assertion 8개 tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedLowOnlyStateRetainsWeightedCubicEnergy 유지 원문 검사 body 및 assertion 동일. b232e31a9ebe5946b4d1192b8712f0debd77a8a716c425571f5e2c83529bf37b b232e31a9ebe5946b4d1192b8712f0debd77a8a716c425571f5e2c83529bf37b ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(high_only.HasValue()) | EXPECT_EQ(high_only.Value().high.strain_energy, 0) | EXPECT_NEAR(linear.Value().high.strain_energy, quadratic * c * c, 1e-12 * c * c) | EXPECT_NEAR(actual_cubic.high, cubic * c * c * c, 1e-11 * c * c * c) | EXPECT_NE(actual_cubic.high, 0) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(high_only.HasValue()) | EXPECT_EQ(high_only.Value().high.strain_energy, 0) | EXPECT_NEAR(linear.Value().high.strain_energy, quadratic * c * c, 1e-12 * c * c) | EXPECT_NEAR(actual_cubic.high, cubic * c * c * c, 1e-11 * c * c * c) | EXPECT_NE(actual_cubic.high, 0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/hex8_element_test.cpp support@1-50 helper/oracle/fixture/include/static assertion 구간: Brick, Make, GradientProduct tests/unit/elements/hex8_element_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 839b075a0d0eda927ed3a1940c15bef4980783019187ede4daa63b2dd3a9a398 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/hex8_element_test.cpp support@228-268 helper/oracle/fixture/include/static assertion 구간: Rotate, Affine, Warped, QuadraticMap, MaxEntry tests/unit/elements/hex8_element_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 50c481031d1e74a0a358dee1dddea4c0acb477e97c84969072b8a1a3b50d27b2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/hex8_element_test.cpp support@843-961 helper/oracle/fixture/include/static assertion 구간: LegendreRule, WarpedLumpedMass3x3, for, Cross, WarpedQuadratureEnergies tests/unit/elements/hex8_element_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f67b10e521588921549e46a4ae49bde140f46022a0aff343b4ce97263808d386 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/hex8_element_test.cpp support@1018-1024 helper/oracle/fixture/include/static assertion 구간: MeanVolumeUnitBrick tests/unit/elements/hex8_element_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b1b4b6e8408b50361c87580a49c4b608c96d1d0120b7bdaeea6162789efd43d7 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/hex8_element_test.cpp support@1213-1213 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/hex8_element_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/hex8_high_low_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 29개 tests/unit/elements/hex8_high_low_test.cpp file 이관 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. 893b48807ff3d9b7cb80069df3cca46787af5dfc366f244c726f4bcadf59b451 892dc78a07a9f7eba27df4cb71e9443359920da45fa7dc5795505d36edf0bc75 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.ScalarCrossProductShortcutMatchesOriginalBits Hex8HighLow.ScalarCrossProductShortcutMatchesOriginalBits; assertion 1개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.ScalarCrossProductShortcutMatchesOriginalBits 유지 원문 검사 body 및 assertion 동일. 55cf32bcacbee69f118d863fd4a1a530ea37fba13ff1262677bdeff80b31ea86 55cf32bcacbee69f118d863fd4a1a530ea37fba13ff1262677bdeff80b31ea86 ASSERT_TRUE(fesa::math_internal::ArithmeticEnvironmentSupported()) ASSERT_TRUE(fesa::math_internal::ArithmeticEnvironmentSupported()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.FourColumnMaterialPacketMatchesFrozenScalarBits Hex8HighLow.FourColumnMaterialPacketMatchesFrozenScalarBits; assertion 1개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.FourColumnMaterialPacketMatchesFrozenScalarBits 유지 원문 검사 body 및 assertion 동일. 5dc7a0232796a2ce3e86de363e352e790dec6ab6cdbf1ed5890d426ddeb6c530 5dc7a0232796a2ce3e86de363e352e790dec6ab6cdbf1ed5890d426ddeb6c530 ASSERT_TRUE(fesa::math_internal::ArithmeticEnvironmentSupported()) ASSERT_TRUE(fesa::math_internal::ArithmeticEnvironmentSupported()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketSpecialLaneDoesNotChangeOtherColumns Hex8HighLow.PacketSpecialLaneDoesNotChangeOtherColumns; assertion 2개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketSpecialLaneDoesNotChangeOtherColumns 유지 원문 검사 body 및 assertion 동일. 5c7e9b257c3d0da7e9c19cf13dff9c85ea0c6b4c0e9e76eb211e11abc27c6eb7 5c7e9b257c3d0da7e9c19cf13dff9c85ea0c6b4c0e9e76eb211e11abc27c6eb7 EXPECT_EQ(PairBits(actual.values[other].high), PairBits(reference.values[other].high)) | EXPECT_EQ(PairBits(actual.values[other].low), PairBits(reference.values[other].low)) EXPECT_EQ(PairBits(actual.values[other].high), PairBits(reference.values[other].high)) | EXPECT_EQ(PairBits(actual.values[other].low), PairBits(reference.values[other].low)) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.UniformDyadicPacketsExerciseEachLowZeroShape Hex8HighLow.UniformDyadicPacketsExerciseEachLowZeroShape; assertion 0개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.UniformDyadicPacketsExerciseEachLowZeroShape 유지 원문 검사 body 및 assertion 동일. d1e86044f93bb17fa63cc65d06c3e8e313d0165fa8199610f68334bc6bdd7ef1 d1e86044f93bb17fa63cc65d06c3e8e313d0165fa8199610f68334bc6bdd7ef1 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.OverflowLaneIsNeutralizedBeforeResidualFma Hex8HighLow.OverflowLaneIsNeutralizedBeforeResidualFma; assertion 6개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.OverflowLaneIsNeutralizedBeforeResidualFma 유지 원문 검사 body 및 assertion 동일. fa110e83b61c2788801a3cca289b80850e2b3147cc1529d01cbe04b376070e8f fa110e83b61c2788801a3cca289b80850e2b3147cc1529d01cbe04b376070e8f ASSERT_EQ(std::fegetenv(&original), 0) | EXPECT_EQ(std::feclearexcept(FE_ALL_EXCEPT), 0) | EXPECT_EQ(std::fesetenv(&original), 0) | EXPECT_FALSE(extra_invalid) | EXPECT_EQ(PairBits(output.values[lane].high), PairBits(expected.values[lane].high)) | EXPECT_EQ(PairBits(output.values[lane].low), PairBits(expected.values[lane].low)) ASSERT_EQ(std::fegetenv(&original), 0) | EXPECT_EQ(std::feclearexcept(FE_ALL_EXCEPT), 0) | EXPECT_EQ(std::fesetenv(&original), 0) | EXPECT_FALSE(extra_invalid) | EXPECT_EQ(PairBits(output.values[lane].high), PairBits(expected.values[lane].high)) | EXPECT_EQ(PairBits(output.values[lane].low), PairBits(expected.values[lane].low)) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketVectorGuardsPreserveScalarFlagsAndBits Hex8HighLow.PacketVectorGuardsPreserveScalarFlagsAndBits; assertion 0개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketVectorGuardsPreserveScalarFlagsAndBits 유지 원문 검사 body 및 assertion 동일. a2f4b4a4f4474064091b72b522e841f1d8e00a08b554c31cc15e88ad8d18ec7e a2f4b4a4f4474064091b72b522e841f1d8e00a08b554c31cc15e88ad8d18ec7e 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketTailScreenRetainsExactBoundaryAndFallback Hex8HighLow.PacketTailScreenRetainsExactBoundaryAndFallback; assertion 0개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketTailScreenRetainsExactBoundaryAndFallback 유지 원문 검사 body 및 assertion 동일. 6b884ed1f7b42f80cc7a3fc926f8d6030dd24e04cda644a742b893dd79919a73 6b884ed1f7b42f80cc7a3fc926f8d6030dd24e04cda644a742b893dd79919a73 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryPacketPreservesAsymmetricLanesAndUniformShapes Hex8HighLow.GeometryPacketPreservesAsymmetricLanesAndUniformShapes; assertion 0개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryPacketPreservesAsymmetricLanesAndUniformShapes 유지 원문 검사 body 및 assertion 동일. 2395f87793a733d9bb9c1e91d28698111bd41292bd0bb0512f29b617eaccbda5 2395f87793a733d9bb9c1e91d28698111bd41292bd0bb0512f29b617eaccbda5 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryPacketRetainsSpecialLanesAndExactTailBoundary Hex8HighLow.GeometryPacketRetainsSpecialLanesAndExactTailBoundary; assertion 0개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryPacketRetainsSpecialLanesAndExactTailBoundary 유지 원문 검사 body 및 assertion 동일. bbf49f52b871cb317e6e40a9abe3d9a5ffffef8c38ac97b8f9dd5c24343085bc bbf49f52b871cb317e6e40a9abe3d9a5ffffef8c38ac97b8f9dd5c24343085bc 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryPacketPreservesOrderedOverflowAndPreparedInvalid Hex8HighLow.GeometryPacketPreservesOrderedOverflowAndPreparedInvalid; assertion 0개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryPacketPreservesOrderedOverflowAndPreparedInvalid 유지 원문 검사 body 및 assertion 동일. 7f945200a866e442db527cd8753d4f5b12474c018d4d3a00898dd640557a2414 7f945200a866e442db527cd8753d4f5b12474c018d4d3a00898dd640557a2414 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryPacketSumFallbackPreservesNearMaxAndSubnormalStatus Hex8HighLow.GeometryPacketSumFallbackPreservesNearMaxAndSubnormalStatus; assertion 0개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryPacketSumFallbackPreservesNearMaxAndSubnormalStatus 유지 원문 검사 body 및 assertion 동일. 0f9f52e106a3cd6720a68eda098651b0d42c3cbeeec05ed9c99364fc598aac5f 0f9f52e106a3cd6720a68eda098651b0d42c3cbeeec05ed9c99364fc598aac5f 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketBackendSelectionRecoversAfterEnvironmentRestoration Hex8HighLow.PacketBackendSelectionRecoversAfterEnvironmentRestoration; assertion 6개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketBackendSelectionRecoversAfterEnvironmentRestoration 유지 원문 검사 body 및 assertion 동일. ca5ac348923812cc8155de59df806b241a163cf53120abc8b9123be07804485a ca5ac348923812cc8155de59df806b241a163cf53120abc8b9123be07804485a ASSERT_EQ(std::fesetround(FE_UPWARD), 0) | EXPECT_EQ(fesa::hex8_internal::SelectMaterialPacketEvaluator(), fesa::hex8_internal::EvaluateMaterialPacketScalar) | EXPECT_EQ(std::fesetround(rounding), 0) | EXPECT_EQ(fesa::hex8_internal::SelectMaterialPacketEvaluator(), fesa::hex8_internal::EvaluateMaterialPacketScalar) | EXPECT_EQ(unmasked, fesa::hex8_internal::EvaluateMaterialPacketScalar) | EXPECT_EQ(fesa::hex8_internal::SelectMaterialPacketEvaluator(), initial) ASSERT_EQ(std::fesetround(FE_UPWARD), 0) | EXPECT_EQ(fesa::hex8_internal::SelectMaterialPacketEvaluator(), fesa::hex8_internal::EvaluateMaterialPacketScalar) | EXPECT_EQ(std::fesetround(rounding), 0) | EXPECT_EQ(fesa::hex8_internal::SelectMaterialPacketEvaluator(), fesa::hex8_internal::EvaluateMaterialPacketScalar) | EXPECT_EQ(unmasked, fesa::hex8_internal::EvaluateMaterialPacketScalar) | EXPECT_EQ(fesa::hex8_internal::SelectMaterialPacketEvaluator(), initial) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketScalarBridgesPreserveOriginalRawBits Hex8HighLow.PacketScalarBridgesPreserveOriginalRawBits; assertion 2개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketScalarBridgesPreserveOriginalRawBits 이관 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. 1ceef74682e95486cba3564337e7c84d2aac4904a79013990da0f4ee61e20c07 1b19b2a6133828f658e5ba8b711792eed69c5274e80798ed055151b6261dcfac EXPECT_EQ(PairBits(result.values[lane].high), PairBits(expected.high)) | EXPECT_EQ(PairBits(result.values[lane].low), PairBits(expected.low)) EXPECT_EQ(PairBits(result.values[lane].high), PairBits(expected.high)) | EXPECT_EQ(PairBits(result.values[lane].low), PairBits(expected.low)) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketCapabilityRejectsMissingIntegerIsaAndOsState Hex8HighLow.PacketCapabilityRejectsMissingIntegerIsaAndOsState; assertion 4개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketCapabilityRejectsMissingIntegerIsaAndOsState 유지 원문 검사 body 및 assertion 동일. 362080c019526bea600c5658aa6deb15e68d159828fff53ddaa9677dc40b6995 362080c019526bea600c5658aa6deb15e68d159828fff53ddaa9677dc40b6995 EXPECT_TRUE(fesa::hex8_internal::SupportsMaterialPacketInstructions( leaf1, 6, leaf7)) | EXPECT_FALSE(fesa::hex8_internal::SupportsMaterialPacketInstructions( leaf1, 6, leaf7 & ~missing)) | EXPECT_FALSE(fesa::hex8_internal::SupportsMaterialPacketInstructions( leaf1 & ~missing, 6, leaf7)) | EXPECT_FALSE(fesa::hex8_internal::SupportsMaterialPacketInstructions( leaf1, state, leaf7)) EXPECT_TRUE(fesa::hex8_internal::SupportsMaterialPacketInstructions( leaf1, 6, leaf7)) | EXPECT_FALSE(fesa::hex8_internal::SupportsMaterialPacketInstructions( leaf1, 6, leaf7 & ~missing)) | EXPECT_FALSE(fesa::hex8_internal::SupportsMaterialPacketInstructions( leaf1 & ~missing, 6, leaf7)) | EXPECT_FALSE(fesa::hex8_internal::SupportsMaterialPacketInstructions( leaf1, state, leaf7)) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketDoesNotClearPriorMaskedStickyFlags Hex8HighLow.PacketDoesNotClearPriorMaskedStickyFlags; assertion 4개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.PacketDoesNotClearPriorMaskedStickyFlags 유지 원문 검사 body 및 assertion 동일. d5aaf2d448b2510d15df5fba26ce1d668f2acd6e376fae86de30152fad3c84fb d5aaf2d448b2510d15df5fba26ce1d668f2acd6e376fae86de30152fad3c84fb ASSERT_EQ(std::fegetenv(&original), 0) | ASSERT_EQ(std::feraiseexcept(FE_INEXACT), 0) | EXPECT_EQ(std::fesetenv(&original), 0) | EXPECT_TRUE(preserved) ASSERT_EQ(std::fegetenv(&original), 0) | ASSERT_EQ(std::feraiseexcept(FE_INEXACT), 0) | EXPECT_EQ(std::fesetenv(&original), 0) | EXPECT_TRUE(preserved) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.ConcurrentFirstLinearTrialsAcrossCopiesAndMoveKeepBits Hex8HighLow.ConcurrentFirstLinearTrialsAcrossCopiesAndMoveKeepBits; assertion 3개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.ConcurrentFirstLinearTrialsAcrossCopiesAndMoveKeepBits 유지 원문 검사 body 및 assertion 동일. eb9b491edb65e3a3636501ffd6387f89c1b901fafd5161134cdb173f1ee7ce75 eb9b491edb65e3a3636501ffd6387f89c1b901fafd5161134cdb173f1ee7ce75 ASSERT_TRUE(expected_a.HasValue()) | ASSERT_TRUE(expected_b.HasValue()) | ASSERT_TRUE(response.HasValue()) ASSERT_TRUE(expected_a.HasValue()) | ASSERT_TRUE(expected_b.HasValue()) | ASSERT_TRUE(response.HasValue()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.FirstLinearPreparationRecoversAfterTrialAndEnvironmentFailure Hex8HighLow.FirstLinearPreparationRecoversAfterTrialAndEnvironmentFailure; assertion 11개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.FirstLinearPreparationRecoversAfterTrialAndEnvironmentFailure 유지 원문 검사 body 및 assertion 동일. c102c1858835db4be00cdeaa1bcba9ef309197723b06d916da051736e9dc5b34 c102c1858835db4be00cdeaa1bcba9ef309197723b06d916da051736e9dc5b34 "ASSERT_TRUE(fesa::math_internal::ArithmeticEnvironmentSupported()) | EXPECT_FALSE(element.EvaluateLinearHighLow(fesa::Vector(23), low).HasValue()) | EXPECT_FALSE(element.EvaluateLinearHighLow(high, low).HasValue()) | ASSERT_EQ(std::fesetround(FE_DOWNWARD), 0) | ASSERT_FALSE(bad_environment.HasValue()) | EXPECT_EQ(bad_environment.GetStatus().Diagnostics()[0].message, ""Hex8 high+low requires nearest rounding and gradual underflow."") | ASSERT_EQ(std::fesetround(FE_TONEAREST), 0) | EXPECT_FALSE(element.EvaluateLinearHighLow(high, low).HasValue()) | ASSERT_TRUE(recovered.HasValue()) | EXPECT_FALSE(element.EvaluateLinearHighLow(high, low).HasValue()) | ASSERT_TRUE(after_failure.HasValue())" "ASSERT_TRUE(fesa::math_internal::ArithmeticEnvironmentSupported()) | EXPECT_FALSE(element.EvaluateLinearHighLow(fesa::Vector(23), low).HasValue()) | EXPECT_FALSE(element.EvaluateLinearHighLow(high, low).HasValue()) | ASSERT_EQ(std::fesetround(FE_DOWNWARD), 0) | ASSERT_FALSE(bad_environment.HasValue()) | EXPECT_EQ(bad_environment.GetStatus().Diagnostics()[0].message, ""Hex8 high+low requires nearest rounding and gradual underflow."") | ASSERT_EQ(std::fesetround(FE_TONEAREST), 0) | EXPECT_FALSE(element.EvaluateLinearHighLow(high, low).HasValue()) | ASSERT_TRUE(recovered.HasValue()) | EXPECT_FALSE(element.EvaluateLinearHighLow(high, low).HasValue()) | ASSERT_TRUE(after_failure.HasValue())" 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.LowOnlyAffineStrainSurvivesUniformHighTranslation Hex8HighLow.LowOnlyAffineStrainSurvivesUniformHighTranslation; assertion 4개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.LowOnlyAffineStrainSurvivesUniformHighTranslation 유지 원문 검사 body 및 assertion 동일. 4462f0b7416fafcfad45c7261d11b2ac9efd9b84ecc8174f859764ab23039b7c 4462f0b7416fafcfad45c7261d11b2ac9efd9b84ecc8174f859764ab23039b7c ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().high.internal_force[3 * a], (positive ? 3 : -3) * strain, 1e-13 * strain) | EXPECT_NEAR(response.Value().high.strain_energy, 6 * strain * strain, 1e-13 * strain * strain) | EXPECT_NEAR(row.strain[0], strain, 1e-13 * strain) ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().high.internal_force[3 * a], (positive ? 3 : -3) * strain, 1e-13 * strain) | EXPECT_NEAR(response.Value().high.strain_energy, 6 * strain * strain, 1e-13 * strain * strain) | EXPECT_NEAR(row.strain[0], strain, 1e-13 * strain) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.NonlinearLowGradientProducesSecondOrderForce Hex8HighLow.NonlinearLowGradientProducesSecondOrderForce; assertion 3개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.NonlinearLowGradientProducesSecondOrderForce 유지 원문 검사 body 및 assertion 동일. 979f0ef23c5f1008caa390d90e6009aa9a5d31c011169ea1b43a67f5f15da557 979f0ef23c5f1008caa390d90e6009aa9a5d31c011169ea1b43a67f5f15da557 ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(increment.high, 4.5 * strain * strain, 1e-12 * strain * strain) ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(increment.high, 4.5 * strain * strain, 1e-12 * strain * strain) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.VolumetricAndTransverseTermsRetainLowStrain Hex8HighLow.VolumetricAndTransverseTermsRetainLowStrain; assertion 6개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.VolumetricAndTransverseTermsRetainLowStrain 유지 원문 검사 body 및 assertion 동일. 846ec5c0b418ef7ec32bb21ce63c53f4d186afbf40d8c37be769ff45ab8f108e 846ec5c0b418ef7ec32bb21ce63c53f4d186afbf40d8c37be769ff45ab8f108e ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(linear.Value().high.internal_force[3], 3.6*strain, 1e-13*strain) | EXPECT_NEAR(linear.Value().high.internal_force[7], 1.2*strain, 1e-13*strain) | EXPECT_NEAR(linear.Value().high.strain_energy, 7.2*strain*strain, 1e-13*strain*strain) | EXPECT_NEAR(quadratic.high, 5.4*strain*strain, 1e-12*strain*strain) ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(linear.Value().high.internal_force[3], 3.6*strain, 1e-13*strain) | EXPECT_NEAR(linear.Value().high.internal_force[7], 1.2*strain, 1e-13*strain) | EXPECT_NEAR(linear.Value().high.strain_energy, 7.2*strain*strain, 1e-13*strain*strain) | EXPECT_NEAR(quadratic.high, 5.4*strain*strain, 1e-12*strain*strain) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.RejectsInvalidLowShapeAndOverlappingComponents Hex8HighLow.RejectsInvalidLowShapeAndOverlappingComponents; assertion 2개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.RejectsInvalidLowShapeAndOverlappingComponents 유지 원문 검사 body 및 assertion 동일. 7abccdcb75d007db4ef2421719b99cb7e5330d25e5d05d2da511b098a2428848 7abccdcb75d007db4ef2421719b99cb7e5330d25e5d05d2da511b098a2428848 EXPECT_FALSE(brick.EvaluateLinearHighLow(high, fesa::Vector(23)).HasValue()) | EXPECT_FALSE(brick.EvaluateNonlinearHighLow(high, low).HasValue()) EXPECT_FALSE(brick.EvaluateLinearHighLow(high, fesa::Vector(23)).HasValue()) | EXPECT_FALSE(brick.EvaluateNonlinearHighLow(high, low).HasValue()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.LinearAndNonlinearZeroStateHaveSameFullHessian Hex8HighLow.LinearAndNonlinearZeroStateHaveSameFullHessian; assertion 4개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.LinearAndNonlinearZeroStateHaveSameFullHessian 유지 원문 검사 body 및 assertion 동일. e2079fe27aab893fafc1428c6fd97d975eddd067ca1131589425cc569ece3958 e2079fe27aab893fafc1428c6fd97d975eddd067ca1131589425cc569ece3958 ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_EQ(linear.Value().high.tangent(i, j), nonlinear.Value().high.tangent(i, j)) | EXPECT_EQ(linear.Value().tangent_low(i, j), nonlinear.Value().tangent_low(i, j)) ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_EQ(linear.Value().high.tangent(i, j), nonlinear.Value().high.tangent(i, j)) | EXPECT_EQ(linear.Value().tangent_low(i, j), nonlinear.Value().tangent_low(i, j)) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.CachedLinearHessianIsIndependentOfTrialAndPriorFailure Hex8HighLow.CachedLinearHessianIsIndependentOfTrialAndPriorFailure; assertion 8개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.CachedLinearHessianIsIndependentOfTrialAndPriorFailure 유지 원문 검사 body 및 assertion 동일. 046984e4a0f5d6ab548fdef7ea0980b866ff34cbeb603b918c9b1adb76ae7935 046984e4a0f5d6ab548fdef7ea0980b866ff34cbeb603b918c9b1adb76ae7935 ASSERT_TRUE(reference.HasValue()) | EXPECT_FALSE(brick.EvaluateLinearHighLow(high, fesa::Vector(23)).HasValue()) | ASSERT_TRUE(strained.HasValue()) | EXPECT_EQ(reference.Value().high.tangent(i,j), strained.Value().high.tangent(i,j)) | EXPECT_EQ(reference.Value().tangent_low(i,j), strained.Value().tangent_low(i,j)) | ASSERT_TRUE(nonlinear_zero.HasValue()) | EXPECT_EQ(reference.Value().high.tangent(i,j), nonlinear_zero.Value().high.tangent(i,j)) | EXPECT_EQ(reference.Value().tangent_low(i,j), nonlinear_zero.Value().tangent_low(i,j)) ASSERT_TRUE(reference.HasValue()) | EXPECT_FALSE(brick.EvaluateLinearHighLow(high, fesa::Vector(23)).HasValue()) | ASSERT_TRUE(strained.HasValue()) | EXPECT_EQ(reference.Value().high.tangent(i,j), strained.Value().high.tangent(i,j)) | EXPECT_EQ(reference.Value().tangent_low(i,j), strained.Value().tangent_low(i,j)) | ASSERT_TRUE(nonlinear_zero.HasValue()) | EXPECT_EQ(reference.Value().high.tangent(i,j), nonlinear_zero.Value().high.tangent(i,j)) | EXPECT_EQ(reference.Value().tangent_low(i,j), nonlinear_zero.Value().tangent_low(i,j)) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.CoupledBricksTransmitLowStrainAcrossSharedFace Hex8HighLow.CoupledBricksTransmitLowStrainAcrossSharedFace; assertion 4개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.CoupledBricksTransmitLowStrainAcrossSharedFace 유지 원문 검사 body 및 assertion 동일. 83ae6a75481955497b50ac6ac1eff98c37df884ba2ed66da2557210deefa72a2 83ae6a75481955497b50ac6ac1eff98c37df884ba2ed66da2557210deefa72a2 ASSERT_TRUE(l.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(assembled.high, 0, 1e-13 * strain) | EXPECT_NEAR(l.Value().high.strain_energy + r.Value().high.strain_energy, 12 * strain * strain, 1e-13 * strain * strain) ASSERT_TRUE(l.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(assembled.high, 0, 1e-13 * strain) | EXPECT_NEAR(l.Value().high.strain_energy + r.Value().high.strain_energy, 12 * strain * strain, 1e-13 * strain * strain) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.NodeZeroSignedDirectionMatchesForceAndEnergyDerivatives Hex8HighLow.NodeZeroSignedDirectionMatchesForceAndEnergyDerivatives; assertion 5개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.NodeZeroSignedDirectionMatchesForceAndEnergyDerivatives 유지 원문 검사 body 및 assertion 동일. 8ca0e0b8462f489c123d6d5a32a0ae42c56b897b155459e2e7c55dfa8c030d0d 8ca0e0b8462f489c123d6d5a32a0ae42c56b897b155459e2e7c55dfa8c030d0d ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(positive.HasValue()) | ASSERT_TRUE(negative.HasValue()) | EXPECT_LE(std::abs(error.high), 1e-25) | EXPECT_LE(std::abs(energy_error.high), 32 * step * step + 1e-44) ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(positive.HasValue()) | ASSERT_TRUE(negative.HasValue()) | EXPECT_LE(std::abs(error.high), 1e-25) | EXPECT_LE(std::abs(energy_error.high), 32 * step * step + 1e-44) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryCertificateIncludesLowOnlyCurrentCellWidth Hex8HighLow.GeometryCertificateIncludesLowOnlyCurrentCellWidth; assertion 3개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryCertificateIncludesLowOnlyCurrentCellWidth 유지 원문 검사 body 및 assertion 동일. a99f71b85735e03d5245e265d4b95f2b624f4b5475c1f1ff15ea665e18c72c4d a99f71b85735e03d5245e265d4b95f2b624f4b5475c1f1ff15ea665e18c72c4d EXPECT_EQ(fesa::hex8_internal::Certify(coordinates, &high, &positive_low), Certificate::kPositive) | EXPECT_EQ(fesa::hex8_internal::Certify(coordinates, &high, &negative_low), Certificate::kNonpositive) | EXPECT_NE(fesa::hex8_internal::Certify(coordinates, &high), Certificate::kPositive) EXPECT_EQ(fesa::hex8_internal::Certify(coordinates, &high, &positive_low), Certificate::kPositive) | EXPECT_EQ(fesa::hex8_internal::Certify(coordinates, &high, &negative_low), Certificate::kNonpositive) | EXPECT_NE(fesa::hex8_internal::Certify(coordinates, &high), Certificate::kPositive) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.SignedZeroMaterialCoefficientHasIdenticalResponse Hex8HighLow.SignedZeroMaterialCoefficientHasIdenticalResponse; assertion 8개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.SignedZeroMaterialCoefficientHasIdenticalResponse 유지 원문 검사 body 및 assertion 동일. 3972742ed5e27b3dd1f33a5c2fb9a603b32972c71c7ecb8dd341b9c76d18d3d3 3972742ed5e27b3dd1f33a5c2fb9a603b32972c71c7ecb8dd341b9c76d18d3d3 ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(n.HasValue()) | EXPECT_EQ(p.Value().high.strain_energy, n.Value().high.strain_energy) | EXPECT_EQ(p.Value().strain_energy_low, n.Value().strain_energy_low) | EXPECT_EQ(p.Value().high.internal_force[i], n.Value().high.internal_force[i]) | EXPECT_EQ(p.Value().internal_force_low[i], n.Value().internal_force_low[i]) | EXPECT_EQ(p.Value().high.tangent(i,j), n.Value().high.tangent(i,j)) | EXPECT_EQ(p.Value().tangent_low(i,j), n.Value().tangent_low(i,j)) ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(n.HasValue()) | EXPECT_EQ(p.Value().high.strain_energy, n.Value().high.strain_energy) | EXPECT_EQ(p.Value().strain_energy_low, n.Value().strain_energy_low) | EXPECT_EQ(p.Value().high.internal_force[i], n.Value().high.internal_force[i]) | EXPECT_EQ(p.Value().internal_force_low[i], n.Value().internal_force_low[i]) | EXPECT_EQ(p.Value().high.tangent(i,j), n.Value().high.tangent(i,j)) | EXPECT_EQ(p.Value().tangent_low(i,j), n.Value().tangent_low(i,j)) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.FiniteRotationRetainsTinyShearForceCovariance Hex8HighLow.FiniteRotationRetainsTinyShearForceCovariance; assertion 7개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.FiniteRotationRetainsTinyShearForceCovariance 유지 원문 검사 body 및 assertion 동일. 397b230944498c7db14592dc4408d7fbdee0199b43be2c7b4d7e68dda9cb08e9 397b230944498c7db14592dc4408d7fbdee0199b43be2c7b4d7e68dda9cb08e9 ASSERT_TRUE(origin.HasValue()) | ASSERT_TRUE(deformed.HasValue()) | ASSERT_TRUE(turned.HasValue()) | ASSERT_TRUE(turned_deformed.HasValue()) | EXPECT_LE(std::abs(Add(rotated[0], baseline[1]).high), 1e-13*gamma) | EXPECT_LE(std::abs(Subtract(rotated[1], baseline[0]).high), 1e-13*gamma) | EXPECT_LE(std::abs(Subtract(rotated[2], baseline[2]).high), 1e-13*gamma) ASSERT_TRUE(origin.HasValue()) | ASSERT_TRUE(deformed.HasValue()) | ASSERT_TRUE(turned.HasValue()) | ASSERT_TRUE(turned_deformed.HasValue()) | EXPECT_LE(std::abs(Add(rotated[0], baseline[1]).high), 1e-13*gamma) | EXPECT_LE(std::abs(Subtract(rotated[1], baseline[0]).high), 1e-13*gamma) | EXPECT_LE(std::abs(Subtract(rotated[2], baseline[2]).high), 1e-13*gamma) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.MeanVolumeLowOnlyNonuniformTraceRetainsMeanAndCrossPointHessian Hex8HighLow.MeanVolumeLowOnlyNonuniformTraceRetainsMeanAndCrossPointHessian; assertion 11개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.MeanVolumeLowOnlyNonuniformTraceRetainsMeanAndCrossPointHessian 유지 원문 검사 body 및 assertion 동일. 45ace4ab87c97eeeb71c680d4cd90bdc4d0b2438c4335b7539a7207529d171fb 45ace4ab87c97eeeb71c680d4cd90bdc4d0b2438c4335b7539a7207529d171fb ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(high_only.HasValue()) | EXPECT_EQ(high_only.Value().high.strain_energy, 0) | EXPECT_NEAR(response.Value().high.strain_energy, coefficient * c * c, 1e-13 * c * c) | EXPECT_NEAR(response.Value().high.internal_force[6] + response.Value().high.internal_force[18], 2 * coefficient * c, 1e-13 * c) | EXPECT_NEAR((s[0] + s[1] + s[2]) / 3, 4 * c, 1e-13 * c) | EXPECT_NEAR(point.strain[0], c * point.reference_coordinates[1], 1e-13 * c) | EXPECT_NEAR(k(0, 0), 41.0 / 18, 2e-14) | EXPECT_NEAR(k(0, 1), 19.0 / 30, 2e-14) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(cubic_energy.high, (5 * 4.8 / 18 + 8.0 / 6) * c * c * c, 1e-12 * c * c * c) ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(high_only.HasValue()) | EXPECT_EQ(high_only.Value().high.strain_energy, 0) | EXPECT_NEAR(response.Value().high.strain_energy, coefficient * c * c, 1e-13 * c * c) | EXPECT_NEAR(response.Value().high.internal_force[6] + response.Value().high.internal_force[18], 2 * coefficient * c, 1e-13 * c) | EXPECT_NEAR((s[0] + s[1] + s[2]) / 3, 4 * c, 1e-13 * c) | EXPECT_NEAR(point.strain[0], c * point.reference_coordinates[1], 1e-13 * c) | EXPECT_NEAR(k(0, 0), 41.0 / 18, 2e-14) | EXPECT_NEAR(k(0, 1), 19.0 / 30, 2e-14) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(cubic_energy.high, (5 * 4.8 / 18 + 8.0 / 6) * c * c * c, 1e-12 * c * c * c) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp support@1-48 helper/oracle/fixture/include/static assertion 구간: PairBits, ExpectOriginalProduct tests/unit/elements/hex8_high_low_test.cpp file-support 이관 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. 7f7cee402cbc1858b86c84652f94d6c61d0eda418d18a14b11a48648d4a6d113 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp support@88-134 helper/oracle/fixture/include/static assertion 구간: RawPacketPair, FrozenMaterialPacket, ExpectFrozenMaterialPacket tests/unit/elements/hex8_high_low_test.cpp file-support 유지 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. 570a3f41b0e56e284d6df12b9caa91c67db80930b93a760d2dffd69b36206c50 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp support@311-374 helper/oracle/fixture/include/static assertion 구간: ExpectPacketFlagsAndBits, Observation, if, DyadicPacketFixture tests/unit/elements/hex8_high_low_test.cpp file-support 유지 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. 8cef855736ef4113f6c3b606128ed22c9a39c1faa08365b7d5eecb0b5784fbea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp support@450-581 helper/oracle/fixture/include/static assertion 구간: defined, GeometryDyadicFixture, ExpectGeometryPacketBitsAndFlags, Observation, if tests/unit/elements/hex8_high_low_test.cpp file-support 이관 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. 2645f04d5bdda6cb2c861a8d1ac8aa209aa28cfbeb3a7da99b82ce21225296e4 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp support@740-741 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/hex8_high_low_test.cpp file-support 유지 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. 8b63d4e2e6cce4baf5403993210754bed64f3d3fa8e57007f2c3eeff4491a972 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp support@837-884 helper/oracle/fixture/include/static assertion 구간: UnitBrick, ExpectSamePairResponse tests/unit/elements/hex8_high_low_test.cpp file-support 유지 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. ece3a979ef74489bbfd5deb8abf98a643af66e310ec44820453056f10d4b6549 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/hex8_high_low_test.cpp support@1267-1267 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/hex8_high_low_test.cpp file-support 유지 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1fd73892c2678a5b3ad8fd34edd0292394836a3494c540f4ecc005b6e6a269d9 1fd73892c2678a5b3ad8fd34edd0292394836a3494c540f4ecc005b6e6a269d9 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.PreservesWarpedMomentsRowsAndFirstSpatialMoment Mitc4ShellMassContract.PreservesWarpedMomentsRowsAndFirstSpatialMoment; assertion 4개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.PreservesWarpedMomentsRowsAndFirstSpatialMoment 유지 원문 검사 body 및 assertion 동일. 76f7825ab0d079445fad2d14b91e7d6e835a997d5299706cb5cdc7c05a968c14 76f7825ab0d079445fad2d14b91e7d6e835a997d5299706cb5cdc7c05a968c14 ASSERT_TRUE(mass.HasValue()) | EXPECT_LE(std::abs(value.consistent_moments[moment](row, column) - expected[moment][row][column]) / scale, 1e-12) | EXPECT_LE(std::abs(value.nodal_moments[row][moment] - expected_row) / scale, 1e-12) | EXPECT_LE(difference / (element_mass * std::hypot(2.0, 0.3)), 1e-12) ASSERT_TRUE(mass.HasValue()) | EXPECT_LE(std::abs(value.consistent_moments[moment](row, column) - expected[moment][row][column]) / scale, 1e-12) | EXPECT_LE(std::abs(value.nodal_moments[row][moment] - expected_row) / scale, 1e-12) | EXPECT_LE(difference / (element_mass * std::hypot(2.0, 0.3)), 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.RecomputesWarpedMassWithScaledCovariance Mitc4ShellMassContract.RecomputesWarpedMassWithScaledCovariance; assertion 4개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.RecomputesWarpedMassWithScaledCovariance 유지 원문 검사 body 및 assertion 동일. e3e985596112fdd2ba30d9c9f0721d183914e4c7e3e4bb4ae11cd9f32b820991 e3e985596112fdd2ba30d9c9f0721d183914e4c7e3e4bb4ae11cd9f32b820991 ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(transformed.HasValue()) | ASSERT_TRUE(original_mass.HasValue()) | ASSERT_TRUE(transformed_mass.HasValue()) ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(transformed.HasValue()) | ASSERT_TRUE(original_mass.HasValue()) | ASSERT_TRUE(transformed_mass.HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.SatisfiesUniformAndJensenEnergyContracts Mitc4ShellMassContract.SatisfiesUniformAndJensenEnergyContracts; assertion 3개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.SatisfiesUniformAndJensenEnergyContracts 유지 원문 검사 body 및 assertion 동일. 4ca13bda8eeda1a740d91e0eca5b06c177bff1348c4c2aae9fb7cd28c36fa25b 4ca13bda8eeda1a740d91e0eca5b06c177bff1348c4c2aae9fb7cd28c36fa25b ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(Quadratic(mass.Value().consistent_global24, translation), Quadratic(mass.Value().lumped_global24, translation), 1e-12) | EXPECT_GE(Quadratic(mass.Value().lumped_global24, field) + 1e-12, Quadratic(mass.Value().consistent_global24, field)) ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(Quadratic(mass.Value().consistent_global24, translation), Quadratic(mass.Value().lumped_global24, translation), 1e-12) | EXPECT_GE(Quadratic(mass.Value().lumped_global24, field) + 1e-12, Quadratic(mass.Value().consistent_global24, field)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.MapsScalarMomentsIntoBothMassBlocks Mitc4ShellMassContract.MapsScalarMomentsIntoBothMassBlocks; assertion 6개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.MapsScalarMomentsIntoBothMassBlocks 유지 원문 검사 body 및 assertion 동일. c3f3d3fcbbb356610124a670ed3e56e053f742c3150650dc3d0690b8a081e44f c3f3d3fcbbb356610124a670ed3e56e053f742c3150650dc3d0690b8a081e44f ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(mass.Value().consistent_global24(row, column), expected_consistent(row, column), 1e-12) | EXPECT_NEAR(mass.Value().lumped_global24(row, column), expected_lumped(row, column), 1e-12) | EXPECT_LE(FrobeniusNorm(consistent_difference, length) / (FrobeniusNorm(mass.Value().consistent_global24, length) + FrobeniusNorm(expected_consistent, length)), 1e-12) | EXPECT_LE(FrobeniusNorm(lumped_difference, length) / (FrobeniusNorm(mass.Value().lumped_global24, length) + FrobeniusNorm(expected_lumped, length)), 1e-12) | EXPECT_LE(std::abs((lumped_work - consistent_work) - pairwise_work) / (lumped_work + consistent_work), 1e-12) ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(mass.Value().consistent_global24(row, column), expected_consistent(row, column), 1e-12) | EXPECT_NEAR(mass.Value().lumped_global24(row, column), expected_lumped(row, column), 1e-12) | EXPECT_LE(FrobeniusNorm(consistent_difference, length) / (FrobeniusNorm(mass.Value().consistent_global24, length) + FrobeniusNorm(expected_consistent, length)), 1e-12) | EXPECT_LE(FrobeniusNorm(lumped_difference, length) / (FrobeniusNorm(mass.Value().lumped_global24, length) + FrobeniusNorm(expected_lumped, length)), 1e-12) | EXPECT_LE(std::abs((lumped_work - consistent_work) - pairwise_work) / (lumped_work + consistent_work), 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.ReproducesAffineSquareVelocityWork Mitc4ShellMassContract.ReproducesAffineSquareVelocityWork; assertion 4개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.ReproducesAffineSquareVelocityWork 유지 원문 검사 body 및 assertion 동일. 7f75a86e005eff60d026f8d15ee5cae2fa95e0ee4232fca201dcb8f8f81df18c 7f75a86e005eff60d026f8d15ee5cae2fa95e0ee4232fca201dcb8f8f81df18c ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(consistent_work, 4.0 / 3.0, 1e-12) | EXPECT_NEAR(lumped_work - consistent_work, 8.0 / (3.0 * mesh * mesh), 1e-12) ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(consistent_work, 4.0 / 3.0, 1e-12) | EXPECT_NEAR(lumped_work - consistent_work, 8.0 / (3.0 * mesh * mesh), 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@1-130 helper/oracle/fixture/include/static assertion 구간: FrobeniusNorm, MaximumEdgeLength, Rotate, DirectorCross, Dot, RotateCongruently, ExpectScaledCovariance, Node, Pointers, WarpedShell, Quadratic tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 80222550f9438f2e2e97eef70b77702be0f22f69e5dfd86f3f5f19eea8635684 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@207-208 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 47dd2fa44f91e342b907e45fa1b98a8b620d5590812aea5a8d5b7ceda6534e82 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@244-246 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 82c1f775b61eb1c42b39d952b6856edb28d0334faf8544d19199125c6142efa5 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@263-265 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 311a3ce7805d89cc36a6c5dc4f988aad66e9d65c53bd7fc5dae1c90f7731d0ae 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@399-400 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 86832b878d6de5792a69735ed18cbdf64bf5f90afdd3d773d77424b25242a7f6 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@435-436 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/mitc4_shell_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 20개 tests/unit/elements/mitc4_shell_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 690b9a24e116e86b67d26c75d76305c766aeaf2835fb1c040ba1cae247734f31 0099c4e8370d63a61cdf37604008ecc5ff2dc96461b678052febd0a2fa248aa8 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.ShapeFunctionsSatisfyNodalAndDerivativeIdentities Mitc4ShellKinematics.ShapeFunctionsSatisfyNodalAndDerivativeIdentities; assertion 5개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.ShapeFunctionsSatisfyNodalAndDerivativeIdentities 유지 원문 검사 body 및 assertion 동일. ce0d5d609ea4e2f0467991262a26eecb2e3dfe8f67b77325353db454953dfaf3 ce0d5d609ea4e2f0467991262a26eecb2e3dfe8f67b77325353db454953dfaf3 EXPECT_DOUBLE_EQ(shape.values[node_index], point == node_index ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ(value_sum, 1.0) | EXPECT_DOUBLE_EQ(xi_derivative_sum, 0.0) | EXPECT_DOUBLE_EQ(eta_derivative_sum, 0.0) | EXPECT_EQ(shape.values, (std::array{0.28125, 0.46875, 0.15625, 0.09375})) EXPECT_DOUBLE_EQ(shape.values[node_index], point == node_index ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ(value_sum, 1.0) | EXPECT_DOUBLE_EQ(xi_derivative_sum, 0.0) | EXPECT_DOUBLE_EQ(eta_derivative_sum, 0.0) | EXPECT_EQ(shape.values, (std::array{0.28125, 0.46875, 0.15625, 0.09375})) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.BuildsRightHandedFramesAndSeparatePhysicalDrillingMaps Mitc4ShellKinematics.BuildsRightHandedFramesAndSeparatePhysicalDrillingMaps; assertion 13개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.BuildsRightHandedFramesAndSeparatePhysicalDrillingMaps 유지 원문 검사 body 및 assertion 동일. a48c1e71779c07d794a93e7fb032fe851a7b6250798b500c11394d304eea2c51 a48c1e71779c07d794a93e7fb032fe851a7b6250798b500c11394d304eea2c51 ASSERT_TRUE(candidate.HasValue()) | ASSERT_EQ(physical.Rows(), 20U) | ASSERT_EQ(physical.Columns(), 24U) | ASSERT_EQ(drilling.Rows(), 4U) | ASSERT_EQ(drilling.Columns(), 24U) | EXPECT_DOUBLE_EQ( physical(physical_offset + component, global_offset + component), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 3U, global_offset + 4U), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 4U, global_offset + 5U), 1.0) | EXPECT_DOUBLE_EQ(drilling(node_index, global_offset + 3U), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 3U, global_dof), 0.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 4U, global_dof), 0.0) | EXPECT_DOUBLE_EQ(drilling(node_index, global_dof), 0.0) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), invalid_directors, Section(), Material()) .HasValue()) ASSERT_TRUE(candidate.HasValue()) | ASSERT_EQ(physical.Rows(), 20U) | ASSERT_EQ(physical.Columns(), 24U) | ASSERT_EQ(drilling.Rows(), 4U) | ASSERT_EQ(drilling.Columns(), 24U) | EXPECT_DOUBLE_EQ( physical(physical_offset + component, global_offset + component), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 3U, global_offset + 4U), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 4U, global_offset + 5U), 1.0) | EXPECT_DOUBLE_EQ(drilling(node_index, global_offset + 3U), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 3U, global_dof), 0.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 4U, global_dof), 0.0) | EXPECT_DOUBLE_EQ(drilling(node_index, global_dof), 0.0) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), invalid_directors, Section(), Material()) .HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.FormsDirectColumnsAndAllCovariantTyingSamples Mitc4ShellKinematics.FormsDirectColumnsAndAllCovariantTyingSamples; assertion 37개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.FormsDirectColumnsAndAllCovariantTyingSamples 유지 원문 검사 body 및 assertion 동일. 96cbc6952413ebb1639c3743d6825a4b80c52b4c450d79ccddd004e64fa816c6 96cbc6952413ebb1639c3743d6825a4b80c52b4c450d79ccddd004e64fa816c6 ASSERT_TRUE(candidate.HasValue()) | ASSERT_EQ(direct.Rows(), 5U) | ASSERT_EQ(direct.Columns(), 20U) | EXPECT_DOUBLE_EQ(direct(0U, 0U), -0.25) | EXPECT_DOUBLE_EQ(direct(0U, 4U), -0.125) | EXPECT_DOUBLE_EQ(direct(1U, 1U), -0.25) | EXPECT_DOUBLE_EQ(direct(1U, 3U), 0.125) | EXPECT_DOUBLE_EQ(direct(2U, 0U), -0.25) | EXPECT_DOUBLE_EQ(direct(2U, 1U), -0.25) | EXPECT_DOUBLE_EQ(direct(2U, 3U), 0.125) | EXPECT_DOUBLE_EQ(direct(2U, 4U), -0.125) | EXPECT_DOUBLE_EQ(direct(3U, 2U), -0.25) | EXPECT_DOUBLE_EQ(direct(3U, 4U), 0.25) | EXPECT_DOUBLE_EQ(direct(4U, 2U), -0.25) | EXPECT_DOUBLE_EQ(direct(4U, 3U), -0.25) | ASSERT_EQ(samples.Rows(), 4U) | ASSERT_EQ(samples.Columns(), 20U) | EXPECT_DOUBLE_EQ(samples(0U, 2U), -0.25) | EXPECT_DOUBLE_EQ(samples(0U, 4U), 0.25) | EXPECT_DOUBLE_EQ(samples(0U, 7U), 0.25) | EXPECT_DOUBLE_EQ(samples(0U, 9U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 12U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 14U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 17U), -0.25) | EXPECT_DOUBLE_EQ(samples(1U, 19U), 0.25) | EXPECT_DOUBLE_EQ(samples(2U, 2U), -0.25) | EXPECT_DOUBLE_EQ(samples(2U, 3U), -0.25) | EXPECT_DOUBLE_EQ(samples(2U, 17U), 0.25) | EXPECT_DOUBLE_EQ(samples(2U, 18U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 7U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 8U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 12U), 0.25) | EXPECT_DOUBLE_EQ(samples(3U, 13U), -0.25) | EXPECT_EQ(weights.xi_zeta, (std::array{0.75, 0.25})) | EXPECT_EQ(weights.eta_zeta, (std::array{0.375, 0.625})) | EXPECT_DOUBLE_EQ(tied(3U, 4U), 2.0 * (0.5 * samples(0U, 4U) + 0.5 * samples(1U, 4U))) | EXPECT_DOUBLE_EQ(tied(4U, 3U), 2.0 * (0.5 * samples(2U, 3U) + 0.5 * samples(3U, 3U))) ASSERT_TRUE(candidate.HasValue()) | ASSERT_EQ(direct.Rows(), 5U) | ASSERT_EQ(direct.Columns(), 20U) | EXPECT_DOUBLE_EQ(direct(0U, 0U), -0.25) | EXPECT_DOUBLE_EQ(direct(0U, 4U), -0.125) | EXPECT_DOUBLE_EQ(direct(1U, 1U), -0.25) | EXPECT_DOUBLE_EQ(direct(1U, 3U), 0.125) | EXPECT_DOUBLE_EQ(direct(2U, 0U), -0.25) | EXPECT_DOUBLE_EQ(direct(2U, 1U), -0.25) | EXPECT_DOUBLE_EQ(direct(2U, 3U), 0.125) | EXPECT_DOUBLE_EQ(direct(2U, 4U), -0.125) | EXPECT_DOUBLE_EQ(direct(3U, 2U), -0.25) | EXPECT_DOUBLE_EQ(direct(3U, 4U), 0.25) | EXPECT_DOUBLE_EQ(direct(4U, 2U), -0.25) | EXPECT_DOUBLE_EQ(direct(4U, 3U), -0.25) | ASSERT_EQ(samples.Rows(), 4U) | ASSERT_EQ(samples.Columns(), 20U) | EXPECT_DOUBLE_EQ(samples(0U, 2U), -0.25) | EXPECT_DOUBLE_EQ(samples(0U, 4U), 0.25) | EXPECT_DOUBLE_EQ(samples(0U, 7U), 0.25) | EXPECT_DOUBLE_EQ(samples(0U, 9U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 12U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 14U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 17U), -0.25) | EXPECT_DOUBLE_EQ(samples(1U, 19U), 0.25) | EXPECT_DOUBLE_EQ(samples(2U, 2U), -0.25) | EXPECT_DOUBLE_EQ(samples(2U, 3U), -0.25) | EXPECT_DOUBLE_EQ(samples(2U, 17U), 0.25) | EXPECT_DOUBLE_EQ(samples(2U, 18U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 7U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 8U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 12U), 0.25) | EXPECT_DOUBLE_EQ(samples(3U, 13U), -0.25) | EXPECT_EQ(weights.xi_zeta, (std::array{0.75, 0.25})) | EXPECT_EQ(weights.eta_zeta, (std::array{0.375, 0.625})) | EXPECT_DOUBLE_EQ(tied(3U, 4U), 2.0 * (0.5 * samples(0U, 4U) + 0.5 * samples(1U, 4U))) | EXPECT_DOUBLE_EQ(tied(4U, 3U), 2.0 * (0.5 * samples(2U, 3U) + 0.5 * samples(3U, 3U))) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellConstitutive.BuildsExactPositiveDefiniteSectionMatricesAndRescalesUnits Mitc4ShellConstitutive.BuildsExactPositiveDefiniteSectionMatricesAndRescalesUnits; assertion 25개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellConstitutive.BuildsExactPositiveDefiniteSectionMatricesAndRescalesUnits 유지 원문 검사 body 및 assertion 동일. cafb3bc50695fe76a6a088a21953389aedb24938d4af5236ad5e1907069eef70 cafb3bc50695fe76a6a088a21953389aedb24938d4af5236ad5e1907069eef70 ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(cps.Rows(), 3U) | EXPECT_EQ(cps.Columns(), 3U) | EXPECT_EQ(c5.Rows(), 5U) | EXPECT_EQ(c5.Columns(), 5U) | EXPECT_EQ(a.Rows(), 3U) | EXPECT_EQ(d.Rows(), 3U) | EXPECT_EQ(as.Rows(), 2U) | EXPECT_DOUBLE_EQ(cps(0U, 0U), 128.0) | EXPECT_DOUBLE_EQ(cps(0U, 1U), 32.0) | EXPECT_DOUBLE_EQ(cps(2U, 2U), 48.0) | EXPECT_DOUBLE_EQ(c5(3U, 3U), 40.0) | EXPECT_DOUBLE_EQ(c5(4U, 4U), 40.0) | EXPECT_DOUBLE_EQ(a(0U, 0U), 256.0) | EXPECT_NEAR(d(0U, 0U), 256.0 / 3.0, 1.0e-12) | EXPECT_DOUBLE_EQ(as(0U, 0U), 80.0) | EXPECT_TRUE(HasPositiveCholeskyPivots(cps)) | EXPECT_TRUE(HasPositiveCholeskyPivots(c5)) | EXPECT_TRUE(HasPositiveCholeskyPivots(a)) | EXPECT_TRUE(HasPositiveCholeskyPivots(d)) | EXPECT_TRUE(HasPositiveCholeskyPivots(as)) | ASSERT_TRUE(scaled_candidate.HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(0.0), Material()) .HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(), Material(0.0, 0.25)) .HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(), Material(120.0, 0.5)) .HasValue()) ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(cps.Rows(), 3U) | EXPECT_EQ(cps.Columns(), 3U) | EXPECT_EQ(c5.Rows(), 5U) | EXPECT_EQ(c5.Columns(), 5U) | EXPECT_EQ(a.Rows(), 3U) | EXPECT_EQ(d.Rows(), 3U) | EXPECT_EQ(as.Rows(), 2U) | EXPECT_DOUBLE_EQ(cps(0U, 0U), 128.0) | EXPECT_DOUBLE_EQ(cps(0U, 1U), 32.0) | EXPECT_DOUBLE_EQ(cps(2U, 2U), 48.0) | EXPECT_DOUBLE_EQ(c5(3U, 3U), 40.0) | EXPECT_DOUBLE_EQ(c5(4U, 4U), 40.0) | EXPECT_DOUBLE_EQ(a(0U, 0U), 256.0) | EXPECT_NEAR(d(0U, 0U), 256.0 / 3.0, 1.0e-12) | EXPECT_DOUBLE_EQ(as(0U, 0U), 80.0) | EXPECT_TRUE(HasPositiveCholeskyPivots(cps)) | EXPECT_TRUE(HasPositiveCholeskyPivots(c5)) | EXPECT_TRUE(HasPositiveCholeskyPivots(a)) | EXPECT_TRUE(HasPositiveCholeskyPivots(d)) | EXPECT_TRUE(HasPositiveCholeskyPivots(as)) | ASSERT_TRUE(scaled_candidate.HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(0.0), Material()) .HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(), Material(0.0, 0.25)) .HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(), Material(120.0, 0.5)) .HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.UsesOneFixedTwoByTwoByTwoQuadratureOrder Mitc4ShellKinematics.UsesOneFixedTwoByTwoByTwoQuadratureOrder; assertion 3개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.UsesOneFixedTwoByTwoByTwoQuadratureOrder 유지 원문 검사 body 및 assertion 동일. 65e8535a920578bf82342d17de948fc260aa98d66b9a261545430700d7c0a54b 65e8535a920578bf82342d17de948fc260aa98d66b9a261545430700d7c0a54b ASSERT_EQ(points.size(), 8U) | EXPECT_EQ(points[point].natural_coordinates, expected[point]) | EXPECT_DOUBLE_EQ(points[point].weight, 1.0) ASSERT_EQ(points.size(), 8U) | EXPECT_EQ(points[point].natural_coordinates, expected[point]) | EXPECT_DOUBLE_EQ(points[point].weight, 1.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.FormsFiniteScaledSymmetricPhysicalAndStabilizedStiffness Mitc4ShellKernel.FormsFiniteScaledSymmetricPhysicalAndStabilizedStiffness; assertion 14개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.FormsFiniteScaledSymmetricPhysicalAndStabilizedStiffness 유지 원문 검사 body 및 assertion 동일. e0c10c61702d95893fa0b05caff80fba991b5bc41ac9085dc477e5b1e1a37a07 e0c10c61702d95893fa0b05caff80fba991b5bc41ac9085dc477e5b1e1a37a07 ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_EQ(stiffness.physical_local20.Rows(), 20U) | EXPECT_EQ(stiffness.physical_local20.Columns(), 20U) | EXPECT_EQ(stiffness.physical_global24.Rows(), 24U) | EXPECT_EQ(stiffness.drilling_global24.Rows(), 24U) | EXPECT_EQ(stiffness.stabilized_global24.Rows(), 24U) | EXPECT_TRUE(std::isfinite((*matrix)(row, column))) | EXPECT_LE(ScaledSymmetryError(stiffness.physical_local20, 5U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.physical_global24, 6U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.drilling_global24, 6U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.stabilized_global24, 6U, 2.0), 1.0e-12) | ASSERT_TRUE(repeated_candidate.HasValue()) | EXPECT_DOUBLE_EQ(repeated.drilling_stiffness, stiffness.drilling_stiffness) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_EQ(stiffness.physical_local20.Rows(), 20U) | EXPECT_EQ(stiffness.physical_local20.Columns(), 20U) | EXPECT_EQ(stiffness.physical_global24.Rows(), 24U) | EXPECT_EQ(stiffness.drilling_global24.Rows(), 24U) | EXPECT_EQ(stiffness.stabilized_global24.Rows(), 24U) | EXPECT_TRUE(std::isfinite((*matrix)(row, column))) | EXPECT_LE(ScaledSymmetryError(stiffness.physical_local20, 5U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.physical_global24, 6U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.drilling_global24, 6U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.stabilized_global24, 6U, 2.0), 1.0e-12) | ASSERT_TRUE(repeated_candidate.HasValue()) | EXPECT_DOUBLE_EQ(repeated.drilling_stiffness, stiffness.drilling_stiffness) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.PreservesExactStiffnessRecoveryAndPatchAcrossVector3Migration Mitc4ShellKernel.PreservesExactStiffnessRecoveryAndPatchAcrossVector3Migration; assertion 13개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.PreservesExactStiffnessRecoveryAndPatchAcrossVector3Migration 유지 원문 검사 body 및 assertion 동일. dd458622e798b9a301ec132ddda748c8225d2dbc21d2623561828c90551d37ce dd458622e798b9a301ec132ddda748c8225d2dbc21d2623561828c90551d37ce ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_DOUBLE_EQ(frame_e3.X(), 0.0) | EXPECT_DOUBLE_EQ(frame_e3.Y(), 0.0) | EXPECT_DOUBLE_EQ(frame_e3.Z(), 1.0) | ASSERT_TRUE(recovery_candidate.HasValue()) | EXPECT_DOUBLE_EQ(stiffness.physical_local20(0U, 0U), 0x1.d555555555554p+6) | EXPECT_DOUBLE_EQ(stiffness.physical_local20(0U, 4U), 0.0) | EXPECT_DOUBLE_EQ(stiffness.physical_global24(2U, 2U), 0x1.aaaaaaaaaaaadp+5) | EXPECT_DOUBLE_EQ(recovery.strain_energy, 0x1.20a3d70a3d70bp+6) | EXPECT_EQ(recovery.points[0U].generalized_strain, kExpectedStrain) | EXPECT_DOUBLE_EQ(patch[0U], 0x1.9999999999999p-3) | EXPECT_DOUBLE_EQ(patch[component], 0.0) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_DOUBLE_EQ(frame_e3.X(), 0.0) | EXPECT_DOUBLE_EQ(frame_e3.Y(), 0.0) | EXPECT_DOUBLE_EQ(frame_e3.Z(), 1.0) | ASSERT_TRUE(recovery_candidate.HasValue()) | EXPECT_DOUBLE_EQ(stiffness.physical_local20(0U, 0U), 0x1.d555555555554p+6) | EXPECT_DOUBLE_EQ(stiffness.physical_local20(0U, 4U), 0.0) | EXPECT_DOUBLE_EQ(stiffness.physical_global24(2U, 2U), 0x1.aaaaaaaaaaaadp+5) | EXPECT_DOUBLE_EQ(recovery.strain_energy, 0x1.20a3d70a3d70bp+6) | EXPECT_EQ(recovery.points[0U].generalized_strain, kExpectedStrain) | EXPECT_DOUBLE_EQ(patch[0U], 0x1.9999999999999p-3) | EXPECT_DOUBLE_EQ(patch[component], 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.PreservesPhysicalEnergyUnderTwentyToTwentyFourCongruence Mitc4ShellKernel.PreservesPhysicalEnergyUnderTwentyToTwentyFourCongruence; assertion 5개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.PreservesPhysicalEnergyUnderTwentyToTwentyFourCongruence 유지 원문 검사 body 및 assertion 동일. 2811e8ca758b586de936d283c2520a2cea673d1b676771c2bc74d718e98a74a1 2811e8ca758b586de936d283c2520a2cea673d1b676771c2bc74d718e98a74a1 ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_NE(local_energy, 0.0) | ASSERT_NE(global_energy, 0.0) | EXPECT_LE(std::abs(global_energy - local_energy) / (std::abs(global_energy) + std::abs(local_energy)), 1.0e-12) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_NE(local_energy, 0.0) | ASSERT_NE(global_energy, 0.0) | EXPECT_LE(std::abs(global_energy - local_energy) / (std::abs(global_energy) + std::abs(local_energy)), 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.RetainsSixRigidModesAndHasExpectedPhysicalAndStabilizedRank Mitc4ShellKernel.RetainsSixRigidModesAndHasExpectedPhysicalAndStabilizedRank; assertion 9개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.RetainsSixRigidModesAndHasExpectedPhysicalAndStabilizedRank 유지 원문 검사 body 및 assertion 동일. f388cb98b5e4d023a89e149554f8288d9250847c7a5738a0657dcbddf4e5220d f388cb98b5e4d023a89e149554f8288d9250847c7a5738a0657dcbddf4e5220d ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_EQ(NumericalRank(scaled_physical20), 14U) | EXPECT_EQ(NumericalRank(scaled_stabilized24), 18U) | ASSERT_GT(physical_norm, 0.0) | ASSERT_GT(stabilized_norm, 0.0) | ASSERT_GT(modeNorm, 0.0) | EXPECT_LE(scaled_physical24.Multiply(scaledMode).Norm() / (physical_norm * modeNorm), 1.0e-10) | EXPECT_LE(scaled_stabilized24.Multiply(scaledMode).Norm() / (stabilized_norm * modeNorm), 1.0e-10) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_EQ(NumericalRank(scaled_physical20), 14U) | EXPECT_EQ(NumericalRank(scaled_stabilized24), 18U) | ASSERT_GT(physical_norm, 0.0) | ASSERT_GT(stabilized_norm, 0.0) | ASSERT_GT(modeNorm, 0.0) | EXPECT_LE(scaled_physical24.Multiply(scaledMode).Norm() / (physical_norm * modeNorm), 1.0e-10) | EXPECT_LE(scaled_stabilized24.Multiply(scaledMode).Norm() / (stabilized_norm * modeNorm), 1.0e-10) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellPatch.ReproducesIndependentMembraneBendingShearAndTwistFields Mitc4ShellPatch.ReproducesIndependentMembraneBendingShearAndTwistFields; assertion 3개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellPatch.ReproducesIndependentMembraneBendingShearAndTwistFields 유지 원문 검사 body 및 assertion 동일. 85d6d3543ba1e1a40665939da00f88617f4bc27a8cb54ee6ca6f26848d3abe12 85d6d3543ba1e1a40665939da00f88617f4bc27a8cb54ee6ca6f26848d3abe12 ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_GT(QuadraticEnergy(stiffness, field), 0.0) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_GT(QuadraticEnergy(stiffness, field), 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.UsesAllPhysicalRotationDiagonalsAndFixedFactor Mitc4ShellDrilling.UsesAllPhysicalRotationDiagonalsAndFixedFactor; assertion 5개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.UsesAllPhysicalRotationDiagonalsAndFixedFactor 유지 원문 검사 body 및 assertion 동일. 8b0addafb6afb8018440c8784db44a56ead47ff68faa9389836024122e94a95f 8b0addafb6afb8018440c8784db44a56ead47ff68faa9389836024122e94a95f ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_TRUE(std::isfinite(diagonal)) | ASSERT_GE(diagonal, 0.0) | EXPECT_DOUBLE_EQ(stiffness.drilling_stiffness, 1.0e-3 * expected_sum / 8.0) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_TRUE(std::isfinite(diagonal)) | ASSERT_GE(diagonal, 0.0) | EXPECT_DOUBLE_EQ(stiffness.drilling_stiffness, 1.0e-3 * expected_sum / 8.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.IntegratesFlatConsistentAndScalarRowSumLumpedMass Mitc4ShellMass.IntegratesFlatConsistentAndScalarRowSumLumpedMass; assertion 10개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.IntegratesFlatConsistentAndScalarRowSumLumpedMass 유지 원문 검사 body 및 assertion 동일. 13d278e7f55aa0a671221d5a7335510907c58490fb3d02e8defde941b85ec16f 13d278e7f55aa0a671221d5a7335510907c58490fb3d02e8defde941b85ec16f ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(mass.nodal_moments[row][0U], 6.0, 1.0e-12) | EXPECT_NEAR(mass.nodal_moments[row][1U], 0.0, 1.0e-12) | EXPECT_NEAR(mass.nodal_moments[row][2U], 2.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[0U](row, column), pattern[row][column] * (2.0 / 3.0), 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[1U](row, column), 0.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[2U](row, column), pattern[row][column] * (2.0 / 9.0), 1.0e-12) | EXPECT_NEAR( mass.lumped_global24(6U * row + component, 6U * row + component), 6.0, 1.0e-12) | EXPECT_NEAR(mass.lumped_global24(6U * row + 3U + component, 6U * row + 3U + component), component == 2U ? 0.0 : 2.0, 1.0e-12) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(mass.nodal_moments[row][0U], 6.0, 1.0e-12) | EXPECT_NEAR(mass.nodal_moments[row][1U], 0.0, 1.0e-12) | EXPECT_NEAR(mass.nodal_moments[row][2U], 2.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[0U](row, column), pattern[row][column] * (2.0 / 3.0), 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[1U](row, column), 0.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[2U](row, column), pattern[row][column] * (2.0 / 9.0), 1.0e-12) | EXPECT_NEAR( mass.lumped_global24(6U * row + component, 6U * row + component), 6.0, 1.0e-12) | EXPECT_NEAR(mass.lumped_global24(6U * row + 3U + component, 6U * row + 3U + component), component == 2U ? 0.0 : 2.0, 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.RejectsNonpositiveAndNonfiniteDensity Mitc4ShellMass.RejectsNonpositiveAndNonfiniteDensity; assertion 4개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.RejectsNonpositiveAndNonfiniteDensity 유지 원문 검사 body 및 assertion 동일. 85d0b08a8b413046a1dd64d263b9a847bb933dc7411f5f611651c1fe772f8220 85d0b08a8b413046a1dd64d263b9a847bb933dc7411f5f611651c1fe772f8220 "ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_FALSE(mass.HasValue()) | ASSERT_EQ(mass.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(mass.GetStatus().Diagnostics()[0U].code, ""invalid-shell-mass"")" "ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_FALSE(mass.HasValue()) | ASSERT_EQ(mass.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(mass.GetStatus().Diagnostics()[0U].code, ""invalid-shell-mass"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.PreservesFiniteNodalVarianceAcrossDensityScale Mitc4ShellMass.PreservesFiniteNodalVarianceAcrossDensityScale; assertion 6개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.PreservesFiniteNodalVarianceAcrossDensityScale 유지 원문 검사 body 및 assertion 동일. 35f70d35723a1a6a5ca19dbe73e587dc1c35ec4828f98616aa2dab17d4920e3e 35f70d35723a1a6a5ca19dbe73e587dc1c35ec4828f98616aa2dab17d4920e3e ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_TRUE(std::isfinite(moments[0U])) | EXPECT_TRUE(std::isfinite(moments[1U])) | EXPECT_TRUE(std::isfinite(moments[2U])) | EXPECT_GT(moments[2U] - moments[1U] * (moments[1U] / moments[0U]), 0.0) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_TRUE(std::isfinite(moments[0U])) | EXPECT_TRUE(std::isfinite(moments[1U])) | EXPECT_TRUE(std::isfinite(moments[2U])) | EXPECT_GT(moments[2U] - moments[1U] * (moments[1U] / moments[0U]), 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.PreservesIndependentWarpedMomentOracle Mitc4ShellMass.PreservesIndependentWarpedMomentOracle; assertion 8개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.PreservesIndependentWarpedMomentOracle 유지 원문 검사 body 및 assertion 동일. 643cacec125570c0bafe60064f994407b8a1491199f88ce3b0e9af13472d444d 643cacec125570c0bafe60064f994407b8a1491199f88ce3b0e9af13472d444d ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(mass.consistent_moments[0U](0U, 0U), 17609.0 / 28800.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[1U](0U, 0U), 11003.0 / 1440000.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[2U](0U, 0U), 88177.0 / 6912000.0, 1.0e-12) | EXPECT_NEAR(total_mass, 7743.0 / 1600.0, 1.0e-12) | EXPECT_NEAR(total_first_moment, 739.0 / 12000.0, 1.0e-12) | EXPECT_NEAR(total_second_moment, 517.0 / 5120.0, 1.0e-12) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(mass.consistent_moments[0U](0U, 0U), 17609.0 / 28800.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[1U](0U, 0U), 11003.0 / 1440000.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[2U](0U, 0U), 88177.0 / 6912000.0, 1.0e-12) | EXPECT_NEAR(total_mass, 7743.0 / 1600.0, 1.0e-12) | EXPECT_NEAR(total_first_moment, 739.0 / 12000.0, 1.0e-12) | EXPECT_NEAR(total_second_moment, 517.0 / 5120.0, 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.MeetsPartialBoundaryCompleteMatrixTargets Mitc4ShellMass.MeetsPartialBoundaryCompleteMatrixTargets; assertion 7개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.MeetsPartialBoundaryCompleteMatrixTargets 유지 원문 검사 body 및 assertion 동일. 7b4ca55c7d526b275a1ca19f3c65a04f168c1ca514a329671b9fc594f4f468a1 7b4ca55c7d526b275a1ca19f3c65a04f168c1ca514a329671b9fc594f4f468a1 ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(stiffness_candidate.Value().drilling_stiffness, 19.0 / 4800.0, 1.0e-12) | EXPECT_NEAR(complete_stiffness, 10369.0 / 7500.0, 1.0e-12) | EXPECT_NEAR(lumped_mass, 3.0 / 50.0, 1.0e-12) | EXPECT_NEAR(complete_stiffness / lumped_mass, 10369.0 / 450.0, 1.0e-12) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(stiffness_candidate.Value().drilling_stiffness, 19.0 / 4800.0, 1.0e-12) | EXPECT_NEAR(complete_stiffness, 10369.0 / 7500.0, 1.0e-12) | EXPECT_NEAR(lumped_mass, 3.0 / 50.0, 1.0e-12) | EXPECT_NEAR(complete_stiffness / lumped_mass, 10369.0 / 450.0, 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.RecomputesCompleteMassAndStiffnessCovariantly Mitc4ShellMass.RecomputesCompleteMassAndStiffnessCovariantly; assertion 6개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.RecomputesCompleteMassAndStiffnessCovariantly 유지 원문 검사 body 및 assertion 동일. 1235757b19e3bdacbfc2226ca9a3b839417e1f295516a1d4de6259acb4d0be43 1235757b19e3bdacbfc2226ca9a3b839417e1f295516a1d4de6259acb4d0be43 ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(original_stiffness.HasValue()) | ASSERT_TRUE(rotated_stiffness.HasValue()) | ASSERT_TRUE(original_mass.HasValue()) | ASSERT_TRUE(rotated_mass.HasValue()) ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(original_stiffness.HasValue()) | ASSERT_TRUE(rotated_stiffness.HasValue()) | ASSERT_TRUE(original_mass.HasValue()) | ASSERT_TRUE(rotated_mass.HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.FailsNonfiniteReferenceAndStabilizesEachPureDrillCoordinate Mitc4ShellDrilling.FailsNonfiniteReferenceAndStabilizesEachPureDrillCoordinate; assertion 13개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.FailsNonfiniteReferenceAndStabilizesEachPureDrillCoordinate 유지 원문 검사 body 및 assertion 동일. 0d2b529828fad74fc88ca1a545fe19d255f87c53d24275ec741bd114bbebe1ca 0d2b529828fad74fc88ca1a545fe19d255f87c53d24275ec741bd114bbebe1ca "ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_DOUBLE_EQ(stiffness.physical_global24.Multiply(pure_drill).Norm(), 0.0) | EXPECT_DOUBLE_EQ(drill_action[6U * node_index + 5U], stiffness.drilling_stiffness) | EXPECT_GT(QuadraticEnergy(stiffness.drilling_global24, pure_drill), 0.0) | ASSERT_TRUE(extreme_shell.HasValue()) | ASSERT_FALSE(failure.HasValue()) | ASSERT_EQ(failure.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(failure.GetStatus().Diagnostics()[0].code, ""invalid-shell-stiffness"") | ASSERT_FALSE(repeated_failure.HasValue()) | ASSERT_EQ(repeated_failure.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(repeated_failure.GetStatus().Diagnostics()[0].code, failure.GetStatus().Diagnostics()[0].code) | EXPECT_EQ(repeated_failure.GetStatus().Diagnostics()[0].message, failure.GetStatus().Diagnostics()[0].message)" "ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_DOUBLE_EQ(stiffness.physical_global24.Multiply(pure_drill).Norm(), 0.0) | EXPECT_DOUBLE_EQ(drill_action[6U * node_index + 5U], stiffness.drilling_stiffness) | EXPECT_GT(QuadraticEnergy(stiffness.drilling_global24, pure_drill), 0.0) | ASSERT_TRUE(extreme_shell.HasValue()) | ASSERT_FALSE(failure.HasValue()) | ASSERT_EQ(failure.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(failure.GetStatus().Diagnostics()[0].code, ""invalid-shell-stiffness"") | ASSERT_FALSE(repeated_failure.HasValue()) | ASSERT_EQ(repeated_failure.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(repeated_failure.GetStatus().Diagnostics()[0].code, failure.GetStatus().Diagnostics()[0].code) | EXPECT_EQ(repeated_failure.GetStatus().Diagnostics()[0].message, failure.GetStatus().Diagnostics()[0].message)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.ExcludesPureDrillFromPhysicalRecoveryAndEnergy Mitc4ShellDrilling.ExcludesPureDrillFromPhysicalRecoveryAndEnergy; assertion 8개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.ExcludesPureDrillFromPhysicalRecoveryAndEnergy 유지 원문 검사 body 및 assertion 동일. 3dad0709f8a7d8746df1e04699e6777b558a71db23f22ac13f5c98ecbd6b084d 3dad0709f8a7d8746df1e04699e6777b558a71db23f22ac13f5c98ecbd6b084d ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_GT(stiffness_candidate.Value() .stabilized_global24.Multiply(pure_drill) .Norm(), 0.0) | ASSERT_TRUE(recovery_candidate.HasValue()) | EXPECT_DOUBLE_EQ(recovery.strain_energy, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_GT(stiffness_candidate.Value() .stabilized_global24.Multiply(pure_drill) .Norm(), 0.0) | ASSERT_TRUE(recovery_candidate.HasValue()) | EXPECT_DOUBLE_EQ(recovery.strain_energy, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellPhysicalRecovery.RecoversHandFieldAtFixedLocationsAndSectionPositions Mitc4ShellPhysicalRecovery.RecoversHandFieldAtFixedLocationsAndSectionPositions; assertion 8개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellPhysicalRecovery.RecoversHandFieldAtFixedLocationsAndSectionPositions 유지 원문 검사 body 및 assertion 동일. 2a4132bcc260b96aec7e5c144e1ccf92a65c7dec753c940e378fac3737f08d83 2a4132bcc260b96aec7e5c144e1ccf92a65c7dec753c940e378fac3737f08d83 ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(recovery_candidate.HasValue()) | ASSERT_EQ(recovery.points.size(), expected_coordinates.size()) | EXPECT_EQ(point.natural_coordinates, expected_coordinates[point_index]) | EXPECT_NEAR(point.generalized_strain[component], kGeneralized[component], 1.0e-12) | EXPECT_NEAR(point.section_resultant[component], kExpectedResultant[component], 1.0e-12) | EXPECT_NEAR(point.in_plane_stress[position][component], kExpectedStress[position][component], 1.0e-12) | EXPECT_NEAR(recovery.strain_energy, 72.16, 1.0e-12) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(recovery_candidate.HasValue()) | ASSERT_EQ(recovery.points.size(), expected_coordinates.size()) | EXPECT_EQ(point.natural_coordinates, expected_coordinates[point_index]) | EXPECT_NEAR(point.generalized_strain[component], kGeneralized[component], 1.0e-12) | EXPECT_NEAR(point.section_resultant[component], kExpectedResultant[component], 1.0e-12) | EXPECT_NEAR(point.in_plane_stress[position][component], kExpectedStress[position][component], 1.0e-12) | EXPECT_NEAR(recovery.strain_energy, 72.16, 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/mitc4_shell_test.cpp support@1-314 helper/oracle/fixture/include/static assertion 구간: Node, NodePointers, Section, Material, Dot, Cross, RotateAboutGlobalZ, Norm, ExpectVectorNear, ExpectOrthonormalRightHanded, ExpectMatrixNear, ExpectSymmetric, HasPositiveCholeskyPivots, if, FrobeniusNorm, ScaledSymmetryError, ScaledStiffness, SymmetricEigenvalues, NumericalRank, for, count_if, SymmetricOperatorNorm, QuadraticEnergy, PhysicalField, ExpectStrain, PhysicalRigidMode, PlanarNodes tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 297d7d85ca88c30c2fcba28e5add8b21550acc876c07a4f72e58bd5671374614 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/mitc4_shell_test.cpp support@345-346 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3871bd00e76dc57ff62fcabeb11b45bf1f6672a56529f21deb75b04370bafdcb 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/mitc4_shell_test.cpp support@400-401 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2b2e2de4330e6f7b2a8bc958c220fa5074cae2a894fdec078de809b1494a88c0 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/mitc4_shell_test.cpp support@455-456 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0e9489db8c044b5eac22c751c63b47dd64307874cd16a718c86fe5d4d8183fd5 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/mitc4_shell_test.cpp support@540-541 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3c4055c21da1e40459430c329495ace7af1b4404b56501366394a6789c7fd255 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/mitc4_shell_test.cpp support@555-556 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d78ec2164cda37dda980863249f1d1b8f01e17f082f71061e46180accb42a7b4 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/mitc4_shell_test.cpp support@656-657 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 297c797dbfa396881a360ce5e6061cad0ac811f3829247f77cbbe5c5d6ef704a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/mitc4_shell_test.cpp support@685-686 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 832b8cc9cff26faa1e25dd5159b323b77839151eb7675edaaf4f6ff39d91a055 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/mitc4_shell_test.cpp support@734-735 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6b0492533ad982e0ff4c2695c4236ab7345f4db760494bf6488680ce4ce90747 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/mitc4_shell_test.cpp support@797-798 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 50f5a0316e8562dadd3155c301e30fc715e3dc4c735874d08f7567003cc894f3 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/mitc4_shell_test.cpp support@890-923 helper/oracle/fixture/include/static assertion 구간: ExpectGlobalZCovariance tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ee879d5be51cb0e71626e93a8224bba6a7ee8b8929d124939771c99853c476ae 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/mitc4_shell_test.cpp support@1027-1028 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 87cbab04a4d00f30b6ca88389a388eaaee48f9eab162d6d6f1a1a33f1d1c4b41 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/mitc4_shell_test.cpp support@1070-1071 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9445081d68e7ef72263ba262a8525bf8acd4c08d0212a48e0f87fa92b0d99c6b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/mitc4_shell_test.cpp support@1108-1109 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 31f30d2b75293b2d01a063d68a9dfdb4e607867386078578966eb04a63d4496a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 17개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file 이관 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. eb4562c8abedcfbc7c2f953b58bae30f67a84d7ccf0bbea9ae384dfcf595f055 7274bef28faa7c8a38da9436edf00d3d2356031a9ee82618a8b16226f99d687f 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.IntegratesTheRectangleNodalLumpedMassAndNull NonlinearMitc4Inertia.IntegratesTheRectangleNodalLumpedMassAndNull; assertion 5개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.IntegratesTheRectangleNodalLumpedMassAndNull 유지 원문 검사 body 및 assertion 동일. 717e3fc84d47b730a49e4677ba77a96fdeab3929b1e3b870c9fd73495ddf445e 717e3fc84d47b730a49e4677ba77a96fdeab3929b1e3b870c9fd73495ddf445e ASSERT_TRUE(evaluation.HasValue()) | EXPECT_NEAR(mass(6U * row, 6U * column), row == column ? 0.2 : 0.0, 1.0e-12) | EXPECT_NEAR(mass(6U * row + 3U, 6U * column + 3U), row == column ? 0.2 * 0.2 * 0.2 / 12.0 : 0.0, 1.0e-12) | EXPECT_NEAR(mass(6U * row + 5U, 6U * row + 5U), 0.0, 1.0e-12) | EXPECT_LE(mass.Multiply(drilling_null).Norm(), 1.0e-12) ASSERT_TRUE(evaluation.HasValue()) | EXPECT_NEAR(mass(6U * row, 6U * column), row == column ? 0.2 : 0.0, 1.0e-12) | EXPECT_NEAR(mass(6U * row + 3U, 6U * column + 3U), row == column ? 0.2 * 0.2 * 0.2 / 12.0 : 0.0, 1.0e-12) | EXPECT_NEAR(mass(6U * row + 5U, 6U * row + 5U), 0.0, 1.0e-12) | EXPECT_LE(mass.Multiply(drilling_null).Norm(), 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.UsesPhysicalAccelerationAndExactCurrentForce NonlinearMitc4Inertia.UsesPhysicalAccelerationAndExactCurrentForce; assertion 3개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.UsesPhysicalAccelerationAndExactCurrentForce 유지 원문 검사 body 및 assertion 동일. ddce9716997e9842683e77402fbf5b3b865335261d285318138c471950069a35 ddce9716997e9842683e77402fbf5b3b865335261d285318138c471950069a35 ASSERT_TRUE(evaluation.HasValue()) | EXPECT_NEAR(evaluation.Value().force[index], expected[index], 1.0e-11) | EXPECT_NEAR(evaluation.Value().convective_force[index], 0.0, 1.0e-11) ASSERT_TRUE(evaluation.HasValue()) | EXPECT_NEAR(evaluation.Value().force[index], expected[index], 1.0e-11) | EXPECT_NEAR(evaluation.Value().convective_force[index], 0.0, 1.0e-11) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.PreservesTinyAngularAccelerationAlongsideRigidTranslationAcceleration NonlinearMitc4Inertia.PreservesTinyAngularAccelerationAlongsideRigidTranslationAcceleration; assertion 5개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.PreservesTinyAngularAccelerationAlongsideRigidTranslationAcceleration 유지 원문 검사 body 및 assertion 동일. 9b2033a70c6b58db45bfc94101520b88db958b78ab526763fbe07eb9c2971b7f 9b2033a70c6b58db45bfc94101520b88db958b78ab526763fbe07eb9c2971b7f ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_DOUBLE_EQ(actual.Value().convective_force[full], 0.0) | ASSERT_GT(scale, 0.0) | EXPECT_LE(error / scale, 1e-12) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_DOUBLE_EQ(actual.Value().convective_force[full], 0.0) | ASSERT_GT(scale, 0.0) | EXPECT_LE(error / scale, 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.MixedScaleRotationDerivativeAndAngularMomentum NonlinearMitc4Inertia.MixedScaleRotationDerivativeAndAngularMomentum; assertion 6개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.MixedScaleRotationDerivativeAndAngularMomentum 유지 원문 검사 body 및 assertion 동일. 81949ff3504ddccc0cbef056e78d8596ee31b99ff69aae08a4dc6503e09bd230 81949ff3504ddccc0cbef056e78d8596ee31b99ff69aae08a4dc6503e09bd230 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_LE(derivative_error / (nodal_rotary_inertia * epsilon), 1e-12) | EXPECT_LE(rate_error / (nodal_rotary_inertia * epsilon), 1e-12) | ASSERT_TRUE(moving.HasValue()) | EXPECT_LE(momentum_error / (nodal_rotary_inertia * epsilon), 1e-12) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_LE(derivative_error / (nodal_rotary_inertia * epsilon), 1e-12) | EXPECT_LE(rate_error / (nodal_rotary_inertia * epsilon), 1e-12) | ASSERT_TRUE(moving.HasValue()) | EXPECT_LE(momentum_error / (nodal_rotary_inertia * epsilon), 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.FlatRotatedLargeOffsetKeepsCenteredRotationalInertiaExactlyZero NonlinearMitc4Inertia.FlatRotatedLargeOffsetKeepsCenteredRotationalInertiaExactlyZero; assertion 4개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.FlatRotatedLargeOffsetKeepsCenteredRotationalInertiaExactlyZero 유지 원문 검사 body 및 assertion 동일. f5b834d0bbcf878284e79ee64f605b5d50f2671a207a226ab6226be2b1d242c8 f5b834d0bbcf878284e79ee64f605b5d50f2671a207a226ab6226be2b1d242c8 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_DOUBLE_EQ(value.Value().force[6U * node + 3U + component], 0.0) | EXPECT_DOUBLE_EQ(mass_times_acceleration[6U * node + 3U + component], 0.0) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_DOUBLE_EQ(value.Value().force[6U * node + 3U + component], 0.0) | EXPECT_DOUBLE_EQ(mass_times_acceleration[6U * node + 3U + component], 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.WarpedGeometryRetainsNonzeroFirstThicknessMoment NonlinearMitc4Inertia.WarpedGeometryRetainsNonzeroFirstThicknessMoment; assertion 3개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.WarpedGeometryRetainsNonzeroFirstThicknessMoment 유지 원문 검사 body 및 assertion 동일. 89f7e9f4b875516c794ec880dbf48d5a8e55b0402e9a1c3dfa1382b255cacf26 89f7e9f4b875516c794ec880dbf48d5a8e55b0402e9a1c3dfa1382b255cacf26 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_GT(coupling, 0.0) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_GT(coupling, 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.InverseIdentityAndCurrentAnalyticNullAtFiniteRotation DynamicRotation.InverseIdentityAndCurrentAnalyticNullAtFiniteRotation; assertion 9개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.InverseIdentityAndCurrentAnalyticNullAtFiniteRotation 이관 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. cd06eaf77eb17e3b6b87e26c1c7da6266678a5a1cf51952a44dcde328ab3e100 a38ec8c66743c96d9852840c0a2a33e0c3a14f330dd00369fcaedf51b341f3ee ASSERT_TRUE(value.HasValue()) | EXPECT_LE( (value.Value().drill_null - inverse_column / inverse_column.Norm()) .Norm(), 1.0e-12) | EXPECT_NEAR(identity_column[row], row == column ? 1.0 : 0.0, 1.0e-12) | ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | EXPECT_LE(mass.Multiply(n).Norm() / MatrixNorm(mass), 1.0e-12) | EXPECT_LE(std::abs(n.Dot(scaled_force)) / scaled_force.Norm(), 1.0e-10) | EXPECT_GT(mass.Multiply(fixed_drill).Norm() / MatrixNorm(mass), 1.0e-8) ASSERT_TRUE(value.HasValue()) | EXPECT_GT(mapped[column], 0.0) | EXPECT_NEAR(value.Value().drill_null.Norm(), 1.0, 1e-12) | EXPECT_NEAR(mapped[row], 0.0, 1e-12) | ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | EXPECT_LE(mass.Multiply(n).Norm() / MatrixNorm(mass), 1.0e-12) | EXPECT_LE(std::abs(n.Dot(scaled_force)) / scaled_force.Norm(), 1.0e-10) | EXPECT_GT(mass.Multiply(fixed_drill).Norm() / MatrixNorm(mass), 1.0e-8) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.RejectsIllConditionedPhysicalMassWithoutDeletingIt NonlinearMitc4Inertia.RejectsIllConditionedPhysicalMassWithoutDeletingIt; assertion 3개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.RejectsIllConditionedPhysicalMassWithoutDeletingIt 유지 원문 검사 body 및 assertion 동일. 5f0adf729846e876c90ddcd5db8123c9005a2541189d7a72ac1736116d411500 5f0adf729846e876c90ddcd5db8123c9005a2541189d7a72ac1736116d411500 "EXPECT_TRUE(normal.Create().HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].code, ""ill-conditioned-nonlinear-inertia-positive-mass"")" "EXPECT_TRUE(normal.Create().HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].code, ""ill-conditioned-nonlinear-inertia-positive-mass"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.ConvectiveForceDoesNotLoseSmallValuesToAcceleration NonlinearMitc4Inertia.ConvectiveForceDoesNotLoseSmallValuesToAcceleration; assertion 5개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.ConvectiveForceDoesNotLoseSmallValuesToAcceleration 유지 원문 검사 body 및 assertion 동일. 25d5baa1b968f822aa4dd035d4e323310708e8e73f2ceaffcf3f657b99b2b86a 25d5baa1b968f822aa4dd035d4e323310708e8e73f2ceaffcf3f657b99b2b86a ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(ordinary.HasValue()) | ASSERT_TRUE(large.HasValue()) | EXPECT_GT(ordinary.Value().convective_force.Norm(), 0.0) | EXPECT_EQ(ordinary.Value().convective_force[i], large.Value().convective_force[i]) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(ordinary.HasValue()) | ASSERT_TRUE(large.HasValue()) | EXPECT_GT(ordinary.Value().convective_force.Norm(), 0.0) | EXPECT_EQ(ordinary.Value().convective_force[i], large.Value().convective_force[i]) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.PartialAndEffectiveTangentsPassTheScaledFixedSweep NonlinearMitc4Inertia.PartialAndEffectiveTangentsPassTheScaledFixedSweep; assertion 5개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.PartialAndEffectiveTangentsPassTheScaledFixedSweep 유지 원문 검사 body 및 assertion 동일. e5946458fbc3006710a0af48c556f989a6be04fde87c4c61c0e4bd18366c8315 e5946458fbc3006710a0af48c556f989a6be04fde87c4c61c0e4bd18366c8315 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(vp.HasValue()) | ASSERT_TRUE(vm.HasValue()) | EXPECT_TRUE(consecutive) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(vp.HasValue()) | ASSERT_TRUE(vm.HasValue()) | EXPECT_TRUE(consecutive) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.MatchesIndependentWarpedNodalMomentsEnergyAndPower NonlinearMitc4Inertia.MatchesIndependentWarpedNodalMomentsEnergyAndPower; assertion 17개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.MatchesIndependentWarpedNodalMomentsEnergyAndPower 유지 원문 검사 body 및 assertion 동일. 259d4f9247683cf706cedd32eb2bf44ce9e33d0ed8119ef7a57f197466e3d8aa 259d4f9247683cf706cedd32eb2bf44ce9e33d0ed8119ef7a57f197466e3d8aa ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_LE(mass_error / MatrixNorm(expected_mass), 1.0e-12) | EXPECT_LE(symmetry_error / MatrixNorm(expected_mass), 1.0e-12) | EXPECT_LE( std::abs(value.Value().kinetic_energy - oracle.energy) / oracle.energy, 1.0e-12) | EXPECT_LE(std::abs(0.5 * state.v.Dot(value.Value().mass.Multiply(state.v)) - oracle.energy) / oracle.energy, 1.0e-12) | EXPECT_LE(std::abs(state.v.Dot(value.Value().force) - oracle.power) / std::abs(oracle.power), 1.0e-10) | EXPECT_LE(Difference(ApplyD(value.Value().force, fixture.Length()), ApplyD(oracle.force, fixture.Length()), 1.0) .Norm() / ApplyD(oracle.force, fixture.Length()).Norm(), 1.0e-12) | EXPECT_LE((value.Value().momentum - oracle.momentum).Norm() / oracle.momentum.Norm(), 1.0e-12) | EXPECT_LE( (value.Value().angular_momentum - oracle.angular_momentum).Norm() / oracle.angular_momentum.Norm(), 1.0e-12) | EXPECT_LE((value.Value().momentum_rate - oracle.momentum_rate).Norm() / oracle.momentum_rate.Norm(), 1.0e-12) | EXPECT_LE( (value.Value().angular_momentum_rate - oracle.angular_momentum_rate) .Norm() / oracle.angular_momentum_rate.Norm(), 1.0e-12) | ASSERT_TRUE(bi.HasValue()) | ASSERT_TRUE(bj.HasValue()) | EXPECT_LE(std::abs(numerator[k] / denominator[k] - oracle.moments[k][i][j]) / scale, 1.0e-12) | ASSERT_TRUE(translation.HasValue()) | EXPECT_NEAR(translation.Value().kinetic_energy / oracle.total_mass, 0.25, 1.0e-12) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_LE(mass_error / MatrixNorm(expected_mass), 1.0e-12) | EXPECT_LE(symmetry_error / MatrixNorm(expected_mass), 1.0e-12) | EXPECT_LE( std::abs(value.Value().kinetic_energy - oracle.energy) / oracle.energy, 1.0e-12) | EXPECT_LE(std::abs(0.5 * state.v.Dot(value.Value().mass.Multiply(state.v)) - oracle.energy) / oracle.energy, 1.0e-12) | EXPECT_LE(std::abs(state.v.Dot(value.Value().force) - oracle.power) / std::abs(oracle.power), 1.0e-10) | EXPECT_LE(Difference(ApplyD(value.Value().force, fixture.Length()), ApplyD(oracle.force, fixture.Length()), 1.0) .Norm() / ApplyD(oracle.force, fixture.Length()).Norm(), 1.0e-12) | EXPECT_LE((value.Value().momentum - oracle.momentum).Norm() / oracle.momentum.Norm(), 1.0e-12) | EXPECT_LE( (value.Value().angular_momentum - oracle.angular_momentum).Norm() / oracle.angular_momentum.Norm(), 1.0e-12) | EXPECT_LE((value.Value().momentum_rate - oracle.momentum_rate).Norm() / oracle.momentum_rate.Norm(), 1.0e-12) | EXPECT_LE( (value.Value().angular_momentum_rate - oracle.angular_momentum_rate) .Norm() / oracle.angular_momentum_rate.Norm(), 1.0e-12) | ASSERT_TRUE(bi.HasValue()) | ASSERT_TRUE(bj.HasValue()) | EXPECT_LE(std::abs(numerator[k] / denominator[k] - oracle.moments[k][i][j]) / scale, 1.0e-12) | ASSERT_TRUE(translation.HasValue()) | EXPECT_NEAR(translation.Value().kinetic_energy / oracle.total_mass, 0.25, 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.InitialMassMatchesEigenLumpingAndFiniteEnergyObeysJensen NonlinearMitc4Inertia.InitialMassMatchesEigenLumpingAndFiniteEnergyObeysJensen; assertion 8개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.InitialMassMatchesEigenLumpingAndFiniteEnergyObeysJensen 유지 원문 검사 body 및 assertion 동일. c9725cc3d16533a26647720f977a41ee8e1edcbfddf43560b3abf4a638464969 c9725cc3d16533a26647720f977a41ee8e1edcbfddf43560b3abf4a638464969 ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(eigen.HasValue()) | ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(initial.HasValue()) | EXPECT_NEAR(initial.Value().mass(i, j), eigen.Value().lumped_global24(i, j), 1.0e-12) | EXPECT_EQ(initial.Value().mass(i, j), 0.0) | EXPECT_GT(lumped.energy - consistent.energy, 0.0) | EXPECT_NEAR(lumped.total_mass, consistent.total_mass, 1.0e-12) ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(eigen.HasValue()) | ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(initial.HasValue()) | EXPECT_NEAR(initial.Value().mass(i, j), eigen.Value().lumped_global24(i, j), 1.0e-12) | EXPECT_EQ(initial.Value().mass(i, j), 0.0) | EXPECT_GT(lumped.energy - consistent.energy, 0.0) | EXPECT_NEAR(lumped.total_mass, consistent.total_mass, 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.ThirdDerivativesMatchAllPermutationsAndInteriorSweep DynamicRotation.ThirdDerivativesMatchAllPermutationsAndInteriorSweep; assertion 6개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.ThirdDerivativesMatchAllPermutationsAndInteriorSweep 유지 원문 검사 body 및 assertion 동일. fed5b777e0226e78a7a852200777d80a3d9736b13300e6670b9d244bea2fe464 fed5b777e0226e78a7a852200777d80a3d9736b13300e6670b9d244bea2fe464 ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_LE((analytic - oracle).Norm(), 1.0e-12) | EXPECT_LE((analytic - Third(value.Value(), directions[t], directions[p], directions[r])) .Norm(), 1.0e-12) | EXPECT_TRUE(consecutive[r][t]) ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_LE((analytic - oracle).Norm(), 1.0e-12) | EXPECT_LE((analytic - Third(value.Value(), directions[t], directions[p], directions[r])) .Norm(), 1.0e-12) | EXPECT_TRUE(consecutive[r][t]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.NormalizedNullDerivativesIncludeNormalizationCurvature DynamicRotation.NormalizedNullDerivativesIncludeNormalizationCurvature; assertion 9개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.NormalizedNullDerivativesIncludeNormalizationCurvature 유지 원문 검사 body 및 assertion 동일. b1519383145d86730f51475376a73c825a7eb748c5e69bbe9a502bc32069efcd b1519383145d86730f51475376a73c825a7eb748c5e69bbe9a502bc32069efcd ASSERT_TRUE(value.HasValue()) | EXPECT_NEAR(value.Value().drill_null.Norm(), 1.0, 1.0e-12) | EXPECT_NEAR(value.Value().drill_null.Dot(first), 0.0, 1.0e-12) | EXPECT_NEAR( value.Value().drill_null.Dot(value.Value().null_directional_second), -first.Dot(first), 1.0e-12) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_TRUE(consecutive) | EXPECT_FALSE(fesa::EvaluateDynamicRotation({}, {0, 0, 2}, {}, {}).HasValue()) | EXPECT_FALSE( fesa::EvaluateDynamicRotation( {std::numeric_limits::quiet_NaN(), 0, 0}, initial, {}, {}) .HasValue()) ASSERT_TRUE(value.HasValue()) | EXPECT_NEAR(value.Value().drill_null.Norm(), 1.0, 1.0e-12) | EXPECT_NEAR(value.Value().drill_null.Dot(first), 0.0, 1.0e-12) | EXPECT_NEAR( value.Value().drill_null.Dot(value.Value().null_directional_second), -first.Dot(first), 1.0e-12) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_TRUE(consecutive) | EXPECT_FALSE(fesa::EvaluateDynamicRotation({}, {0, 0, 2}, {}, {}).HasValue()) | EXPECT_FALSE( fesa::EvaluateDynamicRotation( {std::numeric_limits::quiet_NaN(), 0, 0}, initial, {}, {}) .HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.UnitAndGlobalFrameChangesPreservePhysicalMetrics NonlinearMitc4Inertia.UnitAndGlobalFrameChangesPreservePhysicalMetrics; assertion 14개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.UnitAndGlobalFrameChangesPreservePhysicalMetrics 유지 원문 검사 body 및 assertion 동일. d1d1d2152f232cee2453d1b80ac93c5759be9c4a35df8128bf14ddec28c2b2c8 d1d1d2152f232cee2453d1b80ac93c5759be9c4a35df8128bf14ddec28c2b2c8 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(converted_inertia.HasValue()) | ASSERT_TRUE(uv.HasValue()) | EXPECT_LE(std::abs(uv.Value().kinetic_energy / energy_scale - value.Value().kinetic_energy) / value.Value().kinetic_energy, 1.0e-12) | EXPECT_LE(error / MatrixNorm(original_scaled), 1.0e-12) | EXPECT_LE(Difference(original_force, converted_force, 1.0).Norm() / original_force.Norm(), 1.0e-10) | ASSERT_TRUE(frame_inertia.HasValue()) | ASSERT_TRUE(fv.HasValue()) | EXPECT_LE(std::abs(fv.Value().kinetic_energy - value.Value().kinetic_energy) / value.Value().kinetic_energy, 1.0e-12) | EXPECT_LE((fv.Value().momentum - rotate(value.Value().momentum)).Norm() / value.Value().momentum.Norm(), 1.0e-12) | EXPECT_LE( (fv.Value().angular_momentum - rotate(value.Value().angular_momentum)) .Norm() / value.Value().angular_momentum.Norm(), 1.0e-12) | EXPECT_LE((actual - expected).Norm() / expected.Norm(), 1.0e-10) | EXPECT_LE(covariance_error / MatrixNorm(value.Value().mass), 1.0e-12) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(converted_inertia.HasValue()) | ASSERT_TRUE(uv.HasValue()) | EXPECT_LE(std::abs(uv.Value().kinetic_energy / energy_scale - value.Value().kinetic_energy) / value.Value().kinetic_energy, 1.0e-12) | EXPECT_LE(error / MatrixNorm(original_scaled), 1.0e-12) | EXPECT_LE(Difference(original_force, converted_force, 1.0).Norm() / original_force.Norm(), 1.0e-10) | ASSERT_TRUE(frame_inertia.HasValue()) | ASSERT_TRUE(fv.HasValue()) | EXPECT_LE(std::abs(fv.Value().kinetic_energy - value.Value().kinetic_energy) / value.Value().kinetic_energy, 1.0e-12) | EXPECT_LE((fv.Value().momentum - rotate(value.Value().momentum)).Norm() / value.Value().momentum.Norm(), 1.0e-12) | EXPECT_LE( (fv.Value().angular_momentum - rotate(value.Value().angular_momentum)) .Norm() / value.Value().angular_momentum.Norm(), 1.0e-12) | EXPECT_LE((actual - expected).Norm() / expected.Norm(), 1.0e-10) | EXPECT_LE(covariance_error / MatrixNorm(value.Value().mass), 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.MatchesEightyDigitIndependentBlockExponentialAnchors DynamicRotation.MatchesEightyDigitIndependentBlockExponentialAnchors; assertion 4개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.MatchesEightyDigitIndependentBlockExponentialAnchors 유지 원문 검사 body 및 assertion 동일. afd5da8bcdde50b87721fb93bff8d47f1886f6b6812e83259d1208ec2b2dfb06 afd5da8bcdde50b87721fb93bff8d47f1886f6b6812e83259d1208ec2b2dfb06 ASSERT_TRUE(value.HasValue()) | EXPECT_LE((Third(value.Value(), e1, e1, e1) - expected[i][0]).Norm(), 1.0e-12) | EXPECT_LE((Third(value.Value(), e1, e2, e3) - expected[i][1]).Norm(), 1.0e-12) | EXPECT_LE( (Third(value.Value(), mixed, mixed, mixed) - expected[i][2]).Norm(), 1.0e-12) ASSERT_TRUE(value.HasValue()) | EXPECT_LE((Third(value.Value(), e1, e1, e1) - expected[i][0]).Norm(), 1.0e-12) | EXPECT_LE((Third(value.Value(), e1, e2, e3) - expected[i][1]).Norm(), 1.0e-12) | EXPECT_LE( (Third(value.Value(), mixed, mixed, mixed) - expected[i][2]).Norm(), 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.IndependentOracleDetectsEachRequiredOmission NonlinearMitc4Inertia.IndependentOracleDetectsEachRequiredOmission; assertion 10개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.IndependentOracleDetectsEachRequiredOmission 유지 원문 검사 body 및 assertion 동일. cd75fd015eb68d73365632968c883ff3e0361d16f81d4c93e4e1f28bb39fba01 cd75fd015eb68d73365632968c883ff3e0361d16f81d4c93e4e1f28bb39fba01 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_GT(Difference(mutant, fd, 1.0).Norm() / (mutant.Norm() + fd.Norm()), 1.0e-6) | EXPECT_GT(Difference(ApplyD(no_convective, fixture.Length()), ApplyD(oracle.force, fixture.Length()), 1.0) .Norm() / ApplyD(oracle.force, fixture.Length()).Norm(), 1.0e-6) | ASSERT_TRUE(vplus.HasValue()) | ASSERT_TRUE(vminus.HasValue()) | EXPECT_GT(vfd.Norm(), 0.0) | EXPECT_GT(Difference(missing_dv, vfd, 1.0).Norm() / vfd.Norm(), 1.0e-6) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_GT(Difference(mutant, fd, 1.0).Norm() / (mutant.Norm() + fd.Norm()), 1.0e-6) | EXPECT_GT(Difference(ApplyD(no_convective, fixture.Length()), ApplyD(oracle.force, fixture.Length()), 1.0) .Norm() / ApplyD(oracle.force, fixture.Length()).Norm(), 1.0e-6) | ASSERT_TRUE(vplus.HasValue()) | ASSERT_TRUE(vminus.HasValue()) | EXPECT_GT(vfd.Norm(), 0.0) | EXPECT_GT(Difference(missing_dv, vfd, 1.0).Norm() / vfd.Norm(), 1.0e-6) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@1-81 helper/oracle/fixture/include/static assertion 구간: Node, Nodes, Pointers, Frames, Inertia, AddRotation, Difference tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. d69ff9a4f48af8ab96bdc107989f8cb690b3bd03e7302f69630eb2aaf558871a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@177-180 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. 494a3ced593041a4d3ea62a53340f75d552373b567d3ec7ca404700ea0c42534 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@251-443 helper/oracle/fixture/include/static assertion 구간: Multiply, BlockExponentialDerivative, if, Second, Third, MatrixNorm, Fixture, Length, Create, Warped, WarpedNonuniformDirectors, RotateFrame, FlatRotatedLargeOffset, State, FiniteState, ApplyD tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. 222b0316695fd6559144c2fdfdaa9c8cac92e01ef32ad6685b7aff0384ebcc78 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@481-492 helper/oracle/fixture/include/static assertion 구간: ScaledMatrix tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. b069eba225770ec661e53431edf8f9c1df71af521445644b835793d185124063 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@655-779 helper/oracle/fixture/include/static assertion 구간: Integral, IntegrateFivePoints tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. af98d35bc14d69e1d57beb2df3c82bd29703cc630af22865fd95463987225795 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@1305-1306 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 16개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8b41aba213d2ba4ae2a24bdff623bf663253b89997cc5f4a99c70953af1cc092 a2053f0d24af51ecdfe345ef14267b8a57a2530e994c46da68a5bb17f7250341 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.EvaluatesResidualTangentAndRecoveryAtOneTrial NonlinearMitc4Residual.EvaluatesResidualTangentAndRecoveryAtOneTrial; assertion 10개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.EvaluatesResidualTangentAndRecoveryAtOneTrial 유지 원문 검사 body 및 assertion 동일. 2bf5788132debdfcd7990b78d66be3ec5eb35b7039badcbff3737f49e5e0502a 2bf5788132debdfcd7990b78d66be3ec5eb35b7039badcbff3737f49e5e0502a ASSERT_TRUE(recovery.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().internal_residual.Size(), 24U) | EXPECT_EQ(result.Value().internal_tangent.Rows(), 24U) | EXPECT_EQ(result.Value().internal_tangent.Columns(), 24U) | EXPECT_DOUBLE_EQ(result.Value().physical_strain_energy, result.Value().recovery.physical_strain_energy) | EXPECT_DOUBLE_EQ(result.Value().recovery.physical_strain_energy, recovery.Value().physical_strain_energy) | EXPECT_DOUBLE_EQ(result.Value().internal_residual[index], result.Value().internal_force[index]) | EXPECT_EQ(result.Value().recovery.gauss_points[point].generalized_strain, recovery.Value().gauss_points[point].generalized_strain) | EXPECT_EQ(result.Value().recovery.gauss_points[point].section_resultant, recovery.Value().gauss_points[point].section_resultant) ASSERT_TRUE(recovery.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().internal_residual.Size(), 24U) | EXPECT_EQ(result.Value().internal_tangent.Rows(), 24U) | EXPECT_EQ(result.Value().internal_tangent.Columns(), 24U) | EXPECT_DOUBLE_EQ(result.Value().physical_strain_energy, result.Value().recovery.physical_strain_energy) | EXPECT_DOUBLE_EQ(result.Value().recovery.physical_strain_energy, recovery.Value().physical_strain_energy) | EXPECT_DOUBLE_EQ(result.Value().internal_residual[index], result.Value().internal_force[index]) | EXPECT_EQ(result.Value().recovery.gauss_points[point].generalized_strain, recovery.Value().gauss_points[point].generalized_strain) | EXPECT_EQ(result.Value().recovery.gauss_points[point].section_resultant, recovery.Value().gauss_points[point].section_resultant) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Tangent.MatchesTheApprovedDirectionalSchedule NonlinearMitc4Tangent.MatchesTheApprovedDirectionalSchedule; assertion 9개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Tangent.MatchesTheApprovedDirectionalSchedule 유지 원문 검사 body 및 assertion 동일. 852d3d6bf5b1eb3a07504509b711d63cf08be10b7b4309a5668469b327b54991 852d3d6bf5b1eb3a07504509b711d63cf08be10b7b4309a5668469b327b54991 ASSERT_TRUE(equilibrium.HasValue()) | ASSERT_GT(ChannelNorm(analytical, true), 0.0) | ASSERT_GT(ChannelNorm(analytical, false), 0.0) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_GE(force_order_count, 2U) | EXPECT_GE(moment_order_count, 2U) | EXPECT_LE(force_errors[3U], 1.0e-6) | EXPECT_LE(moment_errors[3U], 1.0e-6) ASSERT_TRUE(equilibrium.HasValue()) | ASSERT_GT(ChannelNorm(analytical, true), 0.0) | ASSERT_GT(ChannelNorm(analytical, false), 0.0) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_GE(force_order_count, 2U) | EXPECT_GE(moment_order_count, 2U) | EXPECT_LE(force_errors[3U], 1.0e-6) | EXPECT_LE(moment_errors[3U], 1.0e-6) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Tangent.PreservesRigidTranslationNullspaceAndSymmetry NonlinearMitc4Tangent.PreservesRigidTranslationNullspaceAndSymmetry; assertion 4개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Tangent.PreservesRigidTranslationNullspaceAndSymmetry 유지 원문 검사 body 및 assertion 동일. 0f79a384735c9e1976d518ca10d5c463a3d6fd669c1c995425c37c2c94e9f080 0f79a384735c9e1976d518ca10d5c463a3d6fd669c1c995425c37c2c94e9f080 ASSERT_TRUE(equilibrium.HasValue()) | EXPECT_LE(null_action.Norm(), 1.0e-10) | ASSERT_GT(FrobeniusNorm(scaled_tangent), 0.0) | EXPECT_LE(FrobeniusNorm(antisymmetric) / FrobeniusNorm(scaled_tangent), 1.0e-12) ASSERT_TRUE(equilibrium.HasValue()) | EXPECT_LE(null_action.Norm(), 1.0e-10) | ASSERT_GT(FrobeniusNorm(scaled_tangent), 0.0) | EXPECT_LE(FrobeniusNorm(antisymmetric) / FrobeniusNorm(scaled_tangent), 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.DoesNotAcceptExternalLoadShares NonlinearMitc4Residual.DoesNotAcceptExternalLoadShares; assertion 3개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.DoesNotAcceptExternalLoadShares 유지 원문 검사 body 및 assertion 동일. 826f6bda479841d9de0424ce957e015e087b41afa0149ca94cfe07d3699f1107 826f6bda479841d9de0424ce957e015e087b41afa0149ca94cfe07d3699f1107 ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().internal_residual[index], second.Value().internal_residual[index]) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().internal_residual[index], second.Value().internal_residual[index]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Objectivity.FiniteRigidMotionHasZeroInternalForce NonlinearMitc4Objectivity.FiniteRigidMotionHasZeroInternalForce; assertion 3개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Objectivity.FiniteRigidMotionHasZeroInternalForce 유지 원문 검사 body 및 assertion 동일. 2495a42787caa073516e20ed9797534fb25f3a8a4789d7c71231800206e8ce86 2495a42787caa073516e20ed9797534fb25f3a8a4789d7c71231800206e8ce86 ASSERT_TRUE(result.HasValue()) | EXPECT_LE(result.Value().internal_residual.Norm(), 1.0e-10) | EXPECT_LE(result.Value().physical_strain_energy, 1.0e-12) ASSERT_TRUE(result.HasValue()) | EXPECT_LE(result.Value().internal_residual.Norm(), 1.0e-10) | EXPECT_LE(result.Value().physical_strain_energy, 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Patch.RetainsPhysicalRecoveryIdentities NonlinearMitc4Patch.RetainsPhysicalRecoveryIdentities; assertion 1개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Patch.RetainsPhysicalRecoveryIdentities 유지 원문 검사 body 및 assertion 동일. f1b5a3a3696e0af3f261839b80c1164a0c28944c41ad77b4256a31b55f5906b3 f1b5a3a3696e0af3f261839b80c1164a0c28944c41ad77b4256a31b55f5906b3 ASSERT_TRUE(result.HasValue()) ASSERT_TRUE(result.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.RejectsNonfiniteTrialData NonlinearMitc4Residual.RejectsNonfiniteTrialData; assertion 3개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.RejectsNonfiniteTrialData 유지 원문 검사 body 및 assertion 동일. 3e2e0c59444ee3b19641d2b76ca17ee825160e1821798a88bb12d225f0823f29 3e2e0c59444ee3b19641d2b76ca17ee825160e1821798a88bb12d225f0823f29 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-trial"") | EXPECT_FALSE(overflow_result.HasValue())" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-trial"") | EXPECT_FALSE(overflow_result.HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ZeroTrialOnTranslatedDecimalMeshHasNoArtificialForce NonlinearMitc4Residual.ZeroTrialOnTranslatedDecimalMeshHasNoArtificialForce; assertion 3개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ZeroTrialOnTranslatedDecimalMeshHasNoArtificialForce 유지 원문 검사 body 및 assertion 동일. dbba37dc6b52df765552dc588e502f3d8435f43ff28832f9702bd655c905951e dbba37dc6b52df765552dc588e502f3d8435f43ff28832f9702bd655c905951e ASSERT_TRUE(evaluated.HasValue()) | EXPECT_DOUBLE_EQ(evaluated.Value().internal_force[i], 0.0) | EXPECT_DOUBLE_EQ(evaluated.Value().drilling_energy, 0.0) ASSERT_TRUE(evaluated.HasValue()) | EXPECT_DOUBLE_EQ(evaluated.Value().internal_force[i], 0.0) | EXPECT_DOUBLE_EQ(evaluated.Value().drilling_energy, 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExactDirectionalThirdGradientMatchesTangentSweep NonlinearMitc4Residual.ExactDirectionalThirdGradientMatchesTangentSweep; assertion 0개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExactDirectionalThirdGradientMatchesTangentSweep 유지 원문 검사 body 및 assertion 동일. 6d549b636640f56a6c955107a00503e9d58a2649a56aff87cdb9c2e688678c5c 6d549b636640f56a6c955107a00503e9d58a2649a56aff87cdb9c2e688678c5c 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.SmallRotationPhysicalForceRetainsDrillingNullIdentity NonlinearMitc4Residual.SmallRotationPhysicalForceRetainsDrillingNullIdentity; assertion 7개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.SmallRotationPhysicalForceRetainsDrillingNullIdentity 유지 원문 검사 body 및 assertion 동일. 614e3f70648e94b8a868a6e234984c0fc0c47cb9e02c17b202a3955faea48feb 614e3f70648e94b8a868a6e234984c0fc0c47cb9e02c17b202a3955faea48feb ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | ASSERT_GT(physical_scale, 0.0) | ASSERT_GT(total_scale, 0.0) | EXPECT_LE(std::abs(physical) / physical_scale, 1.0e-10) | EXPECT_LE(std::abs(projected - response.Value().drilling_constraint[node]) / total_scale, 1.0e-10) ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | ASSERT_GT(physical_scale, 0.0) | ASSERT_GT(total_scale, 0.0) | EXPECT_LE(std::abs(physical) / physical_scale, 1.0e-10) | EXPECT_LE(std::abs(projected - response.Value().drilling_constraint[node]) / total_scale, 1.0e-10) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ThirdGradientIsStableAcrossSmallAngleBranches NonlinearMitc4Residual.ThirdGradientIsStableAcrossSmallAngleBranches; assertion 0개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ThirdGradientIsStableAcrossSmallAngleBranches 유지 원문 검사 body 및 assertion 동일. af1fb78eb8d4496f5767606062cf3f28bcf27e5aed115ee79e830293a3479d40 af1fb78eb8d4496f5767606062cf3f28bcf27e5aed115ee79e830293a3479d40 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExactDrillingConstraintHasIndependentForceGradientAndHessian NonlinearMitc4Residual.ExactDrillingConstraintHasIndependentForceGradientAndHessian; assertion 7개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExactDrillingConstraintHasIndependentForceGradientAndHessian 유지 원문 검사 body 및 assertion 동일. a5e30f5af2df2749898ee64cb0c470bdfcf03e6750df0325a9f2a59855b486f6 a5e30f5af2df2749898ee64cb0c470bdfcf03e6750df0325a9f2a59855b486f6 ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | EXPECT_NEAR(exact.Value().drilling_constraint[node], psi, 1e-11) | EXPECT_NEAR(exact.Value().drilling_constraint_gradient(node, i), gradient, 1e-10) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_TRUE(passed) ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | EXPECT_NEAR(exact.Value().drilling_constraint[node], psi, 1e-11) | EXPECT_NEAR(exact.Value().drilling_constraint_gradient(node, i), gradient, 1e-10) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_TRUE(passed) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExposesExactDrillingConstraintThirdDirectionalGradient NonlinearMitc4Residual.ExposesExactDrillingConstraintThirdDirectionalGradient; assertion 5개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExposesExactDrillingConstraintThirdDirectionalGradient 유지 원문 검사 body 및 assertion 동일. 4a38b5b4ff71243f88af5dc3b4c43d5c10f8ae54ed6456715399299ab8653b88 4a38b5b4ff71243f88af5dc3b4c43d5c10f8ae54ed6456715399299ab8653b88 ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | ASSERT_EQ(exact.Value().drilling_constraint_third_directional_gradient[node] .Size(), 24U) | EXPECT_NEAR( exact.Value().drilling_constraint_third_directional_gradient[node] [row], finite_difference, 2.0e-5) ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | ASSERT_EQ(exact.Value().drilling_constraint_third_directional_gradient[node] .Size(), 24U) | EXPECT_NEAR( exact.Value().drilling_constraint_third_directional_gradient[node] [row], finite_difference, 2.0e-5) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExternalDrillingConstraintIncludesForceTimeAndCurvatureTerms NonlinearMitc4Residual.ExternalDrillingConstraintIncludesForceTimeAndCurvatureTerms; assertion 10개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExternalDrillingConstraintIncludesForceTimeAndCurvatureTerms 유지 원문 검사 body 및 assertion 동일. ae7d5f1cfc46795fbb1f8992fddd0ff8a72d6148c99d90735a68e0dd5da0bba1 ae7d5f1cfc46795fbb1f8992fddd0ff8a72d6148c99d90735a68e0dd5da0bba1 ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_NEAR(exact.Value().directional_first, (plus.Value().value - minus.Value().value) / (2.0 * h), 2.0e-8) | EXPECT_NEAR(exact.Value().directional_second, (plus.Value().value - 2.0 * exact.Value().value + minus.Value().value) / (h * h), 3.0e-7) | EXPECT_NEAR(exact.Value().gradient_directional_first[row], (plus.Value().gradient[row] - minus.Value().gradient[row]) / (2.0 * h), 3.0e-8) | EXPECT_NEAR( exact.Value().gradient_directional_second[row], (plus.Value().gradient[row] - 2.0 * exact.Value().gradient[row] + minus.Value().gradient[row]) / (h * h), 4.0e-7) | ASSERT_TRUE(positive.HasValue()) | ASSERT_TRUE(negative.HasValue()) | EXPECT_NEAR(exact.Value().hessian(row, column), (positive.Value().gradient[row] - negative.Value().gradient[row]) / (2.0 * h), 2.0e-7) ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_NEAR(exact.Value().directional_first, (plus.Value().value - minus.Value().value) / (2.0 * h), 2.0e-8) | EXPECT_NEAR(exact.Value().directional_second, (plus.Value().value - 2.0 * exact.Value().value + minus.Value().value) / (h * h), 3.0e-7) | EXPECT_NEAR(exact.Value().gradient_directional_first[row], (plus.Value().gradient[row] - minus.Value().gradient[row]) / (2.0 * h), 3.0e-8) | EXPECT_NEAR( exact.Value().gradient_directional_second[row], (plus.Value().gradient[row] - 2.0 * exact.Value().gradient[row] + minus.Value().gradient[row]) / (h * h), 4.0e-7) | ASSERT_TRUE(positive.HasValue()) | ASSERT_TRUE(negative.HasValue()) | EXPECT_NEAR(exact.Value().hessian(row, column), (positive.Value().gradient[row] - negative.Value().gradient[row]) / (2.0 * h), 2.0e-7) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExternalDrillingConstraintRejectsInvalidRotationAndHasZeroForceValue NonlinearMitc4Residual.ExternalDrillingConstraintRejectsInvalidRotationAndHasZeroForceValue; assertion 9개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExternalDrillingConstraintRejectsInvalidRotationAndHasZeroForceValue 유지 원문 검사 body 및 assertion 동일. c6774c3ef132d2277a95b92d7df0c1f0a2c9cae68cd1562a36ec07921aefc433 c6774c3ef132d2277a95b92d7df0c1f0a2c9cae68cd1562a36ec07921aefc433 "ASSERT_TRUE(zero.HasValue()) | EXPECT_DOUBLE_EQ(zero.Value().value, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().directional_first, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().directional_second, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient[row], 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient_directional_first[row], 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient_directional_second[row], 0.0) | EXPECT_FALSE(invalid.HasValue()) | EXPECT_EQ(invalid.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-rotation"")" "ASSERT_TRUE(zero.HasValue()) | EXPECT_DOUBLE_EQ(zero.Value().value, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().directional_first, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().directional_second, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient[row], 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient_directional_first[row], 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient_directional_second[row], 0.0) | EXPECT_FALSE(invalid.HasValue()) | EXPECT_EQ(invalid.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-rotation"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.TinyRotationPreservesPhysicalForceAndRecoveryEnergy NonlinearMitc4Residual.TinyRotationPreservesPhysicalForceAndRecoveryEnergy; assertion 11개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.TinyRotationPreservesPhysicalForceAndRecoveryEnergy 유지 원문 검사 body 및 assertion 동일. d165f9780c2e6af21e2fd97f7ce8451f18ab885a26d92761617a13cae977696e d165f9780c2e6af21e2fd97f7ce8451f18ab885a26d92761617a13cae977696e ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(zero.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_DOUBLE_EQ(zero.Value().physical_strain_energy, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().physical_force[row], 0.0) | ASSERT_GT(scale, 0.0) | ASSERT_GT(quadratic_energy, 0.0) | EXPECT_LE(error / scale, 1e-12) | EXPECT_GT(actual.Value().physical_strain_energy, 0.0) | EXPECT_LE(std::abs(actual.Value().physical_strain_energy - quadratic_energy) / quadratic_energy, 1e-12) | EXPECT_LE(std::abs(actual.Value().physical_strain_energy - shear_energy) / shear_energy, 1e-12) ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(zero.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_DOUBLE_EQ(zero.Value().physical_strain_energy, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().physical_force[row], 0.0) | ASSERT_GT(scale, 0.0) | ASSERT_GT(quadratic_energy, 0.0) | EXPECT_LE(error / scale, 1e-12) | EXPECT_GT(actual.Value().physical_strain_energy, 0.0) | EXPECT_LE(std::abs(actual.Value().physical_strain_energy - quadratic_energy) / quadratic_energy, 1e-12) | EXPECT_LE(std::abs(actual.Value().physical_strain_energy - shear_energy) / shear_energy, 1e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@1-197 helper/oracle/fixture/include/static assertion 구간: Node, Nodes, NodePointers, Frames, Shell, if, Trial, AddScaled, Direction, ToVector, ReferenceLength, WorkConjugateDirection, WorkConjugate, ChannelNorm, FrobeniusNorm, WorkConjugateTangent, ExpectRelative tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 90ea99ff9b85b927825b8ae83597911a8c75a64fb655d2f0407528119a4fe7aa 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@226-227 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a5600c1fcbcc2b375d90f9a0b51fcb733f74bb959c86447c819b9a8f8c6bced8 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@290-291 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 138ed0391b2a8c8081bcdd75fe8ff2c89800a73301b761308a5607407eac6b85 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@321-322 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 80a26bf8dd830eafbfa37a987c6ca13ed7f75849c83da7f86476be70612b7b5a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@336-337 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 808b628cf835f37ca1165035141cf55c77f1b82ba64e5e88837d89c12aa5edc4 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@362-363 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b43457f2efa97906a6ef783cd74e022646ee67c2ef526f6a96855ce0af4d2471 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@401-402 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f2cfb81414bf1e8f81009769c5476d4bfb83a9e564ab1c3851411dfc077ad757 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@420-480 helper/oracle/fixture/include/static assertion 구간: CheckThirdSweep, if tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d3556f4001a86aab0161a4dc5f94d4903c713cd3a2e71db2c68fc845b7929abd 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@837-838 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0436d99db81007fd4713cbcfd2850b351089fc3c05ab34e291a90e1e7621d07d 0436d99db81007fd4713cbcfd2850b351089fc3c05ab34e291a90e1e7621d07d 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.UndeformedStateHasZeroPhysicalRecovery NonlinearMitc4Shell.UndeformedStateHasZeroPhysicalRecovery; assertion 1개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.UndeformedStateHasZeroPhysicalRecovery 유지 원문 검사 body 및 assertion 동일. f3b34af9d811fbfa8302ccb17c75561b3d2674fee61705e5476681bfe4fd4489 f3b34af9d811fbfa8302ccb17c75561b3d2674fee61705e5476681bfe4fd4489 ASSERT_TRUE(recovery.HasValue()) ASSERT_TRUE(recovery.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Recovery.BendingResultantsMatchStressThicknessMoments NonlinearMitc4Recovery.BendingResultantsMatchStressThicknessMoments; assertion 4개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Recovery.BendingResultantsMatchStressThicknessMoments 유지 원문 검사 body 및 assertion 동일. 34fd7f143c5939eb6db783e82cb725a6ffab1e0bd5e788a2215805ba0232fdcb 34fd7f143c5939eb6db783e82cb725a6ffab1e0bd5e788a2215805ba0232fdcb ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(recovery.HasValue()) | ASSERT_GT(std::abs(moment), 0.0) | EXPECT_NEAR(point.section_resultant[3U + component], moment, 1.0e-12 * std::abs(moment)) ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(recovery.HasValue()) | ASSERT_GT(std::abs(moment), 0.0) | EXPECT_NEAR(point.section_resultant[3U + component], moment, 1.0e-12 * std::abs(moment)) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.RejectsInvalidNodeAndInitialFrameContracts NonlinearMitc4Shell.RejectsInvalidNodeAndInitialFrameContracts; assertion 6개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.RejectsInvalidNodeAndInitialFrameContracts 유지 원문 검사 body 및 assertion 동일. 09059c92e764720f2295f7dd9557530496e4f458cb2eae0317a64daccaae6ac3 09059c92e764720f2295f7dd9557530496e4f458cb2eae0317a64daccaae6ac3 "ASSERT_FALSE(null_node.HasValue()) | EXPECT_EQ(null_node.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-geometry"") | ASSERT_FALSE(duplicate_frame.HasValue()) | EXPECT_EQ(duplicate_frame.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-frame"") | ASSERT_FALSE(invalid_frame.HasValue()) | EXPECT_EQ(invalid_frame.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-frame"")" "ASSERT_FALSE(null_node.HasValue()) | EXPECT_EQ(null_node.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-geometry"") | ASSERT_FALSE(duplicate_frame.HasValue()) | EXPECT_EQ(duplicate_frame.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-frame"") | ASSERT_FALSE(invalid_frame.HasValue()) | EXPECT_EQ(invalid_frame.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-frame"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.UsesFixedInitialReferenceGeometry NonlinearMitc4Shell.UsesFixedInitialReferenceGeometry; assertion 1개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.UsesFixedInitialReferenceGeometry 유지 원문 검사 body 및 assertion 동일. 54a10626cf3848a02f009f15114e4ee270eddc556033d856cbde1a6232e2dd50 54a10626cf3848a02f009f15114e4ee270eddc556033d856cbde1a6232e2dd50 ASSERT_TRUE(recovery.HasValue()) ASSERT_TRUE(recovery.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.PreservesUnnormalizedInterpolatedDirector NonlinearMitc4Shell.PreservesUnnormalizedInterpolatedDirector; assertion 3개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.PreservesUnnormalizedInterpolatedDirector 유지 원문 검사 body 및 assertion 동일. acae08ee38b9b527574ad3d03d4dc5ded4224d8d4c298c4166d587dfe2d2f1c5 acae08ee38b9b527574ad3d03d4dc5ded4224d8d4c298c4166d587dfe2d2f1c5 ASSERT_TRUE(recovery.HasValue()) | EXPECT_GT(recovery.Value().physical_strain_energy, 0.0) | EXPECT_NEAR(recovery.Value().gauss_points[0U].generalized_strain[0U], expected_membrane, 1.0e-12) ASSERT_TRUE(recovery.HasValue()) | EXPECT_GT(recovery.Value().physical_strain_energy, 0.0) | EXPECT_NEAR(recovery.Value().gauss_points[0U].generalized_strain[0U], expected_membrane, 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.RejectsOpposedOrDegenerateCurrentDirectors NonlinearMitc4Shell.RejectsOpposedOrDegenerateCurrentDirectors; assertion 2개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.RejectsOpposedOrDegenerateCurrentDirectors 유지 원문 검사 body 및 assertion 동일. 022372a03ed1384ea9018c527e60a8bb2e92a34abcabf2a3114b60516a9b39bc 022372a03ed1384ea9018c527e60a8bb2e92a34abcabf2a3114b60516a9b39bc "ASSERT_FALSE(recovery.HasValue()) | EXPECT_EQ(recovery.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-director"")" "ASSERT_FALSE(recovery.HasValue()) | EXPECT_EQ(recovery.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-director"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.MatchesLinearMitc4RecoveryInSmallRotationLimit NonlinearMitc4Shell.MatchesLinearMitc4RecoveryInSmallRotationLimit; assertion 4개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.MatchesLinearMitc4RecoveryInSmallRotationLimit 유지 원문 검사 body 및 assertion 동일. fd4b13f2fcc4938b50ae86d5f55795e3a40d899b81407fca14f78e5a9d6becd0 fd4b13f2fcc4938b50ae86d5f55795e3a40d899b81407fca14f78e5a9d6becd0 ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear_recovery.HasValue()) | ASSERT_TRUE(linear_recovery.HasValue()) | EXPECT_NEAR(nonlinear_recovery.Value().gauss_points[point] .generalized_strain[component], linear_recovery.Value().points[point] .generalized_strain[component], 1.0e-11) ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear_recovery.HasValue()) | ASSERT_TRUE(linear_recovery.HasValue()) | EXPECT_NEAR(nonlinear_recovery.Value().gauss_points[point] .generalized_strain[component], linear_recovery.Value().points[point] .generalized_strain[component], 1.0e-11) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.FiniteRigidMotionIsObjective NonlinearMitc4Shell.FiniteRigidMotionIsObjective; assertion 4개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.FiniteRigidMotionIsObjective 유지 원문 검사 body 및 assertion 동일. d31c4760ff39f940a70cb95e45b595095d334feafcc4f498f930764011944a71 d31c4760ff39f940a70cb95e45b595095d334feafcc4f498f930764011944a71 ASSERT_TRUE(recovery.HasValue()) | EXPECT_NEAR(value, 0.0, 1.0e-12) | EXPECT_NEAR(value, 0.0, 1.0e-12) | EXPECT_NEAR(recovery.Value().physical_strain_energy, 0.0, 1.0e-12) ASSERT_TRUE(recovery.HasValue()) | EXPECT_NEAR(value, 0.0, 1.0e-12) | EXPECT_NEAR(value, 0.0, 1.0e-12) | EXPECT_NEAR(recovery.Value().physical_strain_energy, 0.0, 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Recovery.EmitsOnlyFixedPhysicalGaussAndStressRows NonlinearMitc4Recovery.EmitsOnlyFixedPhysicalGaussAndStressRows; assertion 7개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Recovery.EmitsOnlyFixedPhysicalGaussAndStressRows 유지 원문 검사 body 및 assertion 동일. 0008b0829c8e00bd25ac54d72bd223db1acd69f836b6804b78b3557549fac911 0008b0829c8e00bd25ac54d72bd223db1acd69f836b6804b78b3557549fac911 ASSERT_TRUE(recovery.HasValue()) | EXPECT_EQ(row.location, locations[point]) | EXPECT_EQ(row.natural_coordinates[0U], point == 0U || point == 3U ? -gauss : gauss) | EXPECT_EQ(row.natural_coordinates[1U], point < 2U ? -gauss : gauss) | EXPECT_EQ(row.stress[stress].position, positions[stress]) | EXPECT_EQ(row.stress[stress].zeta, zeta[stress]) | EXPECT_EQ(row.stress[stress].components.size(), 3U) ASSERT_TRUE(recovery.HasValue()) | EXPECT_EQ(row.location, locations[point]) | EXPECT_EQ(row.natural_coordinates[0U], point == 0U || point == 3U ? -gauss : gauss) | EXPECT_EQ(row.natural_coordinates[1U], point < 2U ? -gauss : gauss) | EXPECT_EQ(row.stress[stress].position, positions[stress]) | EXPECT_EQ(row.stress[stress].zeta, zeta[stress]) | EXPECT_EQ(row.stress[stress].components.size(), 3U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@1-85 helper/oracle/fixture/include/static assertion 구간: Node, Nodes, NodePointers, Frames, Section, Material, ZeroTrial, Multiply, ExpectZeroRecovery, for, Shell tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a6879fd0fa6466d6fb021e12f76588f690a846dd854355d61c5bfd6fbe0de63b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@124-125 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8dee679c89e7fcd7d139da1813c32774ca38d795655c80ce8208b3ab09423c5d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@152-153 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ff3e2239c30471e94bbc18e563e41bb3744f9395c5d81311174b05782fb6ebc8 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@165-166 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 51ced39c2cbb72399c0b49dc9722cc1329c34f357f19be7280ef1e77b2b3e145 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@183-184 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2c8cd1d1980cb0d96addfd4b8037f4d929026a5ac7d0a6ec8856069b5ea0c9d0 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@196-197 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 97be9107d040c13bb40f904c4c01ca1d474fce4260203ac57dfa81b0e1c90824 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@235-236 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9b570c15351976fab371b347ec27443d3155262b9585a574bef6a511922d035c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@264-265 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cd67c16794266a7614069ddb2948a60455ba1fa76721f5c3df9ff598aa83e25f 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@293-294 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/thermal_shell_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 10개 tests/unit/elements/thermal_shell_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 70b2d6efab8783f723e6abf838fd6c50a1ea25a436480271f0ad9d9234b062db 70b2d6efab8783f723e6abf838fd6c50a1ea25a436480271f0ad9d9234b062db 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/elements/thermal_shell_test.cpp ThermalShell.RationalMatricesSymmetryAndConstantModeUseFixedBudgets ThermalShell.RationalMatricesSymmetryAndConstantModeUseFixedBudgets; assertion 9개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.RationalMatricesSymmetryAndConstantModeUseFixedBudgets 유지 원문 검사 body 및 assertion 동일. b77746063cee453fa1b02d7e825896772f68eda7c436d562a9f120ee00254067 b77746063cee453fa1b02d7e825896772f68eda7c436d562a9f120ee00254067 "ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(kernel.Capacity(), exact.c), ec) | EXPECT_LE(Difference(kernel.Conductivity(), exact.k), ek) | EXPECT_LE(cs, 2 * ec) | EXPECT_LE(ks, 2 * ek) | EXPECT_LE(null, std::sqrt(20.) * ek) | EXPECT_LE(std::abs(total - 2), 20 * ec) | EXPECT_EQ(kernel.SourceId().source_label_text, ""0019"") | EXPECT_EQ(kernel.NodeIndices(), (std::array{{7, 2, 9, 4}}))" "ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(kernel.Capacity(), exact.c), ec) | EXPECT_LE(Difference(kernel.Conductivity(), exact.k), ek) | EXPECT_LE(cs, 2 * ec) | EXPECT_LE(ks, 2 * ek) | EXPECT_LE(null, std::sqrt(20.) * ek) | EXPECT_LE(std::abs(total - 2), 20 * ec) | EXPECT_EQ(kernel.SourceId().source_label_text, ""0019"") | EXPECT_EQ(kernel.NodeIndices(), (std::array{{7, 2, 9, 4}}))" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/thermal_shell_test.cpp ThermalShell.CapacityIsPositiveAndConductionHasExactlyOneNullMode ThermalShell.CapacityIsPositiveAndConductionHasExactlyOneNullMode; assertion 4개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.CapacityIsPositiveAndConductionHasExactlyOneNullMode 유지 원문 검사 body 및 assertion 동일. ebcd38fd5f93e481370605596eae5bfee78bd230ee37b0a15d07f1eeead80087 ebcd38fd5f93e481370605596eae5bfee78bd230ee37b0a15d07f1eeead80087 ASSERT_TRUE(created.HasValue()) | EXPECT_GT(capacity.first, Gamma(4096) * Norm(exact.pc) + backward) | EXPECT_LE(std::abs(conduction.first), Gamma(4096) * Norm(exact.pk) + backward) | EXPECT_GT(positive.first, Gamma(4096) * Norm(exact.pk) + backward + projection_budget) ASSERT_TRUE(created.HasValue()) | EXPECT_GT(capacity.first, Gamma(4096) * Norm(exact.pc) + backward) | EXPECT_LE(std::abs(conduction.first), Gamma(4096) * Norm(exact.pk) + backward) | EXPECT_GT(positive.first, Gamma(4096) * Norm(exact.pk) + backward + projection_budget) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/thermal_shell_test.cpp ThermalShell.Direct54MatchesSeparatedOperatorsOnActualThreeDimensionalPatches ThermalShell.Direct54MatchesSeparatedOperatorsOnActualThreeDimensionalPatches; assertion 3개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.Direct54MatchesSeparatedOperatorsOnActualThreeDimensionalPatches 유지 원문 검사 body 및 assertion 동일. fcd2050a389cecd6349305c4f881f5347bda524a64af04cf7b5e1e6228aea544 fcd2050a389cecd6349305c4f881f5347bda524a64af04cf7b5e1e6228aea544 ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(kernel.Capacity(), direct.c), Norm(kernel.CapacityError()) + Gamma(8192) * Norm(direct.pc)) | EXPECT_LE(Difference(kernel.Conductivity(), direct.k), Norm(kernel.ConductivityError()) + Gamma(8192) * Norm(direct.pk)) ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(kernel.Capacity(), direct.c), Norm(kernel.CapacityError()) + Gamma(8192) * Norm(direct.pc)) | EXPECT_LE(Difference(kernel.Conductivity(), direct.k), Norm(kernel.ConductivityError()) + Gamma(8192) * Norm(direct.pk)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/thermal_shell_test.cpp ThermalShell.ThicknessScalingPreservesBothConductionTermsAndCapacity ThermalShell.ThicknessScalingPreservesBothConductionTermsAndCapacity; assertion 3개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.ThicknessScalingPreservesBothConductionTermsAndCapacity 유지 원문 검사 body 및 assertion 동일. 4af2e5d6dba4e15c7ef44c0f8aefc95988294ee8693ef71d0e3ef0f398507b61 4af2e5d6dba4e15c7ef44c0f8aefc95988294ee8693ef71d0e3ef0f398507b61 ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(created.Value().Capacity(), exact.c), Gamma(4096) * Norm(exact.pc)) | EXPECT_LE(Difference(created.Value().Conductivity(), exact.k), Gamma(4096) * Norm(exact.pk)) ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(created.Value().Capacity(), exact.c), Gamma(4096) * Norm(exact.pc)) | EXPECT_LE(Difference(created.Value().Conductivity(), exact.k), Gamma(4096) * Norm(exact.pk)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/thermal_shell_test.cpp ThermalShell.AffineLinearFluxFramesAndSeparateMidsurfaceTraces ThermalShell.AffineLinearFluxFramesAndSeparateMidsurfaceTraces; assertion 10개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.AffineLinearFluxFramesAndSeparateMidsurfaceTraces 유지 원문 검사 body 및 assertion 동일. 00b41e05c43005233fd41fe3065da06b97e3a43af290bea482c61bdf1875eaaf 00b41e05c43005233fd41fe3065da06b97e3a43af290bea482c61bdf1875eaaf ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(recovery.HasValue()) | EXPECT_LE( (recovery.Value().global_flux[row] - Vector3{-3, 2, -4}).Norm(), Gamma(2048) * (linear_scale.scale[row] + Vector3{3, -2, 4}.Norm())) | EXPECT_NEAR(frame[i].Dot(frame[j]), i == j ? 1. : 0., Gamma(2048)) | EXPECT_NEAR(frame[0].Cross(frame[1]).Dot(frame[2]), 1., Gamma(2048)) | ASSERT_TRUE(traces.HasValue()) | EXPECT_EQ(traces.Value().global_flux[6 * ip + 2].Z(), 0.) | EXPECT_NEAR(traces.Value().global_flux[6 * ip + 3].Z(), -2., Gamma(2048) * 2) | ASSERT_TRUE(constant.HasValue()) | EXPECT_LE(constant.Value().global_flux[row].Norm(), Gamma(2048) * constant_scale.scale[row]) ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(recovery.HasValue()) | EXPECT_LE( (recovery.Value().global_flux[row] - Vector3{-3, 2, -4}).Norm(), Gamma(2048) * (linear_scale.scale[row] + Vector3{3, -2, 4}.Norm())) | EXPECT_NEAR(frame[i].Dot(frame[j]), i == j ? 1. : 0., Gamma(2048)) | EXPECT_NEAR(frame[0].Cross(frame[1]).Dot(frame[2]), 1., Gamma(2048)) | ASSERT_TRUE(traces.HasValue()) | EXPECT_EQ(traces.Value().global_flux[6 * ip + 2].Z(), 0.) | EXPECT_NEAR(traces.Value().global_flux[6 * ip + 3].Z(), -2., Gamma(2048) * 2) | ASSERT_TRUE(constant.HasValue()) | EXPECT_LE(constant.Value().global_flux[row].Norm(), Gamma(2048) * constant_scale.scale[row]) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/thermal_shell_test.cpp ThermalShell.TranslationRotationAndReversedNormalPreservePhysicalFlux ThermalShell.TranslationRotationAndReversedNormalPreservePhysicalFlux; assertion 10개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.TranslationRotationAndReversedNormalPreservePhysicalFlux 유지 원문 검사 body 및 assertion 동일. d3b3148c1533aa48c401f4b4d92418d4c57abdb89b589de242b5394ac13349b0 d3b3148c1533aa48c401f4b4d92418d4c57abdb89b589de242b5394ac13349b0 ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(moved.HasValue()) | ASSERT_TRUE(turned.HasValue()) | ASSERT_TRUE(flipped.HasValue()) | EXPECT_LE( Difference(base.Value().Capacity(), moved.Value().Capacity()), Norm(base.Value().CapacityError()) + Norm(moved.Value().CapacityError())) | EXPECT_LE( Difference(base.Value().Conductivity(), turned.Value().Conductivity()), Norm(base.Value().ConductivityError()) + Norm(turned.Value().ConductivityError())) | ASSERT_TRUE(flux.HasValue()) | ASSERT_TRUE(reverse.HasValue()) | EXPECT_LE((flux.Value().global_flux[row] - rotate({-3, 2, -4})).Norm(), Gamma(2048) * (turn_scale.scale[row] + Vector3{3, -2, 4}.Norm())) | EXPECT_LE( (reverse.Value().global_flux[row] - Vector3{-3, 2, -4}).Norm(), Gamma(2048) * (reverse_scale.scale[row] + Vector3{3, -2, 4}.Norm())) ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(moved.HasValue()) | ASSERT_TRUE(turned.HasValue()) | ASSERT_TRUE(flipped.HasValue()) | EXPECT_LE( Difference(base.Value().Capacity(), moved.Value().Capacity()), Norm(base.Value().CapacityError()) + Norm(moved.Value().CapacityError())) | EXPECT_LE( Difference(base.Value().Conductivity(), turned.Value().Conductivity()), Norm(base.Value().ConductivityError()) + Norm(turned.Value().ConductivityError())) | ASSERT_TRUE(flux.HasValue()) | ASSERT_TRUE(reverse.HasValue()) | EXPECT_LE((flux.Value().global_flux[row] - rotate({-3, 2, -4})).Norm(), Gamma(2048) * (turn_scale.scale[row] + Vector3{3, -2, 4}.Norm())) | EXPECT_LE( (reverse.Value().global_flux[row] - Vector3{-3, 2, -4}).Norm(), Gamma(2048) * (reverse_scale.scale[row] + Vector3{3, -2, 4}.Norm())) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/thermal_shell_test.cpp ThermalShell.CheckedCreationAndRecoveryRetainSourceAndRejectNonfinite ThermalShell.CheckedCreationAndRecoveryRetainSourceAndRejectNonfinite; assertion 7개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.CheckedCreationAndRecoveryRetainSourceAndRejectNonfinite 유지 원문 검사 body 및 assertion 동일. fa5ae9a4a6c78eb6502fe375b86097724b5484608a38dc580d02729c1662512e fa5ae9a4a6c78eb6502fe375b86097724b5484608a38dc580d02729c1662512e "EXPECT_FALSE(Kernel(kSquare, bad).HasValue()) | EXPECT_FALSE(Kernel(kSquare, 2, bad).HasValue()) | ASSERT_TRUE(created.HasValue()) | ASSERT_FALSE(bad.HasValue()) | EXPECT_EQ(bad.GetStatus().Diagnostics()[0].entity_identity, ""patch:0019"") | EXPECT_EQ(bad.GetStatus().Diagnostics()[0].location.line, 42U) | EXPECT_FALSE(created.Value().Recover(temperature).HasValue())" "EXPECT_FALSE(Kernel(kSquare, bad).HasValue()) | EXPECT_FALSE(Kernel(kSquare, 2, bad).HasValue()) | ASSERT_TRUE(created.HasValue()) | ASSERT_FALSE(bad.HasValue()) | EXPECT_EQ(bad.GetStatus().Diagnostics()[0].entity_identity, ""patch:0019"") | EXPECT_EQ(bad.GetStatus().Diagnostics()[0].location.line, 42U) | EXPECT_FALSE(created.Value().Recover(temperature).HasValue())" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/thermal_shell_test.cpp ThermalShell.GeneralWarpedFluxUsesActualReciprocalTangentsAndTraceOrder ThermalShell.GeneralWarpedFluxUsesActualReciprocalTangentsAndTraceOrder; assertion 4개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.GeneralWarpedFluxUsesActualReciprocalTangentsAndTraceOrder 유지 원문 검사 body 및 assertion 동일. d8ac116acd93e87e33b2b21c1880b4f4b554f07a2d11fcaba6c3031151e9b780 d8ac116acd93e87e33b2b21c1880b4f4b554f07a2d11fcaba6c3031151e9b780 ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_LE((actual.Value().global_flux[row] - expected.value[row]).Norm(), 2 * Gamma(2048) * expected.scale[row]) | EXPECT_GT((actual.Value().frames[0][2] - actual.Value().frames[1][2]).Norm(), 1.) ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_LE((actual.Value().global_flux[row] - expected.value[row]).Norm(), 2 * Gamma(2048) * expected.scale[row]) | EXPECT_GT((actual.Value().frames[0][2] - actual.Value().frames[1][2]).Norm(), 1.) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/thermal_shell_test.cpp ThermalShell.PowerOfTwoCoordinateScalingPreservesDimensionedOperators ThermalShell.PowerOfTwoCoordinateScalingPreservesDimensionedOperators; assertion 3개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.PowerOfTwoCoordinateScalingPreservesDimensionedOperators 유지 원문 검사 body 및 assertion 동일. c09333202e2a4f5cf6a42a31c1e5cd786979db0b59663bca37fc8bd4e508762d c09333202e2a4f5cf6a42a31c1e5cd786979db0b59663bca37fc8bd4e508762d ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(created.Value().Capacity(), c), Norm(created.Value().CapacityError()) + Gamma(4096) * Norm(c)) | EXPECT_LE( Difference(created.Value().Conductivity(), k), Norm(created.Value().ConductivityError()) + Gamma(4096) * Norm(k)) ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(created.Value().Capacity(), c), Norm(created.Value().CapacityError()) + Gamma(4096) * Norm(c)) | EXPECT_LE( Difference(created.Value().Conductivity(), k), Norm(created.Value().ConductivityError()) + Gamma(4096) * Norm(k)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/thermal_shell_test.cpp ThermalShell.RejectsUnrepresentablePositivePropertiesWithoutClamping ThermalShell.RejectsUnrepresentablePositivePropertiesWithoutClamping; assertion 2개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.RejectsUnrepresentablePositivePropertiesWithoutClamping 유지 원문 검사 body 및 assertion 동일. ce5c3d9a306fa53f5457ea5db0a9d002d806423381a139cd329f8c6b42bae98b ce5c3d9a306fa53f5457ea5db0a9d002d806423381a139cd329f8c6b42bae98b EXPECT_FALSE(underflow.HasValue()) | EXPECT_FALSE(overflow.HasValue()) EXPECT_FALSE(underflow.HasValue()) | EXPECT_FALSE(overflow.HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/elements/thermal_shell_test.cpp support@1-245 helper/oracle/fixture/include/static assertion 구간: Gamma, Norm, Difference, Kernel, Oracle, Rational, Direct54, FluxOracle, Flux, EigenExtrema, if tests/unit/elements/thermal_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4b36e387f8082d0a918209d0e72ac417a3b4be25b0bcd07da65f3c169413c725 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/fem/dof_manager_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 12개 tests/unit/fem/dof_manager_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 752d1a2138fc77ec40346e6575f87c9e96d69dd9f9c097eff316e6de887d2195 bd0972cde135770050c66143519332b17cb62a5c17b81530927fb27ef017c844 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/fem/dof_manager_test.cpp DofManager.BuildsGenericRuntimeLayoutsInDeclaredSourceOrder DofManager.BuildsGenericRuntimeLayoutsInDeclaredSourceOrder; assertion 17개 tests/unit/fem/dof_manager_test.cpp DofManager.BuildsGenericRuntimeLayoutsInDeclaredSourceOrder 유지 원문 검사 body 및 assertion 동일. 41f2338c870fdbb3eff99743a0ef8112756b63092f3525a035a3755eb09882b1 41f2338c870fdbb3eff99743a0ef8112756b63092f3525a035a3755eb09882b1 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(dofs.ValidateInvariants().IsOk()) | ASSERT_TRUE(first_scatter.HasValue()) | ASSERT_TRUE(second_scatter.HasValue()) | EXPECT_EQ(first_scatter.Value(), (std::vector{14U, 12U, 2U, 0U})) | EXPECT_EQ(second_scatter.Value(), (std::vector{11U, 7U, 9U})) | EXPECT_EQ(RowColumns(pattern, 14U), (std::vector{0U, 2U, 12U, 14U})) | EXPECT_EQ(RowColumns(pattern, 7U), (std::vector{7U, 9U, 11U})) | ASSERT_FALSE(reversed_status.IsOk()) | ASSERT_EQ(reversed_status.Diagnostics().size(), 1U) | EXPECT_EQ(reversed_status.Diagnostics()[0U].code, ""invalid-element-layout-order"") | EXPECT_EQ(dofs.FreeDofs(), expected_free_dofs) | EXPECT_EQ(dofs.ConstrainedDofs(), expected_constrained_dofs) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, expected_row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, expected_columns)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(dofs.ValidateInvariants().IsOk()) | ASSERT_TRUE(first_scatter.HasValue()) | ASSERT_TRUE(second_scatter.HasValue()) | EXPECT_EQ(first_scatter.Value(), (std::vector{14U, 12U, 2U, 0U})) | EXPECT_EQ(second_scatter.Value(), (std::vector{11U, 7U, 9U})) | EXPECT_EQ(RowColumns(pattern, 14U), (std::vector{0U, 2U, 12U, 14U})) | EXPECT_EQ(RowColumns(pattern, 7U), (std::vector{7U, 9U, 11U})) | ASSERT_FALSE(reversed_status.IsOk()) | ASSERT_EQ(reversed_status.Diagnostics().size(), 1U) | EXPECT_EQ(reversed_status.Diagnostics()[0U].code, ""invalid-element-layout-order"") | EXPECT_EQ(dofs.FreeDofs(), expected_free_dofs) | EXPECT_EQ(dofs.ConstrainedDofs(), expected_constrained_dofs) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, expected_row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, expected_columns)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/fem/dof_manager_test.cpp DofManager.RejectsEveryCorruptedOwnerMappingInvariant DofManager.RejectsEveryCorruptedOwnerMappingInvariant; assertion 0개 tests/unit/fem/dof_manager_test.cpp DofManager.RejectsEveryCorruptedOwnerMappingInvariant 유지 원문 검사 body 및 assertion 동일. f3a2d0c1bdbc2bfcc10e6a27711d07586fe8076fb87c957f8448b0edef5ff5f0 f3a2d0c1bdbc2bfcc10e6a27711d07586fe8076fb87c957f8448b0edef5ff5f0 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/fem/dof_manager_test.cpp DofManager.NumbersSixDofsAndFreeEquationsStably DofManager.NumbersSixDofsAndFreeEquationsStably; assertion 13개 tests/unit/fem/dof_manager_test.cpp DofManager.NumbersSixDofsAndFreeEquationsStably 유지 원문 검사 body 및 assertion 동일. 164a3c027dad0f2949360355d4e84d64180d8478dc812815c46df9d2e9de63fa 164a3c027dad0f2949360355d4e84d64180d8478dc812815c46df9d2e9de63fa EXPECT_EQ(dofs.FullDofCount(), 18U) | EXPECT_EQ(dofs.FreeDofCount(), 13U) | EXPECT_EQ(dofs.ConstrainedDofCount(), 5U) | EXPECT_EQ(dofs.FullDof(0U, fesa::DofComponent::kUx), 0U) | EXPECT_EQ(dofs.FullDof(0U, fesa::DofComponent::kUrz), 5U) | EXPECT_EQ(dofs.FullDof(1U, fesa::DofComponent::kUx), 6U) | EXPECT_EQ(dofs.FullDof(2U, fesa::DofComponent::kUrz), 17U) | EXPECT_EQ(dofs.FreeDofs(), (std::vector{3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 12U, 13U, 15U, 16U, 17U})) | EXPECT_EQ(dofs.ConstrainedDofs(), (std::vector{0U, 1U, 2U, 11U, 14U})) | EXPECT_EQ(dofs.FreeEquation(0U), std::nullopt) | EXPECT_EQ(dofs.FreeEquation(3U), std::optional{0U}) | EXPECT_EQ(dofs.FreeEquation(10U), std::optional{7U}) | EXPECT_EQ(dofs.FreeEquation(17U), std::optional{12U}) EXPECT_EQ(dofs.FullDofCount(), 18U) | EXPECT_EQ(dofs.FreeDofCount(), 13U) | EXPECT_EQ(dofs.ConstrainedDofCount(), 5U) | EXPECT_EQ(dofs.FullDof(0U, fesa::DofComponent::kUx), 0U) | EXPECT_EQ(dofs.FullDof(0U, fesa::DofComponent::kUrz), 5U) | EXPECT_EQ(dofs.FullDof(1U, fesa::DofComponent::kUx), 6U) | EXPECT_EQ(dofs.FullDof(2U, fesa::DofComponent::kUrz), 17U) | EXPECT_EQ(dofs.FreeDofs(), (std::vector{3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 12U, 13U, 15U, 16U, 17U})) | EXPECT_EQ(dofs.ConstrainedDofs(), (std::vector{0U, 1U, 2U, 11U, 14U})) | EXPECT_EQ(dofs.FreeEquation(0U), std::nullopt) | EXPECT_EQ(dofs.FreeEquation(3U), std::optional{0U}) | EXPECT_EQ(dofs.FreeEquation(10U), std::optional{7U}) | EXPECT_EQ(dofs.FreeEquation(17U), std::optional{12U}) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/fem/dof_manager_test.cpp DofManager.ExpandsAndValidatesPrescribedValues DofManager.ExpandsAndValidatesPrescribedValues; assertion 16개 tests/unit/fem/dof_manager_test.cpp DofManager.ExpandsAndValidatesPrescribedValues 유지 원문 검사 body 및 assertion 동일. 6cf0e5ec3dec89d94ff24af258558bcf13c72a823748c36a839c4a4d5daf9b1c 6cf0e5ec3dec89d94ff24af258558bcf13c72a823748c36a839c4a4d5daf9b1c "ASSERT_EQ(values.Size(), 5U) | EXPECT_DOUBLE_EQ(values[0], 0.0) | EXPECT_DOUBLE_EQ(values[1], 0.0) | EXPECT_DOUBLE_EQ(values[2], 0.25) | EXPECT_DOUBLE_EQ(values[3], -0.5) | EXPECT_DOUBLE_EQ(values[4], 0.25) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_FALSE(conflict.HasValue()) | EXPECT_EQ(conflict.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(conflict.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""conflicting-boundary-condition"") | EXPECT_EQ(diagnostic.keyword, ""BOUNDARY"") | EXPECT_EQ(diagnostic.entity_identity, ""root"") | EXPECT_EQ(diagnostic.location.file, std::filesystem::path{""models/dof-manager.inp""}) | EXPECT_EQ(diagnostic.location.line, 77U)" "ASSERT_EQ(values.Size(), 5U) | EXPECT_DOUBLE_EQ(values[0], 0.0) | EXPECT_DOUBLE_EQ(values[1], 0.0) | EXPECT_DOUBLE_EQ(values[2], 0.25) | EXPECT_DOUBLE_EQ(values[3], -0.5) | EXPECT_DOUBLE_EQ(values[4], 0.25) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_FALSE(conflict.HasValue()) | EXPECT_EQ(conflict.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(conflict.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""conflicting-boundary-condition"") | EXPECT_EQ(diagnostic.keyword, ""BOUNDARY"") | EXPECT_EQ(diagnostic.entity_identity, ""root"") | EXPECT_EQ(diagnostic.location.file, std::filesystem::path{""models/dof-manager.inp""}) | EXPECT_EQ(diagnostic.location.line, 77U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/fem/dof_manager_test.cpp DofManager.BuildsTwelveDofScatterAndSortedUniquePattern DofManager.BuildsTwelveDofScatterAndSortedUniquePattern; assertion 8개 tests/unit/fem/dof_manager_test.cpp DofManager.BuildsTwelveDofScatterAndSortedUniquePattern 유지 원문 검사 body 및 assertion 동일. 777cf0c0c96c7791e264fff4c6af066a696eb2afd008d54cdbf4ccd1d84f11bb 777cf0c0c96c7791e264fff4c6af066a696eb2afd008d54cdbf4ccd1d84f11bb EXPECT_EQ(dofs.ElementScatter(0U), (std::array{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U})) | EXPECT_EQ(dofs.ElementScatter(1U), (std::array{6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U})) | EXPECT_EQ(pattern.row_offsets, (std::vector{0U, 12U, 24U, 36U, 48U, 60U, 72U, 90U, 108U, 126U, 144U, 162U, 180U, 192U, 204U, 216U, 228U, 240U, 252U})) | EXPECT_EQ(RowColumns(pattern, 0U), first_block) | EXPECT_EQ(RowColumns(pattern, 7U), shared_block) | EXPECT_EQ(RowColumns(pattern, 17U), last_block) | EXPECT_TRUE(std::is_sorted(columns.begin(), columns.end())) | EXPECT_EQ(std::adjacent_find(columns.begin(), columns.end()), columns.end()) EXPECT_EQ(dofs.ElementScatter(0U), (std::array{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U})) | EXPECT_EQ(dofs.ElementScatter(1U), (std::array{6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U})) | EXPECT_EQ(pattern.row_offsets, (std::vector{0U, 12U, 24U, 36U, 48U, 60U, 72U, 90U, 108U, 126U, 144U, 162U, 180U, 192U, 204U, 216U, 228U, 240U, 252U})) | EXPECT_EQ(RowColumns(pattern, 0U), first_block) | EXPECT_EQ(RowColumns(pattern, 7U), shared_block) | EXPECT_EQ(RowColumns(pattern, 17U), last_block) | EXPECT_TRUE(std::is_sorted(columns.begin(), columns.end())) | EXPECT_EQ(std::adjacent_find(columns.begin(), columns.end()), columns.end()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/fem/dof_manager_test.cpp DofManager.BuildsShellScatterInSourceNodeAndComponentOrder DofManager.BuildsShellScatterInSourceNodeAndComponentOrder; assertion 2개 tests/unit/fem/dof_manager_test.cpp DofManager.BuildsShellScatterInSourceNodeAndComponentOrder 유지 원문 검사 body 및 assertion 동일. 8e1b5e8d8a5b5b681055207235c9565bd84ba56615922df7dbe69f84482a7911 8e1b5e8d8a5b5b681055207235c9565bd84ba56615922df7dbe69f84482a7911 EXPECT_EQ(dofs.FullDofCount(), 24U) | EXPECT_EQ(dofs.ShellElementScatter(0U), (std::array{ 12U, 13U, 14U, 15U, 16U, 17U, 0U, 1U, 2U, 3U, 4U, 5U, 18U, 19U, 20U, 21U, 22U, 23U, 6U, 7U, 8U, 9U, 10U, 11U})) EXPECT_EQ(dofs.FullDofCount(), 24U) | EXPECT_EQ(dofs.ShellElementScatter(0U), (std::array{ 12U, 13U, 14U, 15U, 16U, 17U, 0U, 1U, 2U, 3U, 4U, 5U, 18U, 19U, 20U, 21U, 22U, 23U, 6U, 7U, 8U, 9U, 10U, 11U})) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/fem/dof_manager_test.cpp DofManager.IncludesShellConnectivityInSortedUniqueSparsePattern DofManager.IncludesShellConnectivityInSortedUniqueSparsePattern; assertion 8개 tests/unit/fem/dof_manager_test.cpp DofManager.IncludesShellConnectivityInSortedUniqueSparsePattern 유지 원문 검사 body 및 assertion 동일. 92c8de2bfcae8aace6b388803d0a64c9ac18f2d175a866e225089b21c4a623c8 92c8de2bfcae8aace6b388803d0a64c9ac18f2d175a866e225089b21c4a623c8 ASSERT_EQ(pattern.row_offsets.size(), 25U) | ASSERT_EQ(pattern.column_indices.size(), 24U * 24U) | EXPECT_EQ(pattern.row_offsets[row], row * 24U) | EXPECT_EQ(pattern.row_offsets[row + 1U], (row + 1U) * 24U) | ASSERT_EQ(columns.size(), 24U) | EXPECT_EQ(columns[column], column) | EXPECT_TRUE(std::binary_search(columns.begin(), columns.end(), row)) | EXPECT_EQ(std::adjacent_find(columns.begin(), columns.end()), columns.end()) ASSERT_EQ(pattern.row_offsets.size(), 25U) | ASSERT_EQ(pattern.column_indices.size(), 24U * 24U) | EXPECT_EQ(pattern.row_offsets[row], row * 24U) | EXPECT_EQ(pattern.row_offsets[row + 1U], (row + 1U) * 24U) | ASSERT_EQ(columns.size(), 24U) | EXPECT_EQ(columns[column], column) | EXPECT_TRUE(std::binary_search(columns.begin(), columns.end(), row)) | EXPECT_EQ(std::adjacent_find(columns.begin(), columns.end()), columns.end()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/fem/dof_manager_test.cpp DofManager.ReconstructsFullReducedRoundTrip DofManager.ReconstructsFullReducedRoundTrip; assertion 2개 tests/unit/fem/dof_manager_test.cpp DofManager.ReconstructsFullReducedRoundTrip 유지 원문 검사 body 및 assertion 동일. bcaf1e9c9f316b66734a1487522db16345e115f41d6580164af239c16aef76e0 bcaf1e9c9f316b66734a1487522db16345e115f41d6580164af239c16aef76e0 ASSERT_EQ(reconstructed.Size(), full.Size()) | EXPECT_DOUBLE_EQ(reconstructed[index], full[index]) ASSERT_EQ(reconstructed.Size(), full.Size()) | EXPECT_DOUBLE_EQ(reconstructed[index], full[index]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/fem/dof_manager_test.cpp ThermalDofManager.MapsOnlyConnectedNodesAndOverridesModelBoundary ThermalDofManager.MapsOnlyConnectedNodesAndOverridesModelBoundary; assertion 42개 tests/unit/fem/dof_manager_test.cpp ThermalDofManager.MapsOnlyConnectedNodesAndOverridesModelBoundary 유지 원문 검사 body 및 assertion 동일. 14c6b2472e4b37fd66fa0c929e96926cb3dbd44664ac0b9917708049cc8ae79b 14c6b2472e4b37fd66fa0c929e96926cb3dbd44664ac0b9917708049cc8ae79b "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(dofs.Profile(), fesa::DofProfile::kThermal) | EXPECT_EQ(dofs.FullDofCount(), 30U) | EXPECT_THROW(dofs.FullDof(0U, fesa::DofComponent::kUx), std::logic_error) | EXPECT_EQ(dofs.ConstrainedDofs(), (std::vector{0U, 9U})) | ASSERT_EQ(dofs.PrescribedValues().Size(), 2U) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[0U], 3.0) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[1U], 2.0) | EXPECT_EQ(dofs.FullThermalDof(6U, fesa::ThermalDofComponent::kTop), 29U) | EXPECT_THROW(dofs.FullThermalDof(3U, fesa::ThermalDofComponent::kBottom), std::out_of_range) | EXPECT_THROW( dofs.FullThermalDof( 0U, static_cast( (std::numeric_limits::min)())), std::out_of_range) | ASSERT_TRUE(first.HasValue()) | EXPECT_EQ(first.Value(), (std::vector{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U, 18U, 19U})) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(std::vector(second.Value().begin(), second.Value().begin() + 5U), (std::vector{5U, 6U, 7U, 8U, 9U})) | EXPECT_EQ(std::vector(second.Value().end() - 5U, second.Value().end()), (std::vector{10U, 11U, 12U, 13U, 14U})) | EXPECT_FALSE(dofs.ElementScatter(structural_layout).HasValue()) | ASSERT_FALSE(repeated.HasValue()) | EXPECT_EQ(repeated.GetStatus().Diagnostics()[0U].code, ""duplicate-element-dof"") | ASSERT_FALSE(reordered.HasValue()) | ASSERT_FALSE(invalid_component.HasValue()) | EXPECT_EQ(RowColumns(dofs.GetSparsePattern(), 0U), (std::vector{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U, 18U, 19U})) | ASSERT_TRUE(scatter_before.HasValue()) | ASSERT_FALSE(invalid.IsOk()) | EXPECT_EQ(invalid.Diagnostics()[0U].code, ""invalid-thermal-element-layout"") | EXPECT_EQ(dofs.Profile(), profile_before) | EXPECT_EQ(dofs.FullDofCount(), full_count_before) | EXPECT_EQ(dofs.FreeDofCount(), free_count_before) | EXPECT_EQ(dofs.ConstrainedDofCount(), constrained_count_before) | EXPECT_EQ(dofs.FreeDofs(), free_before) | EXPECT_EQ(dofs.ConstrainedDofs(), constrained_before) | ASSERT_EQ(dofs.PrescribedValues().Size(), prescribed_before.Size()) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[index], prescribed_before[index]) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, pattern_before.row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, pattern_before.column_indices) | ASSERT_TRUE(scatter_after.HasValue()) | EXPECT_EQ(scatter_after.Value(), scatter_before.Value()) | ASSERT_FALSE(structural_misuse.IsOk()) | EXPECT_EQ(structural_misuse.Diagnostics()[0U].code, ""invalid-dof-profile"") | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, pattern_before.row_offsets)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(dofs.Profile(), fesa::DofProfile::kThermal) | EXPECT_EQ(dofs.FullDofCount(), 30U) | EXPECT_THROW(dofs.FullDof(0U, fesa::DofComponent::kUx), std::logic_error) | EXPECT_EQ(dofs.ConstrainedDofs(), (std::vector{0U, 9U})) | ASSERT_EQ(dofs.PrescribedValues().Size(), 2U) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[0U], 3.0) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[1U], 2.0) | EXPECT_EQ(dofs.FullThermalDof(6U, fesa::ThermalDofComponent::kTop), 29U) | EXPECT_THROW(dofs.FullThermalDof(3U, fesa::ThermalDofComponent::kBottom), std::out_of_range) | EXPECT_THROW( dofs.FullThermalDof( 0U, static_cast( (std::numeric_limits::min)())), std::out_of_range) | ASSERT_TRUE(first.HasValue()) | EXPECT_EQ(first.Value(), (std::vector{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U, 18U, 19U})) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(std::vector(second.Value().begin(), second.Value().begin() + 5U), (std::vector{5U, 6U, 7U, 8U, 9U})) | EXPECT_EQ(std::vector(second.Value().end() - 5U, second.Value().end()), (std::vector{10U, 11U, 12U, 13U, 14U})) | EXPECT_FALSE(dofs.ElementScatter(structural_layout).HasValue()) | ASSERT_FALSE(repeated.HasValue()) | EXPECT_EQ(repeated.GetStatus().Diagnostics()[0U].code, ""duplicate-element-dof"") | ASSERT_FALSE(reordered.HasValue()) | ASSERT_FALSE(invalid_component.HasValue()) | EXPECT_EQ(RowColumns(dofs.GetSparsePattern(), 0U), (std::vector{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U, 18U, 19U})) | ASSERT_TRUE(scatter_before.HasValue()) | ASSERT_FALSE(invalid.IsOk()) | EXPECT_EQ(invalid.Diagnostics()[0U].code, ""invalid-thermal-element-layout"") | EXPECT_EQ(dofs.Profile(), profile_before) | EXPECT_EQ(dofs.FullDofCount(), full_count_before) | EXPECT_EQ(dofs.FreeDofCount(), free_count_before) | EXPECT_EQ(dofs.ConstrainedDofCount(), constrained_count_before) | EXPECT_EQ(dofs.FreeDofs(), free_before) | EXPECT_EQ(dofs.ConstrainedDofs(), constrained_before) | ASSERT_EQ(dofs.PrescribedValues().Size(), prescribed_before.Size()) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[index], prescribed_before[index]) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, pattern_before.row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, pattern_before.column_indices) | ASSERT_TRUE(scatter_after.HasValue()) | EXPECT_EQ(scatter_after.Value(), scatter_before.Value()) | ASSERT_FALSE(structural_misuse.IsOk()) | EXPECT_EQ(structural_misuse.Diagnostics()[0U].code, ""invalid-dof-profile"") | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, pattern_before.row_offsets)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/fem/dof_manager_test.cpp ThermalDofManager.RejectsChangedThermalLayoutInventory ThermalDofManager.RejectsChangedThermalLayoutInventory; assertion 6개 tests/unit/fem/dof_manager_test.cpp ThermalDofManager.RejectsChangedThermalLayoutInventory 유지 원문 검사 body 및 assertion 동일. 24dfec1451d61871c9de4765e12b026aec9b6b1285976d60b47e34c047330d85 24dfec1451d61871c9de4765e12b026aec9b6b1285976d60b47e34c047330d85 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_identity).IsOk()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_order).IsOk()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_nodes).IsOk()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_identity).IsOk()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_order).IsOk()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_nodes).IsOk()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/fem/dof_manager_test.cpp ThermalDofManager.KeepsDisconnectedThermalComponentsInSeparateCsrBlocks ThermalDofManager.KeepsDisconnectedThermalComponentsInSeparateCsrBlocks; assertion 6개 tests/unit/fem/dof_manager_test.cpp ThermalDofManager.KeepsDisconnectedThermalComponentsInSeparateCsrBlocks 유지 원문 검사 body 및 assertion 동일. 3c945c7278e08616de4858fb363c62549e22c8e97d0f6742280b2f61f0a218af 3c945c7278e08616de4858fb363c62549e22c8e97d0f6742280b2f61f0a218af ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().FullDofCount(), 40U) | EXPECT_EQ(RowColumns(result.Value().GetSparsePattern(), 0U).size(), 20U) | EXPECT_EQ(RowColumns(result.Value().GetSparsePattern(), 20U).front(), 20U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().FullDofCount(), 40U) | EXPECT_EQ(RowColumns(result.Value().GetSparsePattern(), 0U).size(), 20U) | EXPECT_EQ(RowColumns(result.Value().GetSparsePattern(), 20U).front(), 20U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/fem/dof_manager_test.cpp ThermalDofManager.RejectsThermalLayoutsForStructuralModels ThermalDofManager.RejectsThermalLayoutsForStructuralModels; assertion 6개 tests/unit/fem/dof_manager_test.cpp ThermalDofManager.RejectsThermalLayoutsForStructuralModels 유지 원문 검사 body 및 assertion 동일. 87aec2f1aa1dcfc017a94fb57393f0d486489a38edebfa67898ef75e8b1cd2fc 87aec2f1aa1dcfc017a94fb57393f0d486489a38edebfa67898ef75e8b1cd2fc "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-dof-profile"") | ASSERT_FALSE(thermal_create.HasValue()) | EXPECT_EQ(thermal_create.GetStatus().Diagnostics()[0U].code, ""invalid-dof-profile"")" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-dof-profile"") | ASSERT_FALSE(thermal_create.HasValue()) | EXPECT_EQ(thermal_create.GetStatus().Diagnostics()[0U].code, ""invalid-dof-profile"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/fem/dof_manager_test.cpp support@1-204 helper/oracle/fixture/include/static assertion 구간: fesa, DofManagerTestAccess, DuplicateOwnership, RemoveFullMapping, ReverseFreeMapping, ReverseConstrainedMapping, CorruptEquationMapping, RemoveSparsePatternEntry, AddSparsePatternEntry, GenericLayoutElement, MakeDefinition, MakeShellDefinition, MakeThermalDefinition, DofFixture, MakeDofFixture, RowColumns, ExpectInvariantFailure tests/unit/fem/dof_manager_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2426139ebb5201edffc23485e54073039b9d44668f1802c880802f9b6a9b77e9 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/fem/dof_manager_test.cpp support@375-376 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/fem/dof_manager_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. edda67d5ae3e698f84e25f71acc0ab095496b8f704006cd9bd5d64597a7e94e3 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/fem/dof_manager_test.cpp support@387-388 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/fem/dof_manager_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 639575113829ba3af23c869e39aa0c68dfba327851149b3234d6c75f83aaa755 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/domain_mapper_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 15개 tests/unit/io/abaqus/domain_mapper_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cdc14b4c935734140f44849672a8a15b2137233b1a5853a685577d3eb16dc728 cdc14b4c935734140f44849672a8a15b2137233b1a5853a685577d3eb16dc728 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsEverySupportedKeywordAndLegacyDeck InpDomainMapping.MapsEverySupportedKeywordAndLegacyDeck; assertion 54개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsEverySupportedKeywordAndLegacyDeck 유지 원문 검사 body 및 assertion 동일. 8f78580d37874c8e4e673f2ddf25cc61801dbcae17fb3ed4731609edd952f3d3 8f78580d37874c8e4e673f2ddf25cc61801dbcae17fb3ed4731609edd952f3d3 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Nodes()[0].source_id.instance_name, ""Beam-1"") | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""0001"") | EXPECT_EQ(domain.Nodes()[1].source_id.source_label_text, ""0002"") | EXPECT_DOUBLE_EQ(domain.Nodes()[1].coordinates[0], 2.0) | ASSERT_EQ(domain.Elements().Size(), 1U) | EXPECT_EQ(element.Kind(), fesa::ElementDefinitionKind::kEulerBeam3D) | EXPECT_EQ(element.SourceId().source_label_text, ""0007"") | EXPECT_EQ(element.SourceElementType(), ""B33"") | EXPECT_EQ(element.NodeIndices(), (std::vector{0U, 1U})) | EXPECT_EQ(&element, &domain.BeamElements()[0U]) | ASSERT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Materials()[0U].Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(domain.LinearElasticMaterials()[0U].name, ""Steel"") | EXPECT_DOUBLE_EQ(domain.LinearElasticMaterials()[0U].youngs_modulus, 210000.0) | EXPECT_DOUBLE_EQ(domain.LinearElasticMaterials()[0U].poisson_ratio, 0.75) | ASSERT_EQ(domain.Sections().Size(), 1U) | EXPECT_DOUBLE_EQ(section.area, 2.0) | EXPECT_DOUBLE_EQ(section.i11, 3.0) | EXPECT_DOUBLE_EQ(section.i12, 0.0) | EXPECT_DOUBLE_EQ(section.i22, 4.0) | EXPECT_DOUBLE_EQ(section.torsional_constant, 5.0) | EXPECT_EQ(section.first_axis, (std::array{0.0, 1.0, 0.0})) | EXPECT_EQ(section.section_points, (std::vector>{{-0.5, 0.25}, {0.5, -0.25}})) | EXPECT_EQ(domain.BeamElements()[0U].material_index, 0U) | EXPECT_EQ(domain.BeamElements()[0U].section_index, 0U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(step.Name(), ""Step-1"") | EXPECT_DOUBLE_EQ(step.InitialIncrement(), 0.25) | EXPECT_DOUBLE_EQ(step.TimePeriod(), 1.5) | EXPECT_DOUBLE_EQ(step.MinimumIncrement(), 0.01) | EXPECT_DOUBLE_EQ(step.MaximumIncrement(), 1.5) | ASSERT_EQ(step.PrescribedDisplacements().Size(), 2U) | EXPECT_EQ(step.PrescribedDisplacements()[0U].Target().target_name_or_label, ""rootassembly"") | EXPECT_EQ(step.PrescribedDisplacements()[0U].Component(), fesa::DofComponent::kUx) | EXPECT_DOUBLE_EQ(step.PrescribedDisplacements()[0U].PrescribedValue(), 0.125) | EXPECT_EQ(step.PrescribedDisplacements()[1U].Component(), fesa::DofComponent::kUy) | EXPECT_DOUBLE_EQ(step.PrescribedDisplacements()[1U].PrescribedValue(), 0.0) | ASSERT_EQ(step.ConcentratedLoads().Size(), 1U) | EXPECT_EQ(step.ConcentratedLoads()[0U].Target().target_name_or_label, ""RootAssembly"") | EXPECT_DOUBLE_EQ(step.ConcentratedLoads()[0U].GlobalComponents()[5U], -12.5) | EXPECT_EQ(domain.Warnings().size(), 8U) | ASSERT_TRUE(parsed_legacy.HasValue()) | ASSERT_TRUE(legacy.HasValue()) | EXPECT_EQ(legacy.Value().Nodes().size(), 11U) | EXPECT_EQ(legacy.Value().Elements().Size(), 10U) | EXPECT_EQ(legacy.Value().Materials().Size(), 1U) | EXPECT_EQ(legacy.Value().Sections().Size(), 1U) | EXPECT_EQ(legacy.Value().Steps().Size(), 1U) | EXPECT_EQ(legacy.Value().Warnings().size(), 7U) | EXPECT_EQ(ReadExactBytes(legacy_path), bytes_before) | EXPECT_EQ(std::filesystem::last_write_time(legacy_path), timestamp_before)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Nodes()[0].source_id.instance_name, ""Beam-1"") | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""0001"") | EXPECT_EQ(domain.Nodes()[1].source_id.source_label_text, ""0002"") | EXPECT_DOUBLE_EQ(domain.Nodes()[1].coordinates[0], 2.0) | ASSERT_EQ(domain.Elements().Size(), 1U) | EXPECT_EQ(element.Kind(), fesa::ElementDefinitionKind::kEulerBeam3D) | EXPECT_EQ(element.SourceId().source_label_text, ""0007"") | EXPECT_EQ(element.SourceElementType(), ""B33"") | EXPECT_EQ(element.NodeIndices(), (std::vector{0U, 1U})) | EXPECT_EQ(&element, &domain.BeamElements()[0U]) | ASSERT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Materials()[0U].Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(domain.LinearElasticMaterials()[0U].name, ""Steel"") | EXPECT_DOUBLE_EQ(domain.LinearElasticMaterials()[0U].youngs_modulus, 210000.0) | EXPECT_DOUBLE_EQ(domain.LinearElasticMaterials()[0U].poisson_ratio, 0.75) | ASSERT_EQ(domain.Sections().Size(), 1U) | EXPECT_DOUBLE_EQ(section.area, 2.0) | EXPECT_DOUBLE_EQ(section.i11, 3.0) | EXPECT_DOUBLE_EQ(section.i12, 0.0) | EXPECT_DOUBLE_EQ(section.i22, 4.0) | EXPECT_DOUBLE_EQ(section.torsional_constant, 5.0) | EXPECT_EQ(section.first_axis, (std::array{0.0, 1.0, 0.0})) | EXPECT_EQ(section.section_points, (std::vector>{{-0.5, 0.25}, {0.5, -0.25}})) | EXPECT_EQ(domain.BeamElements()[0U].material_index, 0U) | EXPECT_EQ(domain.BeamElements()[0U].section_index, 0U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(step.Name(), ""Step-1"") | EXPECT_DOUBLE_EQ(step.InitialIncrement(), 0.25) | EXPECT_DOUBLE_EQ(step.TimePeriod(), 1.5) | EXPECT_DOUBLE_EQ(step.MinimumIncrement(), 0.01) | EXPECT_DOUBLE_EQ(step.MaximumIncrement(), 1.5) | ASSERT_EQ(step.PrescribedDisplacements().Size(), 2U) | EXPECT_EQ(step.PrescribedDisplacements()[0U].Target().target_name_or_label, ""rootassembly"") | EXPECT_EQ(step.PrescribedDisplacements()[0U].Component(), fesa::DofComponent::kUx) | EXPECT_DOUBLE_EQ(step.PrescribedDisplacements()[0U].PrescribedValue(), 0.125) | EXPECT_EQ(step.PrescribedDisplacements()[1U].Component(), fesa::DofComponent::kUy) | EXPECT_DOUBLE_EQ(step.PrescribedDisplacements()[1U].PrescribedValue(), 0.0) | ASSERT_EQ(step.ConcentratedLoads().Size(), 1U) | EXPECT_EQ(step.ConcentratedLoads()[0U].Target().target_name_or_label, ""RootAssembly"") | EXPECT_DOUBLE_EQ(step.ConcentratedLoads()[0U].GlobalComponents()[5U], -12.5) | EXPECT_EQ(domain.Warnings().size(), 8U) | ASSERT_TRUE(parsed_legacy.HasValue()) | ASSERT_TRUE(legacy.HasValue()) | EXPECT_EQ(legacy.Value().Nodes().size(), 11U) | EXPECT_EQ(legacy.Value().Elements().Size(), 10U) | EXPECT_EQ(legacy.Value().Materials().Size(), 1U) | EXPECT_EQ(legacy.Value().Sections().Size(), 1U) | EXPECT_EQ(legacy.Value().Steps().Size(), 1U) | EXPECT_EQ(legacy.Value().Warnings().size(), 7U) | EXPECT_EQ(ReadExactBytes(legacy_path), bytes_before) | EXPECT_EQ(std::filesystem::last_write_time(legacy_path), timestamp_before)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.ExpandsSetsAndMultipleIdentityInstancesDeterministically InpDomainMapping.ExpandsSetsAndMultipleIdentityInstancesDeterministically; assertion 44개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.ExpandsSetsAndMultipleIdentityInstancesDeterministically 유지 원문 검사 body 및 assertion 동일. bf2734852f2ee6378dde74ca60a0a11d717385260626eff82987b59932ab65a4 bf2734852f2ee6378dde74ca60a0a11d717385260626eff82987b59932ab65a4 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 4U) | EXPECT_EQ(domain.Nodes()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes()[1].source_id.instance_name, ""First"") | EXPECT_EQ(domain.Nodes()[1].source_id.source_label, 20) | EXPECT_EQ(domain.Nodes()[2].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.Nodes()[2].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes()[3].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.Nodes()[3].source_id.source_label, 20) | ASSERT_EQ(domain.BeamElements().Size(), 2U) | EXPECT_EQ(domain.BeamElements()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.BeamElements()[0].node_indices, (std::array{0U, 1U})) | EXPECT_EQ(domain.BeamElements()[1].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.BeamElements()[1].node_indices, (std::array{2U, 3U})) | ASSERT_EQ(domain.NodeSets().size(), 3U) | EXPECT_EQ(domain.NodeSets()[0].name, ""Ends"") | EXPECT_EQ(domain.NodeSets()[0].instance_name, std::optional{""First""}) | EXPECT_EQ(domain.NodeSets()[0].node_indices, (std::vector{0U, 1U})) | EXPECT_EQ(domain.NodeSets()[1].instance_name, std::optional{""Second""}) | EXPECT_EQ(domain.NodeSets()[1].node_indices, (std::vector{2U, 3U})) | EXPECT_EQ(domain.NodeSets()[2].name, ""OnlySecond"") | EXPECT_EQ(domain.NodeSets()[2].node_indices, (std::vector{3U})) | ASSERT_EQ(domain.ElementSets().size(), 3U) | EXPECT_EQ(domain.ElementSets()[0].instance_name, std::optional{""First""}) | EXPECT_EQ(domain.ElementSets()[0].element_indices, (std::vector{0U})) | EXPECT_EQ(domain.ElementSets()[1].instance_name, std::optional{""Second""}) | EXPECT_EQ(domain.ElementSets()[1].element_indices, (std::vector{1U})) | EXPECT_EQ(domain.ElementSets()[2].name, ""OnlySecondBeam"") | EXPECT_EQ(domain.ElementSets()[2].element_indices, (std::vector{1U})) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0] .PrescribedDisplacements()[0U] .Target() .target_name_or_label, ""OnlySecond"") | EXPECT_EQ( domain.Steps()[0].ConcentratedLoads()[0U].Target().target_name_or_label, ""OnlySecond"") | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(direct.Value() .Steps()[0] .PrescribedDisplacements()[0U] .Target() .target_name_or_label, ""1"") | EXPECT_EQ(direct.Value() .Steps()[0] .ConcentratedLoads()[0U] .Target() .target_name_or_label, ""2"") | ASSERT_TRUE(above_thresholds.HasValue()) | ASSERT_TRUE(large_finite.HasValue()) | ASSERT_EQ(large_domain.Nodes().size(), 2U) | EXPECT_TRUE(large_delta.IsFinite()) | EXPECT_TRUE(std::isfinite(large_delta.Norm())) | EXPECT_DOUBLE_EQ(large_delta.Y(), 1.0e297) | EXPECT_TRUE(large_guide.IsFinite()) | EXPECT_TRUE(std::isfinite(large_guide.Norm()))" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 4U) | EXPECT_EQ(domain.Nodes()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes()[1].source_id.instance_name, ""First"") | EXPECT_EQ(domain.Nodes()[1].source_id.source_label, 20) | EXPECT_EQ(domain.Nodes()[2].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.Nodes()[2].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes()[3].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.Nodes()[3].source_id.source_label, 20) | ASSERT_EQ(domain.BeamElements().Size(), 2U) | EXPECT_EQ(domain.BeamElements()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.BeamElements()[0].node_indices, (std::array{0U, 1U})) | EXPECT_EQ(domain.BeamElements()[1].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.BeamElements()[1].node_indices, (std::array{2U, 3U})) | ASSERT_EQ(domain.NodeSets().size(), 3U) | EXPECT_EQ(domain.NodeSets()[0].name, ""Ends"") | EXPECT_EQ(domain.NodeSets()[0].instance_name, std::optional{""First""}) | EXPECT_EQ(domain.NodeSets()[0].node_indices, (std::vector{0U, 1U})) | EXPECT_EQ(domain.NodeSets()[1].instance_name, std::optional{""Second""}) | EXPECT_EQ(domain.NodeSets()[1].node_indices, (std::vector{2U, 3U})) | EXPECT_EQ(domain.NodeSets()[2].name, ""OnlySecond"") | EXPECT_EQ(domain.NodeSets()[2].node_indices, (std::vector{3U})) | ASSERT_EQ(domain.ElementSets().size(), 3U) | EXPECT_EQ(domain.ElementSets()[0].instance_name, std::optional{""First""}) | EXPECT_EQ(domain.ElementSets()[0].element_indices, (std::vector{0U})) | EXPECT_EQ(domain.ElementSets()[1].instance_name, std::optional{""Second""}) | EXPECT_EQ(domain.ElementSets()[1].element_indices, (std::vector{1U})) | EXPECT_EQ(domain.ElementSets()[2].name, ""OnlySecondBeam"") | EXPECT_EQ(domain.ElementSets()[2].element_indices, (std::vector{1U})) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0] .PrescribedDisplacements()[0U] .Target() .target_name_or_label, ""OnlySecond"") | EXPECT_EQ( domain.Steps()[0].ConcentratedLoads()[0U].Target().target_name_or_label, ""OnlySecond"") | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(direct.Value() .Steps()[0] .PrescribedDisplacements()[0U] .Target() .target_name_or_label, ""1"") | EXPECT_EQ(direct.Value() .Steps()[0] .ConcentratedLoads()[0U] .Target() .target_name_or_label, ""2"") | ASSERT_TRUE(above_thresholds.HasValue()) | ASSERT_TRUE(large_finite.HasValue()) | ASSERT_EQ(large_domain.Nodes().size(), 2U) | EXPECT_TRUE(large_delta.IsFinite()) | EXPECT_TRUE(std::isfinite(large_delta.Norm())) | EXPECT_DOUBLE_EQ(large_delta.Y(), 1.0e297) | EXPECT_TRUE(large_guide.IsFinite()) | EXPECT_TRUE(std::isfinite(large_guide.Norm()))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.KeepsNodeAndElementSetNamesInSeparateNamespaces InpDomainMapping.KeepsNodeAndElementSetNamesInSeparateNamespaces; assertion 12개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.KeepsNodeAndElementSetNamesInSeparateNamespaces 유지 원문 검사 body 및 assertion 동일. 2aba9a9e28b849050f1881692d962a2144d083d109388698a14e43a9c5c8b3fa 2aba9a9e28b849050f1881692d962a2144d083d109388698a14e43a9c5c8b3fa "ASSERT_TRUE(shared_name.HasValue()) | EXPECT_TRUE(std::any_of( domain.NodeSets().begin(), domain.NodeSets().end(), [](const fesa::NodeSet& set) { return set.name == ""ShellS4""; })) | EXPECT_TRUE(std::any_of( domain.ElementSets().begin(), domain.ElementSets().end(), [](const fesa::ElementSet& set) { return set.name == ""ShellS4""; })) | ASSERT_FALSE(duplicate_node_set.HasValue()) | EXPECT_NE(FindDiagnostic(duplicate_node_set.GetStatus(), ""duplicate-entity""), nullptr) | ASSERT_FALSE(duplicate_element_set.HasValue()) | EXPECT_NE( FindDiagnostic(duplicate_element_set.GetStatus(), ""duplicate-entity""), nullptr) | ASSERT_TRUE(assembly_shared_name.HasValue()) | EXPECT_EQ(root_node_set_count, 1) | ASSERT_NE(root_node_set, assembly_domain.NodeSets().end()) | EXPECT_EQ(root_node_set->node_indices, (std::vector{0U})) | EXPECT_EQ(std::count_if( assembly_domain.ElementSets().begin(), assembly_domain.ElementSets().end(), [](const fesa::ElementSet& set) { return set.name == ""Root""; }), 1)" "ASSERT_TRUE(shared_name.HasValue()) | EXPECT_TRUE(std::any_of( domain.NodeSets().begin(), domain.NodeSets().end(), [](const fesa::NodeSet& set) { return set.name == ""ShellS4""; })) | EXPECT_TRUE(std::any_of( domain.ElementSets().begin(), domain.ElementSets().end(), [](const fesa::ElementSet& set) { return set.name == ""ShellS4""; })) | ASSERT_FALSE(duplicate_node_set.HasValue()) | EXPECT_NE(FindDiagnostic(duplicate_node_set.GetStatus(), ""duplicate-entity""), nullptr) | ASSERT_FALSE(duplicate_element_set.HasValue()) | EXPECT_NE( FindDiagnostic(duplicate_element_set.GetStatus(), ""duplicate-entity""), nullptr) | ASSERT_TRUE(assembly_shared_name.HasValue()) | EXPECT_EQ(root_node_set_count, 1) | ASSERT_NE(root_node_set, assembly_domain.NodeSets().end()) | EXPECT_EQ(root_node_set->node_indices, (std::vector{0U})) | EXPECT_EQ(std::count_if( assembly_domain.ElementSets().begin(), assembly_domain.ElementSets().end(), [](const fesa::ElementSet& set) { return set.name == ""Root""; }), 1)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.NoOpAllowlistWarnsWithoutSemanticEffect InpDomainMapping.NoOpAllowlistWarnsWithoutSemanticEffect; assertion 23개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.NoOpAllowlistWarnsWithoutSemanticEffect 유지 원문 검사 body 및 assertion 동일. 9556663b9437fa4d24f82ae5e96bbab4bc6f0cb6dc06ec796f94eafbe3bcb829 9556663b9437fa4d24f82ae5e96bbab4bc6f0cb6dc06ec796f94eafbe3bcb829 "ASSERT_TRUE(plain.HasValue()) | ASSERT_TRUE(with_no_ops.HasValue()) | EXPECT_TRUE(plain.Value().Warnings().empty()) | ASSERT_EQ(with_no_ops.Value().Warnings().size(), 8U) | EXPECT_EQ(with_no_ops.Value().Warnings()[0].code, ""ignored-input-keyword"") | EXPECT_EQ(with_no_ops.Value().Warnings()[0].keyword, ""PREPRINT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[1].keyword, ""TRANSVERSE SHEAR STIFFNESS"") | EXPECT_EQ(with_no_ops.Value().Warnings()[2].keyword, ""RESTART"") | EXPECT_EQ(with_no_ops.Value().Warnings()[3].keyword, ""OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[4].keyword, ""NODE OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[5].keyword, ""ELEMENT OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[6].keyword, ""CONTACT OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[7].keyword, ""OUTPUT"") | EXPECT_EQ(warning.severity, fesa::Severity::kWarning) | EXPECT_EQ(with_no_ops.Value().Nodes().size(), plain.Value().Nodes().size()) | EXPECT_EQ(with_no_ops.Value().Elements().Size(), plain.Value().Elements().Size()) | EXPECT_EQ(with_no_ops.Value().Materials().Size(), plain.Value().Materials().Size()) | EXPECT_EQ(with_no_ops.Value().Sections().Size(), plain.Value().Sections().Size()) | EXPECT_EQ(with_no_ops.Value().NodeSets().size(), plain.Value().NodeSets().size()) | EXPECT_EQ(with_no_ops.Value().ElementSets().size(), plain.Value().ElementSets().size()) | EXPECT_EQ(with_no_ops.Value().Steps().Size(), plain.Value().Steps().Size()) | EXPECT_EQ(with_no_ops.Value().Steps()[0].BoundaryConditions().size(), plain.Value().Steps()[0].BoundaryConditions().size()) | EXPECT_EQ(with_no_ops.Value().Steps()[0].Loads().size(), plain.Value().Steps()[0].Loads().size())" "ASSERT_TRUE(plain.HasValue()) | ASSERT_TRUE(with_no_ops.HasValue()) | EXPECT_TRUE(plain.Value().Warnings().empty()) | ASSERT_EQ(with_no_ops.Value().Warnings().size(), 8U) | EXPECT_EQ(with_no_ops.Value().Warnings()[0].code, ""ignored-input-keyword"") | EXPECT_EQ(with_no_ops.Value().Warnings()[0].keyword, ""PREPRINT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[1].keyword, ""TRANSVERSE SHEAR STIFFNESS"") | EXPECT_EQ(with_no_ops.Value().Warnings()[2].keyword, ""RESTART"") | EXPECT_EQ(with_no_ops.Value().Warnings()[3].keyword, ""OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[4].keyword, ""NODE OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[5].keyword, ""ELEMENT OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[6].keyword, ""CONTACT OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[7].keyword, ""OUTPUT"") | EXPECT_EQ(warning.severity, fesa::Severity::kWarning) | EXPECT_EQ(with_no_ops.Value().Nodes().size(), plain.Value().Nodes().size()) | EXPECT_EQ(with_no_ops.Value().Elements().Size(), plain.Value().Elements().Size()) | EXPECT_EQ(with_no_ops.Value().Materials().Size(), plain.Value().Materials().Size()) | EXPECT_EQ(with_no_ops.Value().Sections().Size(), plain.Value().Sections().Size()) | EXPECT_EQ(with_no_ops.Value().NodeSets().size(), plain.Value().NodeSets().size()) | EXPECT_EQ(with_no_ops.Value().ElementSets().size(), plain.Value().ElementSets().size()) | EXPECT_EQ(with_no_ops.Value().Steps().Size(), plain.Value().Steps().Size()) | EXPECT_EQ(with_no_ops.Value().Steps()[0].BoundaryConditions().size(), plain.Value().Steps()[0].BoundaryConditions().size()) | EXPECT_EQ(with_no_ops.Value().Steps()[0].Loads().size(), plain.Value().Steps()[0].Loads().size())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsNonlinearStaticShellProcedureAndRawControls InpDomainMapping.MapsNonlinearStaticShellProcedureAndRawControls; assertion 12개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsNonlinearStaticShellProcedureAndRawControls 유지 원문 검사 body 및 assertion 동일. 2e73d6a87d1ffc3aec44a5df50e01816e4fdf726356ea95f337dbf60a1e4d902 2e73d6a87d1ffc3aec44a5df50e01816e4fdf726356ea95f337dbf60a1e4d902 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(step.ProcedureKind(), fesa::StaticProcedureKind::kNonlinearFullNewton) | EXPECT_TRUE(step.IsNonlinearStatic()) | EXPECT_DOUBLE_EQ(step.InitialIncrement(), 0.1) | EXPECT_DOUBLE_EQ(step.TimePeriod(), 1.0) | EXPECT_DOUBLE_EQ(step.MinimumIncrement(), 0.001) | EXPECT_DOUBLE_EQ(step.MaximumIncrement(), 0.1) | EXPECT_TRUE(domain.BeamElements().Empty()) | ASSERT_EQ(domain.ShellElements().Size(), 4U) | EXPECT_EQ(domain.ShellElements()[0U].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[1U].source_type, fesa::ShellSourceElementType::kS4r) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(step.ProcedureKind(), fesa::StaticProcedureKind::kNonlinearFullNewton) | EXPECT_TRUE(step.IsNonlinearStatic()) | EXPECT_DOUBLE_EQ(step.InitialIncrement(), 0.1) | EXPECT_DOUBLE_EQ(step.TimePeriod(), 1.0) | EXPECT_DOUBLE_EQ(step.MinimumIncrement(), 0.001) | EXPECT_DOUBLE_EQ(step.MaximumIncrement(), 0.1) | EXPECT_TRUE(domain.BeamElements().Empty()) | ASSERT_EQ(domain.ShellElements().Size(), 4U) | EXPECT_EQ(domain.ShellElements()[0U].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[1U].source_type, fesa::ShellSourceElementType::kS4r) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.KeepsExplicitAndImplicitLinearStaticProcedures InpDomainMapping.KeepsExplicitAndImplicitLinearStaticProcedures; assertion 4개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.KeepsExplicitAndImplicitLinearStaticProcedures 유지 원문 검사 body 및 assertion 동일. 645611caad1634687946216c661df3ce027c77b5ea68d779fac476741753a12b 645611caad1634687946216c661df3ce027c77b5ea68d779fac476741753a12b ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Steps().Size(), 1U) | EXPECT_EQ(result.Value().Steps()[0U].ProcedureKind(), fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(result.Value().Steps()[0U].IsNonlinearStatic()) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Steps().Size(), 1U) | EXPECT_EQ(result.Value().Steps()[0U].ProcedureKind(), fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(result.Value().Steps()[0U].IsNonlinearStatic()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidNonlinearStaticControlValues InpDomainMapping.RejectsInvalidNonlinearStaticControlValues; assertion 3개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidNonlinearStaticControlValues 유지 원문 검사 body 및 assertion 동일. 4833f2bb3b01123f8994ec47b375d524c9247177bb8f2e8318fbde641ce2fd45 4833f2bb3b01123f8994ec47b375d524c9247177bb8f2e8318fbde641ce2fd45 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), ""invalid-nonlinear-static-data""), nullptr)" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), ""invalid-nonlinear-static-data""), nullptr)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsUnsupportedNonlinearProceduresAndMixedModels InpDomainMapping.RejectsUnsupportedNonlinearProceduresAndMixedModels; assertion 6개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsUnsupportedNonlinearProceduresAndMixedModels 유지 원문 검사 body 및 assertion 동일. ecf6c6c09f3477f2db467ff9106e3b19c1553237de80831fdd99cc22dca3e390 ecf6c6c09f3477f2db467ff9106e3b19c1553237de80831fdd99cc22dca3e390 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.first == ""dynamic"" ? ""invalid-dynamic-data"" : ""unsupported-analysis-procedure""), nullptr) | ASSERT_FALSE(mixed_result.HasValue()) | EXPECT_EQ(mixed_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(mixed_result.GetStatus(), ""unsupported-mixed-element-model""), nullptr)" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.first == ""dynamic"" ? ""invalid-dynamic-data"" : ""unsupported-analysis-procedure""), nullptr) | ASSERT_FALSE(mixed_result.HasValue()) | EXPECT_EQ(mixed_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(mixed_result.GetStatus(), ""unsupported-mixed-element-model""), nullptr)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.AcceptsOnlyNonlinearPreselectOutputNoOps InpDomainMapping.AcceptsOnlyNonlinearPreselectOutputNoOps; assertion 11개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.AcceptsOnlyNonlinearPreselectOutputNoOps 유지 원문 검사 body 및 assertion 동일. 0bb0af8b7d98b402f61fa466169286371cf638754a75cfdcd433f5066d8c1fee 0bb0af8b7d98b402f61fa466169286371cf638754a75cfdcd433f5066d8c1fee "ASSERT_TRUE(plain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().Nodes().size(), plain.Value().Nodes().size()) | EXPECT_EQ(result.Value().Steps().Size(), plain.Value().Steps().Size()) | EXPECT_EQ(result.Value().Steps()[0U].BoundaryConditions().size(), plain.Value().Steps()[0U].BoundaryConditions().size()) | EXPECT_EQ(result.Value().Steps()[0U].Loads().size(), plain.Value().Steps()[0U].Loads().size()) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(result.Value().Warnings()[0U].keyword, ""OUTPUT"") | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), ""invalid-keyword-parameter""), nullptr)" "ASSERT_TRUE(plain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().Nodes().size(), plain.Value().Nodes().size()) | EXPECT_EQ(result.Value().Steps().Size(), plain.Value().Steps().Size()) | EXPECT_EQ(result.Value().Steps()[0U].BoundaryConditions().size(), plain.Value().Steps()[0U].BoundaryConditions().size()) | EXPECT_EQ(result.Value().Steps()[0U].Loads().size(), plain.Value().Steps()[0U].Loads().size()) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(result.Value().Warnings()[0U].keyword, ""OUTPUT"") | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), ""invalid-keyword-parameter""), nullptr)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsS4AndS4rThroughOneMitc4Identity InpDomainMapping.MapsS4AndS4rThroughOneMitc4Identity; assertion 40개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsS4AndS4rThroughOneMitc4Identity 유지 원문 검사 body 및 assertion 동일. 73516cc1de335e84ad43308d44db8ab9748911b9df15b569a3db4a78b3694a71 73516cc1de335e84ad43308d44db8ab9748911b9df15b569a3db4a78b3694a71 "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(domain.BeamElements().Empty()) | ASSERT_EQ(domain.Elements().Size(), 4U) | EXPECT_EQ(domain.Elements()[0U].Kind(), fesa::ElementDefinitionKind::kMitc4Shell) | EXPECT_EQ(domain.Elements()[0U].SourceElementType(), ""S4"") | EXPECT_EQ(domain.Elements()[1U].SourceElementType(), ""S4R"") | EXPECT_EQ(&domain.Elements()[0U], &domain.ShellElements()[0U]) | ASSERT_EQ(domain.ShellElements().Size(), 4U) | EXPECT_EQ(domain.ShellElements()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label_text, ""0010"") | EXPECT_EQ(domain.ShellElements()[0].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[0].node_indices, (std::array{0U, 1U, 2U, 3U})) | EXPECT_EQ(domain.ShellElements()[0].section_index, 0U) | EXPECT_EQ(domain.ShellElements()[0].material_index, 0U) | EXPECT_EQ(domain.ShellElements()[1].source_id.instance_name, ""First"") | EXPECT_EQ(domain.ShellElements()[1].source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_EQ(domain.ShellElements()[1].node_indices, (std::array{1U, 4U, 5U, 2U})) | EXPECT_EQ(domain.ShellElements()[1].section_index, 1U) | EXPECT_EQ(domain.ShellElements()[1].material_index, 1U) | EXPECT_EQ(domain.ShellElements()[2].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.ShellElements()[2].node_indices, (std::array{6U, 7U, 8U, 9U})) | EXPECT_EQ(domain.ShellElements()[3].source_id.instance_name, ""Second"") | EXPECT_EQ(fesa::kMitc4InternalFormulation, std::string_view{""FESA-MITC4""}) | ASSERT_EQ(domain.ShellSections().Size(), 2U) | EXPECT_EQ(domain.ShellSections()[0].name, ""ShellS4"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[0].thickness, 0.1) | EXPECT_EQ(domain.ShellSections()[0].material_index, 0U) | EXPECT_EQ(domain.ShellSections()[1].name, ""ShellS4R"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[1].thickness, 0.2) | EXPECT_EQ(domain.ShellSections()[1].material_index, 1U) | ASSERT_EQ(domain.ShellNodeInitialFrames().size(), domain.Nodes().size()) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].node_index, 0U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].director, (std::array{0.0, 0.0, 1.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_a, (std::array{1.0, 0.0, 0.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_b, (std::array{0.0, 1.0, 0.0})) | ASSERT_EQ(domain.Steps().Size(), 1U) | ASSERT_EQ(domain.Steps()[0].PrescribedDisplacements().Size(), 6U) | EXPECT_EQ(domain.Steps()[0].PrescribedDisplacements()[5U].Component(), fesa::DofComponent::kUrz) | ASSERT_EQ(domain.Steps()[0].ConcentratedLoads().Size(), 1U) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[5U], 1.0)" "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(domain.BeamElements().Empty()) | ASSERT_EQ(domain.Elements().Size(), 4U) | EXPECT_EQ(domain.Elements()[0U].Kind(), fesa::ElementDefinitionKind::kMitc4Shell) | EXPECT_EQ(domain.Elements()[0U].SourceElementType(), ""S4"") | EXPECT_EQ(domain.Elements()[1U].SourceElementType(), ""S4R"") | EXPECT_EQ(&domain.Elements()[0U], &domain.ShellElements()[0U]) | ASSERT_EQ(domain.ShellElements().Size(), 4U) | EXPECT_EQ(domain.ShellElements()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label_text, ""0010"") | EXPECT_EQ(domain.ShellElements()[0].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[0].node_indices, (std::array{0U, 1U, 2U, 3U})) | EXPECT_EQ(domain.ShellElements()[0].section_index, 0U) | EXPECT_EQ(domain.ShellElements()[0].material_index, 0U) | EXPECT_EQ(domain.ShellElements()[1].source_id.instance_name, ""First"") | EXPECT_EQ(domain.ShellElements()[1].source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_EQ(domain.ShellElements()[1].node_indices, (std::array{1U, 4U, 5U, 2U})) | EXPECT_EQ(domain.ShellElements()[1].section_index, 1U) | EXPECT_EQ(domain.ShellElements()[1].material_index, 1U) | EXPECT_EQ(domain.ShellElements()[2].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.ShellElements()[2].node_indices, (std::array{6U, 7U, 8U, 9U})) | EXPECT_EQ(domain.ShellElements()[3].source_id.instance_name, ""Second"") | EXPECT_EQ(fesa::kMitc4InternalFormulation, std::string_view{""FESA-MITC4""}) | ASSERT_EQ(domain.ShellSections().Size(), 2U) | EXPECT_EQ(domain.ShellSections()[0].name, ""ShellS4"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[0].thickness, 0.1) | EXPECT_EQ(domain.ShellSections()[0].material_index, 0U) | EXPECT_EQ(domain.ShellSections()[1].name, ""ShellS4R"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[1].thickness, 0.2) | EXPECT_EQ(domain.ShellSections()[1].material_index, 1U) | ASSERT_EQ(domain.ShellNodeInitialFrames().size(), domain.Nodes().size()) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].node_index, 0U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].director, (std::array{0.0, 0.0, 1.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_a, (std::array{1.0, 0.0, 0.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_b, (std::array{0.0, 1.0, 0.0})) | ASSERT_EQ(domain.Steps().Size(), 1U) | ASSERT_EQ(domain.Steps()[0].PrescribedDisplacements().Size(), 6U) | EXPECT_EQ(domain.Steps()[0].PrescribedDisplacements()[5U].Component(), fesa::DofComponent::kUrz) | ASSERT_EQ(domain.Steps()[0].ConcentratedLoads().Size(), 1U) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[5U], 1.0)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidShellAssignmentsAndProperties InpDomainMapping.RejectsInvalidShellAssignmentsAndProperties; assertion 3개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidShellAssignmentsAndProperties 유지 원문 검사 body 및 assertion 동일. 785c82079cd94789aa85628e9ec1e3529ac1ca34099e3eb76d1e740bc3de5cb8 785c82079cd94789aa85628e9ec1e3529ac1ca34099e3eb76d1e740bc3de5cb8 ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), test_case.category) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr) ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), test_case.category) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidShellConnectivityOptionsAndMixedModels InpDomainMapping.RejectsInvalidShellConnectivityOptionsAndMixedModels; assertion 3개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidShellConnectivityOptionsAndMixedModels 유지 원문 검사 body 및 assertion 동일. 1156d85feb44cb57821111e3498517c200f57a2a20825d5ee20c89de67879b15 1156d85feb44cb57821111e3498517c200f57a2a20825d5ee20c89de67879b15 ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr) ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.PreservesProcedureLoadAndOutputRequestBoundariesForShells InpDomainMapping.PreservesProcedureLoadAndOutputRequestBoundariesForShells; assertion 8개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.PreservesProcedureLoadAndOutputRequestBoundariesForShells 유지 원문 검사 body 및 assertion 동일. 7dad7b84e339df37b9157bcf3dbb1d1899586060ffd077353911cde6901f8aae 7dad7b84e339df37b9157bcf3dbb1d1899586060ffd077353911cde6901f8aae "ASSERT_TRUE(valid.HasValue()) | ASSERT_EQ(valid.Value().Warnings().size(), 3U) | EXPECT_EQ(valid.Value().Warnings()[0].keyword, ""OUTPUT"") | EXPECT_EQ(valid.Value().Warnings()[1].keyword, ""NODE OUTPUT"") | EXPECT_EQ(valid.Value().Warnings()[2].keyword, ""ELEMENT OUTPUT"") | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr)" "ASSERT_TRUE(valid.HasValue()) | ASSERT_EQ(valid.Value().Warnings().size(), 3U) | EXPECT_EQ(valid.Value().Warnings()[0].keyword, ""OUTPUT"") | EXPECT_EQ(valid.Value().Warnings()[1].keyword, ""NODE OUTPUT"") | EXPECT_EQ(valid.Value().Warnings()[2].keyword, ""ELEMENT OUTPUT"") | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsUnsupportedAndInvalidPortfolio InpDomainMapping.RejectsUnsupportedAndInvalidPortfolio; assertion 14개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsUnsupportedAndInvalidPortfolio 유지 원문 검사 body 및 assertion 동일. 33dae7daee6b5f3283f0dc0c01c58157947c30d91394f6804227b17e827a84ad 33dae7daee6b5f3283f0dc0c01c58157947c30d91394f6804227b17e827a84ad "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), test_case.category) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->severity, fesa::Severity::kError) | EXPECT_FALSE(diagnostic->location.file.empty()) | EXPECT_GT(diagnostic->location.line, 0U) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->severity, fesa::Severity::kError) | EXPECT_EQ(diagnostic->keyword, test_case.expected_keyword) | EXPECT_EQ(diagnostic->entity_identity, ""1"") | EXPECT_EQ(diagnostic->location.line, test_case.expected_line) | EXPECT_EQ(diagnostic->location.file.filename().string(), ""fesa-domain-mapper-same-token-"" + test_case.name + "".inp"")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), test_case.category) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->severity, fesa::Severity::kError) | EXPECT_FALSE(diagnostic->location.file.empty()) | EXPECT_GT(diagnostic->location.line, 0U) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->severity, fesa::Severity::kError) | EXPECT_EQ(diagnostic->keyword, test_case.expected_keyword) | EXPECT_EQ(diagnostic->entity_identity, ""1"") | EXPECT_EQ(diagnostic->location.line, test_case.expected_line) | EXPECT_EQ(diagnostic->location.file.filename().string(), ""fesa-domain-mapper-same-token-"" + test_case.name + "".inp"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsDloadWithoutDistributedLoadObject InpDomainMapping.RejectsDloadWithoutDistributedLoadObject; assertion 4개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsDloadWithoutDistributedLoadObject 유지 원문 검사 body 및 assertion 동일. e3e84f2ef580a2306947632bf01bb5fbe250460b5c86095164b54fb00f2ebea9 e3e84f2ef580a2306947632bf01bb5fbe250460b5c86095164b54fb00f2ebea9 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->keyword, ""DLOAD"")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->keyword, ""DLOAD"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/domain_mapper_test.cpp support@1-253 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if, MapText, ReadExactBytes, RepositoryRoot, FindDiagnostic, find_if, ReplaceOnce, MinimalDeck, ShellDeck, NonlinearShellDeck, SupportedInventoryDeck tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d4a3cb30beb5a5732a40fb39fe5981aa1156d1ea97812454c30bf93fbbff733e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/domain_mapper_test.cpp support@578-579 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a17d35bc26ea1a9c371b82c2b0318318ea0f138663e240361e4f36b6b36e28a3 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/domain_mapper_test.cpp support@601-602 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d3465cabe35b62c482d5bfbc700278989749bc95ced8528c179fabf2e46b1e9d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/domain_mapper_test.cpp support@618-619 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2dda137dd997f072d5e1721f3fef902ee6eba433d87b0cc65c0ec3bcc92449aa 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/domain_mapper_test.cpp support@643-644 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9d6708ab0855db443bd63e7f30d47944821695395efba5b5687f458ad88232ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/domain_mapper_test.cpp support@680-681 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 48cc0be2d1c45cc611d13733472689fca4e37d761ae0374cc74fa3e4f1e83bac 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/domain_mapper_test.cpp support@717-719 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5fd581bec64057435da242b600880b7876a63ab7f90c83629f761adb523253b9 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/domain_mapper_test.cpp support@781-782 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f887854314ac3472576dbefddf88818cb395844ceb68f8e943b64a304cae6a92 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/domain_mapper_test.cpp support@824-825 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fad76b68876263d3277eb79c04e1ae0ce1719f94a92fdd3b1765729c0e1790b0 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/domain_mapper_test.cpp support@863-864 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3b8e0519340ad1aa555a27d246833b7379abb093fe25d9f4bc115c04a15f18f1 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/domain_mapping_components_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/io/abaqus/domain_mapping_components_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a515704fe97d521d11a2b7c95e41e0f7ec6557f3ee7e4dd5017a8c9757358f9a a515704fe97d521d11a2b7c95e41e0f7ec6557f3ee7e4dd5017a8c9757358f9a 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001BuildsStableCandidatesBeforeAtomicDomainCommit DomainMappingComponents.CModule001BuildsStableCandidatesBeforeAtomicDomainCommit; assertion 32개 tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001BuildsStableCandidatesBeforeAtomicDomainCommit 유지 원문 검사 body 및 assertion 동일. 5d6ea9aacc764e212a94ecc20d15d795679922368c9c6404c6375192ba222df7 5d6ea9aacc764e212a94ecc20d15d795679922368c9c6404c6375192ba222df7 "ASSERT_TRUE(topology_mapper.Map(context).IsOk()) | EXPECT_EQ(summary.part_count, 1U) | EXPECT_EQ(summary.node_count, 2U) | EXPECT_EQ(summary.element_count, 1U) | EXPECT_EQ(summary.instance_count, 1U) | EXPECT_EQ(summary.node_set_count, 3U) | EXPECT_EQ(summary.element_set_count, 1U) | EXPECT_EQ(summary.material_count, 1U) | EXPECT_EQ(summary.beam_section_count, 1U) | EXPECT_EQ(summary.shell_section_count, 0U) | EXPECT_EQ(summary.model_boundary_count, 1U) | EXPECT_EQ(summary.step_boundary_count, 1U) | EXPECT_EQ(summary.step_load_count, 1U) | EXPECT_TRUE(summary.has_static_step) | ASSERT_TRUE(material_property_mapper.Map(context).IsOk()) | ASSERT_TRUE(topology_mapper.Finalize(context).IsOk()) | ASSERT_TRUE(step_definition_mapper.Map(context).IsOk()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Elements().Size(), 1U) | EXPECT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Properties().Size(), 1U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0].ProcedureKind(), StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(domain.Steps()[0].IsNonlinearStatic()) | EXPECT_EQ(domain.Steps()[0].BoundaryConditions().size(), 7U) | EXPECT_EQ(domain.Steps()[0].Loads().size(), 1U) | ASSERT_EQ(domain.Warnings().size(), 3U) | EXPECT_EQ(domain.Warnings()[0].keyword, ""PREPRINT"") | EXPECT_EQ( domain.Warnings()[0].message, ""The allowlisted Abaqus keyword is ignored without semantic effect."") | EXPECT_EQ(domain.Warnings()[1].keyword, ""OUTPUT"") | EXPECT_EQ(domain.Warnings()[2].keyword, ""NODE OUTPUT"")" "ASSERT_TRUE(topology_mapper.Map(context).IsOk()) | EXPECT_EQ(summary.part_count, 1U) | EXPECT_EQ(summary.node_count, 2U) | EXPECT_EQ(summary.element_count, 1U) | EXPECT_EQ(summary.instance_count, 1U) | EXPECT_EQ(summary.node_set_count, 3U) | EXPECT_EQ(summary.element_set_count, 1U) | EXPECT_EQ(summary.material_count, 1U) | EXPECT_EQ(summary.beam_section_count, 1U) | EXPECT_EQ(summary.shell_section_count, 0U) | EXPECT_EQ(summary.model_boundary_count, 1U) | EXPECT_EQ(summary.step_boundary_count, 1U) | EXPECT_EQ(summary.step_load_count, 1U) | EXPECT_TRUE(summary.has_static_step) | ASSERT_TRUE(material_property_mapper.Map(context).IsOk()) | ASSERT_TRUE(topology_mapper.Finalize(context).IsOk()) | ASSERT_TRUE(step_definition_mapper.Map(context).IsOk()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Elements().Size(), 1U) | EXPECT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Properties().Size(), 1U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0].ProcedureKind(), StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(domain.Steps()[0].IsNonlinearStatic()) | EXPECT_EQ(domain.Steps()[0].BoundaryConditions().size(), 7U) | EXPECT_EQ(domain.Steps()[0].Loads().size(), 1U) | ASSERT_EQ(domain.Warnings().size(), 3U) | EXPECT_EQ(domain.Warnings()[0].keyword, ""PREPRINT"") | EXPECT_EQ( domain.Warnings()[0].message, ""The allowlisted Abaqus keyword is ignored without semantic effect."") | EXPECT_EQ(domain.Warnings()[1].keyword, ""OUTPUT"") | EXPECT_EQ(domain.Warnings()[2].keyword, ""NODE OUTPUT"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001PreservesExactFirstFailureThroughFacade DomainMappingComponents.CModule001PreservesExactFirstFailureThroughFacade; assertion 12개 tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001PreservesExactFirstFailureThroughFacade 유지 원문 검사 body 및 assertion 동일. 77d7cab182b4b08c392cd8698050105755faa3d1fbfef4c56fdd4d02bca34624 77d7cab182b4b08c392cd8698050105755faa3d1fbfef4c56fdd4d02bca34624 "ASSERT_FALSE(component_status.IsOk()) | ASSERT_EQ(component_status.Diagnostics().size(), 1U) | EXPECT_EQ(component_status.Category(), FailureCategory::kInput) | EXPECT_EQ(component_diagnostic.severity, Severity::kError) | EXPECT_EQ(component_diagnostic.code, ""unsupported-keyword"") | EXPECT_EQ(component_diagnostic.location.line, 1U) | EXPECT_EQ(component_diagnostic.keyword, ""NODE"") | EXPECT_TRUE(component_diagnostic.entity_identity.empty()) | EXPECT_EQ(component_diagnostic.message, ""The keyword is outside the approved Abaqus subset."") | ASSERT_FALSE(facade_result.HasValue()) | ASSERT_EQ(facade_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(facade_result.GetStatus().Category(), component_status.Category())" "ASSERT_FALSE(component_status.IsOk()) | ASSERT_EQ(component_status.Diagnostics().size(), 1U) | EXPECT_EQ(component_status.Category(), FailureCategory::kInput) | EXPECT_EQ(component_diagnostic.severity, Severity::kError) | EXPECT_EQ(component_diagnostic.code, ""unsupported-keyword"") | EXPECT_EQ(component_diagnostic.location.line, 1U) | EXPECT_EQ(component_diagnostic.keyword, ""NODE"") | EXPECT_TRUE(component_diagnostic.entity_identity.empty()) | EXPECT_EQ(component_diagnostic.message, ""The keyword is outside the approved Abaqus subset."") | ASSERT_FALSE(facade_result.HasValue()) | ASSERT_EQ(facade_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(facade_result.GetStatus().Category(), component_status.Category())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001RejectsInvalidMaterialAtOwningComponent DomainMappingComponents.CModule001RejectsInvalidMaterialAtOwningComponent; assertion 9개 tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001RejectsInvalidMaterialAtOwningComponent 유지 원문 검사 body 및 assertion 동일. ace412f6dba5699c19fff85961b58458545b93fc1e7be9ec005053d32d7acf22 ace412f6dba5699c19fff85961b58458545b93fc1e7be9ec005053d32d7acf22 "ASSERT_TRUE(TopologyMapper{}.Map(context).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Category(), FailureCategory::kModel) | EXPECT_EQ(diagnostic.code, ""invalid-beam-property"") | EXPECT_EQ(diagnostic.location.line, 26U) | EXPECT_EQ(diagnostic.keyword, ""ELASTIC"") | EXPECT_EQ(diagnostic.entity_identity, ""Steel"") | EXPECT_EQ(diagnostic.message, ""E and the derived G=E/(2*(1+nu)) must be positive."")" "ASSERT_TRUE(TopologyMapper{}.Map(context).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Category(), FailureCategory::kModel) | EXPECT_EQ(diagnostic.code, ""invalid-beam-property"") | EXPECT_EQ(diagnostic.location.line, 26U) | EXPECT_EQ(diagnostic.keyword, ""ELASTIC"") | EXPECT_EQ(diagnostic.entity_identity, ""Steel"") | EXPECT_EQ(diagnostic.message, ""E and the derived G=E/(2*(1+nu)) must be positive."")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001RejectsUnresolvedLoadAtOwningComponent DomainMappingComponents.CModule001RejectsUnresolvedLoadAtOwningComponent; assertion 11개 tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001RejectsUnresolvedLoadAtOwningComponent 유지 원문 검사 body 및 assertion 동일. 22839ffd4c1c68b4f200226079345550d9e13e7c212d27881edf14d3bea5ae3a 22839ffd4c1c68b4f200226079345550d9e13e7c212d27881edf14d3bea5ae3a "ASSERT_TRUE(topology_mapper.Map(context).IsOk()) | ASSERT_TRUE(MaterialPropertyMapper{}.Map(context).IsOk()) | ASSERT_TRUE(topology_mapper.Finalize(context).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Category(), FailureCategory::kInput) | EXPECT_EQ(diagnostic.code, ""unresolved-reference"") | EXPECT_EQ(diagnostic.location.line, 35U) | EXPECT_EQ(diagnostic.keyword, ""CLOAD"") | EXPECT_EQ(diagnostic.entity_identity, ""Missing"") | EXPECT_EQ(diagnostic.message, ""The boundary or load target must resolve unambiguously to one "" ""node or one node set."")" "ASSERT_TRUE(topology_mapper.Map(context).IsOk()) | ASSERT_TRUE(MaterialPropertyMapper{}.Map(context).IsOk()) | ASSERT_TRUE(topology_mapper.Finalize(context).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Category(), FailureCategory::kInput) | EXPECT_EQ(diagnostic.code, ""unresolved-reference"") | EXPECT_EQ(diagnostic.location.line, 35U) | EXPECT_EQ(diagnostic.keyword, ""CLOAD"") | EXPECT_EQ(diagnostic.entity_identity, ""Missing"") | EXPECT_EQ(diagnostic.message, ""The boundary or load target must resolve unambiguously to one "" ""node or one node set."")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/domain_mapping_components_test.cpp support@1-116 helper/oracle/fixture/include/static assertion 구간: fesa, TemporaryComponentInput, if, ParseComponentInput, ValidComponentDeck, ReplaceOnce, ExpectSameDiagnostic tests/unit/io/abaqus/domain_mapping_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eafbafda80ba9658302f8c6c61d966863cd6dcaf43f376b99f8eafae256f165b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/domain_mapping_components_test.cpp support@240-242 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/io/abaqus/domain_mapping_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8aeadfd7d5a45c48cf01367ce365d0afada064b00686836fc0fc603596c9df16 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/eigen_domain_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/io/abaqus/eigen_domain_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 092b4127f43e6ba27485ad4043ba8b2d80b310299cdf66858fbc239342faa746 092b4127f43e6ba27485ad4043ba8b2d80b310299cdf66858fbc239342faa746 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.PreservesFrequencyDensityAndSourceStepIdentity EigenDomainMapping.PreservesFrequencyDensityAndSourceStepIdentity; assertion 16개 tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.PreservesFrequencyDensityAndSourceStepIdentity 유지 원문 검사 body 및 assertion 동일. 0e1fbd3de3417171d6a1a291aeafd0b174bc5cd44701267198cf8826ca5bf074 0e1fbd3de3417171d6a1a291aeafd0b174bc5cd44701267198cf8826ca5bf074 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Densities().size(), 1U) | EXPECT_EQ(domain.Densities()[0].material_index, fesa::EntityIndex{0U}) | EXPECT_DOUBLE_EQ(domain.Densities()[0].rho, 2700.0) | ASSERT_NE(domain.Frequency(), nullptr) | EXPECT_EQ(domain.Frequency()->source_step_name_raw, ""Step-2"") | EXPECT_EQ(domain.Frequency()->source_step_name_canonical, ""STEP-2"") | EXPECT_EQ(domain.Frequency()->requested_mode_count, 10) | EXPECT_TRUE(domain.Frequency()->perturbation_explicit) | EXPECT_TRUE(domain.Frequency()->sim_explicit) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_TRUE(domain.Steps()[0U].IsFrequency()) | EXPECT_EQ(domain.Steps()[0U].Frequency(), domain.Frequency()) | EXPECT_EQ(domain.Steps()[0U].Name(), ""Step-2"") | ASSERT_EQ(domain.Steps()[0U].BoundaryConditions().size(), 6U) | EXPECT_TRUE(domain.Steps()[0U].Loads().empty())" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Densities().size(), 1U) | EXPECT_EQ(domain.Densities()[0].material_index, fesa::EntityIndex{0U}) | EXPECT_DOUBLE_EQ(domain.Densities()[0].rho, 2700.0) | ASSERT_NE(domain.Frequency(), nullptr) | EXPECT_EQ(domain.Frequency()->source_step_name_raw, ""Step-2"") | EXPECT_EQ(domain.Frequency()->source_step_name_canonical, ""STEP-2"") | EXPECT_EQ(domain.Frequency()->requested_mode_count, 10) | EXPECT_TRUE(domain.Frequency()->perturbation_explicit) | EXPECT_TRUE(domain.Frequency()->sim_explicit) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_TRUE(domain.Steps()[0U].IsFrequency()) | EXPECT_EQ(domain.Steps()[0U].Frequency(), domain.Frequency()) | EXPECT_EQ(domain.Steps()[0U].Name(), ""Step-2"") | ASSERT_EQ(domain.Steps()[0U].BoundaryConditions().size(), 6U) | EXPECT_TRUE(domain.Steps()[0U].Loads().empty())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsInvalidDensityAndFrequencySlots EigenDomainMapping.RejectsInvalidDensityAndFrequencySlots; assertion 4개 tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsInvalidDensityAndFrequencySlots 유지 원문 검사 body 및 assertion 동일. 92b68d2ac096a03a02bfacd600af2432bfd869eedeeeeb2f06aa6d4d156e4797 92b68d2ac096a03a02bfacd600af2432bfd869eedeeeeb2f06aa6d4d156e4797 "ASSERT_FALSE(density.HasValue()) | EXPECT_NE(FindDiagnostic(density.GetStatus(), ""invalid-density-data""), nullptr) | ASSERT_FALSE(slots.HasValue()) | EXPECT_NE(FindDiagnostic(slots.GetStatus(), ""invalid-frequency-data""), nullptr)" "ASSERT_FALSE(density.HasValue()) | EXPECT_NE(FindDiagnostic(density.GetStatus(), ""invalid-density-data""), nullptr) | ASSERT_FALSE(slots.HasValue()) | EXPECT_NE(FindDiagnostic(slots.GetStatus(), ""invalid-frequency-data""), nullptr)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsMissingActiveDensityAndNonzeroBoundary EigenDomainMapping.RejectsMissingActiveDensityAndNonzeroBoundary; assertion 6개 tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsMissingActiveDensityAndNonzeroBoundary 유지 원문 검사 body 및 assertion 동일. 0b9cfbdd813264e533fb5963dcf276adbd874f0777af515e8fb4aac85015b873 0b9cfbdd813264e533fb5963dcf276adbd874f0777af515e8fb4aac85015b873 "ASSERT_NE(density_location, std::string::npos) | ASSERT_FALSE(missing.HasValue()) | EXPECT_NE(FindDiagnostic(missing.GetStatus(), ""missing-material-density""), nullptr) | ASSERT_NE(location, std::string::npos) | ASSERT_FALSE(boundary.HasValue()) | EXPECT_NE(FindDiagnostic(boundary.GetStatus(), ""unsupported-eigen-boundary""), nullptr)" "ASSERT_NE(density_location, std::string::npos) | ASSERT_FALSE(missing.HasValue()) | EXPECT_NE(FindDiagnostic(missing.GetStatus(), ""missing-material-density""), nullptr) | ASSERT_NE(location, std::string::npos) | ASSERT_FALSE(boundary.HasValue()) | EXPECT_NE(FindDiagnostic(boundary.GetStatus(), ""unsupported-eigen-boundary""), nullptr)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsMixedProceduresInvalidOutputAndSurface EigenDomainMapping.RejectsMixedProceduresInvalidOutputAndSurface; assertion 5개 tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsMixedProceduresInvalidOutputAndSurface 유지 원문 검사 body 및 assertion 동일. 435331124510d6cb20b7a86e468786ff0faa434d408e82d0534542553d875f92 435331124510d6cb20b7a86e468786ff0faa434d408e82d0534542553d875f92 "ASSERT_FALSE(mixed_result.HasValue()) | EXPECT_NE(FindDiagnostic(mixed_result.GetStatus(), ""unsupported-analysis-procedure""), nullptr) | ASSERT_FALSE(wrong_output.HasValue()) | EXPECT_NE(FindDiagnostic(wrong_output.GetStatus(), ""unsupported-keyword""), nullptr) | ASSERT_FALSE(surface_result.HasValue())" "ASSERT_FALSE(mixed_result.HasValue()) | EXPECT_NE(FindDiagnostic(mixed_result.GetStatus(), ""unsupported-analysis-procedure""), nullptr) | ASSERT_FALSE(wrong_output.HasValue()) | EXPECT_NE(FindDiagnostic(wrong_output.GetStatus(), ""unsupported-keyword""), nullptr) | ASSERT_FALSE(surface_result.HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsInvalidPreprintAndAcceptsStrictNoOp EigenDomainMapping.RejectsInvalidPreprintAndAcceptsStrictNoOp; assertion 7개 tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsInvalidPreprintAndAcceptsStrictNoOp 유지 원문 검사 body 및 assertion 동일. 8c7a14159391fe657f7760127eb8ab1901d5a25a41c138256a5d83cce9c427ee 8c7a14159391fe657f7760127eb8ab1901d5a25a41c138256a5d83cce9c427ee "ASSERT_TRUE(accepted.HasValue()) | ASSERT_NE(warning, accepted.Value().Warnings().end()) | EXPECT_EQ(warning->message, ""mandatory-eigen-output-unchanged"") | ASSERT_FALSE(rejected.HasValue()) | EXPECT_NE(FindDiagnostic(rejected.GetStatus(), ""unsupported-keyword""), nullptr) | ASSERT_FALSE(missing_parameters.HasValue()) | EXPECT_NE( FindDiagnostic(missing_parameters.GetStatus(), ""unsupported-keyword""), nullptr)" "ASSERT_TRUE(accepted.HasValue()) | ASSERT_NE(warning, accepted.Value().Warnings().end()) | EXPECT_EQ(warning->message, ""mandatory-eigen-output-unchanged"") | ASSERT_FALSE(rejected.HasValue()) | EXPECT_NE(FindDiagnostic(rejected.GetStatus(), ""unsupported-keyword""), nullptr) | ASSERT_FALSE(missing_parameters.HasValue()) | EXPECT_NE( FindDiagnostic(missing_parameters.GetStatus(), ""unsupported-keyword""), nullptr)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/eigen_domain_test.cpp support@1-98 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if, MapText, EigenDeck, FindDiagnostic, for tests/unit/io/abaqus/eigen_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6c0ec5ff9d6242012df3aba6a1f123cd5503d7d8e747d530582db2a7f767719c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/eigen_domain_test.cpp support@206-207 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/eigen_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 20개 tests/unit/io/abaqus/hex8_semantics_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0804a9ef5cb15fdee5c06d4f3ba05b626ebcae6952360bb769271d457bc9530c 0804a9ef5cb15fdee5c06d4f3ba05b626ebcae6952360bb769271d457bc9530c 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.MapsEightSourceNodesAndExactlyThreePhysicalDofs Hex8Semantics.MapsEightSourceNodesAndExactlyThreePhysicalDofs; assertion 9개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.MapsEightSourceNodesAndExactlyThreePhysicalDofs 유지 원문 검사 body 및 assertion 동일. c75e22a597ed7445ed43c51b03fb254b6373984026f78f773a97d32687cb7272 c75e22a597ed7445ed43c51b03fb254b6373984026f78f773a97d32687cb7272 "ASSERT_TRUE(domain.HasValue()) | ASSERT_EQ(domain.Value().Elements().Size(), 1U) | EXPECT_EQ(domain.Value().Elements()[0].SourceElementType(), ""C3D8"") | EXPECT_EQ(domain.Value().Elements()[0].SourceId().source_label, 99) | EXPECT_EQ(domain.Value().Elements()[0].NodeIndices().size(), 8U) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().ConstrainedDofCount(), 3U)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_EQ(domain.Value().Elements().Size(), 1U) | EXPECT_EQ(domain.Value().Elements()[0].SourceElementType(), ""C3D8"") | EXPECT_EQ(domain.Value().Elements()[0].SourceId().source_label, 99) | EXPECT_EQ(domain.Value().Elements()[0].NodeIndices().size(), 8U) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().ConstrainedDofCount(), 3U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.InactiveZeroRotationsWarnAndDoNotCreateConstraints Hex8Semantics.InactiveZeroRotationsWarnAndDoNotCreateConstraints; assertion 6개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.InactiveZeroRotationsWarnAndDoNotCreateConstraints 유지 원문 검사 body 및 assertion 동일. 4e9c9d68352626fe0b450e289080ee34f84a54c33b71e1520c4b57a389fe61cb 4e9c9d68352626fe0b450e289080ee34f84a54c33b71e1520c4b57a389fe61cb "ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().Steps()[0].BoundaryConditions().size(), 3U) | ASSERT_FALSE(domain.Value().Warnings().empty()) | EXPECT_EQ(domain.Value().Warnings().back().keyword, ""BOUNDARY"") | EXPECT_EQ(domain.Value().Warnings().back().entity_identity, ""10"") | EXPECT_GT(domain.Value().Warnings().back().location.line, 0U)" "ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().Steps()[0].BoundaryConditions().size(), 3U) | ASSERT_FALSE(domain.Value().Warnings().empty()) | EXPECT_EQ(domain.Value().Warnings().back().keyword, ""BOUNDARY"") | EXPECT_EQ(domain.Value().Warnings().back().entity_identity, ""10"") | EXPECT_GT(domain.Value().Warnings().back().location.line, 0U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsNonzeroRotationsAndAllRotationalLoads Hex8Semantics.RejectsNonzeroRotationsAndAllRotationalLoads; assertion 2개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsNonzeroRotationsAndAllRotationalLoads 유지 원문 검사 body 및 assertion 동일. a6d35c2ca679aa7f1b383ead3d9f703d1fa2c74effec04ea46aa3d85e197d622 a6d35c2ca679aa7f1b383ead3d9f703d1fa2c74effec04ea46aa3d85e197d622 "EXPECT_FALSE(Map(Deck(""*Static\n1,1,1,1\n"", ""10,4,4,1\n"")).HasValue()) | EXPECT_FALSE( Map(Deck(""*Static\n1,1,1,1\n"", ""10,1,3\n*Cload\n20,4,0\n"")).HasValue())" "EXPECT_FALSE(Map(Deck(""*Static\n1,1,1,1\n"", ""10,4,4,1\n"")).HasValue()) | EXPECT_FALSE( Map(Deck(""*Static\n1,1,1,1\n"", ""10,1,3\n*Cload\n20,4,0\n"")).HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RotationNoOpPreservesPhysicalMapAndLoads Hex8Semantics.RotationNoOpPreservesPhysicalMapAndLoads; assertion 17개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RotationNoOpPreservesPhysicalMapAndLoads 유지 원문 검사 body 및 assertion 동일. 3df0931a844f2efcc21ddebf1505036c8f9a55af7163f978f456efad1136cbdc 3df0931a844f2efcc21ddebf1505036c8f9a55af7163f978f456efad1136cbdc ASSERT_TRUE(physical.HasValue()) | ASSERT_TRUE(extra.HasValue()) | ASSERT_TRUE(pd.HasValue()) | ASSERT_TRUE(ed.HasValue()) | EXPECT_EQ(pd.Value().FreeDofs(), ed.Value().FreeDofs()) | EXPECT_EQ(pd.Value().ConstrainedDofs(), ed.Value().ConstrainedDofs()) | EXPECT_EQ(pd.Value().GetSparsePattern().column_indices, ed.Value().GetSparsePattern().column_indices) | EXPECT_EQ(ed.Value().Profile(), fesa::DofProfile::kSolidStructural) | EXPECT_EQ(ed.Value().ComponentsPerNode(), 3U) | EXPECT_THROW(ed.Value().FullDof(0, fesa::DofComponent::kUrx), std::out_of_range) | ASSERT_TRUE(scatter.HasValue()) | EXPECT_EQ(scatter.Value().size(), 24U) | EXPECT_EQ(scatter.Value().front(), 0U) | EXPECT_EQ(scatter.Value().back(), 23U) | ASSERT_TRUE(pf.HasValue()) | ASSERT_TRUE(ef.HasValue()) | EXPECT_EQ(pf.Value()[i], ef.Value()[i]) ASSERT_TRUE(physical.HasValue()) | ASSERT_TRUE(extra.HasValue()) | ASSERT_TRUE(pd.HasValue()) | ASSERT_TRUE(ed.HasValue()) | EXPECT_EQ(pd.Value().FreeDofs(), ed.Value().FreeDofs()) | EXPECT_EQ(pd.Value().ConstrainedDofs(), ed.Value().ConstrainedDofs()) | EXPECT_EQ(pd.Value().GetSparsePattern().column_indices, ed.Value().GetSparsePattern().column_indices) | EXPECT_EQ(ed.Value().Profile(), fesa::DofProfile::kSolidStructural) | EXPECT_EQ(ed.Value().ComponentsPerNode(), 3U) | EXPECT_THROW(ed.Value().FullDof(0, fesa::DofComponent::kUrx), std::out_of_range) | ASSERT_TRUE(scatter.HasValue()) | EXPECT_EQ(scatter.Value().size(), 24U) | EXPECT_EQ(scatter.Value().front(), 0U) | EXPECT_EQ(scatter.Value().back(), 23U) | ASSERT_TRUE(pf.HasValue()) | ASSERT_TRUE(ef.HasValue()) | EXPECT_EQ(pf.Value()[i], ef.Value()[i]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsTinyRotationBadTargetsOptionsAndDofRanges Hex8Semantics.RejectsTinyRotationBadTargetsOptionsAndDofRanges; assertion 7개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsTinyRotationBadTargetsOptionsAndDofRanges 유지 원문 검사 body 및 assertion 동일. fbaffb1fa7018c85cecd369894293b24dc2a62bf82f918cbd99dbb3c17a70589 fbaffb1fa7018c85cecd369894293b24dc2a62bf82f918cbd99dbb3c17a70589 "EXPECT_FALSE(Map(Deck(""*Static\n1,1,1,1\n"", row)).HasValue()) | EXPECT_FALSE( Map(Replace(Deck(), ""*Boundary"", ""*Boundary,"" + option)).HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().Steps()[0].BoundaryConditions().empty()) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(result.Value().Warnings()[0].code, ""inactive-solid-rotation-boundary"") | EXPECT_EQ(result.Value().Warnings()[0].severity, fesa::Severity::kWarning)" "EXPECT_FALSE(Map(Deck(""*Static\n1,1,1,1\n"", row)).HasValue()) | EXPECT_FALSE( Map(Replace(Deck(), ""*Boundary"", ""*Boundary,"" + option)).HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().Steps()[0].BoundaryConditions().empty()) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(result.Value().Warnings()[0].code, ""inactive-solid-rotation-boundary"") | EXPECT_EQ(result.Value().Warnings()[0].severity, fesa::Severity::kWarning)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AllowsEmptyFreeAndNoBoundaryModels Hex8Semantics.AllowsEmptyFreeAndNoBoundaryModels; assertion 4개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AllowsEmptyFreeAndNoBoundaryModels 유지 원문 검사 body 및 assertion 동일. b57d0718c1ed58f9fc97136333cada362aeee8c776148cd4cd14bf251fdbb27b b57d0718c1ed58f9fc97136333cada362aeee8c776148cd4cd14bf251fdbb27b ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().FreeDofCount(), boundaries.empty() ? 24U : 0U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().FreeDofCount(), boundaries.empty() ? 24U : 0U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RetainsStaticDensityTargetsAndDirectSchedule Hex8Semantics.RetainsStaticDensityTargetsAndDirectSchedule; assertion 13개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RetainsStaticDensityTargetsAndDirectSchedule 유지 원문 검사 body 및 assertion 동일. ecc27dfd2d6e7370b729c72942f53b8a8cd0bf76a40ce684aeaeb88e64fa2c40 ecc27dfd2d6e7370b729c72942f53b8a8cd0bf76a40ce684aeaeb88e64fa2c40 "ASSERT_TRUE(domain.HasValue()) | EXPECT_TRUE(domain.Value().IsSolid()) | ASSERT_EQ(domain.Value().SolidSections().Size(), 1U) | EXPECT_EQ(domain.Value().SolidSections()[0].MaterialIndex(), 0U) | EXPECT_EQ(domain.Value().Densities()[0].rho, 2.0) | EXPECT_EQ(step.Name(), ""Solid"") | EXPECT_TRUE(step.IsDirectStatic()) | EXPECT_EQ(step.IncrementCount(), 10U) | EXPECT_EQ(step.MaximumIncrements(), 100U) | EXPECT_EQ(dofs.Value().PrescribedValues()[0], .25) | EXPECT_FALSE(Map(Deck(""*Static,direct\n"" + values)).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""1000,.3"", ""1000,.5"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""1000,.3"", ""1000,-1"")).HasValue())" "ASSERT_TRUE(domain.HasValue()) | EXPECT_TRUE(domain.Value().IsSolid()) | ASSERT_EQ(domain.Value().SolidSections().Size(), 1U) | EXPECT_EQ(domain.Value().SolidSections()[0].MaterialIndex(), 0U) | EXPECT_EQ(domain.Value().Densities()[0].rho, 2.0) | EXPECT_EQ(step.Name(), ""Solid"") | EXPECT_TRUE(step.IsDirectStatic()) | EXPECT_EQ(step.IncrementCount(), 10U) | EXPECT_EQ(step.MaximumIncrements(), 100U) | EXPECT_EQ(dofs.Value().PrescribedValues()[0], .25) | EXPECT_FALSE(Map(Deck(""*Static,direct\n"" + values)).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""1000,.3"", ""1000,.5"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""1000,.3"", ""1000,-1"")).HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.SamplesIndependentAmplitudeLoadsAtActualEndpoints Hex8Semantics.SamplesIndependentAmplitudeLoadsAtActualEndpoints; assertion 19개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.SamplesIndependentAmplitudeLoadsAtActualEndpoints 유지 원문 검사 body 및 assertion 동일. 450037b22e5b3e170d8813cdd95b4c635723a769f07f6513e8c7d59e8fef843d 450037b22e5b3e170d8813cdd95b4c635723a769f07f6513e8c7d59e8fef843d "ASSERT_TRUE(domain.HasValue()) | ASSERT_EQ(domain.Value().Amplitudes().size(), 2U) | EXPECT_EQ(amplitude.name_raw, ""A"") | EXPECT_EQ(amplitude.Evaluate(0), 0) | EXPECT_EQ(amplitude.Evaluate(.05), .5) | EXPECT_EQ(amplitude.Evaluate(.1), 1) | EXPECT_EQ(amplitude.Evaluate(20), 1) | EXPECT_FALSE(domain.Value().Dynamic()->nlgeom) | EXPECT_EQ(domain.Value().Dynamic()->increment_count, 100U) | EXPECT_EQ(loads[0].AmplitudeIndex(), std::optional{0U}) | EXPECT_EQ(loads[1].AmplitudeIndex(), std::optional{1U}) | EXPECT_EQ(loads[0].AmplitudeName(), ""a"") | EXPECT_GT(loads[0].AmplitudeLocation().line, 0U) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(load.HasValue()) | EXPECT_DOUBLE_EQ(load.Value()[3], amplitude.Evaluate(time) * 10 + domain.Value().Amplitudes()[1].Evaluate(time) * 3 + 5) | EXPECT_FALSE(Map(Replace(text, ""10,1,6"", ""10,1,3,1e-100"")).HasValue()) | EXPECT_FALSE( Map(Replace(text, ""amplitude=a"", ""amplitude=missing"")).HasValue()) | EXPECT_TRUE( Map(Replace(text, ""name=Solid,inc=100"", ""name=Solid,nlgeom=YES,inc=100"")) .HasValue())" "ASSERT_TRUE(domain.HasValue()) | ASSERT_EQ(domain.Value().Amplitudes().size(), 2U) | EXPECT_EQ(amplitude.name_raw, ""A"") | EXPECT_EQ(amplitude.Evaluate(0), 0) | EXPECT_EQ(amplitude.Evaluate(.05), .5) | EXPECT_EQ(amplitude.Evaluate(.1), 1) | EXPECT_EQ(amplitude.Evaluate(20), 1) | EXPECT_FALSE(domain.Value().Dynamic()->nlgeom) | EXPECT_EQ(domain.Value().Dynamic()->increment_count, 100U) | EXPECT_EQ(loads[0].AmplitudeIndex(), std::optional{0U}) | EXPECT_EQ(loads[1].AmplitudeIndex(), std::optional{1U}) | EXPECT_EQ(loads[0].AmplitudeName(), ""a"") | EXPECT_GT(loads[0].AmplitudeLocation().line, 0U) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(load.HasValue()) | EXPECT_DOUBLE_EQ(load.Value()[3], amplitude.Evaluate(time) * 10 + domain.Value().Amplitudes()[1].Evaluate(time) * 3 + 5) | EXPECT_FALSE(Map(Replace(text, ""10,1,6"", ""10,1,3,1e-100"")).HasValue()) | EXPECT_FALSE( Map(Replace(text, ""amplitude=a"", ""amplitude=missing"")).HasValue()) | EXPECT_TRUE( Map(Replace(text, ""name=Solid,inc=100"", ""name=Solid,nlgeom=YES,inc=100"")) .HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsAmplitudeOptionsDataAndCrossFamilyUse Hex8Semantics.RejectsAmplitudeOptionsDataAndCrossFamilyUse; assertion 3개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsAmplitudeOptionsDataAndCrossFamilyUse 유지 원문 검사 body 및 assertion 동일. dce2dd9b2fcfbf0c0ec5bf2a49db87a35c8c50379978a06ba8b90b04f3e5dc7f dce2dd9b2fcfbf0c0ec5bf2a49db87a35c8c50379978a06ba8b90b04f3e5dc7f "EXPECT_FALSE( Map(Deck(""*Dynamic,direct\n.1,1\n"", ""10,1,3\n"", prefix + amplitude)) .HasValue()) | EXPECT_FALSE( Map(Deck(""*Static\n1,1,1,1\n"", ""10,1,3\n"", ""*Amplitude,name=A\n0,0\n"")) .HasValue()) | EXPECT_FALSE(Map(Deck(""*Dynamic,direct\n.1,1\n"", ""10,1,3\n"")).HasValue())" "EXPECT_FALSE( Map(Deck(""*Dynamic,direct\n.1,1\n"", ""10,1,3\n"", prefix + amplitude)) .HasValue()) | EXPECT_FALSE( Map(Deck(""*Static\n1,1,1,1\n"", ""10,1,3\n"", ""*Amplitude,name=A\n0,0\n"")) .HasValue()) | EXPECT_FALSE(Map(Deck(""*Dynamic,direct\n.1,1\n"", ""10,1,3\n"")).HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsAliasesConnectivityThicknessAndMixedModels Hex8Semantics.RejectsAliasesConnectivityThicknessAndMixedModels; assertion 5개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsAliasesConnectivityThicknessAndMixedModels 유지 원문 검사 body 및 assertion 동일. 74400cf0bcfb69af45f006c08c3c5f44a7f71d5f51c25e90b147b08e2a304858 74400cf0bcfb69af45f006c08c3c5f44a7f71d5f51c25e90b147b08e2a304858 "EXPECT_FALSE(Map(Replace(Deck(), ""type=C3D8"", ""type="" + type)).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,70"")) .HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,999"")) .HasValue()) | EXPECT_FALSE( Map(Replace(Deck(), ""material=M\n,"", ""material=M\n2"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""*Solid Section"", ""*Element,type=S4\n100,10,20,30,40\n*Solid Section"")) .HasValue())" "EXPECT_FALSE(Map(Replace(Deck(), ""type=C3D8"", ""type="" + type)).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,70"")) .HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,999"")) .HasValue()) | EXPECT_FALSE( Map(Replace(Deck(), ""material=M\n,"", ""material=M\n2"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""*Solid Section"", ""*Element,type=S4\n100,10,20,30,40\n*Solid Section"")) .HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.PreservesShellSixComponentProfile Hex8Semantics.PreservesShellSixComponentProfile; assertion 6개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.PreservesShellSixComponentProfile 유지 원문 검사 body 및 assertion 동일. 6253e1af06f92b7af50ff60f0745d70fe50db2b76b537570fe466dd15675d26b 6253e1af06f92b7af50ff60f0745d70fe50db2b76b537570fe466dd15675d26b ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().Profile(), fesa::DofProfile::kStructural) | EXPECT_EQ(dofs.Value().ComponentsPerNode(), 6U) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().FullDof(1, fesa::DofComponent::kUrx), 9U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().Profile(), fesa::DofProfile::kStructural) | EXPECT_EQ(dofs.Value().ComponentsPerNode(), 6U) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().FullDof(1, fesa::DofComponent::kUrx), 9U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.MapsAllFiveUnmodifiedRequiredSourceDecks Hex8Semantics.MapsAllFiveUnmodifiedRequiredSourceDecks; assertion 8개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.MapsAllFiveUnmodifiedRequiredSourceDecks 유지 원문 검사 body 및 assertion 동일. 27a85d7e4d9d00d5a84c4d3e28b2fd837ee20a9b812730de2b0b120f79639c4f 27a85d7e4d9d00d5a84c4d3e28b2fd837ee20a9b812730de2b0b120f79639c4f "ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().SolidElements().Size(), 300U) | EXPECT_EQ(domain.Value().Nodes().size(), 442U) | EXPECT_EQ(std::count_if(domain.Value().Warnings().begin(), domain.Value().Warnings().end(), [](const auto& warning) { return warning.code == ""inactive-solid-rotation-boundary""; }), 3) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 1326U) | EXPECT_EQ(dofs.Value().ConstrainedDofCount(), 51U)" "ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().SolidElements().Size(), 300U) | EXPECT_EQ(domain.Value().Nodes().size(), 442U) | EXPECT_EQ(std::count_if(domain.Value().Warnings().begin(), domain.Value().Warnings().end(), [](const auto& warning) { return warning.code == ""inactive-solid-rotation-boundary""; }), 3) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 1326U) | EXPECT_EQ(dofs.Value().ConstrainedDofCount(), 51U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AssemblesFullSymmetricSolidMatricesInStableSourceOrder Hex8Semantics.AssemblesFullSymmetricSolidMatricesInStableSourceOrder; assertion 11개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AssemblesFullSymmetricSolidMatricesInStableSourceOrder 유지 원문 검사 body 및 assertion 동일. cff1fc540c97c7325eb371cd49595d7c44b5235f01cb4f0340c8fe2515e8c437 cff1fc540c97c7325eb371cd49595d7c44b5235f01cb4f0340c8fe2515e8c437 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(parallel.HasValue()) | EXPECT_EQ(serial.Value().Rows(), 24U) | EXPECT_EQ(serial.Value().Columns(), 24U) | EXPECT_EQ(serial.Value().Values().size(), 576U) | EXPECT_EQ(value, 1.0) | EXPECT_EQ(serial.Value().RowOffsets(), parallel.Value().RowOffsets()) | EXPECT_EQ(serial.Value().ColumnIndices(), parallel.Value().ColumnIndices()) | EXPECT_EQ(serial.Value().Values(), parallel.Value().Values()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(parallel.HasValue()) | EXPECT_EQ(serial.Value().Rows(), 24U) | EXPECT_EQ(serial.Value().Columns(), 24U) | EXPECT_EQ(serial.Value().Values().size(), 576U) | EXPECT_EQ(value, 1.0) | EXPECT_EQ(serial.Value().RowOffsets(), parallel.Value().RowOffsets()) | EXPECT_EQ(serial.Value().ColumnIndices(), parallel.Value().ColumnIndices()) | EXPECT_EQ(serial.Value().Values(), parallel.Value().Values()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.ValidatesOutputNoOpsAndRejectsUnapprovedDynamicChildren Hex8Semantics.ValidatesOutputNoOpsAndRejectsUnapprovedDynamicChildren; assertion 5개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.ValidatesOutputNoOpsAndRejectsUnapprovedDynamicChildren 유지 원문 검사 body 및 assertion 동일. 5d0196abf7c53f0e92306554db8a1f9270f76db9aa614254d9d3a5f3e2d1a43e 5d0196abf7c53f0e92306554db8a1f9270f76db9aa614254d9d3a5f3e2d1a43e "EXPECT_TRUE( Map(Replace(Deck(), ""*End Step"", output + ""*End Step"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""*End Step"", ""*Output,field,variable=OTHER\n*End Step"")) .HasValue()) | EXPECT_FALSE( Map(Replace( Deck(), ""*End Step"", ""*Output,field\n*Element Output,position=NODES\nS\n*End Step"")) .HasValue()) | EXPECT_FALSE( Map(Replace( dynamic, ""*End Step"", ""*Output,field,variable=PRESELECT\n*Node Output\nU\n*End Step"")) .HasValue()) | EXPECT_FALSE(Map(Replace(dynamic, ""*End Step"", ""*Restart,write,frequency=1\n*End Step"")) .HasValue())" "EXPECT_TRUE( Map(Replace(Deck(), ""*End Step"", output + ""*End Step"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""*End Step"", ""*Output,field,variable=OTHER\n*End Step"")) .HasValue()) | EXPECT_FALSE( Map(Replace( Deck(), ""*End Step"", ""*Output,field\n*Element Output,position=NODES\nS\n*End Step"")) .HasValue()) | EXPECT_FALSE( Map(Replace( dynamic, ""*End Step"", ""*Output,field,variable=PRESELECT\n*Node Output\nU\n*End Step"")) .HasValue()) | EXPECT_FALSE(Map(Replace(dynamic, ""*End Step"", ""*Restart,write,frequency=1\n*End Step"")) .HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsInvalidProgrammaticSolidCandidates Hex8Semantics.RejectsInvalidProgrammaticSolidCandidates; assertion 6개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsInvalidProgrammaticSolidCandidates 유지 원문 검사 body 및 assertion 동일. 1065eea90059ac9e3e2b606d997c439efabbf2837254a53e0622a7b4ec81655f 1065eea90059ac9e3e2b606d997c439efabbf2837254a53e0622a7b4ec81655f EXPECT_TRUE(fesa::Domain::Create(SolidDefinition()).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(repeated)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(material)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(section)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(rotational)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(unused)).HasValue()) EXPECT_TRUE(fesa::Domain::Create(SolidDefinition()).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(repeated)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(material)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(section)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(rotational)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(unused)).HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsSecondProcedureBeforeReadingItsOptionsOrData Hex8Semantics.RejectsSecondProcedureBeforeReadingItsOptionsOrData; assertion 8개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsSecondProcedureBeforeReadingItsOptionsOrData 유지 원문 검사 body 및 assertion 동일. 42d53fd47e4e29b2122ec0929fda515bd8a35ae386135240b8e3c19a168ac537 42d53fd47e4e29b2122ec0929fda515bd8a35ae386135240b8e3c19a168ac537 "ASSERT_TRUE(Map(Deck(first, """", ""*Density\n2\n"")).HasValue()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""unsupported-analysis-procedure"") | ASSERT_FALSE(malformed.HasValue()) | ASSERT_FALSE(malformed.GetStatus().Diagnostics().empty()) | EXPECT_EQ(malformed.GetStatus().Diagnostics()[0].code, ""unsupported-analysis-procedure"") | EXPECT_EQ(malformed.GetStatus().Diagnostics()[0].keyword, ""STATIC"")" "ASSERT_TRUE(Map(Deck(first, """", ""*Density\n2\n"")).HasValue()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""unsupported-analysis-procedure"") | ASSERT_FALSE(malformed.HasValue()) | ASSERT_FALSE(malformed.GetStatus().Diagnostics().empty()) | EXPECT_EQ(malformed.GetStatus().Diagnostics()[0].code, ""unsupported-analysis-procedure"") | EXPECT_EQ(malformed.GetStatus().Diagnostics()[0].keyword, ""STATIC"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AllowsOnlyApprovedStaticRestartNoOp Hex8Semantics.AllowsOnlyApprovedStaticRestartNoOp; assertion 6개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AllowsOnlyApprovedStaticRestartNoOp 유지 원문 검사 body 및 assertion 동일. 3a188909917d0d9026bab32708aace83386bda1c68423f466e1c6f849dfeea74 3a188909917d0d9026bab32708aace83386bda1c68423f466e1c6f849dfeea74 "ASSERT_TRUE(approved.HasValue()) | ASSERT_EQ(approved.Value().Warnings().size(), 1U) | EXPECT_EQ(approved.Value().Warnings()[0].keyword, ""RESTART"") | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""RESTART"")" "ASSERT_TRUE(approved.HasValue()) | ASSERT_EQ(approved.Value().Warnings().size(), 1U) | EXPECT_EQ(approved.Value().Warnings()[0].keyword, ""RESTART"") | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""RESTART"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.PreservesShuffledSourceLabelsAndRejectsDuplicateIdentities Hex8Semantics.PreservesShuffledSourceLabelsAndRejectsDuplicateIdentities; assertion 15개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.PreservesShuffledSourceLabelsAndRejectsDuplicateIdentities 유지 원문 검사 body 및 assertion 동일. 1e26934f523f95c12da4ba31131a30f25c52519a32368c6a7369490b4907882a 1e26934f523f95c12da4ba31131a30f25c52519a32368c6a7369490b4907882a "ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().Nodes()[0].source_id.source_label, 80) | EXPECT_EQ(domain.Value().Nodes()[4].source_id.source_label, 10) | EXPECT_EQ(domain.Value().Elements()[0].NodeIndices(), (std::vector{4, 1, 6, 3, 7, 2, 5, 0})) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().ConstrainedDofs(), (std::vector{12, 13, 14})) | EXPECT_FALSE(Map(Replace(deck, ""20,1,0,0"", ""80,1,0,0"")).HasValue()) | EXPECT_FALSE( Map(Replace(deck, ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,80\n99,10,20,30,40,50,60,70,80"")) .HasValue()) | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(direct.Value().Nodes()[0].source_id.source_label, 80) | EXPECT_EQ(direct.Value().Nodes()[7].source_id.source_label, 10) | EXPECT_EQ(direct.Value().SolidElements()[0].node_indices, (std::array{7, 1, 2, 3, 4, 5, 6, 0})) | EXPECT_FALSE(fesa::Domain::Create(std::move(nodes)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(elements)).HasValue())" "ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().Nodes()[0].source_id.source_label, 80) | EXPECT_EQ(domain.Value().Nodes()[4].source_id.source_label, 10) | EXPECT_EQ(domain.Value().Elements()[0].NodeIndices(), (std::vector{4, 1, 6, 3, 7, 2, 5, 0})) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().ConstrainedDofs(), (std::vector{12, 13, 14})) | EXPECT_FALSE(Map(Replace(deck, ""20,1,0,0"", ""80,1,0,0"")).HasValue()) | EXPECT_FALSE( Map(Replace(deck, ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,80\n99,10,20,30,40,50,60,70,80"")) .HasValue()) | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(direct.Value().Nodes()[0].source_id.source_label, 80) | EXPECT_EQ(direct.Value().Nodes()[7].source_id.source_label, 10) | EXPECT_EQ(direct.Value().SolidElements()[0].node_indices, (std::array{7, 1, 2, 3, 4, 5, 6, 0})) | EXPECT_FALSE(fesa::Domain::Create(std::move(nodes)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(elements)).HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsUnknownSolidAssignmentTargets Hex8Semantics.RejectsUnknownSolidAssignmentTargets; assertion 3개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsUnknownSolidAssignmentTargets 유지 원문 검사 body 및 assertion 동일. 777502085d8347fa372148d730813468e8385f01894e6f1e32c0b7fb4831b84c 777502085d8347fa372148d730813468e8385f01894e6f1e32c0b7fb4831b84c "ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""unresolved-solid-section"")" "ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""unresolved-solid-section"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsInvalidSolidDynamicSchedulesAndIncrementLimits Hex8Semantics.RejectsInvalidSolidDynamicSchedulesAndIncrementLimits; assertion 3개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsInvalidSolidDynamicSchedulesAndIncrementLimits 유지 원문 검사 body 및 assertion 동일. fffbdbf00d02cff95f113d0f9a573ce71a4eb6e0c4b2f829f0fe45dd1d915e4a fffbdbf00d02cff95f113d0f9a573ce71a4eb6e0c4b2f829f0fe45dd1d915e4a "ASSERT_TRUE(Map(valid).HasValue()) | EXPECT_FALSE(Map(Replace(valid, "".1,1\n"", schedule + ""\n"")).HasValue()) | EXPECT_FALSE(Map(Replace(valid, ""inc=100"", ""inc="" + limit)).HasValue())" "ASSERT_TRUE(Map(valid).HasValue()) | EXPECT_FALSE(Map(Replace(valid, "".1,1\n"", schedule + ""\n"")).HasValue()) | EXPECT_FALSE(Map(Replace(valid, ""inc=100"", ""inc="" + limit)).HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp support@1-45 helper/oracle/fixture/include/static assertion 구간: Deck, Map tests/unit/io/abaqus/hex8_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e25babf55d99011a53bf3707b7fa77dfd36ca9a650cd07f5ce287e7dfb184913 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp support@80-88 helper/oracle/fixture/include/static assertion 구간: Replace tests/unit/io/abaqus/hex8_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7712e67d7827babcfabd756496ca005cd2568399e78f7778748ae28ba5b8a649 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp support@309-345 helper/oracle/fixture/include/static assertion 구간: ConstantMatrixElement tests/unit/io/abaqus/hex8_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 25983d2e2d6c1749e19367eb109a0403c60bc3f0e79888448ea10c34e965976a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp support@400-430 helper/oracle/fixture/include/static assertion 구간: SolidDefinition tests/unit/io/abaqus/hex8_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8ef84c9fb537fb04031fa128b47e30de8105170c97ef73cb6b05fe993f3a20ff 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/hex8_semantics_test.cpp support@555-555 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/hex8_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/hht_dynamic_domain_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/io/abaqus/hht_dynamic_domain_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e5a7cec78d6b44cfd120f3883d44964842e52ab1781c6a9c678b93c1768a893b e5a7cec78d6b44cfd120f3883d44964842e52ab1781c6a9c678b93c1768a893b 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.MapsDirectScheduleDensityAndSourceOrder HhtDynamicDomainMapping.MapsDirectScheduleDensityAndSourceOrder; assertion 22개 tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.MapsDirectScheduleDensityAndSourceOrder 유지 원문 검사 body 및 assertion 동일. 2fda780cc6cec49273e038031cef69a2064f0c4d1155f63e36511d518662a11f 2fda780cc6cec49273e038031cef69a2064f0c4d1155f63e36511d518662a11f "ASSERT_TRUE(result.HasValue()) | ASSERT_NE(domain.Dynamic(), nullptr) | EXPECT_EQ(dynamic.source_step_name_raw, ""Dynamic-Load"") | EXPECT_EQ(dynamic.source_step_name_canonical, ""DYNAMIC-LOAD"") | EXPECT_DOUBLE_EQ(dynamic.initial_increment, 0.1) | EXPECT_DOUBLE_EQ(dynamic.time_period, 10.0) | EXPECT_EQ(dynamic.increment_count, 100U) | EXPECT_EQ(dynamic.maximum_increments, 1000U) | EXPECT_DOUBLE_EQ(dynamic.alpha, -0.05) | EXPECT_DOUBLE_EQ(dynamic.beta, 0.275625) | EXPECT_DOUBLE_EQ(dynamic.gamma, 0.55) | ASSERT_EQ(dynamic.boundaries.size(), 1U) | ASSERT_EQ(dynamic.loads.size(), 1U) | EXPECT_EQ(dynamic.loads[0U].dof, 1) | ASSERT_EQ(domain.Densities().size(), 1U) | EXPECT_DOUBLE_EQ(domain.Densities()[0U].rho, 2700.0) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_TRUE(domain.Steps()[0U].IsDynamic()) | EXPECT_FALSE(domain.Steps()[0U].IsNonlinearStatic()) | EXPECT_EQ(domain.Steps()[0U].Dynamic(), domain.Dynamic()) | ASSERT_EQ(domain.Warnings().size(), 4U) | EXPECT_EQ(warning.code, ""ignored-output-request"")" "ASSERT_TRUE(result.HasValue()) | ASSERT_NE(domain.Dynamic(), nullptr) | EXPECT_EQ(dynamic.source_step_name_raw, ""Dynamic-Load"") | EXPECT_EQ(dynamic.source_step_name_canonical, ""DYNAMIC-LOAD"") | EXPECT_DOUBLE_EQ(dynamic.initial_increment, 0.1) | EXPECT_DOUBLE_EQ(dynamic.time_period, 10.0) | EXPECT_EQ(dynamic.increment_count, 100U) | EXPECT_EQ(dynamic.maximum_increments, 1000U) | EXPECT_DOUBLE_EQ(dynamic.alpha, -0.05) | EXPECT_DOUBLE_EQ(dynamic.beta, 0.275625) | EXPECT_DOUBLE_EQ(dynamic.gamma, 0.55) | ASSERT_EQ(dynamic.boundaries.size(), 1U) | ASSERT_EQ(dynamic.loads.size(), 1U) | EXPECT_EQ(dynamic.loads[0U].dof, 1) | ASSERT_EQ(domain.Densities().size(), 1U) | EXPECT_DOUBLE_EQ(domain.Densities()[0U].rho, 2700.0) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_TRUE(domain.Steps()[0U].IsDynamic()) | EXPECT_FALSE(domain.Steps()[0U].IsNonlinearStatic()) | EXPECT_EQ(domain.Steps()[0U].Dynamic(), domain.Dynamic()) | ASSERT_EQ(domain.Warnings().size(), 4U) | EXPECT_EQ(warning.code, ""ignored-output-request"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.MapsOriginalReferenceDeckWithoutMutation HhtDynamicDomainMapping.MapsOriginalReferenceDeckWithoutMutation; assertion 6개 tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.MapsOriginalReferenceDeckWithoutMutation 유지 원문 검사 body 및 assertion 동일. 8d0c382e2a5992cda6af2865bf5941c2dc847f1591b1625a9532dc881eee65a1 8d0c382e2a5992cda6af2865bf5941c2dc847f1591b1625a9532dc881eee65a1 ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_NE(result.Value().Dynamic(), nullptr) | EXPECT_EQ(result.Value().Dynamic()->increment_count, 100U) | EXPECT_EQ(result.Value().Dynamic()->maximum_increments, 1000U) | EXPECT_EQ(result.Value().Dynamic()->loads.size(), 3U) ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_NE(result.Value().Dynamic(), nullptr) | EXPECT_EQ(result.Value().Dynamic()->increment_count, 100U) | EXPECT_EQ(result.Value().Dynamic()->maximum_increments, 1000U) | EXPECT_EQ(result.Value().Dynamic()->loads.size(), 3U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.RejectsMalformedScheduleAndUnsupportedControls HhtDynamicDomainMapping.RejectsMalformedScheduleAndUnsupportedControls; assertion 2개 tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.RejectsMalformedScheduleAndUnsupportedControls 유지 원문 검사 body 및 assertion 동일. cb6b162159cef6b490fac3ec2e8af7fb2f8c4e72d672d14d6e515cd0fdb22b03 cb6b162159cef6b490fac3ec2e8af7fb2f8c4e72d672d14d6e515cd0fdb22b03 ASSERT_FALSE(result.HasValue()) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.diagnostic), nullptr) ASSERT_FALSE(result.HasValue()) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.diagnostic), nullptr) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/hht_dynamic_domain_test.cpp support@1-117 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if, MapText, FindDiagnostic, for, DynamicDeck, ReplaceOnce, RepositoryRoot tests/unit/io/abaqus/hht_dynamic_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 80674acfe820ddb866f7dab56ffa6515964956c116548bf4746d1064ece4a28c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/hht_dynamic_domain_test.cpp support@205-206 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/hht_dynamic_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/input_reader_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/io/abaqus/input_reader_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 30c6b51c5910fb07f94969370ced1e063bcbf212266e228e3c09ef5a4575ad96 30c6b51c5910fb07f94969370ced1e063bcbf212266e228e3c09ef5a4575ad96 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.RejectsMalformedOrOrphanData InpSyntax.RejectsMalformedOrOrphanData; assertion 14개 tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.RejectsMalformedOrOrphanData 유지 원문 검사 body 및 assertion 동일. ffaa0b04054bbe68b1a87482bbca2cf543c8cd34ea6f4e30fdca2d246bd7db08 ffaa0b04054bbe68b1a87482bbca2cf543c8cd34ea6f4e30fdca2d246bd7db08 "ASSERT_FALSE(unreadable.HasValue()) | EXPECT_EQ(unreadable.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(unreadable.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(unreadable.GetStatus().Diagnostics()[0].code, ""input-file-unreadable"") | ASSERT_FALSE(malformed_result.HasValue()) | EXPECT_EQ(malformed_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(malformed_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(malformed_result.GetStatus().Diagnostics()[0].code, ""malformed-keyword"") | EXPECT_EQ(malformed_result.GetStatus().Diagnostics()[0].location.line, 1U) | ASSERT_FALSE(orphan_result.HasValue()) | EXPECT_EQ(orphan_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(orphan_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(orphan_result.GetStatus().Diagnostics()[0].code, ""orphan-data-line"") | EXPECT_EQ(orphan_result.GetStatus().Diagnostics()[0].location.line, 3U)" "ASSERT_FALSE(unreadable.HasValue()) | EXPECT_EQ(unreadable.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(unreadable.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(unreadable.GetStatus().Diagnostics()[0].code, ""input-file-unreadable"") | ASSERT_FALSE(malformed_result.HasValue()) | EXPECT_EQ(malformed_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(malformed_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(malformed_result.GetStatus().Diagnostics()[0].code, ""malformed-keyword"") | EXPECT_EQ(malformed_result.GetStatus().Diagnostics()[0].location.line, 1U) | ASSERT_FALSE(orphan_result.HasValue()) | EXPECT_EQ(orphan_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(orphan_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(orphan_result.GetStatus().Diagnostics()[0].code, ""orphan-data-line"") | EXPECT_EQ(orphan_result.GetStatus().Diagnostics()[0].location.line, 3U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.ReadsLegacyCantileverWithoutMutation InpSyntax.ReadsLegacyCantileverWithoutMutation; assertion 15개 tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.ReadsLegacyCantileverWithoutMutation 유지 원문 검사 body 및 assertion 동일. f41d9011fdd529843fb8de0b5dd5f54bdadc4501908af1a3ccef423593ce0a04 f41d9011fdd529843fb8de0b5dd5f54bdadc4501908af1a3ccef423593ce0a04 "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_content_identity, ""fnv1a64:04543464cc970405"") | EXPECT_EQ(result.Value().source_path, std::filesystem::absolute(input_path).lexically_normal()) | ASSERT_EQ(result.Value().blocks.size(), 30U) | EXPECT_EQ(result.Value().blocks.front().canonical_name, ""HEADING"") | EXPECT_EQ(result.Value().blocks.front().location.line, 1U) | EXPECT_EQ(result.Value().blocks.back().canonical_name, ""END STEP"") | ASSERT_NE(element, result.Value().blocks.end()) | ASSERT_EQ(element->parameters.size(), 1U) | EXPECT_EQ(element->parameters[0].name, ""TYPE"") | ASSERT_TRUE(element->parameters[0].value.has_value()) | EXPECT_EQ(*element->parameters[0].value, ""B33"") | EXPECT_EQ(element->data.size(), 10U) | EXPECT_EQ(ReadExactBytes(input_path), bytes_before) | EXPECT_EQ(std::filesystem::last_write_time(input_path), timestamp_before)" "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_content_identity, ""fnv1a64:04543464cc970405"") | EXPECT_EQ(result.Value().source_path, std::filesystem::absolute(input_path).lexically_normal()) | ASSERT_EQ(result.Value().blocks.size(), 30U) | EXPECT_EQ(result.Value().blocks.front().canonical_name, ""HEADING"") | EXPECT_EQ(result.Value().blocks.front().location.line, 1U) | EXPECT_EQ(result.Value().blocks.back().canonical_name, ""END STEP"") | ASSERT_NE(element, result.Value().blocks.end()) | ASSERT_EQ(element->parameters.size(), 1U) | EXPECT_EQ(element->parameters[0].name, ""TYPE"") | ASSERT_TRUE(element->parameters[0].value.has_value()) | EXPECT_EQ(*element->parameters[0].value, ""B33"") | EXPECT_EQ(element->data.size(), 10U) | EXPECT_EQ(ReadExactBytes(input_path), bytes_before) | EXPECT_EQ(std::filesystem::last_write_time(input_path), timestamp_before)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.AcceptsAsciiKeywordContinuationAndPreservesPhysicalSourceLines InpSyntax.AcceptsAsciiKeywordContinuationAndPreservesPhysicalSourceLines; assertion 14개 tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.AcceptsAsciiKeywordContinuationAndPreservesPhysicalSourceLines 유지 원문 검사 body 및 assertion 동일. ce727a336d945591a1cc0ad97dee25ebfc241f2be137f3198e86eb7df2578ccf ce727a336d945591a1cc0ad97dee25ebfc241f2be137f3198e86eb7df2578ccf "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""SURFACE"") | EXPECT_EQ(block.original_line, ""*SuRfAcE, TYPE=ELEMENT,"") | EXPECT_EQ(block.physical_lines, (std::vector{""*SuRfAcE, TYPE=ELEMENT,"", "" NAME=Pressure_Surface""})) | ASSERT_EQ(block.parameters.size(), 2U) | EXPECT_EQ(block.parameters[0].name, ""TYPE"") | ASSERT_TRUE(block.parameters[0].value.has_value()) | EXPECT_EQ(*block.parameters[0].value, ""ELEMENT"") | EXPECT_EQ(block.parameters[1].name, ""NAME"") | ASSERT_TRUE(block.parameters[1].value.has_value()) | EXPECT_EQ(*block.parameters[1].value, ""Pressure_Surface"") | ASSERT_EQ(block.data.size(), 1U) | EXPECT_EQ(block.data[0].location.line, 3U)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""SURFACE"") | EXPECT_EQ(block.original_line, ""*SuRfAcE, TYPE=ELEMENT,"") | EXPECT_EQ(block.physical_lines, (std::vector{""*SuRfAcE, TYPE=ELEMENT,"", "" NAME=Pressure_Surface""})) | ASSERT_EQ(block.parameters.size(), 2U) | EXPECT_EQ(block.parameters[0].name, ""TYPE"") | ASSERT_TRUE(block.parameters[0].value.has_value()) | EXPECT_EQ(*block.parameters[0].value, ""ELEMENT"") | EXPECT_EQ(block.parameters[1].name, ""NAME"") | ASSERT_TRUE(block.parameters[1].value.has_value()) | EXPECT_EQ(*block.parameters[1].value, ""Pressure_Surface"") | ASSERT_EQ(block.data.size(), 1U) | EXPECT_EQ(block.data[0].location.line, 3U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/input_reader_test.cpp support@1-55 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if, ReadExactBytes, RepositoryRoot tests/unit/io/abaqus/input_reader_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 09e22f6727e979f0117b382a1b8ac77c50f4103adebca5eb58b315c7b0636451 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/input_syntax_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/io/abaqus/input_syntax_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6a0ecd5814f476c566f96a1e64d8e1b2757a0dfd70f17d3543519b1d6226a7b7 6a0ecd5814f476c566f96a1e64d8e1b2757a0dfd70f17d3543519b1d6226a7b7 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/input_syntax_test.cpp InpSyntax.CanonicalizesKeywordAndParameterNamesOnly InpSyntax.CanonicalizesKeywordAndParameterNamesOnly; assertion 14개 tests/unit/io/abaqus/input_syntax_test.cpp InpSyntax.CanonicalizesKeywordAndParameterNamesOnly 유지 원문 검사 body 및 assertion 동일. fa957b70a91ffba87d4e77baf9592ef3c6e8475adc7bf40ff3678c1929954f3b fa957b70a91ffba87d4e77baf9592ef3c6e8475adc7bf40ff3678c1929954f3b "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""ELEMENT"") | EXPECT_EQ(block.original_line, original_line) | EXPECT_EQ(block.location.line, 1U) | ASSERT_EQ(block.parameters.size(), 3U) | EXPECT_EQ(block.parameters[0].name, ""TYPE"") | ASSERT_TRUE(block.parameters[0].value.has_value()) | EXPECT_EQ(*block.parameters[0].value, ""b33"") | EXPECT_EQ(block.parameters[1].name, ""GENERATE"") | EXPECT_FALSE(block.parameters[1].value.has_value()) | EXPECT_EQ(block.parameters[2].name, ""ELSET"") | ASSERT_TRUE(block.parameters[2].value.has_value()) | EXPECT_EQ(*block.parameters[2].value, ""Beam_Set"")" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""ELEMENT"") | EXPECT_EQ(block.original_line, original_line) | EXPECT_EQ(block.location.line, 1U) | ASSERT_EQ(block.parameters.size(), 3U) | EXPECT_EQ(block.parameters[0].name, ""TYPE"") | ASSERT_TRUE(block.parameters[0].value.has_value()) | EXPECT_EQ(*block.parameters[0].value, ""b33"") | EXPECT_EQ(block.parameters[1].name, ""GENERATE"") | EXPECT_FALSE(block.parameters[1].value.has_value()) | EXPECT_EQ(block.parameters[2].name, ""ELSET"") | ASSERT_TRUE(block.parameters[2].value.has_value()) | EXPECT_EQ(*block.parameters[2].value, ""Beam_Set"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/input_syntax_test.cpp InpSyntax.PreservesDataAndSourceLocations InpSyntax.PreservesDataAndSourceLocations; assertion 12개 tests/unit/io/abaqus/input_syntax_test.cpp InpSyntax.PreservesDataAndSourceLocations 유지 원문 검사 body 및 assertion 동일. a1132a3f6c99199423c9f513fe5541b7c91e511e68e9f3d935d5bca9ba159733 a1132a3f6c99199423c9f513fe5541b7c91e511e68e9f3d935d5bca9ba159733 "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_path, std::filesystem::absolute(input.Path()).lexically_normal()) | EXPECT_EQ(result.Value().source_content_identity, ""fnv1a64:c120b6ed2445be46"") | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""NODE"") | EXPECT_EQ(block.original_line, ""*NoDe"") | EXPECT_EQ(block.location.file, result.Value().source_path) | EXPECT_EQ(block.location.line, 3U) | ASSERT_EQ(block.data.size(), 1U) | EXPECT_EQ(block.data[0].fields, (std::vector{""0007"", ""Label_A"", """", """"})) | EXPECT_EQ(block.data[0].location.file, result.Value().source_path) | EXPECT_EQ(block.data[0].location.line, 4U)" "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_path, std::filesystem::absolute(input.Path()).lexically_normal()) | EXPECT_EQ(result.Value().source_content_identity, ""fnv1a64:c120b6ed2445be46"") | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""NODE"") | EXPECT_EQ(block.original_line, ""*NoDe"") | EXPECT_EQ(block.location.file, result.Value().source_path) | EXPECT_EQ(block.location.line, 3U) | ASSERT_EQ(block.data.size(), 1U) | EXPECT_EQ(block.data[0].fields, (std::vector{""0007"", ""Label_A"", """", """"})) | EXPECT_EQ(block.data[0].location.file, result.Value().source_path) | EXPECT_EQ(block.data[0].location.line, 4U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/input_syntax_test.cpp support@1-37 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if tests/unit/io/abaqus/input_syntax_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5cd816979355e9dfa2384470d2d676ffac1a89dc2f4e6ccd91d0998e1d374b2d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 18개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f28acc507f7b42094ff105589aa020384ae0c3b6c6b4c67edb7d4e36f7928af6 f28acc507f7b42094ff105589aa020384ae0c3b6c6b4c67edb7d4e36f7928af6 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsDirectInstanceFacetsForS4AndS4rCaseInsensitively ShellSurfacePressureInput.MapsDirectInstanceFacetsForS4AndS4rCaseInsensitively; assertion 11개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsDirectInstanceFacetsForS4AndS4rCaseInsensitively 유지 원문 검사 body 및 assertion 동일. 946490ad5c50c1cb8ba083ec3c6d6c42322e4575cbaffc7c063a4aceb1f4d586 946490ad5c50c1cb8ba083ec3c6d6c42322e4575cbaffc7c063a4aceb1f4d586 "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(surface.surface_name_raw, ""Direct-Surface"") | EXPECT_EQ(surface.surface_name_canonical, ""DIRECT-SURFACE"") | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(surface.facets[0].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[0].source_element_label, 10) | EXPECT_EQ(surface.facets[0].source_element_label_raw, ""0010"") | EXPECT_EQ(surface.facets[0].source_element_type, ""S4"") | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSpos) | EXPECT_EQ(surface.facets[1].source_element_type, ""S4R"") | EXPECT_EQ(surface.facets[1].side, fesa::ShellSurfaceSide::kSneg)" "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(surface.surface_name_raw, ""Direct-Surface"") | EXPECT_EQ(surface.surface_name_canonical, ""DIRECT-SURFACE"") | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(surface.facets[0].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[0].source_element_label, 10) | EXPECT_EQ(surface.facets[0].source_element_label_raw, ""0010"") | EXPECT_EQ(surface.facets[0].source_element_type, ""S4"") | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSpos) | EXPECT_EQ(surface.facets[1].source_element_type, ""S4R"") | EXPECT_EQ(surface.facets[1].side, fesa::ShellSurfaceSide::kSneg)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsExplicitInstanceElsetAndResultNeutralInternalParameter ShellSurfacePressureInput.MapsExplicitInstanceElsetAndResultNeutralInternalParameter; assertion 7개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsExplicitInstanceElsetAndResultNeutralInternalParameter 유지 원문 검사 body 및 assertion 동일. d6e14ec8263f733baba442390ee6f6a6f4b722f1f0edb1f7ba795e587f6c858c d6e14ec8263f733baba442390ee6f6a6f4b722f1f0edb1f7ba795e587f6c858c "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(facet.member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(facet.elset_name_raw, ""flat-members"") | EXPECT_EQ(facet.elset_name_canonical, ""FLAT-MEMBERS"") | EXPECT_EQ(facet.instance_name_raw, ""Instance-A"") | EXPECT_EQ(facet.side, fesa::ShellSurfaceSide::kSpos)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(facet.member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(facet.elset_name_raw, ""flat-members"") | EXPECT_EQ(facet.elset_name_canonical, ""FLAT-MEMBERS"") | EXPECT_EQ(facet.instance_name_raw, ""Instance-A"") | EXPECT_EQ(facet.side, fesa::ShellSurfaceSide::kSpos)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsMixedDirectAndElsetMembersAcrossTwoExplicitInstancesWithStableDataMemberAndElsetOrder ShellSurfacePressureInput.MapsMixedDirectAndElsetMembersAcrossTwoExplicitInstancesWithStableDataMemberAndElsetOrder; assertion 21개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsMixedDirectAndElsetMembersAcrossTwoExplicitInstancesWithStableDataMemberAndElsetOrder 유지 원문 검사 body 및 assertion 동일. 8d33f673c3b416be94c015ec597fcf82637e32a1423ffa50887b3cec07778a4f 8d33f673c3b416be94c015ec597fcf82637e32a1423ffa50887b3cec07778a4f "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 4U) | EXPECT_EQ(surface.facets[0].instance_name_raw, ""Instance-B"") | EXPECT_EQ(surface.facets[0].source_element_label, 10) | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSneg) | EXPECT_EQ(surface.facets[0].first_member_ordinal, 2U) | EXPECT_EQ(surface.facets[1].instance_name_raw, ""Instance-B"") | EXPECT_EQ(surface.facets[1].source_element_label, 20) | EXPECT_EQ(surface.facets[1].member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(surface.facets[1].first_member_ordinal, 1U) | EXPECT_EQ(surface.facets[2].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[2].source_element_label, 10) | EXPECT_EQ(surface.facets[2].member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(surface.facets[2].first_member_ordinal, 3U) | EXPECT_EQ(surface.facets[3].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[3].source_element_label, 20) | EXPECT_EQ(surface.facets[3].member_kind, fesa::SurfaceMemberKind::kDirect) | EXPECT_EQ(surface.facets[3].first_member_ordinal, 0U) | EXPECT_EQ(facet.part_name_raw, ""Shell-Part"") | EXPECT_EQ(facet.part_name_canonical, ""SHELL-PART"") | EXPECT_EQ(facet.instance_name_canonical, facet.instance_name_raw == ""Instance-A"" ? ""INSTANCE-A"" : ""INSTANCE-B"")" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 4U) | EXPECT_EQ(surface.facets[0].instance_name_raw, ""Instance-B"") | EXPECT_EQ(surface.facets[0].source_element_label, 10) | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSneg) | EXPECT_EQ(surface.facets[0].first_member_ordinal, 2U) | EXPECT_EQ(surface.facets[1].instance_name_raw, ""Instance-B"") | EXPECT_EQ(surface.facets[1].source_element_label, 20) | EXPECT_EQ(surface.facets[1].member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(surface.facets[1].first_member_ordinal, 1U) | EXPECT_EQ(surface.facets[2].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[2].source_element_label, 10) | EXPECT_EQ(surface.facets[2].member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(surface.facets[2].first_member_ordinal, 3U) | EXPECT_EQ(surface.facets[3].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[3].source_element_label, 20) | EXPECT_EQ(surface.facets[3].member_kind, fesa::SurfaceMemberKind::kDirect) | EXPECT_EQ(surface.facets[3].first_member_ordinal, 0U) | EXPECT_EQ(facet.part_name_raw, ""Shell-Part"") | EXPECT_EQ(facet.part_name_canonical, ""SHELL-PART"") | EXPECT_EQ(facet.instance_name_canonical, facet.instance_name_raw == ""Instance-A"" ? ""INSTANCE-A"" : ""INSTANCE-B"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.PreservesSposSnegMagnitudeTextLocationsAndSourceOrder ShellSurfacePressureInput.PreservesSposSnegMagnitudeTextLocationsAndSourceOrder; assertion 21개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.PreservesSposSnegMagnitudeTextLocationsAndSourceOrder 유지 원문 검사 body 및 assertion 동일. 9c08d13e4d85213392e2e9a91bfd3c2da00f84da36f7a8748cf0356575d40a89 9c08d13e4d85213392e2e9a91bfd3c2da00f84da36f7a8748cf0356575d40a89 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(surface.facets[0].facet_ordinal, 0U) | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSpos) | EXPECT_EQ(surface.facets[1].facet_ordinal, 1U) | EXPECT_EQ(surface.facets[1].side, fesa::ShellSurfaceSide::kSneg) | ASSERT_EQ(step.SurfacePressureLoads().size(), 2U) | EXPECT_EQ(first.step_name_raw, ""Pressure-Step"") | EXPECT_EQ(first.step_name_canonical, ""PRESSURE-STEP"") | EXPECT_EQ(first.surface_name_raw, ""pressure-surface"") | EXPECT_EQ(first.surface_name_canonical, ""PRESSURE-SURFACE"") | EXPECT_EQ(first.load_type, ""P"") | EXPECT_DOUBLE_EQ(first.magnitude, 0.0) | EXPECT_EQ(first.magnitude_raw, ""-0.0"") | EXPECT_EQ(first.data_ordinal, 0U) | EXPECT_EQ(first.load_ordinal, 0U) | EXPECT_LT(first.keyword_location.line, first.data_location.line) | EXPECT_EQ(second.magnitude_raw, ""+2.50e+03"") | EXPECT_DOUBLE_EQ(second.magnitude, 2500.0) | EXPECT_EQ(second.data_ordinal, 1U) | EXPECT_EQ(second.load_ordinal, 1U)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(surface.facets[0].facet_ordinal, 0U) | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSpos) | EXPECT_EQ(surface.facets[1].facet_ordinal, 1U) | EXPECT_EQ(surface.facets[1].side, fesa::ShellSurfaceSide::kSneg) | ASSERT_EQ(step.SurfacePressureLoads().size(), 2U) | EXPECT_EQ(first.step_name_raw, ""Pressure-Step"") | EXPECT_EQ(first.step_name_canonical, ""PRESSURE-STEP"") | EXPECT_EQ(first.surface_name_raw, ""pressure-surface"") | EXPECT_EQ(first.surface_name_canonical, ""PRESSURE-SURFACE"") | EXPECT_EQ(first.load_type, ""P"") | EXPECT_DOUBLE_EQ(first.magnitude, 0.0) | EXPECT_EQ(first.magnitude_raw, ""-0.0"") | EXPECT_EQ(first.data_ordinal, 0U) | EXPECT_EQ(first.load_ordinal, 0U) | EXPECT_LT(first.keyword_location.line, first.data_location.line) | EXPECT_EQ(second.magnitude_raw, ""+2.50e+03"") | EXPECT_DOUBLE_EQ(second.magnitude, 2500.0) | EXPECT_EQ(second.data_ordinal, 1U) | EXPECT_EQ(second.load_ordinal, 1U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.OwnsCanonicalFacetsAndStepOwnedAdditivePressureRecords ShellSurfacePressureDomain.OwnsCanonicalFacetsAndStepOwnedAdditivePressureRecords; assertion 3개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.OwnsCanonicalFacetsAndStepOwnedAdditivePressureRecords 유지 원문 검사 body 및 assertion 동일. 42e89d7898679456d451df49a6eec0e9e98cc775ba616c469f3ad6c9839f3a6b 42e89d7898679456d451df49a6eec0e9e98cc775ba616c469f3ad6c9839f3a6b ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.ElementSurfaces()[0].facets[0].source_element_label, 10) | EXPECT_DOUBLE_EQ(domain.Steps()[0U].SurfacePressureLoads()[0].magnitude, 1.0) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.ElementSurfaces()[0].facets[0].source_element_label, 10) | EXPECT_DOUBLE_EQ(domain.Steps()[0U].SurfacePressureLoads()[0].magnitude, 1.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.AnalysisModelBorrowsActivePressureWithoutCopyingDomain ShellSurfacePressureDomain.AnalysisModelBorrowsActivePressureWithoutCopyingDomain; assertion 4개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.AnalysisModelBorrowsActivePressureWithoutCopyingDomain 유지 원문 검사 body 및 assertion 동일. 83c413cc8fb859ea110ee4895701e8637ebd25d495ccc13f88c4d67032a8394e 83c413cc8fb859ea110ee4895701e8637ebd25d495ccc13f88c4d67032a8394e ASSERT_TRUE(mapped.HasValue()) | ASSERT_TRUE(model.HasValue()) | EXPECT_EQ(&model.Value().ActiveSurfacePressureLoads(), &mapped.Value().Steps()[0U].SurfacePressureLoads()) | EXPECT_EQ(model.Value().ActiveSurfacePressureLoads().size(), 1U) ASSERT_TRUE(mapped.HasValue()) | ASSERT_TRUE(model.HasValue()) | EXPECT_EQ(&model.Value().ActiveSurfacePressureLoads(), &mapped.Value().Steps()[0U].SurfacePressureLoads()) | EXPECT_EQ(model.Value().ActiveSurfacePressureLoads().size(), 1U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.AcceptsWhitespaceSignedZeroAndFiniteScientificNotation ShellSurfacePressureInput.AcceptsWhitespaceSignedZeroAndFiniteScientificNotation; assertion 6개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.AcceptsWhitespaceSignedZeroAndFiniteScientificNotation 유지 원문 검사 body 및 assertion 동일. 87b289b662f1e0f3698f77b333ddd4ccbf28081d4ecfdb62b8baedc1c663909b 87b289b662f1e0f3698f77b333ddd4ccbf28081d4ecfdb62b8baedc1c663909b "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0].magnitude_raw, ""+0"") | EXPECT_DOUBLE_EQ(loads[0].magnitude, 0.0) | EXPECT_EQ(loads[1].magnitude_raw, ""-1.25E-3"") | EXPECT_DOUBLE_EQ(loads[1].magnitude, -0.00125)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0].magnitude_raw, ""+0"") | EXPECT_DOUBLE_EQ(loads[0].magnitude, 0.0) | EXPECT_EQ(loads[1].magnitude_raw, ""-1.25E-3"") | EXPECT_DOUBLE_EQ(loads[1].magnitude, -0.00125)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsNonAsciiOverlengthOrIllegalContinuationAtStableLocation ShellSurfacePressureInput.RejectsNonAsciiOverlengthOrIllegalContinuationAtStableLocation; assertion 10개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsNonAsciiOverlengthOrIllegalContinuationAtStableLocation 유지 원문 검사 body 및 assertion 동일. 1ce5f567f199255b591700b92f8ecc0c9f9484c5315310cc34228f91d1b5f7e3 1ce5f567f199255b591700b92f8ecc0c9f9484c5315310cc34228f91d1b5f7e3 "ASSERT_FALSE(non_ascii.HasValue()) | ASSERT_EQ(non_ascii.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(non_ascii.GetStatus().Diagnostics().front().code, ""invalid-input-character"") | EXPECT_EQ(non_ascii.GetStatus().Diagnostics().front().location.line, 2U) | ASSERT_FALSE(overlength.HasValue()) | EXPECT_EQ(overlength.GetStatus().Diagnostics().front().code, ""input-line-too-long"") | EXPECT_EQ(overlength.GetStatus().Diagnostics().front().location.line, 1U) | ASSERT_FALSE(continuation.HasValue()) | EXPECT_EQ(continuation.GetStatus().Diagnostics().front().code, ""malformed-keyword"") | EXPECT_EQ(continuation.GetStatus().Diagnostics().front().location.line, 2U)" "ASSERT_FALSE(non_ascii.HasValue()) | ASSERT_EQ(non_ascii.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(non_ascii.GetStatus().Diagnostics().front().code, ""invalid-input-character"") | EXPECT_EQ(non_ascii.GetStatus().Diagnostics().front().location.line, 2U) | ASSERT_FALSE(overlength.HasValue()) | EXPECT_EQ(overlength.GetStatus().Diagnostics().front().code, ""input-line-too-long"") | EXPECT_EQ(overlength.GetStatus().Diagnostics().front().location.line, 1U) | ASSERT_FALSE(continuation.HasValue()) | EXPECT_EQ(continuation.GetStatus().Diagnostics().front().code, ""malformed-keyword"") | EXPECT_EQ(continuation.GetStatus().Diagnostics().front().location.line, 2U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsUnsupportedSurfaceParametersTypesSidesAndTargetKinds ShellSurfacePressureInput.RejectsUnsupportedSurfaceParametersTypesSidesAndTargetKinds; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsUnsupportedSurfaceParametersTypesSidesAndTargetKinds 유지 원문 검사 body 및 assertion 동일. 68c16419be0faeb3e5c631b0e2c4d1e86e40ed448590aec8a56567e36f406ea7 68c16419be0faeb3e5c631b0e2c4d1e86e40ed448590aec8a56567e36f406ea7 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsDsloadParametersLabelsDistributionsAndCardinality ShellSurfacePressureInput.RejectsDsloadParametersLabelsDistributionsAndCardinality; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsDsloadParametersLabelsDistributionsAndCardinality 유지 원문 검사 body 및 assertion 동일. ce9916ba710c77e4eb855936e4e9b09baaa2f5362abb02621d469075a5c06faa ce9916ba710c77e4eb855936e4e9b09baaa2f5362abb02621d469075a5c06faa 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsEmptyMissingAmbiguousAndCrossScopeSurfaceTargets ShellSurfacePressureInput.RejectsEmptyMissingAmbiguousAndCrossScopeSurfaceTargets; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsEmptyMissingAmbiguousAndCrossScopeSurfaceTargets 유지 원문 검사 body 및 assertion 동일. b989869b46405f081a67b42c2ac227713272b84c67b79337276cef65ce359cf4 b989869b46405f081a67b42c2ac227713272b84c67b79337276cef65ce359cf4 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsImplicitInstanceNestedCyclicAndMalformedElsets ShellSurfacePressureInput.RejectsImplicitInstanceNestedCyclicAndMalformedElsets; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsImplicitInstanceNestedCyclicAndMalformedElsets 유지 원문 검사 body 및 assertion 동일. 569ad93130ac52b9b57b42010b2150591c9f0125fb21d8c2469cc515e6917db5 569ad93130ac52b9b57b42010b2150591c9f0125fb21d8c2469cc515e6917db5 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.NormalizesExactSameSideDuplicatesWithOneStableWarning ShellSurfacePressureInput.NormalizesExactSameSideDuplicatesWithOneStableWarning; assertion 8개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.NormalizesExactSameSideDuplicatesWithOneStableWarning 유지 원문 검사 body 및 assertion 동일. 6236b7eb61a4fd35e83e7ae25ddc5570a7cebd6db3eb16bf99f95c45470a5c72 6236b7eb61a4fd35e83e7ae25ddc5570a7cebd6db3eb16bf99f95c45470a5c72 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(OnlySurface(result.Value()).facets.size(), 1U) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(warning.severity, fesa::Severity::kWarning) | EXPECT_EQ(warning.code, ""duplicate-surface-member-normalized"") | EXPECT_EQ(warning.location.line, 29U) | EXPECT_EQ(warning.keyword, ""SURFACE"") | EXPECT_EQ(warning.entity_identity, ""Pressure-Surface"")" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(OnlySurface(result.Value()).facets.size(), 1U) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(warning.severity, fesa::Severity::kWarning) | EXPECT_EQ(warning.code, ""duplicate-surface-member-normalized"") | EXPECT_EQ(warning.location.line, 29U) | EXPECT_EQ(warning.keyword, ""SURFACE"") | EXPECT_EQ(warning.entity_identity, ""Pressure-Surface"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsConflictingSidesForOneElement ShellSurfacePressureInput.RejectsConflictingSidesForOneElement; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsConflictingSidesForOneElement 유지 원문 검사 body 및 assertion 동일. 315b661ced70d8d24863f470071109e53670f8da16a0b9bd3b967f8323ba5bea 315b661ced70d8d24863f470071109e53670f8da16a0b9bd3b967f8323ba5bea 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsNonfiniteDExponentAndLocaleDependentMagnitudes ShellSurfacePressureInput.RejectsNonfiniteDExponentAndLocaleDependentMagnitudes; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsNonfiniteDExponentAndLocaleDependentMagnitudes 유지 원문 검사 body 및 assertion 동일. c59f0842555c4f634f8e5b90784578f9266a27d716f16648d27acb9709bee548 c59f0842555c4f634f8e5b90784578f9266a27d716f16648d27acb9709bee548 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.PreservesAdditiveRepeatedPressureRowsWithoutDeduplication ShellSurfacePressureInput.PreservesAdditiveRepeatedPressureRowsWithoutDeduplication; assertion 7개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.PreservesAdditiveRepeatedPressureRowsWithoutDeduplication 유지 원문 검사 body 및 assertion 동일. bf188f0db4fa94c007143db4457732b390ea10be44a09c4ac30e0498c4d7e2cf bf188f0db4fa94c007143db4457732b390ea10be44a09c4ac30e0498c4d7e2cf ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0].load_ordinal, 0U) | EXPECT_EQ(loads[1].load_ordinal, 1U) | EXPECT_EQ(loads[0].data_ordinal, 0U) | EXPECT_EQ(loads[1].data_ordinal, 1U) | EXPECT_DOUBLE_EQ(loads[0].magnitude, loads[1].magnitude) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0].load_ordinal, 0U) | EXPECT_EQ(loads[1].load_ordinal, 1U) | EXPECT_EQ(loads[0].data_ordinal, 0U) | EXPECT_EQ(loads[1].data_ordinal, 1U) | EXPECT_DOUBLE_EQ(loads[0].magnitude, loads[1].magnitude) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.MappingFailureCommitsNoPartialSemanticCandidate ShellSurfacePressureDomain.MappingFailureCommitsNoPartialSemanticCandidate; assertion 2개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.MappingFailureCommitsNoPartialSemanticCandidate 유지 원문 검사 body 및 assertion 동일. 003fd75844ef98765cfaa6d972a17143273fdfee97b19ba5f6e778352bd86bf6 003fd75844ef98765cfaa6d972a17143273fdfee97b19ba5f6e778352bd86bf6 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics().front().code, ""conflicting-surface-membership"")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics().front().code, ""conflicting-surface-membership"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.EmitsDiagnosticsInStableSourceOrderAcrossRepeatedRuns ShellSurfacePressureInput.EmitsDiagnosticsInStableSourceOrderAcrossRepeatedRuns; assertion 11개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.EmitsDiagnosticsInStableSourceOrderAcrossRepeatedRuns 유지 원문 검사 body 및 assertion 동일. 7544df73d8202a307316ba7ec6a6f786d8eb7c4b585beceb4280997ebf5c5c8f 7544df73d8202a307316ba7ec6a6f786d8eb7c4b585beceb4280997ebf5c5c8f ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_EQ(first.Value().Warnings().size(), 1U) | ASSERT_EQ(second.Value().Warnings().size(), 1U) | EXPECT_EQ(left.severity, right.severity) | EXPECT_EQ(left.code, right.code) | EXPECT_EQ(left.location.file, right.location.file) | EXPECT_EQ(left.location.line, right.location.line) | EXPECT_EQ(left.keyword, right.keyword) | EXPECT_EQ(left.entity_identity, right.entity_identity) | EXPECT_EQ(left.message, right.message) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_EQ(first.Value().Warnings().size(), 1U) | ASSERT_EQ(second.Value().Warnings().size(), 1U) | EXPECT_EQ(left.severity, right.severity) | EXPECT_EQ(left.code, right.code) | EXPECT_EQ(left.location.file, right.location.file) | EXPECT_EQ(left.location.line, right.location.line) | EXPECT_EQ(left.keyword, right.keyword) | EXPECT_EQ(left.entity_identity, right.entity_identity) | EXPECT_EQ(left.message, right.message) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp support@1-126 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if, MapText, ReadText, ReplaceOnce, ExpectSingleFailure, ShellDeck, OnlySurface tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d01dd887a99bccd610d4db4c59f83a92cdc73f44a8d962cd5349c44d36562723 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/thermal_domain_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 32개 tests/unit/io/abaqus/thermal_domain_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. efd4b1c00fa1db1fa4fe9ccd369c34f9bea4cc2665b5c00972792a0fd66d9483 efd4b1c00fa1db1fa4fe9ccd369c34f9bea4cc2665b5c00972792a0fd66d9483 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MapsDs4MaterialsTargetsAndAdditiveFluxes ThermalDomainMapping.MapsDs4MaterialsTargetsAndAdditiveFluxes; assertion 12개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MapsDs4MaterialsTargetsAndAdditiveFluxes 유지 원문 검사 body 및 assertion 동일. af2d22c04e46f6dd711a20088fbc473854263068c67a74e8f27049e4026c2a22 af2d22c04e46f6dd711a20088fbc473854263068c67a74e8f27049e4026c2a22 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalElements().Size(), 1U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 1U) | EXPECT_DOUBLE_EQ(domain.ThermalMaterials()[0U].Conductivity(), 54.0) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(domain.ThermalStep()->name, ""Heat"") | EXPECT_EQ(domain.ThermalStep()->maximum_increments, 100U) | EXPECT_EQ(domain.ThermalModelBoundaries().size(), 2U) | EXPECT_EQ(domain.ThermalStep()->Boundaries().size(), 2U) | ASSERT_EQ(domain.ThermalStep()->Loads().size(), 4U) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Loads()[0U].power, -2.0) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Loads()[3U].power, -3.0)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalElements().Size(), 1U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 1U) | EXPECT_DOUBLE_EQ(domain.ThermalMaterials()[0U].Conductivity(), 54.0) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(domain.ThermalStep()->name, ""Heat"") | EXPECT_EQ(domain.ThermalStep()->maximum_increments, 100U) | EXPECT_EQ(domain.ThermalModelBoundaries().size(), 2U) | EXPECT_EQ(domain.ThermalStep()->Boundaries().size(), 2U) | ASSERT_EQ(domain.ThermalStep()->Loads().size(), 4U) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Loads()[0U].power, -2.0) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Loads()[3U].power, -3.0)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsInteriorAndConflictingThermalBoundaries ThermalDomainMapping.RejectsInteriorAndConflictingThermalBoundaries; assertion 4개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsInteriorAndConflictingThermalBoundaries 유지 원문 검사 body 및 assertion 동일. 7ec98df39941a00678cd5ef92a12a7f68a90cda117bae9baef2a0684c5f96b7d 7ec98df39941a00678cd5ef92a12a7f68a90cda117bae9baef2a0684c5f96b7d "ASSERT_FALSE(invalid_dof.HasValue()) | EXPECT_EQ(invalid_dof.GetStatus().Diagnostics()[0U].code, ""invalid-dof"") | ASSERT_FALSE(invalid_conflict.HasValue()) | EXPECT_EQ(invalid_conflict.GetStatus().Diagnostics()[0U].code, ""conflicting-boundary-condition"")" "ASSERT_FALSE(invalid_dof.HasValue()) | EXPECT_EQ(invalid_dof.GetStatus().Diagnostics()[0U].code, ""invalid-dof"") | ASSERT_FALSE(invalid_conflict.HasValue()) | EXPECT_EQ(invalid_conflict.GetStatus().Diagnostics()[0U].code, ""conflicting-boundary-condition"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.AcceptsSectionPointSpellingsAndRejectsUnsupportedForms ThermalDomainMapping.AcceptsSectionPointSpellingsAndRejectsUnsupportedForms; assertion 1개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.AcceptsSectionPointSpellingsAndRejectsUnsupportedForms 유지 원문 검사 body 및 assertion 동일. 0246d651e3e2c547182aa0793b1ede7ebad37bb947330710f83c05bc1899a641 0246d651e3e2c547182aa0793b1ede7ebad37bb947330710f83c05bc1899a641 EXPECT_EQ(MapText(deck).HasValue(), test_case.second) EXPECT_EQ(MapText(deck).HasValue(), test_case.second) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsThermalMaterialAndControlForms ThermalDomainMapping.RejectsThermalMaterialAndControlForms; assertion 2개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsThermalMaterialAndControlForms 유지 원문 검사 body 및 assertion 동일. aa52baa4e9489c8924eccd069573c18e9d91f3432343b409fd2e822e1c24177b aa52baa4e9489c8924eccd069573c18e9d91f3432343b409fd2e822e1c24177b ASSERT_NE(position, std::string::npos) | EXPECT_FALSE(MapText(deck).HasValue()) ASSERT_NE(position, std::string::npos) | EXPECT_FALSE(MapText(deck).HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsThermalNoOpAndProcedureViolations ThermalDomainMapping.RejectsThermalNoOpAndProcedureViolations; assertion 2개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsThermalNoOpAndProcedureViolations 유지 원문 검사 body 및 assertion 동일. 40e1583ca082fe70743b2bc1583336dfe4284fe520aa4d00ddaf5a2297c8df91 40e1583ca082fe70743b2bc1583336dfe4284fe520aa4d00ddaf5a2297c8df91 ASSERT_NE(position, std::string::npos) | EXPECT_FALSE(MapText(deck).HasValue()) ASSERT_NE(position, std::string::npos) | EXPECT_FALSE(MapText(deck).HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.AppliesSameDofStepOverrideAndDefaultValues ThermalDomainMapping.AppliesSameDofStepOverrideAndDefaultValues; assertion 5개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.AppliesSameDofStepOverrideAndDefaultValues 유지 원문 검사 body 및 assertion 동일. 5277085c94aa63d3671618cea4d01e147843cb61b11bcdd8ea01ced3610db2e3 5277085c94aa63d3671618cea4d01e147843cb61b11bcdd8ea01ced3610db2e3 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().ThermalModelBoundaries().size(), 2U) | ASSERT_EQ(result.Value().ThermalStep()->Boundaries().size(), 2U) | EXPECT_DOUBLE_EQ(result.Value().ThermalModelBoundaries()[0U].value, 0.0) | EXPECT_DOUBLE_EQ(result.Value().ThermalStep()->Boundaries()[0U].value, 30.0) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().ThermalModelBoundaries().size(), 2U) | ASSERT_EQ(result.Value().ThermalStep()->Boundaries().size(), 2U) | EXPECT_DOUBLE_EQ(result.Value().ThermalModelBoundaries()[0U].value, 0.0) | EXPECT_DOUBLE_EQ(result.Value().ThermalStep()->Boundaries()[0U].value, 30.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MapsApprovedShellThermalReference ThermalDomainMapping.MapsApprovedShellThermalReference; assertion 43개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MapsApprovedShellThermalReference 유지 원문 검사 body 및 assertion 동일. 55cab422db4e1520d96658c9b35707efad8d2f61960a1a9c91f2696e239f596f 55cab422db4e1520d96658c9b35707efad8d2f61960a1a9c91f2696e239f596f "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 729U) | ASSERT_EQ(domain.ThermalElements().Size(), 676U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 1U) | ASSERT_EQ(domain.ThermalSections().size(), 1U) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(step.name, ""Step-1"") | EXPECT_EQ(step.maximum_increments, 100000U) | EXPECT_EQ(step.nominal_increment, 1.) | EXPECT_EQ(step.time_period, 100.) | ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 100U) | EXPECT_EQ(grid.Value().Time(37U), 37.) | EXPECT_EQ(domain.ThermalMaterials()[0].Name(), ""Material-1"") | EXPECT_EQ(domain.ThermalMaterials()[0].Conductivity(), 54.) | EXPECT_EQ(domain.ThermalMaterials()[0].Density(), 7850.) | EXPECT_EQ(domain.ThermalMaterials()[0].SpecificHeat(), 460.) | EXPECT_EQ(domain.ThermalSections()[0].name, ""Set-1"") | EXPECT_EQ(domain.ThermalSections()[0].thickness, .5) | EXPECT_EQ(domain.ThermalSections()[0].location.file, path) | EXPECT_EQ(domain.ThermalSections()[0].location.line, 1421U) | EXPECT_EQ(domain.Nodes()[i].source_id.instance_name, ""Part-1-1"") | EXPECT_EQ(domain.Nodes()[i].source_id.source_label, static_cast(i + 1U)) | EXPECT_EQ(domain.ThermalElements()[i].SourceId().instance_name, ""Part-1-1"") | EXPECT_EQ(domain.ThermalElements()[i].SourceId().source_label, static_cast(i + 1U)) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), expected_boundary_labels.size()) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), step.Boundaries().size()) | EXPECT_EQ(model_bc.node_index, step_bc.node_index) | EXPECT_EQ(domain.Nodes()[model_bc.node_index].source_id.source_label, expected_boundary_labels[i]) | EXPECT_EQ(model_bc.dof, 11) | EXPECT_EQ(step_bc.dof, 11) | EXPECT_EQ(model_bc.value, 0.) | EXPECT_EQ(step_bc.value, 1000.) | EXPECT_EQ(model_bc.location.file, path) | EXPECT_LT(model_bc.location.line, step_bc.location.line) | ASSERT_EQ(domain.ElementSurfaces().size(), 1U) | ASSERT_EQ(domain.ElementSurfaces()[0].facets.size(), 169U) | EXPECT_EQ(domain.ElementSurfaces()[0].facets.front().source_element_label, 170) | EXPECT_EQ(domain.ElementSurfaces()[0].facets.back().source_element_label, 338) | EXPECT_EQ(domain.ElementSurfaces()[0].facets[0].source_element_type, ""DS4"") | ASSERT_EQ(domain.Warnings().size(), 6U) | EXPECT_EQ(std::count_if(domain.Warnings().begin(), domain.Warnings().end(), [&](const auto& warning) { return warning.location.file == path && warning.location.line == block.location.line && warning.keyword == block.canonical_name; }), 1)" "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 729U) | ASSERT_EQ(domain.ThermalElements().Size(), 676U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 1U) | ASSERT_EQ(domain.ThermalSections().size(), 1U) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(step.name, ""Step-1"") | EXPECT_EQ(step.maximum_increments, 100000U) | EXPECT_EQ(step.nominal_increment, 1.) | EXPECT_EQ(step.time_period, 100.) | ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 100U) | EXPECT_EQ(grid.Value().Time(37U), 37.) | EXPECT_EQ(domain.ThermalMaterials()[0].Name(), ""Material-1"") | EXPECT_EQ(domain.ThermalMaterials()[0].Conductivity(), 54.) | EXPECT_EQ(domain.ThermalMaterials()[0].Density(), 7850.) | EXPECT_EQ(domain.ThermalMaterials()[0].SpecificHeat(), 460.) | EXPECT_EQ(domain.ThermalSections()[0].name, ""Set-1"") | EXPECT_EQ(domain.ThermalSections()[0].thickness, .5) | EXPECT_EQ(domain.ThermalSections()[0].location.file, path) | EXPECT_EQ(domain.ThermalSections()[0].location.line, 1421U) | EXPECT_EQ(domain.Nodes()[i].source_id.instance_name, ""Part-1-1"") | EXPECT_EQ(domain.Nodes()[i].source_id.source_label, static_cast(i + 1U)) | EXPECT_EQ(domain.ThermalElements()[i].SourceId().instance_name, ""Part-1-1"") | EXPECT_EQ(domain.ThermalElements()[i].SourceId().source_label, static_cast(i + 1U)) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), expected_boundary_labels.size()) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), step.Boundaries().size()) | EXPECT_EQ(model_bc.node_index, step_bc.node_index) | EXPECT_EQ(domain.Nodes()[model_bc.node_index].source_id.source_label, expected_boundary_labels[i]) | EXPECT_EQ(model_bc.dof, 11) | EXPECT_EQ(step_bc.dof, 11) | EXPECT_EQ(model_bc.value, 0.) | EXPECT_EQ(step_bc.value, 1000.) | EXPECT_EQ(model_bc.location.file, path) | EXPECT_LT(model_bc.location.line, step_bc.location.line) | ASSERT_EQ(domain.ElementSurfaces().size(), 1U) | ASSERT_EQ(domain.ElementSurfaces()[0].facets.size(), 169U) | EXPECT_EQ(domain.ElementSurfaces()[0].facets.front().source_element_label, 170) | EXPECT_EQ(domain.ElementSurfaces()[0].facets.back().source_element_label, 338) | EXPECT_EQ(domain.ElementSurfaces()[0].facets[0].source_element_type, ""DS4"") | ASSERT_EQ(domain.Warnings().size(), 6U) | EXPECT_EQ(std::count_if(domain.Warnings().begin(), domain.Warnings().end(), [&](const auto& warning) { return warning.location.file == path && warning.location.line == block.location.line && warning.keyword == block.canonical_name; }), 1)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.StrictOutputAndRestartNoOps ThermalDomainMapping.StrictOutputAndRestartNoOps; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.StrictOutputAndRestartNoOps 유지 원문 검사 body 및 assertion 동일. 51e37954cc1bd09a41977f48f6977a1889e509d285ae1bde007e30b5345078ef 51e37954cc1bd09a41977f48f6977a1889e509d285ae1bde007e30b5345078ef 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.EveryAcceptedNoOpHasExactlyOneSourceWarning ThermalDomainMapping.EveryAcceptedNoOpHasExactlyOneSourceWarning; assertion 5개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.EveryAcceptedNoOpHasExactlyOneSourceWarning 유지 원문 검사 body 및 assertion 동일. f320f56a6a51fb244decaea008d505f0b1b7d96d0ed1c36dc537572256e87b74 f320f56a6a51fb244decaea008d505f0b1b7d96d0ed1c36dc537572256e87b74 ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(warnings.size(), blocks.size()) | EXPECT_EQ(std::count_if(warnings.begin(), warnings.end(), [&](const auto& w) { return w.severity == fesa::Severity::kWarning && w.keyword == block.second && w.location.file == input.Path() && w.location.line == line; }), 1) | EXPECT_DOUBLE_EQ( result.Value().ThermalInitialConditions()[0].station_values[0], 20.) ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(warnings.size(), blocks.size()) | EXPECT_EQ(std::count_if(warnings.begin(), warnings.end(), [&](const auto& w) { return w.severity == fesa::Severity::kWarning && w.keyword == block.second && w.location.file == input.Path() && w.location.line == line; }), 1) | EXPECT_DOUBLE_EQ( result.Value().ThermalInitialConditions()[0].station_values[0], 20.) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.SurfaceFacetsAreResolvedAndPreserved ThermalDomainMapping.SurfaceFacetsAreResolvedAndPreserved; assertion 11개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.SurfaceFacetsAreResolvedAndPreserved 유지 원문 검사 body 및 assertion 동일. 1e33822a025e5c4a4e36a221f6e21dd2e83b6223c22d01f0f2bf0e2e4a150638 1e33822a025e5c4a4e36a221f6e21dd2e83b6223c22d01f0f2bf0e2e4a150638 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surfaces.size(), 2U) | ASSERT_EQ(surfaces[i].facets.size(), 1U) | EXPECT_EQ(facet.element_index, 0U) | EXPECT_EQ(facet.source_element_label, 1) | EXPECT_EQ(facet.instance_name_raw, ""I"") | EXPECT_EQ(facet.part_name_raw, ""P"") | EXPECT_EQ(facet.source_element_type, ""DS4"") | EXPECT_EQ(facet.side, side == ""SPOS"" ? fesa::ShellSurfaceSide::kSpos : fesa::ShellSurfaceSide::kSneg) | EXPECT_EQ(facet.member_kind, i == 0U ? fesa::SurfaceMemberKind::kDirect : fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(facet.first_member_location.line, LineOf(deck, (i == 0U ? ""I.1, "" : ""Faces, "") + side))" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surfaces.size(), 2U) | ASSERT_EQ(surfaces[i].facets.size(), 1U) | EXPECT_EQ(facet.element_index, 0U) | EXPECT_EQ(facet.source_element_label, 1) | EXPECT_EQ(facet.instance_name_raw, ""I"") | EXPECT_EQ(facet.part_name_raw, ""P"") | EXPECT_EQ(facet.source_element_type, ""DS4"") | EXPECT_EQ(facet.side, side == ""SPOS"" ? fesa::ShellSurfaceSide::kSpos : fesa::ShellSurfaceSide::kSneg) | EXPECT_EQ(facet.member_kind, i == 0U ? fesa::SurfaceMemberKind::kDirect : fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(facet.first_member_location.line, LineOf(deck, (i == 0U ? ""I.1, "" : ""Faces, "") + side))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsUnresolvedOrInvalidSurfaces ThermalDomainMapping.RejectsUnresolvedOrInvalidSurfaces; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsUnresolvedOrInvalidSurfaces 유지 원문 검사 body 및 assertion 동일. 678d79744318544126a5fab47e194fbb985efe58934d0728ef55b20156e7d91f 678d79744318544126a5fab47e194fbb985efe58934d0728ef55b20156e7d91f 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.PreprintAndPhysicalConstantsAreStrictAndSourceAware ThermalDomainMapping.PreprintAndPhysicalConstantsAreStrictAndSourceAware; assertion 3개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.PreprintAndPhysicalConstantsAreStrictAndSourceAware 유지 원문 검사 body 및 assertion 동일. 3b12f2919d0a6fdfa013a4ac38dbdce85622c99ad095e6f1f4c74ccef9eec6d2 3b12f2919d0a6fdfa013a4ac38dbdce85622c99ad095e6f1f4c74ccef9eec6d2 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""PHYSICAL CONSTANTS"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, 1U)" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""PHYSICAL CONSTANTS"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, 1U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsChildOutputUnknownAndWrongNoOpScopes ThermalDomainMapping.RejectsChildOutputUnknownAndWrongNoOpScopes; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsChildOutputUnknownAndWrongNoOpScopes 유지 원문 검사 body 및 assertion 동일. 6b5c15e74febb98d3db79f8aef581dd44e658c4aa04714443914a23d5cba6117 6b5c15e74febb98d3db79f8aef581dd44e658c4aa04714443914a23d5cba6117 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MaterialConstantsAndSectionLinksAreStrict ThermalDomainMapping.MaterialConstantsAndSectionLinksAreStrict; assertion 1개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MaterialConstantsAndSectionLinksAreStrict 유지 원문 검사 body 및 assertion 동일. f4ccfe76b71133eea01edf7824c2b21d6e5d49bdad620c5d3f7bcc205c7d532f f4ccfe76b71133eea01edf7824c2b21d6e5d49bdad620c5d3f7bcc205c7d532f ASSERT_TRUE(result.HasValue()) ASSERT_TRUE(result.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InitialTemperatureDefaultsAndOverlaps ThermalDomainMapping.InitialTemperatureDefaultsAndOverlaps; assertion 4개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InitialTemperatureDefaultsAndOverlaps 유지 원문 검사 body 및 assertion 동일. cff5684ec434d19c1c53df0be1764dad47e45d50bd4df30c490fb263894fbd0c cff5684ec434d19c1c53df0be1764dad47e45d50bd4df30c490fb263894fbd0c ASSERT_TRUE(unspecified.HasValue()) | EXPECT_TRUE(unspecified.Value().ThermalInitialConditions().empty()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(temperature, 20.) ASSERT_TRUE(unspecified.HasValue()) | EXPECT_TRUE(unspecified.Value().ThermalInitialConditions().empty()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(temperature, 20.) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InactiveTargetsFailWithOriginalKeywordAndIdentity ThermalDomainMapping.InactiveTargetsFailWithOriginalKeywordAndIdentity; assertion 8개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InactiveTargetsFailWithOriginalKeywordAndIdentity 유지 원문 검사 body 및 assertion 동일. 83f7f07fbb31e1317402934ace845532b895851b979987760d55f5d4cd771562 83f7f07fbb31e1317402934ace845532b895851b979987760d55f5d4cd771562 "ASSERT_TRUE(accepted.HasValue()) | EXPECT_EQ(accepted.Value().Nodes().size(), 5U) | ASSERT_TRUE(view.HasValue()) | EXPECT_EQ(view.Value().ActiveThermalNodes().size(), 4U) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(diagnostic.entity_identity, ""99"") | EXPECT_EQ(diagnostic.location.line, LineOf(deck, replacement.second)) | EXPECT_NE(diagnostic.keyword, ""THERMAL"")" "ASSERT_TRUE(accepted.HasValue()) | EXPECT_EQ(accepted.Value().Nodes().size(), 5U) | ASSERT_TRUE(view.HasValue()) | EXPECT_EQ(view.Value().ActiveThermalNodes().size(), 4U) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(diagnostic.entity_identity, ""99"") | EXPECT_EQ(diagnostic.location.line, LineOf(deck, replacement.second)) | EXPECT_NE(diagnostic.keyword, ""THERMAL"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ModelBoundaryInheritanceAndStepOverrideReachDofManager ThermalDomainMapping.ModelBoundaryInheritanceAndStepOverrideReachDofManager; assertion 9개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ModelBoundaryInheritanceAndStepOverrideReachDofManager 유지 원문 검사 body 및 assertion 동일. f7561b77de2a4c22260774a6681cea57b317458be3d0c6d27ebe1722d41297c0 f7561b77de2a4c22260774a6681cea57b317458be3d0c6d27ebe1722d41297c0 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), 4U) | ASSERT_EQ(domain.ThermalStep()->Boundaries().size(), 3U) | EXPECT_DOUBLE_EQ(domain.ThermalModelBoundaries()[0].value, 7.) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Boundaries()[0].value, -30.) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().ConstrainedDofs(), expected_dofs) | EXPECT_DOUBLE_EQ(dofs.Value().PrescribedValues()[i], expected_values[i]) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), 4U) | ASSERT_EQ(domain.ThermalStep()->Boundaries().size(), 3U) | EXPECT_DOUBLE_EQ(domain.ThermalModelBoundaries()[0].value, 7.) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Boundaries()[0].value, -30.) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().ConstrainedDofs(), expected_dofs) | EXPECT_DOUBLE_EQ(dofs.Value().PrescribedValues()[i], expected_values[i]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.BoundariesRejectConflictsAndUnsupportedRowsAtBothLevels ThermalDomainMapping.BoundariesRejectConflictsAndUnsupportedRowsAtBothLevels; assertion 1개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.BoundariesRejectConflictsAndUnsupportedRowsAtBothLevels 유지 원문 검사 body 및 assertion 동일. a8f827d53efc01de6f80689eaf293ddb96b5915e6b4ab8bcc73c1c1035a09da3 a8f827d53efc01de6f80689eaf293ddb96b5915e6b4ab8bcc73c1c1035a09da3 EXPECT_TRUE( MapText(Replace(ThermalDeck(), original, original + equal)).HasValue()) EXPECT_TRUE( MapText(Replace(ThermalDeck(), original, original + equal)).HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.SignedFluxRetainsRowOrderDuplicatesAndConstrainedTargets ThermalDomainMapping.SignedFluxRetainsRowOrderDuplicatesAndConstrainedTargets; assertion 8개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.SignedFluxRetainsRowOrderDuplicatesAndConstrainedTargets 유지 원문 검사 body 및 assertion 동일. 67fcb68684488e6a52db58d6d9d5968ea92bbe01cc27a8d2a942a3f41444bec9 67fcb68684488e6a52db58d6d9d5968ea92bbe01cc27a8d2a942a3f41444bec9 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 5U) | EXPECT_EQ(loads[i].node_index, nodes[i]) | EXPECT_EQ(loads[i].dof, dofs[i]) | EXPECT_DOUBLE_EQ(loads[i].power, powers[i]) | EXPECT_EQ(loads[i].source_order, i) | EXPECT_EQ(loads[1].location.line, loads[2].location.line) | EXPECT_LT(loads[3].location.line, loads[4].location.line) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 5U) | EXPECT_EQ(loads[i].node_index, nodes[i]) | EXPECT_EQ(loads[i].dof, dofs[i]) | EXPECT_DOUBLE_EQ(loads[i].power, powers[i]) | EXPECT_EQ(loads[i].source_order, i) | EXPECT_EQ(loads[1].location.line, loads[2].location.line) | EXPECT_LT(loads[3].location.line, loads[4].location.line) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.FluxRejectsOptionsRowsAndWrongScopes ThermalDomainMapping.FluxRejectsOptionsRowsAndWrongScopes; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.FluxRejectsOptionsRowsAndWrongScopes 유지 원문 검사 body 및 assertion 동일. 81d3c024c63600240315286bb6e27e326334e1e331df08d355ae3a621a691140 81d3c024c63600240315286bb6e27e326334e1e331df08d355ae3a621a691140 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.TimeControlsUseSharedGridIncludingInputCellBoundaries ThermalDomainMapping.TimeControlsUseSharedGridIncludingInputCellBoundaries; assertion 12개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.TimeControlsUseSharedGridIncludingInputCellBoundaries 유지 원문 검사 body 및 assertion 동일. ef1ee468ae9c492f40c424c0c3deb777f280c6bb9adc1c2fff05a8f58203abb9 ef1ee468ae9c492f40c424c0c3deb777f280c6bb9adc1c2fff05a8f58203abb9 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(step.nominal_increment, item.increment) | EXPECT_EQ(step.time_period, item.period) | ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), item.count) | EXPECT_DOUBLE_EQ(grid.Value().Time(item.count), item.period) | EXPECT_EQ(grid.Value().Delta(item.count), item.last) | ASSERT_TRUE(upper.HasValue()) | EXPECT_EQ(upper.Value().ThermalStep()->maximum_increments, 4294967295U) | ASSERT_TRUE(defaults.HasValue()) | EXPECT_EQ(defaults.Value().ThermalStep()->maximum_increments, 100U) | EXPECT_TRUE(MapText(deck).HasValue()) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(step.nominal_increment, item.increment) | EXPECT_EQ(step.time_period, item.period) | ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), item.count) | EXPECT_DOUBLE_EQ(grid.Value().Time(item.count), item.period) | EXPECT_EQ(grid.Value().Delta(item.count), item.last) | ASSERT_TRUE(upper.HasValue()) | EXPECT_EQ(upper.Value().ThermalStep()->maximum_increments, 4294967295U) | ASSERT_TRUE(defaults.HasValue()) | EXPECT_EQ(defaults.Value().ThermalStep()->maximum_increments, 100U) | EXPECT_TRUE(MapText(deck).HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsInvalidTimeAndMixedProceduresInEitherOrder ThermalDomainMapping.RejectsInvalidTimeAndMixedProceduresInEitherOrder; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsInvalidTimeAndMixedProceduresInEitherOrder 유지 원문 검사 body 및 assertion 동일. 5b1320ef7da28a420e69f4a16c2ee726c95f57abeeb08cb2f1b5442cead6914c 5b1320ef7da28a420e69f4a16c2ee726c95f57abeeb08cb2f1b5442cead6914c 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ThermalMaterialAndSourceProvenanceArePreserved ThermalDomainMapping.ThermalMaterialAndSourceProvenanceArePreserved; assertion 20개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ThermalMaterialAndSourceProvenanceArePreserved 유지 원문 검사 body 및 assertion 동일. a83d5e4753e50f897bd60b99b3825dd7ac3d14d1af14ed384a814d45662478b6 a83d5e4753e50f897bd60b99b3825dd7ac3d14d1af14ed384a814d45662478b6 "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalMaterials().Size(), 2U) | ASSERT_EQ(domain.ThermalSections().size(), 1U) | EXPECT_EQ(section.material_index, 1U) | EXPECT_EQ(section.name, ""E"") | EXPECT_EQ(section.source_id.source_label_text, ""E"") | EXPECT_EQ(section.location.file, input.Path()) | EXPECT_EQ(section.location.line, LineOf(deck, ""*Shell Section"")) | EXPECT_DOUBLE_EQ(section.thickness, .5) | EXPECT_EQ(material.Name(), ""M"") | EXPECT_DOUBLE_EQ(material.Conductivity(), 54.) | EXPECT_DOUBLE_EQ(material.Density(), 7850.) | EXPECT_DOUBLE_EQ(material.SpecificHeat(), 460.) | EXPECT_EQ(material.Location().line, LineOf(deck, ""*Material, name=M"")) | EXPECT_EQ(domain.ThermalElements()[0].SourceId().instance_name, ""I"") | EXPECT_EQ(domain.ThermalElements()[0].SourceId().source_label, 1) | EXPECT_EQ(domain.ThermalStep()->name, ""Heat"") | EXPECT_EQ(domain.ThermalStep()->location.file, input.Path()) | EXPECT_EQ(domain.ThermalStep()->location.line, LineOf(deck, ""*Step""))" "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalMaterials().Size(), 2U) | ASSERT_EQ(domain.ThermalSections().size(), 1U) | EXPECT_EQ(section.material_index, 1U) | EXPECT_EQ(section.name, ""E"") | EXPECT_EQ(section.source_id.source_label_text, ""E"") | EXPECT_EQ(section.location.file, input.Path()) | EXPECT_EQ(section.location.line, LineOf(deck, ""*Shell Section"")) | EXPECT_DOUBLE_EQ(section.thickness, .5) | EXPECT_EQ(material.Name(), ""M"") | EXPECT_DOUBLE_EQ(material.Conductivity(), 54.) | EXPECT_DOUBLE_EQ(material.Density(), 7850.) | EXPECT_DOUBLE_EQ(material.SpecificHeat(), 460.) | EXPECT_EQ(material.Location().line, LineOf(deck, ""*Material, name=M"")) | EXPECT_EQ(domain.ThermalElements()[0].SourceId().instance_name, ""I"") | EXPECT_EQ(domain.ThermalElements()[0].SourceId().source_label, 1) | EXPECT_EQ(domain.ThermalStep()->name, ""Heat"") | EXPECT_EQ(domain.ThermalStep()->location.file, input.Path()) | EXPECT_EQ(domain.ThermalStep()->location.line, LineOf(deck, ""*Step""))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.FiniteThermalScalarsPreserveSubnormalAndSignedValues ThermalDomainMapping.FiniteThermalScalarsPreserveSubnormalAndSignedValues; assertion 9개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.FiniteThermalScalarsPreserveSubnormalAndSignedValues 유지 원문 검사 body 및 assertion 동일. 3a8d71661b54b80493cecf844c9354c0030c40b2616bd05a29aa13346381261d 3a8d71661b54b80493cecf844c9354c0030c40b2616bd05a29aa13346381261d ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.ThermalMaterials()[0].Conductivity(), tiny) | EXPECT_EQ(domain.ThermalMaterials()[0].Density(), tiny) | EXPECT_EQ(domain.ThermalMaterials()[0].SpecificHeat(), tiny) | EXPECT_EQ(domain.ThermalSections()[0].thickness, tiny) | EXPECT_EQ(domain.ThermalInitialConditions()[0].station_values[4], -tiny) | EXPECT_EQ(domain.ThermalStep()->Boundaries()[0].value, -tiny) | EXPECT_EQ(domain.ThermalStep()->Loads()[0].power, -tiny) | ASSERT_TRUE(result.HasValue()) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.ThermalMaterials()[0].Conductivity(), tiny) | EXPECT_EQ(domain.ThermalMaterials()[0].Density(), tiny) | EXPECT_EQ(domain.ThermalMaterials()[0].SpecificHeat(), tiny) | EXPECT_EQ(domain.ThermalSections()[0].thickness, tiny) | EXPECT_EQ(domain.ThermalInitialConditions()[0].station_values[4], -tiny) | EXPECT_EQ(domain.ThermalStep()->Boundaries()[0].value, -tiny) | EXPECT_EQ(domain.ThermalStep()->Loads()[0].power, -tiny) | ASSERT_TRUE(result.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ThermalSetAndSurfaceDuplicatesExpandOnce ThermalDomainMapping.ThermalSetAndSurfaceDuplicatesExpandOnce; assertion 5개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ThermalSetAndSurfaceDuplicatesExpandOnce 유지 원문 검사 body 및 assertion 동일. 70f6a3c60352f7322e1271a4458f03823deec7ac49e85cd7ff385d20de9f3c30 70f6a3c60352f7322e1271a4458f03823deec7ac49e85cd7ff385d20de9f3c30 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().ThermalElements().Size(), 1U) | ASSERT_EQ(result.Value().ElementSurfaces().size(), 1U) | EXPECT_EQ(result.Value().ElementSurfaces()[0].facets.size(), 1U) | EXPECT_EQ(result.Value().Warnings().size(), 1U) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().ThermalElements().Size(), 1U) | ASSERT_EQ(result.Value().ElementSurfaces().size(), 1U) | EXPECT_EQ(result.Value().ElementSurfaces()[0].facets.size(), 1U) | EXPECT_EQ(result.Value().Warnings().size(), 1U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.DeferredFailuresRetainExactInputLocationAndIdentity ThermalDomainMapping.DeferredFailuresRetainExactInputLocationAndIdentity; assertion 9개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.DeferredFailuresRetainExactInputLocationAndIdentity 유지 원문 검사 body 및 assertion 동일. 01f444fd4378662acd9566174387017dd3939056ee5ec7901884183c67c6900a 01f444fd4378662acd9566174387017dd3939056ee5ec7901884183c67c6900a "ASSERT_TRUE(parsed.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(diagnostic.location.file, input.Path()) | EXPECT_EQ(diagnostic.location.line, LineOf(deck, ""1., 100."")) | EXPECT_EQ(diagnostic.keyword, ""HEAT TRANSFER"") | EXPECT_EQ(diagnostic.entity_identity, ""Heat"") | ASSERT_FALSE(missing_contact.HasValue()) | EXPECT_EQ(missing_contact.GetStatus().Diagnostics()[0].location.line, 1U) | EXPECT_EQ(missing_contact.GetStatus().Diagnostics()[0].keyword, ""PREPRINT"")" "ASSERT_TRUE(parsed.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(diagnostic.location.file, input.Path()) | EXPECT_EQ(diagnostic.location.line, LineOf(deck, ""1., 100."")) | EXPECT_EQ(diagnostic.keyword, ""HEAT TRANSFER"") | EXPECT_EQ(diagnostic.entity_identity, ""Heat"") | ASSERT_FALSE(missing_contact.HasValue()) | EXPECT_EQ(missing_contact.GetStatus().Diagnostics()[0].location.line, 1U) | EXPECT_EQ(missing_contact.GetStatus().Diagnostics()[0].keyword, ""PREPRINT"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsMixedElementsAndWrongThermalMaterialScopes ThermalDomainMapping.RejectsMixedElementsAndWrongThermalMaterialScopes; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsMixedElementsAndWrongThermalMaterialScopes 유지 원문 검사 body 및 assertion 동일. ff984f852aeb3c53c270694ea7e4eaa2015891728d1e0a86260abf39206b5c92 ff984f852aeb3c53c270694ea7e4eaa2015891728d1e0a86260abf39206b5c92 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetResolvesSectionCaseInsensitively ThermalDomainMapping.InlineElementSetResolvesSectionCaseInsensitively; assertion 12개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetResolvesSectionCaseInsensitively 유지 원문 검사 body 및 assertion 동일. 11a43f66380de877c7ff381c789e0b363e357811dff150b5bd5e0b5d0fa75644 11a43f66380de877c7ff381c789e0b363e357811dff150b5bd5e0b5d0fa75644 "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ElementSets().size(), 1U) | EXPECT_EQ(set.name, ""inlineShells"") | EXPECT_EQ(set.instance_name, ""I"") | EXPECT_EQ(set.element_indices, std::vector{0U}) | EXPECT_EQ(set.location.file, input.Path()) | EXPECT_EQ(set.location.line, LineOf(deck, ""*Element"")) | ASSERT_EQ(domain.ThermalElements().Size(), 1U) | EXPECT_EQ(domain.ThermalElements()[0].ThermalSectionIndex(), 0U) | EXPECT_EQ(domain.ThermalSections()[0].name, ""INLINESHELLS"") | EXPECT_EQ(domain.ThermalSections()[0].location.line, LineOf(deck, ""*Shell Section""))" "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ElementSets().size(), 1U) | EXPECT_EQ(set.name, ""inlineShells"") | EXPECT_EQ(set.instance_name, ""I"") | EXPECT_EQ(set.element_indices, std::vector{0U}) | EXPECT_EQ(set.location.file, input.Path()) | EXPECT_EQ(set.location.line, LineOf(deck, ""*Element"")) | ASSERT_EQ(domain.ThermalElements().Size(), 1U) | EXPECT_EQ(domain.ThermalElements()[0].ThermalSectionIndex(), 0U) | EXPECT_EQ(domain.ThermalSections()[0].name, ""INLINESHELLS"") | EXPECT_EQ(domain.ThermalSections()[0].location.line, LineOf(deck, ""*Shell Section""))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetPreservesElementRowOrder ThermalDomainMapping.InlineElementSetPreservesElementRowOrder; assertion 8개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetPreservesElementRowOrder 유지 원문 검사 body 및 assertion 동일. 3f5d500fe86f7405086319ff4905bc60894fb8d080af74f6df1f3c7a3b4aa299 3f5d500fe86f7405086319ff4905bc60894fb8d080af74f6df1f3c7a3b4aa299 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ElementSets().size(), 1U) | ASSERT_EQ(domain.ElementSets()[0].element_indices.size(), 2U) | EXPECT_EQ(domain.ElementSets()[0].element_indices, (std::vector{0U, 1U})) | EXPECT_EQ(domain.ThermalElements()[0].SourceId().source_label, 7) | EXPECT_EQ(domain.ThermalElements()[1].SourceId().source_label, 3) | EXPECT_EQ(domain.ThermalElements()[0].ThermalSectionIndex(), 0U) | EXPECT_EQ(domain.ThermalElements()[1].ThermalSectionIndex(), 0U) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ElementSets().size(), 1U) | ASSERT_EQ(domain.ElementSets()[0].element_indices.size(), 2U) | EXPECT_EQ(domain.ElementSets()[0].element_indices, (std::vector{0U, 1U})) | EXPECT_EQ(domain.ThermalElements()[0].SourceId().source_label, 7) | EXPECT_EQ(domain.ThermalElements()[1].SourceId().source_label, 3) | EXPECT_EQ(domain.ThermalElements()[0].ThermalSectionIndex(), 0U) | EXPECT_EQ(domain.ThermalElements()[1].ThermalSectionIndex(), 0U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetRejectsInvalidAndDuplicateDefinitions ThermalDomainMapping.InlineElementSetRejectsInvalidAndDuplicateDefinitions; assertion 3개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetRejectsInvalidAndDuplicateDefinitions 유지 원문 검사 body 및 assertion 동일. 2b667a74ce81cfa3de66ebbe8049794f9416f01506fae6df68dc3d3e97ea91d1 2b667a74ce81cfa3de66ebbe8049794f9416f01506fae6df68dc3d3e97ea91d1 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""ELEMENT"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, LineOf(deck, ""*Element""))" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""ELEMENT"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, LineOf(deck, ""*Element""))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsBeamSectionAndBeamOnlyChildrenAtTheirSource ThermalDomainMapping.RejectsBeamSectionAndBeamOnlyChildrenAtTheirSource; assertion 3개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsBeamSectionAndBeamOnlyChildrenAtTheirSource 유지 원문 검사 body 및 assertion 동일. d2f88d94560f7a9f695eebc3563b633cb0e076be17328f2fbc56c6793fb58c22 d2f88d94560f7a9f695eebc3563b633cb0e076be17328f2fbc56c6793fb58c22 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""BEAM GENERAL SECTION"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, LineOf(deck, ""*Beam General Section""))" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""BEAM GENERAL SECTION"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, LineOf(deck, ""*Beam General Section""))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsMalformedDs4ConnectivityAndElementOptions ThermalDomainMapping.RejectsMalformedDs4ConnectivityAndElementOptions; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsMalformedDs4ConnectivityAndElementOptions 유지 원문 검사 body 및 assertion 동일. efab1ebde5819473f0bd8e7adcbdc08d2be96827dca23ef798d1a485c709d008 efab1ebde5819473f0bd8e7adcbdc08d2be96827dca23ef798d1a485c709d008 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/abaqus/thermal_domain_test.cpp support@1-146 helper/oracle/fixture/include/static assertion 구간: TemporaryInput, MapText, ThermalDeck, Replace, LineOf, ExpectRejected, Number tests/unit/io/abaqus/thermal_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9791c2574febe33443dffbd2e64441a7c8c962fccb165f678b39cc7d550b2a3e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/abaqus/thermal_domain_test.cpp support@1049-1050 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/thermal_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5d309a1b119015721f17821d48e950cf534158a32c914e89a799118380647c7f 55a2e65c40382b393210d36625666ce014008eaf3cbfbe9610a6dfaf0f840d11 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.RejectsDefaultStateBeforeCreatingOutput DynamicHdf5ResultsWriter.RejectsDefaultStateBeforeCreatingOutput; assertion 5개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.RejectsDefaultStateBeforeCreatingOutput 유지 원문 검사 body 및 assertion 동일. 2b67a7e7a070056ecb65aa9297b70593d65c453c4475315d2cff3fe0018e5846 2b67a7e7a070056ecb65aa9297b70593d65c453c4475315d2cff3fe0018e5846 "ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-output-schema"") | EXPECT_FALSE(std::filesystem::exists(output.Path()))" "ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-output-schema"") | EXPECT_FALSE(std::filesystem::exists(output.Path()))" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.SeparatesReducedFilterCombinationFromLegacyDriver DynamicHdf5ResultsWriter.SeparatesReducedFilterCombinationFromLegacyDriver; assertion 8개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.SeparatesReducedFilterCombinationFromLegacyDriver 유지 원문 검사 body 및 assertion 동일. 6e1f7161506bb30dec1b6476fb08a144bf4ad5451198473973be60597f2e2740 6e1f7161506bb30dec1b6476fb08a144bf4ad5451198473973be60597f2e2740 "ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE(writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(ReadAttribute(metadata.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 2U) | EXPECT_EQ(ReadString(metadata.Get(), ""time_integration_formulation""), ""reduced-coordinate-HHT-with-physical-rate-reconstruction"") | EXPECT_EQ(ReadAttribute(auxiliary.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 2U) | EXPECT_EQ(ReadString(auxiliary.Get(), ""quantity_semantics""), ""full-chart-HHT-filter-combination-not-predictor-driver"") | EXPECT_EQ(ReadString(physical.Get(), ""quantity_semantics""), ""physical-endpoint-chart-acceleration"")" "ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE(writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(ReadAttribute(metadata.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 2U) | EXPECT_EQ(ReadString(metadata.Get(), ""time_integration_formulation""), ""reduced-coordinate-HHT-with-physical-rate-reconstruction"") | EXPECT_EQ(ReadAttribute(auxiliary.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 2U) | EXPECT_EQ(ReadString(auxiliary.Get(), ""quantity_semantics""), ""full-chart-HHT-filter-combination-not-predictor-driver"") | EXPECT_EQ(ReadString(physical.Get(), ""quantity_semantics""), ""physical-endpoint-chart-acceleration"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.WritesCompletePhysicalClampedHistoryAndSchema DynamicHdf5ResultsWriter.WritesCompletePhysicalClampedHistoryAndSchema; assertion 42개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.WritesCompletePhysicalClampedHistoryAndSchema 유지 원문 검사 body 및 assertion 동일. 15b4e67c491410f17a9b661b200e35a71e79de2db81b9007d037a8d82986bb60 15b4e67c491410f17a9b661b200e35a71e79de2db81b9007d037a8d82986bb60 "ASSERT_TRUE(status.IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(ReadString(metadata.Get(), ""feature_id""), ""hht-implicit-dynamics"") | EXPECT_EQ(ReadString(metadata.Get(), ""analysis_procedure""), ""hht-implicit-dynamics"") | EXPECT_EQ(ReadString(metadata.Get(), ""source_step_name""), ""Transient Load"") | EXPECT_EQ(ReadString(metadata.Get(), ""mass_formulation""), ""nodal-lumped-kinetic"") | EXPECT_EQ(ReadString(metadata.Get(), ""acceleration_convention""), ""physical-endpoint-and-auxiliary-separated"") | EXPECT_EQ(ReadString(metadata.Get(), ""initial_state""), ""zero-q-v-step-load-0+"") | EXPECT_EQ(ReadString(metadata.Get(), ""unit_system_label""), ""consistent-input-units"") | EXPECT_EQ(ReadAttribute(metadata.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 1U) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""alpha"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), -0.05) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""beta"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), 0.275625) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""gamma"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), 0.55) | ASSERT_GE(H5Dread(density.Get(), density_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &density_row), 0) | EXPECT_EQ(density_row.id, 0U) | EXPECT_DOUBLE_EQ(density_row.rho, 2.0) | EXPECT_GT(H5Tequal(mask_type.Get(), H5T_STD_U8LE), 0) | ASSERT_GE(H5Dread(mask.Get(), H5T_NATIVE_UINT8, H5S_ALL, H5S_ALL, H5P_DEFAULT, constraints.data()), 0) | EXPECT_EQ(value, 1U) | EXPECT_EQ(ReadDoubles(file.Get(), ""/model/prescribed_displacement"", {4U, 6U}), std::vector(24U, 0.0)) | EXPECT_EQ(H5Lexists(file.Get(), ""/model/prescribed_displacement_start"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/model/prescribed_displacement_target"", H5P_DEFAULT), 0) | EXPECT_EQ(ReadString(dataset.Get(), ""component_names""), expected.components) | EXPECT_FALSE( ReadString(dataset.Get(), ""component_unit_dimensions"").empty()) | EXPECT_FALSE(ReadString(dataset.Get(), ""coordinate_system"").empty()) | EXPECT_FALSE(ReadString(dataset.Get(), ""location"").empty()) | EXPECT_EQ(ReadString(dataset.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadString(dataset.Get(), ""source_step_name""), ""Transient Load"") | EXPECT_EQ(ReadAttribute(dataset.Get(), ""frame_index"", H5T_STD_U64LE, H5T_NATIVE_UINT64), index) | EXPECT_EQ(ReadAttribute(dataset.Get(), ""increment_index"", H5T_STD_U64LE, H5T_NATIVE_UINT64), index) | EXPECT_EQ(ReadAttribute(dataset.Get(), ""is_initial"", H5T_STD_U8LE, H5T_NATIVE_UINT8), index == 0U ? 1U : 0U) | EXPECT_DOUBLE_EQ(ReadAttribute(dataset.Get(), ""time"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), static_cast(index) * 0.25) | EXPECT_EQ(H5Aexists(dataset.Get(), ""load_factor""), 0) | EXPECT_DOUBLE_EQ( values[entry], entry % 9U == 0U || entry % 9U == 4U || entry % 9U == 8U ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ(values[entry], entry % 3U == 2U ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ( values[entry], force ? (leaf == ""nodal/generalized_external_force"" ? 4.0 : -4.0) : 0.0) | EXPECT_EQ(ReadString(stress.Get(), ""source_element_type_dataset""), ""/model/elements.source_element_type"") | EXPECT_EQ(ReadString(stress.Get(), ""midsurface_location_dataset""), ""/model/shell/midsurface_locations"") | EXPECT_EQ(ReadString(stress.Get(), ""section_position_dataset""), ""/model/shell/section_positions"") | EXPECT_EQ(ReadString(stress.Get(), ""local_frame_dataset""), ""/steps/Step-1/frames/2/element/shell/local_frame"") | EXPECT_GE(H5Tget_member_index(diagnostic_type.Get(), ""source_file""), 0) | EXPECT_GE(H5Tget_member_index(diagnostic_type.Get(), ""source_line""), 0)" "ASSERT_TRUE(status.IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(ReadString(metadata.Get(), ""feature_id""), ""hht-implicit-dynamics"") | EXPECT_EQ(ReadString(metadata.Get(), ""analysis_procedure""), ""hht-implicit-dynamics"") | EXPECT_EQ(ReadString(metadata.Get(), ""source_step_name""), ""Transient Load"") | EXPECT_EQ(ReadString(metadata.Get(), ""mass_formulation""), ""nodal-lumped-kinetic"") | EXPECT_EQ(ReadString(metadata.Get(), ""acceleration_convention""), ""physical-endpoint-and-auxiliary-separated"") | EXPECT_EQ(ReadString(metadata.Get(), ""initial_state""), ""zero-q-v-step-load-0+"") | EXPECT_EQ(ReadString(metadata.Get(), ""unit_system_label""), ""consistent-input-units"") | EXPECT_EQ(ReadAttribute(metadata.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 1U) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""alpha"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), -0.05) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""beta"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), 0.275625) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""gamma"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), 0.55) | ASSERT_GE(H5Dread(density.Get(), density_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &density_row), 0) | EXPECT_EQ(density_row.id, 0U) | EXPECT_DOUBLE_EQ(density_row.rho, 2.0) | EXPECT_GT(H5Tequal(mask_type.Get(), H5T_STD_U8LE), 0) | ASSERT_GE(H5Dread(mask.Get(), H5T_NATIVE_UINT8, H5S_ALL, H5S_ALL, H5P_DEFAULT, constraints.data()), 0) | EXPECT_EQ(value, 1U) | EXPECT_EQ(ReadDoubles(file.Get(), ""/model/prescribed_displacement"", {4U, 6U}), std::vector(24U, 0.0)) | EXPECT_EQ(H5Lexists(file.Get(), ""/model/prescribed_displacement_start"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/model/prescribed_displacement_target"", H5P_DEFAULT), 0) | EXPECT_EQ(ReadString(dataset.Get(), ""component_names""), expected.components) | EXPECT_FALSE( ReadString(dataset.Get(), ""component_unit_dimensions"").empty()) | EXPECT_FALSE(ReadString(dataset.Get(), ""coordinate_system"").empty()) | EXPECT_FALSE(ReadString(dataset.Get(), ""location"").empty()) | EXPECT_EQ(ReadString(dataset.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadString(dataset.Get(), ""source_step_name""), ""Transient Load"") | EXPECT_EQ(ReadAttribute(dataset.Get(), ""frame_index"", H5T_STD_U64LE, H5T_NATIVE_UINT64), index) | EXPECT_EQ(ReadAttribute(dataset.Get(), ""increment_index"", H5T_STD_U64LE, H5T_NATIVE_UINT64), index) | EXPECT_EQ(ReadAttribute(dataset.Get(), ""is_initial"", H5T_STD_U8LE, H5T_NATIVE_UINT8), index == 0U ? 1U : 0U) | EXPECT_DOUBLE_EQ(ReadAttribute(dataset.Get(), ""time"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), static_cast(index) * 0.25) | EXPECT_EQ(H5Aexists(dataset.Get(), ""load_factor""), 0) | EXPECT_DOUBLE_EQ( values[entry], entry % 9U == 0U || entry % 9U == 4U || entry % 9U == 8U ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ(values[entry], entry % 3U == 2U ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ( values[entry], force ? (leaf == ""nodal/generalized_external_force"" ? 4.0 : -4.0) : 0.0) | EXPECT_EQ(ReadString(stress.Get(), ""source_element_type_dataset""), ""/model/elements.source_element_type"") | EXPECT_EQ(ReadString(stress.Get(), ""midsurface_location_dataset""), ""/model/shell/midsurface_locations"") | EXPECT_EQ(ReadString(stress.Get(), ""section_position_dataset""), ""/model/shell/section_positions"") | EXPECT_EQ(ReadString(stress.Get(), ""local_frame_dataset""), ""/steps/Step-1/frames/2/element/shell/local_frame"") | EXPECT_GE(H5Tget_member_index(diagnostic_type.Get(), ""source_file""), 0) | EXPECT_GE(H5Tget_member_index(diagnostic_type.Get(), ""source_line""), 0)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.PreservesSeparateSuppliedEndpointAndAuxiliaryEvidence DynamicHdf5ResultsWriter.PreservesSeparateSuppliedEndpointAndAuxiliaryEvidence; assertion 9개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.PreservesSeparateSuppliedEndpointAndAuxiliaryEvidence 유지 원문 검사 body 및 assertion 동일. 0e68645100a4807b87bd6d9a6dba22f0cdbdb588a65f032dfe2eac6c0c11487d 0e68645100a4807b87bd6d9a6dba22f0cdbdb588a65f032dfe2eac6c0c11487d "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/acceleration"", {4U, 6U})[0U], 2.0) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/algorithmic_acceleration"", {4U, 6U})[0U], 3.0) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/generalized_inertia_force"", {4U, 6U})[0U], 5.0) | EXPECT_EQ(ReadDoubles(file.Get(), root + ""global/energy"", {5U}), (std::vector{6.0, 7.0, 8.0, 9.0, 12.0})) | EXPECT_EQ(ReadString(acceleration.Get(), ""rotation_representation""), ""total-rotation-vector-chart"") | EXPECT_EQ(ReadString(acceleration.Get(), ""quantity_semantics""), ""physical-endpoint-chart-acceleration"")" "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/acceleration"", {4U, 6U})[0U], 2.0) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/algorithmic_acceleration"", {4U, 6U})[0U], 3.0) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/generalized_inertia_force"", {4U, 6U})[0U], 5.0) | EXPECT_EQ(ReadDoubles(file.Get(), root + ""global/energy"", {5U}), (std::vector{6.0, 7.0, 8.0, 9.0, 12.0})) | EXPECT_EQ(ReadString(acceleration.Get(), ""rotation_representation""), ""total-rotation-vector-chart"") | EXPECT_EQ(ReadString(acceleration.Get(), ""quantity_semantics""), ""physical-endpoint-chart-acceleration"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.ConvertsPartialConstraintMomentToSpatialReaction DynamicHdf5ResultsWriter.ConvertsPartialConstraintMomentToSpatialReaction; assertion 9개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.ConvertsPartialConstraintMomentToSpatialReaction 유지 원문 검사 body 및 assertion 동일. f825bce2933be89196cd7c0291501abd4ead25e31d9986f7762c497e92748702 f825bce2933be89196cd7c0291501abd4ead25e31d9986f7762c497e92748702 ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_DOUBLE_EQ(generalized[3U], 5.0) | EXPECT_DOUBLE_EQ(generalized[4U], 0.0) | EXPECT_DOUBLE_EQ(generalized[5U], 0.0) | EXPECT_NEAR(spatial[3U], 5.0 * (1.0 - coefficient * 0.13), 1.0e-14) | EXPECT_NEAR(spatial[4U], 0.75, 1.0e-14) | EXPECT_NEAR(spatial[5U], -0.5, 1.0e-14) ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_DOUBLE_EQ(generalized[3U], 5.0) | EXPECT_DOUBLE_EQ(generalized[4U], 0.0) | EXPECT_DOUBLE_EQ(generalized[5U], 0.0) | EXPECT_NEAR(spatial[3U], 5.0 * (1.0 - coefficient * 0.13), 1.0e-14) | EXPECT_NEAR(spatial[4U], 0.75, 1.0e-14) | EXPECT_NEAR(spatial[5U], -0.5, 1.0e-14) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.IncompleteOrMismatchedHistoryPreservesExistingFile DynamicHdf5ResultsWriter.IncompleteOrMismatchedHistoryPreservesExistingFile; assertion 9개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.IncompleteOrMismatchedHistoryPreservesExistingFile 유지 원문 검사 body 및 assertion 동일. ad2c45f94851936a7e87cfed7a14d272db0b75733b9f719eb64af3ce2b90d231 ad2c45f94851936a7e87cfed7a14d272db0b75733b9f719eb64af3ce2b90d231 "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), ""previous-result"") | ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, index)) .IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *other.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), ""previous-result"") | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), valid_bytes)" "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), ""previous-result"") | ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, index)) .IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *other.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), ""previous-result"") | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), valid_bytes)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.FailedAtomicReplacementPreservesPreviousBytes DynamicHdf5ResultsWriter.FailedAtomicReplacementPreservesPreviousBytes; assertion 6개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.FailedAtomicReplacementPreservesPreviousBytes 유지 원문 검사 body 및 assertion 동일. d850c859b3d1569738581059ef0ee47cc054602b036a96ec36581c643c103909 d850c859b3d1569738581059ef0ee47cc054602b036a96ec36581c643c103909 "ASSERT_NE(locked, INVALID_HANDLE_VALUE) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(CloseHandle(locked)) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""hdf5-finalization-failure"") | EXPECT_EQ(ReadBytes(output.Path()), ""locked-previous-result"")" "ASSERT_NE(locked, INVALID_HANDLE_VALUE) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(CloseHandle(locked)) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""hdf5-finalization-failure"") | EXPECT_EQ(ReadBytes(output.Path()), ""locked-previous-result"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp support@1-254 helper/oracle/fixture/include/static assertion 구간: MakeDefinition, if, Fixture, MakeFixture, MakeFrame, TempFile, Path, CommitHistory, ReadBytes, ReadString, ReadAttribute, ReadDoubles, ExpectCompound tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 703c272cdd720ce3a45edcd79bbc0fc04178d27f236c2b72c3fea95c54ceaf1e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp support@671-672 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 249f07429c5bb0dd50db784f6be559e15db7c705baa3db44e0591c9c7914d9e3 249f07429c5bb0dd50db784f6be559e15db7c705baa3db44e0591c9c7914d9e3 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp EigenHdf5ResultsWriter.WritesModalSchemaAndRejectsTamperedState EigenHdf5ResultsWriter.WritesModalSchemaAndRejectsTamperedState; assertion 27개 tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp EigenHdf5ResultsWriter.WritesModalSchemaAndRejectsTamperedState 유지 원문 검사 body 및 assertion 동일. 8ff5899d7d3dd0584e34a8b619ece2228a6520e3fee41e10e038d73c57656e93 8ff5899d7d3dd0584e34a8b619ece2228a6520e3fee41e10e038d73c57656e93 "ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(execution.HasValue()) | ASSERT_TRUE(writer.Write(path, domain, state, {}).IsOk()) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/modes"", H5P_DEFAULT), 0) | ASSERT_GE(controls, 0) | ASSERT_GE(H5Dread(controls, H5T_NATIVE_INT64, H5S_ALL, H5S_ALL, H5P_DEFAULT, stored_controls.data()), 0) | EXPECT_EQ(stored_controls[5U], 0) | EXPECT_GE(H5Dclose(controls), 0) | EXPECT_GE(H5Fclose(file), 0) | EXPECT_FALSE(writer.Write(path, domain, candidate, {}).IsOk()) | EXPECT_TRUE(retained == original) | ASSERT_NE(lock, INVALID_HANDLE_VALUE) | EXPECT_NE(CloseHandle(lock), 0) | ASSERT_FALSE(locked_write.IsOk()) | ASSERT_FALSE(locked_write.Diagnostics().empty()) | EXPECT_EQ(locked_write.Diagnostics()[0].code, ""hdf5-finalization-failure"") | EXPECT_EQ(after_failure, original) | ASSERT_TRUE( fesa::hdf5_internal::SelfCheckEigenFile(path, domain, state, {}).IsOk()) | ASSERT_GE(corrupt_file, 0) | ASSERT_GE(nodes, 0) | ASSERT_GE(H5Tinsert(id_type, ""internal_node_id"", 0U, H5T_NATIVE_UINT64), 0) | ASSERT_GE(H5Dwrite(nodes, id_type, H5S_ALL, H5S_ALL, H5P_DEFAULT, duplicate_ids.data()), 0) | EXPECT_GE(H5Tclose(id_type), 0) | EXPECT_GE(H5Dclose(nodes), 0) | EXPECT_GE(H5Fclose(corrupt_file), 0) | EXPECT_FALSE( fesa::hdf5_internal::SelfCheckEigenFile(path, domain, state, {}).IsOk())" "ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(execution.HasValue()) | ASSERT_TRUE(writer.Write(path, domain, state, {}).IsOk()) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/modes"", H5P_DEFAULT), 0) | ASSERT_GE(controls, 0) | ASSERT_GE(H5Dread(controls, H5T_NATIVE_INT64, H5S_ALL, H5S_ALL, H5P_DEFAULT, stored_controls.data()), 0) | EXPECT_EQ(stored_controls[5U], 0) | EXPECT_GE(H5Dclose(controls), 0) | EXPECT_GE(H5Fclose(file), 0) | EXPECT_FALSE(writer.Write(path, domain, candidate, {}).IsOk()) | EXPECT_TRUE(retained == original) | ASSERT_NE(lock, INVALID_HANDLE_VALUE) | EXPECT_NE(CloseHandle(lock), 0) | ASSERT_FALSE(locked_write.IsOk()) | ASSERT_FALSE(locked_write.Diagnostics().empty()) | EXPECT_EQ(locked_write.Diagnostics()[0].code, ""hdf5-finalization-failure"") | EXPECT_EQ(after_failure, original) | ASSERT_TRUE( fesa::hdf5_internal::SelfCheckEigenFile(path, domain, state, {}).IsOk()) | ASSERT_GE(corrupt_file, 0) | ASSERT_GE(nodes, 0) | ASSERT_GE(H5Tinsert(id_type, ""internal_node_id"", 0U, H5T_NATIVE_UINT64), 0) | ASSERT_GE(H5Dwrite(nodes, id_type, H5S_ALL, H5S_ALL, H5P_DEFAULT, duplicate_ids.data()), 0) | EXPECT_GE(H5Tclose(id_type), 0) | EXPECT_GE(H5Dclose(nodes), 0) | EXPECT_GE(H5Fclose(corrupt_file), 0) | EXPECT_FALSE( fesa::hdf5_internal::SelfCheckEigenFile(path, domain, state, {}).IsOk())" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp support@1-66 helper/oracle/fixture/include/static assertion 구간: Definition tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b3554f56791ac66395cfa9a19281f09965b9ad9dbf29a3e9976828778334b35b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp support@154-155 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 10개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. dd680025af1f1e85cfd08e97d2dad7db8c857238d3b73cb23d824690670f58c3 dd680025af1f1e85cfd08e97d2dad7db8c857238d3b73cb23d824690670f58c3 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactSchemaShapesAttributesAndIdentity Hdf5ResultsWriter.WritesExactSchemaShapesAttributesAndIdentity; assertion 60개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactSchemaShapesAttributesAndIdentity 유지 원문 검사 body 및 assertion 동일. 8da4eeff5bd49a698da035e0516b426d30471db8c183ee6c78329f2a02879880 8da4eeff5bd49a698da035e0516b426d30471db8c183ee6c78329f2a02879880 "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | EXPECT_GT(H5Lexists(file.Get(), path, H5P_DEFAULT), 0) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""linear-static-3d-euler-beam"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""solver_version""), std::string{fesa::SolverVersion()}) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""source_input_identity""), ""path="" + normalized_source + "";content_identity=fnv1a64:0123456789abcdef"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""unit_system_label""), ""user-consistent-unspecified"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""coordinate_convention""), ""global-cartesian; beam-local=(t,n1,t-cross-n1)"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""element_formulation""), ""B33-3D-Euler-Bernoulli"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""frame_index""), 0U) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/nodes""), std::vector({2U})) | EXPECT_EQ(ReadStringAttribute(nodes_dataset.Get(), ""coordinate_system""), ""global-cartesian"") | EXPECT_EQ(ReadStringAttribute(nodes_dataset.Get(), ""units_label""), ""length"") | ASSERT_EQ(nodes.size(), 2U) | EXPECT_EQ(nodes[0U].internal_node_id, 0U) | EXPECT_STREQ(nodes[0U].instance_name, u8""Beam-\u03b1"") | EXPECT_STREQ(nodes[0U].source_label, ""101"") | EXPECT_DOUBLE_EQ(nodes[1U].coordinates[0U], 3.0) | EXPECT_DOUBLE_EQ(nodes[1U].coordinates[1U], 4.0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/elements""), std::vector({1U})) | EXPECT_EQ(ReadStringAttribute(elements_dataset.Get(), ""formulation""), ""B33-3D-Euler-Bernoulli"") | ASSERT_EQ(displacement.size(), 12U) | EXPECT_DOUBLE_EQ(displacement.front(), 0.25) | EXPECT_DOUBLE_EQ(displacement.back(), 11.25) | ASSERT_EQ(reaction.size(), 12U) | EXPECT_DOUBLE_EQ(reaction.front(), 100.0) | EXPECT_DOUBLE_EQ(reaction.back(), 111.0) | ASSERT_EQ(end_force.size(), 12U) | EXPECT_DOUBLE_EQ(end_force.front(), 1.0) | EXPECT_DOUBLE_EQ(end_force.back(), 12.0) | ASSERT_EQ(section_resultant.size(), 8U) | EXPECT_DOUBLE_EQ(section_resultant.front(), 11.0) | EXPECT_DOUBLE_EQ(section_resultant.back(), 18.0) | ASSERT_EQ(generalized_strain.size(), 8U) | EXPECT_DOUBLE_EQ(generalized_strain.front(), 0.01) | EXPECT_DOUBLE_EQ(generalized_strain.back(), 0.08) | ASSERT_EQ(generalized_resultant.size(), 8U) | EXPECT_DOUBLE_EQ(generalized_resultant.front(), 21.0) | EXPECT_DOUBLE_EQ(generalized_resultant.back(), 28.0) | EXPECT_EQ(DatasetDimensions(file.Get(), stress_path), std::vector({4U})) | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""component_names""), ""S11"") | EXPECT_EQ( ReadStringAttribute(stress_dataset.Get(), ""component_unit_dimensions""), ""force/length^2"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""coordinate_system""), ""beam-local"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""location""), ""section-point"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadUint64Attribute(stress_dataset.Get(), ""frame_index""), 0U) | ASSERT_EQ(stress_rows.size(), 4U) | EXPECT_EQ(stress_rows[0U].internal_element_id, 0U) | EXPECT_EQ(stress_rows[0U].gauss_point_index, 1U) | EXPECT_EQ(stress_rows[0U].section_point_index, 1U) | EXPECT_DOUBLE_EQ(stress_rows[0U].x1, -0.1) | EXPECT_DOUBLE_EQ(stress_rows[0U].x2, 0.2) | EXPECT_STREQ(stress_rows[0U].source, ""input"") | EXPECT_DOUBLE_EQ(stress_rows[3U].s11, 34.0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({0U})) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/0/element/transverse_shear_stress"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0)" "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | EXPECT_GT(H5Lexists(file.Get(), path, H5P_DEFAULT), 0) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""linear-static-3d-euler-beam"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""solver_version""), std::string{fesa::SolverVersion()}) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""source_input_identity""), ""path="" + normalized_source + "";content_identity=fnv1a64:0123456789abcdef"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""unit_system_label""), ""user-consistent-unspecified"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""coordinate_convention""), ""global-cartesian; beam-local=(t,n1,t-cross-n1)"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""element_formulation""), ""B33-3D-Euler-Bernoulli"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""frame_index""), 0U) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/nodes""), std::vector({2U})) | EXPECT_EQ(ReadStringAttribute(nodes_dataset.Get(), ""coordinate_system""), ""global-cartesian"") | EXPECT_EQ(ReadStringAttribute(nodes_dataset.Get(), ""units_label""), ""length"") | ASSERT_EQ(nodes.size(), 2U) | EXPECT_EQ(nodes[0U].internal_node_id, 0U) | EXPECT_STREQ(nodes[0U].instance_name, u8""Beam-\u03b1"") | EXPECT_STREQ(nodes[0U].source_label, ""101"") | EXPECT_DOUBLE_EQ(nodes[1U].coordinates[0U], 3.0) | EXPECT_DOUBLE_EQ(nodes[1U].coordinates[1U], 4.0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/elements""), std::vector({1U})) | EXPECT_EQ(ReadStringAttribute(elements_dataset.Get(), ""formulation""), ""B33-3D-Euler-Bernoulli"") | ASSERT_EQ(displacement.size(), 12U) | EXPECT_DOUBLE_EQ(displacement.front(), 0.25) | EXPECT_DOUBLE_EQ(displacement.back(), 11.25) | ASSERT_EQ(reaction.size(), 12U) | EXPECT_DOUBLE_EQ(reaction.front(), 100.0) | EXPECT_DOUBLE_EQ(reaction.back(), 111.0) | ASSERT_EQ(end_force.size(), 12U) | EXPECT_DOUBLE_EQ(end_force.front(), 1.0) | EXPECT_DOUBLE_EQ(end_force.back(), 12.0) | ASSERT_EQ(section_resultant.size(), 8U) | EXPECT_DOUBLE_EQ(section_resultant.front(), 11.0) | EXPECT_DOUBLE_EQ(section_resultant.back(), 18.0) | ASSERT_EQ(generalized_strain.size(), 8U) | EXPECT_DOUBLE_EQ(generalized_strain.front(), 0.01) | EXPECT_DOUBLE_EQ(generalized_strain.back(), 0.08) | ASSERT_EQ(generalized_resultant.size(), 8U) | EXPECT_DOUBLE_EQ(generalized_resultant.front(), 21.0) | EXPECT_DOUBLE_EQ(generalized_resultant.back(), 28.0) | EXPECT_EQ(DatasetDimensions(file.Get(), stress_path), std::vector({4U})) | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""component_names""), ""S11"") | EXPECT_EQ( ReadStringAttribute(stress_dataset.Get(), ""component_unit_dimensions""), ""force/length^2"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""coordinate_system""), ""beam-local"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""location""), ""section-point"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadUint64Attribute(stress_dataset.Get(), ""frame_index""), 0U) | ASSERT_EQ(stress_rows.size(), 4U) | EXPECT_EQ(stress_rows[0U].internal_element_id, 0U) | EXPECT_EQ(stress_rows[0U].gauss_point_index, 1U) | EXPECT_EQ(stress_rows[0U].section_point_index, 1U) | EXPECT_DOUBLE_EQ(stress_rows[0U].x1, -0.1) | EXPECT_DOUBLE_EQ(stress_rows[0U].x2, 0.2) | EXPECT_STREQ(stress_rows[0U].source, ""input"") | EXPECT_DOUBLE_EQ(stress_rows[3U].s11, 34.0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({0U})) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/0/element/transverse_shear_stress"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesMandatoryOutputsDespiteOutputRequests Hdf5ResultsWriter.WritesMandatoryOutputsDespiteOutputRequests; assertion 3개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesMandatoryOutputsDespiteOutputRequests 유지 원문 검사 body 및 assertion 동일. cd64b9e679f90b6dc4e5be4798c43fa4c11a4fb720cb281b1fe45e0207702f39 cd64b9e679f90b6dc4e5be4798c43fa4c11a4fb720cb281b1fe45e0207702f39 "ASSERT_TRUE( writer.Write(output, *fixture.domain, *fixture.state, {ignored_request}) .IsOk()) | EXPECT_GT(H5Lexists(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({1U}))" "ASSERT_TRUE( writer.Write(output, *fixture.domain, *fixture.state, {ignored_request}) .IsOk()) | EXPECT_GT(H5Lexists(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({1U}))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesWarningsAndDefaultCentroid Hdf5ResultsWriter.WritesWarningsAndDefaultCentroid; assertion 18개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesWarningsAndDefaultCentroid 유지 원문 검사 body 및 assertion 동일. cab1bac6c24b113ae4bf36c8870f5e9ed01bccb51403e05830a7287e63b2acbd cab1bac6c24b113ae4bf36c8870f5e9ed01bccb51403e05830a7287e63b2acbd "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, diagnostics) .IsOk()) | ASSERT_EQ(stress_rows.size(), 2U) | EXPECT_EQ(stress_rows[index].internal_element_id, 0U) | EXPECT_EQ(stress_rows[index].gauss_point_index, index + 1U) | EXPECT_EQ(stress_rows[index].section_point_index, 0U) | EXPECT_DOUBLE_EQ(stress_rows[index].x1, 0.0) | EXPECT_DOUBLE_EQ(stress_rows[index].x2, 0.0) | EXPECT_STREQ(stress_rows[index].source, ""fesa-default"") | ASSERT_EQ(rows.size(), 2U) | EXPECT_STREQ(rows[0U].severity, ""warning"") | EXPECT_STREQ(rows[0U].code, ""ignored-keyword"") | EXPECT_STREQ(rows[0U].file, std::filesystem::absolute(fixture.domain->SourcePath()) .lexically_normal() .generic_u8string() .c_str()) | EXPECT_EQ(rows[0U].line, 20U) | EXPECT_STREQ(rows[0U].keyword, ""*PREPRINT"") | EXPECT_STREQ(rows[0U].entity_identity, """") | EXPECT_STREQ(rows[0U].message, ""Ignored generator control."") | EXPECT_STREQ(rows[1U].code, ""ignored-output-request"") | EXPECT_EQ(rows[1U].line, 80U)" "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, diagnostics) .IsOk()) | ASSERT_EQ(stress_rows.size(), 2U) | EXPECT_EQ(stress_rows[index].internal_element_id, 0U) | EXPECT_EQ(stress_rows[index].gauss_point_index, index + 1U) | EXPECT_EQ(stress_rows[index].section_point_index, 0U) | EXPECT_DOUBLE_EQ(stress_rows[index].x1, 0.0) | EXPECT_DOUBLE_EQ(stress_rows[index].x2, 0.0) | EXPECT_STREQ(stress_rows[index].source, ""fesa-default"") | ASSERT_EQ(rows.size(), 2U) | EXPECT_STREQ(rows[0U].severity, ""warning"") | EXPECT_STREQ(rows[0U].code, ""ignored-keyword"") | EXPECT_STREQ(rows[0U].file, std::filesystem::absolute(fixture.domain->SourcePath()) .lexically_normal() .generic_u8string() .c_str()) | EXPECT_EQ(rows[0U].line, 20U) | EXPECT_STREQ(rows[0U].keyword, ""*PREPRINT"") | EXPECT_STREQ(rows[0U].entity_identity, """") | EXPECT_STREQ(rows[0U].message, ""Ignored generator control."") | EXPECT_STREQ(rows[1U].code, ""ignored-output-request"") | EXPECT_EQ(rows[1U].line, 80U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.FailureLeavesNoPartialAndPreservesExistingFinal Hdf5ResultsWriter.FailureLeavesNoPartialAndPreservesExistingFinal; assertion 5개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.FailureLeavesNoPartialAndPreservesExistingFinal 유지 원문 검사 body 및 assertion 동일. 5ca48e4c84abdb788e3184610cced5edc5d94b89ed3b8a71a615cb730cf33714 5ca48e4c84abdb788e3184610cced5edc5d94b89ed3b8a71a615cb730cf33714 EXPECT_FALSE(std::filesystem::exists(invalid_output)) | EXPECT_EQ(EntryCount(directory.Path()), 0U) | ASSERT_NE(lock.Get(), INVALID_HANDLE_VALUE) | EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_EQ(EntryCount(directory.Path()), 1U) EXPECT_FALSE(std::filesystem::exists(invalid_output)) | EXPECT_EQ(EntryCount(directory.Path()), 0U) | ASSERT_NE(lock.Get(), INVALID_HANDLE_VALUE) | EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_EQ(EntryCount(directory.Path()), 1U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.SuccessfullyReplacesExistingFinal Hdf5ResultsWriter.SuccessfullyReplacesExistingFinal; assertion 5개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.SuccessfullyReplacesExistingFinal 유지 원문 검사 body 및 assertion 동일. c2f57aee2946c919919c83b75b15b17dc5ddf8adc7d3ea8d634b0f2274fa53b8 c2f57aee2946c919919c83b75b15b17dc5ddf8adc7d3ea8d634b0f2274fa53b8 "ASSERT_TRUE(writer.Write(final, *fixture.domain, *fixture.state, {}).IsOk()) | EXPECT_GT(H5Fis_hdf5(final.string().c_str()), 0) | EXPECT_EQ(EntryCount(directory.Path()), 1U) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U)" "ASSERT_TRUE(writer.Write(final, *fixture.domain, *fixture.state, {}).IsOk()) | EXPECT_GT(H5Fis_hdf5(final.string().c_str()), 0) | EXPECT_EQ(EntryCount(directory.Path()), 1U) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactShellMetadataAndModelIdentity Hdf5ResultsWriter.WritesExactShellMetadataAndModelIdentity; assertion 30개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactShellMetadataAndModelIdentity 유지 원문 검사 body 및 assertion 동일. 6b486491444d4a79d8e2201511ac2a539fc98503320507074eef5e67e7aee5d6 6b486491444d4a79d8e2201511ac2a539fc98503320507074eef5e67e7aee5d6 "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""linear-static-mitc4-shell"") | EXPECT_EQ( ReadStringAttribute(metadata.Get(), ""coordinate_convention""), ""global-cartesian; shell-local=(e1,e2,e3); positive-thickness=+zeta"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""internal_formulation""), ""FESA-MITC4"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""integration_rule""), ""2x2x2-gauss; mitc4-edge-midpoint-shear"") | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/elements""), std::vector({1U})) | EXPECT_EQ(ReadStringAttribute(elements.Get(), ""formulation""), ""FESA-MITC4"") | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/shell/nodal_director""), std::vector({4U, 3U})) | EXPECT_EQ(ReadDoubleDataset(file.Get(), ""/model/shell/nodal_director""), expected_directors) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/shell/nodal_frame""), std::vector({4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/nodal_constraint_mask""), std::vector({4U, 6U})) | ASSERT_EQ(mask.size(), 24U) | EXPECT_EQ(mask[0U], 1U) | EXPECT_EQ(mask[1U], 1U) | EXPECT_EQ(mask[2U], 1U) | EXPECT_EQ(mask[3U], 1U) | EXPECT_EQ(mask[4U], 0U) | EXPECT_EQ(mask[5U], 0U) | ASSERT_EQ(prescribed.size(), 24U) | EXPECT_DOUBLE_EQ(prescribed[0U], 0.0) | EXPECT_DOUBLE_EQ(prescribed[3U], 0.125) | EXPECT_DOUBLE_EQ(prescribed[4U], 0.0) | EXPECT_EQ(ReadDoubleDataset(file.Get(), ""/model/shell/section_positions""), std::vector({-1.0, 0.0, 1.0})) | ASSERT_EQ(locations.size(), 8U) | EXPECT_DOUBLE_EQ(locations[0U], -gauss) | EXPECT_DOUBLE_EQ(locations[1U], -gauss) | EXPECT_DOUBLE_EQ(locations[6U], -gauss) | EXPECT_DOUBLE_EQ(locations[7U], gauss)" "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""linear-static-mitc4-shell"") | EXPECT_EQ( ReadStringAttribute(metadata.Get(), ""coordinate_convention""), ""global-cartesian; shell-local=(e1,e2,e3); positive-thickness=+zeta"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""internal_formulation""), ""FESA-MITC4"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""integration_rule""), ""2x2x2-gauss; mitc4-edge-midpoint-shear"") | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/elements""), std::vector({1U})) | EXPECT_EQ(ReadStringAttribute(elements.Get(), ""formulation""), ""FESA-MITC4"") | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/shell/nodal_director""), std::vector({4U, 3U})) | EXPECT_EQ(ReadDoubleDataset(file.Get(), ""/model/shell/nodal_director""), expected_directors) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/shell/nodal_frame""), std::vector({4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/nodal_constraint_mask""), std::vector({4U, 6U})) | ASSERT_EQ(mask.size(), 24U) | EXPECT_EQ(mask[0U], 1U) | EXPECT_EQ(mask[1U], 1U) | EXPECT_EQ(mask[2U], 1U) | EXPECT_EQ(mask[3U], 1U) | EXPECT_EQ(mask[4U], 0U) | EXPECT_EQ(mask[5U], 0U) | ASSERT_EQ(prescribed.size(), 24U) | EXPECT_DOUBLE_EQ(prescribed[0U], 0.0) | EXPECT_DOUBLE_EQ(prescribed[3U], 0.125) | EXPECT_DOUBLE_EQ(prescribed[4U], 0.0) | EXPECT_EQ(ReadDoubleDataset(file.Get(), ""/model/shell/section_positions""), std::vector({-1.0, 0.0, 1.0})) | ASSERT_EQ(locations.size(), 8U) | EXPECT_DOUBLE_EQ(locations[0U], -gauss) | EXPECT_DOUBLE_EQ(locations[1U], -gauss) | EXPECT_DOUBLE_EQ(locations[6U], -gauss) | EXPECT_DOUBLE_EQ(locations[7U], gauss)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactMandatoryShellResultInventory Hdf5ResultsWriter.WritesExactMandatoryShellResultInventory; assertion 9개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactMandatoryShellResultInventory 유지 원문 검사 body 및 assertion 동일. 110d9a70913902d4021933f838872fc49b23964f0923e76a82ff9ca38d147adc 110d9a70913902d4021933f838872fc49b23964f0923e76a82ff9ca38d147adc "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_EQ(strain.size(), 32U) | EXPECT_DOUBLE_EQ(strain.front(), 101.0) | EXPECT_DOUBLE_EQ(strain.back(), 408.0) | ASSERT_EQ(stress.size(), 36U) | EXPECT_DOUBLE_EQ(stress.front(), 121.0) | EXPECT_DOUBLE_EQ(stress.back(), 429.0) | EXPECT_EQ(ReadStringAttribute(metrics.Get(), ""metric_definition_ids""), ""free-residual-l2-over-max-free-force-l2,force-balance-l2-over-"" ""max-force-sum,moment-balance-l2-over-max-moment-sum"") | EXPECT_EQ(ReadStringAttribute(metrics.Get(), ""acceptance_thresholds""), ""1e-10,1e-10,1e-10"")" "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_EQ(strain.size(), 32U) | EXPECT_DOUBLE_EQ(strain.front(), 101.0) | EXPECT_DOUBLE_EQ(strain.back(), 408.0) | ASSERT_EQ(stress.size(), 36U) | EXPECT_DOUBLE_EQ(stress.front(), 121.0) | EXPECT_DOUBLE_EQ(stress.back(), 429.0) | EXPECT_EQ(ReadStringAttribute(metrics.Get(), ""metric_definition_ids""), ""free-residual-l2-over-max-free-force-l2,force-balance-l2-over-"" ""max-force-sum,moment-balance-l2-over-max-moment-sum"") | EXPECT_EQ(ReadStringAttribute(metrics.Get(), ""acceptance_thresholds""), ""1e-10,1e-10,1e-10"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesShellInventoryDespiteRequestsAndOmitsForbiddenPaths Hdf5ResultsWriter.WritesShellInventoryDespiteRequestsAndOmitsForbiddenPaths; assertion 4개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesShellInventoryDespiteRequestsAndOmitsForbiddenPaths 유지 원문 검사 body 및 assertion 동일. 472f6fc3007fa9ce8532895a218e178e8b6861022881554d0f7b38f6e3eb1d28 472f6fc3007fa9ce8532895a218e178e8b6861022881554d0f7b38f6e3eb1d28 "ASSERT_TRUE( writer.Write(output, *fixture.domain, *fixture.state, {ignored_request}) .IsOk()) | EXPECT_GT(H5Lexists(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), forbidden, H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({1U}))" "ASSERT_TRUE( writer.Write(output, *fixture.domain, *fixture.state, {ignored_request}) .IsOk()) | EXPECT_GT(H5Lexists(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), forbidden, H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({1U}))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.InvalidShellInventoryPreservesExistingFinal Hdf5ResultsWriter.InvalidShellInventoryPreservesExistingFinal; assertion 2개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.InvalidShellInventoryPreservesExistingFinal 유지 원문 검사 body 및 assertion 동일. 28be997b839d00367e036aef28d86d7b31d42f1f6d3b9af82fce26c23380ba3c 28be997b839d00367e036aef28d86d7b31d42f1f6d3b9af82fce26c23380ba3c EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_EQ(EntryCount(directory.Path()), 1U) EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_EQ(EntryCount(directory.Path()), 1U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.Vector3ShellSerializationRejectsNonfiniteWithoutReplacingFinal Hdf5ResultsWriter.Vector3ShellSerializationRejectsNonfiniteWithoutReplacingFinal; assertion 6개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.Vector3ShellSerializationRejectsNonfiniteWithoutReplacingFinal 유지 원문 검사 body 및 assertion 동일. 3c25204bcd546b3fd1ee10dd44c2e215a6dc878502873b1fe0612cc1c92d82e0 3c25204bcd546b3fd1ee10dd44c2e215a6dc878502873b1fe0612cc1c92d82e0 ASSERT_TRUE(writer.Write(final, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_EQ(directors.size(), 12U) | EXPECT_TRUE(director.IsFinite()) | EXPECT_EQ(director, (fesa::Vector3{0.0, 0.0, 1.0})) | EXPECT_EQ(ReadBytes(final), valid_bytes) | EXPECT_EQ(EntryCount(directory.Path()), 1U) ASSERT_TRUE(writer.Write(final, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_EQ(directors.size(), 12U) | EXPECT_TRUE(director.IsFinite()) | EXPECT_EQ(director, (fesa::Vector3{0.0, 0.0, 1.0})) | EXPECT_EQ(ReadBytes(final), valid_bytes) | EXPECT_EQ(EntryCount(directory.Path()), 1U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1-823 helper/oracle/fixture/include/static assertion 구간: Hdf5Handle, if, WinHandle, TempDirectory, WriterFixture, MakeDefinition, MakeFixture, MakeShellDefinition, MakeShellFixture, OpenFile, OpenDataset, DatasetDimensions, ReadDoubleDataset, for, ReadUint8Dataset, ReadStringAttribute, ReadUint64Attribute, ExpectPortableCompoundMember, ExpectCompoundMembers, ExpectCompoundMemberNames, ExpectNumericDataset, MakeUtf8StringType, NodeReadRow, ReadNodeRows, ReclaimNodeRows, ElementReadRow, ReadElementRows, StressReadRow, ReadStressRows, ReclaimStressRows, DiagnosticReadRow, ReadDiagnosticRows, ReclaimDiagnosticRows, ReadBytes, WriteBytes, EntryCount, ExpectOutputFailure tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4ab1135fc0949c1ef197678be93dda782dc8e2d8655cc928fd55eee0d8961e42 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1120-1121 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7d75f7fce7301b112d258ec1b3434016cbb00dc5186e10757a3d53485db1e852 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1203-1204 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6a28c340e155ab8c275c3eb5afa3522b3c3b655448af487e689907f00da8b75a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1262-1263 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. de735dd985d5499ad7c73f83d71275d6f5a840dbae2b1672b0e2e4008f0d7560 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1301-1302 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e9bcb4f06a58b6240ab792f21d2791ef2d5cd6ed3540f5cbe243c87f41e10575 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1318-1319 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 778e854c4f2ce284558db14ad3b1ce65607a94482da05114089a6c8e96644227 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/hdf5_writer_components_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/io/hdf5/hdf5_writer_components_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cedde4c3b4576ff6568b8dabefbc0ad56bc54ef4d3adbf2c8eb74ad7f7f711e4 cedde4c3b4576ff6568b8dabefbc0ad56bc54ef4d3adbf2c8eb74ad7f7f711e4 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.BuildsStableBackendNeutralBeamDatasetPlans Hdf5WriterComponents.BuildsStableBackendNeutralBeamDatasetPlans; assertion 8개 tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.BuildsStableBackendNeutralBeamDatasetPlans 유지 원문 검사 body 및 assertion 동일. 81b2f1f76a5dcf5bb467f6f4d53431f4e73401023067e1508e3550739a7becc4 81b2f1f76a5dcf5bb467f6f4d53431f4e73401023067e1508e3550739a7becc4 "ASSERT_TRUE(plan_result.HasValue()) | ASSERT_EQ(datasets.size(), 6U) | EXPECT_EQ(datasets[0U].path, ""/steps/Step-1/frames/0/nodal/displacement"") | EXPECT_EQ(datasets[0U].dimensions, std::vector({2U, 6U})) | EXPECT_EQ(datasets[2U].path, ""/steps/Step-1/frames/0/element/end_force_local"") | EXPECT_EQ(datasets[2U].dimensions, std::vector({1U, 2U, 6U})) | EXPECT_EQ(datasets[5U].path, ""/steps/Step-1/frames/0/element/generalized_resultant"") | EXPECT_TRUE(fesa::hdf5_internal::ValidateFiniteInventory(datasets).IsOk())" "ASSERT_TRUE(plan_result.HasValue()) | ASSERT_EQ(datasets.size(), 6U) | EXPECT_EQ(datasets[0U].path, ""/steps/Step-1/frames/0/nodal/displacement"") | EXPECT_EQ(datasets[0U].dimensions, std::vector({2U, 6U})) | EXPECT_EQ(datasets[2U].path, ""/steps/Step-1/frames/0/element/end_force_local"") | EXPECT_EQ(datasets[2U].dimensions, std::vector({1U, 2U, 6U})) | EXPECT_EQ(datasets[5U].path, ""/steps/Step-1/frames/0/element/generalized_resultant"") | EXPECT_TRUE(fesa::hdf5_internal::ValidateFiniteInventory(datasets).IsOk())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.RejectsNonfiniteDatasetPlanInventory Hdf5WriterComponents.RejectsNonfiniteDatasetPlanInventory; assertion 0개 tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.RejectsNonfiniteDatasetPlanInventory 유지 원문 검사 body 및 assertion 동일. 7ffe025ea38838a0b732cf1b6438b5f1ea52e2fa0831d04f9efb98060cb02795 7ffe025ea38838a0b732cf1b6438b5f1ea52e2fa0831d04f9efb98060cb02795 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.SelfCheckFailurePreservesExistingFinalThroughAtomicSeam Hdf5WriterComponents.SelfCheckFailurePreservesExistingFinalThroughAtomicSeam; assertion 4개 tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.SelfCheckFailurePreservesExistingFinalThroughAtomicSeam 유지 원문 검사 body 및 assertion 동일. dfa562386df73584a0987a54a9b5f63293a8ffdc34ac4ffd53924c589ca578e3 dfa562386df73584a0987a54a9b5f63293a8ffdc34ac4ffd53924c589ca578e3 ASSERT_TRUE(std::filesystem::create_directory(directory)) | ASSERT_TRUE(plan_result.HasValue()) | EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_FALSE(std::filesystem::exists(candidate)) ASSERT_TRUE(std::filesystem::create_directory(directory)) | ASSERT_TRUE(plan_result.HasValue()) | EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_FALSE(std::filesystem::exists(candidate)) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/hdf5/hdf5_writer_components_test.cpp support@1-125 helper/oracle/fixture/include/static assertion 구간: WriterFixture, MakeDefinition, MakeFixture, if, ReadBytes, WriteBytes, ExpectOutputFailure tests/unit/io/hdf5/hdf5_writer_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d4c12780f611b8d0f3e096c57425f504de734e1f1fe5f4bb74eee73fce444d6d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ea65dd1a637d3517aba6239dd53b411bf465a04769ae57ffc2ca970247080a4a ea65dd1a637d3517aba6239dd53b411bf465a04769ae57ffc2ca970247080a4a 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.WritesSchemaV1ModelAndCommittedAcceptedFramesOnly NonlinearHdf5ResultsWriter.WritesSchemaV1ModelAndCommittedAcceptedFramesOnly; assertion 34개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.WritesSchemaV1ModelAndCommittedAcceptedFramesOnly 유지 원문 검사 body 및 assertion 동일. 6e39a263af0c568c71a1825d1df1ab7caad034e32be32750eff35627846a02e8 6e39a263af0c568c71a1825d1df1ab7caad034e32be32750eff35627846a02e8 "ASSERT_TRUE(status.IsOk()) | ASSERT_GE(file.Get(), 0) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 1U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""nonlinear-static-newton-raphson"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""analysis_procedure""), ""nonlinear-static-full-newton"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""internal_formulation""), ""FESA-MITC4-total-lagrangian"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""integration_rule""), ""2x2x2-gauss; mitc4-edge-midpoint-shear"") | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""factor_zero_is_frame""), 0U) | EXPECT_DOUBLE_EQ(ReadDoubleAttribute(metadata.Get(), ""factor_zero_load_factor""), 0.0) | EXPECT_GT(H5Lexists(file.Get(), path, H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/steps/Step-1/accepted_frames""), std::vector({2U})) | ASSERT_EQ(frames.size(), 2U) | EXPECT_EQ(frames[0U].frame_index, 0U) | EXPECT_EQ(frames[0U].increment_index, 1U) | EXPECT_DOUBLE_EQ(frames[0U].load_factor, 0.5) | EXPECT_EQ(frames[0U].is_factor_one, 0U) | EXPECT_EQ(frames[1U].frame_index, 1U) | EXPECT_EQ(frames[1U].increment_index, 2U) | EXPECT_DOUBLE_EQ(frames[1U].load_factor, 1.0) | EXPECT_EQ(frames[1U].is_factor_one, 1U) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/2"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/trial_history"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file.Get(), (root + suffix).c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/nodal/displacement""), std::vector({4U, 6U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/nodal/triad""), std::vector({4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/element/shell/local_frame""), std::vector({1U, 4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/element/shell/stress""), std::vector({1U, 4U, 3U, 3U})) | ASSERT_EQ(displacement.size(), 24U) | EXPECT_DOUBLE_EQ(displacement[0U], 1.0) | EXPECT_DOUBLE_EQ(displacement[1U], -1.0) | EXPECT_DOUBLE_EQ(displacement[2U], 0.5) | EXPECT_DOUBLE_EQ(displacement[5U], 0.1)" "ASSERT_TRUE(status.IsOk()) | ASSERT_GE(file.Get(), 0) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 1U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""nonlinear-static-newton-raphson"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""analysis_procedure""), ""nonlinear-static-full-newton"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""internal_formulation""), ""FESA-MITC4-total-lagrangian"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""integration_rule""), ""2x2x2-gauss; mitc4-edge-midpoint-shear"") | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""factor_zero_is_frame""), 0U) | EXPECT_DOUBLE_EQ(ReadDoubleAttribute(metadata.Get(), ""factor_zero_load_factor""), 0.0) | EXPECT_GT(H5Lexists(file.Get(), path, H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/steps/Step-1/accepted_frames""), std::vector({2U})) | ASSERT_EQ(frames.size(), 2U) | EXPECT_EQ(frames[0U].frame_index, 0U) | EXPECT_EQ(frames[0U].increment_index, 1U) | EXPECT_DOUBLE_EQ(frames[0U].load_factor, 0.5) | EXPECT_EQ(frames[0U].is_factor_one, 0U) | EXPECT_EQ(frames[1U].frame_index, 1U) | EXPECT_EQ(frames[1U].increment_index, 2U) | EXPECT_DOUBLE_EQ(frames[1U].load_factor, 1.0) | EXPECT_EQ(frames[1U].is_factor_one, 1U) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/2"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/trial_history"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file.Get(), (root + suffix).c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/nodal/displacement""), std::vector({4U, 6U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/nodal/triad""), std::vector({4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/element/shell/local_frame""), std::vector({1U, 4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/element/shell/stress""), std::vector({1U, 4U, 3U, 3U})) | ASSERT_EQ(displacement.size(), 24U) | EXPECT_DOUBLE_EQ(displacement[0U], 1.0) | EXPECT_DOUBLE_EQ(displacement[1U], -1.0) | EXPECT_DOUBLE_EQ(displacement[2U], 0.5) | EXPECT_DOUBLE_EQ(displacement[5U], 0.1)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.ProjectsRotationalReactionToSpatialMoment NonlinearHdf5ResultsWriter.ProjectsRotationalReactionToSpatialMoment; assertion 6개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.ProjectsRotationalReactionToSpatialMoment 유지 원문 검사 body 및 assertion 동일. 1c90a2968f7f21a035b54b532d62081f4554455b2b91eae22cf861ca9fea1f9f 1c90a2968f7f21a035b54b532d62081f4554455b2b91eae22cf861ca9fea1f9f ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, {}).IsOk()) | ASSERT_EQ(reaction.size(), 24U) | EXPECT_NEAR(reaction[3U], (1.0 - quadratic * theta * theta) * 40.0 - 0.5 * theta * 50.0, 1.0e-12) | EXPECT_NEAR(reaction[4U], 0.5 * theta * 40.0 + (1.0 - quadratic * theta * theta) * 50.0, 1.0e-12) | EXPECT_NEAR(reaction[5U], 60.0, 1.0e-12) | EXPECT_GT(quadratic, 0.0) ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, {}).IsOk()) | ASSERT_EQ(reaction.size(), 24U) | EXPECT_NEAR(reaction[3U], (1.0 - quadratic * theta * theta) * 40.0 - 0.5 * theta * 50.0, 1.0e-12) | EXPECT_NEAR(reaction[4U], 0.5 * theta * 40.0 + (1.0 - quadratic * theta * theta) * 50.0, 1.0e-12) | EXPECT_NEAR(reaction[5U], 60.0, 1.0e-12) | EXPECT_GT(quadratic, 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.WritesSchemaV1GlobalBalanceErrorLocation NonlinearHdf5ResultsWriter.WritesSchemaV1GlobalBalanceErrorLocation; assertion 6개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.WritesSchemaV1GlobalBalanceErrorLocation 유지 원문 검사 body 및 assertion 동일. a001400599ab1442b5c7632e39ec02422a0e5cf4a4420a822d640291fc3bdbd9 a001400599ab1442b5c7632e39ec02422a0e5cf4a4420a822d640291fc3bdbd9 "ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/steps/Step-1/frames/1/global/equilibrium""), std::vector({6U})) | EXPECT_EQ(ReadStringAttribute(equilibrium.Get(), ""component_names""), ""FORCE_1,FORCE_2,FORCE_3,MOMENT_1,MOMENT_2,MOMENT_3"") | EXPECT_EQ(ReadStringAttribute(equilibrium.Get(), ""location""), ""global-balance-error"") | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 1U)" "ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/steps/Step-1/frames/1/global/equilibrium""), std::vector({6U})) | EXPECT_EQ(ReadStringAttribute(equilibrium.Get(), ""component_names""), ""FORCE_1,FORCE_2,FORCE_3,MOMENT_1,MOMENT_2,MOMENT_3"") | EXPECT_EQ(ReadStringAttribute(equilibrium.Get(), ""location""), ""global-balance-error"") | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 1U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.StoresSortedDiagnosticsThroughBackendNeutralBoundary NonlinearHdf5ResultsWriter.StoresSortedDiagnosticsThroughBackendNeutralBoundary; assertion 6개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.StoresSortedDiagnosticsThroughBackendNeutralBoundary 유지 원문 검사 body 및 assertion 동일. 33864ae859f75ea2126a078c47ba665e8bb37b0dd807025395fa77b74be284bf 33864ae859f75ea2126a078c47ba665e8bb37b0dd807025395fa77b74be284bf "ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, diagnostics) .IsOk()) | ASSERT_EQ(rows.size(), 2U) | EXPECT_STREQ(rows[0U].code, ""earlier"") | EXPECT_EQ(rows[0U].line, 10U) | EXPECT_STREQ(rows[1U].code, ""later"") | EXPECT_EQ(rows[1U].line, 20U)" "ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, diagnostics) .IsOk()) | ASSERT_EQ(rows.size(), 2U) | EXPECT_STREQ(rows[0U].code, ""earlier"") | EXPECT_EQ(rows[0U].line, 10U) | EXPECT_STREQ(rows[1U].code, ""later"") | EXPECT_EQ(rows[1U].line, 20U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.CandidateFinalizationFailurePreservesPriorFinal NonlinearHdf5ResultsWriter.CandidateFinalizationFailurePreservesPriorFinal; assertion 6개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.CandidateFinalizationFailurePreservesPriorFinal 유지 원문 검사 body 및 assertion 동일. eb1576644b3e7a2bf28dd63899e0cccf1bd2a8568b4ab593940c67d510aa21c2 eb1576644b3e7a2bf28dd63899e0cccf1bd2a8568b4ab593940c67d510aa21c2 "ASSERT_NE(lock.Get(), INVALID_HANDLE_VALUE) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""hdf5-finalization-failure"") | EXPECT_EQ(ReadBytes(output), sentinel)" "ASSERT_NE(lock.Get(), INVALID_HANDLE_VALUE) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""hdf5-finalization-failure"") | EXPECT_EQ(ReadBytes(output), sentinel)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp support@1-429 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, WinHandle, Fixture, AcceptedFrameRow, DiagnosticRow, MakeDefinition, MakeBaseline, MakeShellRow, MakeShellRows, MakeFrame, MakeFixture, OpenFile, OpenDataset, DatasetDimensions, ReadStringAttribute, ReadUint64Attribute, ReadDoubleAttribute, ReadDoubleDataset, for, AcceptedFrameMemoryType, ReadAcceptedFrames, DiagnosticMemoryType, ReadDiagnostics, ReclaimDiagnostics, ReadBytes, WriteBytes tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6c65598390ba6c2d70dbd49ab2e1b14b76803f926878fd1e6495864508bbc051 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp support@509-510 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8f00d12532be48bbd8d5776bf02cee4d6a243f6225365268e06f4dc268138fa4 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp support@537-538 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e08a00bd74875e33bb07f7be527593f2d4349951e703f865eb04b1e9499e2bbd 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp support@562-563 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a6d0aa9192bf7f01ce6aab9505a2149836668f2461c70984035f857a43eb68e6 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp support@596-597 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cc12e7c3af34a0df4e68a34067bc8e98d4da457614c478a52170cc0c9151b3b6 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 14개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6af9fa2932e01e6d814a73aa2368b5f5d7206f9c39004377d7d0ca5fbe11463d 0e288ede59628ee0256258206f78ba4830a13b65c68d9a42125b767bf15fed78 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.AllFiveActualApiOutcomesHaveIndependentOfficialSchema SolidHdf5ResultsWriter.AllFiveActualApiOutcomesHaveIndependentOfficialSchema; assertion 21개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.AllFiveActualApiOutcomesHaveIndependentOfficialSchema 유지 원문 검사 body 및 assertion 동일. ae7d81086077cec63255ebbb050d057332d3d2303be88998f8ff571d28237340 ae7d81086077cec63255ebbb050d057332d3d2303be88998f8ff571d28237340 "ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(Attr(metadata.Get(), ""analysis_procedure""), solid_output_test::Procedure(p)) | EXPECT_EQ(Attr(metadata.Get(), ""feature_id""), ""hex8-structural-analysis"") | EXPECT_EQ(Attr(metadata.Get(), ""source_step_name""), ""RawSolid"") | EXPECT_EQ(Attr(metadata.Get(), ""element_formulation""), ""FESA-Hex8"") | EXPECT_EQ(Attr(metadata.Get(), ""integration_rule""), ""gauss-2x2x2"") | EXPECT_EQ(Attr(metadata.Get(), ""mass_formulation""), ""lumped-reference"") | EXPECT_EQ(Attr(metadata.Get(), ""component_order""), ""node-major; UX,UY,UZ"") | EXPECT_GT(H5Tequal(masktype.Get(), H5T_STD_U8LE), 0) | EXPECT_EQ(Attr(mask.Get(), ""component_names""), ""UX,UY,UZ"") | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames"", H5P_DEFAULT), 0) | EXPECT_EQ(Attr(dataset.Get(), ""component_names""), std::get<1>(quantity)) | EXPECT_EQ(Attr(dataset.Get(), ""unit_dimensions""), std::get<2>(quantity)) | EXPECT_EQ(Attr(dataset.Get(), ""location""), ""global"") | EXPECT_EQ(Attr(dataset.Get(), ""coordinate_system""), ""global-cartesian"") | EXPECT_EQ(H5Aexists(dataset.Get(), ""frame_index""), 0) | EXPECT_EQ(H5Aexists(dataset.Get(), ""step_name""), 0) | ASSERT_EQ(state.eigenpair_checks[0].solver_column, 0u) | EXPECT_EQ( H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0) | EXPECT_LE( H5Lexists(file.Get(), (root + ""/nodal/displacement_low"").c_str(), H5P_DEFAULT), 0)" "ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(Attr(metadata.Get(), ""analysis_procedure""), solid_output_test::Procedure(p)) | EXPECT_EQ(Attr(metadata.Get(), ""feature_id""), ""hex8-structural-analysis"") | EXPECT_EQ(Attr(metadata.Get(), ""source_step_name""), ""RawSolid"") | EXPECT_EQ(Attr(metadata.Get(), ""element_formulation""), ""FESA-Hex8"") | EXPECT_EQ(Attr(metadata.Get(), ""integration_rule""), ""gauss-2x2x2"") | EXPECT_EQ(Attr(metadata.Get(), ""mass_formulation""), ""lumped-reference"") | EXPECT_EQ(Attr(metadata.Get(), ""component_order""), ""node-major; UX,UY,UZ"") | EXPECT_GT(H5Tequal(masktype.Get(), H5T_STD_U8LE), 0) | EXPECT_EQ(Attr(mask.Get(), ""component_names""), ""UX,UY,UZ"") | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames"", H5P_DEFAULT), 0) | EXPECT_EQ(Attr(dataset.Get(), ""component_names""), std::get<1>(quantity)) | EXPECT_EQ(Attr(dataset.Get(), ""unit_dimensions""), std::get<2>(quantity)) | EXPECT_EQ(Attr(dataset.Get(), ""location""), ""global"") | EXPECT_EQ(Attr(dataset.Get(), ""coordinate_system""), ""global-cartesian"") | EXPECT_EQ(H5Aexists(dataset.Get(), ""frame_index""), 0) | EXPECT_EQ(H5Aexists(dataset.Get(), ""step_name""), 0) | ASSERT_EQ(state.eigenpair_checks[0].solver_column, 0u) | EXPECT_EQ( H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0) | EXPECT_LE( H5Lexists(file.Get(), (root + ""/nodal/displacement_low"").c_str(), H5P_DEFAULT), 0)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.EveryProcedurePreservesPreviousFinalAcrossLifecycleFailures SolidHdf5ResultsWriter.EveryProcedurePreservesPreviousFinalAcrossLifecycleFailures; assertion 3개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.EveryProcedurePreservesPreviousFinalAcrossLifecycleFailures 유지 원문 검사 body 및 assertion 동일. 54758e848f8b701836e7fb82b83cfd0959b5e4f36e413871563d59a6389f21ef 54758e848f8b701836e7fb82b83cfd0959b5e4f36e413871563d59a6389f21ef "EXPECT_FALSE(status.IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | EXPECT_EQ(entry.path().filename().string().find(""candidate""), std::string::npos)" "EXPECT_FALSE(status.IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | EXPECT_EQ(entry.path().filename().string().find(""candidate""), std::string::npos)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.MalformedWholePairsAndIdentityFailBeforeCandidateCreation SolidHdf5ResultsWriter.MalformedWholePairsAndIdentityFailBeforeCandidateCreation; assertion 5개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.MalformedWholePairsAndIdentityFailBeforeCandidateCreation 유지 원문 검사 body 및 assertion 동일. 3d420563bb51f0e354d37714b86fc487aa097ba8f142014c043488d8c4bf78d6 3d420563bb51f0e354d37714b86fc487aa097ba8f142014c043488d8c4bf78d6 EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | ASSERT_EQ(std::fesetround(FE_DOWNWARD), 0) | EXPECT_FALSE(status.IsOk()) | EXPECT_EQ(Bytes(files.output), previous) EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | ASSERT_EQ(std::fesetround(FE_DOWNWARD), 0) | EXPECT_FALSE(status.IsOk()) | EXPECT_EQ(Bytes(files.output), previous) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ModalColumnsRemainZeroBasedAndRejectInvalidInventory SolidHdf5ResultsWriter.ModalColumnsRemainZeroBasedAndRejectInvalidInventory; assertion 4개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ModalColumnsRemainZeroBasedAndRejectInvalidInventory 유지 원문 검사 body 및 assertion 동일. 58160b675d06a1d926ce01fbdcd204944fd73fa1246838cb4245069a58346ec5 58160b675d06a1d926ce01fbdcd204944fd73fa1246838cb4245069a58346ec5 ASSERT_EQ(state.eigenpair_checks[0].solver_column, 0u) | EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) ASSERT_EQ(state.eigenpair_checks[0].solver_column, 0u) | EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ReadbackRejectsMalformedTypesShapesValuesAndSourceIds SolidHdf5ResultsWriter.ReadbackRejectsMalformedTypesShapesValuesAndSourceIds; assertion 2개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ReadbackRejectsMalformedTypesShapesValuesAndSourceIds 유지 원문 검사 body 및 assertion 동일. 98f12927edcaf6e819ce0efdc429254416e9c0b6d37361830ab53bb7d6c1b9bb 98f12927edcaf6e819ce0efdc429254416e9c0b6d37361830ab53bb7d6c1b9bb EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ReadbackMatchesActualAcceptedValuesAndFullPairObservables SolidHdf5ResultsWriter.ReadbackMatchesActualAcceptedValuesAndFullPairObservables; assertion 6개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ReadbackMatchesActualAcceptedValuesAndFullPairObservables 유지 원문 검사 body 및 assertion 동일. 9489cb16f1d352cdb05ead2678289c28d3757ca8717121b5d49f4e4763c16427 9489cb16f1d352cdb05ead2678289c28d3757ca8717121b5d49f4e4763c16427 "ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE(dataset.Get(), 0) | ASSERT_GE(H5Dread(dataset.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, values.data()), 0) | EXPECT_EQ(values, expected) | EXPECT_EQ(Attr(metadata.Get(), ""source_input_identity""), SourceInputIdentity(actual.input.domain)) | EXPECT_TRUE(nonzero_low)" "ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE(dataset.Get(), 0) | ASSERT_GE(H5Dread(dataset.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, values.data()), 0) | EXPECT_EQ(values, expected) | EXPECT_EQ(Attr(metadata.Get(), ""source_input_identity""), SourceInputIdentity(actual.input.domain)) | EXPECT_TRUE(nonzero_low)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.FailureRecordsAreLoggedAndLogFailureTakesPrecedence SolidPreparedAnalysis.FailureRecordsAreLoggedAndLogFailureTakesPrecedence; assertion 9개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.FailureRecordsAreLoggedAndLogFailureTakesPrecedence 유지 원문 검사 body 및 assertion 동일. 86020491b9f15bef285a8c66ff73296c53f87c05bf88bde9e31ceae039b16613 86020491b9f15bef285a8c66ff73296c53f87c05bf88bde9e31ceae039b16613 "ASSERT_TRUE(input.HasValue()) | ASSERT_TRUE(log.Open(files.log).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), closed ? FailureCategory::kOutput : FailureCategory::kSolver) | ASSERT_TRUE(log.Close().IsOk()) | EXPECT_NE(text.find(""injected-tangent-failure""), std::string::npos) | EXPECT_EQ(text.find(""rotation""), std::string::npos) | EXPECT_NE(text.find(""stage=""), std::string::npos)" "ASSERT_TRUE(input.HasValue()) | ASSERT_TRUE(log.Open(files.log).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), closed ? FailureCategory::kOutput : FailureCategory::kSolver) | ASSERT_TRUE(log.Close().IsOk()) | EXPECT_NE(text.find(""injected-tangent-failure""), std::string::npos) | EXPECT_EQ(text.find(""rotation""), std::string::npos) | EXPECT_NE(text.find(""stage=""), std::string::npos)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.MissingSolidAdapterFailsWithoutLegacyDispatch SolidPreparedAnalysis.MissingSolidAdapterFailsWithoutLegacyDispatch; assertion 6개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.MissingSolidAdapterFailsWithoutLegacyDispatch 유지 원문 검사 body 및 assertion 동일. 49053fc528ba887b5f048281c18c912aa09ae411cabbb474074bbc2f15ab91c8 49053fc528ba887b5f048281c18c912aa09ae411cabbb474074bbc2f15ab91c8 "ASSERT_TRUE(input.HasValue()) | ASSERT_TRUE(log.Open(files.log).IsOk()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""missing-solid-executor"") | EXPECT_TRUE(log.Close().IsOk())" "ASSERT_TRUE(input.HasValue()) | ASSERT_TRUE(log.Open(files.log).IsOk()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""missing-solid-executor"") | EXPECT_TRUE(log.Close().IsOk())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.UnsupportedEnvironmentAfterCallbackCannotPublish SolidHdf5ResultsWriter.UnsupportedEnvironmentAfterCallbackCannotPublish; assertion 2개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.UnsupportedEnvironmentAfterCallbackCannotPublish 유지 원문 검사 body 및 assertion 동일. e451c9a755119b6d30517cfadffc36c7fefd922c053ce1aac059d333adc5e7f5 e451c9a755119b6d30517cfadffc36c7fefd922c053ce1aac059d333adc5e7f5 EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.MissingWriterPreservesFinalForEveryTypedOutcome SolidPreparedAnalysis.MissingWriterPreservesFinalForEveryTypedOutcome; assertion 5개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.MissingWriterPreservesFinalForEveryTypedOutcome 유지 원문 검사 body 및 assertion 동일. 7fe8c186182faf22af563656dd32beca34da0788bfe309672f51cb685820abf2 7fe8c186182faf22af563656dd32beca34da0788bfe309672f51cb685820abf2 "ASSERT_TRUE(paths.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_EQ(status.Diagnostics()[0].code, ""missing-solid-writer"") | EXPECT_EQ(Bytes(files.output), previous)" "ASSERT_TRUE(paths.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_EQ(status.Diagnostics()[0].code, ""missing-solid-writer"") | EXPECT_EQ(Bytes(files.output), previous)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidNewtonIterationLog.InvalidScalarEvidencePermanentlyFailsLogLifecycle SolidNewtonIterationLog.InvalidScalarEvidencePermanentlyFailsLogLifecycle; assertion 3개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidNewtonIterationLog.InvalidScalarEvidencePermanentlyFailsLogLifecycle 유지 원문 검사 body 및 assertion 동일. 98a859ab027cf906fe55ec13bd07e191939707a511ef7786e84dbd3040963b47 98a859ab027cf906fe55ec13bd07e191939707a511ef7786e84dbd3040963b47 ASSERT_TRUE(log.Open(files.log).IsOk()) | EXPECT_FALSE(log.Write(record).IsOk()) | EXPECT_FALSE(log.Close().IsOk()) ASSERT_TRUE(log.Open(files.log).IsOk()) | EXPECT_FALSE(log.Write(record).IsOk()) | EXPECT_FALSE(log.Close().IsOk()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.AbsentStaticDensityIsAnExplicitPlaceholder SolidHdf5ResultsWriter.AbsentStaticDensityIsAnExplicitPlaceholder; assertion 5개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.AbsentStaticDensityIsAnExplicitPlaceholder 유지 원문 검사 body 및 assertion 동일. eb6860aba8052654eaa827dfd208c58761976beb7d042b8529d9544036d904fe eb6860aba8052654eaa827dfd208c58761976beb7d042b8529d9544036d904fe ASSERT_NE(position, std::string::npos) | ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE( H5Dread(dataset.Get(), type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &row), 0) | EXPECT_EQ(row.present, 0) | EXPECT_EQ(row.rho, 0) ASSERT_NE(position, std::string::npos) | ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE( H5Dread(dataset.Get(), type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &row), 0) | EXPECT_EQ(row.present, 0) | EXPECT_EQ(row.rho, 0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ModalPhysicalTableAttributeCorruptionPreservesFinal SolidHdf5ResultsWriter.ModalPhysicalTableAttributeCorruptionPreservesFinal; assertion 2개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ModalPhysicalTableAttributeCorruptionPreservesFinal 유지 원문 검사 body 및 assertion 동일. 5ab99b0ef2a17dd81d8b67396fa3ad3fcaafcc82c55b1a90ba8ebc161b3c057a 5ab99b0ef2a17dd81d8b67396fa3ad3fcaafcc82c55b1a90ba8ebc161b3c057a EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.UnselectedBackendPairsCannotPublishInvalidSpectrumOrDimension SolidHdf5ResultsWriter.UnselectedBackendPairsCannotPublishInvalidSpectrumOrDimension; assertion 9개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.UnselectedBackendPairsCannotPublishInvalidSpectrumOrDimension 유지 원문 검사 body 및 assertion 동일. 1ebcf9e3ecd6d2f12eefd8b99060546b7a12f4b64c9542a7d7550aa384b095f7 1ebcf9e3ecd6d2f12eefd8b99060546b7a12f4b64c9542a7d7550aa384b095f7 "ASSERT_NE(position, std::string::npos) | ASSERT_EQ(state.modes.size(), 1u) | ASSERT_EQ(state.free_dof_count, 3u) | ASSERT_GT(state.eigenpair_checks.size(), state.modes.size()) | ASSERT_LE(state.eigenpair_checks.size(), state.free_dof_count) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_NE(message.find(failure == 0 ? ""Significant negative"" : failure == 1 ? ""not sorted"" : ""inventory""), std::string::npos) | EXPECT_EQ(Bytes(files.output), previous)" "ASSERT_NE(position, std::string::npos) | ASSERT_EQ(state.modes.size(), 1u) | ASSERT_EQ(state.free_dof_count, 3u) | ASSERT_GT(state.eigenpair_checks.size(), state.modes.size()) | ASSERT_LE(state.eigenpair_checks.size(), state.free_dof_count) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_NE(message.find(failure == 0 ? ""Significant negative"" : failure == 1 ? ""not sorted"" : ""inventory""), std::string::npos) | EXPECT_EQ(Bytes(files.output), previous)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp support@1-198 helper/oracle/fixture/include/static assertion 구간: fesa, Actual, Execute, View, Bytes, Existing, Attr, if, T, NumberAttr, DatasetContract tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3d8a03c21d39bdb525b3343fe9b1a43b739e09b146ce0fa12b7b941bdbee7123 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp support@618-632 helper/oracle/fixture/include/static assertion 구간: FailedTangent tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ad8ea87f0e4a9587417928c0cf809d07c3041883e55d95ad345315ff70ebd9a2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp support@871-871 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/solid_output_test_fixture.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/unit/io/hdf5/solid_output_test_fixture.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f55daaac80ffbb33f56431eb37931b48dc0202107b74e298254f9fcd2a2e5977 f55daaac80ffbb33f56431eb37931b48dc0202107b74e298254f9fcd2a2e5977 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/solid_output_test_fixture.h support@1-58 helper/oracle/fixture/include/static assertion 구간: solid_output_test, Deck, Files, Procedure tests/unit/io/hdf5/solid_output_test_fixture.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9e7195cd7096815c237160ff0315fabca314fe8068ef1ea88751543cac732307 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 13개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 576b253a222e41e7b8bd6643a47706eec1ed333eaf5a09c2206b89ef1bb06895 576b253a222e41e7b8bd6643a47706eec1ed333eaf5a09c2206b89ef1bb06895 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.WritesRawInitialAndCompletedZeroReactionHistory ThermalHdf5ResultsWriter.WritesRawInitialAndCompletedZeroReactionHistory; assertion 8개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.WritesRawInitialAndCompletedZeroReactionHistory 유지 원문 검사 body 및 assertion 동일. 038005b1d8bbe2f803b404dbb53962ec9300408b40327a0b0e90f5e4a3a7f679 038005b1d8bbe2f803b404dbb53962ec9300408b40327a0b0e90f5e4a3a7f679 "ASSERT_TRUE(result.IsOk()) | ASSERT_GE(file, 0) | EXPECT_GT( H5Lexists(file, ""/steps/Step-1/frames/0/nodal/temperature"", H5P_DEFAULT), 0) | EXPECT_LE(H5Lexists(file, ""/steps/Step-1/frames/0/nodal/reaction_heat_rate"", H5P_DEFAULT), 0) | EXPECT_LE( H5Lexists(file, ""/steps/Step-1/frames/0/element/heat_flux"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/frames/3/nodal/reaction_heat_rate"", H5P_DEFAULT), 0) | EXPECT_GT( H5Lexists(file, ""/steps/Step-1/frames/3/element/heat_flux"", H5P_DEFAULT), 0) | EXPECT_GT(H5Fclose(file), -1)" "ASSERT_TRUE(result.IsOk()) | ASSERT_GE(file, 0) | EXPECT_GT( H5Lexists(file, ""/steps/Step-1/frames/0/nodal/temperature"", H5P_DEFAULT), 0) | EXPECT_LE(H5Lexists(file, ""/steps/Step-1/frames/0/nodal/reaction_heat_rate"", H5P_DEFAULT), 0) | EXPECT_LE( H5Lexists(file, ""/steps/Step-1/frames/0/element/heat_flux"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/frames/3/nodal/reaction_heat_rate"", H5P_DEFAULT), 0) | EXPECT_GT( H5Lexists(file, ""/steps/Step-1/frames/3/element/heat_flux"", H5P_DEFAULT), 0) | EXPECT_GT(H5Fclose(file), -1)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.SectionMaterialUsesGlobalMaterialIdentity ThermalHdf5ResultsWriter.SectionMaterialUsesGlobalMaterialIdentity; assertion 11개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.SectionMaterialUsesGlobalMaterialIdentity 유지 원문 검사 body 및 assertion 동일. 96c91419cb1cd6966a695185c69a1c372da0516eb31c6a71f9db7f987dd767b9 96c91419cb1cd6966a695185c69a1c372da0516eb31c6a71f9db7f987dd767b9 "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(H5Tinsert(t.Get(), ""material_internal_id"", 0, H5T_NATIVE_UINT64), 0) | ASSERT_GE(H5Dread(d.Get(), t.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &id), 0) | EXPECT_EQ(id, 1U) | ASSERT_GE(H5Tset_size(utf8.Get(), H5T_VARIABLE), 0) | ASSERT_GE(H5Tset_cset(utf8.Get(), H5T_CSET_UTF8), 0) | ASSERT_GE(H5Tinsert(source_type.Get(), ""source_file"", 0, utf8.Get()), 0) | ASSERT_GE(H5Dread(d.Get(), source_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &source), 0) | ASSERT_NE(source, nullptr) | EXPECT_EQ(std::string{source}, std::filesystem::absolute(""thermal-writer.inp"") .lexically_normal() .generic_u8string()) | EXPECT_GE(H5free_memory(source), 0)" "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(H5Tinsert(t.Get(), ""material_internal_id"", 0, H5T_NATIVE_UINT64), 0) | ASSERT_GE(H5Dread(d.Get(), t.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &id), 0) | EXPECT_EQ(id, 1U) | ASSERT_GE(H5Tset_size(utf8.Get(), H5T_VARIABLE), 0) | ASSERT_GE(H5Tset_cset(utf8.Get(), H5T_CSET_UTF8), 0) | ASSERT_GE(H5Tinsert(source_type.Get(), ""source_file"", 0, utf8.Get()), 0) | ASSERT_GE(H5Dread(d.Get(), source_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &source), 0) | ASSERT_NE(source, nullptr) | EXPECT_EQ(std::string{source}, std::filesystem::absolute(""thermal-writer.inp"") .lexically_normal() .generic_u8string()) | EXPECT_GE(H5free_memory(source), 0)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsMissingMandatoryAttributesAndChangedValues ThermalHdf5ResultsWriter.RejectsMissingMandatoryAttributesAndChangedValues; assertion 8개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsMissingMandatoryAttributesAndChangedValues 유지 원문 검사 body 및 assertion 동일. 09fc93e87be7ffcef801a28fb026ccffcb2e9fef878c8141eba118171fdf4915 09fc93e87be7ffcef801a28fb026ccffcb2e9fef878c8141eba118171fdf4915 "EXPECT_GE(H5Adelete(m, ""source_input_identity""), 0) | EXPECT_GE(H5Adelete(d, ""units_label""), 0) | EXPECT_GE(H5Dwrite(d, H5T_NATIVE_UINT64, H5S_ALL, H5S_ALL, H5P_DEFAULT, ids), 0) | EXPECT_GE(H5Dwrite(d, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, v), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(f, 0) | ASSERT_GE(H5Fclose(f), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk())" "EXPECT_GE(H5Adelete(m, ""source_input_identity""), 0) | EXPECT_GE(H5Adelete(d, ""units_label""), 0) | EXPECT_GE(H5Dwrite(d, H5T_NATIVE_UINT64, H5S_ALL, H5S_ALL, H5P_DEFAULT, ids), 0) | EXPECT_GE(H5Dwrite(d, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, v), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(f, 0) | ASSERT_GE(H5Fclose(f), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk())" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryRequiredAttributeIsCheckedBeforePublication ThermalHdf5ResultsWriter.EveryRequiredAttributeIsCheckedBeforePublication; assertion 7개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryRequiredAttributeIsCheckedBeforePublication 유지 원문 검사 body 및 assertion 동일. e8670b807a13f32a42fc3bdf7c7ba29a13005b801faafdb48830765ba95cd051 e8670b807a13f32a42fc3bdf7c7ba29a13005b801faafdb48830765ba95cd051 ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(file, 0) | ASSERT_GE(object, 0) | ASSERT_GE(H5Adelete(object, attribute.second.c_str()), 0) | ASSERT_GE(H5Oclose(object), 0) | ASSERT_GE(H5Fclose(file), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk()) ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(file, 0) | ASSERT_GE(object, 0) | ASSERT_GE(H5Adelete(object, attribute.second.c_str()), 0) | ASSERT_GE(H5Oclose(object), 0) | ASSERT_GE(H5Fclose(file), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryCompoundFieldAndEveryDatasetIsMandatory ThermalHdf5ResultsWriter.EveryCompoundFieldAndEveryDatasetIsMandatory; assertion 6개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryCompoundFieldAndEveryDatasetIsMandatory 유지 원문 검사 body 및 assertion 동일. 2714b07516265d2c61e37c02651ac605c52a2e430bf95d6a59a176e923b72fbe 2714b07516265d2c61e37c02651ac605c52a2e430bf95d6a59a176e923b72fbe "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""Missing compound field""), std::string::npos) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | ASSERT_GE(H5Ldelete(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, diagnostics) .IsOk())" "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""Missing compound field""), std::string::npos) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | ASSERT_GE(H5Ldelete(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, diagnostics) .IsOk())" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.ReorderedPackedAdditiveCompoundsAndFixedUtf8AreAccepted ThermalHdf5ResultsWriter.ReorderedPackedAdditiveCompoundsAndFixedUtf8AreAccepted; assertion 4개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.ReorderedPackedAdditiveCompoundsAndFixedUtf8AreAccepted 유지 원문 검사 body 및 assertion 동일. eb907cbc4c5980b7b1d09251862c47f1c54fd4b68029219bbc6ee5341c15707e eb907cbc4c5980b7b1d09251862c47f1c54fd4b68029219bbc6ee5341c15707e ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | ASSERT_GE(H5Tset_size(fixed.Get(), 16), 0) | ASSERT_GE(H5Tset_cset(fixed.Get(), H5T_CSET_UTF8), 0) | EXPECT_TRUE(checked.IsOk()) ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | ASSERT_GE(H5Tset_size(fixed.Get(), 16), 0) | ASSERT_GE(H5Tset_cset(fixed.Get(), H5T_CSET_UTF8), 0) | EXPECT_TRUE(checked.IsOk()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsWrongTypesArrayExtentsNonscalarAndNonUtf8Attributes ThermalHdf5ResultsWriter.RejectsWrongTypesArrayExtentsNonscalarAndNonUtf8Attributes; assertion 7개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsWrongTypesArrayExtentsNonscalarAndNonUtf8Attributes 유지 원문 검사 body 및 assertion 동일. deb7ac11d4f8259f50d5d43317c188e2c36960898610bebc7a492eb8c58e4866 deb7ac11d4f8259f50d5d43317c188e2c36960898610bebc7a492eb8c58e4866 "ASSERT_GE(H5Adelete(g.Get(), ""is_initial""), 0) | ASSERT_GE(H5Awrite(a.Get(), H5T_NATIVE_UINT8, data), 0) | ASSERT_GE(H5Adelete(g.Get(), ""time_period""), 0) | ASSERT_GE(H5Awrite(a.Get(), H5T_NATIVE_DOUBLE, data), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""type/extent""), std::string::npos)" "ASSERT_GE(H5Adelete(g.Get(), ""is_initial""), 0) | ASSERT_GE(H5Awrite(a.Get(), H5T_NATIVE_UINT8, data), 0) | ASSERT_GE(H5Adelete(g.Get(), ""time_period""), 0) | ASSERT_GE(H5Awrite(a.Get(), H5T_NATIVE_DOUBLE, data), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""type/extent""), std::string::npos)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsWrongValuesFrameInventoriesNonfiniteAndDiagnostics ThermalHdf5ResultsWriter.RejectsWrongValuesFrameInventoriesNonfiniteAndDiagnostics; assertion 6개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsWrongValuesFrameInventoriesNonfiniteAndDiagnostics 유지 원문 검사 body 및 assertion 동일. 32dc727108be7e7b965f1451c0142d9ebcb4671317da04f841ad33b9b57b2bcb 32dc727108be7e7b965f1451c0142d9ebcb4671317da04f841ad33b9b57b2bcb "ASSERT_GE(g.Get(), 0) | ASSERT_GE(H5Ldelete(f, ""/steps/Step-1/frames/2"", H5P_DEFAULT), 0) | ASSERT_GE( H5Lcreate_soft(""/missing"", f, ""/steps/Step-1/frames/0/element"", H5P_DEFAULT, H5P_DEFAULT), 0) | ASSERT_GE(H5Dwrite(d.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, values), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, diagnostics) .IsOk())" "ASSERT_GE(g.Get(), 0) | ASSERT_GE(H5Ldelete(f, ""/steps/Step-1/frames/2"", H5P_DEFAULT), 0) | ASSERT_GE( H5Lcreate_soft(""/missing"", f, ""/steps/Step-1/frames/0/element"", H5P_DEFAULT, H5P_DEFAULT), 0) | ASSERT_GE(H5Dwrite(d.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, values), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, diagnostics) .IsOk())" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RotatedFramesAndEndpointCloseScheduleRoundTripIndependently ThermalHdf5ResultsWriter.RotatedFramesAndEndpointCloseScheduleRoundTripIndependently; assertion 12개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RotatedFramesAndEndpointCloseScheduleRoundTripIndependently 유지 원문 검사 body 및 assertion 동일. 9b867d4ee386eecc3e31c6233f961cdd619a2c0736f7a11b7705cadeca1c0ccd 9b867d4ee386eecc3e31c6233f961cdd619a2c0736f7a11b7705cadeca1c0ccd ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(H5Dread(d.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, frames.data()), 0) | EXPECT_DOUBLE_EQ(frames[i], expected[i % 9]) | ASSERT_GE(H5Aread(a.Get(), H5T_NATIVE_DOUBLE, &actual), 0) | EXPECT_EQ(actual, .3) | EXPECT_NE(actual, .9 - .6) | ASSERT_GE(H5Dread(initial.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, t), 0) | EXPECT_EQ(t[i], i < 5 ? -2 : 0) | ASSERT_GE( H5Dread(flux.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, q), 0) | EXPECT_EQ(q[3 * sample], static_cast(sample)) | EXPECT_EQ(q[3 * sample + 1], -static_cast(sample) - 3) | EXPECT_EQ(q[3 * sample + 2], 9) ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(H5Dread(d.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, frames.data()), 0) | EXPECT_DOUBLE_EQ(frames[i], expected[i % 9]) | ASSERT_GE(H5Aread(a.Get(), H5T_NATIVE_DOUBLE, &actual), 0) | EXPECT_EQ(actual, .3) | EXPECT_NE(actual, .9 - .6) | ASSERT_GE(H5Dread(initial.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, t), 0) | EXPECT_EQ(t[i], i < 5 ? -2 : 0) | ASSERT_GE( H5Dread(flux.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, q), 0) | EXPECT_EQ(q[3 * sample], static_cast(sample)) | EXPECT_EQ(q[3 * sample + 1], -static_cast(sample) - 3) | EXPECT_EQ(q[3 * sample + 2], 9) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryFailedLifecycleBoundaryPreservesOldFinalAndCleansCandidate ThermalHdf5ResultsWriter.EveryFailedLifecycleBoundaryPreservesOldFinalAndCleansCandidate; assertion 8개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryFailedLifecycleBoundaryPreservesOldFinalAndCleansCandidate 유지 원문 검사 body 및 assertion 동일. 411e24e5bc006ee97ce6e6c3e648e3fd63cf72585b2fef2347a8cab364de86ba 411e24e5bc006ee97ce6e6c3e648e3fd63cf72585b2fef2347a8cab364de86ba "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(d.Get(), 0) | ASSERT_GE(H5Adelete(m.Get(), ""schema_version""), 0) | EXPECT_TRUE(std::filesystem::remove(candidate)) | EXPECT_FALSE(fesa::hdf5_internal::WriteThermalFile(out.Path(), *x.domain, x.state, {}, failures[i]) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) | EXPECT_EQ(entry.path(), out.Path()) | EXPECT_EQ(files, 1U)" "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(d.Get(), 0) | ASSERT_GE(H5Adelete(m.Get(), ""schema_version""), 0) | EXPECT_TRUE(std::filesystem::remove(candidate)) | EXPECT_FALSE(fesa::hdf5_internal::WriteThermalFile(out.Path(), *x.domain, x.state, {}, failures[i]) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) | EXPECT_EQ(entry.path(), out.Path()) | EXPECT_EQ(files, 1U)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.DomainMismatchAndIncompleteHistoryCannotReplaceFinal ThermalHdf5ResultsWriter.DomainMismatchAndIncompleteHistoryCannotReplaceFinal; assertion 8개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.DomainMismatchAndIncompleteHistoryCannotReplaceFinal 유지 원문 검사 body 및 assertion 동일. 737aebeffb93534d9acc0a723361a72396790b4f57424f2410fa23ce0807f0cf 737aebeffb93534d9acc0a723361a72396790b4f57424f2410fa23ce0807f0cf ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_TRUE(different.HasValue()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), different.Value(), x.state, {}) .IsOk()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *partial.domain, partial.state, {}) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) | ASSERT_TRUE(changed_g.HasValue()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), changed_g.Value(), prescribed.state, {}) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_TRUE(different.HasValue()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), different.Value(), x.state, {}) .IsOk()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *partial.domain, partial.state, {}) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) | ASSERT_TRUE(changed_g.HasValue()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), changed_g.Value(), prescribed.state, {}) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryPrimitiveDatasetChecksShapeTypeAndValue ThermalHdf5ResultsWriter.EveryPrimitiveDatasetChecksShapeTypeAndValue; assertion 7개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryPrimitiveDatasetChecksShapeTypeAndValue 유지 원문 검사 body 및 assertion 동일. 94f20f584c491bbde83edeabb6d369a9358a4227a25e8a17f615b9aa2ff6e045 94f20f584c491bbde83edeabb6d369a9358a4227a25e8a17f615b9aa2ff6e045 "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""extent""), std::string::npos) | EXPECT_NE(Message(checked).find(""primitive type""), std::string::npos) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""extent""), std::string::npos)" "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""extent""), std::string::npos) | EXPECT_NE(Message(checked).find(""primitive type""), std::string::npos) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""extent""), std::string::npos)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.InitialRecoveryCannotBeFilledWithCompletedZeros ThermalHdf5ResultsWriter.InitialRecoveryCannotBeFilledWithCompletedZeros; assertion 5개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.InitialRecoveryCannotBeFilledWithCompletedZeros 유지 원문 검사 body 및 assertion 동일. 0f30c83325b2edbf6f637c4324d4c8b85cf15189fb03798a5c2fa52eac8ae6ea 0f30c83325b2edbf6f637c4324d4c8b85cf15189fb03798a5c2fa52eac8ae6ea "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(g.Get(), 0) | ASSERT_GE(H5Ocopy(f.Get(), ""/steps/Step-1/frames/1/element/heat_flux"", f.Get(), ""/steps/Step-1/frames/0/element/heat_flux"", H5P_DEFAULT, H5P_DEFAULT), 0) | ASSERT_GE( H5Ocopy(f.Get(), ""/steps/Step-1/frames/1/nodal/reaction_heat_rate"", f.Get(), ""/steps/Step-1/frames/0/nodal/reaction_heat_rate"", H5P_DEFAULT, H5P_DEFAULT), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk())" "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(g.Get(), 0) | ASSERT_GE(H5Ocopy(f.Get(), ""/steps/Step-1/frames/1/element/heat_flux"", f.Get(), ""/steps/Step-1/frames/0/element/heat_flux"", H5P_DEFAULT, H5P_DEFAULT), 0) | ASSERT_GE( H5Ocopy(f.Get(), ""/steps/Step-1/frames/1/nodal/reaction_heat_rate"", f.Get(), ""/steps/Step-1/frames/0/nodal/reaction_heat_rate"", H5P_DEFAULT, H5P_DEFAULT), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk())" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp support@1-313 helper/oracle/fixture/include/static assertion 구간: Definition, Fixture, Make, Temp, Path, Message, Bytes, Diagnostics, CollectAttribute, CopyAttributes, for, RewriteCompound, if, T, WriteColumn, StringAttribute, ReplacePrimitive, ChangePrimitive tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f3c40b4b5f52a1a45372592be54b1b910b2f1d1d1f25c305049ab22e15768cd6 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp support@810-815 helper/oracle/fixture/include/static assertion 구간: FailedClose tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 192b1bf23c67a96f66846de9e9b50e917d5a4347cd052fa681b3a34b2f05b181 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp support@993-993 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/loads/load_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/loads/load_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ce8c7aa7d0372bf0cd2f1627ed19cc2b1c603240d03517e959169eb746f8dd64 ce8c7aa7d0372bf0cd2f1627ed19cc2b1c603240d03517e959169eb746f8dd64 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/loads/load_test.cpp Load.ConcentratedNodalLoadEmitsStableFullDofContributions Load.ConcentratedNodalLoadEmitsStableFullDofContributions; assertion 7개 tests/unit/loads/load_test.cpp Load.ConcentratedNodalLoadEmitsStableFullDofContributions 유지 원문 검사 body 및 assertion 동일. 2ccf11bb0f56a9bf2a474ee028662ee0d6d8c21e6c25c2fc9c3e3e24dc116eb3 2ccf11bb0f56a9bf2a474ee028662ee0d6d8c21e6c25c2fc9c3e3e24dc116eb3 ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().size(), 12U) | EXPECT_EQ(contribution.source_order, 7U) | EXPECT_EQ(contribution.full_dof_index, node * components.size() + component) | EXPECT_DOUBLE_EQ(contribution.value, components[component]) ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().size(), 12U) | EXPECT_EQ(contribution.source_order, 7U) | EXPECT_EQ(contribution.full_dof_index, node * components.size() + component) | EXPECT_DOUBLE_EQ(contribution.value, components[component]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/loads/load_test.cpp Load.ConcentratedNodalLoadRejectsInvalidInputWithoutContributions Load.ConcentratedNodalLoadRejectsInvalidInputWithoutContributions; assertion 2개 tests/unit/loads/load_test.cpp Load.ConcentratedNodalLoadRejectsInvalidInputWithoutContributions 유지 원문 검사 body 및 assertion 동일. c3c7d3455b3f5352f0c13fbf53c73ff736c3a35d764cd20f952f5e34466609fa c3c7d3455b3f5352f0c13fbf53c73ff736c3a35d764cd20f952f5e34466609fa ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/loads/load_test.cpp support@1-49 helper/oracle/fixture/include/static assertion 구간: MakeDomain, if, ExpectFailureCode tests/unit/loads/load_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e237ce80f9cbe95cd5979cd1db9a7989577e0dc5510ac16003d902aa2eafb08a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/loads/shell_surface_pressure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 11개 tests/unit/loads/shell_surface_pressure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 094f2106b557380c45c24cf92d2f4b860ece37d53faea45b704bfd456be26945 094f2106b557380c45c24cf92d2f4b860ece37d53faea45b704bfd456be26945 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.PartitionsUnityAndIntegratesPlanarResultantAndMoment ShellSurfacePressureKernel.PartitionsUnityAndIntegratesPlanarResultantAndMoment; assertion 0개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.PartitionsUnityAndIntegratesPlanarResultantAndMoment 유지 원문 검사 body 및 assertion 동일. f6a885c1167ddcbc8e2baf4601ea82653d59f4f3b981f6d395081374e93b7413 f6a885c1167ddcbc8e2baf4601ea82653d59f4f3b981f6d395081374e93b7413 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.ReversesExactlyForSposSnegAndNegativeMagnitude ShellSurfacePressureKernel.ReversesExactlyForSposSnegAndNegativeMagnitude; assertion 4개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.ReversesExactlyForSposSnegAndNegativeMagnitude 유지 원문 검사 body 및 assertion 동일. 87fe2f501765003b1a98bf624ccfb5d2d6678dfd6d3e073601f2e3d643229c13 87fe2f501765003b1a98bf624ccfb5d2d6678dfd6d3e073601f2e3d643229c13 EXPECT_DOUBLE_EQ(sneg.force[index], -spos.force[index]) | EXPECT_DOUBLE_EQ(negative.force[index], -spos.force[index]) | EXPECT_DOUBLE_EQ(sneg.external_tangent[index], -spos.external_tangent[index]) | EXPECT_DOUBLE_EQ(negative.external_tangent[index], -spos.external_tangent[index]) EXPECT_DOUBLE_EQ(sneg.force[index], -spos.force[index]) | EXPECT_DOUBLE_EQ(negative.force[index], -spos.force[index]) | EXPECT_DOUBLE_EQ(sneg.external_tangent[index], -spos.external_tangent[index]) | EXPECT_DOUBLE_EQ(negative.external_tangent[index], -spos.external_tangent[index]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.UsesReferenceGeometryWithExactZeroLinearTangent ShellSurfacePressureKernel.UsesReferenceGeometryWithExactZeroLinearTangent; assertion 2개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.UsesReferenceGeometryWithExactZeroLinearTangent 유지 원문 검사 body 및 assertion 동일. 6df3b7fe71338797c8f6097a473832beafa3089671066636ca75e8bca3b987f7 6df3b7fe71338797c8f6097a473832beafa3089671066636ca75e8bca3b987f7 EXPECT_EQ(with_displacement.force, without_displacement.force) | EXPECT_EQ(value, 0.0) EXPECT_EQ(with_displacement.force, without_displacement.force) | EXPECT_EQ(value, 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.UsesCurrentAreaAndNormalForFollowerForce ShellSurfacePressureKernel.UsesCurrentAreaAndNormalForFollowerForce; assertion 0개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.UsesCurrentAreaAndNormalForFollowerForce 유지 원문 검사 body 및 assertion 동일. 742615c05c1bc269305f36ae87a6697fe65fd72435d10c586b6014847cd341ba 742615c05c1bc269305f36ae87a6697fe65fd72435d10c586b6014847cd341ba 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.HasExactZeroRotationalForceRowsAndTangentBlocks ShellSurfacePressureKernel.HasExactZeroRotationalForceRowsAndTangentBlocks; assertion 2개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.HasExactZeroRotationalForceRowsAndTangentBlocks 유지 원문 검사 body 및 assertion 동일. 8d1c94d3b2b280fcd624c066f984ebf716dce5a75b9eb50cbdfa7db3bf81b3f7 8d1c94d3b2b280fcd624c066f984ebf716dce5a75b9eb50cbdfa7db3bf81b3f7 EXPECT_EQ(contribution.force[row], 0.0) | EXPECT_EQ(contribution.external_tangent[row * kDofCount + column], 0.0) EXPECT_EQ(contribution.force[row], 0.0) | EXPECT_EQ(contribution.external_tangent[row * kDofCount + column], 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.IsTranslationAndRigidRotationObjective ShellSurfacePressureKernel.IsTranslationAndRigidRotationObjective; assertion 1개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.IsTranslationAndRigidRotationObjective 유지 원문 검사 body 및 assertion 동일. 05b4e1eacac15e74c7f5645bfbccd96c0ab08dca4dd74eb6fcbee49c16daaaa5 05b4e1eacac15e74c7f5645bfbccd96c0ab08dca4dd74eb6fcbee49c16daaaa5 EXPECT_NEAR(actual, expected, 1.0e-12) EXPECT_NEAR(actual, expected, 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.IsCovariantUnderCyclicNodeRelabeling ShellSurfacePressureKernel.IsCovariantUnderCyclicNodeRelabeling; assertion 2개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.IsCovariantUnderCyclicNodeRelabeling 유지 원문 검사 body 및 assertion 동일. ca803fdcc621df980fbb68f74a2f58637161c96934d111e03221c7145bb576ba ca803fdcc621df980fbb68f74a2f58637161c96934d111e03221c7145bb576ba EXPECT_NEAR(relabeled.force[row], original.force[original_row], 1.0e-12) | EXPECT_NEAR(relabeled.external_tangent[row * kDofCount + column], original.external_tangent[original_row * kDofCount + original_column], 1.0e-12) EXPECT_NEAR(relabeled.force[row], original.force[original_row], 1.0e-12) | EXPECT_NEAR(relabeled.external_tangent[row * kDofCount + column], original.external_tangent[original_row * kDofCount + original_column], 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.MatchesCenteredFiniteDifferenceForForceAndResidualSigns ShellSurfacePressureKernel.MatchesCenteredFiniteDifferenceForForceAndResidualSigns; assertion 2개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.MatchesCenteredFiniteDifferenceForForceAndResidualSigns 유지 원문 검사 body 및 assertion 동일. dd09d801d862e32fa0409aacff9a835233c61c4f4c7061387b26285589ddf9a0 dd09d801d862e32fa0409aacff9a835233c61c4f4c7061387b26285589ddf9a0 ASSERT_GT(direction_scale, 0.0) | ASSERT_GT(scale, 0.0) ASSERT_GT(direction_scale, 0.0) | ASSERT_GT(scale, 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.PreservesGenerallyNonsymmetricFollowerTangent ShellSurfacePressureKernel.PreservesGenerallyNonsymmetricFollowerTangent; assertion 3개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.PreservesGenerallyNonsymmetricFollowerTangent 유지 원문 검사 body 및 assertion 동일. 6ac36ad2369fd30335c8d818991d31c435ccfd968051fff43160f486090f9ffe 6ac36ad2369fd30335c8d818991d31c435ccfd968051fff43160f486090f9ffe EXPECT_NE(xz, 0.0) | EXPECT_NE(zx, 0.0) | EXPECT_DOUBLE_EQ(xz, -zx) EXPECT_NE(xz, 0.0) | EXPECT_NE(zx, 0.0) | EXPECT_DOUBLE_EQ(xz, -zx) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.RejectsNonfiniteCollapsedFoldedAndInvertedGeometryAtEveryRequiredPoint ShellSurfacePressureKernel.RejectsNonfiniteCollapsedFoldedAndInvertedGeometryAtEveryRequiredPoint; assertion 0개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.RejectsNonfiniteCollapsedFoldedAndInvertedGeometryAtEveryRequiredPoint 유지 원문 검사 body 및 assertion 동일. 24d345beb376e5620bf884b8ea0190d3c9e308e0e7b90bece6e143929fd3abdd 24d345beb376e5620bf884b8ea0190d3c9e308e0e7b90bece6e143929fd3abdd 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.ValidatesGeometryEvenForZeroPressureOrFactor ShellSurfacePressureKernel.ValidatesGeometryEvenForZeroPressureOrFactor; assertion 0개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.ValidatesGeometryEvenForZeroPressureOrFactor 유지 원문 검사 body 및 assertion 동일. 09b7acaf930fe99ec2cef7ccfa01ef7928b9a54333feb71791e9a13c0d35de37 09b7acaf930fe99ec2cef7ccfa01ef7928b9a54333feb71791e9a13c0d35de37 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/loads/shell_surface_pressure_test.cpp support@1-215 helper/oracle/fixture/include/static assertion 구간: PlanarInput, DistortedCurrentInput, EvaluateOrThrow, if, ForceAt, SumForce, MomentAboutOrigin, Norm, for, ExpectVectorRelative, ExpectArraysRelative, TangentAction, ChordLength, Rotate, ProperRotation, RotateInput, ExpectFailure tests/unit/loads/shell_surface_pressure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 78431ddeb801a8e24b974e8f45471a809df750f50df392e341b26471f651c80f 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/loads/shell_surface_pressure_test.cpp support@512-513 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/loads/shell_surface_pressure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/materials/material_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/materials/material_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0e4f0a0beafc60dfc9ed3a016a544ed2b93a305867f8b820dc6817ebe58d8b7d 0e4f0a0beafc60dfc9ed3a016a544ed2b93a305867f8b820dc6817ebe58d8b7d 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/materials/material_test.cpp Material.OwnsIsotropicElasticityThroughVirtualBase Material.OwnsIsotropicElasticityThroughVirtualBase; assertion 9개 tests/unit/materials/material_test.cpp Material.OwnsIsotropicElasticityThroughVirtualBase 유지 원문 검사 body 및 assertion 동일. 4a8b6d7c9c0bad72f99959a9fb02d195686bbb2b555313912866b19b3601c0d9 4a8b6d7c9c0bad72f99959a9fb02d195686bbb2b555313912866b19b3601c0d9 "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(material->Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(material->SourceId().source_label, 7) | EXPECT_EQ(material->SourceId().source_label_text, ""Steel"") | EXPECT_EQ(isotropic.Name(), ""Steel"") | EXPECT_DOUBLE_EQ(isotropic.YoungsModulus(), 210.0e9) | EXPECT_DOUBLE_EQ(isotropic.PoissonsRatio(), 0.3) | EXPECT_EQ(isotropic.Location().file, ""models/material.inp"") | EXPECT_EQ(isotropic.Location().line, 30U)" "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(material->Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(material->SourceId().source_label, 7) | EXPECT_EQ(material->SourceId().source_label_text, ""Steel"") | EXPECT_EQ(isotropic.Name(), ""Steel"") | EXPECT_DOUBLE_EQ(isotropic.YoungsModulus(), 210.0e9) | EXPECT_DOUBLE_EQ(isotropic.PoissonsRatio(), 0.3) | EXPECT_EQ(isotropic.Location().file, ""models/material.inp"") | EXPECT_EQ(isotropic.Location().line, 30U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/materials/material_test.cpp Material.RejectsInvalidCurrentElasticFields Material.RejectsInvalidCurrentElasticFields; assertion 5개 tests/unit/materials/material_test.cpp Material.RejectsInvalidCurrentElasticFields 유지 원문 검사 body 및 assertion 동일. b9022c41bd0e641beaa68206c8fc19d2396a5b41ccf8e8bfe1bbd9911b9dde81 b9022c41bd0e641beaa68206c8fc19d2396a5b41ccf8e8bfe1bbd9911b9dde81 ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].severity, fesa::Severity::kError) | EXPECT_TRUE(beam_compatible.HasValue()) ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].severity, fesa::Severity::kError) | EXPECT_TRUE(beam_compatible.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/materials/material_test.cpp support@1-18 helper/oracle/fixture/include/static assertion 구간: MaterialSourceId, MaterialLocation tests/unit/materials/material_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0bc44f8ab121b123fdba22e1b3d50215ac0446ace019d14397d3e8a69ff0ae3b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/math/dense_blas_internal_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 12개 tests/unit/math/dense_blas_internal_test.cpp file 이관 raw primitive·TLS 복원 검사를 복원하고 Refactor factor/jet 검사를 유지한다. Cholesky lower·inverse 값은 DenseFactor::Lower와 SolveLower(identity)로 검사한다. 실패한 out-parameter 보존은 이전 owned factor/result 보존으로 검사한다. 옛 mutable reason enum·throw 구조는 typed Result의 shape/nonfinite/pivot 실패와 성공 후 재사용으로 이관한다. d63714753d2cb3dc08d74b1d95b437b2a44ecf84087888f8814d62f227623aeb 358c0fa2dac6cebb5ddc2cdac29661c7d82a8b99da881ce069275b4daf4aba3a 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.PolicyQueryPreservesDefaultPositiveAndNestedTls DenseBlasInternal.PolicyQueryPreservesDefaultPositiveAndNestedTls; assertion 12개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.PolicyQueryPreservesDefaultPositiveAndNestedTls 유지 원문 검사 body 및 assertion 동일. 442bb466388f94391ef541ae44881c239ab3ef9a21e3c1eeb4417de67793f596 442bb466388f94391ef541ae44881c239ab3ef9a21e3c1eeb4417de67793f596 EXPECT_EQ(policy.blas_max_threads, 1) | EXPECT_EQ(policy.dynamic, dynamic) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_get_max_threads(), global) | EXPECT_EQ(mkl_domain_get_max_threads(MKL_DOMAIN_BLAS), domain) | EXPECT_EQ(mkl_get_dynamic(), dynamic) | EXPECT_EQ(ReadScopedLocalDensePolicy().blas_max_threads, 2) | EXPECT_EQ(mkl_set_num_threads_local(2), 2) | EXPECT_EQ(ReadScopedLocalDensePolicy().blas_max_threads, 1) | EXPECT_EQ(mkl_set_num_threads_local(1), 1) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_get_dynamic(), dynamic) EXPECT_EQ(policy.blas_max_threads, 1) | EXPECT_EQ(policy.dynamic, dynamic) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_get_max_threads(), global) | EXPECT_EQ(mkl_domain_get_max_threads(MKL_DOMAIN_BLAS), domain) | EXPECT_EQ(mkl_get_dynamic(), dynamic) | EXPECT_EQ(ReadScopedLocalDensePolicy().blas_max_threads, 2) | EXPECT_EQ(mkl_set_num_threads_local(2), 2) | EXPECT_EQ(ReadScopedLocalDensePolicy().blas_max_threads, 1) | EXPECT_EQ(mkl_set_num_threads_local(1), 1) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_get_dynamic(), dynamic) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.OuterProductUsesRectangularStorageAndPreservesRejection DenseBlasInternal.OuterProductUsesRectangularStorageAndPreservesRejection; assertion 9개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.OuterProductUsesRectangularStorageAndPreservesRejection 유지 원문 검사 body 및 assertion 동일. 9e70933ff45ccb1c3f65ab23032652c110f80e96b0b87bf78c62fae2f05fbfd6 9e70933ff45ccb1c3f65ab23032652c110f80e96b0b87bf78c62fae2f05fbfd6 ASSERT_TRUE(OuterProduct(left.data(), left.size(), right.data(), right.size(), product.data())) | EXPECT_EQ(product, expected) | EXPECT_FALSE(OuterProduct(invalid.data(), invalid.size(), right.data(), right.size(), product.data())) | EXPECT_EQ(product, accepted) | EXPECT_TRUE(OuterProduct(nullptr, 0U, nullptr, 3U, nullptr)) | EXPECT_TRUE(OuterProduct(nullptr, 2U, nullptr, 0U, nullptr)) | EXPECT_THROW(OuterProduct(nullptr, 2U, right.data(), 3U, product.data()), std::invalid_argument) | EXPECT_THROW(OuterProduct(nullptr, too_large, nullptr, 1U, nullptr), std::length_error) | EXPECT_THROW(OuterProduct(nullptr, too_many_elements, nullptr, 1U, nullptr), std::length_error) ASSERT_TRUE(OuterProduct(left.data(), left.size(), right.data(), right.size(), product.data())) | EXPECT_EQ(product, expected) | EXPECT_FALSE(OuterProduct(invalid.data(), invalid.size(), right.data(), right.size(), product.data())) | EXPECT_EQ(product, accepted) | EXPECT_TRUE(OuterProduct(nullptr, 0U, nullptr, 3U, nullptr)) | EXPECT_TRUE(OuterProduct(nullptr, 2U, nullptr, 0U, nullptr)) | EXPECT_THROW(OuterProduct(nullptr, 2U, right.data(), 3U, product.data()), std::invalid_argument) | EXPECT_THROW(OuterProduct(nullptr, too_large, nullptr, 1U, nullptr), std::length_error) | EXPECT_THROW(OuterProduct(nullptr, too_many_elements, nullptr, 1U, nullptr), std::length_error) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.LocalDenseScopeRestoresTlsAfterProductsAndUnwind DenseBlasInternal.LocalDenseScopeRestoresTlsAfterProductsAndUnwind; assertion 9개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.LocalDenseScopeRestoresTlsAfterProductsAndUnwind 유지 원문 검사 body 및 assertion 동일. d355acc671f14fab39551cdd60c62282ed92a14bc5e377567fb3b737b12c9745 d355acc671f14fab39551cdd60c62282ed92a14bc5e377567fb3b737b12c9745 EXPECT_EQ(mkl_get_max_threads(), 1) | EXPECT_TRUE( OuterProduct(left.data(), 2U, right.data(), 2U, product.data())) | EXPECT_DOUBLE_EQ(product[0U], 0.0) | EXPECT_DOUBLE_EQ(product[3U], 8.0) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_get_max_threads(), 3) | EXPECT_EQ(mkl_get_max_threads(), 3) EXPECT_EQ(mkl_get_max_threads(), 1) | EXPECT_TRUE( OuterProduct(left.data(), 2U, right.data(), 2U, product.data())) | EXPECT_DOUBLE_EQ(product[0U], 0.0) | EXPECT_DOUBLE_EQ(product[3U], 8.0) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_get_max_threads(), 3) | EXPECT_EQ(mkl_get_max_threads(), 3) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.OuterProductLeavesFiniteInputOverflowForOwnerGate DenseBlasInternal.OuterProductLeavesFiniteInputOverflowForOwnerGate; assertion 2개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.OuterProductLeavesFiniteInputOverflowForOwnerGate 유지 원문 검사 body 및 assertion 동일. fd8b9e0ad33db117848f7fdf9e55c6ebb6bc52897eb7de99683f5346d189007a fd8b9e0ad33db117848f7fdf9e55c6ebb6bc52897eb7de99683f5346d189007a EXPECT_TRUE(OuterProduct(left.data(), 1U, right.data(), 1U, product.data())) | EXPECT_TRUE(std::isinf(product[0U])) EXPECT_TRUE(OuterProduct(left.data(), 1U, right.data(), 1U, product.data())) | EXPECT_TRUE(std::isinf(product[0U])) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.TransposeRightProductUsesInnerAndRectangularStrides DenseBlasInternal.TransposeRightProductUsesInnerAndRectangularStrides; assertion 6개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.TransposeRightProductUsesInnerAndRectangularStrides 유지 원문 검사 body 및 assertion 동일. 741c248210dff918dbe2f96dab0d450f3fe86576c2c02396edddb819ab431a90 741c248210dff918dbe2f96dab0d450f3fe86576c2c02396edddb819ab431a90 ASSERT_TRUE(MultiplyTransposeRight(left.data(), 2U, right.data(), 4U, 3U, product.data())) | EXPECT_EQ(product, expected) | EXPECT_TRUE( MultiplyTransposeRight(nullptr, 2U, nullptr, 4U, 0U, product.data())) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_FALSE(MultiplyTransposeRight(left.data(), 2U, nonfinite.data(), 4U, 3U, product.data())) | EXPECT_DOUBLE_EQ(value, 31.0) ASSERT_TRUE(MultiplyTransposeRight(left.data(), 2U, right.data(), 4U, 3U, product.data())) | EXPECT_EQ(product, expected) | EXPECT_TRUE( MultiplyTransposeRight(nullptr, 2U, nullptr, 4U, 0U, product.data())) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_FALSE(MultiplyTransposeRight(left.data(), 2U, nonfinite.data(), 4U, 3U, product.data())) | EXPECT_DOUBLE_EQ(value, 31.0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CDup003ConvertsZeroNormalAndOverflowLengths DenseBlasInternal.CDup003ConvertsZeroNormalAndOverflowLengths; assertion 6개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CDup003ConvertsZeroNormalAndOverflowLengths 유지 원문 검사 body 및 assertion 동일. 7310c1121f67249879da772e16e1f0aed31290565d542780b71704dbe397cf82 7310c1121f67249879da772e16e1f0aed31290565d542780b71704dbe397cf82 ASSERT_TRUE(zero.HasValue()) | EXPECT_EQ(zero.Value(), 0) | ASSERT_TRUE(normal.HasValue()) | EXPECT_EQ(normal.Value(), 3) | EXPECT_FALSE(rejected.HasValue()) | EXPECT_FALSE(rejected.GetStatus().IsOk()) ASSERT_TRUE(zero.HasValue()) | EXPECT_EQ(zero.Value(), 0) | ASSERT_TRUE(normal.HasValue()) | EXPECT_EQ(normal.Value(), 3) | EXPECT_FALSE(rejected.HasValue()) | EXPECT_FALSE(rejected.GetStatus().IsOk()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CDup003CopiesZeroAndNonzeroContiguousValues DenseBlasInternal.CDup003CopiesZeroAndNonzeroContiguousValues; assertion 2개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CDup003CopiesZeroAndNonzeroContiguousValues 유지 원문 검사 body 및 assertion 동일. 6174848905a7f5e3b5af5b336c22d8d4ce3e9872c557e543d783f5b8e2970e36 6174848905a7f5e3b5af5b336c22d8d4ce3e9872c557e543d783f5b8e2970e36 EXPECT_NO_THROW(CopyValues(nullptr, 0U, nullptr)) | EXPECT_EQ(destination, source) EXPECT_NO_THROW(CopyValues(nullptr, 0U, nullptr)) | EXPECT_EQ(destination, source) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.TransposeProductChecksShapeAndKnownRectangularAction DenseBlasInternal.TransposeProductChecksShapeAndKnownRectangularAction; assertion 10개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.TransposeProductChecksShapeAndKnownRectangularAction 유지 원문 검사 body 및 assertion 동일. 894b7358e85d1e6dc03383c1d95461ce32e35eb5b870fcfe6e67306ed461ff92 894b7358e85d1e6dc03383c1d95461ce32e35eb5b870fcfe6e67306ed461ff92 ASSERT_EQ(product.Rows(), 2U) | ASSERT_EQ(product.Columns(), 1U) | EXPECT_DOUBLE_EQ(product(0U, 0U), 8.0) | EXPECT_DOUBLE_EQ(product(1U, 0U), 6.0) | EXPECT_THROW(static_cast(MultiplyTransposeLeft(left, Matrix{2U, 1U})), std::invalid_argument) | EXPECT_EQ(empty.Rows(), 2U) | EXPECT_EQ(empty.Columns(), 3U) | EXPECT_DOUBLE_EQ(empty(1U, 2U), 0.0) | EXPECT_THROW(static_cast(MultiplyTransposeLeft(left, right)), std::invalid_argument) | EXPECT_THROW(static_cast(MultiplyTransposeLeft(left, right)), std::invalid_argument) ASSERT_EQ(product.Rows(), 2U) | ASSERT_EQ(product.Columns(), 1U) | EXPECT_DOUBLE_EQ(product(0U, 0U), 8.0) | EXPECT_DOUBLE_EQ(product(1U, 0U), 6.0) | EXPECT_THROW(static_cast(MultiplyTransposeLeft(left, Matrix{2U, 1U})), std::invalid_argument) | EXPECT_EQ(empty.Rows(), 2U) | EXPECT_EQ(empty.Columns(), 3U) | EXPECT_DOUBLE_EQ(empty(1U, 2U), 0.0) | EXPECT_THROW(static_cast(MultiplyTransposeLeft(left, right)), std::invalid_argument) | EXPECT_THROW(static_cast(MultiplyTransposeLeft(left, right)), std::invalid_argument) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.DiagonalProductKeepsEntrywiseCancellationAndChecks DenseBlasInternal.DiagonalProductKeepsEntrywiseCancellationAndChecks; assertion 5개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.DiagonalProductKeepsEntrywiseCancellationAndChecks 유지 원문 검사 body 및 assertion 동일. 2f29992019630faca0543ec9c69fd7545e6746318f3522eb279d93dd40c2c1a6 2f29992019630faca0543ec9c69fd7545e6746318f3522eb279d93dd40c2c1a6 EXPECT_DOUBLE_EQ(product[0U] + (product[1U] - product[2U]), 4) | EXPECT_EQ(MultiplyDiagonal(Vector{0U}, Vector{0U}).Size(), 0U) | EXPECT_THROW(static_cast(MultiplyDiagonal(diagonal, Vector{2U})), std::invalid_argument) | EXPECT_THROW(static_cast(MultiplyDiagonal(diagonal, input)), std::invalid_argument) | EXPECT_THROW(static_cast(MultiplyDiagonal(diagonal, input)), std::invalid_argument) EXPECT_DOUBLE_EQ(product[0U] + (product[1U] - product[2U]), 4) | EXPECT_EQ(MultiplyDiagonal(Vector{0U}, Vector{0U}).Size(), 0U) | EXPECT_THROW(static_cast(MultiplyDiagonal(diagonal, Vector{2U})), std::invalid_argument) | EXPECT_THROW(static_cast(MultiplyDiagonal(diagonal, input)), std::invalid_argument) | EXPECT_THROW(static_cast(MultiplyDiagonal(diagonal, input)), std::invalid_argument) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CholeskyAndInverseMatchKnownFactorsAndKeepFailedOutput DenseBlasInternal.CholeskyAndInverseMatchKnownFactorsAndKeepFailedOutput; assertion 13개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CholeskyAndInverseMatchKnownFactorsAndKeepFailedOutput 이관 raw primitive·TLS 복원 검사를 복원하고 Refactor factor/jet 검사를 유지한다. Cholesky lower·inverse 값은 DenseFactor::Lower와 SolveLower(identity)로 검사한다. 실패한 out-parameter 보존은 이전 owned factor/result 보존으로 검사한다. 옛 mutable reason enum·throw 구조는 typed Result의 shape/nonfinite/pivot 실패와 성공 후 재사용으로 이관한다. 96aeb1e9d3a464a709e382c3e467ce7214f57f8ba053a40cc47ec20b6b2ef1c3 46024ffb6450ef4d9171647e852794a623149e86c96c2c4f0dc79a1639b08b8b ASSERT_TRUE(CholeskyLowerAndInverse(matrix, lower, inverse)) | EXPECT_DOUBLE_EQ(lower(0U, 0U), 2) | EXPECT_DOUBLE_EQ(lower(1U, 0U), 1) | EXPECT_DOUBLE_EQ(lower(1U, 1U), 2) | EXPECT_DOUBLE_EQ(lower(0U, 1U), 0) | EXPECT_DOUBLE_EQ(inverse(0U, 0U), .5) | EXPECT_DOUBLE_EQ(inverse(1U, 0U), -.25) | EXPECT_DOUBLE_EQ(inverse(1U, 1U), .5) | EXPECT_FALSE(CholeskyLowerAndInverse(matrix, lower, inverse)) | EXPECT_DOUBLE_EQ(lower(1U, 1U), 2) | EXPECT_DOUBLE_EQ(inverse(1U, 1U), .5) | EXPECT_THROW(static_cast(CholeskyLowerAndInverse( Matrix{2U, 1U}, lower, inverse)), std::invalid_argument) | EXPECT_THROW(static_cast(CholeskyLowerAndInverse(matrix, lower, inverse)), std::invalid_argument) ASSERT_TRUE(factor.HasValue()) | ASSERT_TRUE(lower.HasValue()) | ASSERT_TRUE(inverse.HasValue()) | EXPECT_DOUBLE_EQ(lower.Value()(0, 0), 2) | EXPECT_DOUBLE_EQ(lower.Value()(1, 0), 1) | EXPECT_DOUBLE_EQ(lower.Value()(1, 1), 2) | EXPECT_DOUBLE_EQ(lower.Value()(0, 1), 0) | EXPECT_DOUBLE_EQ(inverse.Value()(0, 0), .5) | EXPECT_DOUBLE_EQ(inverse.Value()(1, 0), -.25) | EXPECT_DOUBLE_EQ(inverse.Value()(1, 1), .5) | EXPECT_FALSE(DenseFactor::Cholesky(matrix).HasValue()) | EXPECT_DOUBLE_EQ(lower.Value()(1, 1), 2) | EXPECT_DOUBLE_EQ(inverse.Value()(1, 1), .5) | EXPECT_FALSE(DenseFactor::Cholesky(Matrix{2U, 1U}).HasValue()) | EXPECT_FALSE(DenseFactor::Cholesky(matrix).HasValue()) | EXPECT_DOUBLE_EQ(factor.Value().SolveLower(identity).Value()(1, 1), .5) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CholeskyFailureReasonPreservesCandidatesAndResetsOnReuse DenseBlasInternal.CholeskyFailureReasonPreservesCandidatesAndResetsOnReuse; assertion 10개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CholeskyFailureReasonPreservesCandidatesAndResetsOnReuse 이관 raw primitive·TLS 복원 검사를 복원하고 Refactor factor/jet 검사를 유지한다. Cholesky lower·inverse 값은 DenseFactor::Lower와 SolveLower(identity)로 검사한다. 실패한 out-parameter 보존은 이전 owned factor/result 보존으로 검사한다. 옛 mutable reason enum·throw 구조는 typed Result의 shape/nonfinite/pivot 실패와 성공 후 재사용으로 이관한다. 93985fb3800b1c4b43ba914f29d9f9fa12f1b78b99d8c51a53eaf9fb64d6f26c a65d2bc077527a818aa3e8f336f196880b3ca99bed84fe565e3172b8b92791d1 ASSERT_TRUE(CholeskyLowerAndInverse(matrix, lower, inverse, &reason)) | EXPECT_EQ(reason, CholeskyFailure::kNone) | EXPECT_FALSE(CholeskyLowerAndInverse(matrix, lower, inverse, &reason)) | EXPECT_EQ(reason, CholeskyFailure::kPivot) | EXPECT_DOUBLE_EQ(lower(1U, 1U), 3.0) | EXPECT_DOUBLE_EQ(inverse(1U, 1U), 1.0 / 3.0) | EXPECT_TRUE(CholeskyLowerAndInverse(matrix, lower, inverse, &reason)) | EXPECT_EQ(reason, CholeskyFailure::kNone) | EXPECT_THROW(CholeskyLowerAndInverse(Matrix{2U, 1U}, lower, inverse, &reason), std::invalid_argument) | EXPECT_EQ(reason, CholeskyFailure::kNone) "ASSERT_TRUE(accepted.HasValue()) | ASSERT_FALSE(failed.HasValue()) | ASSERT_FALSE(failed.GetStatus().Diagnostics().empty()) | EXPECT_EQ(failed.GetStatus().Diagnostics()[0].code, ""dense-factor-pivot"") | EXPECT_DOUBLE_EQ(accepted.Value().Lower().Value()(1, 1), 3) | EXPECT_DOUBLE_EQ(accepted.Value().SolveLower(identity).Value()(1, 1), 1.0 / 3.0) | EXPECT_TRUE(DenseFactor::Cholesky(matrix).HasValue()) | EXPECT_FALSE(DenseFactor::Cholesky(Matrix{2U, 1U}).HasValue()) | EXPECT_TRUE(DenseFactor::Cholesky(matrix).HasValue())" 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.SingleEquationScopeRestoresTlsAndRespectsOverrides DenseBlasInternal.SingleEquationScopeRestoresTlsAndRespectsOverrides; assertion 7개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.SingleEquationScopeRestoresTlsAndRespectsOverrides 유지 원문 검사 body 및 assertion 동일. 04f7da1581a7cb9e82ebf7541c0d2c650bead4a06ec89fc962587f7886f7f24c 04f7da1581a7cb9e82ebf7541c0d2c650bead4a06ec89fc962587f7886f7f24c EXPECT_EQ(mkl_get_max_threads(), 1) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_get_max_threads(), 3) | EXPECT_EQ(mkl_get_max_threads(), 3) EXPECT_EQ(mkl_get_max_threads(), 1) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | EXPECT_EQ(mkl_get_max_threads(), 3) | EXPECT_EQ(mkl_get_max_threads(), 3) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/dense_blas_internal_test.cpp support@1-13 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/dense_blas_internal_test.cpp file-support 이관 raw primitive·TLS 복원 검사를 복원하고 Refactor factor/jet 검사를 유지한다. Cholesky lower·inverse 값은 DenseFactor::Lower와 SolveLower(identity)로 검사한다. 실패한 out-parameter 보존은 이전 owned factor/result 보존으로 검사한다. 옛 mutable reason enum·throw 구조는 typed Result의 shape/nonfinite/pivot 실패와 성공 후 재사용으로 이관한다. f569be3011275f4abfba749d996ad0a7c0cdfd7504805f62ec6de29351bfdd08 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/dense_blas_internal_test.cpp support@297-299 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/dense_blas_internal_test.cpp file-support 유지 raw primitive·TLS 복원 검사를 복원하고 Refactor factor/jet 검사를 유지한다. Cholesky lower·inverse 값은 DenseFactor::Lower와 SolveLower(identity)로 검사한다. 실패한 out-parameter 보존은 이전 owned factor/result 보존으로 검사한다. 옛 mutable reason enum·throw 구조는 typed Result의 shape/nonfinite/pivot 실패와 성공 후 재사용으로 이관한다. 1d8d74ae5cf24c16f28e2d6163baba8a6c1f59dd34f7b385e4f9fd2fda14a56b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/high_low_arithmetic_original.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/unit/math/high_low_arithmetic_original.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e2d9911ce60d0b689c5ebe9fe46c089f5edd05068b62c2b940b37c7cbc1e0ead e2d9911ce60d0b689c5ebe9fe46c089f5edd05068b62c2b940b37c7cbc1e0ead 해당 없음 해당 없음 유지-독립oracle R-ORACLE test-cleanup-review.md#r-oracle +Dev tests/unit/math/high_low_arithmetic_original.h support@1-162 helper/oracle/fixture/include/static assertion 구간: fesa, ArithmeticEnvironmentSupported, HighLow, InvalidHighLow, IsFinite, TwoSum, IsNormalized, Rounded, Add, Negate, Subtract, LowestBitExponent, while, TwoProduct, Multiply, Compare, Abs, Divide tests/unit/math/high_low_arithmetic_original.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3c01c8a5c85ec696c3d39b4027401fe16d04fa0fbe3fc70f44336bb242e20339 최종 파일 SHA 참조 해당 없음 해당 없음 유지-독립oracle R-ORACLE test-cleanup-review.md#r-oracle +Dev tests/unit/math/high_low_arithmetic_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/math/high_low_arithmetic_test.cpp file 이관 Dev frozen oracle helper 원문을 유지한다. 모든 exponent·finite 분류·raw-bit 검사를 복원하고 Refactor packet dispatch 검사를 함께 남긴다. bb3a73827650ecd71ab92015e1add5c2836c5e9bc6e712068823e228d7389f5f 6e7fafa845bdd0c3a648b846f2ed54bf2fd07d5ec492a7c84b164c93f6e6ecc4 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RetainsSubUlpAdditionsAndSignedCancellation HighLowArithmetic.RetainsSubUlpAdditionsAndSignedCancellation; assertion 15개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RetainsSubUlpAdditionsAndSignedCancellation 유지 원문 검사 body 및 assertion 동일. f2a492c6eb8068167a3979f743c32cbc73dfe847846d892e715ed7bfbc9e05ec f2a492c6eb8068167a3979f743c32cbc73dfe847846d892e715ed7bfbc9e05ec ASSERT_TRUE(ArithmeticEnvironmentSupported()) | EXPECT_FALSE(IsNormalized(HighLow{-0.0, -0.0})) | EXPECT_TRUE(IsNormalized(HighLow{-0.0})) | EXPECT_FALSE(std::signbit(HighLow{-0.0}.high)) | EXPECT_FALSE(std::signbit(Negate(HighLow{}).high)) | EXPECT_FALSE(std::signbit(Negate(HighLow{}).low)) | EXPECT_EQ(positive.high, 1) | EXPECT_EQ(positive.low, tiny) | EXPECT_EQ(Rounded(positive), 1) | EXPECT_EQ(difference.high, tiny) | EXPECT_EQ(difference.low, 0) | EXPECT_EQ(Compare(positive, HighLow{1}), 1) | EXPECT_EQ(Compare(HighLow{1, -tiny}, HighLow{1}), -1) | EXPECT_EQ(Compare(Add(positive, Negate(positive)), HighLow{}), 0) | EXPECT_EQ(Abs(HighLow{-1, -tiny}).low, tiny) ASSERT_TRUE(ArithmeticEnvironmentSupported()) | EXPECT_FALSE(IsNormalized(HighLow{-0.0, -0.0})) | EXPECT_TRUE(IsNormalized(HighLow{-0.0})) | EXPECT_FALSE(std::signbit(HighLow{-0.0}.high)) | EXPECT_FALSE(std::signbit(Negate(HighLow{}).high)) | EXPECT_FALSE(std::signbit(Negate(HighLow{}).low)) | EXPECT_EQ(positive.high, 1) | EXPECT_EQ(positive.low, tiny) | EXPECT_EQ(Rounded(positive), 1) | EXPECT_EQ(difference.high, tiny) | EXPECT_EQ(difference.low, 0) | EXPECT_EQ(Compare(positive, HighLow{1}), 1) | EXPECT_EQ(Compare(HighLow{1, -tiny}, HighLow{1}), -1) | EXPECT_EQ(Compare(Add(positive, Negate(positive)), HighLow{}), 0) | EXPECT_EQ(Abs(HighLow{-1, -tiny}).low, tiny) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.AllProductTermsAndDivisionResidualReachState HighLowArithmetic.AllProductTermsAndDivisionResidualReachState; assertion 6개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.AllProductTermsAndDivisionResidualReachState 유지 원문 검사 body 및 assertion 동일. 5d464b75e43ed56254ebd034fe40e7d2683352bbe913cd6eaf816614bd3582dd 5d464b75e43ed56254ebd034fe40e7d2683352bbe913cd6eaf816614bd3582dd EXPECT_EQ(product.high, 1) | EXPECT_EQ(product.low, -std::ldexp(1.0, -120)) | ASSERT_TRUE(IsNormalized(quotient)) | EXPECT_LE(std::abs(defect.high), std::ldexp(1.0, -104)) | EXPECT_EQ(cancellation.high, tiny / 2) | EXPECT_EQ(cancellation.low, 0) EXPECT_EQ(product.high, 1) | EXPECT_EQ(product.low, -std::ldexp(1.0, -120)) | ASSERT_TRUE(IsNormalized(quotient)) | EXPECT_LE(std::abs(defect.high), std::ldexp(1.0, -104)) | EXPECT_EQ(cancellation.high, tiny / 2) | EXPECT_EQ(cancellation.low, 0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.NormalizesTiesAndCrossesPowerOfTwoBoundary HighLowArithmetic.NormalizesTiesAndCrossesPowerOfTwoBoundary; assertion 6개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.NormalizesTiesAndCrossesPowerOfTwoBoundary 유지 원문 검사 body 및 assertion 동일. 4bbb8298c7a24ac9be9d05d58a013ed1d2e3ae9602815e911f9596f567694549 4bbb8298c7a24ac9be9d05d58a013ed1d2e3ae9602815e911f9596f567694549 EXPECT_TRUE(IsNormalized(HighLow{1, half_ulp})) | EXPECT_FALSE(IsNormalized(HighLow{std::nextafter(1.0, 2.0), -half_ulp})) | EXPECT_EQ(result.high, std::nextafter(1.0, 2.0)) | EXPECT_EQ(result.low, 0) | EXPECT_EQ(Add(minimum, minimum).high, 2 * minimum.high) | EXPECT_EQ(Multiply(minimum, HighLow{1}).high, minimum.high) EXPECT_TRUE(IsNormalized(HighLow{1, half_ulp})) | EXPECT_FALSE(IsNormalized(HighLow{std::nextafter(1.0, 2.0), -half_ulp})) | EXPECT_EQ(result.high, std::nextafter(1.0, 2.0)) | EXPECT_EQ(result.low, 0) | EXPECT_EQ(Add(minimum, minimum).high, 2 * minimum.high) | EXPECT_EQ(Multiply(minimum, HighLow{1}).high, minimum.high) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RejectsUnsupportedDyadicTailAndNonfiniteResults HighLowArithmetic.RejectsUnsupportedDyadicTailAndNonfiniteResults; assertion 8개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RejectsUnsupportedDyadicTailAndNonfiniteResults 유지 원문 검사 body 및 assertion 동일. e13007c60ef0ca2d8c8755035337fb55cecb64bcf7483cb7695ab98c1d5cfaa1 e13007c60ef0ca2d8c8755035337fb55cecb64bcf7483cb7695ab98c1d5cfaa1 EXPECT_FALSE(IsFinite(Multiply(minimum, HighLow{0.5}))) | EXPECT_FALSE(IsFinite(Multiply(HighLow{std::ldexp(1.0, -1022)}, HighLow{std::nextafter(0.5, 1.0)}))) | EXPECT_FALSE(IsFinite(Divide(minimum, HighLow{2}))) | EXPECT_FALSE(IsFinite(Divide(HighLow{1}, HighLow{}))) | EXPECT_FALSE(IsFinite(Add(HighLow{std::numeric_limits::max()}, HighLow{std::numeric_limits::max()}))) | EXPECT_EQ(Compare(InvalidHighLow(), HighLow{}), 2) | EXPECT_FALSE(IsNormalized(HighLow{1, 1})) | EXPECT_TRUE(std::isnan(Rounded(HighLow{1, 1}))) EXPECT_FALSE(IsFinite(Multiply(minimum, HighLow{0.5}))) | EXPECT_FALSE(IsFinite(Multiply(HighLow{std::ldexp(1.0, -1022)}, HighLow{std::nextafter(0.5, 1.0)}))) | EXPECT_FALSE(IsFinite(Divide(minimum, HighLow{2}))) | EXPECT_FALSE(IsFinite(Divide(HighLow{1}, HighLow{}))) | EXPECT_FALSE(IsFinite(Add(HighLow{std::numeric_limits::max()}, HighLow{std::numeric_limits::max()}))) | EXPECT_EQ(Compare(InvalidHighLow(), HighLow{}), 2) | EXPECT_FALSE(IsNormalized(HighLow{1, 1})) | EXPECT_TRUE(std::isnan(Rounded(HighLow{1, 1}))) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.ExactDyadicOracleBoundsDiscardedTailAndRefinement HighLowArithmetic.ExactDyadicOracleBoundsDiscardedTailAndRefinement; assertion 13개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.ExactDyadicOracleBoundsDiscardedTailAndRefinement 유지 원문 검사 body 및 assertion 동일. 231d3d1a2023a915af0befbf01924f42b59b43b192520841785ac05d571e9452 231d3d1a2023a915af0befbf01924f42b59b43b192520841785ac05d571e9452 EXPECT_EQ(sum.high, std::ldexp(0x1.0000000000001p+0, scale)) | EXPECT_EQ(sum.low, -std::ldexp(1.0, scale-54)) | EXPECT_EQ(square.high, std::ldexp(1.0, 2*scale)) | EXPECT_EQ(square.low, std::ldexp(1.0, 2*scale-53)) | EXPECT_EQ(third.high, 0x1.5555555555555p-2) | EXPECT_EQ(third.low, 0x1.5555555555555p-56) | EXPECT_EQ(third_residual.high, -std::ldexp(1.0, -108)) | EXPECT_EQ(third_residual.low, 0) | EXPECT_EQ(refined.high, 0x1.999999999999ap-1) | EXPECT_EQ(refined.low, -0x1.8e147ae147ae1p-55) | EXPECT_EQ(boundary.high, 0x1.0000000000002p-970) | EXPECT_EQ(boundary.low, std::numeric_limits::denorm_min()) | EXPECT_FALSE(IsFinite(TwoProduct(std::nextafter(1.0, 2.0), std::nextafter(std::numeric_limits::min(), 1.0)))) EXPECT_EQ(sum.high, std::ldexp(0x1.0000000000001p+0, scale)) | EXPECT_EQ(sum.low, -std::ldexp(1.0, scale-54)) | EXPECT_EQ(square.high, std::ldexp(1.0, 2*scale)) | EXPECT_EQ(square.low, std::ldexp(1.0, 2*scale-53)) | EXPECT_EQ(third.high, 0x1.5555555555555p-2) | EXPECT_EQ(third.low, 0x1.5555555555555p-56) | EXPECT_EQ(third_residual.high, -std::ldexp(1.0, -108)) | EXPECT_EQ(third_residual.low, 0) | EXPECT_EQ(refined.high, 0x1.999999999999ap-1) | EXPECT_EQ(refined.low, -0x1.8e147ae147ae1p-55) | EXPECT_EQ(boundary.high, 0x1.0000000000002p-970) | EXPECT_EQ(boundary.low, std::numeric_limits::denorm_min()) | EXPECT_FALSE(IsFinite(TwoProduct(std::nextafter(1.0, 2.0), std::nextafter(std::numeric_limits::min(), 1.0)))) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RejectsChangedRoundingAndFlushToZeroEnvironment HighLowArithmetic.RejectsChangedRoundingAndFlushToZeroEnvironment; assertion 6개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RejectsChangedRoundingAndFlushToZeroEnvironment 유지 원문 검사 body 및 assertion 동일. 356cfeef68419bd3c33a3abd04e7d67b2bc2ea0a1b4c4bb8e0888fda56c6bc48 356cfeef68419bd3c33a3abd04e7d67b2bc2ea0a1b4c4bb8e0888fda56c6bc48 ASSERT_TRUE(ArithmeticEnvironmentSupported()) | ASSERT_EQ(std::fesetround(FE_DOWNWARD), 0) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) | ASSERT_EQ(std::fesetround(FE_TONEAREST), 0) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) ASSERT_TRUE(ArithmeticEnvironmentSupported()) | ASSERT_EQ(std::fesetround(FE_DOWNWARD), 0) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) | ASSERT_EQ(std::fesetround(FE_TONEAREST), 0) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.FiniteClassificationMatchesBinary64Boundaries HighLowArithmetic.FiniteClassificationMatchesBinary64Boundaries; assertion 2개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.FiniteClassificationMatchesBinary64Boundaries 유지 원문 검사 body 및 assertion 동일. 809bcc24d04c18fe6257e3e6fc7f9e5f7da525fea89edcc83e404457e86c7476 809bcc24d04c18fe6257e3e6fc7f9e5f7da525fea89edcc83e404457e86c7476 EXPECT_EQ(IsFinite(HighLow{value, 0.0}), expected) | EXPECT_EQ(IsFinite(HighLow{1.0, value}), expected) EXPECT_EQ(IsFinite(HighLow{value, 0.0}), expected) | EXPECT_EQ(IsFinite(HighLow{1.0, value}), expected) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.BitExponentMatchesFrozenOracleAcrossEveryExponent HighLowArithmetic.BitExponentMatchesFrozenOracleAcrossEveryExponent; assertion 3개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.BitExponentMatchesFrozenOracleAcrossEveryExponent 유지 원문 검사 body 및 assertion 동일. e957ee50fe2731195a1ed42574146561f08c31ed5378594ecbc353cc9891bf3e e957ee50fe2731195a1ed42574146561f08c31ed5378594ecbc353cc9891bf3e ASSERT_TRUE(ArithmeticEnvironmentSupported()) | ASSERT_EQ(LowestBitExponent(value), fesa::high_low_original::LowestBitExponent(value)) | EXPECT_EQ(LowestBitExponent(value), fesa::high_low_original::LowestBitExponent(value)) ASSERT_TRUE(ArithmeticEnvironmentSupported()) | ASSERT_EQ(LowestBitExponent(value), fesa::high_low_original::LowestBitExponent(value)) | EXPECT_EQ(LowestBitExponent(value), fesa::high_low_original::LowestBitExponent(value)) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.OptimizedArithmeticMatchesFrozenOriginalBits HighLowArithmetic.OptimizedArithmeticMatchesFrozenOriginalBits; assertion 3개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.OptimizedArithmeticMatchesFrozenOriginalBits 유지 원문 검사 body 및 assertion 동일. 9ed52541f1fcb93b23aee5f64a19cdafb8cb4597e38c3ffb499f2a403d196830 9ed52541f1fcb93b23aee5f64a19cdafb8cb4597e38c3ffb499f2a403d196830 ASSERT_TRUE(ArithmeticEnvironmentSupported()) | EXPECT_EQ(IsNormalized({high, low}), fesa::high_low_original::IsNormalized(original)) | EXPECT_EQ(IsNormalized({high, low}), fesa::high_low_original::IsNormalized({high, low})) ASSERT_TRUE(ArithmeticEnvironmentSupported()) | EXPECT_EQ(IsNormalized({high, low}), fesa::high_low_original::IsNormalized(original)) | EXPECT_EQ(IsNormalized({high, low}), fesa::high_low_original::IsNormalized({high, low})) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/high_low_arithmetic_test.cpp support@1-16 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/high_low_arithmetic_test.cpp file-support 이관 Dev frozen oracle helper 원문을 유지한다. 모든 exponent·finite 분류·raw-bit 검사를 복원하고 Refactor packet dispatch 검사를 함께 남긴다. 7ae170bf5c29e41cab744307b531ed7e8897a2e5a1439a03fdd0edf109ea355e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/high_low_arithmetic_test.cpp support@134-146 helper/oracle/fixture/include/static assertion 구간: Bits, FromBits tests/unit/math/high_low_arithmetic_test.cpp file-support 유지 Dev frozen oracle helper 원문을 유지한다. 모든 exponent·finite 분류·raw-bit 검사를 복원하고 Refactor packet dispatch 검사를 함께 남긴다. 87b474dadc9ddb92a1941fc7fd43b44b8cb619fbb239255f1bd2caeb85931886 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/high_low_arithmetic_test.cpp support@163-169 helper/oracle/fixture/include/static assertion 구간: ExpectSamePair tests/unit/math/high_low_arithmetic_test.cpp file-support 유지 Dev frozen oracle helper 원문을 유지한다. 모든 exponent·finite 분류·raw-bit 검사를 복원하고 Refactor packet dispatch 검사를 함께 남긴다. a9015eafc8fbad91188fc6a987d9a202613cbd3a5ecccc8dc8dc9d425a0c12d5 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/high_low_arithmetic_test.cpp support@239-239 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/math/high_low_arithmetic_test.cpp file-support 유지 Dev frozen oracle helper 원문을 유지한다. 모든 exponent·finite 분류·raw-bit 검사를 복원하고 Refactor packet dispatch 검사를 함께 남긴다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/matrix_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/math/matrix_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 24d515a2397f12e2951d055c69e82e00f1cef93c2451520a5d180cc8ca02ccf0 e871743665669396e2ff3df6599a7020e1e9009ba325c1341493f4f940da9744 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/matrix_test.cpp DenseMath.RowMajorMatrixMatchesKnownGemvGemm DenseMath.RowMajorMatrixMatchesKnownGemvGemm; assertion 39개 tests/unit/math/matrix_test.cpp DenseMath.RowMajorMatrixMatchesKnownGemvGemm 유지 원문 검사 body 및 assertion 동일. 80766b5923a34f53328f9a728d5714d0e8fc8448721f558a25f8cc297cae5317 80766b5923a34f53328f9a728d5714d0e8fc8448721f558a25f8cc297cae5317 EXPECT_THROW(static_cast(Matrix{wraparound_rows, 2}), std::length_error) | EXPECT_EQ(zero_row_product.Size(), 0U) | ASSERT_EQ(zero_column_product.Size(), 2U) | EXPECT_DOUBLE_EQ(zero_column_product[0], 0.0) | EXPECT_DOUBLE_EQ(zero_column_product[1], 0.0) | EXPECT_EQ(zero_inner_product.Rows(), 2U) | EXPECT_EQ(zero_inner_product.Columns(), 3U) | EXPECT_DOUBLE_EQ(zero_inner_product(row, column), 0.0) | EXPECT_EQ(&left(0, 0) + 1, &left(0, 1)) | EXPECT_EQ(&left(0, 0) + 2, &left(0, 2)) | EXPECT_EQ(&left(0, 0) + 3, &left(1, 0)) | EXPECT_DOUBLE_EQ(const_left(1, 2), 6.0) | EXPECT_DOUBLE_EQ(left(0, 0), 1.0) | EXPECT_DOUBLE_EQ(left(1, 2), 6.0) | EXPECT_EQ(copied.Rows(), 0U) | EXPECT_EQ(copied.Columns(), 0U) | EXPECT_EQ(moved.Rows(), 2U) | EXPECT_EQ(moved.Columns(), 3U) | EXPECT_DOUBLE_EQ(moved(0, 0), 42.0) | EXPECT_NO_THROW(static_cast(copied.Multiply(Vector{0}))) | EXPECT_EQ(copy_assigned.Rows(), 0U) | EXPECT_EQ(copy_assigned.Columns(), 0U) | EXPECT_EQ(move_assigned.Rows(), 2U) | EXPECT_EQ(move_assigned.Columns(), 3U) | EXPECT_DOUBLE_EQ(move_assigned(1, 2), -7.0) | ASSERT_EQ(matrix_vector_product.Size(), 2U) | EXPECT_DOUBLE_EQ(matrix_vector_product[0], 50.0) | EXPECT_DOUBLE_EQ(matrix_vector_product[1], 122.0) | ASSERT_EQ(matrix_product.Rows(), 2U) | ASSERT_EQ(matrix_product.Columns(), 2U) | EXPECT_DOUBLE_EQ(matrix_product(0, 0), 58.0) | EXPECT_DOUBLE_EQ(matrix_product(0, 1), 64.0) | EXPECT_DOUBLE_EQ(matrix_product(1, 0), 139.0) | EXPECT_DOUBLE_EQ(matrix_product(1, 1), 154.0) | EXPECT_THROW(static_cast(left(2, 0)), std::out_of_range) | EXPECT_THROW(static_cast(left(0, 3)), std::out_of_range) | EXPECT_THROW(static_cast(const_left(2, 0)), std::out_of_range) | EXPECT_THROW(static_cast(left.Multiply(Vector{2})), std::invalid_argument) | EXPECT_THROW(static_cast(left.Multiply(Matrix{4, 1})), std::invalid_argument) EXPECT_THROW(static_cast(Matrix{wraparound_rows, 2}), std::length_error) | EXPECT_EQ(zero_row_product.Size(), 0U) | ASSERT_EQ(zero_column_product.Size(), 2U) | EXPECT_DOUBLE_EQ(zero_column_product[0], 0.0) | EXPECT_DOUBLE_EQ(zero_column_product[1], 0.0) | EXPECT_EQ(zero_inner_product.Rows(), 2U) | EXPECT_EQ(zero_inner_product.Columns(), 3U) | EXPECT_DOUBLE_EQ(zero_inner_product(row, column), 0.0) | EXPECT_EQ(&left(0, 0) + 1, &left(0, 1)) | EXPECT_EQ(&left(0, 0) + 2, &left(0, 2)) | EXPECT_EQ(&left(0, 0) + 3, &left(1, 0)) | EXPECT_DOUBLE_EQ(const_left(1, 2), 6.0) | EXPECT_DOUBLE_EQ(left(0, 0), 1.0) | EXPECT_DOUBLE_EQ(left(1, 2), 6.0) | EXPECT_EQ(copied.Rows(), 0U) | EXPECT_EQ(copied.Columns(), 0U) | EXPECT_EQ(moved.Rows(), 2U) | EXPECT_EQ(moved.Columns(), 3U) | EXPECT_DOUBLE_EQ(moved(0, 0), 42.0) | EXPECT_NO_THROW(static_cast(copied.Multiply(Vector{0}))) | EXPECT_EQ(copy_assigned.Rows(), 0U) | EXPECT_EQ(copy_assigned.Columns(), 0U) | EXPECT_EQ(move_assigned.Rows(), 2U) | EXPECT_EQ(move_assigned.Columns(), 3U) | EXPECT_DOUBLE_EQ(move_assigned(1, 2), -7.0) | ASSERT_EQ(matrix_vector_product.Size(), 2U) | EXPECT_DOUBLE_EQ(matrix_vector_product[0], 50.0) | EXPECT_DOUBLE_EQ(matrix_vector_product[1], 122.0) | ASSERT_EQ(matrix_product.Rows(), 2U) | ASSERT_EQ(matrix_product.Columns(), 2U) | EXPECT_DOUBLE_EQ(matrix_product(0, 0), 58.0) | EXPECT_DOUBLE_EQ(matrix_product(0, 1), 64.0) | EXPECT_DOUBLE_EQ(matrix_product(1, 0), 139.0) | EXPECT_DOUBLE_EQ(matrix_product(1, 1), 154.0) | EXPECT_THROW(static_cast(left(2, 0)), std::out_of_range) | EXPECT_THROW(static_cast(left(0, 3)), std::out_of_range) | EXPECT_THROW(static_cast(const_left(2, 0)), std::out_of_range) | EXPECT_THROW(static_cast(left.Multiply(Vector{2})), std::invalid_argument) | EXPECT_THROW(static_cast(left.Multiply(Matrix{4, 1})), std::invalid_argument) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/matrix_test.cpp DenseMath.MatrixProductsRejectNonfiniteOperandsAndPreserveValidReuse DenseMath.MatrixProductsRejectNonfiniteOperandsAndPreserveValidReuse; assertion 6개 tests/unit/math/matrix_test.cpp DenseMath.MatrixProductsRejectNonfiniteOperandsAndPreserveValidReuse 유지 원문 검사 body 및 assertion 동일. d7633d3bb1c24ce50b386610f4288a8a597ea067123f4db22d80b7c6254f5d1c d7633d3bb1c24ce50b386610f4288a8a597ea067123f4db22d80b7c6254f5d1c EXPECT_THROW(static_cast(left.Multiply(rhs)), std::invalid_argument) | EXPECT_THROW(static_cast(left.Multiply(rhs)), std::invalid_argument) | EXPECT_THROW(static_cast(left.Multiply(right)), std::invalid_argument) | EXPECT_THROW(static_cast(left.Multiply(right)), std::invalid_argument) | EXPECT_DOUBLE_EQ(left.Multiply(rhs)[0U], 4.0) | EXPECT_DOUBLE_EQ(left.Multiply(right)(1U, 0U), 4.0) EXPECT_THROW(static_cast(left.Multiply(rhs)), std::invalid_argument) | EXPECT_THROW(static_cast(left.Multiply(rhs)), std::invalid_argument) | EXPECT_THROW(static_cast(left.Multiply(right)), std::invalid_argument) | EXPECT_THROW(static_cast(left.Multiply(right)), std::invalid_argument) | EXPECT_DOUBLE_EQ(left.Multiply(rhs)[0U], 4.0) | EXPECT_DOUBLE_EQ(left.Multiply(right)(1U, 0U), 4.0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/matrix_test.cpp support@1-11 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/matrix_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e9e369e18cfae13e644c0002a8211b5a6de15cd88d38e91cf313ba994dbe2c5f 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/matrix_test.cpp support@129-131 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/matrix_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/sparse_matrix_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/unit/math/sparse_matrix_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ce2d95faaa89e5b4887d791745eee4b97e882482fa91e04b787dceaa268d663b ce2d95faaa89e5b4887d791745eee4b97e882482fa91e04b787dceaa268d663b 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/sparse_matrix_test.cpp SparseAssembly.ValidatesKnownCsrAndMultiply SparseAssembly.ValidatesKnownCsrAndMultiply; assertion 13개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.ValidatesKnownCsrAndMultiply 유지 원문 검사 body 및 assertion 동일. 306be72faf3dbbf425d660063d3847f0d06a43498caa60943e847cc485a5d9c8 306be72faf3dbbf425d660063d3847f0d06a43498caa60943e847cc485a5d9c8 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(matrix.Rows(), 4U) | EXPECT_EQ(matrix.Columns(), 4U) | EXPECT_EQ(matrix.RowOffsets(), pattern.row_offsets) | EXPECT_EQ(matrix.ColumnIndices(), pattern.column_indices) | EXPECT_EQ(matrix.Values(), (std::vector{1.0, 2.0, 3.0, 4.0, 5.0})) | EXPECT_TRUE(matrix.Validate().IsOk()) | ASSERT_EQ(product.Size(), 4U) | EXPECT_DOUBLE_EQ(product[0U], 7.0) | EXPECT_DOUBLE_EQ(product[1U], 0.0) | EXPECT_DOUBLE_EQ(product[2U], 22.0) | EXPECT_DOUBLE_EQ(product[3U], 20.0) | EXPECT_THROW(static_cast(matrix.Multiply(Vector{3U})), std::invalid_argument) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(matrix.Rows(), 4U) | EXPECT_EQ(matrix.Columns(), 4U) | EXPECT_EQ(matrix.RowOffsets(), pattern.row_offsets) | EXPECT_EQ(matrix.ColumnIndices(), pattern.column_indices) | EXPECT_EQ(matrix.Values(), (std::vector{1.0, 2.0, 3.0, 4.0, 5.0})) | EXPECT_TRUE(matrix.Validate().IsOk()) | ASSERT_EQ(product.Size(), 4U) | EXPECT_DOUBLE_EQ(product[0U], 7.0) | EXPECT_DOUBLE_EQ(product[1U], 0.0) | EXPECT_DOUBLE_EQ(product[2U], 22.0) | EXPECT_DOUBLE_EQ(product[3U], 20.0) | EXPECT_THROW(static_cast(matrix.Multiply(Vector{3U})), std::invalid_argument) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/sparse_matrix_test.cpp SparseAssembly.ReducesDuplicatesInFixedTupleOrder SparseAssembly.ReducesDuplicatesInFixedTupleOrder; assertion 7개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.ReducesDuplicatesInFixedTupleOrder 유지 원문 검사 body 및 assertion 동일. 58ef40306d7a2794d3714329bae3ac32fcb28e31493f45d24c5817813cc07a36 58ef40306d7a2794d3714329bae3ac32fcb28e31493f45d24c5817813cc07a36 ASSERT_TRUE(first.HasValue()) | ASSERT_EQ(first.Value().Values().size(), 1U) | EXPECT_DOUBLE_EQ(first.Value().Values()[0U], 1.0) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(second.Value().RowOffsets(), first.Value().RowOffsets()) | EXPECT_EQ(second.Value().ColumnIndices(), first.Value().ColumnIndices()) | EXPECT_EQ(second.Value().Values(), first.Value().Values()) ASSERT_TRUE(first.HasValue()) | ASSERT_EQ(first.Value().Values().size(), 1U) | EXPECT_DOUBLE_EQ(first.Value().Values()[0U], 1.0) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(second.Value().RowOffsets(), first.Value().RowOffsets()) | EXPECT_EQ(second.Value().ColumnIndices(), first.Value().ColumnIndices()) | EXPECT_EQ(second.Value().Values(), first.Value().Values()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/sparse_matrix_test.cpp SparseAssembly.RejectsInvalidIndexPatternAndShape SparseAssembly.RejectsInvalidIndexPatternAndShape; assertion 4개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.RejectsInvalidIndexPatternAndShape 유지 원문 검사 body 및 assertion 동일. 20889c0e8ab98ed0bbfbe684fcf8309c542a55123a6d5f0d7cd97d60cd25d104 20889c0e8ab98ed0bbfbe684fcf8309c542a55123a6d5f0d7cd97d60cd25d104 EXPECT_FALSE(result.HasValue()) | EXPECT_FALSE(result.GetStatus().IsOk()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(result.GetStatus().Diagnostics().empty()) EXPECT_FALSE(result.HasValue()) | EXPECT_FALSE(result.GetStatus().IsOk()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(result.GetStatus().Diagnostics().empty()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/sparse_matrix_test.cpp SparseAssembly.PreservesExpectedStructuralZeros SparseAssembly.PreservesExpectedStructuralZeros; assertion 5개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.PreservesExpectedStructuralZeros 유지 원문 검사 body 및 assertion 동일. 8a7bf76b61f4852be9d64fe9358d648f2c8be768942738a0785c52ed047ffd27 8a7bf76b61f4852be9d64fe9358d648f2c8be768942738a0785c52ed047ffd27 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().RowOffsets(), pattern.row_offsets) | EXPECT_EQ(result.Value().ColumnIndices(), pattern.column_indices) | EXPECT_EQ(result.Value().Values(), (std::vector{2.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(std::count(result.Value().Values().begin(), result.Value().Values().end(), 0.0), 4) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().RowOffsets(), pattern.row_offsets) | EXPECT_EQ(result.Value().ColumnIndices(), pattern.column_indices) | EXPECT_EQ(result.Value().Values(), (std::vector{2.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(std::count(result.Value().Values().begin(), result.Value().Values().end(), 0.0), 4) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/sparse_matrix_test.cpp SparseAssembly.MultipliesRectangularCopyMoveAndConcurrentConstCalls SparseAssembly.MultipliesRectangularCopyMoveAndConcurrentConstCalls; assertion 7개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.MultipliesRectangularCopyMoveAndConcurrentConstCalls 유지 원문 검사 body 및 assertion 동일. 9a21d95b055afbe45ddbca0e8ae2278bc04277601d44be74e7eb09a994134f97 9a21d95b055afbe45ddbca0e8ae2278bc04277601d44be74e7eb09a994134f97 ASSERT_TRUE(assembled.HasValue()) | EXPECT_TRUE(first.get()) | EXPECT_TRUE(second.get()) | EXPECT_TRUE(evaluate(original)) | ASSERT_TRUE(replacement.HasValue()) | EXPECT_DOUBLE_EQ(moved.Multiply(Vector{1U, 3.0})[0U], 21.0) | EXPECT_TRUE(evaluate(original)) ASSERT_TRUE(assembled.HasValue()) | EXPECT_TRUE(first.get()) | EXPECT_TRUE(second.get()) | EXPECT_TRUE(evaluate(original)) | ASSERT_TRUE(replacement.HasValue()) | EXPECT_DOUBLE_EQ(moved.Multiply(Vector{1U, 3.0})[0U], 21.0) | EXPECT_TRUE(evaluate(original)) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/sparse_matrix_test.cpp SparseAssembly.PreservesZeroShapesAndEmptyRows SparseAssembly.PreservesZeroShapesAndEmptyRows; assertion 8개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.PreservesZeroShapesAndEmptyRows 유지 원문 검사 body 및 assertion 동일. 4f9c2fd65e5d13ec7a449e38fedcd513e0aa6821add64484e873f020d338f8b0 4f9c2fd65e5d13ec7a449e38fedcd513e0aa6821add64484e873f020d338f8b0 ASSERT_TRUE(no_rows.HasValue()) | ASSERT_TRUE(no_columns.HasValue()) | ASSERT_TRUE(no_entries.HasValue()) | EXPECT_EQ(no_rows.Value().Multiply(Vector{3U}).Size(), 0U) | ASSERT_EQ(empty_columns.Size(), 2U) | ASSERT_EQ(empty_entries.Size(), 2U) | EXPECT_DOUBLE_EQ(empty_columns[row], 0.0) | EXPECT_DOUBLE_EQ(empty_entries[row], 0.0) ASSERT_TRUE(no_rows.HasValue()) | ASSERT_TRUE(no_columns.HasValue()) | ASSERT_TRUE(no_entries.HasValue()) | EXPECT_EQ(no_rows.Value().Multiply(Vector{3U}).Size(), 0U) | ASSERT_EQ(empty_columns.Size(), 2U) | ASSERT_EQ(empty_entries.Size(), 2U) | EXPECT_DOUBLE_EQ(empty_columns[row], 0.0) | EXPECT_DOUBLE_EQ(empty_entries[row], 0.0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/sparse_matrix_test.cpp SparseAssembly.RejectsNonfiniteRhsAndRecoversAfterFiniteOverflow SparseAssembly.RejectsNonfiniteRhsAndRecoversAfterFiniteOverflow; assertion 7개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.RejectsNonfiniteRhsAndRecoversAfterFiniteOverflow 유지 원문 검사 body 및 assertion 동일. 574f3cfbc416c6240854f801794be36d9ac765e66ac8d06059caff34ed4640c6 574f3cfbc416c6240854f801794be36d9ac765e66ac8d06059caff34ed4640c6 ASSERT_TRUE(matrix.HasValue()) | EXPECT_THROW(static_cast(matrix.Value().Multiply(rhs)), std::invalid_argument) | EXPECT_TRUE(std::isinf(matrix.Value().Multiply(rhs)[0U])) | EXPECT_THROW(static_cast(matrix.Value().Multiply(rhs)), std::invalid_argument) | EXPECT_THROW(static_cast(matrix.Value().Multiply(Vector{1U})), std::invalid_argument) | EXPECT_DOUBLE_EQ(finite[0U], 6.0) | EXPECT_DOUBLE_EQ(finite[1U], 0.0) ASSERT_TRUE(matrix.HasValue()) | EXPECT_THROW(static_cast(matrix.Value().Multiply(rhs)), std::invalid_argument) | EXPECT_TRUE(std::isinf(matrix.Value().Multiply(rhs)[0U])) | EXPECT_THROW(static_cast(matrix.Value().Multiply(rhs)), std::invalid_argument) | EXPECT_THROW(static_cast(matrix.Value().Multiply(Vector{1U})), std::invalid_argument) | EXPECT_DOUBLE_EQ(finite[0U], 6.0) | EXPECT_DOUBLE_EQ(finite[1U], 0.0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/sparse_matrix_test.cpp SparseAssembly.MatchesIndependentLongDoubleResidualOnUnevenRows SparseAssembly.MatchesIndependentLongDoubleResidualOnUnevenRows; assertion 2개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.MatchesIndependentLongDoubleResidualOnUnevenRows 유지 원문 검사 body 및 assertion 동일. 53983801555cf34c044b2b28586b54a10fe561855307d30b09ec52d3f01facac 53983801555cf34c044b2b28586b54a10fe561855307d30b09ec52d3f01facac ASSERT_TRUE(matrix.HasValue()) | EXPECT_NEAR(product[row], static_cast(expected), 2.0e-14) ASSERT_TRUE(matrix.HasValue()) | EXPECT_NEAR(product[row], static_cast(expected), 2.0e-14) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/sparse_matrix_test.cpp support@1-26 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/math/sparse_matrix_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0a4b7e01533c4e8cf0f2da283db812646e50c73bd09c5a8a0a36c87546058462 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/sparse_matrix_test.cpp support@235-236 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/math/sparse_matrix_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/vector3_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/unit/math/vector3_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 73d76da9064531db15cd5c7aaaafca04cffcc9853b56171055ed35789cf649ae 442331d7ccb19a8f989c48d0f71fdfb0f0a6473adf7af53e7a4b477f45b965a4 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/vector3_test.cpp Vector3.StoresComponentsWithExactArithmetic Vector3.StoresComponentsWithExactArithmetic; assertion 18개 tests/unit/math/vector3_test.cpp Vector3.StoresComponentsWithExactArithmetic 유지 원문 검사 body 및 assertion 동일. 9a048f9faafa466a70e10b035ee0fe67423b83781ad22e7d0f69c50168b6a353 9a048f9faafa466a70e10b035ee0fe67423b83781ad22e7d0f69c50168b6a353 EXPECT_DOUBLE_EQ(lhs.X(), 1.0) | EXPECT_DOUBLE_EQ(lhs.Y(), -2.0) | EXPECT_DOUBLE_EQ(lhs.Z(), 3.0) | EXPECT_DOUBLE_EQ(lhs[0], 1.0) | EXPECT_DOUBLE_EQ(lhs[1], -2.0) | EXPECT_DOUBLE_EQ(lhs[2], 3.0) | EXPECT_DOUBLE_EQ(sum[0], -3.0) | EXPECT_DOUBLE_EQ(sum[1], 3.0) | EXPECT_DOUBLE_EQ(sum[2], 9.0) | EXPECT_DOUBLE_EQ(difference[0], 5.0) | EXPECT_DOUBLE_EQ(difference[1], -7.0) | EXPECT_DOUBLE_EQ(difference[2], -3.0) | EXPECT_DOUBLE_EQ(scaled[0], -2.0) | EXPECT_DOUBLE_EQ(scaled[1], 4.0) | EXPECT_DOUBLE_EQ(scaled[2], -6.0) | EXPECT_DOUBLE_EQ(divided[0], -0.5) | EXPECT_DOUBLE_EQ(divided[1], 1.0) | EXPECT_DOUBLE_EQ(divided[2], -1.5) EXPECT_DOUBLE_EQ(lhs.X(), 1.0) | EXPECT_DOUBLE_EQ(lhs.Y(), -2.0) | EXPECT_DOUBLE_EQ(lhs.Z(), 3.0) | EXPECT_DOUBLE_EQ(lhs[0], 1.0) | EXPECT_DOUBLE_EQ(lhs[1], -2.0) | EXPECT_DOUBLE_EQ(lhs[2], 3.0) | EXPECT_DOUBLE_EQ(sum[0], -3.0) | EXPECT_DOUBLE_EQ(sum[1], 3.0) | EXPECT_DOUBLE_EQ(sum[2], 9.0) | EXPECT_DOUBLE_EQ(difference[0], 5.0) | EXPECT_DOUBLE_EQ(difference[1], -7.0) | EXPECT_DOUBLE_EQ(difference[2], -3.0) | EXPECT_DOUBLE_EQ(scaled[0], -2.0) | EXPECT_DOUBLE_EQ(scaled[1], 4.0) | EXPECT_DOUBLE_EQ(scaled[2], -6.0) | EXPECT_DOUBLE_EQ(divided[0], -0.5) | EXPECT_DOUBLE_EQ(divided[1], 1.0) | EXPECT_DOUBLE_EQ(divided[2], -1.5) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/vector3_test.cpp Vector3.ConvertsArrayAndPreservesScalarLeftEvaluationOrder Vector3.ConvertsArrayAndPreservesScalarLeftEvaluationOrder; assertion 6개 tests/unit/math/vector3_test.cpp Vector3.ConvertsArrayAndPreservesScalarLeftEvaluationOrder 유지 원문 검사 body 및 assertion 동일. 1f659f46fd78ea02d6456c20cf865a637d8d3e4f2ac5d5fe89ba27741a28c058 1f659f46fd78ea02d6456c20cf865a637d8d3e4f2ac5d5fe89ba27741a28c058 EXPECT_TRUE(value == Vector3(1.25, -2.5, 5.0)) | EXPECT_FALSE(value == Vector3(1.25, -2.5, 4.0)) | EXPECT_EQ(value.Components(), kComponents) | EXPECT_DOUBLE_EQ(scaled.X(), -2.5) | EXPECT_DOUBLE_EQ(scaled.Y(), 5.0) | EXPECT_DOUBLE_EQ(scaled.Z(), -10.0) EXPECT_TRUE(value == Vector3(1.25, -2.5, 5.0)) | EXPECT_FALSE(value == Vector3(1.25, -2.5, 4.0)) | EXPECT_EQ(value.Components(), kComponents) | EXPECT_DOUBLE_EQ(scaled.X(), -2.5) | EXPECT_DOUBLE_EQ(scaled.Y(), 5.0) | EXPECT_DOUBLE_EQ(scaled.Z(), -10.0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/vector3_test.cpp Vector3.ComputesDotProduct Vector3.ComputesDotProduct; assertion 1개 tests/unit/math/vector3_test.cpp Vector3.ComputesDotProduct 유지 원문 검사 body 및 assertion 동일. 6347f32d63b18e488dfb6a66c9bd3efc2c84beb950b8746efb888bbb580722d7 6347f32d63b18e488dfb6a66c9bd3efc2c84beb950b8746efb888bbb580722d7 EXPECT_DOUBLE_EQ(lhs.Dot(rhs), 12.0) EXPECT_DOUBLE_EQ(lhs.Dot(rhs), 12.0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/vector3_test.cpp Vector3.UsesRightHandedCrossProductOrientation Vector3.UsesRightHandedCrossProductOrientation; assertion 6개 tests/unit/math/vector3_test.cpp Vector3.UsesRightHandedCrossProductOrientation 유지 원문 검사 body 및 assertion 동일. f179b78f12bc066ce442f293298397b5fcc9fe03fce8fbd348f33c5fcd13a24a f179b78f12bc066ce442f293298397b5fcc9fe03fce8fbd348f33c5fcd13a24a EXPECT_DOUBLE_EQ(positive_z.X(), 0.0) | EXPECT_DOUBLE_EQ(positive_z.Y(), 0.0) | EXPECT_DOUBLE_EQ(positive_z.Z(), 1.0) | EXPECT_DOUBLE_EQ(negative_z.X(), 0.0) | EXPECT_DOUBLE_EQ(negative_z.Y(), 0.0) | EXPECT_DOUBLE_EQ(negative_z.Z(), -1.0) EXPECT_DOUBLE_EQ(positive_z.X(), 0.0) | EXPECT_DOUBLE_EQ(positive_z.Y(), 0.0) | EXPECT_DOUBLE_EQ(positive_z.Z(), 1.0) | EXPECT_DOUBLE_EQ(negative_z.X(), 0.0) | EXPECT_DOUBLE_EQ(negative_z.Y(), 0.0) | EXPECT_DOUBLE_EQ(negative_z.Z(), -1.0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/vector3_test.cpp Vector3.ComputesEuclideanNorm Vector3.ComputesEuclideanNorm; assertion 2개 tests/unit/math/vector3_test.cpp Vector3.ComputesEuclideanNorm 유지 원문 검사 body 및 assertion 동일. 2a865b62e7bd8940e5c9db652503bcd28230dfd4abb9f74a4a91282f0d917499 2a865b62e7bd8940e5c9db652503bcd28230dfd4abb9f74a4a91282f0d917499 EXPECT_DOUBLE_EQ(Vector3(2.0, -3.0, 6.0).Norm(), 7.0) | EXPECT_DOUBLE_EQ(Vector3(1.0e308, 1.0e308, 0.0).Norm(), expected) EXPECT_DOUBLE_EQ(Vector3(2.0, -3.0, 6.0).Norm(), 7.0) | EXPECT_DOUBLE_EQ(Vector3(1.0e308, 1.0e308, 0.0).Norm(), expected) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/vector3_test.cpp Vector3.NormalizesNonzeroVectors Vector3.NormalizesNonzeroVectors; assertion 4개 tests/unit/math/vector3_test.cpp Vector3.NormalizesNonzeroVectors 유지 원문 검사 body 및 assertion 동일. 6aeabf80f8c56ed0db4cfff4658f47caa3550cc1c042a295dd95dce791e6f329 6aeabf80f8c56ed0db4cfff4658f47caa3550cc1c042a295dd95dce791e6f329 ASSERT_TRUE(normalized.has_value()) | EXPECT_DOUBLE_EQ(normalized->X(), 0.6) | EXPECT_DOUBLE_EQ(normalized->Y(), 0.0) | EXPECT_DOUBLE_EQ(normalized->Z(), 0.8) ASSERT_TRUE(normalized.has_value()) | EXPECT_DOUBLE_EQ(normalized->X(), 0.6) | EXPECT_DOUBLE_EQ(normalized->Y(), 0.0) | EXPECT_DOUBLE_EQ(normalized->Z(), 0.8) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/vector3_test.cpp Vector3.ReportsFiniteComponents Vector3.ReportsFiniteComponents; assertion 3개 tests/unit/math/vector3_test.cpp Vector3.ReportsFiniteComponents 유지 원문 검사 body 및 assertion 동일. 5ff94e5120d1add8e2e3242698c75c0444e4c7d25ea530eb8adca0d48757cd96 5ff94e5120d1add8e2e3242698c75c0444e4c7d25ea530eb8adca0d48757cd96 EXPECT_TRUE(Vector3(1.0, -2.0, 3.0).IsFinite()) | EXPECT_FALSE(Vector3(infinity, 0.0, 0.0).IsFinite()) | EXPECT_FALSE(Vector3(0.0, not_a_number, 0.0).IsFinite()) EXPECT_TRUE(Vector3(1.0, -2.0, 3.0).IsFinite()) | EXPECT_FALSE(Vector3(infinity, 0.0, 0.0).IsFinite()) | EXPECT_FALSE(Vector3(0.0, not_a_number, 0.0).IsFinite()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/vector3_test.cpp Vector3.RejectsZeroAndNonfiniteNormalization Vector3.RejectsZeroAndNonfiniteNormalization; assertion 3개 tests/unit/math/vector3_test.cpp Vector3.RejectsZeroAndNonfiniteNormalization 유지 원문 검사 body 및 assertion 동일. cf0551716b1fac7a6af4c3690316df8e7059b681ba04d6a3dbf376c44c8ab8bb cf0551716b1fac7a6af4c3690316df8e7059b681ba04d6a3dbf376c44c8ab8bb EXPECT_FALSE(Vector3().Normalized().has_value()) | EXPECT_FALSE(Vector3(infinity, 0.0, 0.0).Normalized().has_value()) | EXPECT_FALSE(Vector3(0.0, not_a_number, 0.0).Normalized().has_value()) EXPECT_FALSE(Vector3().Normalized().has_value()) | EXPECT_FALSE(Vector3(infinity, 0.0, 0.0).Normalized().has_value()) | EXPECT_FALSE(Vector3(0.0, not_a_number, 0.0).Normalized().has_value()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/vector3_test.cpp support@1-12 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/vector3_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6a62e51f185970f04141b3a9d4bb5cda154999b19e74598b53adc1365e34f422 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/vector3_test.cpp support@114-116 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/vector3_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/vector_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/math/vector_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4b7cd27e186d0cc818854d87e9540d182e952dfc2c3a372f67a656f4d4d4b873 d1f3266cdc2f7f4c586e7512fe090580a641b270ebe8b0525660fa4e737c788c 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/vector_test.cpp DenseMath.VectorOwnsAndChecksContiguousStorage DenseMath.VectorOwnsAndChecksContiguousStorage; assertion 31개 tests/unit/math/vector_test.cpp DenseMath.VectorOwnsAndChecksContiguousStorage 유지 원문 검사 body 및 assertion 동일. 4633911f5df21402045699292987f7ed2cec457b562c80c628cfaaea6c7d73ca 4633911f5df21402045699292987f7ed2cec457b562c80c628cfaaea6c7d73ca EXPECT_EQ(empty.Size(), 0U) | EXPECT_DOUBLE_EQ(empty.Norm(), 0.0) | EXPECT_NO_THROW(empty.Scale(3.0)) | EXPECT_NO_THROW(empty.Axpy(-2.0, Vector{0})) | EXPECT_THROW(static_cast(empty[0]), std::out_of_range) | EXPECT_EQ(original.Data() + 1, &original[1]) | EXPECT_EQ(original.Data() + 2, &original[2]) | EXPECT_EQ(const_original.Data() + 2, &const_original[2]) | EXPECT_NE(copied.Data(), original.Data()) | EXPECT_DOUBLE_EQ(original[0], 1.0) | EXPECT_NE(copy_assigned.Data(), original.Data()) | EXPECT_DOUBLE_EQ(original[1], -2.0) | EXPECT_EQ(copied.Size(), 0U) | EXPECT_EQ(moved.Size(), 3U) | EXPECT_DOUBLE_EQ(moved[0], 99.0) | EXPECT_NO_THROW(copied.Scale(4.0)) | EXPECT_EQ(copy_assigned.Size(), 0U) | EXPECT_EQ(move_assigned.Size(), 3U) | EXPECT_DOUBLE_EQ(move_assigned[1], 17.0) | EXPECT_DOUBLE_EQ(original.Dot(rhs), -24.0) | EXPECT_NEAR(original.Norm(), std::sqrt(14.0), 1.0e-15) | EXPECT_DOUBLE_EQ(scaled[0], -0.5) | EXPECT_DOUBLE_EQ(scaled[1], 1.0) | EXPECT_DOUBLE_EQ(scaled[2], -1.5) | EXPECT_DOUBLE_EQ(accumulated[0], 9.0) | EXPECT_DOUBLE_EQ(accumulated[1], 0.0) | EXPECT_DOUBLE_EQ(accumulated[2], 4.0) | EXPECT_THROW(static_cast(original[3]), std::out_of_range) | EXPECT_THROW(static_cast(const_original[3]), std::out_of_range) | EXPECT_THROW(static_cast(original.Dot(Vector{2})), std::invalid_argument) | EXPECT_THROW(original.Axpy(1.0, Vector{2}), std::invalid_argument) EXPECT_EQ(empty.Size(), 0U) | EXPECT_DOUBLE_EQ(empty.Norm(), 0.0) | EXPECT_NO_THROW(empty.Scale(3.0)) | EXPECT_NO_THROW(empty.Axpy(-2.0, Vector{0})) | EXPECT_THROW(static_cast(empty[0]), std::out_of_range) | EXPECT_EQ(original.Data() + 1, &original[1]) | EXPECT_EQ(original.Data() + 2, &original[2]) | EXPECT_EQ(const_original.Data() + 2, &const_original[2]) | EXPECT_NE(copied.Data(), original.Data()) | EXPECT_DOUBLE_EQ(original[0], 1.0) | EXPECT_NE(copy_assigned.Data(), original.Data()) | EXPECT_DOUBLE_EQ(original[1], -2.0) | EXPECT_EQ(copied.Size(), 0U) | EXPECT_EQ(moved.Size(), 3U) | EXPECT_DOUBLE_EQ(moved[0], 99.0) | EXPECT_NO_THROW(copied.Scale(4.0)) | EXPECT_EQ(copy_assigned.Size(), 0U) | EXPECT_EQ(move_assigned.Size(), 3U) | EXPECT_DOUBLE_EQ(move_assigned[1], 17.0) | EXPECT_DOUBLE_EQ(original.Dot(rhs), -24.0) | EXPECT_NEAR(original.Norm(), std::sqrt(14.0), 1.0e-15) | EXPECT_DOUBLE_EQ(scaled[0], -0.5) | EXPECT_DOUBLE_EQ(scaled[1], 1.0) | EXPECT_DOUBLE_EQ(scaled[2], -1.5) | EXPECT_DOUBLE_EQ(accumulated[0], 9.0) | EXPECT_DOUBLE_EQ(accumulated[1], 0.0) | EXPECT_DOUBLE_EQ(accumulated[2], 4.0) | EXPECT_THROW(static_cast(original[3]), std::out_of_range) | EXPECT_THROW(static_cast(const_original[3]), std::out_of_range) | EXPECT_THROW(static_cast(original.Dot(Vector{2})), std::invalid_argument) | EXPECT_THROW(original.Axpy(1.0, Vector{2}), std::invalid_argument) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/vector_test.cpp support@1-11 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/vector_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 96aa1fb84a7742cdba9c1c10cb981ccf1f0ccbadc5dac79505807963fac75708 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/math/vector_test.cpp support@85-87 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/vector_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/model/domain_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/model/domain_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fc0dd95c444cac746db6083b88376bc8365ccd7d26790dd0dd6d51c3f41d6f77 fc0dd95c444cac746db6083b88376bc8365ccd7d26790dd0dd6d51c3f41d6f77 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/model/domain_test.cpp ElementDefinition.DomainOwnsMixedDefinitionsInStableBaseOrder ElementDefinition.DomainOwnsMixedDefinitionsInStableBaseOrder; assertion 26개 tests/unit/model/domain_test.cpp ElementDefinition.DomainOwnsMixedDefinitionsInStableBaseOrder 유지 원문 검사 body 및 assertion 동일. f00cd134923f2e7389d5f87d43f04e6608137532bb437bdcc0affa9cae01e560 f00cd134923f2e7389d5f87d43f04e6608137532bb437bdcc0affa9cae01e560 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Elements().Size(), 2U) | EXPECT_EQ(beam.Kind(), fesa::ElementDefinitionKind::kEulerBeam3D) | EXPECT_EQ(beam.SourceId().source_label_text, ""0007"") | EXPECT_EQ(beam.SourceElementType(), ""B33"") | EXPECT_EQ(beam.NodeIndices(), (std::vector{0U, 1U})) | EXPECT_EQ(beam.MaterialIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(beam.PropertyIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(shell.Kind(), fesa::ElementDefinitionKind::kMitc4Shell) | EXPECT_EQ(shell.SourceId().source_label_text, ""0009"") | EXPECT_EQ(shell.SourceElementType(), ""S4R"") | EXPECT_EQ(shell.NodeIndices(), (std::vector{2U, 3U, 4U, 5U})) | EXPECT_EQ(shell.MaterialIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(shell.PropertyIndex(), fesa::EntityIndex{1U}) | ASSERT_EQ(domain.BeamElements().Size(), 1U) | ASSERT_EQ(domain.ShellElements().Size(), 1U) | EXPECT_EQ(&domain.BeamElements()[0U], &beam) | EXPECT_EQ(&domain.ShellElements()[0U], &shell) | ASSERT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Materials()[0U].Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(&domain.LinearElasticMaterials()[0U], &domain.Materials()[0U]) | ASSERT_EQ(domain.Properties().Size(), 2U) | EXPECT_EQ(domain.Properties()[0U].Kind(), fesa::ElementPropertyKind::kGeneralBeamSection) | EXPECT_EQ(domain.Properties()[1U].Kind(), fesa::ElementPropertyKind::kShellSection) | EXPECT_EQ(&domain.Sections()[0U], &domain.Properties()[0U]) | EXPECT_EQ(&domain.ShellSections()[0U], &domain.Properties()[1U])" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Elements().Size(), 2U) | EXPECT_EQ(beam.Kind(), fesa::ElementDefinitionKind::kEulerBeam3D) | EXPECT_EQ(beam.SourceId().source_label_text, ""0007"") | EXPECT_EQ(beam.SourceElementType(), ""B33"") | EXPECT_EQ(beam.NodeIndices(), (std::vector{0U, 1U})) | EXPECT_EQ(beam.MaterialIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(beam.PropertyIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(shell.Kind(), fesa::ElementDefinitionKind::kMitc4Shell) | EXPECT_EQ(shell.SourceId().source_label_text, ""0009"") | EXPECT_EQ(shell.SourceElementType(), ""S4R"") | EXPECT_EQ(shell.NodeIndices(), (std::vector{2U, 3U, 4U, 5U})) | EXPECT_EQ(shell.MaterialIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(shell.PropertyIndex(), fesa::EntityIndex{1U}) | ASSERT_EQ(domain.BeamElements().Size(), 1U) | ASSERT_EQ(domain.ShellElements().Size(), 1U) | EXPECT_EQ(&domain.BeamElements()[0U], &beam) | EXPECT_EQ(&domain.ShellElements()[0U], &shell) | ASSERT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Materials()[0U].Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(&domain.LinearElasticMaterials()[0U], &domain.Materials()[0U]) | ASSERT_EQ(domain.Properties().Size(), 2U) | EXPECT_EQ(domain.Properties()[0U].Kind(), fesa::ElementPropertyKind::kGeneralBeamSection) | EXPECT_EQ(domain.Properties()[1U].Kind(), fesa::ElementPropertyKind::kShellSection) | EXPECT_EQ(&domain.Sections()[0U], &domain.Properties()[0U]) | EXPECT_EQ(&domain.ShellSections()[0U], &domain.Properties()[1U])" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/domain_test.cpp DomainModel.ImmutableOwnershipPreservesStableOrder DomainModel.ImmutableOwnershipPreservesStableOrder; assertion 33개 tests/unit/model/domain_test.cpp DomainModel.ImmutableOwnershipPreservesStableOrder 유지 원문 검사 body 및 assertion 동일. c6f7163bdaff86cf5fff21c3d9f5a0f5770dbdecd62f5af2fa64376558bc75b3 c6f7163bdaff86cf5fff21c3d9f5a0f5770dbdecd62f5af2fa64376558bc75b3 "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.SourcePath(), std::filesystem::path{""models/owned.inp""}) | EXPECT_EQ(domain.SourceContentIdentity(), ""fnv1a64:fedcba9876543210"") | ASSERT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 20) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""0020"") | EXPECT_DOUBLE_EQ(domain.Nodes()[0].coordinates[0], 2.0) | EXPECT_EQ(domain.Nodes()[1].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes().data(), first_node_address) | ASSERT_EQ(domain.BeamElements().Size(), 1U) | EXPECT_EQ(domain.BeamElements()[0].node_indices[0], 1U) | EXPECT_EQ(domain.BeamElements()[0].node_indices[1], 0U) | ASSERT_EQ(domain.Materials().Size(), 1U) | ASSERT_EQ(domain.Sections().Size(), 1U) | EXPECT_DOUBLE_EQ(domain.Sections()[0].section_points[0][0], -0.1) | ASSERT_EQ(domain.NodeSets().size(), 1U) | EXPECT_EQ(domain.NodeSets()[0].node_indices[0], 0U) | ASSERT_EQ(domain.ElementSets().size(), 1U) | EXPECT_EQ(domain.ElementSets()[0].element_indices[0], 0U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0].Name(), ""Step-1"") | EXPECT_DOUBLE_EQ(domain.Steps()[0].InitialIncrement(), 0.1) | EXPECT_DOUBLE_EQ(domain.Steps()[0].TimePeriod(), 1.0) | EXPECT_DOUBLE_EQ(domain.Steps()[0].MinimumIncrement(), 1.0e-5) | EXPECT_DOUBLE_EQ(domain.Steps()[0].MaximumIncrement(), 1.0) | EXPECT_EQ(domain.Steps()[0].ProcedureKind(), fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(domain.Steps()[0].IsNonlinearStatic()) | ASSERT_EQ(domain.Steps()[0].BoundaryConditions().size(), 6U) | ASSERT_EQ(domain.Steps()[0].Loads().size(), 1U) | ASSERT_EQ(domain.Steps()[0].ConcentratedLoads().Size(), 1U) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[2U], -1000.0) | ASSERT_EQ(domain.Warnings().size(), 1U) | EXPECT_EQ(domain.Warnings()[0].code, ""ignored-output-request"")" "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.SourcePath(), std::filesystem::path{""models/owned.inp""}) | EXPECT_EQ(domain.SourceContentIdentity(), ""fnv1a64:fedcba9876543210"") | ASSERT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 20) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""0020"") | EXPECT_DOUBLE_EQ(domain.Nodes()[0].coordinates[0], 2.0) | EXPECT_EQ(domain.Nodes()[1].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes().data(), first_node_address) | ASSERT_EQ(domain.BeamElements().Size(), 1U) | EXPECT_EQ(domain.BeamElements()[0].node_indices[0], 1U) | EXPECT_EQ(domain.BeamElements()[0].node_indices[1], 0U) | ASSERT_EQ(domain.Materials().Size(), 1U) | ASSERT_EQ(domain.Sections().Size(), 1U) | EXPECT_DOUBLE_EQ(domain.Sections()[0].section_points[0][0], -0.1) | ASSERT_EQ(domain.NodeSets().size(), 1U) | EXPECT_EQ(domain.NodeSets()[0].node_indices[0], 0U) | ASSERT_EQ(domain.ElementSets().size(), 1U) | EXPECT_EQ(domain.ElementSets()[0].element_indices[0], 0U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0].Name(), ""Step-1"") | EXPECT_DOUBLE_EQ(domain.Steps()[0].InitialIncrement(), 0.1) | EXPECT_DOUBLE_EQ(domain.Steps()[0].TimePeriod(), 1.0) | EXPECT_DOUBLE_EQ(domain.Steps()[0].MinimumIncrement(), 1.0e-5) | EXPECT_DOUBLE_EQ(domain.Steps()[0].MaximumIncrement(), 1.0) | EXPECT_EQ(domain.Steps()[0].ProcedureKind(), fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(domain.Steps()[0].IsNonlinearStatic()) | ASSERT_EQ(domain.Steps()[0].BoundaryConditions().size(), 6U) | ASSERT_EQ(domain.Steps()[0].Loads().size(), 1U) | ASSERT_EQ(domain.Steps()[0].ConcentratedLoads().Size(), 1U) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[2U], -1000.0) | ASSERT_EQ(domain.Warnings().size(), 1U) | EXPECT_EQ(domain.Warnings()[0].code, ""ignored-output-request"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/domain_test.cpp DomainModel.MultipleIdentityInstancesDoNotMerge DomainModel.MultipleIdentityInstancesDoNotMerge; assertion 14개 tests/unit/model/domain_test.cpp DomainModel.MultipleIdentityInstancesDoNotMerge 유지 원문 검사 body 및 assertion 동일. af47d90dfe03fde953119eb419e7f2dc83bbc9da3cab2a7a9a4bc70935e11dbb af47d90dfe03fde953119eb419e7f2dc83bbc9da3cab2a7a9a4bc70935e11dbb "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 4U) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[2].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""1"") | EXPECT_EQ(domain.Nodes()[2].source_id.source_label_text, ""1"") | EXPECT_NE(domain.Nodes()[0].source_id.instance_name, domain.Nodes()[2].source_id.instance_name) | ASSERT_EQ(domain.BeamElements().Size(), 2U) | EXPECT_EQ(domain.BeamElements()[0].source_id.source_label, 1) | EXPECT_EQ(domain.BeamElements()[1].source_id.source_label, 1) | EXPECT_EQ(domain.BeamElements()[0].source_id.instance_name, ""Instance-A"") | EXPECT_EQ(domain.BeamElements()[1].source_id.instance_name, ""Instance-B"") | EXPECT_EQ(domain.BeamElements()[0].node_indices[0], 0U) | EXPECT_EQ(domain.BeamElements()[1].node_indices[0], 2U)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 4U) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[2].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""1"") | EXPECT_EQ(domain.Nodes()[2].source_id.source_label_text, ""1"") | EXPECT_NE(domain.Nodes()[0].source_id.instance_name, domain.Nodes()[2].source_id.instance_name) | ASSERT_EQ(domain.BeamElements().Size(), 2U) | EXPECT_EQ(domain.BeamElements()[0].source_id.source_label, 1) | EXPECT_EQ(domain.BeamElements()[1].source_id.source_label, 1) | EXPECT_EQ(domain.BeamElements()[0].source_id.instance_name, ""Instance-A"") | EXPECT_EQ(domain.BeamElements()[1].source_id.instance_name, ""Instance-B"") | EXPECT_EQ(domain.BeamElements()[0].node_indices[0], 0U) | EXPECT_EQ(domain.BeamElements()[1].node_indices[0], 2U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/domain_test.cpp DomainModel.ShellOwnershipPreservesResolvedAssignmentsAndOptionalFrames DomainModel.ShellOwnershipPreservesResolvedAssignmentsAndOptionalFrames; assertion 22개 tests/unit/model/domain_test.cpp DomainModel.ShellOwnershipPreservesResolvedAssignmentsAndOptionalFrames 유지 원문 검사 body 및 assertion 동일. 4809f2a671c479fb442749d6d34966a00045cb2fd1d23f849a78fde2982fb76a 4809f2a671c479fb442749d6d34966a00045cb2fd1d23f849a78fde2982fb76a "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ShellElements().Size(), 2U) | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label, 20) | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label_text, ""0020"") | EXPECT_EQ(domain.ShellElements()[1].source_id.source_label, 10) | EXPECT_EQ(domain.ShellElements()[0].source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_EQ(domain.ShellElements()[1].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[0].node_indices[3], 7U) | EXPECT_EQ(domain.ShellElements()[0].material_index, 0U) | EXPECT_EQ(domain.ShellElements()[0].section_index, 0U) | ASSERT_EQ(domain.ShellSections().Size(), 2U) | EXPECT_EQ(domain.ShellSections()[0].name, ""Section-B"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[0].thickness, 0.02) | EXPECT_EQ(domain.ShellSections()[0].material_index, 0U) | EXPECT_EQ(domain.ShellSections()[1].name, ""Section-A"") | ASSERT_EQ(domain.ShellNodeInitialFrames().size(), 2U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].node_index, 4U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].director, (std::array{0.0, 0.0, 1.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_a, (std::array{1.0, 0.0, 0.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_b, (std::array{0.0, 1.0, 0.0})) | ASSERT_TRUE(no_frames_result.HasValue()) | EXPECT_TRUE(no_frames_result.Value().ShellNodeInitialFrames().empty())" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ShellElements().Size(), 2U) | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label, 20) | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label_text, ""0020"") | EXPECT_EQ(domain.ShellElements()[1].source_id.source_label, 10) | EXPECT_EQ(domain.ShellElements()[0].source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_EQ(domain.ShellElements()[1].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[0].node_indices[3], 7U) | EXPECT_EQ(domain.ShellElements()[0].material_index, 0U) | EXPECT_EQ(domain.ShellElements()[0].section_index, 0U) | ASSERT_EQ(domain.ShellSections().Size(), 2U) | EXPECT_EQ(domain.ShellSections()[0].name, ""Section-B"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[0].thickness, 0.02) | EXPECT_EQ(domain.ShellSections()[0].material_index, 0U) | EXPECT_EQ(domain.ShellSections()[1].name, ""Section-A"") | ASSERT_EQ(domain.ShellNodeInitialFrames().size(), 2U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].node_index, 4U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].director, (std::array{0.0, 0.0, 1.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_a, (std::array{1.0, 0.0, 0.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_b, (std::array{0.0, 1.0, 0.0})) | ASSERT_TRUE(no_frames_result.HasValue()) | EXPECT_TRUE(no_frames_result.Value().ShellNodeInitialFrames().empty())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/domain_test.cpp support@1-70 helper/oracle/fixture/include/static assertion 구간: MakeOwnedDefinition tests/unit/model/domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7f7d1304d91efcd8a4c1dd7ba01764f329b43c89d1282657290910bb34a13014 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/model/domain_test.cpp support@294-295 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eb5700ab2d23b38315cc91249e1dafb93f72ad934048c13f25c663dc769e2529 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/model/model_types_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/model/model_types_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8e73c0944e4a0592a63c397fe368b2568b35f9b176af5cb8a5f7eb409dd4556c 8e73c0944e4a0592a63c397fe368b2568b35f9b176af5cb8a5f7eb409dd4556c 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/model/model_types_test.cpp DomainModel.SourceAndInternalIdentityRemainDistinct DomainModel.SourceAndInternalIdentityRemainDistinct; assertion 18개 tests/unit/model/model_types_test.cpp DomainModel.SourceAndInternalIdentityRemainDistinct 유지 원문 검사 body 및 assertion 동일. 1a34a5d22cd39f263dbb8fd33c71d7018509fd118804b50f3f683e33c3b8614f 1a34a5d22cd39f263dbb8fd33c71d7018509fd118804b50f3f683e33c3b8614f "EXPECT_EQ( std::make_tuple(first_identity.instance_name, first_identity.source_label, first_identity.source_label_text), std::make_tuple(equal_identity.instance_name, equal_identity.source_label, equal_identity.source_label_text)) | EXPECT_LT( std::make_tuple(first_identity.instance_name, first_identity.source_label, first_identity.source_label_text), std::make_tuple(later_identity.instance_name, later_identity.source_label, later_identity.source_label_text)) | ASSERT_EQ(definition.nodes.size(), 1U) | EXPECT_EQ(definition.nodes[0].source_id.source_label_text, ""0007"") | EXPECT_EQ(definition.nodes[0].location.line, 11U) | ASSERT_EQ(definition.instances.size(), 1U) | EXPECT_EQ(definition.instances[0].part_name, ""BeamPart"") | EXPECT_EQ(definition.instances[0].node_mappings[0].source_label, 7) | EXPECT_EQ(definition.instances[0].node_mappings[0].internal_index, 5U) | EXPECT_EQ(definition.instances[0].element_mappings[0].internal_index, 4U) | EXPECT_EQ(definition.steps[0].initial_increment, 0.1) | EXPECT_EQ(definition.steps[0].time_period, 1.0) | EXPECT_EQ(definition.steps[0].minimum_increment, 1.0e-5) | EXPECT_EQ(definition.steps[0].maximum_increment, 1.0) | EXPECT_EQ(definition.steps[0].procedure_kind, fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(definition.steps[0].nlgeom) | ASSERT_EQ(definition.warnings.size(), 1U) | EXPECT_EQ(definition.warnings[0].location.line, 75U)" "EXPECT_EQ( std::make_tuple(first_identity.instance_name, first_identity.source_label, first_identity.source_label_text), std::make_tuple(equal_identity.instance_name, equal_identity.source_label, equal_identity.source_label_text)) | EXPECT_LT( std::make_tuple(first_identity.instance_name, first_identity.source_label, first_identity.source_label_text), std::make_tuple(later_identity.instance_name, later_identity.source_label, later_identity.source_label_text)) | ASSERT_EQ(definition.nodes.size(), 1U) | EXPECT_EQ(definition.nodes[0].source_id.source_label_text, ""0007"") | EXPECT_EQ(definition.nodes[0].location.line, 11U) | ASSERT_EQ(definition.instances.size(), 1U) | EXPECT_EQ(definition.instances[0].part_name, ""BeamPart"") | EXPECT_EQ(definition.instances[0].node_mappings[0].source_label, 7) | EXPECT_EQ(definition.instances[0].node_mappings[0].internal_index, 5U) | EXPECT_EQ(definition.instances[0].element_mappings[0].internal_index, 4U) | EXPECT_EQ(definition.steps[0].initial_increment, 0.1) | EXPECT_EQ(definition.steps[0].time_period, 1.0) | EXPECT_EQ(definition.steps[0].minimum_increment, 1.0e-5) | EXPECT_EQ(definition.steps[0].maximum_increment, 1.0) | EXPECT_EQ(definition.steps[0].procedure_kind, fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(definition.steps[0].nlgeom) | ASSERT_EQ(definition.warnings.size(), 1U) | EXPECT_EQ(definition.warnings[0].location.line, 75U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/model_types_test.cpp DomainModel.Mitc4ShellRecordsPreserveSourceAndInternalIdentity DomainModel.Mitc4ShellRecordsPreserveSourceAndInternalIdentity; assertion 10개 tests/unit/model/model_types_test.cpp DomainModel.Mitc4ShellRecordsPreserveSourceAndInternalIdentity 유지 원문 검사 body 및 assertion 동일. 3792a5dbf6bafaea0771dd6167e4dad3d5b97f16d4af9fea1beaad7163bd0757 3792a5dbf6bafaea0771dd6167e4dad3d5b97f16d4af9fea1beaad7163bd0757 "EXPECT_EQ(s4_element.source_id.instance_name, ""Shell-Instance"") | EXPECT_EQ(s4_element.source_id.source_label, 41) | EXPECT_EQ(s4_element.source_id.source_label_text, ""0041"") | EXPECT_EQ(s4_element.source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(s4r_element.source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_NE(s4_element.source_type, s4r_element.source_type) | EXPECT_EQ(fesa::kMitc4InternalFormulation, std::string_view{""FESA-MITC4""}) | EXPECT_EQ(s4_element.node_indices, (std::array{3U, 5U, 8U, 13U})) | EXPECT_EQ(s4_element.material_index, 2U) | EXPECT_EQ(s4_element.section_index, 7U)" "EXPECT_EQ(s4_element.source_id.instance_name, ""Shell-Instance"") | EXPECT_EQ(s4_element.source_id.source_label, 41) | EXPECT_EQ(s4_element.source_id.source_label_text, ""0041"") | EXPECT_EQ(s4_element.source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(s4r_element.source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_NE(s4_element.source_type, s4r_element.source_type) | EXPECT_EQ(fesa::kMitc4InternalFormulation, std::string_view{""FESA-MITC4""}) | EXPECT_EQ(s4_element.node_indices, (std::array{3U, 5U, 8U, 13U})) | EXPECT_EQ(s4_element.material_index, 2U) | EXPECT_EQ(s4_element.section_index, 7U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/model_types_test.cpp support@1-32 helper/oracle/fixture/include/static assertion 구간: T, HasEquationId, HasEquationIds tests/unit/model/model_types_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bd6932bd12576c905f4c5d95d7902dba5b9be6626cdbee2a8299ecb10b7238c7 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/model/model_types_test.cpp support@133-134 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/model_types_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7dc636d3db680b7c9af260eae733472a8fbad5992eea8384efe301c7ff01862c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/model/shell_geometry_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/model/shell_geometry_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9fee2fde5365fea4144fc87591e88e48dfd45376f3dd0ead45f9b7246fff1b3f 3abea01e7cb6543d3f25106cfa97ad5f94c9166a91bf90fbd390a700401d6d9f 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.BuildsDeterministicFramesForPlanarRotatedAndWarpedElements Mitc4Geometry.BuildsDeterministicFramesForPlanarRotatedAndWarpedElements; assertion 7개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.BuildsDeterministicFramesForPlanarRotatedAndWarpedElements 유지 원문 검사 body 및 assertion 동일. 89a2ec45af8b97d1f42896e1d0107362659e83a893cf60d7d679786c36f20afe 89a2ec45af8b97d1f42896e1d0107362659e83a893cf60d7d679786c36f20afe ASSERT_TRUE(planar.HasValue()) | ASSERT_EQ(planar.Value().element_data.size(), 1U) | EXPECT_NEAR(planar.Value().element_data[0].surface_area_weight, 1.0, 1.0e-12) | ASSERT_EQ(planar.Value().nodal_frames.size(), 4U) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(warped.HasValue()) | EXPECT_GT(warped.Value().element_data[0].surface_area_weight, 2.0) ASSERT_TRUE(planar.HasValue()) | ASSERT_EQ(planar.Value().element_data.size(), 1U) | EXPECT_NEAR(planar.Value().element_data[0].surface_area_weight, 1.0, 1.0e-12) | ASSERT_EQ(planar.Value().nodal_frames.size(), 4U) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(warped.HasValue()) | EXPECT_GT(warped.Value().element_data[0].surface_area_weight, 2.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.PreservesExactWarpedResultsAcrossVector3Migration Mitc4Geometry.PreservesExactWarpedResultsAcrossVector3Migration; assertion 14개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.PreservesExactWarpedResultsAcrossVector3Migration 유지 원문 검사 body 및 assertion 동일. c2020cdfcdb7453af2d1504928200ed4e401c22a150f8e0d0b043ef7f27bbdc6 c2020cdfcdb7453af2d1504928200ed4e401c22a150f8e0d0b043ef7f27bbdc6 ASSERT_TRUE(warped.HasValue()) | EXPECT_DOUBLE_EQ(normal.X(), -0x1.97105218e28c2p-5) | EXPECT_DOUBLE_EQ(normal.Y(), -0x1.97105218e28c2p-4) | EXPECT_DOUBLE_EQ(normal.Z(), 0x1.fcd4669f1b2f2p-1) | EXPECT_DOUBLE_EQ(element.surface_area_weight, 0x1.021ebe8f40622p+1) | EXPECT_DOUBLE_EQ(director.X(), -0x1.97105218e28c2p-5) | EXPECT_DOUBLE_EQ(director.Y(), -0x1.97105218e28c2p-4) | EXPECT_DOUBLE_EQ(director.Z(), 0x1.fcd4669f1b2f2p-1) | EXPECT_DOUBLE_EQ(tangent_a.X(), 0x1.ff5e152c2d2abp-1) | EXPECT_DOUBLE_EQ(tangent_a.Y(), -0x1.4408ec773d925p-8) | EXPECT_DOUBLE_EQ(tangent_a.Z(), 0x1.950b27950cf6dp-5) | EXPECT_DOUBLE_EQ(tangent_b.X(), 0.0) | EXPECT_DOUBLE_EQ(tangent_b.Y(), 0x1.fd7583bc82e28p-1) | EXPECT_DOUBLE_EQ(tangent_b.Z(), 0x1.9791363068b53p-4) ASSERT_TRUE(warped.HasValue()) | EXPECT_DOUBLE_EQ(normal.X(), -0x1.97105218e28c2p-5) | EXPECT_DOUBLE_EQ(normal.Y(), -0x1.97105218e28c2p-4) | EXPECT_DOUBLE_EQ(normal.Z(), 0x1.fcd4669f1b2f2p-1) | EXPECT_DOUBLE_EQ(element.surface_area_weight, 0x1.021ebe8f40622p+1) | EXPECT_DOUBLE_EQ(director.X(), -0x1.97105218e28c2p-5) | EXPECT_DOUBLE_EQ(director.Y(), -0x1.97105218e28c2p-4) | EXPECT_DOUBLE_EQ(director.Z(), 0x1.fcd4669f1b2f2p-1) | EXPECT_DOUBLE_EQ(tangent_a.X(), 0x1.ff5e152c2d2abp-1) | EXPECT_DOUBLE_EQ(tangent_a.Y(), -0x1.4408ec773d925p-8) | EXPECT_DOUBLE_EQ(tangent_a.Z(), 0x1.950b27950cf6dp-5) | EXPECT_DOUBLE_EQ(tangent_b.X(), 0.0) | EXPECT_DOUBLE_EQ(tangent_b.Y(), 0x1.fd7583bc82e28p-1) | EXPECT_DOUBLE_EQ(tangent_b.Z(), 0x1.9791363068b53p-4) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.AreaWeightsSharedDirectorsInStableSourceIdentityOrder Mitc4Geometry.AreaWeightsSharedDirectorsInStableSourceIdentityOrder; assertion 2개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.AreaWeightsSharedDirectorsInStableSourceIdentityOrder 유지 원문 검사 body 및 assertion 동일. c24fcef294b948a5b0cdbd9fa0822d7d6f18aa2e106569c357417a0f396e89fa c24fcef294b948a5b0cdbd9fa0822d7d6f18aa2e106569c357417a0f396e89fa ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.RejectsInvalidSurfaceJacobianAndIncidentOrientationCases Mitc4Geometry.RejectsInvalidSurfaceJacobianAndIncidentOrientationCases; assertion 0개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.RejectsInvalidSurfaceJacobianAndIncidentOrientationCases 유지 원문 검사 body 및 assertion 동일. 78afdfd80554bc5d9c2e688f0a7ee1213acaa0be1ba804306d6973825b1447e0 78afdfd80554bc5d9c2e688f0a7ee1213acaa0be1ba804306d6973825b1447e0 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.ExposesTheCompleteRequiredValidationPointInventory Mitc4Geometry.ExposesTheCompleteRequiredValidationPointInventory; assertion 12개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.ExposesTheCompleteRequiredValidationPointInventory 유지 원문 검사 body 및 assertion 동일. 0de2e1387e20a29baff982dcaf0fba7b261415b3a5a39c9c635e20f1529aff05 0de2e1387e20a29baff982dcaf0fba7b261415b3a5a39c9c635e20f1529aff05 ASSERT_EQ(points.size(), 17U) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kCenter; }), 1) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kStiffness; }), 8) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kTying; }), 4) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kRecovery; }), 4) | EXPECT_EQ(points.front().natural_coordinates, (Vector3{0.0, 0.0, 0.0})) | EXPECT_EQ(points[1].natural_coordinates, (Vector3{-gauss, -gauss, -gauss})) | EXPECT_EQ(points[8].natural_coordinates, (Vector3{-gauss, gauss, gauss})) | EXPECT_EQ(points[9].natural_coordinates, (Vector3{0.0, -1.0, 0.0})) | EXPECT_EQ(points[12].natural_coordinates, (Vector3{1.0, 0.0, 0.0})) | EXPECT_EQ(points[13].natural_coordinates, (Vector3{-gauss, -gauss, 0.0})) | EXPECT_EQ(points[16].natural_coordinates, (Vector3{-gauss, gauss, 0.0})) ASSERT_EQ(points.size(), 17U) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kCenter; }), 1) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kStiffness; }), 8) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kTying; }), 4) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kRecovery; }), 4) | EXPECT_EQ(points.front().natural_coordinates, (Vector3{0.0, 0.0, 0.0})) | EXPECT_EQ(points[1].natural_coordinates, (Vector3{-gauss, -gauss, -gauss})) | EXPECT_EQ(points[8].natural_coordinates, (Vector3{-gauss, gauss, gauss})) | EXPECT_EQ(points[9].natural_coordinates, (Vector3{0.0, -1.0, 0.0})) | EXPECT_EQ(points[12].natural_coordinates, (Vector3{1.0, 0.0, 0.0})) | EXPECT_EQ(points[13].natural_coordinates, (Vector3{-gauss, -gauss, 0.0})) | EXPECT_EQ(points[16].natural_coordinates, (Vector3{-gauss, gauss, 0.0})) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/shell_geometry_test.cpp support@1-91 helper/oracle/fixture/include/static assertion 구간: Node, Element, Sections, Dot, Cross, Norm, ExpectVectorNear, ExpectRightHandedFrame, FrameFor, find_if, ExpectFailureCode tests/unit/model/shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7fecde30f91624d167ea26a62c28b4f280b502b07cb5999ed2668cb5db8dcdc8 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/model/shell_geometry_test.cpp support@166-167 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2511c5276f8f705a4d47ef40ba5103972050738b68fd8a2714f3fd319f718b5c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/model/shell_geometry_test.cpp support@193-194 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3cb49d9660c0150c0645878e98e94da458f371a63d9cf921dafed78d62b6a4a0 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/model/shell_geometry_test.cpp support@247-248 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 05e26e807ccadaa099d4dc20c9590ec3fa57343328b240c1ed2d4dc9086c1321 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/model/source_target_resolver_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/model/source_target_resolver_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0fd2a3f57be9e3dcc6a0710f23d07618b100d9f8fa6d46945bf7951063145ebb 5868bd88560af25dea83f385748c40d274712c9dc28a344fca03f3cab760f8d1 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.SeparatesNamespacesAndInstancesAndExpandsInDeclarationOrder SourceTargetResolver.SeparatesNamespacesAndInstancesAndExpandsInDeclarationOrder; assertion 10개 tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.SeparatesNamespacesAndInstancesAndExpandsInDeclarationOrder 유지 원문 검사 body 및 assertion 동일. 371f5279d1b122a9821fe2fa2e841a01f0c7f317f4824c7f1a10eb65bda481be 371f5279d1b122a9821fe2fa2e841a01f0c7f317f4824c7f1a10eb65bda481be "ASSERT_TRUE(nodes.HasValue()) | EXPECT_EQ(Indices(nodes.Value()), (std::vector{0U, 1U})) | EXPECT_EQ(nodes.Value()[0U].source_id.instance_name, ""Beam-1"") | EXPECT_EQ(nodes.Value()[0U].source_id.source_label_text, ""0010"") | ASSERT_TRUE(elements.HasValue()) | EXPECT_EQ(Indices(elements.Value()), (std::vector{4U})) | ASSERT_TRUE(second_instance.HasValue()) | EXPECT_EQ(Indices(second_instance.Value()), (std::vector{2U})) | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(Indices(direct.Value()), (std::vector{0U}))" "ASSERT_TRUE(nodes.HasValue()) | EXPECT_EQ(Indices(nodes.Value()), (std::vector{0U, 1U})) | EXPECT_EQ(nodes.Value()[0U].source_id.instance_name, ""Beam-1"") | EXPECT_EQ(nodes.Value()[0U].source_id.source_label_text, ""0010"") | ASSERT_TRUE(elements.HasValue()) | EXPECT_EQ(Indices(elements.Value()), (std::vector{4U})) | ASSERT_TRUE(second_instance.HasValue()) | EXPECT_EQ(Indices(second_instance.Value()), (std::vector{2U})) | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(Indices(direct.Value()), (std::vector{0U}))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.RejectsMissingAmbiguousAndNonpositiveTargets SourceTargetResolver.RejectsMissingAmbiguousAndNonpositiveTargets; assertion 0개 tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.RejectsMissingAmbiguousAndNonpositiveTargets 유지 원문 검사 body 및 assertion 동일. 7a11d0e9feb5f2c40349b3fc51279e275ea27d6030de1e9489786952e1444aef 7a11d0e9feb5f2c40349b3fc51279e275ea27d6030de1e9489786952e1444aef 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.ReportsDuplicateMembershipsInDeterministicDeclarationOrder SourceTargetResolver.ReportsDuplicateMembershipsInDeterministicDeclarationOrder; assertion 7개 tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.ReportsDuplicateMembershipsInDeterministicDeclarationOrder 유지 원문 검사 body 및 assertion 동일. 8f72fa1e1fbb347fed00f0ae99086e57086d43ac80984243f2c5ee20bb141c29 8f72fa1e1fbb347fed00f0ae99086e57086d43ac80984243f2c5ee20bb141c29 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 2U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""duplicate-source-target"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].message, ""Duplicate resolved source target 20."") | EXPECT_EQ(result.GetStatus().Diagnostics()[1U].code, ""duplicate-source-target"") | EXPECT_EQ(result.GetStatus().Diagnostics()[1U].message, ""Duplicate resolved source target 10."")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 2U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""duplicate-source-target"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].message, ""Duplicate resolved source target 20."") | EXPECT_EQ(result.GetStatus().Diagnostics()[1U].code, ""duplicate-source-target"") | EXPECT_EQ(result.GetStatus().Diagnostics()[1U].message, ""Duplicate resolved source target 10."")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/source_target_resolver_test.cpp support@1-52 helper/oracle/fixture/include/static assertion 구간: Entry, Indices, for, ExpectFailure tests/unit/model/source_target_resolver_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cea5c6ff21dff6057da6621ea47cd0fcb5ec20f1f524551e8bae951791033aa8 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/model/thermal_semantics_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/model/thermal_semantics_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e35fdae0a9d314a157526b4ebd72ff54eef3f8123b3646fd8f5f3c50b39bbaea e35fdae0a9d314a157526b4ebd72ff54eef3f8123b3646fd8f5f3c50b39bbaea 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/model/thermal_semantics_test.cpp ThermalDomain.StructuralDefinitionHasNoThermalStep ThermalDomain.StructuralDefinitionHasNoThermalStep; assertion 2개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.StructuralDefinitionHasNoThermalStep 유지 원문 검사 body 및 assertion 동일. 5109e39fa2bd304e84323c45a63bff6d6948c4f8e385006533847d897edbb852 5109e39fa2bd304e84323c45a63bff6d6948c4f8e385006533847d897edbb852 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().ThermalStep(), nullptr) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().ThermalStep(), nullptr) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/thermal_semantics_test.cpp IsotropicThermalMaterial.RequiresFinitePositivePropertiesAndIdentity IsotropicThermalMaterial.RequiresFinitePositivePropertiesAndIdentity; assertion 9개 tests/unit/model/thermal_semantics_test.cpp IsotropicThermalMaterial.RequiresFinitePositivePropertiesAndIdentity 유지 원문 검사 body 및 assertion 동일. 3eec96a6aa43b48716c7ef05b78fc8e81f08777ca547164a676e7ba5b64987ee 3eec96a6aa43b48716c7ef05b78fc8e81f08777ca547164a676e7ba5b64987ee "ASSERT_TRUE(valid.HasValue()) | EXPECT_EQ(valid.Value().Kind(), fesa::MaterialKind::kIsotropicThermal) | EXPECT_DOUBLE_EQ(valid.Value().Conductivity(), 45.0) | EXPECT_DOUBLE_EQ(valid.Value().Density(), 7800.0) | EXPECT_DOUBLE_EQ(valid.Value().SpecificHeat(), 500.0) | ASSERT_FALSE(invalid.HasValue()) | EXPECT_EQ(invalid.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(fesa::IsotropicThermalMaterial::Create({"""", 7, ""Thermal-Steel""}, ""Thermal-Steel"", 45.0, 0.0, 500.0, Location()) .HasValue()) | EXPECT_FALSE(fesa::IsotropicThermalMaterial::Create( {"""", 7, ""Thermal-Steel""}, ""Thermal-Steel"", 45.0, 7800.0, std::numeric_limits::quiet_NaN(), Location()) .HasValue())" "ASSERT_TRUE(valid.HasValue()) | EXPECT_EQ(valid.Value().Kind(), fesa::MaterialKind::kIsotropicThermal) | EXPECT_DOUBLE_EQ(valid.Value().Conductivity(), 45.0) | EXPECT_DOUBLE_EQ(valid.Value().Density(), 7800.0) | EXPECT_DOUBLE_EQ(valid.Value().SpecificHeat(), 500.0) | ASSERT_FALSE(invalid.HasValue()) | EXPECT_EQ(invalid.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(fesa::IsotropicThermalMaterial::Create({"""", 7, ""Thermal-Steel""}, ""Thermal-Steel"", 45.0, 0.0, 500.0, Location()) .HasValue()) | EXPECT_FALSE(fesa::IsotropicThermalMaterial::Create( {"""", 7, ""Thermal-Steel""}, ""Thermal-Steel"", 45.0, 7800.0, std::numeric_limits::quiet_NaN(), Location()) .HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/thermal_semantics_test.cpp ThermalDomain.OwnsFiveStationDefinitionsWithoutEquationState ThermalDomain.OwnsFiveStationDefinitionsWithoutEquationState; assertion 11개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.OwnsFiveStationDefinitionsWithoutEquationState 유지 원문 검사 body 및 assertion 동일. e6d226842e76067fc438dfd669bd073c05be7a9be7895ab909ad06d4ab8a0e72 e6d226842e76067fc438dfd669bd073c05be7a9be7895ab909ad06d4ab8a0e72 ASSERT_TRUE(result.HasValue()) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(domain.ThermalElements().Size(), 1U) | EXPECT_EQ(domain.ThermalElements()[0U].Kind(), fesa::ElementDefinitionKind::kDs4Thermal) | EXPECT_EQ(domain.ThermalElements()[0U].PropertyIndex(), fesa::Ds4ThermalDefinition::kNoPropertyIndex) | EXPECT_EQ(domain.ThermalElements()[0U].NodeIndices(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(domain.ThermalInitialConditions()[0U].station_values, (std::array{12.5, 12.5, 12.5, 12.5, 12.5})) | EXPECT_EQ(domain.ThermalStep()->Boundaries()[0U].value, 20.0) | EXPECT_EQ(domain.ThermalStep()->Loads()[0U].source_order, 0U) | EXPECT_EQ(static_cast(fesa::ThermalDofComponent::kBottom), 11) | EXPECT_EQ(static_cast(fesa::ThermalDofComponent::kTop), 15) ASSERT_TRUE(result.HasValue()) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(domain.ThermalElements().Size(), 1U) | EXPECT_EQ(domain.ThermalElements()[0U].Kind(), fesa::ElementDefinitionKind::kDs4Thermal) | EXPECT_EQ(domain.ThermalElements()[0U].PropertyIndex(), fesa::Ds4ThermalDefinition::kNoPropertyIndex) | EXPECT_EQ(domain.ThermalElements()[0U].NodeIndices(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(domain.ThermalInitialConditions()[0U].station_values, (std::array{12.5, 12.5, 12.5, 12.5, 12.5})) | EXPECT_EQ(domain.ThermalStep()->Boundaries()[0U].value, 20.0) | EXPECT_EQ(domain.ThermalStep()->Loads()[0U].source_order, 0U) | EXPECT_EQ(static_cast(fesa::ThermalDofComponent::kBottom), 11) | EXPECT_EQ(static_cast(fesa::ThermalDofComponent::kTop), 15) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/thermal_semantics_test.cpp ThermalDomain.RejectsInactiveTargetsConflictsAndMixedElements ThermalDomain.RejectsInactiveTargetsConflictsAndMixedElements; assertion 8개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.RejectsInactiveTargetsConflictsAndMixedElements 유지 원문 검사 body 및 assertion 동일. 69b1b68b51176ef0a39d57b5c5899bc6c935fc3e6a82850b7634f13895ae26d6 69b1b68b51176ef0a39d57b5c5899bc6c935fc3e6a82850b7634f13895ae26d6 ASSERT_FALSE(inactive.HasValue()) | EXPECT_EQ(inactive.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(conflicting.HasValue()) | EXPECT_EQ(conflicting.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(mixed.HasValue()) | EXPECT_EQ(mixed.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(invalid_thickness.HasValue()) | EXPECT_EQ(invalid_thickness.GetStatus().Category(), fesa::FailureCategory::kModel) ASSERT_FALSE(inactive.HasValue()) | EXPECT_EQ(inactive.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(conflicting.HasValue()) | EXPECT_EQ(conflicting.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(mixed.HasValue()) | EXPECT_EQ(mixed.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(invalid_thickness.HasValue()) | EXPECT_EQ(invalid_thickness.GetStatus().Category(), fesa::FailureCategory::kModel) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/thermal_semantics_test.cpp ThermalDomain.AllowsEqualInitialTargetsAndStepBoundaryOverride ThermalDomain.AllowsEqualInitialTargetsAndStepBoundaryOverride; assertion 4개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.AllowsEqualInitialTargetsAndStepBoundaryOverride 유지 원문 검사 body 및 assertion 동일. 7d2f88248ba8df15e130f352f1bcbce0886e513bfd575bcdf66862383f86ce12 7d2f88248ba8df15e130f352f1bcbce0886e513bfd575bcdf66862383f86ce12 EXPECT_TRUE(equal_initial.HasValue()) | ASSERT_FALSE(conflicting_initial.HasValue()) | EXPECT_EQ(conflicting_initial.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_TRUE(overriding_step.HasValue()) EXPECT_TRUE(equal_initial.HasValue()) | ASSERT_FALSE(conflicting_initial.HasValue()) | EXPECT_EQ(conflicting_initial.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_TRUE(overriding_step.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/thermal_semantics_test.cpp ThermalDomain.RejectsInteriorThermalDofsAndInactiveFluxTargets ThermalDomain.RejectsInteriorThermalDofsAndInactiveFluxTargets; assertion 4개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.RejectsInteriorThermalDofsAndInactiveFluxTargets 유지 원문 검사 body 및 assertion 동일. 1e9cbd5b4303fc6d2706eda68d786d4bec26fe554c7043554f04b8588b7455f3 1e9cbd5b4303fc6d2706eda68d786d4bec26fe554c7043554f04b8588b7455f3 EXPECT_FALSE(boundary.HasValue()) | EXPECT_FALSE(flux.HasValue()) | EXPECT_FALSE(inactive_flux.HasValue()) | EXPECT_FALSE(inactive_boundary.HasValue()) EXPECT_FALSE(boundary.HasValue()) | EXPECT_FALSE(flux.HasValue()) | EXPECT_FALSE(inactive_flux.HasValue()) | EXPECT_FALSE(inactive_boundary.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/thermal_semantics_test.cpp ThermalDomain.PreservesAdditiveFluxSourceOrder ThermalDomain.PreservesAdditiveFluxSourceOrder; assertion 6개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.PreservesAdditiveFluxSourceOrder 유지 원문 검사 body 및 assertion 동일. dd1914d0d09fc94c82e24118f005fc7d1ff4b5c31ceb318021508b6239a26a79 dd1914d0d09fc94c82e24118f005fc7d1ff4b5c31ceb318021508b6239a26a79 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0U].source_order, 0U) | EXPECT_EQ(loads[1U].source_order, 1U) | EXPECT_DOUBLE_EQ(loads[0U].power, -5.0) | EXPECT_DOUBLE_EQ(loads[1U].power, 3.0) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0U].source_order, 0U) | EXPECT_EQ(loads[1U].source_order, 1U) | EXPECT_DOUBLE_EQ(loads[0U].power, -5.0) | EXPECT_DOUBLE_EQ(loads[1U].power, 3.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/thermal_semantics_test.cpp ThermalAnalysisModel.KeepsThermalSectionMaterialIndicesSeparateFromDomainMaterials ThermalAnalysisModel.KeepsThermalSectionMaterialIndicesSeparateFromDomainMaterials; assertion 12개 tests/unit/model/thermal_semantics_test.cpp ThermalAnalysisModel.KeepsThermalSectionMaterialIndicesSeparateFromDomainMaterials 유지 원문 검사 body 및 assertion 동일. 550c29842bdef0f9518150f2f263f6c2302ce2d0c108607913f3833bfbd9ace2 550c29842bdef0f9518150f2f263f6c2302ce2d0c108607913f3833bfbd9ace2 ASSERT_TRUE(domain_result.HasValue()) | ASSERT_EQ(domain.Materials().Size(), 3U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 2U) | EXPECT_EQ(domain.ThermalSections()[0U].material_index, 1U) | EXPECT_EQ(domain.ThermalSections()[1U].material_index, 0U) | EXPECT_EQ(domain.ThermalElements()[0U].MaterialIndex(), 2U) | EXPECT_EQ(domain.ThermalElements()[1U].MaterialIndex(), 1U) | EXPECT_EQ(domain.ThermalElements()[0U].PropertyIndex(), fesa::Ds4ThermalDefinition::kNoPropertyIndex) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(model_result.Value().ActiveThermalMaterials(), (std::vector{0U, 1U})) | EXPECT_EQ(model_result.Value().ActiveThermalSections(), (std::vector{0U, 1U})) | EXPECT_TRUE(model_result.Value().ActiveProperties().empty()) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_EQ(domain.Materials().Size(), 3U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 2U) | EXPECT_EQ(domain.ThermalSections()[0U].material_index, 1U) | EXPECT_EQ(domain.ThermalSections()[1U].material_index, 0U) | EXPECT_EQ(domain.ThermalElements()[0U].MaterialIndex(), 2U) | EXPECT_EQ(domain.ThermalElements()[1U].MaterialIndex(), 1U) | EXPECT_EQ(domain.ThermalElements()[0U].PropertyIndex(), fesa::Ds4ThermalDefinition::kNoPropertyIndex) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(model_result.Value().ActiveThermalMaterials(), (std::vector{0U, 1U})) | EXPECT_EQ(model_result.Value().ActiveThermalSections(), (std::vector{0U, 1U})) | EXPECT_TRUE(model_result.Value().ActiveProperties().empty()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/thermal_semantics_test.cpp ThermalAnalysisModel.ViewsConnectedDs4EntitiesWithoutOwningDomain ThermalAnalysisModel.ViewsConnectedDs4EntitiesWithoutOwningDomain; assertion 17개 tests/unit/model/thermal_semantics_test.cpp ThermalAnalysisModel.ViewsConnectedDs4EntitiesWithoutOwningDomain 유지 원문 검사 body 및 assertion 동일. 509fa86c25fb97bf5c46d2eb7dfe513ac53a0fbceef40979b47ed0a740fbac7c 509fa86c25fb97bf5c46d2eb7dfe513ac53a0fbceef40979b47ed0a740fbac7c ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_TRUE(model.IsThermal()) | EXPECT_EQ(model.ThermalStep(), domain.ThermalStep()) | EXPECT_THROW(model.Step(), std::logic_error) | EXPECT_EQ(model.ActiveThermalElements(), (std::vector{0U})) | EXPECT_EQ(model.ActiveThermalNodes(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(model.ActiveThermalMaterials(), (std::vector{0U})) | EXPECT_EQ(model.ActiveThermalSections(), (std::vector{0U})) | EXPECT_TRUE(model.ActiveProperties().empty()) | EXPECT_EQ(domain.ThermalSections()[0U].material_index, 0U) | EXPECT_EQ(domain.ThermalElements()[0U].MaterialIndex(), 0U) | EXPECT_EQ(&model.GetDomain(), &domain) | ASSERT_TRUE(moved_model.HasValue()) | EXPECT_EQ(&moved_model.Value().GetDomain(), &moved_domain) | EXPECT_DOUBLE_EQ(moved_domain.ThermalMaterials()[0U].Conductivity(), 45.0) | EXPECT_EQ(moved_domain.ThermalElements()[0U].SourceId().source_label, 8) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_TRUE(model.IsThermal()) | EXPECT_EQ(model.ThermalStep(), domain.ThermalStep()) | EXPECT_THROW(model.Step(), std::logic_error) | EXPECT_EQ(model.ActiveThermalElements(), (std::vector{0U})) | EXPECT_EQ(model.ActiveThermalNodes(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(model.ActiveThermalMaterials(), (std::vector{0U})) | EXPECT_EQ(model.ActiveThermalSections(), (std::vector{0U})) | EXPECT_TRUE(model.ActiveProperties().empty()) | EXPECT_EQ(domain.ThermalSections()[0U].material_index, 0U) | EXPECT_EQ(domain.ThermalElements()[0U].MaterialIndex(), 0U) | EXPECT_EQ(&model.GetDomain(), &domain) | ASSERT_TRUE(moved_model.HasValue()) | EXPECT_EQ(&moved_model.Value().GetDomain(), &moved_domain) | EXPECT_DOUBLE_EQ(moved_domain.ThermalMaterials()[0U].Conductivity(), 45.0) | EXPECT_EQ(moved_domain.ThermalElements()[0U].SourceId().source_label, 8) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/model/thermal_semantics_test.cpp support@1-50 helper/oracle/fixture/include/static assertion 구간: Location, ValidDefinition tests/unit/model/thermal_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 34019d56ebed3f1fa39477e5c1846c9610f380a4cec751b860088f6e6ce221ba 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/model/thermal_shell_geometry_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/model/thermal_shell_geometry_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 754d05288c9ba4de3c7cba2153621be4af8489b5c7e0946e387ee86ffaa0776c 2011bdeb9d673496a31e6ee31317452fb401fbfefb928cd97d085c99406dd033 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.CertifiesAffineDistortedSaddleAndSlenderPatches ThermalShellGeometry.CertifiesAffineDistortedSaddleAndSlenderPatches; assertion 5개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.CertifiesAffineDistortedSaddleAndSlenderPatches 유지 원문 검사 body 및 assertion 동일. 48147bb1a29cb0d24551a12e8a96d748c81fa670f440912e1d99901118128f8c 48147bb1a29cb0d24551a12e8a96d748c81fa670f440912e1d99901118128f8c EXPECT_TRUE(Kernel(kSquare).HasValue()) | EXPECT_TRUE( Kernel({{{0, 0, 0}, {2, 0, 0}, {3, 1, 0}, {1, 1, 0}}}).HasValue()) | EXPECT_TRUE( Kernel({{{0, 0, 0}, {2, 0, 0}, {1.5, 1, 0}, {0, 1, 0}}}).HasValue()) | EXPECT_TRUE(Kernel({{{0, 0, 0}, {1, 0, 0}, {1, std::ldexp(1., -40), 0}, {0, std::ldexp(1., -40), 0}}}) .HasValue()) | EXPECT_TRUE( Kernel({{{-1, -1, a}, {1, -1, -a}, {1, 1, a}, {-1, 1, -a}}}).HasValue()) EXPECT_TRUE(Kernel(kSquare).HasValue()) | EXPECT_TRUE( Kernel({{{0, 0, 0}, {2, 0, 0}, {3, 1, 0}, {1, 1, 0}}}).HasValue()) | EXPECT_TRUE( Kernel({{{0, 0, 0}, {2, 0, 0}, {1.5, 1, 0}, {0, 1, 0}}}).HasValue()) | EXPECT_TRUE(Kernel({{{0, 0, 0}, {1, 0, 0}, {1, std::ldexp(1., -40), 0}, {0, std::ldexp(1., -40), 0}}}) .HasValue()) | EXPECT_TRUE( Kernel({{{-1, -1, a}, {1, -1, -a}, {1, 1, a}, {-1, 1, -a}}}).HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.PowerOfTwoScalingTranslationAndRotation ThermalShellGeometry.PowerOfTwoScalingTranslationAndRotation; assertion 3개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.PowerOfTwoScalingTranslationAndRotation 유지 원문 검사 body 및 assertion 동일. 5a22e1006b798b2d4a9544a4ee6af30a969558a0bafaba3dfc98634d36b62ff8 5a22e1006b798b2d4a9544a4ee6af30a969558a0bafaba3dfc98634d36b62ff8 EXPECT_TRUE(Kernel(patch).HasValue()) | EXPECT_TRUE(Kernel(translated).HasValue()) | EXPECT_TRUE(Kernel(rotated).HasValue()) EXPECT_TRUE(Kernel(patch).HasValue()) | EXPECT_TRUE(Kernel(translated).HasValue()) | EXPECT_TRUE(Kernel(rotated).HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsWholePatchSingularityDespiteNonzeroGaussPoints ThermalShellGeometry.RejectsWholePatchSingularityDespiteNonzeroGaussPoints; assertion 4개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsWholePatchSingularityDespiteNonzeroGaussPoints 유지 원문 검사 body 및 assertion 동일. d4f657f21765c36aeb85cb4ef44f7eb0da408aaa215d6264aa01ae008fe24134 d4f657f21765c36aeb85cb4ef44f7eb0da408aaa215d6264aa01ae008fe24134 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].entity_identity, ""part:0027"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, 17U) | EXPECT_GT(std::abs(q - .25), 0.)" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].entity_identity, ""part:0027"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, 17U) | EXPECT_GT(std::abs(q - .25), 0.)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsInvalidAndDoesNotRepairUncertainGeometry ThermalShellGeometry.RejectsInvalidAndDoesNotRepairUncertainGeometry; assertion 6개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsInvalidAndDoesNotRepairUncertainGeometry 유지 원문 검사 body 및 assertion 동일. 8507137261c0e52029ab56b39af1e9434cf478fcf9870c9d474c8f61ffb75f0e 8507137261c0e52029ab56b39af1e9434cf478fcf9870c9d474c8f61ffb75f0e "EXPECT_FALSE( Kernel({{{0, 0, 0}, {1, 1, 0}, {1, 0, 0}, {0, 1, 0}}}).HasValue()) | EXPECT_FALSE( Kernel({{{0, 0, 0}, {1, 0, 0}, {2, 0, 0}, {3, 0, 0}}}).HasValue()) | EXPECT_FALSE(Kernel(repeated).HasValue()) | EXPECT_FALSE(Kernel(patch).HasValue()) | EXPECT_FALSE(duplicate.HasValue()) | EXPECT_EQ(uncertain.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-geometry"")" "EXPECT_FALSE( Kernel({{{0, 0, 0}, {1, 1, 0}, {1, 0, 0}, {0, 1, 0}}}).HasValue()) | EXPECT_FALSE( Kernel({{{0, 0, 0}, {1, 0, 0}, {2, 0, 0}, {3, 0, 0}}}).HasValue()) | EXPECT_FALSE(Kernel(repeated).HasValue()) | EXPECT_FALSE(Kernel(patch).HasValue()) | EXPECT_FALSE(duplicate.HasValue()) | EXPECT_EQ(uncertain.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-geometry"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainEnforcesOppositeEdgesAndOneVertexLink ThermalShellGeometry.DomainEnforcesOppositeEdgesAndOneVertexLink; assertion 5개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainEnforcesOppositeEdgesAndOneVertexLink 유지 원문 검사 body 및 assertion 동일. 960d6f8e2311e574bde5319cf21f80fd621f40068ceba6271b3341a91f01e523 960d6f8e2311e574bde5319cf21f80fd621f40068ceba6271b3341a91f01e523 EXPECT_TRUE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{1, 4, 5, 2}}}))) | EXPECT_FALSE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{2, 5, 4, 1}}}))) | EXPECT_FALSE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{0, 1, 2, 3}}}))) | EXPECT_FALSE(Accepted(Mesh({{0, 0, 0}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0}, {-1, -1, 0}, {0, -1, 0}, {-1, 0, 0}}, {{{0, 1, 2, 3}}, {{0, 6, 4, 5}}}))) | EXPECT_FALSE( Accepted(Mesh({{0, 0, 0}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0}, {2, 0, 0}, {2, 1, 0}, {1, 0, 1}, {1, 1, 1}}, {{{0, 1, 2, 3}}, {{1, 4, 5, 2}}, {{1, 6, 7, 2}}}))) EXPECT_TRUE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{1, 4, 5, 2}}}))) | EXPECT_FALSE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{2, 5, 4, 1}}}))) | EXPECT_FALSE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{0, 1, 2, 3}}}))) | EXPECT_FALSE(Accepted(Mesh({{0, 0, 0}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0}, {-1, -1, 0}, {0, -1, 0}, {-1, 0, 0}}, {{{0, 1, 2, 3}}, {{0, 6, 4, 5}}}))) | EXPECT_FALSE( Accepted(Mesh({{0, 0, 0}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0}, {2, 0, 0}, {2, 1, 0}, {1, 0, 1}, {1, 1, 1}}, {{{0, 1, 2, 3}}, {{1, 4, 5, 2}}, {{1, 6, 7, 2}}}))) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainAllowsFoldAndDisconnectedCoordinateContact ThermalShellGeometry.DomainAllowsFoldAndDisconnectedCoordinateContact; assertion 3개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainAllowsFoldAndDisconnectedCoordinateContact 유지 원문 검사 body 및 assertion 동일. 5249d8d88ee57a712425ba038be3bac4ade7db9c481b522d83c2caade689a80f 5249d8d88ee57a712425ba038be3bac4ade7db9c481b522d83c2caade689a80f EXPECT_TRUE(Accepted(std::move(folded))) | EXPECT_TRUE(Accepted(disconnected)) | EXPECT_TRUE(Accepted(disconnected)) EXPECT_TRUE(Accepted(std::move(folded))) | EXPECT_TRUE(Accepted(disconnected)) | EXPECT_TRUE(Accepted(disconnected)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainRejectsSourceSharingPartialEdgeWithoutGlobalScan ThermalShellGeometry.DomainRejectsSourceSharingPartialEdgeWithoutGlobalScan; assertion 3개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainRejectsSourceSharingPartialEdgeWithoutGlobalScan 유지 원문 검사 body 및 assertion 동일. 0c84d4620600808611f9c67496c87bba5ea2baddc6714c78facfcac24d1d4cfb 0c84d4620600808611f9c67496c87bba5ea2baddc6714c78facfcac24d1d4cfb "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-connection"") | EXPECT_FALSE(Accepted(invalid))" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-connection"") | EXPECT_FALSE(Accepted(invalid))" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.SearchesSeparatingDirectionsBeyondCenterAndCorners ThermalShellGeometry.SearchesSeparatingDirectionsBeyondCenterAndCorners; assertion 2개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.SearchesSeparatingDirectionsBeyondCenterAndCorners 유지 원문 검사 body 및 assertion 동일. e9e9cca17d49ca10988a52883efca96de60507cb1cf1af5a467e096037879591 e9e9cca17d49ca10988a52883efca96de60507cb1cf1af5a467e096037879591 EXPECT_TRUE( Kernel({{{3, -9, -3}, {1, 3, -3}, {-1, 3, 3}, {-3, 3, 3}}}).HasValue()) | EXPECT_TRUE( Kernel({{{-1, 4, -4}, {-1, -2, 2}, {3, 2, 4}, {-1, -4, -2}}}).HasValue()) EXPECT_TRUE( Kernel({{{3, -9, -3}, {1, 3, -3}, {-1, 3, 3}, {-3, 3, 3}}}).HasValue()) | EXPECT_TRUE( Kernel({{{-1, 4, -4}, {-1, -2, 2}, {3, 2, 4}, {-1, -4, -2}}}).HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsAliasedSourceIdentityAndAcceptsClosedVertexLink ThermalShellGeometry.RejectsAliasedSourceIdentityAndAcceptsClosedVertexLink; assertion 2개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsAliasedSourceIdentityAndAcceptsClosedVertexLink 유지 원문 검사 body 및 assertion 동일. 5fc28937a2442f6232fecc5edfa705ee8777c0a5e5a5395d16875e9e7613ea60 5fc28937a2442f6232fecc5edfa705ee8777c0a5e5a5395d16875e9e7613ea60 EXPECT_FALSE(Accepted(aliases)) | EXPECT_TRUE(Accepted( Mesh({{-1, -1, 0}, {0, -1, 0}, {1, -1, 0}, {-1, 0, 0}, {0, 0, 0}, {1, 0, 0}, {-1, 1, 0}, {0, 1, 0}, {1, 1, 0}}, {{{0, 1, 4, 3}}, {{1, 2, 5, 4}}, {{3, 4, 7, 6}}, {{4, 5, 8, 7}}}))) EXPECT_FALSE(Accepted(aliases)) | EXPECT_TRUE(Accepted( Mesh({{-1, -1, 0}, {0, -1, 0}, {1, -1, 0}, {-1, 0, 0}, {0, 0, 0}, {1, 0, 0}, {-1, 1, 0}, {0, 1, 0}, {1, 1, 0}}, {{{0, 1, 4, 3}}, {{1, 2, 5, 4}}, {{3, 4, 7, 6}}, {{4, 5, 8, 7}}}))) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/model/thermal_shell_geometry_test.cpp support@1-48 helper/oracle/fixture/include/static assertion 구간: Kernel, Mesh, Accepted tests/unit/model/thermal_shell_geometry_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7d176d82a5793eb18d82939f0cb8aefeb58f83c729b7a7c3bec269a1e90ecbf2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/properties/element_property_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/properties/element_property_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 37fe800c84baee1240c919337d93fdaf0b06540901fcf27c1de88b3cab07b049 37fe800c84baee1240c919337d93fdaf0b06540901fcf27c1de88b3cab07b049 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/properties/element_property_test.cpp ElementProperty.OwnsGeneralBeamSectionThroughVirtualBase ElementProperty.OwnsGeneralBeamSectionThroughVirtualBase; assertion 13개 tests/unit/properties/element_property_test.cpp ElementProperty.OwnsGeneralBeamSectionThroughVirtualBase 유지 원문 검사 body 및 assertion 동일. a82ebec7392b40890b5e5f520cf3384a81f765e1e258cd5c1062052283df0479 a82ebec7392b40890b5e5f520cf3384a81f765e1e258cd5c1062052283df0479 "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(property->Kind(), fesa::ElementPropertyKind::kGeneralBeamSection) | EXPECT_EQ(property->SourceId().source_label, 4) | EXPECT_EQ(property->SourceId().source_label_text, ""BeamSection"") | EXPECT_EQ(section.Name(), ""BeamSection"") | EXPECT_DOUBLE_EQ(section.Area(), 0.02) | EXPECT_DOUBLE_EQ(section.I11(), 1.0e-5) | EXPECT_DOUBLE_EQ(section.I12(), 0.0) | EXPECT_DOUBLE_EQ(section.I22(), 2.0e-5) | EXPECT_DOUBLE_EQ(section.TorsionalConstant(), 5.0e-6) | EXPECT_EQ(section.FirstAxis(), (std::array{0.0, 1.0, 0.0})) | EXPECT_EQ(section.SectionPoints(), (std::vector>{{-0.1, 0.0}, {0.1, 0.0}})) | EXPECT_EQ(section.Location().line, 40U)" "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(property->Kind(), fesa::ElementPropertyKind::kGeneralBeamSection) | EXPECT_EQ(property->SourceId().source_label, 4) | EXPECT_EQ(property->SourceId().source_label_text, ""BeamSection"") | EXPECT_EQ(section.Name(), ""BeamSection"") | EXPECT_DOUBLE_EQ(section.Area(), 0.02) | EXPECT_DOUBLE_EQ(section.I11(), 1.0e-5) | EXPECT_DOUBLE_EQ(section.I12(), 0.0) | EXPECT_DOUBLE_EQ(section.I22(), 2.0e-5) | EXPECT_DOUBLE_EQ(section.TorsionalConstant(), 5.0e-6) | EXPECT_EQ(section.FirstAxis(), (std::array{0.0, 1.0, 0.0})) | EXPECT_EQ(section.SectionPoints(), (std::vector>{{-0.1, 0.0}, {0.1, 0.0}})) | EXPECT_EQ(section.Location().line, 40U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/properties/element_property_test.cpp ElementProperty.OwnsShellSectionThroughVirtualBase ElementProperty.OwnsShellSectionThroughVirtualBase; assertion 7개 tests/unit/properties/element_property_test.cpp ElementProperty.OwnsShellSectionThroughVirtualBase 유지 원문 검사 body 및 assertion 동일. f875a0e085b3368db099095f0bbce5ff999ecaaefc8f542b5f048a2cb965a65d f875a0e085b3368db099095f0bbce5ff999ecaaefc8f542b5f048a2cb965a65d "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(property->Kind(), fesa::ElementPropertyKind::kShellSection) | EXPECT_EQ(property->SourceId().source_label, 8) | EXPECT_EQ(section.Name(), ""ShellSection"") | EXPECT_DOUBLE_EQ(section.Thickness(), 0.01) | EXPECT_EQ(section.MaterialIndex(), fesa::EntityIndex{3}) | EXPECT_EQ(section.Location().file, ""models/property.inp"")" "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(property->Kind(), fesa::ElementPropertyKind::kShellSection) | EXPECT_EQ(property->SourceId().source_label, 8) | EXPECT_EQ(section.Name(), ""ShellSection"") | EXPECT_DOUBLE_EQ(section.Thickness(), 0.01) | EXPECT_EQ(section.MaterialIndex(), fesa::EntityIndex{3}) | EXPECT_EQ(section.Location().file, ""models/property.inp"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/properties/element_property_test.cpp ElementProperty.PreservesEmptyOptionalSectionPointInventory ElementProperty.PreservesEmptyOptionalSectionPointInventory; assertion 2개 tests/unit/properties/element_property_test.cpp ElementProperty.PreservesEmptyOptionalSectionPointInventory 유지 원문 검사 body 및 assertion 동일. eb36af0169c99936f509a091e38bf8c4e4c7d8fb663887478c6b4453ce21a252 eb36af0169c99936f509a091e38bf8c4e4c7d8fb663887478c6b4453ce21a252 ASSERT_TRUE(section.HasValue()) | EXPECT_TRUE(section.Value().SectionPoints().empty()) ASSERT_TRUE(section.HasValue()) | EXPECT_TRUE(section.Value().SectionPoints().empty()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/properties/element_property_test.cpp ElementProperty.RejectsInvalidCurrentSectionFields ElementProperty.RejectsInvalidCurrentSectionFields; assertion 6개 tests/unit/properties/element_property_test.cpp ElementProperty.RejectsInvalidCurrentSectionFields 유지 원문 검사 body 및 assertion 동일. 0e388bbbd8142343bb098f7b6df8b4dc8079f90e5c73447c09e43c4dbce0f610 0e388bbbd8142343bb098f7b6df8b4dc8079f90e5c73447c09e43c4dbce0f610 ASSERT_FALSE(invalid_beam.HasValue()) | EXPECT_EQ(invalid_beam.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(coupled_beam.HasValue()) | EXPECT_FALSE(nonfinite_point.HasValue()) | ASSERT_FALSE(invalid_shell.HasValue()) | EXPECT_EQ(invalid_shell.GetStatus().Category(), fesa::FailureCategory::kModel) ASSERT_FALSE(invalid_beam.HasValue()) | EXPECT_EQ(invalid_beam.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(coupled_beam.HasValue()) | EXPECT_FALSE(nonfinite_point.HasValue()) | ASSERT_FALSE(invalid_shell.HasValue()) | EXPECT_EQ(invalid_shell.GetStatus().Category(), fesa::FailureCategory::kModel) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/properties/element_property_test.cpp support@1-19 helper/oracle/fixture/include/static assertion 구간: PropertyLocation tests/unit/properties/element_property_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 433c8d2313668bc7e4780f44dca84936eae188a3c75110af9182756aa419efad 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_records_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/results/result_records_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ee0513e6ac8e92851a82d5f5bc932f841483b2640413b105465b71bb77cb1ccb bb72829dd1c5a3b89f5fcca9ae669acf8bc90697a26a5aa0c4ad0cddd14ac83e 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_records_test.cpp AnalysisState.PreservesStepFrameAndStableRowOrder AnalysisState.PreservesStepFrameAndStableRowOrder; assertion 25개 tests/unit/results/result_records_test.cpp AnalysisState.PreservesStepFrameAndStableRowOrder 유지 원문 검사 body 및 assertion 동일. 869b5c0c01c92f41cc3dd8a80fa5fe57725d2ce8581d61c8dcf3ac36ed0d8d8f 869b5c0c01c92f41cc3dd8a80fa5fe57725d2ce8581d61c8dcf3ac36ed0d8d8f "EXPECT_EQ(const_state.Identity().step_name, ""Step-1"") | EXPECT_EQ(const_state.Identity().frame_index, 0U) | ASSERT_EQ(const_state.EndpointResults().size(), 2U) | EXPECT_EQ(const_state.EndpointResults().data(), endpoint_storage) | EXPECT_EQ(const_state.EndpointResults()[0].element, 2U) | EXPECT_EQ(const_state.EndpointResults()[0].endpoint, -1) | EXPECT_EQ(const_state.EndpointResults()[0].node.instance_name, ""Beam-1"") | EXPECT_EQ(const_state.EndpointResults()[0].node.source_label, 10) | EXPECT_EQ(const_state.EndpointResults()[0].node.source_label_text, ""010"") | EXPECT_EQ(const_state.EndpointResults()[0].end_action, (std::array{1.0, 2.0, 3.0, 4.0, 5.0, 6.0})) | EXPECT_EQ(const_state.EndpointResults()[1].section_resultant, (std::array{17.0, 18.0, 19.0, 20.0})) | ASSERT_EQ(const_state.GaussResults().size(), 2U) | EXPECT_EQ(const_state.GaussResults().data(), gauss_storage) | EXPECT_EQ(const_state.GaussResults()[0].gauss_point, 1) | EXPECT_EQ(const_state.GaussResults()[1].gauss_point, 2) | EXPECT_EQ(const_state.GaussResults()[0].generalized_strain, (std::array{0.1, 0.2, 0.3, 0.4})) | EXPECT_EQ(const_state.GaussResults()[1].generalized_resultant, (std::array{1.5, 1.6, 1.7, 1.8})) | ASSERT_EQ(const_state.StressResults().size(), 2U) | EXPECT_EQ(const_state.StressResults().data(), stress_storage) | EXPECT_EQ(const_state.StressResults()[0].section_point, 1U) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].x1, -0.25) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].x2, 0.5) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].s11, 12.5) | EXPECT_EQ(const_state.StressResults()[0].source, ""input"") | EXPECT_EQ(const_state.StressResults()[1].section_point, 2U)" "EXPECT_EQ(const_state.Identity().step_name, ""Step-1"") | EXPECT_EQ(const_state.Identity().frame_index, 0U) | ASSERT_EQ(const_state.EndpointResults().size(), 2U) | EXPECT_EQ(const_state.EndpointResults().data(), endpoint_storage) | EXPECT_EQ(const_state.EndpointResults()[0].element, 2U) | EXPECT_EQ(const_state.EndpointResults()[0].endpoint, -1) | EXPECT_EQ(const_state.EndpointResults()[0].node.instance_name, ""Beam-1"") | EXPECT_EQ(const_state.EndpointResults()[0].node.source_label, 10) | EXPECT_EQ(const_state.EndpointResults()[0].node.source_label_text, ""010"") | EXPECT_EQ(const_state.EndpointResults()[0].end_action, (std::array{1.0, 2.0, 3.0, 4.0, 5.0, 6.0})) | EXPECT_EQ(const_state.EndpointResults()[1].section_resultant, (std::array{17.0, 18.0, 19.0, 20.0})) | ASSERT_EQ(const_state.GaussResults().size(), 2U) | EXPECT_EQ(const_state.GaussResults().data(), gauss_storage) | EXPECT_EQ(const_state.GaussResults()[0].gauss_point, 1) | EXPECT_EQ(const_state.GaussResults()[1].gauss_point, 2) | EXPECT_EQ(const_state.GaussResults()[0].generalized_strain, (std::array{0.1, 0.2, 0.3, 0.4})) | EXPECT_EQ(const_state.GaussResults()[1].generalized_resultant, (std::array{1.5, 1.6, 1.7, 1.8})) | ASSERT_EQ(const_state.StressResults().size(), 2U) | EXPECT_EQ(const_state.StressResults().data(), stress_storage) | EXPECT_EQ(const_state.StressResults()[0].section_point, 1U) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].x1, -0.25) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].x2, 0.5) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].s11, 12.5) | EXPECT_EQ(const_state.StressResults()[0].source, ""input"") | EXPECT_EQ(const_state.StressResults()[1].section_point, 2U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_records_test.cpp AnalysisState.OwnsExactShellRowsInStableElementAndLocationOrder AnalysisState.OwnsExactShellRowsInStableElementAndLocationOrder; assertion 13개 tests/unit/results/result_records_test.cpp AnalysisState.OwnsExactShellRowsInStableElementAndLocationOrder 유지 원문 검사 body 및 assertion 동일. a0f71e39ab3e0d800b26636fca67c30c58ad846b26a9684454a311322065c4f1 a0f71e39ab3e0d800b26636fca67c30c58ad846b26a9684454a311322065c4f1 ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(const_state.ShellResults().size(), 8U) | EXPECT_EQ(const_state.ShellResults()[0].element, 3U) | EXPECT_EQ(const_state.ShellResults()[0].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(const_state.ShellResults()[3].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(const_state.ShellResults()[4].element, 7U) | EXPECT_EQ(const_state.ShellResults()[4].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ( const_state.ShellResults()[0].natural_coordinates, (std::array{-1.0 / std::sqrt(3.0), -1.0 / std::sqrt(3.0)})) | EXPECT_EQ(const_state.ShellResults()[2].generalized_strain, (std::array{321.0, 322.0, 323.0, 324.0, 325.0, 326.0, 327.0, 328.0})) | EXPECT_EQ(const_state.ShellResults()[7].section_resultant, (std::array{741.0, 742.0, 743.0, 744.0, 745.0, 746.0, 747.0, 748.0})) | EXPECT_EQ(const_state.ShellResults()[7].stress[0].position, fesa::ShellSectionPosition::kBottom) | EXPECT_DOUBLE_EQ(const_state.ShellResults()[7].stress[0].zeta, -1.0) | EXPECT_EQ(const_state.ShellResults()[7].stress[2].components, (std::array{757.0, 758.0, 759.0})) ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(const_state.ShellResults().size(), 8U) | EXPECT_EQ(const_state.ShellResults()[0].element, 3U) | EXPECT_EQ(const_state.ShellResults()[0].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(const_state.ShellResults()[3].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(const_state.ShellResults()[4].element, 7U) | EXPECT_EQ(const_state.ShellResults()[4].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ( const_state.ShellResults()[0].natural_coordinates, (std::array{-1.0 / std::sqrt(3.0), -1.0 / std::sqrt(3.0)})) | EXPECT_EQ(const_state.ShellResults()[2].generalized_strain, (std::array{321.0, 322.0, 323.0, 324.0, 325.0, 326.0, 327.0, 328.0})) | EXPECT_EQ(const_state.ShellResults()[7].section_resultant, (std::array{741.0, 742.0, 743.0, 744.0, 745.0, 746.0, 747.0, 748.0})) | EXPECT_EQ(const_state.ShellResults()[7].stress[0].position, fesa::ShellSectionPosition::kBottom) | EXPECT_DOUBLE_EQ(const_state.ShellResults()[7].stress[0].zeta, -1.0) | EXPECT_EQ(const_state.ShellResults()[7].stress[2].components, (std::array{757.0, 758.0, 759.0})) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_records_test.cpp AnalysisState.CommitsFiniteShellGlobalEvidence AnalysisState.CommitsFiniteShellGlobalEvidence; assertion 4개 tests/unit/results/result_records_test.cpp AnalysisState.CommitsFiniteShellGlobalEvidence 유지 원문 검사 body 및 assertion 동일. 62ed08387eb7eff71c91920c4bebabfbed05791ab18a4fe8cbbf463396f7be15 62ed08387eb7eff71c91920c4bebabfbed05791ab18a4fe8cbbf463396f7be15 ASSERT_TRUE(status.IsOk()) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), 35.5) | EXPECT_EQ(state.Equilibrium(), (std::array{1.0, -2.0, 3.0, -4.0, 5.0, -6.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{1.0e-11, 2.0e-11, 3.0e-11})) ASSERT_TRUE(status.IsOk()) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), 35.5) | EXPECT_EQ(state.Equilibrium(), (std::array{1.0, -2.0, 3.0, -4.0, 5.0, -6.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{1.0e-11, 2.0e-11, 3.0e-11})) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_records_test.cpp AnalysisState.InvalidShellCandidatesLeavePriorStateUnchanged AnalysisState.InvalidShellCandidatesLeavePriorStateUnchanged; assertion 1개 tests/unit/results/result_records_test.cpp AnalysisState.InvalidShellCandidatesLeavePriorStateUnchanged 유지 원문 검사 body 및 assertion 동일. 707b9669e1d0cb266cfbba53e13210c339cea51e651d10b1b57991ece003a113 707b9669e1d0cb266cfbba53e13210c339cea51e651d10b1b57991ece003a113 ASSERT_TRUE(state.CommitShellResults(expected_elements, committed).IsOk()) ASSERT_TRUE(state.CommitShellResults(expected_elements, committed).IsOk()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_records_test.cpp support@1-125 helper/oracle/fixture/include/static assertion 구간: MakeEmptyDofs, MakeShellRow, MakeShellCandidate, for, ExpectShellStateEquals, ExpectShellCandidateRejectedWithoutMutation tests/unit/results/result_records_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9162214cc858ebe9d01e80e8166b2b73aae3991688b1fb9fa0f40f51298a59b6 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_records_test.cpp support@192-193 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_records_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 99cfd7cc1cbfee5f6699e5f92a5190f79a531c7be18944fe4cda2e9e2579c67c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_records_test.cpp support@228-229 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_records_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8e9919be7709179a6da34b5355c75a2a62ae000d17bf61c217fc31533b110324 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_records_test.cpp support@245-246 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_records_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5553b473143aa6f5d1e0b9c4ab38b9d66e43c689916066d068f42b2635b92413 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_recovery_components_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/results/result_recovery_components_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e5f882061497e99d8210a474c7f662c17de029fc7542ae8b4c7334a2be162c6d e5f882061497e99d8210a474c7f662c17de029fc7542ae8b4c7334a2be162c6d 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.GlobalEquilibriumUsesFullResidualAndGlobalOriginMoment ResultRecoveryComponents.GlobalEquilibriumUsesFullResidualAndGlobalOriginMoment; assertion 8개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.GlobalEquilibriumUsesFullResidualAndGlobalOriginMoment 유지 원문 검사 body 및 assertion 동일. 4b1d44d2f31879ee4c18e1f4cb5cdedafa0cb332e8c635b697fbcc02bef96a81 4b1d44d2f31879ee4c18e1f4cb5cdedafa0cb332e8c635b697fbcc02bef96a81 ASSERT_TRUE(centered_global.HasValue()) | ASSERT_TRUE(translated_global.HasValue()) | EXPECT_NEAR(centered_global.Value().residual[0U], -1.0e-9, 1.0e-14) | EXPECT_DOUBLE_EQ(centered_global.Value().reaction[0U], centered_global.Value().residual[0U]) | ASSERT_TRUE(centered_status.IsOk()) | ASSERT_TRUE(translated_status.IsOk()) | EXPECT_NEAR(translated_candidate.shell.equilibrium[component], centered_force[component], 1.0e-12) | EXPECT_NEAR(translated_candidate.shell.equilibrium[3U + component] - centered_candidate.shell.equilibrium[3U + component], translated_moment_delta[component], 5.0e-12) ASSERT_TRUE(centered_global.HasValue()) | ASSERT_TRUE(translated_global.HasValue()) | EXPECT_NEAR(centered_global.Value().residual[0U], -1.0e-9, 1.0e-14) | EXPECT_DOUBLE_EQ(centered_global.Value().reaction[0U], centered_global.Value().residual[0U]) | ASSERT_TRUE(centered_status.IsOk()) | ASSERT_TRUE(translated_status.IsOk()) | EXPECT_NEAR(translated_candidate.shell.equilibrium[component], centered_force[component], 1.0e-12) | EXPECT_NEAR(translated_candidate.shell.equilibrium[3U + component] - centered_candidate.shell.equilibrium[3U + component], translated_moment_delta[component], 5.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.PartitionedScaleKeepsCancelledInternalTerms ResultRecoveryComponents.PartitionedScaleKeepsCancelledInternalTerms; assertion 6개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.PartitionedScaleKeepsCancelledInternalTerms 유지 원문 검사 body 및 assertion 동일. a8b1656706d840fa532862cac33f4009cb7679d2b2bb01156ebace368402ec2c a8b1656706d840fa532862cac33f4009cb7679d2b2bb01156ebace368402ec2c ASSERT_TRUE(matrix.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().internal_force[1U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().normalized_free_residual, 1.0e-12) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().reaction[1U], -1.0e-12) ASSERT_TRUE(matrix.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().internal_force[1U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().normalized_free_residual, 1.0e-12) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().reaction[1U], -1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.BeamResultRecoveryKeepsEndpointGaussAndStressIdentities ResultRecoveryComponents.BeamResultRecoveryKeepsEndpointGaussAndStressIdentities; assertion 18개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.BeamResultRecoveryKeepsEndpointGaussAndStressIdentities 유지 원문 검사 body 및 assertion 동일. 08f945a80aa1b49a9352f010897f1f0843eae7e8567334daf13602824dc12039 08f945a80aa1b49a9352f010897f1f0843eae7e8567334daf13602824dc12039 ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(candidate.endpoint_rows.size(), 2U) | ASSERT_EQ(candidate.gauss_rows.size(), 2U) | ASSERT_EQ(candidate.stress_rows.size(), 2U) | EXPECT_TRUE(candidate.has_beam_results) | EXPECT_EQ(candidate.endpoint_rows[0U].endpoint, 0) | EXPECT_EQ(candidate.endpoint_rows[1U].endpoint, 1) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[0U].end_action[0U], -2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[0U].section_resultant[0U], 2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[1U].end_action[0U], 2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[1U].section_resultant[0U], 2.0) | EXPECT_EQ(candidate.gauss_rows[0U].gauss_point, 1) | EXPECT_EQ(candidate.gauss_rows[1U].gauss_point, 2) | EXPECT_EQ(candidate.stress_rows[0U].section_point, 0U) | EXPECT_EQ(candidate.stress_rows[1U].section_point, 1U) | EXPECT_TRUE(rejected.endpoint_rows.empty()) | EXPECT_TRUE(rejected.gauss_rows.empty()) | EXPECT_TRUE(rejected.stress_rows.empty()) ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(candidate.endpoint_rows.size(), 2U) | ASSERT_EQ(candidate.gauss_rows.size(), 2U) | ASSERT_EQ(candidate.stress_rows.size(), 2U) | EXPECT_TRUE(candidate.has_beam_results) | EXPECT_EQ(candidate.endpoint_rows[0U].endpoint, 0) | EXPECT_EQ(candidate.endpoint_rows[1U].endpoint, 1) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[0U].end_action[0U], -2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[0U].section_resultant[0U], 2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[1U].end_action[0U], 2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[1U].section_resultant[0U], 2.0) | EXPECT_EQ(candidate.gauss_rows[0U].gauss_point, 1) | EXPECT_EQ(candidate.gauss_rows[1U].gauss_point, 2) | EXPECT_EQ(candidate.stress_rows[0U].section_point, 0U) | EXPECT_EQ(candidate.stress_rows[1U].section_point, 1U) | EXPECT_TRUE(rejected.endpoint_rows.empty()) | EXPECT_TRUE(rejected.gauss_rows.empty()) | EXPECT_TRUE(rejected.stress_rows.empty()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.BeamResultRecoveryRejectsMalformedB33IdentityBeforeAppending ResultRecoveryComponents.BeamResultRecoveryRejectsMalformedB33IdentityBeforeAppending; assertion 4개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.BeamResultRecoveryRejectsMalformedB33IdentityBeforeAppending 유지 원문 검사 body 및 assertion 동일. 3f5b0c41e2ce77b59609c26e60409445ddd24bd89e0bf55f7f9c30736fdd5f35 3f5b0c41e2ce77b59609c26e60409445ddd24bd89e0bf55f7f9c30736fdd5f35 EXPECT_TRUE(candidate.endpoint_rows.empty()) | EXPECT_TRUE(candidate.gauss_rows.empty()) | EXPECT_TRUE(candidate.stress_rows.empty()) | EXPECT_FALSE(candidate.has_beam_results) EXPECT_TRUE(candidate.endpoint_rows.empty()) | EXPECT_TRUE(candidate.gauss_rows.empty()) | EXPECT_TRUE(candidate.stress_rows.empty()) | EXPECT_FALSE(candidate.has_beam_results) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.ShellResultRecoveryKeepsGpStressOrderAndPhysicalEnergy ResultRecoveryComponents.ShellResultRecoveryKeepsGpStressOrderAndPhysicalEnergy; assertion 13개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.ShellResultRecoveryKeepsGpStressOrderAndPhysicalEnergy 유지 원문 검사 body 및 assertion 동일. 6c9a8476d2005420d8bd58a3f3a3558cfadbd6c158bd213b0047e821bdd2d991 6c9a8476d2005420d8bd58a3f3a3558cfadbd6c158bd213b0047e821bdd2d991 ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(candidate.has_shell_results) | EXPECT_EQ(candidate.expected_shell_elements, (std::vector{element})) | ASSERT_EQ(candidate.shell.rows.size(), 4U) | EXPECT_EQ(candidate.shell.rows[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(candidate.shell.rows[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(candidate.shell.rows[0U].stress[0U].position, fesa::ShellSectionPosition::kBottom) | EXPECT_EQ(candidate.shell.rows[0U].stress[1U].position, fesa::ShellSectionPosition::kMiddle) | EXPECT_EQ(candidate.shell.rows[0U].stress[2U].position, fesa::ShellSectionPosition::kTop) | EXPECT_DOUBLE_EQ(candidate.shell.physical_strain_energy, 12.5) | EXPECT_TRUE(rejected.shell.rows.empty()) | EXPECT_TRUE(rejected.expected_shell_elements.empty()) | EXPECT_DOUBLE_EQ(rejected.shell.physical_strain_energy, 0.0) ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(candidate.has_shell_results) | EXPECT_EQ(candidate.expected_shell_elements, (std::vector{element})) | ASSERT_EQ(candidate.shell.rows.size(), 4U) | EXPECT_EQ(candidate.shell.rows[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(candidate.shell.rows[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(candidate.shell.rows[0U].stress[0U].position, fesa::ShellSectionPosition::kBottom) | EXPECT_EQ(candidate.shell.rows[0U].stress[1U].position, fesa::ShellSectionPosition::kMiddle) | EXPECT_EQ(candidate.shell.rows[0U].stress[2U].position, fesa::ShellSectionPosition::kTop) | EXPECT_DOUBLE_EQ(candidate.shell.physical_strain_energy, 12.5) | EXPECT_TRUE(rejected.shell.rows.empty()) | EXPECT_TRUE(rejected.expected_shell_elements.empty()) | EXPECT_DOUBLE_EQ(rejected.shell.physical_strain_energy, 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.CommitRecoveryCandidateRollsBackLaterInvalidShellBundle ResultRecoveryComponents.CommitRecoveryCandidateRollsBackLaterInvalidShellBundle; assertion 9개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.CommitRecoveryCandidateRollsBackLaterInvalidShellBundle 유지 원문 검사 body 및 assertion 동일. 55b6230e61eb0fc7cb6bdd7be3ad9832e2f1ec16cc1a95bf67ed1266f52d1cfe 55b6230e61eb0fc7cb6bdd7be3ad9832e2f1ec16cc1a95bf67ed1266f52d1cfe ASSERT_TRUE(state.CommitShellResults({0U}, std::move(prior_shell)).IsOk()) | ASSERT_EQ(state.EndpointResults().size(), prior.EndpointResults().size()) | EXPECT_EQ(state.EndpointResults()[0U].end_action, prior.EndpointResults()[0U].end_action) | ASSERT_EQ(state.ShellResults().size(), prior.ShellResults().size()) | EXPECT_EQ(state.ShellResults()[0U].location, prior.ShellResults()[0U].location) | EXPECT_EQ(state.ShellResults()[0U].section_resultant, prior.ShellResults()[0U].section_resultant) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior.PhysicalStrainEnergy()) | EXPECT_EQ(state.Equilibrium(), prior.Equilibrium()) | EXPECT_EQ(state.VerificationMetrics(), prior.VerificationMetrics()) ASSERT_TRUE(state.CommitShellResults({0U}, std::move(prior_shell)).IsOk()) | ASSERT_EQ(state.EndpointResults().size(), prior.EndpointResults().size()) | EXPECT_EQ(state.EndpointResults()[0U].end_action, prior.EndpointResults()[0U].end_action) | ASSERT_EQ(state.ShellResults().size(), prior.ShellResults().size()) | EXPECT_EQ(state.ShellResults()[0U].location, prior.ShellResults()[0U].location) | EXPECT_EQ(state.ShellResults()[0U].section_resultant, prior.ShellResults()[0U].section_resultant) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior.PhysicalStrainEnergy()) | EXPECT_EQ(state.Equilibrium(), prior.Equilibrium()) | EXPECT_EQ(state.VerificationMetrics(), prior.VerificationMetrics()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.CommitRecoveryCandidateRejectsNonfiniteVectorAndPreservesWholeState ResultRecoveryComponents.CommitRecoveryCandidateRejectsNonfiniteVectorAndPreservesWholeState; assertion 1개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.CommitRecoveryCandidateRejectsNonfiniteVectorAndPreservesWholeState 유지 원문 검사 body 및 assertion 동일. 7fbd3ba0038bb7588dd981c89f1ebdb358900d942bf246d26295b1417082cf38 7fbd3ba0038bb7588dd981c89f1ebdb358900d942bf246d26295b1417082cf38 ASSERT_TRUE(state.CommitShellResults({0U}, std::move(prior_shell)).IsOk()) ASSERT_TRUE(state.CommitShellResults({0U}, std::move(prior_shell)).IsOk()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_components_test.cpp support@1-288 helper/oracle/fixture/include/static assertion 구간: ShellFixture, MakeSourceId, MakeBeamRows, MakeShellRows, MakeShellDefinition, MakeShellFixture, if, MakeShellPhysicalState, ExpectStatusCode, ExpectVectorEqual, ExpectAnalysisStateEqual tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 71c5386212b72927040f93cba4949f34f14d9fc36633ce2b7fe1bfbcec2ee692 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_recovery_components_test.cpp support@391-392 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84e6d9367513adf07b62324adc589f360532892eb863dd167e0cf83cdda8477b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_recovery_components_test.cpp support@430-431 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84e6d9367513adf07b62324adc589f360532892eb863dd167e0cf83cdda8477b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_recovery_components_test.cpp support@488-489 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84e6d9367513adf07b62324adc589f360532892eb863dd167e0cf83cdda8477b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_recovery_components_test.cpp support@524-525 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84e6d9367513adf07b62324adc589f360532892eb863dd167e0cf83cdda8477b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_recovery_components_test.cpp support@589-590 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84e6d9367513adf07b62324adc589f360532892eb863dd167e0cf83cdda8477b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_recovery_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 17개 tests/unit/results/result_recovery_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7b9358cc8459e3ec9c7fd6384982951ff5520dca7ee1b41eb671976c79c254e6 7b9358cc8459e3ec9c7fd6384982951ff5520dca7ee1b41eb671976c79c254e6 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.AggregatesFakeBeamBundlesInStableRuntimeOrder ResultRecovery.AggregatesFakeBeamBundlesInStableRuntimeOrder; assertion 25개 tests/unit/results/result_recovery_test.cpp ResultRecovery.AggregatesFakeBeamBundlesInStableRuntimeOrder 유지 원문 검사 body 및 assertion 동일. 61908298d8e691deb7066229f9dd58426ca57647ebabc07023e1a31ac0cda782 61908298d8e691deb7066229f9dd58426ca57647ebabc07023e1a31ac0cda782 ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(first.ObservedDisplacement().Size(), 12U) | EXPECT_DOUBLE_EQ(first.ObservedDisplacement()[0U], 0.1) | EXPECT_DOUBLE_EQ(first.ObservedDisplacement()[6U], 0.3) | ASSERT_EQ(second.ObservedDisplacement().Size(), 12U) | EXPECT_DOUBLE_EQ(second.ObservedDisplacement()[0U], 0.3) | EXPECT_DOUBLE_EQ(second.ObservedDisplacement()[6U], 0.0) | ASSERT_EQ(state.EndpointResults().size(), 4U) | ASSERT_EQ(state.GaussResults().size(), 4U) | ASSERT_EQ(state.StressResults().size(), 4U) | EXPECT_EQ(negative_endpoint.element, element) | EXPECT_EQ(negative_endpoint.endpoint, 0) | EXPECT_DOUBLE_EQ(negative_endpoint.end_action[0U], -value) | EXPECT_DOUBLE_EQ(negative_endpoint.section_resultant[0U], value) | EXPECT_EQ(positive_endpoint.element, element) | EXPECT_EQ(positive_endpoint.endpoint, 1) | EXPECT_DOUBLE_EQ(positive_endpoint.end_action[0U], value) | EXPECT_DOUBLE_EQ(positive_endpoint.section_resultant[0U], value) | EXPECT_EQ(state.GaussResults()[2U * element].element, element) | EXPECT_EQ(state.GaussResults()[2U * element].gauss_point, 1) | EXPECT_EQ(state.GaussResults()[2U * element + 1U].element, element) | EXPECT_EQ(state.GaussResults()[2U * element + 1U].gauss_point, 2) | EXPECT_EQ(state.StressResults()[2U * element].element, element) | EXPECT_EQ(state.StressResults()[2U * element + 1U].element, element) | EXPECT_TRUE(state.ShellResults().empty()) ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(first.ObservedDisplacement().Size(), 12U) | EXPECT_DOUBLE_EQ(first.ObservedDisplacement()[0U], 0.1) | EXPECT_DOUBLE_EQ(first.ObservedDisplacement()[6U], 0.3) | ASSERT_EQ(second.ObservedDisplacement().Size(), 12U) | EXPECT_DOUBLE_EQ(second.ObservedDisplacement()[0U], 0.3) | EXPECT_DOUBLE_EQ(second.ObservedDisplacement()[6U], 0.0) | ASSERT_EQ(state.EndpointResults().size(), 4U) | ASSERT_EQ(state.GaussResults().size(), 4U) | ASSERT_EQ(state.StressResults().size(), 4U) | EXPECT_EQ(negative_endpoint.element, element) | EXPECT_EQ(negative_endpoint.endpoint, 0) | EXPECT_DOUBLE_EQ(negative_endpoint.end_action[0U], -value) | EXPECT_DOUBLE_EQ(negative_endpoint.section_resultant[0U], value) | EXPECT_EQ(positive_endpoint.element, element) | EXPECT_EQ(positive_endpoint.endpoint, 1) | EXPECT_DOUBLE_EQ(positive_endpoint.end_action[0U], value) | EXPECT_DOUBLE_EQ(positive_endpoint.section_resultant[0U], value) | EXPECT_EQ(state.GaussResults()[2U * element].element, element) | EXPECT_EQ(state.GaussResults()[2U * element].gauss_point, 1) | EXPECT_EQ(state.GaussResults()[2U * element + 1U].element, element) | EXPECT_EQ(state.GaussResults()[2U * element + 1U].gauss_point, 2) | EXPECT_EQ(state.StressResults()[2U * element].element, element) | EXPECT_EQ(state.StressResults()[2U * element + 1U].element, element) | EXPECT_TRUE(state.ShellResults().empty()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.AggregatesFakeShellBundleAndPhysicalEnergy ResultRecovery.AggregatesFakeShellBundleAndPhysicalEnergy; assertion 10개 tests/unit/results/result_recovery_test.cpp ResultRecovery.AggregatesFakeShellBundleAndPhysicalEnergy 유지 원문 검사 body 및 assertion 동일. 6010abc24720e7277736bbd3f31bc425d908c7545447ce70f5d5c1dc45880d8e 6010abc24720e7277736bbd3f31bc425d908c7545447ce70f5d5c1dc45880d8e ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(state.EndpointResults().empty()) | EXPECT_TRUE(state.GaussResults().empty()) | EXPECT_TRUE(state.StressResults().empty()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_EQ(state.ShellResults()[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(state.ShellResults()[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_DOUBLE_EQ(state.ShellResults()[0U].generalized_strain[0U], 1.0) | EXPECT_DOUBLE_EQ(state.ShellResults()[3U].section_resultant[0U], 40.0) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), physical_energy) ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(state.EndpointResults().empty()) | EXPECT_TRUE(state.GaussResults().empty()) | EXPECT_TRUE(state.StressResults().empty()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_EQ(state.ShellResults()[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(state.ShellResults()[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_DOUBLE_EQ(state.ShellResults()[0U].generalized_strain[0U], 1.0) | EXPECT_DOUBLE_EQ(state.ShellResults()[3U].section_resultant[0U], 40.0) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), physical_energy) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.FailingFakeBundleRollsBackTheWholeState ResultRecovery.FailingFakeBundleRollsBackTheWholeState; assertion 15개 tests/unit/results/result_recovery_test.cpp ResultRecovery.FailingFakeBundleRollsBackTheWholeState 유지 원문 검사 body 및 assertion 동일. 39c57c8c046735efba89779244e8a951423224037d0d5e5798550b3a057aaa61 39c57c8c046735efba89779244e8a951423224037d0d5e5798550b3a057aaa61 ASSERT_TRUE( state.CommitShellResults({0U}, std::move(stale_shell_candidate)).IsOk()) | EXPECT_EQ(state.Identity().step_name, prior.Identity().step_name) | EXPECT_EQ(state.Identity().frame_index, prior.Identity().frame_index) | ASSERT_EQ(state.EndpointResults().size(), prior.EndpointResults().size()) | EXPECT_EQ(state.EndpointResults()[0U].element, prior.EndpointResults()[0U].element) | EXPECT_EQ(state.EndpointResults()[0U].end_action, prior.EndpointResults()[0U].end_action) | ASSERT_EQ(state.GaussResults().size(), prior.GaussResults().size()) | EXPECT_EQ(state.GaussResults()[0U].generalized_resultant, prior.GaussResults()[0U].generalized_resultant) | ASSERT_EQ(state.StressResults().size(), prior.StressResults().size()) | EXPECT_DOUBLE_EQ(state.StressResults()[0U].s11, prior.StressResults()[0U].s11) | ASSERT_EQ(state.ShellResults().size(), prior.ShellResults().size()) | EXPECT_EQ(state.ShellResults()[0U].generalized_strain, prior.ShellResults()[0U].generalized_strain) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior.PhysicalStrainEnergy()) | EXPECT_EQ(state.Equilibrium(), prior.Equilibrium()) | EXPECT_EQ(state.VerificationMetrics(), prior.VerificationMetrics()) ASSERT_TRUE( state.CommitShellResults({0U}, std::move(stale_shell_candidate)).IsOk()) | EXPECT_EQ(state.Identity().step_name, prior.Identity().step_name) | EXPECT_EQ(state.Identity().frame_index, prior.Identity().frame_index) | ASSERT_EQ(state.EndpointResults().size(), prior.EndpointResults().size()) | EXPECT_EQ(state.EndpointResults()[0U].element, prior.EndpointResults()[0U].element) | EXPECT_EQ(state.EndpointResults()[0U].end_action, prior.EndpointResults()[0U].end_action) | ASSERT_EQ(state.GaussResults().size(), prior.GaussResults().size()) | EXPECT_EQ(state.GaussResults()[0U].generalized_resultant, prior.GaussResults()[0U].generalized_resultant) | ASSERT_EQ(state.StressResults().size(), prior.StressResults().size()) | EXPECT_DOUBLE_EQ(state.StressResults()[0U].s11, prior.StressResults()[0U].s11) | ASSERT_EQ(state.ShellResults().size(), prior.ShellResults().size()) | EXPECT_EQ(state.ShellResults()[0U].generalized_strain, prior.ShellResults()[0U].generalized_strain) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior.PhysicalStrainEnergy()) | EXPECT_EQ(state.Equilibrium(), prior.Equilibrium()) | EXPECT_EQ(state.VerificationMetrics(), prior.VerificationMetrics()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.ComputesResidualReactionForNonzeroPrescription ResultRecovery.ComputesResidualReactionForNonzeroPrescription; assertion 12개 tests/unit/results/result_recovery_test.cpp ResultRecovery.ComputesResidualReactionForNonzeroPrescription 유지 원문 검사 body 및 assertion 동일. 08216ddb5db36bbc534126bdf775ee7846b18b311b89da188e0e53b71af49608 08216ddb5db36bbc534126bdf775ee7846b18b311b89da188e0e53b71af49608 ASSERT_TRUE(state.CommitShellResults({}, stale_shell_evidence).IsOk()) | ASSERT_TRUE(status.IsOk()) | EXPECT_DOUBLE_EQ(state.InternalForce()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[6U], 20.0) | EXPECT_DOUBLE_EQ(state.Residual()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.Residual()[6U], 0.0) | EXPECT_DOUBLE_EQ(state.Reaction()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.Reaction()[full_dof], 0.0) | EXPECT_TRUE(state.ShellResults().empty()) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), 0.0) | EXPECT_EQ(state.Equilibrium(), (std::array{0.0, 0.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{0.0, 0.0, 0.0})) ASSERT_TRUE(state.CommitShellResults({}, stale_shell_evidence).IsOk()) | ASSERT_TRUE(status.IsOk()) | EXPECT_DOUBLE_EQ(state.InternalForce()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[6U], 20.0) | EXPECT_DOUBLE_EQ(state.Residual()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.Residual()[6U], 0.0) | EXPECT_DOUBLE_EQ(state.Reaction()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.Reaction()[full_dof], 0.0) | EXPECT_TRUE(state.ShellResults().empty()) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), 0.0) | EXPECT_EQ(state.Equilibrium(), (std::array{0.0, 0.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{0.0, 0.0, 0.0})) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.EnforcesNormalizedFreeResidual ResultRecovery.EnforcesNormalizedFreeResidual; assertion 9개 tests/unit/results/result_recovery_test.cpp ResultRecovery.EnforcesNormalizedFreeResidual 유지 원문 검사 body 및 assertion 동일. 1e96704cc4b176ba73193a9853cc81c56fd130dd92540b88fbc71bef07655032 1e96704cc4b176ba73193a9853cc81c56fd130dd92540b88fbc71bef07655032 EXPECT_DOUBLE_EQ(failed.InternalForce()[0U], 91.0) | EXPECT_DOUBLE_EQ(failed.Residual()[0U], 92.0) | EXPECT_DOUBLE_EQ(failed.Reaction()[0U], 93.0) | EXPECT_DOUBLE_EQ(failed.Reaction()[6U], 94.0) | EXPECT_EQ(failed.EndpointResults().size(), 1U) | ASSERT_TRUE(threshold_status.IsOk()) | EXPECT_NE(threshold_pass.Residual()[6U], 0.0) | EXPECT_DOUBLE_EQ(threshold_pass.Reaction()[6U], threshold_pass.Residual()[6U]) | EXPECT_TRUE( fesa::ResultRecovery::Recover(*zero_fixture.model, *zero_fixture.dofs, *zero_fixture.stiffness, zero_equilibrium) .IsOk()) EXPECT_DOUBLE_EQ(failed.InternalForce()[0U], 91.0) | EXPECT_DOUBLE_EQ(failed.Residual()[0U], 92.0) | EXPECT_DOUBLE_EQ(failed.Reaction()[0U], 93.0) | EXPECT_DOUBLE_EQ(failed.Reaction()[6U], 94.0) | EXPECT_EQ(failed.EndpointResults().size(), 1U) | ASSERT_TRUE(threshold_status.IsOk()) | EXPECT_NE(threshold_pass.Residual()[6U], 0.0) | EXPECT_DOUBLE_EQ(threshold_pass.Reaction()[6U], threshold_pass.Residual()[6U]) | EXPECT_TRUE( fesa::ResultRecovery::Recover(*zero_fixture.model, *zero_fixture.dofs, *zero_fixture.stiffness, zero_equilibrium) .IsOk()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.KeepsEndActionSectionAndGaussResultsDistinct ResultRecovery.KeepsEndActionSectionAndGaussResultsDistinct; assertion 10개 tests/unit/results/result_recovery_test.cpp ResultRecovery.KeepsEndActionSectionAndGaussResultsDistinct 유지 원문 검사 body 및 assertion 동일. 8202381a9f03eaa3d8d5a513ff7109d219c64045aa63639c3d67d6a1a1990838 8202381a9f03eaa3d8d5a513ff7109d219c64045aa63639c3d67d6a1a1990838 ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.EndpointResults().size(), 2U) | ASSERT_EQ(state.GaussResults().size(), 2U) | EXPECT_EQ(state.EndpointResults()[0U].endpoint, 0) | EXPECT_EQ(state.EndpointResults()[1U].endpoint, 1) | EXPECT_EQ(state.GaussResults()[0U].gauss_point, 1) | EXPECT_EQ(state.GaussResults()[1U].gauss_point, 2) | EXPECT_DOUBLE_EQ(state.EndpointResults()[0U].end_action[0U], -state.EndpointResults()[0U].section_resultant[0U]) | EXPECT_DOUBLE_EQ(state.EndpointResults()[1U].end_action[0U], state.EndpointResults()[1U].section_resultant[0U]) | EXPECT_DOUBLE_EQ(state.GaussResults()[0U].generalized_resultant[0U], state.EndpointResults()[0U].section_resultant[0U]) ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.EndpointResults().size(), 2U) | ASSERT_EQ(state.GaussResults().size(), 2U) | EXPECT_EQ(state.EndpointResults()[0U].endpoint, 0) | EXPECT_EQ(state.EndpointResults()[1U].endpoint, 1) | EXPECT_EQ(state.GaussResults()[0U].gauss_point, 1) | EXPECT_EQ(state.GaussResults()[1U].gauss_point, 2) | EXPECT_DOUBLE_EQ(state.EndpointResults()[0U].end_action[0U], -state.EndpointResults()[0U].section_resultant[0U]) | EXPECT_DOUBLE_EQ(state.EndpointResults()[1U].end_action[0U], state.EndpointResults()[1U].section_resultant[0U]) | EXPECT_DOUBLE_EQ(state.GaussResults()[0U].generalized_resultant[0U], state.EndpointResults()[0U].section_resultant[0U]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.MatchesAxialTorsionAndTwoPlaneEndSigns ResultRecovery.MatchesAxialTorsionAndTwoPlaneEndSigns; assertion 1개 tests/unit/results/result_recovery_test.cpp ResultRecovery.MatchesAxialTorsionAndTwoPlaneEndSigns 유지 원문 검사 body 및 assertion 동일. 180b227a99c3cf6f4fc40c9dafa7a98cafcc456ef146b083300d66db8187a98e 180b227a99c3cf6f4fc40c9dafa7a98cafcc456ef146b083300d66db8187a98e ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.OrdersStressPointsAndDefaultCentroid ResultRecovery.OrdersStressPointsAndDefaultCentroid; assertion 14개 tests/unit/results/result_recovery_test.cpp ResultRecovery.OrdersStressPointsAndDefaultCentroid 유지 원문 검사 body 및 assertion 동일. 27b9a3f6418687d3b2b4d657ae2c41df972cefae91ec474d642f4f8664dea77b 27b9a3f6418687d3b2b4d657ae2c41df972cefae91ec474d642f4f8664dea77b "ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.StressResults().size(), 4U) | EXPECT_EQ(row.element, 0U) | EXPECT_EQ(row.gauss_point, static_cast(gauss + 1U)) | EXPECT_EQ(row.section_point, point + 1U) | EXPECT_DOUBLE_EQ(row.x1, section_points[point][0U]) | EXPECT_DOUBLE_EQ(row.x2, section_points[point][1U]) | EXPECT_EQ(row.source, ""input"") | ASSERT_TRUE(fesa::ResultRecovery::Recover( *default_fixture.model, *default_fixture.dofs, *default_fixture.stiffness, default_state) .IsOk()) | ASSERT_EQ(default_state.StressResults().size(), 2U) | EXPECT_EQ(row.section_point, 0U) | EXPECT_DOUBLE_EQ(row.x1, 0.0) | EXPECT_DOUBLE_EQ(row.x2, 0.0) | EXPECT_EQ(row.source, ""fesa-default"")" "ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.StressResults().size(), 4U) | EXPECT_EQ(row.element, 0U) | EXPECT_EQ(row.gauss_point, static_cast(gauss + 1U)) | EXPECT_EQ(row.section_point, point + 1U) | EXPECT_DOUBLE_EQ(row.x1, section_points[point][0U]) | EXPECT_DOUBLE_EQ(row.x2, section_points[point][1U]) | EXPECT_EQ(row.source, ""input"") | ASSERT_TRUE(fesa::ResultRecovery::Recover( *default_fixture.model, *default_fixture.dofs, *default_fixture.stiffness, default_state) .IsOk()) | ASSERT_EQ(default_state.StressResults().size(), 2U) | EXPECT_EQ(row.section_point, 0U) | EXPECT_DOUBLE_EQ(row.x1, 0.0) | EXPECT_DOUBLE_EQ(row.x2, 0.0) | EXPECT_EQ(row.source, ""fesa-default"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.RequiresInteriorEndpointConsistencyWithoutAveraging ResultRecovery.RequiresInteriorEndpointConsistencyWithoutAveraging; assertion 10개 tests/unit/results/result_recovery_test.cpp ResultRecovery.RequiresInteriorEndpointConsistencyWithoutAveraging 유지 원문 검사 body 및 assertion 동일. aa4603901819c039277bbba8fe36bfcecb9264320ae115f7e9e2d4e6d873a1b1 aa4603901819c039277bbba8fe36bfcecb9264320ae115f7e9e2d4e6d873a1b1 ASSERT_TRUE(normalized.HasValue()) | ASSERT_EQ(normalized.Value().size(), 3U) | EXPECT_EQ(normalized.Value()[1U].representative_element, 0U) | EXPECT_DOUBLE_EQ(normalized.Value()[1U].section_resultant[0U], 5.0) | ASSERT_FALSE(mismatch.HasValue()) | ASSERT_FALSE(nonfinite.HasValue()) | ASSERT_FALSE(invalid_tolerance.HasValue()) | ASSERT_FALSE(loaded.HasValue()) | ASSERT_FALSE(reversed.HasValue()) | ASSERT_FALSE(jumped.HasValue()) ASSERT_TRUE(normalized.HasValue()) | ASSERT_EQ(normalized.Value().size(), 3U) | EXPECT_EQ(normalized.Value()[1U].representative_element, 0U) | EXPECT_DOUBLE_EQ(normalized.Value()[1U].section_resultant[0U], 5.0) | ASSERT_FALSE(mismatch.HasValue()) | ASSERT_FALSE(nonfinite.HasValue()) | ASSERT_FALSE(invalid_tolerance.HasValue()) | ASSERT_FALSE(loaded.HasValue()) | ASSERT_FALSE(reversed.HasValue()) | ASSERT_FALSE(jumped.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.RecoversShellRowsInStableElementAndGpOrder ResultRecovery.RecoversShellRowsInStableElementAndGpOrder; assertion 8개 tests/unit/results/result_recovery_test.cpp ResultRecovery.RecoversShellRowsInStableElementAndGpOrder 유지 원문 검사 body 및 assertion 동일. 9b8de6c23bd1314478b477a76540282c66318f375a6ea2d344cdf3521ba57569 9b8de6c23bd1314478b477a76540282c66318f375a6ea2d344cdf3521ba57569 ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(state.ShellResults().size(), 8U) | EXPECT_EQ(row.element, element) | EXPECT_EQ(row.location, locations[point]) | EXPECT_EQ(row.natural_coordinates, coordinates[point]) | EXPECT_EQ(row.local_frame, expected_frame) | EXPECT_NEAR(row.generalized_strain[component], expected_strain[component], 1.0e-12) | EXPECT_NEAR(row.section_resultant[component], expected_resultant[component], 1.0e-12) ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(state.ShellResults().size(), 8U) | EXPECT_EQ(row.element, element) | EXPECT_EQ(row.location, locations[point]) | EXPECT_EQ(row.natural_coordinates, coordinates[point]) | EXPECT_EQ(row.local_frame, expected_frame) | EXPECT_NEAR(row.generalized_strain[component], expected_strain[component], 1.0e-12) | EXPECT_NEAR(row.section_resultant[component], expected_resultant[component], 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.RecoversDirectBottomMiddleTopShellStress ResultRecovery.RecoversDirectBottomMiddleTopShellStress; assertion 5개 tests/unit/results/result_recovery_test.cpp ResultRecovery.RecoversDirectBottomMiddleTopShellStress 유지 원문 검사 body 및 assertion 동일. b3e0100d6b0502831741ebd4ba7e572f405e0fa496e7a864df24df615e6a681a b3e0100d6b0502831741ebd4ba7e572f405e0fa496e7a864df24df615e6a681a ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_EQ(row.stress[position].position, positions[position]) | EXPECT_DOUBLE_EQ(row.stress[position].zeta, zeta[position]) | EXPECT_NEAR(row.stress[position].components[component], expected_stress[position][component], 1.0e-12) ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_EQ(row.stress[position].position, positions[position]) | EXPECT_DOUBLE_EQ(row.stress[position].zeta, zeta[position]) | EXPECT_NEAR(row.stress[position].components[component], expected_stress[position][component], 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.SumsOnlyPhysicalShellEnergyInSourceOrder ResultRecovery.SumsOnlyPhysicalShellEnergyInSourceOrder; assertion 3개 tests/unit/results/result_recovery_test.cpp ResultRecovery.SumsOnlyPhysicalShellEnergyInSourceOrder 유지 원문 검사 body 및 assertion 동일. 00b5b24a4976ce98df0b3e5204d6c3e1295111aa571f737aa02b5c59d7b9c4d8 00b5b24a4976ce98df0b3e5204d6c3e1295111aa571f737aa02b5c59d7b9c4d8 ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | EXPECT_NEAR(state.PhysicalStrainEnergy(), 72.16, 1.0e-12) | EXPECT_GT(stabilized_energy, state.PhysicalStrainEnergy()) ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | EXPECT_NEAR(state.PhysicalStrainEnergy(), 72.16, 1.0e-12) | EXPECT_GT(stabilized_energy, state.PhysicalStrainEnergy()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.KeepsFullResidualAndComputesGlobalShellEquilibrium ResultRecovery.KeepsFullResidualAndComputesGlobalShellEquilibrium; assertion 11개 tests/unit/results/result_recovery_test.cpp ResultRecovery.KeepsFullResidualAndComputesGlobalShellEquilibrium 유지 원문 검사 body 및 assertion 동일. 26ba2a3d96f0e02c4b251de544b76a99d82d3346023d01b17cf80133ca3c067e 26ba2a3d96f0e02c4b251de544b76a99d82d3346023d01b17cf80133ca3c067e ASSERT_TRUE(full_load.HasValue()) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_DOUBLE_EQ(state.InternalForce()[full_dof], 0.0) | EXPECT_DOUBLE_EQ(state.Residual()[full_dof], -state.ExternalForce()[full_dof]) | EXPECT_DOUBLE_EQ(state.Reaction()[full_dof], state.Residual()[full_dof]) | EXPECT_EQ(state.Equilibrium(), (std::array{0.0, 0.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{0.0, 0.0, 0.0})) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*free_fixture.model, *free_fixture.dofs, *free_fixture.stiffness, perturbed) .IsOk()) | EXPECT_GT(metric, 0.0) | EXPECT_LE(metric, 1.0e-10) ASSERT_TRUE(full_load.HasValue()) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_DOUBLE_EQ(state.InternalForce()[full_dof], 0.0) | EXPECT_DOUBLE_EQ(state.Residual()[full_dof], -state.ExternalForce()[full_dof]) | EXPECT_DOUBLE_EQ(state.Reaction()[full_dof], state.Residual()[full_dof]) | EXPECT_EQ(state.Equilibrium(), (std::array{0.0, 0.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{0.0, 0.0, 0.0})) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*free_fixture.model, *free_fixture.dofs, *free_fixture.stiffness, perturbed) .IsOk()) | EXPECT_GT(metric, 0.0) | EXPECT_LE(metric, 1.0e-10) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.UsesGlobalOriginForShellMomentBalance ResultRecovery.UsesGlobalOriginForShellMomentBalance; assertion 5개 tests/unit/results/result_recovery_test.cpp ResultRecovery.UsesGlobalOriginForShellMomentBalance 유지 원문 검사 body 및 assertion 동일. 91bda66039ec2ad9dd1d554d2fec6de249e3b4327105a883b94dc64877e091b5 91bda66039ec2ad9dd1d554d2fec6de249e3b4327105a883b94dc64877e091b5 ASSERT_TRUE(fesa::ResultRecovery::Recover( *centered_fixture.model, *centered_fixture.dofs, *centered_fixture.stiffness, centered) .IsOk()) | ASSERT_TRUE(fesa::ResultRecovery::Recover( *translated_fixture.model, *translated_fixture.dofs, *translated_fixture.stiffness, translated) .IsOk()) | EXPECT_NEAR(translated.Equilibrium()[component], centered_force[component], 1.0e-12) | EXPECT_NEAR(translated.Equilibrium()[3U + component] - centered.Equilibrium()[3U + component], translated_moment_delta[component], 5.0e-12) | EXPECT_GT(std::abs(translated_moment_delta[2U]), 1.0e-9) ASSERT_TRUE(fesa::ResultRecovery::Recover( *centered_fixture.model, *centered_fixture.dofs, *centered_fixture.stiffness, centered) .IsOk()) | ASSERT_TRUE(fesa::ResultRecovery::Recover( *translated_fixture.model, *translated_fixture.dofs, *translated_fixture.stiffness, translated) .IsOk()) | EXPECT_NEAR(translated.Equilibrium()[component], centered_force[component], 1.0e-12) | EXPECT_NEAR(translated.Equilibrium()[3U + component] - centered.Equilibrium()[3U + component], translated_moment_delta[component], 5.0e-12) | EXPECT_GT(std::abs(translated_moment_delta[2U]), 1.0e-9) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.UsesScaleAwareShellMetricsAndRejectsExcess ResultRecovery.UsesScaleAwareShellMetricsAndRejectsExcess; assertion 6개 tests/unit/results/result_recovery_test.cpp ResultRecovery.UsesScaleAwareShellMetricsAndRejectsExcess 유지 원문 검사 body 및 assertion 동일. 1a8b5c99778239402aa2e0e22d9f40513451781fbc64d04853b30ab367af26a9 1a8b5c99778239402aa2e0e22d9f40513451781fbc64d04853b30ab367af26a9 ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, subunit) .IsOk()) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, large) .IsOk()) | EXPECT_GT(subunit.VerificationMetrics()[metric], 0.0) | EXPECT_GT(large.VerificationMetrics()[metric], 0.0) | EXPECT_NEAR(subunit.VerificationMetrics()[metric], large.VerificationMetrics()[metric], 1.0e-13) | ASSERT_TRUE(unbalanced_stiffness.HasValue()) ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, subunit) .IsOk()) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, large) .IsOk()) | EXPECT_GT(subunit.VerificationMetrics()[metric], 0.0) | EXPECT_GT(large.VerificationMetrics()[metric], 0.0) | EXPECT_NEAR(subunit.VerificationMetrics()[metric], large.VerificationMetrics()[metric], 1.0e-13) | ASSERT_TRUE(unbalanced_stiffness.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.InvalidLaterShellLeavesEntirePriorStateUnchanged ResultRecovery.InvalidLaterShellLeavesEntirePriorStateUnchanged; assertion 15개 tests/unit/results/result_recovery_test.cpp ResultRecovery.InvalidLaterShellLeavesEntirePriorStateUnchanged 유지 원문 검사 body 및 assertion 동일. cdc079f64476222e15342ee83a53f02ad11ba110191fcc7b334c22cccd03aaba cdc079f64476222e15342ee83a53f02ad11ba110191fcc7b334c22cccd03aaba ASSERT_TRUE(fesa::ResultRecovery::Recover(*valid_fixture.model, *valid_fixture.dofs, *valid_fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 8U) | ASSERT_TRUE(zero_stiffness.HasValue()) | EXPECT_DOUBLE_EQ(state.InternalForce()[0U], 91.0) | EXPECT_DOUBLE_EQ(state.Residual()[0U], 92.0) | EXPECT_DOUBLE_EQ(state.Reaction()[0U], 93.0) | EXPECT_EQ(state.EndpointResults().size(), 1U) | ASSERT_EQ(state.ShellResults().size(), 8U) | EXPECT_EQ(state.ShellResults().front().element, prior_first_row.element) | EXPECT_EQ(state.ShellResults().front().location, prior_first_row.location) | EXPECT_EQ(state.ShellResults().front().generalized_strain, prior_first_row.generalized_strain) | EXPECT_EQ(state.ShellResults().front().section_resultant, prior_first_row.section_resultant) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior_energy) | EXPECT_EQ(state.Equilibrium(), prior_equilibrium) | EXPECT_EQ(state.VerificationMetrics(), prior_metrics) ASSERT_TRUE(fesa::ResultRecovery::Recover(*valid_fixture.model, *valid_fixture.dofs, *valid_fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 8U) | ASSERT_TRUE(zero_stiffness.HasValue()) | EXPECT_DOUBLE_EQ(state.InternalForce()[0U], 91.0) | EXPECT_DOUBLE_EQ(state.Residual()[0U], 92.0) | EXPECT_DOUBLE_EQ(state.Reaction()[0U], 93.0) | EXPECT_EQ(state.EndpointResults().size(), 1U) | ASSERT_EQ(state.ShellResults().size(), 8U) | EXPECT_EQ(state.ShellResults().front().element, prior_first_row.element) | EXPECT_EQ(state.ShellResults().front().location, prior_first_row.location) | EXPECT_EQ(state.ShellResults().front().generalized_strain, prior_first_row.generalized_strain) | EXPECT_EQ(state.ShellResults().front().section_resultant, prior_first_row.section_resultant) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior_energy) | EXPECT_EQ(state.Equilibrium(), prior_equilibrium) | EXPECT_EQ(state.VerificationMetrics(), prior_metrics) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_test.cpp ResultRecovery.RealSolidPayloadFailsClosedAndPreservesLegacyState ResultRecovery.RealSolidPayloadFailsClosedAndPreservesLegacyState; assertion 9개 tests/unit/results/result_recovery_test.cpp ResultRecovery.RealSolidPayloadFailsClosedAndPreservesLegacyState 유지 원문 검사 body 및 assertion 동일. b141c6cecbdb1ae52c1c6d824f368ca38f6d56aef54f660dac80dd383e2dd22d b141c6cecbdb1ae52c1c6d824f368ca38f6d56aef54f660dac80dd383e2dd22d "ASSERT_TRUE(solid.HasValue()) | ASSERT_TRUE(recovered.HasValue()) | ASSERT_EQ(std::get(recovered.Value().payload) .rows.size(), 8U) | EXPECT_DOUBLE_EQ(state.Displacement()[0], 37.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[0], 19.0) | ASSERT_EQ(state.EndpointResults().size(), 2U) | EXPECT_DOUBLE_EQ(state.EndpointResults()[0].section_resultant[0], 11.0) | EXPECT_EQ(state.Identity().step_name, ""prior-step"") | EXPECT_EQ(state.Identity().frame_index, 9U)" "ASSERT_TRUE(solid.HasValue()) | ASSERT_TRUE(recovered.HasValue()) | ASSERT_EQ(std::get(recovered.Value().payload) .rows.size(), 8U) | EXPECT_DOUBLE_EQ(state.Displacement()[0], 37.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[0], 19.0) | ASSERT_EQ(state.EndpointResults().size(), 2U) | EXPECT_DOUBLE_EQ(state.EndpointResults()[0].section_resultant[0], 11.0) | EXPECT_EQ(state.Identity().step_name, ""prior-step"") | EXPECT_EQ(state.Identity().frame_index, 9U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Dev tests/unit/results/result_recovery_test.cpp support@1-486 helper/oracle/fixture/include/static assertion 구간: RecoveryFixture, ShellRecoveryFixture, FakeRecoveryElement, if, FullNodeComponents, MakeRuntimeLayout, MakeFakeBeamBundle, MakeFakeShellBundle, ExpectVectorEqual, MakeShellFixture, MakeShellPhysicalState, MakeAxialEquilibriumState, for, MakePatchState, ExpectStatusCode, ExpectScaledNear, MakeStationRows tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eb7cc3528f2f1b6ff89196b0aa6af7976ed75a3e979be52ea96ad2bdc358192a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_recovery_test.cpp support@536-537 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 212a78df598b1f4fe28beea4828a6b61a489b64fdcab0d4dac8e166621522216 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_recovery_test.cpp support@567-568 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 212a78df598b1f4fe28beea4828a6b61a489b64fdcab0d4dac8e166621522216 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_recovery_test.cpp support@873-874 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. be9695a1dfd710a92ce4bd7a28b2ff4722998e936a18a40b7ad3b0924d6db21b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_recovery_test.cpp support@922-923 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5b2f4ea71173df2f4c511be4321417651647b1f1d79e724c3bd99c3dc2ab8106 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_recovery_test.cpp support@950-951 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 77d8fb9f45d9b90eb930d818340de8b1fd2f4478fc8093bfbdeb0303184ca57f 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_recovery_test.cpp support@970-971 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 685f08a7676bc65e1f3c60ee0bba4f30043ab66b05381db014971b3a9376382e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_recovery_test.cpp support@1014-1015 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. edf7cabe953adfaded5d4481da649c54147c680bae27dfe27563b87d850789f0 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_recovery_test.cpp support@1058-1059 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 685f08a7676bc65e1f3c60ee0bba4f30043ab66b05381db014971b3a9376382e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/result_recovery_test.cpp support@1108-1109 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fa11ba7d5f866feb0c6e224aba5f382047c5f0c223ccedf90498730c1edf3fe8 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/unit/results/results_writer_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. dab162df80e0126149d6fd61a4d6a18b71935517fd6f4567da8ab998310ebdb2 afa4f1287a951645a1e9bd2c4cc5cb8603615670944362cf89f3780befd82dee 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/results/results_writer_test.cpp support@1-23 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/results_writer_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 33272c49028087f879e966999cc2bcc48bc7750881a4eee92a48d84618909e6c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 34개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eaebae0e4350e20ce66e07f762b7d2c867a06db4ad89afaac90c92bfc1d4ca61 eaebae0e4350e20ce66e07f762b7d2c867a06db4ad89afaac90c92bfc1d4ca61 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.SolvesN1AndRetainsBackendEvidence MklFeastEigenSolver.SolvesN1AndRetainsBackendEvidence; assertion 19개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.SolvesN1AndRetainsBackendEvidence 유지 원문 검사 body 및 assertion 동일. a5e6952b5e691cd318758a58e51cc8c0cadbf6992466d2919582d812f7efc0fa a5e6952b5e691cd318758a58e51cc8c0cadbf6992466d2919582d812f7efc0fa "EXPECT_EQ(result.Value().requested_modes, 1U) | ASSERT_EQ(result.Value().eigenvalues.size(), 1U) | EXPECT_NEAR(result.Value().eigenvalues[0U], 4.0, 1.0e-10) | EXPECT_DOUBLE_EQ(result.Value().operator_scale, 4.0) | EXPECT_EQ(result.Value().eigenvectors.Rows(), 1U) | EXPECT_EQ(result.Value().eigenvectors.Columns(), 1U) | EXPECT_EQ(result.Value().thread_count, 1U) | ASSERT_EQ(result.Value().base_fpm.size(), 128U) | EXPECT_EQ(result.Value().base_fpm[5U], 0) | ASSERT_FALSE(result.Value().backend_calls.empty()) | EXPECT_EQ(result.Value().backend_calls.front().purpose, ""total-enclosure"") | EXPECT_EQ(result.Value().backend_calls.back().kind, ""solve"") | EXPECT_TRUE(result.Value().backend_calls.back().count_available) | EXPECT_EQ(result.Value().backend_calls.back().count, result.Value().eigenvalues.size()) | EXPECT_TRUE(result.Value().backend_calls.back().loop_available) | EXPECT_TRUE(result.Value().backend_calls.back().epsout_available) | EXPECT_EQ(result.Value().backend_calls.back().outcome, ""accepted"") | EXPECT_EQ(result.Value().backend_calls.back().decision_reason, ""accepted"") | EXPECT_FALSE(result.Value().upper_search_termination.empty())" "EXPECT_EQ(result.Value().requested_modes, 1U) | ASSERT_EQ(result.Value().eigenvalues.size(), 1U) | EXPECT_NEAR(result.Value().eigenvalues[0U], 4.0, 1.0e-10) | EXPECT_DOUBLE_EQ(result.Value().operator_scale, 4.0) | EXPECT_EQ(result.Value().eigenvectors.Rows(), 1U) | EXPECT_EQ(result.Value().eigenvectors.Columns(), 1U) | EXPECT_EQ(result.Value().thread_count, 1U) | ASSERT_EQ(result.Value().base_fpm.size(), 128U) | EXPECT_EQ(result.Value().base_fpm[5U], 0) | ASSERT_FALSE(result.Value().backend_calls.empty()) | EXPECT_EQ(result.Value().backend_calls.front().purpose, ""total-enclosure"") | EXPECT_EQ(result.Value().backend_calls.back().kind, ""solve"") | EXPECT_TRUE(result.Value().backend_calls.back().count_available) | EXPECT_EQ(result.Value().backend_calls.back().count, result.Value().eigenvalues.size()) | EXPECT_TRUE(result.Value().backend_calls.back().loop_available) | EXPECT_TRUE(result.Value().backend_calls.back().epsout_available) | EXPECT_EQ(result.Value().backend_calls.back().outcome, ""accepted"") | EXPECT_EQ(result.Value().backend_calls.back().decision_reason, ""accepted"") | EXPECT_FALSE(result.Value().upper_search_termination.empty())" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.SolvesAllZeroWithExplicitPhysicalScale MklFeastEigenSolver.SolvesAllZeroWithExplicitPhysicalScale; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.SolvesAllZeroWithExplicitPhysicalScale 유지 원문 검사 body 및 assertion 동일. 9132a899409f4f8bb3a08c9f5c18c3f0ff1a4857bf1f98571340163e4553f691 9132a899409f4f8bb3a08c9f5c18c3f0ff1a4857bf1f98571340163e4553f691 ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_DOUBLE_EQ(result.Value().operator_scale, 7.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[0U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[1U], 0.0) ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_DOUBLE_EQ(result.Value().operator_scale, 7.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[0U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[1U], 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesRepeatedMultiplicityAndStableOrder MklFeastEigenSolver.PreservesRepeatedMultiplicityAndStableOrder; assertion 8개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesRepeatedMultiplicityAndStableOrder 유지 원문 검사 body 및 assertion 동일. 569416623ee5b90db9c898f92f589b8eb7bda065baaf7f777feb8245b14f19a8 569416623ee5b90db9c898f92f589b8eb7bda065baaf7f777feb8245b14f19a8 ASSERT_EQ(first.Value().eigenvalues.size(), 3U) | EXPECT_NEAR(first.Value().eigenvalues[0U], 2.0, 1.0e-10) | EXPECT_NEAR(first.Value().eigenvalues[1U], 2.0, 1.0e-10) | EXPECT_NEAR(first.Value().eigenvalues[2U], 5.0, 1.0e-10) | EXPECT_EQ(first.Value().column_ids, second.Value().column_ids) | EXPECT_EQ(first.Value().column_ids, third.Value().column_ids) | EXPECT_EQ(first.Value().eigenvalues, second.Value().eigenvalues) | EXPECT_EQ(first.Value().eigenvalues, third.Value().eigenvalues) ASSERT_EQ(first.Value().eigenvalues.size(), 3U) | EXPECT_NEAR(first.Value().eigenvalues[0U], 2.0, 1.0e-10) | EXPECT_NEAR(first.Value().eigenvalues[1U], 2.0, 1.0e-10) | EXPECT_NEAR(first.Value().eigenvalues[2U], 5.0, 1.0e-10) | EXPECT_EQ(first.Value().column_ids, second.Value().column_ids) | EXPECT_EQ(first.Value().column_ids, third.Value().column_ids) | EXPECT_EQ(first.Value().eigenvalues, second.Value().eigenvalues) | EXPECT_EQ(first.Value().eigenvalues, third.Value().eigenvalues) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.UsesGuardedPrefixWithoutDroppingRepeatedCluster MklFeastEigenSolver.UsesGuardedPrefixWithoutDroppingRepeatedCluster; assertion 6개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.UsesGuardedPrefixWithoutDroppingRepeatedCluster 유지 원문 검사 body 및 assertion 동일. 56315bd7fccef615e71cc32988f93ec30232ca90502bf20c0402180d597c0685 56315bd7fccef615e71cc32988f93ec30232ca90502bf20c0402180d597c0685 "EXPECT_GE(one_mode.Value().eigenvalues.size(), 40U) | EXPECT_GE(forty_first.Value().eigenvalues.size(), 41U) | EXPECT_NEAR(one_mode.Value().eigenvalues[index], 1.0, 1.0e-10) | EXPECT_NEAR(forty_first.Value().eigenvalues[40U], 2.0, 1.0e-10) | EXPECT_EQ(one_mode.Value().backend_calls.back().kind, ""solve"") | EXPECT_EQ(forty_first.Value().backend_calls.back().kind, ""solve"")" "EXPECT_GE(one_mode.Value().eigenvalues.size(), 40U) | EXPECT_GE(forty_first.Value().eigenvalues.size(), 41U) | EXPECT_NEAR(one_mode.Value().eigenvalues[index], 1.0, 1.0e-10) | EXPECT_NEAR(forty_first.Value().eigenvalues[40U], 2.0, 1.0e-10) | EXPECT_EQ(one_mode.Value().backend_calls.back().kind, ""solve"") | EXPECT_EQ(forty_first.Value().backend_calls.back().kind, ""solve"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsSignificantNegativeSpectrum MklFeastEigenSolver.RejectsSignificantNegativeSpectrum; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsSignificantNegativeSpectrum 유지 원문 검사 body 및 assertion 동일. 0c5373e53f768aa91e99580e4d48e737a8b3ed32c98f141d8c4d2faa02a523d6 0c5373e53f768aa91e99580e4d48e737a8b3ed32c98f141d8c4d2faa02a523d6 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""negative-eigenvalue-spectrum"")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""negative-eigenvalue-spectrum"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.KeepsCloseDistinctModesSeparated MklFeastEigenSolver.KeepsCloseDistinctModesSeparated; assertion 5개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.KeepsCloseDistinctModesSeparated 유지 원문 검사 body 및 assertion 동일. 14aacceeae53faa7a062beccd27707e37541fd4a20e7ccd64ad38f6bbacf57f0 14aacceeae53faa7a062beccd27707e37541fd4a20e7ccd64ad38f6bbacf57f0 ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(result.Value().eigenvalues[0U], 1.0, 1.0e-10) | EXPECT_NEAR(result.Value().eigenvalues[1U], 1.001, 1.0e-10) | EXPECT_NEAR(std::abs(result.Value().eigenvectors(0U, 0U)), 1.0, 1.0e-10) | EXPECT_NEAR(std::abs(result.Value().eigenvectors(1U, 1U)), 1.0, 1.0e-10) ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(result.Value().eigenvalues[0U], 1.0, 1.0e-10) | EXPECT_NEAR(result.Value().eigenvalues[1U], 1.001, 1.0e-10) | EXPECT_NEAR(std::abs(result.Value().eigenvectors(0U, 0U)), 1.0, 1.0e-10) | EXPECT_NEAR(std::abs(result.Value().eigenvectors(1U, 1U)), 1.0, 1.0e-10) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RestoresCallingThreadLocalSetting MklFeastEigenSolver.RestoresCallingThreadLocalSetting; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RestoresCallingThreadLocalSetting 유지 원문 검사 body 및 assertion 동일. 83ad3e485cd51a75937fe2c31aa9ca90a33b7dddd67acdfeea5e2c8b21a3bb7f 83ad3e485cd51a75937fe2c31aa9ca90a33b7dddd67acdfeea5e2c8b21a3bb7f EXPECT_EQ(restored, 2) EXPECT_EQ(restored, 2) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsInvalidRequestAndZeroScale MklFeastEigenSolver.RejectsInvalidRequestAndZeroScale; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsInvalidRequestAndZeroScale 유지 원문 검사 body 및 assertion 동일. 8689fda7e7994805ac76572196bc34cf736664e5b643b71233cacc3e6a29d13b 8689fda7e7994805ac76572196bc34cf736664e5b643b71233cacc3e6a29d13b "ASSERT_FALSE(zero_request.HasValue()) | EXPECT_EQ(zero_request.GetStatus().Diagnostics()[0U].code, ""feast-invalid-dimension"") | ASSERT_FALSE(invalid_scale.HasValue()) | EXPECT_EQ(invalid_scale.GetStatus().Diagnostics()[0U].code, ""feast-invalid-zero-scale"")" "ASSERT_FALSE(zero_request.HasValue()) | EXPECT_EQ(zero_request.GetStatus().Diagnostics()[0U].code, ""feast-invalid-dimension"") | ASSERT_FALSE(invalid_scale.HasValue()) | EXPECT_EQ(invalid_scale.GetStatus().Diagnostics()[0U].code, ""feast-invalid-zero-scale"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesLowestPrefixForZeroAndPositiveSpectra MklFeastEigenSolver.PreservesLowestPrefixForZeroAndPositiveSpectra; assertion 3개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesLowestPrefixForZeroAndPositiveSpectra 유지 원문 검사 body 및 assertion 동일. aa89c5b6a3123bea8bd03219a4334166bf4f607ff70abfab02cb536b18768f5d aa89c5b6a3123bea8bd03219a4334166bf4f607ff70abfab02cb536b18768f5d ASSERT_TRUE(result.HasValue()) | ASSERT_GE(result.Value().eigenvalues.size(), requested) | EXPECT_NEAR(result.Value().eigenvalues[i], spectrum[i], 1e-10) ASSERT_TRUE(result.HasValue()) | ASSERT_GE(result.Value().eigenvalues.size(), requested) | EXPECT_NEAR(result.Value().eigenvalues[i], spectrum[i], 1e-10) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.ResolvesCloseDistinctSpectrumAfterGivensCongruence MklFeastEigenSolver.ResolvesCloseDistinctSpectrumAfterGivensCongruence; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.ResolvesCloseDistinctSpectrumAfterGivensCongruence 유지 원문 검사 body 및 assertion 동일. b173141930f9c7d787cee4d5715c4f4fcf346e6fe947e9e8b1fa60784764641d b173141930f9c7d787cee4d5715c4f4fcf346e6fe947e9e8b1fa60784764641d ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().eigenvalues.size(), 4U) | EXPECT_NEAR(result.Value().eigenvalues[i], spectrum[i], 1e-12) | EXPECT_GT(result.Value().eigenvalues[1U] - result.Value().eigenvalues[0U], 1e-9) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().eigenvalues.size(), 4U) | EXPECT_NEAR(result.Value().eigenvalues[i], spectrum[i], 1e-12) | EXPECT_GT(result.Value().eigenvalues[1U] - result.Value().eigenvalues[0U], 1e-9) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsFatalCountStatusWithoutRetry MklFeastEigenSolver.RejectsFatalCountStatusWithoutRetry; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsFatalCountStatusWithoutRetry 유지 원문 검사 body 및 assertion 동일. 23ef85953cd9408cae46249383f429500ae4234067387d6c8d0a3aa9eb5b96bf 23ef85953cd9408cae46249383f429500ae4234067387d6c8d0a3aa9eb5b96bf EXPECT_EQ(hook_calls, 1U) EXPECT_EQ(hook_calls, 1U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.BoundsCountCallsAndUpperSearchReservations MklFeastEigenSolver.BoundsCountCallsAndUpperSearchReservations; assertion 6개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.BoundsCountCallsAndUpperSearchReservations 유지 원문 검사 body 및 assertion 동일. 2e3d9cc28ce1c4d1909d0afc2950f88e8be5ba66d8f4344829561fe06601e8ca 2e3d9cc28ce1c4d1909d0afc2950f88e8be5ba66d8f4344829561fe06601e8ca EXPECT_TRUE(fesa::internal::CanCallFeast(511U)) | EXPECT_FALSE(fesa::internal::CanCallFeast(512U)) | EXPECT_FALSE(fesa::internal::CanCallFeast(kMaximum)) | EXPECT_TRUE(fesa::internal::CanStartUpperCandidate(363U)) | EXPECT_FALSE(fesa::internal::CanStartUpperCandidate(364U)) | EXPECT_FALSE(fesa::internal::CanStartUpperCandidate(kMaximum)) EXPECT_TRUE(fesa::internal::CanCallFeast(511U)) | EXPECT_FALSE(fesa::internal::CanCallFeast(512U)) | EXPECT_FALSE(fesa::internal::CanCallFeast(kMaximum)) | EXPECT_TRUE(fesa::internal::CanStartUpperCandidate(363U)) | EXPECT_FALSE(fesa::internal::CanStartUpperCandidate(364U)) | EXPECT_FALSE(fesa::internal::CanStartUpperCandidate(kMaximum)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.BoundsPrivateWorkspaceProductsBeforeAllocation MklFeastEigenSolver.BoundsPrivateWorkspaceProductsBeforeAllocation; assertion 7개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.BoundsPrivateWorkspaceProductsBeforeAllocation 유지 원문 검사 body 및 assertion 동일. 69110366294c0c4a271e8295fa2352576136369334a1db1c9346511d5496e742 69110366294c0c4a271e8295fa2352576136369334a1db1c9346511d5496e742 EXPECT_TRUE(fesa::internal::ProductFits(0U, kMaximum)) | EXPECT_TRUE(fesa::internal::ProductFits(1U, kMaximum)) | EXPECT_FALSE(fesa::internal::ProductFits(kMaximum, 2U)) | EXPECT_TRUE(fesa::internal::FitsDoubleStorage(0U)) | EXPECT_TRUE(fesa::internal::FitsDoubleStorage(storage_limit)) | EXPECT_FALSE(fesa::internal::FitsDoubleStorage(kMaximum)) | EXPECT_FALSE(fesa::internal::FitsDoubleStorage(storage_limit + 1U)) EXPECT_TRUE(fesa::internal::ProductFits(0U, kMaximum)) | EXPECT_TRUE(fesa::internal::ProductFits(1U, kMaximum)) | EXPECT_FALSE(fesa::internal::ProductFits(kMaximum, 2U)) | EXPECT_TRUE(fesa::internal::FitsDoubleStorage(0U)) | EXPECT_TRUE(fesa::internal::FitsDoubleStorage(storage_limit)) | EXPECT_FALSE(fesa::internal::FitsDoubleStorage(kMaximum)) | EXPECT_FALSE(fesa::internal::FitsDoubleStorage(storage_limit + 1U)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.TranslatesCountWorkspaceAllocationFailure MklFeastEigenSolver.TranslatesCountWorkspaceAllocationFailure; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.TranslatesCountWorkspaceAllocationFailure 유지 원문 검사 body 및 assertion 동일. 6653c1ccf3f12cf12023f4ed701c5a2dc2eac565ab6e4ab2da403e6f3a9dae65 6653c1ccf3f12cf12023f4ed701c5a2dc2eac565ab6e4ab2da403e6f3a9dae65 해당 없음 해당 없음 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.TranslatesSolveWorkspaceAllocationFailure MklFeastEigenSolver.TranslatesSolveWorkspaceAllocationFailure; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.TranslatesSolveWorkspaceAllocationFailure 유지 원문 검사 body 및 assertion 동일. e6817b904d15200de1dc8c70b40668142140bdc4adb47c239509b16c4f911842 e6817b904d15200de1dc8c70b40668142140bdc4adb47c239509b16c4f911842 해당 없음 해당 없음 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.StopsInitialInfoOneAfterThreeCountCalls MklFeastEigenSolver.StopsInitialInfoOneAfterThreeCountCalls; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.StopsInitialInfoOneAfterThreeCountCalls 유지 원문 검사 body 및 assertion 동일. 10672f977ec5bdc9692c2dfabec9acb4435e639b18d49cc197a2ccea7b53ff97 10672f977ec5bdc9692c2dfabec9acb4435e639b18d49cc197a2ccea7b53ff97 EXPECT_EQ(count_calls, 3U) EXPECT_EQ(count_calls, 3U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsFinalCountHistoryMismatch MklFeastEigenSolver.RejectsFinalCountHistoryMismatch; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsFinalCountHistoryMismatch 유지 원문 검사 body 및 assertion 동일. caea386d5db1999417f7d1140ee543ea3a5cd1398399815033afd2f1b45ebcd6 caea386d5db1999417f7d1140ee543ea3a5cd1398399815033afd2f1b45ebcd6 해당 없음 해당 없음 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsDecreasingCountAcrossDistinctUpperGuards MklFeastEigenSolver.RejectsDecreasingCountAcrossDistinctUpperGuards; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsDecreasingCountAcrossDistinctUpperGuards 유지 원문 검사 body 및 assertion 동일. 1c401c1682daa62d7105287575a7eac825c905e53825c3ea124477f3a823be7b 1c401c1682daa62d7105287575a7eac825c905e53825c3ea124477f3a823be7b 해당 없음 해당 없음 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesRawNegativeBoundaryAndRejectsBelowIt MklFeastEigenSolver.PreservesRawNegativeBoundaryAndRejectsBelowIt; assertion 5개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesRawNegativeBoundaryAndRejectsBelowIt 유지 원문 검사 body 및 assertion 동일. b6c6927ededce6c56a882de187bb35bbfa8c258b533098f90c7e54e6f0d5a324 b6c6927ededce6c56a882de187bb35bbfa8c258b533098f90c7e54e6f0d5a324 ASSERT_EQ(outputs.eigenvalues.size(), 3U) | ASSERT_EQ(result.Value().eigenvalues.size(), 3U) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[0U], negative) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[1U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[2U], 1.0) ASSERT_EQ(outputs.eigenvalues.size(), 3U) | ASSERT_EQ(result.Value().eigenvalues.size(), 3U) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[0U], negative) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[1U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[2U], 1.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.DoesNotRepeatUnchangedSolveAfterReturnedMismatch MklFeastEigenSolver.DoesNotRepeatUnchangedSolveAfterReturnedMismatch; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.DoesNotRepeatUnchangedSolveAfterReturnedMismatch 유지 원문 검사 body 및 assertion 동일. bdfe92002dfd17522f8dd7038fd290fbe28018d76ea65976ca086695a056b013 bdfe92002dfd17522f8dd7038fd290fbe28018d76ea65976ca086695a056b013 EXPECT_EQ(solve_calls, 1U) EXPECT_EQ(solve_calls, 1U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RetriesSolveInfoTwoOnlyWithLargerInterval MklFeastEigenSolver.RetriesSolveInfoTwoOnlyWithLargerInterval; assertion 2개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RetriesSolveInfoTwoOnlyWithLargerInterval 유지 원문 검사 body 및 assertion 동일. bdab428a83baf0a5524548d01ca60a6c4b4383aad9358a756131de3b356e0d5a bdab428a83baf0a5524548d01ca60a6c4b4383aad9358a756131de3b356e0d5a ASSERT_EQ(solve_uppers.size(), 2U) | EXPECT_LT(solve_uppers[0U], solve_uppers[1U]) ASSERT_EQ(solve_uppers.size(), 2U) | EXPECT_LT(solve_uppers[0U], solve_uppers[1U]) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsNonfiniteSolveOutputWithoutRetry MklFeastEigenSolver.RejectsNonfiniteSolveOutputWithoutRetry; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsNonfiniteSolveOutputWithoutRetry 유지 원문 검사 body 및 assertion 동일. 53d5c4a3981593c4552579e14bee4aaf3fd5e74c49b9fc74df3191bd3be660ad 53d5c4a3981593c4552579e14bee4aaf3fd5e74c49b9fc74df3191bd3be660ad EXPECT_EQ(solve_calls, 1U) EXPECT_EQ(solve_calls, 1U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsResidualFailureWithoutSolveRetry MklFeastEigenSolver.RejectsResidualFailureWithoutSolveRetry; assertion 2개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsResidualFailureWithoutSolveRetry 유지 원문 검사 body 및 assertion 동일. 5a606ee1a05bafe19f30255199a3379d849a730c837ae9e2d5b53c4a26c4aa91 5a606ee1a05bafe19f30255199a3379d849a730c837ae9e2d5b53c4a26c4aa91 "EXPECT_NE(result.GetStatus().Diagnostics().front().message.find( ""Independent whitened residual exceeds""), std::string::npos) | EXPECT_EQ(solve_calls, 1U)" "EXPECT_NE(result.GetStatus().Diagnostics().front().message.find( ""Independent whitened residual exceeds""), std::string::npos) | EXPECT_EQ(solve_calls, 1U)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsNonfiniteVectorAndEpsoutWithoutRetry MklFeastEigenSolver.RejectsNonfiniteVectorAndEpsoutWithoutRetry; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsNonfiniteVectorAndEpsoutWithoutRetry 유지 원문 검사 body 및 assertion 동일. 12662d8693c0d8389fc39fd1558d7d26688e89a1d30ccb5cd7ace90035fe7f3f 12662d8693c0d8389fc39fd1558d7d26688e89a1d30ccb5cd7ace90035fe7f3f EXPECT_EQ(solve_calls, 1U) EXPECT_EQ(solve_calls, 1U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsGramFailureWithoutSolveRetry MklFeastEigenSolver.RejectsGramFailureWithoutSolveRetry; assertion 2개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsGramFailureWithoutSolveRetry 유지 원문 검사 body 및 assertion 동일. 8e1f6270e69957b1ff42bd0c5c39722bbf98eb6392b7c4dea913ace4f900787a 8e1f6270e69957b1ff42bd0c5c39722bbf98eb6392b7c4dea913ace4f900787a ASSERT_EQ(outputs.vectors.size(), 4U) | EXPECT_EQ(solve_calls, 1U) ASSERT_EQ(outputs.vectors.size(), 4U) | EXPECT_EQ(solve_calls, 1U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.UsesCertifiedEnclosureAfterOptionalInfoOne MklFeastEigenSolver.UsesCertifiedEnclosureAfterOptionalInfoOne; assertion 3개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.UsesCertifiedEnclosureAfterOptionalInfoOne 유지 원문 검사 body 및 assertion 동일. 9cf4debc6123a3d0b3c8e8be2d275202c80cc9698fdc2583b3d3038995a98c3a 9cf4debc6123a3d0b3c8e8be2d275202c80cc9698fdc2583b3d3038995a98c3a "EXPECT_EQ(result.Value().upper_search_termination, ""optional-status"") | ASSERT_GE(result.Value().backend_calls.size(), 2U) | EXPECT_EQ(result.Value().backend_calls[1U].outcome, ""optional-abandoned"")" "EXPECT_EQ(result.Value().upper_search_termination, ""optional-status"") | ASSERT_GE(result.Value().backend_calls.size(), 2U) | EXPECT_EQ(result.Value().backend_calls[1U].outcome, ""optional-abandoned"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.GenuineNonDiagonalMassPencil MklFeastGeneralized.GenuineNonDiagonalMassPencil; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.GenuineNonDiagonalMassPencil 유지 원문 검사 body 및 assertion 동일. 72baededa1bfdef264afcc9f4314a0886488e2c44bfe259c7ca37bfdb7de2118 72baededa1bfdef264afcc9f4314a0886488e2c44bfe259c7ca37bfdb7de2118 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(result.Value().eigenvalues[0], 8.0 / 3.0, 1e-11) | EXPECT_NEAR(result.Value().eigenvalues[1], 4.0, 1e-11) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(result.Value().eigenvalues[0], 8.0 / 3.0, 1e-11) | EXPECT_NEAR(result.Value().eigenvalues[1], 4.0, 1e-11) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.RejectsIndefiniteMassAndInvalidBound MklFeastGeneralized.RejectsIndefiniteMassAndInvalidBound; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.RejectsIndefiniteMassAndInvalidBound 유지 원문 검사 body 및 assertion 동일. 5e8a9f7f9837fd0d117abee37fc9630d32c9c751a38c6163015a164f6b405ac3 5e8a9f7f9837fd0d117abee37fc9630d32c9c751a38c6163015a164f6b405ac3 해당 없음 해당 없음 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.ValidatesPairsBeyondRequestedPrefix MklFeastGeneralized.ValidatesPairsBeyondRequestedPrefix; assertion 2개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.ValidatesPairsBeyondRequestedPrefix 유지 원문 검사 body 및 assertion 동일. 7f4b3d16aa4060b46421f1418006fddc70e34df70fd0d5e6186a7ca38a9e0841 7f4b3d16aa4060b46421f1418006fddc70e34df70fd0d5e6186a7ca38a9e0841 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().eigenvalues.size(), 3U) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().eigenvalues.size(), 3U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.RejectsCorruptUnselectedDirectionAndFatalCount MklFeastGeneralized.RejectsCorruptUnselectedDirectionAndFatalCount; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.RejectsCorruptUnselectedDirectionAndFatalCount 유지 원문 검사 body 및 assertion 동일. eefa09383f9cc94be8f9bf448ec69929396275705094abb5fa2355aeb2251473 eefa09383f9cc94be8f9bf448ec69929396275705094abb5fa2355aeb2251473 "EXPECT_NE( result.GetStatus().Diagnostics()[0].message.find(""Backend calls=""), std::string::npos)" "EXPECT_NE( result.GetStatus().Diagnostics()[0].message.find(""Backend calls=""), std::string::npos)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.LowestPrefixPreservesRepeatedBoundary MklFeastGeneralized.LowestPrefixPreservesRepeatedBoundary; assertion 3개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.LowestPrefixPreservesRepeatedBoundary 유지 원문 검사 body 및 assertion 동일. 2019942540740122b91b048dbd378523a47a784cfe5f3b959078ebad7131af05 2019942540740122b91b048dbd378523a47a784cfe5f3b959078ebad7131af05 ASSERT_TRUE(result.HasValue()) | ASSERT_GE(result.Value().eigenvalues.size(), 5U) | EXPECT_NEAR(result.Value().eigenvalues[i], 1.0, 1e-11) ASSERT_TRUE(result.HasValue()) | ASSERT_GE(result.Value().eigenvalues.size(), 5U) | EXPECT_NEAR(result.Value().eigenvalues[i], 1.0, 1e-11) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.AllocationAndCountMismatchFailClosed MklFeastGeneralized.AllocationAndCountMismatchFailClosed; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.AllocationAndCountMismatchFailClosed 유지 원문 검사 body 및 assertion 동일. 1271827bfda37b6a706c22d62f642e48bdc6e3435a5bde4f99371889c0656158 1271827bfda37b6a706c22d62f642e48bdc6e3435a5bde4f99371889c0656158 해당 없음 해당 없음 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.GeneralizedRetryRetainsCertifiedCountTrace MklFeastGeneralized.GeneralizedRetryRetainsCertifiedCountTrace; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.GeneralizedRetryRetainsCertifiedCountTrace 유지 원문 검사 body 및 assertion 동일. 658084530e78efa037f951551979e1681c86fa168014db6a798207bfee031bcf 658084530e78efa037f951551979e1681c86fa168014db6a798207bfee031bcf ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(injected) | EXPECT_NEAR(result.Value().eigenvalues[0], 1.0, 1e-11) | EXPECT_TRUE(retried) ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(injected) | EXPECT_NEAR(result.Value().eigenvalues[0], 1.0, 1e-11) | EXPECT_TRUE(retried) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.LowerPrefixCountsProveNoOmittedModesAndRejectNegative MklFeastGeneralized.LowerPrefixCountsProveNoOmittedModesAndRejectNegative; assertion 8개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.LowerPrefixCountsProveNoOmittedModesAndRejectNegative 유지 원문 검사 body 및 assertion 동일. 8b1ef84c46097b604c26548141d8285b664a47537ed1df79c068f5623f7018f3 8b1ef84c46097b604c26548141d8285b664a47537ed1df79c068f5623f7018f3 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(call.info, 0) | EXPECT_TRUE(call.count_available) | EXPECT_EQ(call.count, 0U) | EXPECT_LT(call.upper, 0.0) | EXPECT_LT(call.lower, call.upper) | EXPECT_EQ(guards, 3U) | EXPECT_NEAR(result.Value().eigenvalues[0], 0.0, 1e-12) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(call.info, 0) | EXPECT_TRUE(call.count_available) | EXPECT_EQ(call.count, 0U) | EXPECT_LT(call.upper, 0.0) | EXPECT_LT(call.lower, call.upper) | EXPECT_EQ(guards, 3U) | EXPECT_NEAR(result.Value().eigenvalues[0], 0.0, 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Dev tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp support@1-115 helper/oracle/fixture/include/static assertion 구간: MakeDenseCsr, ExpectUnitGram, RequireSuccess, ExpectFailureCode, ExpectSameBackendCalls, ExpectSameProjector, ExpectThreadSettingRestored tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 91b74d929d69e24c9a0382a7498e011486ba87f933cd35ca4a433e1ceadb2a0c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Dev tests/unit/solvers/linear/linear_solver_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/solvers/linear/linear_solver_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f8ac257d9699d9c10673fcf5d315a0be18b2a37c88a245a16683b2cdca2bf6b3 a5aa18ef7c3aedac56b92f87740e0fa5b59acdb8ccd714ae16cc54b732ddcee0 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/linear_solver_test.cpp MklPardisoSolver.RejectsInvalidCsrStateAndDimensions MklPardisoSolver.RejectsInvalidCsrStateAndDimensions; assertion 20개 tests/unit/solvers/linear/linear_solver_test.cpp MklPardisoSolver.RejectsInvalidCsrStateAndDimensions 유지 원문 검사 body 및 assertion 동일. 026abcfd859f19c844cf0c0ebd698138e53fb66f1846dae2c7bf8e387db960f1 026abcfd859f19c844cf0c0ebd698138e53fb66f1846dae2c7bf8e387db960f1 "EXPECT_EQ(before_factorize.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(untouched[0U], 17.0) | EXPECT_DOUBLE_EQ(untouched[1U], -4.0) | ASSERT_TRUE(solver.Factorize(empty).IsOk()) | EXPECT_TRUE(solver.Solve(fesa::Vector{0U}, empty_solution).IsOk()) | EXPECT_EQ(empty_solution.Size(), 0U) | ASSERT_TRUE(solver.Factorize(spd).IsOk()) | ASSERT_TRUE(solver.Solve(fesa::Vector{2U, 1.0}, solution).IsOk()) | EXPECT_NEAR(solution[0U], 2.0 / 11.0, 1.0e-14) | EXPECT_NEAR(solution[1U], 3.0 / 11.0, 1.0e-14) | EXPECT_DOUBLE_EQ(solution[0U], solved_first) | EXPECT_DOUBLE_EQ(solution[1U], solved_second) | EXPECT_DOUBLE_EQ(wrong_solution[0U], 41.0) | EXPECT_EQ(rectangular_status.Diagnostics().front().code, ""solver-matrix-not-square"") | EXPECT_FALSE(invalid_csr.HasValue()) | EXPECT_EQ(nonsymmetric_status.Diagnostics().front().code, ""solver-matrix-not-symmetric"") | ASSERT_FALSE(scaled_nonsymmetric_status.IsOk()) | EXPECT_EQ(scaled_nonsymmetric_status.Diagnostics().front().code, ""solver-matrix-not-symmetric"") | ASSERT_TRUE(no_diagonal.HasValue()) | EXPECT_EQ(no_diagonal_status.Diagnostics().front().code, ""solver-missing-diagonal"")" "EXPECT_EQ(before_factorize.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(untouched[0U], 17.0) | EXPECT_DOUBLE_EQ(untouched[1U], -4.0) | ASSERT_TRUE(solver.Factorize(empty).IsOk()) | EXPECT_TRUE(solver.Solve(fesa::Vector{0U}, empty_solution).IsOk()) | EXPECT_EQ(empty_solution.Size(), 0U) | ASSERT_TRUE(solver.Factorize(spd).IsOk()) | ASSERT_TRUE(solver.Solve(fesa::Vector{2U, 1.0}, solution).IsOk()) | EXPECT_NEAR(solution[0U], 2.0 / 11.0, 1.0e-14) | EXPECT_NEAR(solution[1U], 3.0 / 11.0, 1.0e-14) | EXPECT_DOUBLE_EQ(solution[0U], solved_first) | EXPECT_DOUBLE_EQ(solution[1U], solved_second) | EXPECT_DOUBLE_EQ(wrong_solution[0U], 41.0) | EXPECT_EQ(rectangular_status.Diagnostics().front().code, ""solver-matrix-not-square"") | EXPECT_FALSE(invalid_csr.HasValue()) | EXPECT_EQ(nonsymmetric_status.Diagnostics().front().code, ""solver-matrix-not-symmetric"") | ASSERT_FALSE(scaled_nonsymmetric_status.IsOk()) | EXPECT_EQ(scaled_nonsymmetric_status.Diagnostics().front().code, ""solver-matrix-not-symmetric"") | ASSERT_TRUE(no_diagonal.HasValue()) | EXPECT_EQ(no_diagonal_status.Diagnostics().front().code, ""solver-missing-diagonal"")" 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/linear_solver_test.cpp support@1-47 helper/oracle/fixture/include/static assertion 구간: MakeDenseCsr, ExpectSolverFailure tests/unit/solvers/linear/linear_solver_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ace53a49bc5a95e9e3410de2815ce48ac5f275a180da13873590ccdcd1bf2018 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b278df4853fd35b4a609df18ba48bf7d27eeba7a88d58b7ff00d759f5461ccff b278df4853fd35b4a609df18ba48bf7d27eeba7a88d58b7ff00d759f5461ccff 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.SolvesKnownSpdWithNormalizedResidual MklPardisoSolver.SolvesKnownSpdWithNormalizedResidual; assertion 4개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.SolvesKnownSpdWithNormalizedResidual 유지 원문 검사 body 및 assertion 동일. 0dd88a78ef239ae0d316f9fc4ecbfe7e6baba99a61eda7cc8f42e6616c09915c 0dd88a78ef239ae0d316f9fc4ecbfe7e6baba99a61eda7cc8f42e6616c09915c ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs, solution).IsOk()) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs, solution).IsOk()) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ReusesOneFactorizationForRepeatedRhs MklPardisoSolver.ReusesOneFactorizationForRepeatedRhs; assertion 7개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ReusesOneFactorizationForRepeatedRhs 유지 원문 검사 body 및 assertion 동일. 0d5dd1f6b920c6201997eef647077b4039020a9adaa93483733c395ce55ecaed 0d5dd1f6b920c6201997eef647077b4039020a9adaa93483733c395ce55ecaed ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs_first, first).IsOk()) | ASSERT_TRUE(solver.Solve(rhs_second, second).IsOk()) | EXPECT_LE(RelativeError(first, expected_first), 1.0e-9) | EXPECT_LE(RelativeError(second, expected_second), 1.0e-9) | EXPECT_LE(NormalizedResidual(matrix, first, rhs_first), 1.0e-10) | EXPECT_LE(NormalizedResidual(matrix, second, rhs_second), 1.0e-10) ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs_first, first).IsOk()) | ASSERT_TRUE(solver.Solve(rhs_second, second).IsOk()) | EXPECT_LE(RelativeError(first, expected_first), 1.0e-9) | EXPECT_LE(RelativeError(second, expected_second), 1.0e-9) | EXPECT_LE(NormalizedResidual(matrix, first, rhs_first), 1.0e-10) | EXPECT_LE(NormalizedResidual(matrix, second, rhs_second), 1.0e-10) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.SingleEquationPolicyPreservesLifecycleAndConcurrentTls MklPardisoSolver.SingleEquationPolicyPreservesLifecycleAndConcurrentTls; assertion 2개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.SingleEquationPolicyPreservesLifecycleAndConcurrentTls 유지 원문 검사 body 및 assertion 동일. 610428d0485f986f40ec3a364113402a796b3d858236de908e2542bf5ebcc35f 610428d0485f986f40ec3a364113402a796b3d858236de908e2542bf5ebcc35f EXPECT_TRUE(first.get()) | EXPECT_TRUE(second.get()) EXPECT_TRUE(first.get()) | EXPECT_TRUE(second.get()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.StillRejectsNonsymmetricPublicCsr MklPardisoSolver.StillRejectsNonsymmetricPublicCsr; assertion 1개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.StillRejectsNonsymmetricPublicCsr 유지 원문 검사 body 및 assertion 동일. 2d3aeaa63b4de4a45b8b553f51fe2223bb64e4c36e107c154ea333382d3ef052 2d3aeaa63b4de4a45b8b553f51fe2223bb64e4c36e107c154ea333382d3ef052 "EXPECT_EQ(status.Diagnostics()[0U].code, ""solver-matrix-not-symmetric"")" "EXPECT_EQ(status.Diagnostics()[0U].code, ""solver-matrix-not-symmetric"")" 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.RefactorizesWithoutLeakingState MklPardisoSolver.RefactorizesWithoutLeakingState; assertion 7개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.RefactorizesWithoutLeakingState 유지 원문 검사 body 및 assertion 동일. 72be7b9a87610a6d9dcb1324dc15b4d400c837e097dee540c00dd3e510921f35 72be7b9a87610a6d9dcb1324dc15b4d400c837e097dee540c00dd3e510921f35 ASSERT_TRUE(solver.Factorize(first_matrix).IsOk()) | ASSERT_TRUE( solver.Solve(first_matrix.Multiply(first_expected), first_solution) .IsOk()) | EXPECT_LE(RelativeError(first_solution, first_expected), 1.0e-9) | ASSERT_TRUE(solver.Factorize(second_matrix).IsOk()) | ASSERT_TRUE(solver.Solve(second_rhs, second_solution).IsOk()) | EXPECT_LE(RelativeError(second_solution, second_expected), 1.0e-9) | EXPECT_LE(NormalizedResidual(second_matrix, second_solution, second_rhs), 1.0e-10) ASSERT_TRUE(solver.Factorize(first_matrix).IsOk()) | ASSERT_TRUE( solver.Solve(first_matrix.Multiply(first_expected), first_solution) .IsOk()) | EXPECT_LE(RelativeError(first_solution, first_expected), 1.0e-9) | ASSERT_TRUE(solver.Factorize(second_matrix).IsOk()) | ASSERT_TRUE(solver.Solve(second_rhs, second_solution).IsOk()) | EXPECT_LE(RelativeError(second_solution, second_expected), 1.0e-9) | EXPECT_LE(NormalizedResidual(second_matrix, second_solution, second_rhs), 1.0e-10) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.SingleEquationScopeTransitionsBetweenRetainedSizes MklPardisoSolver.SingleEquationScopeTransitionsBetweenRetainedSizes; assertion 14개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.SingleEquationScopeTransitionsBetweenRetainedSizes 유지 원문 검사 body 및 assertion 동일. 42f17887618436bdd6cead4d4cd14c2d887057a8571044d2a07b9d7e3c65abcb 42f17887618436bdd6cead4d4cd14c2d887057a8571044d2a07b9d7e3c65abcb ASSERT_TRUE(solver.Factorize(MakeDenseCsr(1U, {2.0})).IsOk()) | ASSERT_TRUE(solver.Solve(MakeVector({4.0}), single).IsOk()) | EXPECT_DOUBLE_EQ(single[0U], 2.0) | ASSERT_TRUE(solver.Factorize(MakeDenseCsr(2U, {2, 0, 0, 3})).IsOk()) | ASSERT_TRUE(solver.Solve(MakeVector({4, 6}), pair).IsOk()) | EXPECT_NEAR(pair[0U], 2, 1e-14) | EXPECT_NEAR(pair[1U], 2, 1e-14) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | ASSERT_TRUE(solver.Factorize(MakeDenseCsr(1U, {4.0})).IsOk()) | ASSERT_TRUE(solver.Solve(MakeVector({8.0}), single).IsOk()) | EXPECT_DOUBLE_EQ(single[0U], 2.0) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) ASSERT_TRUE(solver.Factorize(MakeDenseCsr(1U, {2.0})).IsOk()) | ASSERT_TRUE(solver.Solve(MakeVector({4.0}), single).IsOk()) | EXPECT_DOUBLE_EQ(single[0U], 2.0) | ASSERT_TRUE(solver.Factorize(MakeDenseCsr(2U, {2, 0, 0, 3})).IsOk()) | ASSERT_TRUE(solver.Solve(MakeVector({4, 6}), pair).IsOk()) | EXPECT_NEAR(pair[0U], 2, 1e-14) | EXPECT_NEAR(pair[1U], 2, 1e-14) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | ASSERT_TRUE(solver.Factorize(MakeDenseCsr(1U, {4.0})).IsOk()) | ASSERT_TRUE(solver.Solve(MakeVector({8.0}), single).IsOk()) | EXPECT_DOUBLE_EQ(single[0U], 2.0) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ClassifiesSingularIndefiniteAndNonfiniteFailures MklPardisoSolver.ClassifiesSingularIndefiniteAndNonfiniteFailures; assertion 10개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ClassifiesSingularIndefiniteAndNonfiniteFailures 유지 원문 검사 body 및 assertion 동일. 007dec8a37d6956c242634b01f7e6f8f496f0e02082a94437a15dd3caaf89673 007dec8a37d6956c242634b01f7e6f8f496f0e02082a94437a15dd3caaf89673 "EXPECT_TRUE(singular_status.Diagnostics()[0U].code == ""pardiso-zero-or-negative-pivot"" || singular_status.Diagnostics()[0U].code == ""pardiso-singular-diagonal"") | EXPECT_NE( singular_status.Diagnostics()[0U].entity_identity.find(""phase=22,error=""), std::string::npos) | EXPECT_TRUE(indefinite_status.Diagnostics()[0U].code == ""pardiso-zero-or-negative-pivot"" || indefinite_status.Diagnostics()[0U].code == ""pardiso-singular-diagonal"") | EXPECT_NE(indefinite_status.Diagnostics()[0U].entity_identity.find( ""phase=22,error=""), std::string::npos) | ASSERT_TRUE(solver.Factorize(spd).IsOk()) | EXPECT_EQ(rhs_status.Diagnostics()[0U].code, ""nonfinite-solver-rhs"") | EXPECT_DOUBLE_EQ(solution[0U], 23.0) | EXPECT_DOUBLE_EQ(solution[1U], -9.0) | EXPECT_FALSE(nonfinite_matrix.HasValue()) | EXPECT_EQ(nonfinite_matrix.GetStatus().Diagnostics()[0U].code, ""nonfinite-sparse-value"")" "EXPECT_TRUE(singular_status.Diagnostics()[0U].code == ""pardiso-zero-or-negative-pivot"" || singular_status.Diagnostics()[0U].code == ""pardiso-singular-diagonal"") | EXPECT_NE( singular_status.Diagnostics()[0U].entity_identity.find(""phase=22,error=""), std::string::npos) | EXPECT_TRUE(indefinite_status.Diagnostics()[0U].code == ""pardiso-zero-or-negative-pivot"" || indefinite_status.Diagnostics()[0U].code == ""pardiso-singular-diagonal"") | EXPECT_NE(indefinite_status.Diagnostics()[0U].entity_identity.find( ""phase=22,error=""), std::string::npos) | ASSERT_TRUE(solver.Factorize(spd).IsOk()) | EXPECT_EQ(rhs_status.Diagnostics()[0U].code, ""nonfinite-solver-rhs"") | EXPECT_DOUBLE_EQ(solution[0U], 23.0) | EXPECT_DOUBLE_EQ(solution[1U], -9.0) | EXPECT_FALSE(nonfinite_matrix.HasValue()) | EXPECT_EQ(nonfinite_matrix.GetStatus().Diagnostics()[0U].code, ""nonfinite-sparse-value"")" 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ConditioningSweepPassesResolvedCasesAndFailsUnresolvedCasesExplicitly MklPardisoSolver.ConditioningSweepPassesResolvedCasesAndFailsUnresolvedCasesExplicitly; assertion 10개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ConditioningSweepPassesResolvedCasesAndFailsUnresolvedCasesExplicitly 유지 원문 검사 body 및 assertion 동일. 2e4b58fe2ef908b1c53f3dd40639f2423afb8429d5bdc7fdb80675b3efeceee2 2e4b58fe2ef908b1c53f3dd40639f2423afb8429d5bdc7fdb80675b3efeceee2 ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs, solution).IsOk()) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) | ASSERT_TRUE(resolved_solver.Factorize(resolved_matrix).IsOk()) | ASSERT_TRUE(resolved_solver.Solve(resolved_rhs, resolved_solution).IsOk()) | EXPECT_LE( NormalizedResidual(resolved_matrix, resolved_solution, resolved_rhs), 1.0e-10) | EXPECT_LE(RelativeError(resolved_solution, resolved_expected), 1.0e-9) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs, solution).IsOk()) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) | ASSERT_TRUE(resolved_solver.Factorize(resolved_matrix).IsOk()) | ASSERT_TRUE(resolved_solver.Solve(resolved_rhs, resolved_solution).IsOk()) | EXPECT_LE( NormalizedResidual(resolved_matrix, resolved_solution, resolved_rhs), 1.0e-10) | EXPECT_LE(RelativeError(resolved_solution, resolved_expected), 1.0e-9) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp support@1-91 helper/oracle/fixture/include/static assertion 구간: MakeDenseCsr, MakeVector, for, NormalizedResidual, if, RelativeError, ExpectStructuredSolverFailure tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 241634dd09f31bc235ee1bee6826c8fb24128d7490f926a518d4f2b220c92164 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/tangent_solver_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/unit/solvers/linear/tangent_solver_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c457f80368b1e01bab7e7d177c0bda8283d0590e7150e064c270f86c9a95e858 c457f80368b1e01bab7e7d177c0bda8283d0590e7150e064c270f86c9a95e858 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SolvesNonsymmetricKnownCorrection TangentSolver.SolvesNonsymmetricKnownCorrection; assertion 4개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SolvesNonsymmetricKnownCorrection 유지 원문 검사 body 및 assertion 동일. 838690231b74c1b272bda475dea0234187495f7e8c045ee449f04ae3ac0d1233 838690231b74c1b272bda475dea0234187495f7e8c045ee449f04ae3ac0d1233 ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(rhs, correction).IsOk()) | EXPECT_NEAR(correction[0U], 1.0, 1.0e-14) | EXPECT_NEAR(correction[1U], 2.0, 1.0e-14) ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(rhs, correction).IsOk()) | EXPECT_NEAR(correction[0U], 1.0, 1.0e-14) | EXPECT_NEAR(correction[1U], 2.0, 1.0e-14) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SolvesTrivialZeroEquationSystem TangentSolver.SolvesTrivialZeroEquationSystem; assertion 3개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SolvesTrivialZeroEquationSystem 유지 원문 검사 body 및 assertion 동일. 271ea5671ba0adda4eab6af4646dda04cf09d9a77c2f0857c1a1216458a9d1d1 271ea5671ba0adda4eab6af4646dda04cf09d9a77c2f0857c1a1216458a9d1d1 ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | EXPECT_TRUE(solver.SolveCorrection(fesa::Vector{0U}, correction).IsOk()) | EXPECT_EQ(correction.Size(), 0U) ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | EXPECT_TRUE(solver.SolveCorrection(fesa::Vector{0U}, correction).IsOk()) | EXPECT_EQ(correction.Size(), 0U) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.RejectsNonfiniteInputsWithoutModifyingCorrection TangentSolver.RejectsNonfiniteInputsWithoutModifyingCorrection; assertion 6개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.RejectsNonfiniteInputsWithoutModifyingCorrection 유지 원문 검사 body 및 assertion 동일. 11e41d7e1b0f4715dfddd024f947c926155d20ba0b4fa3d6734756afe8603bd6 11e41d7e1b0f4715dfddd024f947c926155d20ba0b4fa3d6734756afe8603bd6 "EXPECT_FALSE(nonfinite_matrix.HasValue()) | EXPECT_EQ(nonfinite_matrix.GetStatus().Diagnostics().front().code, ""nonfinite-sparse-value"") | ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(2U, {2.0, 1.0, 0.0, 3.0})) .IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""nonfinite-solver-rhs"") | EXPECT_DOUBLE_EQ(correction[0U], 17.0) | EXPECT_DOUBLE_EQ(correction[1U], -4.0)" "EXPECT_FALSE(nonfinite_matrix.HasValue()) | EXPECT_EQ(nonfinite_matrix.GetStatus().Diagnostics().front().code, ""nonfinite-sparse-value"") | ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(2U, {2.0, 1.0, 0.0, 3.0})) .IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""nonfinite-solver-rhs"") | EXPECT_DOUBLE_EQ(correction[0U], 17.0) | EXPECT_DOUBLE_EQ(correction[1U], -4.0)" 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.ReportsSingularFactorizationDeterministically TangentSolver.ReportsSingularFactorizationDeterministically; assertion 3개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.ReportsSingularFactorizationDeterministically 유지 원문 검사 body 및 assertion 동일. 54a59242a6753c254e6f1e9b3b87783b30b47329241c5dda5d053a57eae851bc 54a59242a6753c254e6f1e9b3b87783b30b47329241c5dda5d053a57eae851bc "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""pardiso-perturbed-pivot"") | EXPECT_EQ(status.Diagnostics().front().entity_identity, ""phase=22"")" "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""pardiso-perturbed-pivot"") | EXPECT_EQ(status.Diagnostics().front().entity_identity, ""phase=22"")" 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.RejectsSolveBeforeSuccessfulFactorization TangentSolver.RejectsSolveBeforeSuccessfulFactorization; assertion 3개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.RejectsSolveBeforeSuccessfulFactorization 유지 원문 검사 body 및 assertion 동일. eb2b17bad95e253fe1e9c3a8aed6f6fbf92e2921643507f4a11862c36c28d0d7 eb2b17bad95e253fe1e9c3a8aed6f6fbf92e2921643507f4a11862c36c28d0d7 "EXPECT_EQ(status.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(correction[0U], 23.0) | EXPECT_DOUBLE_EQ(correction[1U], -9.0)" "EXPECT_EQ(status.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(correction[0U], 23.0) | EXPECT_DOUBLE_EQ(correction[1U], -9.0)" 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.ReusesRhsButFreshValuesAndFailureCannotReuseStaleState TangentSolver.ReusesRhsButFreshValuesAndFailureCannotReuseStaleState; assertion 24개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.ReusesRhsButFreshValuesAndFailureCannotReuseStaleState 유지 원문 검사 body 및 assertion 동일. 0620a93cebd9927d8dafb60fa155a868c1f7bda81def578bbe163deeca63327f 0620a93cebd9927d8dafb60fa155a868c1f7bda81def578bbe163deeca63327f "ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(2U, {2.0, 1.0, 0.0, 3.0})) .IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({4.0 * scale, 6.0 * scale}), correction).IsOk()) | EXPECT_NEAR(correction[0U], scale, 1.0e-14) | EXPECT_NEAR(correction[1U], 2.0 * scale, 1.0e-14) | EXPECT_FALSE(solver.SolveCorrection(bad_rhs, correction).IsOk()) | EXPECT_DOUBLE_EQ(correction[0U], 17) | EXPECT_DOUBLE_EQ(correction[1U], -4) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({4, 6}), correction).IsOk()) | ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(2U, {4, 0, 1, 2})).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({4, 5}), correction).IsOk()) | EXPECT_NEAR(correction[0U], 1, 1.0e-14) | EXPECT_NEAR(correction[1U], 2, 1.0e-14) | ASSERT_TRUE(diagonal.HasValue()) | ASSERT_TRUE(solver.FactorizeFresh(diagonal.Value()).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({10, -7}), correction).IsOk()) | EXPECT_NEAR(correction[0U], 2, 1.0e-14) | EXPECT_NEAR(correction[1U], -1, 1.0e-14) | EXPECT_FALSE(solver.FactorizeFresh(MakeDenseCsr(2U, {0, 0, 0, 0})).IsOk()) | ASSERT_FALSE(stale.IsOk()) | EXPECT_EQ(stale.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(correction[0U], 19) | EXPECT_DOUBLE_EQ(correction[1U], -8) | ASSERT_TRUE(solver.FactorizeFresh(diagonal.Value()).IsOk()) | EXPECT_TRUE(solver.SolveCorrection(MakeVector({10, -7}), correction).IsOk())" "ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(2U, {2.0, 1.0, 0.0, 3.0})) .IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({4.0 * scale, 6.0 * scale}), correction).IsOk()) | EXPECT_NEAR(correction[0U], scale, 1.0e-14) | EXPECT_NEAR(correction[1U], 2.0 * scale, 1.0e-14) | EXPECT_FALSE(solver.SolveCorrection(bad_rhs, correction).IsOk()) | EXPECT_DOUBLE_EQ(correction[0U], 17) | EXPECT_DOUBLE_EQ(correction[1U], -4) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({4, 6}), correction).IsOk()) | ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(2U, {4, 0, 1, 2})).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({4, 5}), correction).IsOk()) | EXPECT_NEAR(correction[0U], 1, 1.0e-14) | EXPECT_NEAR(correction[1U], 2, 1.0e-14) | ASSERT_TRUE(diagonal.HasValue()) | ASSERT_TRUE(solver.FactorizeFresh(diagonal.Value()).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({10, -7}), correction).IsOk()) | EXPECT_NEAR(correction[0U], 2, 1.0e-14) | EXPECT_NEAR(correction[1U], -1, 1.0e-14) | EXPECT_FALSE(solver.FactorizeFresh(MakeDenseCsr(2U, {0, 0, 0, 0})).IsOk()) | ASSERT_FALSE(stale.IsOk()) | EXPECT_EQ(stale.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(correction[0U], 19) | EXPECT_DOUBLE_EQ(correction[1U], -8) | ASSERT_TRUE(solver.FactorizeFresh(diagonal.Value()).IsOk()) | EXPECT_TRUE(solver.SolveCorrection(MakeVector({10, -7}), correction).IsOk())" 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SingleEquationScopeRestoresTlsAcrossFreshFailureAndReuse TangentSolver.SingleEquationScopeRestoresTlsAcrossFreshFailureAndReuse; assertion 2개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SingleEquationScopeRestoresTlsAcrossFreshFailureAndReuse 유지 원문 검사 body 및 assertion 동일. ba2b6cb4441315add1a892267c7ebb3fef2cc4b57acd19c3f44a83e3901ff683 ba2b6cb4441315add1a892267c7ebb3fef2cc4b57acd19c3f44a83e3901ff683 EXPECT_TRUE(first.get()) | EXPECT_TRUE(second.get()) EXPECT_TRUE(first.get()) | EXPECT_TRUE(second.get()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SingleEquationScopeTransitionsBetweenRetainedSizes TangentSolver.SingleEquationScopeTransitionsBetweenRetainedSizes; assertion 14개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SingleEquationScopeTransitionsBetweenRetainedSizes 유지 원문 검사 body 및 assertion 동일. 019a17f836a3e89734270637cb77ef60079ed664964b391a6dbcaf67f8679d0d 019a17f836a3e89734270637cb77ef60079ed664964b391a6dbcaf67f8679d0d ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(1U, {2.0})).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({4.0}), single).IsOk()) | EXPECT_DOUBLE_EQ(single[0U], 2.0) | ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(2U, {2, 1, 0, 3})).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({6, 6}), pair).IsOk()) | EXPECT_NEAR(pair[0U], 2, 1e-14) | EXPECT_NEAR(pair[1U], 2, 1e-14) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(1U, {4.0})).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({8.0}), single).IsOk()) | EXPECT_DOUBLE_EQ(single[0U], 2.0) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(1U, {2.0})).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({4.0}), single).IsOk()) | EXPECT_DOUBLE_EQ(single[0U], 2.0) | ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(2U, {2, 1, 0, 3})).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({6, 6}), pair).IsOk()) | EXPECT_NEAR(pair[0U], 2, 1e-14) | EXPECT_NEAR(pair[1U], 2, 1e-14) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) | ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(1U, {4.0})).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(MakeVector({8.0}), single).IsOk()) | EXPECT_DOUBLE_EQ(single[0U], 2.0) | EXPECT_EQ(mkl_get_max_threads(), default_threads) | EXPECT_EQ(mkl_set_num_threads_local(0), 0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/tangent_solver_test.cpp support@1-59 helper/oracle/fixture/include/static assertion 구간: MakeDenseCsr, MakeVector, for, ExpectSolverFailure tests/unit/solvers/linear/tangent_solver_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b1a9077360df14d9d4b53850333227e49660e5d327b9e4d103c8dec17f7548f8 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Dev tests/unit/solvers/linear/tangent_solver_test.cpp support@233-234 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/solvers/linear/tangent_solver_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/AGENTS.md file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/AGENTS.md file 이관 Dev의 현재 검사 정책을 유지한다. Refactor의 과거 실행별 지시는 이번 승인 범위를 대체하지 않는다. afbc4a6eb7bfc01c099c4b15c5907a2782043a63a2de03e37a84159e5f4acdb0 c2413bbcde33dad56ffd227536b79b9b9c707a5eb4a7874f0bc840824c4abfd5 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/AGENTS.md support@1-19 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/AGENTS.md file-support 이관 Dev의 현재 검사 정책을 유지한다. Refactor의 과거 실행별 지시는 이번 승인 범위를 대체하지 않는다. d370a6fb7284dde3c41c1d5b117abccf69dfb790823ef224b52c855307512bff 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/CMakeLists.txt file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/CMakeLists.txt file 유지 Refactor capability source 등록을 유지한다. 실제 native/CMake source 목록이 세 target 모두 일치하므로 본문 복원에 따른 translation unit 추가는 없다. 8c8c0b8343ada0c1ea259c017a5332bfa0e0a313adbfaabe84406327bc9dc8c9 8c8c0b8343ada0c1ea259c017a5332bfa0e0a313adbfaabe84406327bc9dc8c9 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/CMakeLists.txt support@1-258 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/CMakeLists.txt file-support 유지 Refactor capability source 등록을 유지한다. 실제 native/CMake source 목록이 세 target 모두 일치하므로 본문 복원에 따른 translation unit 추가는 없다. 570b4fa84b4b84fa0460427565d6de7ac835cca29f1e98c10cc4566b838ce5b8 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/linear_frequency_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/integration/analysis/linear_frequency_procedure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 73da42092ea16d533f8a1725f6e925338fb4d8ff6901c5a462004aef3cacc770 73da42092ea16d533f8a1725f6e925338fb4d8ff6901c5a462004aef3cacc770 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.RejectsDomainWithoutFrequencyStep LinearFrequencyProcedureExecutor.RejectsDomainWithoutFrequencyStep; assertion 5개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.RejectsDomainWithoutFrequencyStep 유지 원문 검사 body 및 assertion 동일. e35f98ccd120a34e369c9100a4b68bc5f2bd57a79f0516fe8aace490a6157623 e35f98ccd120a34e369c9100a4b68bc5f2bd57a79f0516fe8aace490a6157623 "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-frequency-procedure"")" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-frequency-procedure"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.MatchesPartialBoundaryPencilAndFullResidualCovariance LinearFrequencyProcedureExecutor.MatchesPartialBoundaryPencilAndFullResidualCovariance; assertion 25개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.MatchesPartialBoundaryPencilAndFullResidualCovariance 유지 원문 검사 body 및 assertion 동일. 8112af69b3ed3bf699174664e3f50bc7fe4927aa4d8a1e3841e3c840ed29bbbe 8112af69b3ed3bf699174664e3f50bc7fe4927aa4d8a1e3841e3c840ed29bbbe ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(state.modes.size(), 1U) | EXPECT_EQ(state.mass_null_dimension, 0U) | EXPECT_EQ(state.finite_dimension, 1U) | EXPECT_NEAR(state.modes[0].eigenvalue, 10369.0 / 450.0, 1e-10) | EXPECT_EQ(state.modes[0].classification, 1U) | EXPECT_EQ(state.vectors.Rows(), 1U) | EXPECT_EQ(state.vectors.Columns(), 24U) | EXPECT_NEAR(state.vectors(0U, 5U), std::sqrt(50.0 / 3.0), 1e-12) | EXPECT_EQ(state.vectors(0U, dof), 0.0) | ASSERT_EQ(state.eigenpair_checks.size(), 1U) | EXPECT_NEAR(state.eigenpair_checks[0].modal_mass, 1.0, 1e-12) | EXPECT_LE(state.eigenpair_checks[0].eta_r, 1e-10) | EXPECT_LE(state.eigenpair_checks[0].eta_energy, 1e-10) | EXPECT_LE(state.eigenpair_checks[0].rho_b, 1e-10) | EXPECT_EQ(state.backend.eigenvectors.Rows(), 0U) | ASSERT_TRUE(static_domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_NEAR(kff, 10369.0 / 7500.0, 1e-12) | EXPECT_NEAR(displacement[5U], 7500.0 / 10369.0, 1e-12) | EXPECT_NEAR(residual[5U], 0.0, 1e-12) | EXPECT_NEAR(residual[i], expected, 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(state.modes.size(), 1U) | EXPECT_EQ(state.mass_null_dimension, 0U) | EXPECT_EQ(state.finite_dimension, 1U) | EXPECT_NEAR(state.modes[0].eigenvalue, 10369.0 / 450.0, 1e-10) | EXPECT_EQ(state.modes[0].classification, 1U) | EXPECT_EQ(state.vectors.Rows(), 1U) | EXPECT_EQ(state.vectors.Columns(), 24U) | EXPECT_NEAR(state.vectors(0U, 5U), std::sqrt(50.0 / 3.0), 1e-12) | EXPECT_EQ(state.vectors(0U, dof), 0.0) | ASSERT_EQ(state.eigenpair_checks.size(), 1U) | EXPECT_NEAR(state.eigenpair_checks[0].modal_mass, 1.0, 1e-12) | EXPECT_LE(state.eigenpair_checks[0].eta_r, 1e-10) | EXPECT_LE(state.eigenpair_checks[0].eta_energy, 1e-10) | EXPECT_LE(state.eigenpair_checks[0].rho_b, 1e-10) | EXPECT_EQ(state.backend.eigenvectors.Rows(), 0U) | ASSERT_TRUE(static_domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_NEAR(kff, 10369.0 / 7500.0, 1e-12) | EXPECT_NEAR(displacement[5U], 7500.0 / 10369.0, 1e-12) | EXPECT_NEAR(residual[5U], 0.0, 1e-12) | EXPECT_NEAR(residual[i], expected, 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.PartialBoundaryStaticRejectsUnbalancedDrillingMoment LinearFrequencyProcedureExecutor.PartialBoundaryStaticRejectsUnbalancedDrillingMoment; assertion 3개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.PartialBoundaryStaticRejectsUnbalancedDrillingMoment 유지 원문 검사 body 및 assertion 동일. 3257ad730d16550e25ba4286cfa165f6b4e84d2a54d3cc6b5d8163feea05465d 3257ad730d16550e25ba4286cfa165f6b4e84d2a54d3cc6b5d8163feea05465d "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_NE(StatusText(result.GetStatus()) .find(""global-equilibrium-tolerance-failure""), std::string::npos)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_NE(StatusText(result.GetStatus()) .find(""global-equilibrium-tolerance-failure""), std::string::npos)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.FreePanelRetainsSixRigidModesAndAllComputedEvidence LinearFrequencyProcedureExecutor.FreePanelRetainsSixRigidModesAndAllComputedEvidence; assertion 15개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.FreePanelRetainsSixRigidModesAndAllComputedEvidence 유지 원문 검사 body 및 assertion 동일. 9606266d6f08472c9d911615beddbfed51886ef04a943c708901bb30e245a992 9606266d6f08472c9d911615beddbfed51886ef04a943c708901bb30e245a992 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(state.mass_null_dimension, 4U) | EXPECT_EQ(state.finite_dimension, 20U) | ASSERT_EQ(state.modes.size(), 6U) | EXPECT_GE(state.eigenpair_checks.size(), 6U) | EXPECT_EQ(mode.classification, 0U) | EXPECT_EQ(mode.cluster_id, 1U) | EXPECT_LE(state.eta_gram, 1e-10) | EXPECT_LE(state.max_eta_orth, 1e-10) | EXPECT_LE(state.eta_mz, 1e-12) | EXPECT_LE(state.eta_kz, 1e-12) | EXPECT_LE(check.eta_r, 1e-10) | EXPECT_LE(check.eta_norm, 1e-10) | EXPECT_LE(check.eta_energy, 1e-10) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(state.mass_null_dimension, 4U) | EXPECT_EQ(state.finite_dimension, 20U) | ASSERT_EQ(state.modes.size(), 6U) | EXPECT_GE(state.eigenpair_checks.size(), 6U) | EXPECT_EQ(mode.classification, 0U) | EXPECT_EQ(mode.cluster_id, 1U) | EXPECT_LE(state.eta_gram, 1e-10) | EXPECT_LE(state.max_eta_orth, 1e-10) | EXPECT_LE(state.eta_mz, 1e-12) | EXPECT_LE(state.eta_kz, 1e-12) | EXPECT_LE(check.eta_r, 1e-10) | EXPECT_LE(check.eta_norm, 1e-10) | EXPECT_LE(check.eta_energy, 1e-10) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.ExcessRequestedModesFailsWithSourceContext LinearFrequencyProcedureExecutor.ExcessRequestedModesFailsWithSourceContext; assertion 6개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.ExcessRequestedModesFailsWithSourceContext 유지 원문 검사 body 및 assertion 동일. a384ea179cd4b72a4bedea2b8a465ff0e824a37858da50dfe0702d96c91b6c55 a384ea179cd4b72a4bedea2b8a465ff0e824a37858da50dfe0702d96c91b6c55 "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""insufficient-finite-modes"") | EXPECT_GT(result.GetStatus().Diagnostics()[0].location.line, 0U)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""insufficient-finite-modes"") | EXPECT_GT(result.GetStatus().Diagnostics()[0].location.line, 0U)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.PreservesDensityAndPhysicalUnitScaling LinearFrequencyProcedureExecutor.PreservesDensityAndPhysicalUnitScaling; assertion 12개 tests/integration/analysis/linear_frequency_procedure_test.cpp LinearFrequencyProcedureExecutor.PreservesDensityAndPhysicalUnitScaling 유지 원문 검사 body 및 assertion 동일. 54d62ee92fd5f41120fda65ddaeb341ba1f3bd0390e7cdf03c81b5f13b9f4fcd 54d62ee92fd5f41120fda65ddaeb341ba1f3bd0390e7cdf03c81b5f13b9f4fcd ASSERT_TRUE(baseline_domain.HasValue()) | ASSERT_TRUE(dense_domain.HasValue()) | ASSERT_TRUE(units_domain.HasValue()) | ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(dense.HasValue()) | ASSERT_TRUE(units.HasValue()) | EXPECT_NEAR( dense.Value().modes[0].eigenvalue / baseline.Value().modes[0].eigenvalue, 0.25, 1e-12) | EXPECT_NEAR(dense.Value().vectors(0U, 5U) / baseline.Value().vectors(0U, 5U), 0.5, 1e-12) | EXPECT_NEAR( units.Value().modes[0].eigenvalue / baseline.Value().modes[0].eigenvalue, 1.0, 1e-12) | EXPECT_NEAR( units.Value().vectors(0U, 5U) * length / baseline.Value().vectors(0U, 5U), 1.0, 1e-12) | EXPECT_LE(units.Value().eigenpair_checks[0].eta_r, 1e-10) | EXPECT_LE(units.Value().eigenpair_checks[0].eta_energy, 1e-10) ASSERT_TRUE(baseline_domain.HasValue()) | ASSERT_TRUE(dense_domain.HasValue()) | ASSERT_TRUE(units_domain.HasValue()) | ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(dense.HasValue()) | ASSERT_TRUE(units.HasValue()) | EXPECT_NEAR( dense.Value().modes[0].eigenvalue / baseline.Value().modes[0].eigenvalue, 0.25, 1e-12) | EXPECT_NEAR(dense.Value().vectors(0U, 5U) / baseline.Value().vectors(0U, 5U), 0.5, 1e-12) | EXPECT_NEAR( units.Value().modes[0].eigenvalue / baseline.Value().modes[0].eigenvalue, 1.0, 1e-12) | EXPECT_NEAR( units.Value().vectors(0U, 5U) * length / baseline.Value().vectors(0U, 5U), 1.0, 1e-12) | EXPECT_LE(units.Value().eigenpair_checks[0].eta_r, 1e-10) | EXPECT_LE(units.Value().eigenpair_checks[0].eta_energy, 1e-10) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/analysis/linear_frequency_procedure_test.cpp support@1-25 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_frequency_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a51e24264f3ae36759924761dd98817a3de835465648e49acff3d7c0b74e8f7c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/linear_frequency_procedure_test.cpp support@42-124 helper/oracle/fixture/include/static assertion 구간: StatusText, PanelDomain, if tests/integration/analysis/linear_frequency_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d9beda2ab213d77168db3de7088b66badb8266554add0a1df0249a3f53e814b2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/linear_frequency_procedure_test.cpp support@191-193 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_frequency_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d7ebb4e7a53ff4630e82b0c32bb66fd1bae66f119405d224a134d6256734b442 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/linear_static_analysis_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/integration/analysis/linear_static_analysis_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c796815b0cdc8b655da47ddab48bb3df2ef5d7334d949c9ede355e046b12294b c796815b0cdc8b655da47ddab48bb3df2ef5d7334d949c9ede355e046b12294b 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.FactorizesBeforeLoadAndSolvesWithoutRefactorization LinearStaticCli.FactorizesBeforeLoadAndSolvesWithoutRefactorization; assertion 5개 tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.FactorizesBeforeLoadAndSolvesWithoutRefactorization 유지 원문 검사 body 및 assertion 동일. 6da58cc645e25d2814d2622f68d964c8320625f00110b2e16ba19e5b1522ccc2 6da58cc645e25d2814d2622f68d964c8320625f00110b2e16ba19e5b1522ccc2 "ASSERT_TRUE(analysis->Run({input, output}).IsOk()) | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 1) | EXPECT_EQ(writer.WriteCalls(), 1) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize"", ""solver-solve"", ""writer-write""}))" "ASSERT_TRUE(analysis->Run({input, output}).IsOk()) | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 1) | EXPECT_EQ(writer.WriteCalls(), 1) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize"", ""solver-solve"", ""writer-write""}))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.FactorizesBeforeRejectingAnInvalidLoad LinearStaticCli.FactorizesBeforeRejectingAnInvalidLoad; assertion 8개 tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.FactorizesBeforeRejectingAnInvalidLoad 유지 원문 검사 body 및 assertion 동일. 65404a724a1ea299f6ceec1870dfa2b75eff091a7e83809aa589613be7e4e2fc 65404a724a1ea299f6ceec1870dfa2b75eff091a7e83809aa589613be7e4e2fc "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""unsupported-drilling-load"") | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 0) | EXPECT_EQ(writer.WriteCalls(), 0) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize""}))" "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""unsupported-drilling-load"") | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 0) | EXPECT_EQ(writer.WriteCalls(), 0) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize""}))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.RealPipelineHandlesAnalyticalAndNonzeroPrescription LinearStaticCli.RealPipelineHandlesAnalyticalAndNonzeroPrescription; assertion 17개 tests/integration/analysis/linear_static_analysis_test.cpp LinearStaticCli.RealPipelineHandlesAnalyticalAndNonzeroPrescription 유지 원문 검사 body 및 assertion 동일. 34f491015c713169674ef652f3e235e52cff78d9c55158b3dfa94614562c2a94 34f491015c713169674ef652f3e235e52cff78d9c55158b3dfa94614562c2a94 "ASSERT_TRUE(status.IsOk()) | EXPECT_EQ(writer.OutputPath(), output) | EXPECT_EQ(writer.NodeCount(), 2U) | EXPECT_TRUE(writer.Diagnostics().empty()) | ASSERT_EQ(state.Displacement().Size(), 12U) | EXPECT_EQ(state.Identity().step_name, ""Step-1"") | EXPECT_EQ(state.Identity().frame_index, 0U) | EXPECT_NEAR(state.Displacement()[0U], 0.1, 1.0e-12) | EXPECT_NEAR(state.Displacement()[6U], 0.2, 2.0e-10) | EXPECT_NEAR(state.ExternalForce()[6U], 10.0, 1.0e-12) | EXPECT_NEAR(state.InternalForce()[0U], -10.0, 1.0e-9) | EXPECT_NEAR(state.InternalForce()[6U], 10.0, 1.0e-9) | EXPECT_NEAR(state.Reaction()[0U], -10.0, 1.0e-9) | EXPECT_NEAR(state.Residual()[6U], 0.0, 1.0e-9) | EXPECT_EQ(state.EndpointResults().size(), 2U) | EXPECT_EQ(state.GaussResults().size(), 2U) | EXPECT_EQ(state.StressResults().size(), 2U)" "ASSERT_TRUE(status.IsOk()) | EXPECT_EQ(writer.OutputPath(), output) | EXPECT_EQ(writer.NodeCount(), 2U) | EXPECT_TRUE(writer.Diagnostics().empty()) | ASSERT_EQ(state.Displacement().Size(), 12U) | EXPECT_EQ(state.Identity().step_name, ""Step-1"") | EXPECT_EQ(state.Identity().frame_index, 0U) | EXPECT_NEAR(state.Displacement()[0U], 0.1, 1.0e-12) | EXPECT_NEAR(state.Displacement()[6U], 0.2, 2.0e-10) | EXPECT_NEAR(state.ExternalForce()[6U], 10.0, 1.0e-12) | EXPECT_NEAR(state.InternalForce()[0U], -10.0, 1.0e-9) | EXPECT_NEAR(state.InternalForce()[6U], 10.0, 1.0e-9) | EXPECT_NEAR(state.Reaction()[0U], -10.0, 1.0e-9) | EXPECT_NEAR(state.Residual()[6U], 0.0, 1.0e-9) | EXPECT_EQ(state.EndpointResults().size(), 2U) | EXPECT_EQ(state.GaussResults().size(), 2U) | EXPECT_EQ(state.StressResults().size(), 2U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.UsesExistingLifecycleAndExactlyOneFactorization Mitc4ShellCli.UsesExistingLifecycleAndExactlyOneFactorization; assertion 5개 tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.UsesExistingLifecycleAndExactlyOneFactorization 유지 원문 검사 body 및 assertion 동일. 1dea412548e1077c66d10536f0f8640b34a5b0eadc19bb0cebbf47878b4c0b9b 1dea412548e1077c66d10536f0f8640b34a5b0eadc19bb0cebbf47878b4c0b9b "ASSERT_TRUE(analysis->Run({input, output}).IsOk()) | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 1) | EXPECT_EQ(writer.WriteCalls(), 1) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize"", ""solver-solve"", ""writer-write""}))" "ASSERT_TRUE(analysis->Run({input, output}).IsOk()) | EXPECT_EQ(solver.FactorizeCalls(), 1) | EXPECT_EQ(solver.SolveCalls(), 1) | EXPECT_EQ(writer.WriteCalls(), 1) | EXPECT_EQ(adapter_events, (std::vector{""solver-factorize"", ""solver-solve"", ""writer-write""}))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.AppliesKfcForNonzeroPrescribedDisplacement Mitc4ShellCli.AppliesKfcForNonzeroPrescribedDisplacement; assertion 17개 tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.AppliesKfcForNonzeroPrescribedDisplacement 유지 원문 검사 body 및 assertion 동일. 221c877473ceb9bc29a9ba1386ab2485083b7474572a5ba936ae3b9524c1e15a 221c877473ceb9bc29a9ba1386ab2485083b7474572a5ba936ae3b9524c1e15a EXPECT_TRUE(status.IsOk()) | ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(solver.FactorizeCalls(), 1) | ASSERT_EQ(solver.SolveCalls(), 1) | ASSERT_EQ(solver.FactorizedDimension(), 1U) | ASSERT_EQ(solver.Rhs().size(), 1U) | EXPECT_NEAR(solver.ScalarStiffness(), 440.0 / 9.0, 1.0e-12) | EXPECT_NEAR(solver.Rhs()[0U], -4.0 / 9.0, 1.0e-12) | EXPECT_EQ(writer.OutputPath(), output) | EXPECT_EQ(writer.NodeCount(), 4U) | EXPECT_EQ(writer.ShellElementCount(), 1U) | 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) | EXPECT_EQ(state.ShellResults().size(), 4U) | EXPECT_GT(state.PhysicalStrainEnergy(), 0.0) EXPECT_TRUE(status.IsOk()) | ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(solver.FactorizeCalls(), 1) | ASSERT_EQ(solver.SolveCalls(), 1) | ASSERT_EQ(solver.FactorizedDimension(), 1U) | ASSERT_EQ(solver.Rhs().size(), 1U) | EXPECT_NEAR(solver.ScalarStiffness(), 440.0 / 9.0, 1.0e-12) | EXPECT_NEAR(solver.Rhs()[0U], -4.0 / 9.0, 1.0e-12) | EXPECT_EQ(writer.OutputPath(), output) | EXPECT_EQ(writer.NodeCount(), 4U) | EXPECT_EQ(writer.ShellElementCount(), 1U) | 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) | EXPECT_EQ(state.ShellResults().size(), 4U) | EXPECT_GT(state.PhysicalStrainEnergy(), 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.RejectsSingularAndAcceptsZeroByZeroFreeSystem Mitc4ShellCli.RejectsSingularAndAcceptsZeroByZeroFreeSystem; assertion 9개 tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.RejectsSingularAndAcceptsZeroByZeroFreeSystem 유지 원문 검사 body 및 assertion 동일. 9bc841e0fc20cccf0cec07e025f03be672a5123d4c9fa5fcf23f9d0072fd34d6 9bc841e0fc20cccf0cec07e025f03be672a5123d4c9fa5fcf23f9d0072fd34d6 ASSERT_FALSE(singular.IsOk()) | EXPECT_EQ(singular.Category(), fesa::FailureCategory::kSolver) | EXPECT_EQ(singular_writer.WriteCalls(), 0) | ASSERT_TRUE(constrained.IsOk()) | EXPECT_EQ(constrained_solver.FactorizeCalls(), 1) | EXPECT_EQ(constrained_solver.FactorizedDimension(), 0U) | EXPECT_EQ(constrained_solver.SolveCalls(), 1) | EXPECT_TRUE(constrained_solver.Rhs().empty()) | EXPECT_EQ(constrained_writer.State().ShellResults().size(), 4U) ASSERT_FALSE(singular.IsOk()) | EXPECT_EQ(singular.Category(), fesa::FailureCategory::kSolver) | EXPECT_EQ(singular_writer.WriteCalls(), 0) | ASSERT_TRUE(constrained.IsOk()) | EXPECT_EQ(constrained_solver.FactorizeCalls(), 1) | EXPECT_EQ(constrained_solver.FactorizedDimension(), 0U) | EXPECT_EQ(constrained_solver.SolveCalls(), 1) | EXPECT_TRUE(constrained_solver.Rhs().empty()) | EXPECT_EQ(constrained_writer.State().ShellResults().size(), 4U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.DoesNotWriteAnInvalidRecoveryCandidate Mitc4ShellCli.DoesNotWriteAnInvalidRecoveryCandidate; assertion 6개 tests/integration/analysis/linear_static_analysis_test.cpp Mitc4ShellCli.DoesNotWriteAnInvalidRecoveryCandidate 유지 원문 검사 body 및 assertion 동일. 8c9ed32ac29d2ce92de257c1fe16ae692ff037e47ae1e267ceb47d2e14fb3999 8c9ed32ac29d2ce92de257c1fe16ae692ff037e47ae1e267ceb47d2e14fb3999 "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(adapter_events.empty())" "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(adapter_events.empty())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/linear_static_analysis_test.cpp support@1-306 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, WriteText, AxialDeck, AllConstrainedShellDeck, PrescribedShellDeck, SpyLinearSolver, RecordingMklSolver, NonfiniteLinearSolver, SpyResultsWriter, CapturingResultsWriter, State tests/integration/analysis/linear_static_analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 09f71dbb33b22661eb43b04ddd7730f00b09cf63202093cb5008f37fe51a59f2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/linear_static_analysis_test.cpp support@388-389 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_static_analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 36bbca6d939f00341c98ba573a4fdc3cfc85b6ef660852c5b0a862bfcfc0fd6c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/linear_static_analysis_test.cpp support@411-412 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_static_analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 58066e545facf79db27e598db7e91f24ed93b6771efa3ca779ecfe4df76a7344 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/linear_static_analysis_test.cpp support@449-450 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_static_analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. dd0e363915792cde8bf2d8793ddaec5a8c40204888921d46f70f1f507387ac4a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/linear_static_analysis_test.cpp support@485-486 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/linear_static_analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 83bce9b68552044428c9e22ca488475bf399b515887403c179e0f49d9230a028 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/nonlinear_static_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/integration/analysis/nonlinear_static_procedure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 88175e6ca8c6905e7706f40141e85676d7ce3c1763b49e2ebfb7beecd6d9feab 88175e6ca8c6905e7706f40141e85676d7ce3c1763b49e2ebfb7beecd6d9feab 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/nonlinear_static_procedure_test.cpp NonlinearStaticProcedure.AllConstrainedNlgeomRunWritesSchemaV1AfterAcceptedFrames NonlinearStaticProcedure.AllConstrainedNlgeomRunWritesSchemaV1AfterAcceptedFrames; assertion 6개 tests/integration/analysis/nonlinear_static_procedure_test.cpp NonlinearStaticProcedure.AllConstrainedNlgeomRunWritesSchemaV1AfterAcceptedFrames 유지 원문 검사 body 및 assertion 동일. f26bd90fa30e1fa68296b58bf1a76cc5630c88cda15c0ef729d651d3395c74ec f26bd90fa30e1fa68296b58bf1a76cc5630c88cda15c0ef729d651d3395c74ec "ASSERT_EQ(exit_code, 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(metadata, 0) | EXPECT_EQ(ReadStringAttribute(metadata, ""feature_id""), ""nonlinear-static-newton-raphson"") | EXPECT_GT(H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0)" "ASSERT_EQ(exit_code, 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(metadata, 0) | EXPECT_EQ(ReadStringAttribute(metadata, ""feature_id""), ""nonlinear-static-newton-raphson"") | EXPECT_GT(H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/nonlinear_static_procedure_test.cpp NonlinearStaticProcedure.NonzeroPrescribedMotionWritesCurrentArmSpatialAppliedPlusReactionBalance NonlinearStaticProcedure.NonzeroPrescribedMotionWritesCurrentArmSpatialAppliedPlusReactionBalance; assertion 4개 tests/integration/analysis/nonlinear_static_procedure_test.cpp NonlinearStaticProcedure.NonzeroPrescribedMotionWritesCurrentArmSpatialAppliedPlusReactionBalance 유지 원문 검사 body 및 assertion 동일. 9ff42852bb00d02f437a4da95165fdf5d26e6b838001a0d5ab14a85a04317640 9ff42852bb00d02f437a4da95165fdf5d26e6b838001a0d5ab14a85a04317640 ASSERT_EQ(exit_code, 0) | ASSERT_GE(dataset, 0) | ASSERT_GE(H5Dread(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, actual.data()), 0) | EXPECT_NEAR(actual[component], expected[component], 1.0e-10) ASSERT_EQ(exit_code, 0) | ASSERT_GE(dataset, 0) | ASSERT_GE(H5Dread(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, actual.data()), 0) | EXPECT_NEAR(actual[component], expected[component], 1.0e-10) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/nonlinear_static_procedure_test.cpp support@1-291 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, WriteText, AllConstrainedNonlinearShellDeck, NonzeroPrescribedNonlinearShellDeck, Hdf5File, ReadStringAttribute, ReadNodalDataset, ReadConstraintMask, SpatialMoment, ReconstructGlobalBalance tests/integration/analysis/nonlinear_static_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eb91f236855802e13777ec66a775468f3b978d2a12cd33882b5eae574242a0ca 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/nonlinear_static_procedure_test.cpp support@315-316 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/nonlinear_static_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 185679e57938f51bc52ac8004de60266decc8599baf2c9e6aac91a3cec7811be 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/nonlinear_static_procedure_test.cpp support@344-345 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/nonlinear_static_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/shell_surface_pressure_linear_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f160a13c739276bb27b6b769f4b5d7fc53ab6bbe0e4917b1388aa171313f834e f160a13c739276bb27b6b769f4b5d7fc53ab6bbe0e4917b1388aa171313f834e 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.UsesReferenceNormalAndAreaAfterPrescribedDisplacement LinearShellSurfacePressure.UsesReferenceNormalAndAreaAfterPrescribedDisplacement; assertion 2개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.UsesReferenceNormalAndAreaAfterPrescribedDisplacement 유지 원문 검사 body 및 assertion 동일. e721439d9254d983e65489ab2bbc4fb02e07d31658fc561f5401bfbd83abaa10 e721439d9254d983e65489ab2bbc4fb02e07d31658fc561f5401bfbd83abaa10 EXPECT_DOUBLE_EQ(state.Displacement()[8U], 5.0) | EXPECT_EQ(SumTranslation(state.ExternalForce()), (std::array{0.0, 0.0, -4.0})) EXPECT_DOUBLE_EQ(state.Displacement()[8U], 5.0) | EXPECT_EQ(SumTranslation(state.ExternalForce()), (std::array{0.0, 0.0, -4.0})) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.AssemblesBeforeProjectionAndIncludesConstrainedReaction LinearShellSurfacePressure.AssemblesBeforeProjectionAndIncludesConstrainedReaction; assertion 2개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.AssemblesBeforeProjectionAndIncludesConstrainedReaction 유지 원문 검사 body 및 assertion 동일. ba222e9848a5e378bcf9c71a3c33243ac8771e3fac0c5822851e2102ed967c4d ba222e9848a5e378bcf9c71a3c33243ac8771e3fac0c5822851e2102ed967c4d EXPECT_EQ(SumTranslation(state.ExternalForce()), (std::array{0.0, 0.0, -4.0})) | EXPECT_EQ(SumTranslation(state.Reaction()), (std::array{0.0, 0.0, 4.0})) EXPECT_EQ(SumTranslation(state.ExternalForce()), (std::array{0.0, 0.0, -4.0})) | EXPECT_EQ(SumTranslation(state.Reaction()), (std::array{0.0, 0.0, 4.0})) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.SatisfiesFreeResidualGlobalResultantAndMoment LinearShellSurfacePressure.SatisfiesFreeResidualGlobalResultantAndMoment; assertion 2개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.SatisfiesFreeResidualGlobalResultantAndMoment 유지 원문 검사 body 및 assertion 동일. 171514cf20d839500b5919fd98671a3c0f805d8552929fcc111886400eb35cb3 171514cf20d839500b5919fd98671a3c0f805d8552929fcc111886400eb35cb3 EXPECT_NEAR(value, 0.0, 1.0e-8) | EXPECT_NEAR(state.VerificationMetrics()[0U], 0.0, 1.0e-10) EXPECT_NEAR(value, 0.0, 1.0e-8) | EXPECT_NEAR(state.VerificationMetrics()[0U], 0.0, 1.0e-10) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.PreservesS4S4rMeshAndCyclicOrderInvariance LinearShellSurfacePressure.PreservesS4S4rMeshAndCyclicOrderInvariance; assertion 6개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.PreservesS4S4rMeshAndCyclicOrderInvariance 유지 원문 검사 body 및 assertion 동일. 1439f391357b0fe3f6dd44f5b7ce79f74d7ed2df71d6eb5a3b1f4c7081cf4237 1439f391357b0fe3f6dd44f5b7ce79f74d7ed2df71d6eb5a3b1f4c7081cf4237 ASSERT_EQ(s4.ExternalForce().Size(), s4r.ExternalForce().Size()) | ASSERT_EQ(s4.ExternalForce().Size(), cyclic.ExternalForce().Size()) | EXPECT_DOUBLE_EQ(s4.ExternalForce()[index], s4r.ExternalForce()[index]) | EXPECT_DOUBLE_EQ(s4.ExternalForce()[index], cyclic.ExternalForce()[index]) | EXPECT_DOUBLE_EQ(s4.Reaction()[index], s4r.Reaction()[index]) | EXPECT_DOUBLE_EQ(s4.Reaction()[index], cyclic.Reaction()[index]) ASSERT_EQ(s4.ExternalForce().Size(), s4r.ExternalForce().Size()) | ASSERT_EQ(s4.ExternalForce().Size(), cyclic.ExternalForce().Size()) | EXPECT_DOUBLE_EQ(s4.ExternalForce()[index], s4r.ExternalForce()[index]) | EXPECT_DOUBLE_EQ(s4.ExternalForce()[index], cyclic.ExternalForce()[index]) | EXPECT_DOUBLE_EQ(s4.Reaction()[index], s4r.Reaction()[index]) | EXPECT_DOUBLE_EQ(s4.Reaction()[index], cyclic.Reaction()[index]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.WritesSchemaZeroWithoutPressureDataset LinearShellSurfacePressure.WritesSchemaZeroWithoutPressureDataset; assertion 12개 tests/integration/analysis/shell_surface_pressure_linear_test.cpp LinearShellSurfacePressure.WritesSchemaZeroWithoutPressureDataset 유지 원문 검사 body 및 assertion 동일. a1753dcd30b46c5386bcb0198661ae6982efcbbce8c4b8deb2ab12729c7cd5c0 a1753dcd30b46c5386bcb0198661ae6982efcbbce8c4b8deb2ab12729c7cd5c0 "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | ASSERT_GE(metadata, 0) | ASSERT_GE(schema, 0) | ASSERT_GE(H5Aread(schema, H5T_NATIVE_UINT64, &schema_version), 0) | EXPECT_EQ(schema_version, 0U) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Aclose(schema), 0) | EXPECT_GE(H5Gclose(metadata), 0) | EXPECT_GE(H5Fclose(file), 0)" "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | ASSERT_GE(metadata, 0) | ASSERT_GE(schema, 0) | ASSERT_GE(H5Aread(schema, H5T_NATIVE_UINT64, &schema_version), 0) | EXPECT_EQ(schema_version, 0U) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Aclose(schema), 0) | EXPECT_GE(H5Gclose(metadata), 0) | EXPECT_GE(H5Fclose(file), 0)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/shell_surface_pressure_linear_test.cpp support@1-176 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, WriteText, ShellDeck, CapturingResultsWriter, State, RunLinear, SumTranslation tests/integration/analysis/shell_surface_pressure_linear_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e57c8ba9f74968a8c7ca06c327d4bae2312eb212b552414c2365975b785c1ef3 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 10개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 76f0d621c519f1ca1cb68fafd700bca52c94c69ac975a274eac995298ff77df3 76f0d621c519f1ca1cb68fafd700bca52c94c69ac975a274eac995298ff77df3 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.AssemblesFollowerForceFromCurrentTrialGeometry NonlinearShellSurfacePressure.AssemblesFollowerForceFromCurrentTrialGeometry; assertion 1개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.AssemblesFollowerForceFromCurrentTrialGeometry 유지 원문 검사 body 및 assertion 동일. 275b59b0a99ff5bcb4936eac0dd4373eb3fb04e88d56a47ff1aff8a27b2c86f9 275b59b0a99ff5bcb4936eac0dd4373eb3fb04e88d56a47ff1aff8a27b2c86f9 EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.FormsResidualAndTangentWithApprovedExternalSigns NonlinearShellSurfacePressure.FormsResidualAndTangentWithApprovedExternalSigns; assertion 2개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.FormsResidualAndTangentWithApprovedExternalSigns 유지 원문 검사 body 및 assertion 동일. 0a6136e7ba03b60316d311f5f6b42f16252978acda71b7d0b56f16eb12b209ba 0a6136e7ba03b60316d311f5f6b42f16252978acda71b7d0b56f16eb12b209ba EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_NEAR(SumTranslation(residual, 2U), 6.0, 1.0e-12) EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_NEAR(SumTranslation(residual, 2U), 6.0, 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.AppliesIncrementFactorExactlyOnce NonlinearShellSurfacePressure.AppliesIncrementFactorExactlyOnce; assertion 1개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.AppliesIncrementFactorExactlyOnce 유지 원문 검사 body 및 assertion 동일. fd422711071867040b064e56df5df62d50a20128bb59e934095f3657cf85f95e fd422711071867040b064e56df5df62d50a20128bb59e934095f3657cf85f95e EXPECT_NEAR(SumTranslation(external, 2U), -0.42, 1.0e-12) EXPECT_NEAR(SumTranslation(external, 2U), -0.42, 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.UsesFullUnsymmetricTangentSolverPath NonlinearShellSurfacePressure.UsesFullUnsymmetricTangentSolverPath; assertion 7개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.UsesFullUnsymmetricTangentSolverPath 유지 원문 검사 body 및 assertion 동일. 63a34f032cb16dd83f579b4dd4b484e3c326615ba25fa1133eee16013843c11f 63a34f032cb16dd83f579b4dd4b484e3c326615ba25fa1133eee16013843c11f EXPECT_NE(SumTranslation(external, 2U), 0.0) | EXPECT_NE(SumTranslation(residual, 2U), 0.0) | ASSERT_TRUE(central.HasValue()) | ASSERT_TRUE(forward.HasValue()) | ASSERT_TRUE(backward.HasValue()) | EXPECT_NEAR(finite_difference, central.Value().external_tangent[row * 24U + 12U], 1.0e-8) | EXPECT_TRUE(has_antisymmetric_entry) EXPECT_NE(SumTranslation(external, 2U), 0.0) | EXPECT_NE(SumTranslation(residual, 2U), 0.0) | ASSERT_TRUE(central.HasValue()) | ASSERT_TRUE(forward.HasValue()) | ASSERT_TRUE(backward.HasValue()) | EXPECT_NEAR(finite_difference, central.Value().external_tangent[row * 24U + 12U], 1.0e-8) | EXPECT_TRUE(has_antisymmetric_entry) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.ConvergesOpenPatchAndPreservesAntisymmetricEvidence NonlinearShellSurfacePressure.ConvergesOpenPatchAndPreservesAntisymmetricEvidence; assertion 2개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.ConvergesOpenPatchAndPreservesAntisymmetricEvidence 유지 원문 검사 body 및 assertion 동일. 04b9fe95ba4947d608fc9a7ec79b1740e70ecfbbcd3a01e2e16606d5243818ae 04b9fe95ba4947d608fc9a7ec79b1740e70ecfbbcd3a01e2e16606d5243818ae "EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_GT(H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0)" "EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_GT(H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.SatisfiesAcceptedFreeResidualAndFactorOneGlobalBalance NonlinearShellSurfacePressure.SatisfiesAcceptedFreeResidualAndFactorOneGlobalBalance; assertion 1개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.SatisfiesAcceptedFreeResidualAndFactorOneGlobalBalance 유지 원문 검사 body 및 assertion 동일. 57b26b0b13a3b8aeb13983659e70fa74ee28ce08b9657ee48534d4357dec6986 57b26b0b13a3b8aeb13983659e70fa74ee28ce08b9657ee48534d4357dec6986 EXPECT_LE(MaximumAbs(equilibrium), 1.0e-8) EXPECT_LE(MaximumAbs(equilibrium), 1.0e-8) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.IsObjectiveUnderRigidMotionAndTracksCurrentArea NonlinearShellSurfacePressure.IsObjectiveUnderRigidMotionAndTracksCurrentArea; assertion 4개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.IsObjectiveUnderRigidMotionAndTracksCurrentArea 유지 원문 검사 body 및 assertion 동일. bf38184a7460af3225ecdfb1d17c748cb2827953f7ab20cb0d09aa512b765102 bf38184a7460af3225ecdfb1d17c748cb2827953f7ab20cb0d09aa512b765102 ASSERT_TRUE(contribution.HasValue()) | EXPECT_NEAR(force_x, 0.0, 1.0e-12) | EXPECT_NEAR(force_y, 4.0, 1.0e-12) | EXPECT_NEAR(force_z, 0.0, 1.0e-12) ASSERT_TRUE(contribution.HasValue()) | EXPECT_NEAR(force_x, 0.0, 1.0e-12) | EXPECT_NEAR(force_y, 4.0, 1.0e-12) | EXPECT_NEAR(force_z, 0.0, 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.ReducesSerialAndParallelContributionsDeterministically NonlinearShellSurfacePressure.ReducesSerialAndParallelContributionsDeterministically; assertion 2개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.ReducesSerialAndParallelContributionsDeterministically 유지 원문 검사 body 및 assertion 동일. 7221071e8ff084a8b909b3820cf880025e76e8d17c003c07e58ce9bac6e812b5 7221071e8ff084a8b909b3820cf880025e76e8d17c003c07e58ce9bac6e812b5 EXPECT_EQ(first_force, second_force) | EXPECT_NE(SumTranslation(first_force, 2U), 0.0) EXPECT_EQ(first_force, second_force) | EXPECT_NE(SumTranslation(first_force, 2U), 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.InvalidTrialRollsBackCommittedFrameAndFinalOutput NonlinearShellSurfacePressure.InvalidTrialRollsBackCommittedFrameAndFinalOutput; assertion 2개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.InvalidTrialRollsBackCommittedFrameAndFinalOutput 유지 원문 검사 body 및 assertion 동일. 36e810eaf381a43605bffdffe6997ad85e7b0ed2e01de1c00989cbbb49d0f80d 36e810eaf381a43605bffdffe6997ad85e7b0ed2e01de1c00989cbbb49d0f80d EXPECT_NE(exit_code, 0) | EXPECT_EQ(ReadBytes(output), previous) EXPECT_NE(exit_code, 0) | EXPECT_EQ(ReadBytes(output), previous) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.WritesSchemaOneExternalInternalResidualReactionAndEquilibrium NonlinearShellSurfacePressure.WritesSchemaOneExternalInternalResidualReactionAndEquilibrium; assertion 3개 tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp NonlinearShellSurfacePressure.WritesSchemaOneExternalInternalResidualReactionAndEquilibrium 유지 원문 검사 body 및 assertion 동일. 43eabc099c0167988e47483e5a56b5be6f7af1257dc4992ee64c812b925d6ad9 43eabc099c0167988e47483e5a56b5be6f7af1257dc4992ee64c812b925d6ad9 "EXPECT_GT(H5Lexists(file.Get(), (root + suffix).c_str(), H5P_DEFAULT), 0) | EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_EQ(H5Lexists(file.Get(), ""/surface_pressure"", H5P_DEFAULT), 0)" "EXPECT_GT(H5Lexists(file.Get(), (root + suffix).c_str(), H5P_DEFAULT), 0) | EXPECT_NEAR(SumTranslation(external, 2U), -6.0, 1.0e-12) | EXPECT_EQ(H5Lexists(file.Get(), ""/surface_pressure"", H5P_DEFAULT), 0)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp support@1-224 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, Hdf5File, WriteText, ReadBytes, NonlinearPressureDeck, ReadFrameDataset, ReadEquilibrium, SumTranslation, MaximumAbs, for, CurrentPressureInput, RunNonlinearPressure tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ef95b2da7f58bff98fb85e60df3206dec9935f7f1af799fca4fade510af8a9aa 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_gauss_oracle.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/integration/analysis/thermal_gauss_oracle.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d788dbffcaedabfd16337b9683fd30803efb69cee2e64da08c09c4ccff29d12f d788dbffcaedabfd16337b9683fd30803efb69cee2e64da08c09c4ccff29d12f 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_gauss_oracle.h support@1-70 helper/oracle/fixture/include/static assertion 구간: thermal_oracle, GaussPoint tests/integration/analysis/thermal_gauss_oracle.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eefed1217413733d2b6f2c59534a7501f9a2256dddd8140f1b6fc970af8bcec6 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_oracle_generator.py file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/integration/analysis/thermal_oracle_generator.py file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9c7d218fb43f93b77f0b84d158fcdc32033931a63f67b46e0e8adbac48b678dd 9c7d218fb43f93b77f0b84d158fcdc32033931a63f67b46e0e8adbac48b678dd 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_oracle_generator.py add fixture/oracle/helper add tests/integration/analysis/thermal_oracle_generator.py add 유지 원문 검사 body 및 assertion 동일. 23e1150085d3fe1a5d74d2299831c98dd48f86eb9930a91b18600fc30d590845 23e1150085d3fe1a5d74d2299831c98dd48f86eb9930a91b18600fc30d590845 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_oracle_generator.py neg fixture/oracle/helper neg tests/integration/analysis/thermal_oracle_generator.py neg 유지 원문 검사 body 및 assertion 동일. 7f7c8cb6ea41ea38bda49db120a6d2cd2848779150281160c8d32c61b566b46e 7f7c8cb6ea41ea38bda49db120a6d2cd2848779150281160c8d32c61b566b46e 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_oracle_generator.py mul fixture/oracle/helper mul tests/integration/analysis/thermal_oracle_generator.py mul 유지 원문 검사 body 및 assertion 동일. 8be987139da7dda1626167aab28c0cff97553f2597f44e6e365ceab74df9bf11 8be987139da7dda1626167aab28c0cff97553f2597f44e6e365ceab74df9bf11 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_oracle_generator.py div fixture/oracle/helper div tests/integration/analysis/thermal_oracle_generator.py div 유지 원문 검사 body 및 assertion 동일. f88c22b7ecdac33d93b72af346a9809c1076dff336d7fe05e45a8ea0ce5cda98 f88c22b7ecdac33d93b72af346a9809c1076dff336d7fe05e45a8ea0ce5cda98 assert b[0] > 0 or b[1] < 0 assert b[0] > 0 or b[1] < 0 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_oracle_generator.py scale fixture/oracle/helper scale tests/integration/analysis/thermal_oracle_generator.py scale 유지 원문 검사 body 및 assertion 동일. b2d4e44e7198bea03d4b8e9aa478db99139a37e2df97553ad90c222e6c2d363e b2d4e44e7198bea03d4b8e9aa478db99139a37e2df97553ad90c222e6c2d363e 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_oracle_generator.py legendre fixture/oracle/helper legendre tests/integration/analysis/thermal_oracle_generator.py legendre 유지 원문 검사 body 및 assertion 동일. ac998c8e064d80b57bf76d7a32e7414ee2a98bc41f5bf66df11460e2a866ded5 ac998c8e064d80b57bf76d7a32e7414ee2a98bc41f5bf66df11460e2a866ded5 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_oracle_generator.py bracket fixture/oracle/helper bracket tests/integration/analysis/thermal_oracle_generator.py bracket 유지 원문 검사 body 및 assertion 동일. 6547b8bc55d38c8fc5108617a4b670ec13e1a35ff637dc4c2b49d4a89a27d47a 6547b8bc55d38c8fc5108617a4b670ec13e1a35ff637dc4c2b49d4a89a27d47a 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_oracle_generator.py rule fixture/oracle/helper rule tests/integration/analysis/thermal_oracle_generator.py rule 유지 원문 검사 body 및 assertion 동일. 66e3896608075721c4941eace553b6bd6dfb46f4035079736663145c9fe97998 66e3896608075721c4941eace553b6bd6dfb46f4035079736663145c9fe97998 assert pl * ph < 0 | assert all(a[1] < b[0] for a, b in zip(result, result[1:])) | assert sum(F(r[2]) for r in result) < 2 < sum(F(r[3]) for r in result) assert pl * ph < 0 | assert all(a[1] < b[0] for a, b in zip(result, result[1:])) | assert sum(F(r[2]) for r in result) < 2 < sum(F(r[3]) for r in result) 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_oracle_generator.py slab_fixtures fixture/oracle/helper slab_fixtures tests/integration/analysis/thermal_oracle_generator.py slab_fixtures 유지 원문 검사 body 및 assertion 동일. 975f511ac674e3b180991c3f72b487234ce8712cb424a85094be969c99361561 975f511ac674e3b180991c3f72b487234ce8712cb424a85094be969c99361561 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_oracle_generator.py support@1-14 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/thermal_oracle_generator.py file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a3be554d66397807817915492b0f6e5d20acf5873a97c99032017cd6cc6d01a5 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_oracle_generator.py support@215-244 helper/oracle/fixture/include/static assertion 구간: thermal_oracle, GaussPoint, Bracket, SlabCase tests/integration/analysis/thermal_oracle_generator.py file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5d91b01795d7cc5fbaa1b6c701fdd468978526c523b9a5d14136b3d82b5e9279 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_physics_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/integration/analysis/thermal_physics_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fd272656d0a4bfda4a8cf075b0064a27ac6f493cb32d73c32f7e308844148c81 fd272656d0a4bfda4a8cf075b0064a27ac6f493cb32d73c32f7e308844148c81 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.InsulatedUniformAndZeroRetainAllFramesWithConservation ThermalPhysics.InsulatedUniformAndZeroRetainAllFramesWithConservation; assertion 5개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.InsulatedUniformAndZeroRetainAllFramesWithConservation 유지 원문 검사 body 및 assertion 동일. edf0f539db5122e88db306402c100c973d9367d15826ff41df5831b9874050c7 edf0f539db5122e88db306402c100c973d9367d15826ff41df5831b9874050c7 EXPECT_LE(std::abs(frame.temperature[i] - temperature), bound) | EXPECT_EQ(metrics.capacity_budget, 0) | EXPECT_EQ(metrics.energy_defect, 0) | EXPECT_EQ(metrics.dissipation_defect, 0) | EXPECT_EQ(metrics.flux_values, 8U * 4U * 72U) EXPECT_LE(std::abs(frame.temperature[i] - temperature), bound) | EXPECT_EQ(metrics.capacity_budget, 0) | EXPECT_EQ(metrics.energy_defect, 0) | EXPECT_EQ(metrics.dissipation_defect, 0) | EXPECT_EQ(metrics.flux_values, 8U * 4U * 72U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.DiscreteEigenmodeHasFirstOrderTimeConvergence ThermalPhysics.DiscreteEigenmodeHasFirstOrderTimeConvergence; assertion 4개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.DiscreteEigenmodeHasFirstOrderTimeConvergence 유지 원문 검사 body 및 assertion 동일. 1d52f524f76f2684bb44a8432cd192d154ee2cc3246fbea4cbe564c74132a60d 1d52f524f76f2684bb44a8432cd192d154ee2cc3246fbea4cbe564c74132a60d EXPECT_LE(agreement.hi, total_budget.hi) | EXPECT_LE((total_budget / mode_norm).hi, error_norm.lo / 1000) | EXPECT_GE(order, .97) | EXPECT_LE(order, 1.02) EXPECT_LE(agreement.hi, total_budget.hi) | EXPECT_LE((total_budget / mode_norm).hi, error_norm.lo / 1000) | EXPECT_GE(order, .97) | EXPECT_LE(order, 1.02) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.SignedOverlappingAndConstrainedPowerBalanceByComponent ThermalPhysics.SignedOverlappingAndConstrainedPowerBalanceByComponent; assertion 6개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.SignedOverlappingAndConstrainedPowerBalanceByComponent 유지 원문 검사 body 및 assertion 동일. 2d2c5cc010b1987f2ab8df39ea5a39746869dd7c226da2fdfe5f0337a2adbe16 2d2c5cc010b1987f2ab8df39ea5a39746869dd7c226da2fdfe5f0337a2adbe16 EXPECT_EQ(p.assembly.HeatInput()[20], 5) | EXPECT_EQ(p.assembly.HeatInput()[34], -5) | EXPECT_DOUBLE_EQ(frame.temperature[i], other_frame.temperature[i]) | EXPECT_LE(first.Abs(), metrics.steps[step - 1].energy_bound) | EXPECT_LE(energy[1].Abs(), metrics.steps[step - 1].energy_bound) | EXPECT_LE(reaction_shift.Abs(), subtraction.hi) EXPECT_EQ(p.assembly.HeatInput()[20], 5) | EXPECT_EQ(p.assembly.HeatInput()[34], -5) | EXPECT_DOUBLE_EQ(frame.temperature[i], other_frame.temperature[i]) | EXPECT_LE(first.Abs(), metrics.steps[step - 1].energy_bound) | EXPECT_LE(energy[1].Abs(), metrics.steps[step - 1].energy_bound) | EXPECT_LE(reaction_shift.Abs(), subtraction.hi) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.PrivateFullEndStripRespectsThicknessMaterialJumpAndFoldResistance ThermalPhysics.PrivateFullEndStripRespectsThicknessMaterialJumpAndFoldResistance; assertion 7개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.PrivateFullEndStripRespectsThicknessMaterialJumpAndFoldResistance 유지 원문 검사 body 및 assertion 동일. 98716955c3d594ac8083ae9a474374c5888912c98ba4d073f991296e2b65c1ae 98716955c3d594ac8083ae9a474374c5888912c98ba4d073f991296e2b65c1ae ASSERT_GT(denominator.lo, 0) | EXPECT_LE((I{result.temperature[i]} - mid).Abs(), bound.hi + (mid - I{mid.Mid()}).Abs()) | EXPECT_LE((right - mid).Abs(), reaction_budget.hi) | EXPECT_LE((left + mid).Abs(), reaction_budget.hi) | EXPECT_LE((left + right).Abs(), result.evidence.energy_bound) | EXPECT_LE((I{q.X()} + mid).Abs(), 24 * bound.hi + Gamma(2048).hi * 24) | EXPECT_LE((I{component} + I{5} / I{3}).Abs(), 400 * bound.hi + Gamma(2048).hi * 400) ASSERT_GT(denominator.lo, 0) | EXPECT_LE((I{result.temperature[i]} - mid).Abs(), bound.hi + (mid - I{mid.Mid()}).Abs()) | EXPECT_LE((right - mid).Abs(), reaction_budget.hi) | EXPECT_LE((left + mid).Abs(), reaction_budget.hi) | EXPECT_LE((left + right).Abs(), result.evidence.energy_bound) | EXPECT_LE((I{q.X()} + mid).Abs(), 24 * bound.hi + Gamma(2048).hi * 24) | EXPECT_LE((I{component} + I{5} / I{3}).Abs(), 400 * bound.hi + Gamma(2048).hi * 400) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.PrivateAffineFieldRotationNormalAndUnaveragedMidplaneTraces ThermalPhysics.PrivateAffineFieldRotationNormalAndUnaveragedMidplaneTraces; assertion 7개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.PrivateAffineFieldRotationNormalAndUnaveragedMidplaneTraces 유지 원문 검사 body 및 assertion 동일. 0149790ce0000a7f3bfa36e529afff49efc9d2cd79b3a2fa2038d5eaf5765773 0149790ce0000a7f3bfa36e529afff49efc9d2cd79b3a2fa2038d5eaf5765773 EXPECT_FALSE(cache.matrix.has_value()) | EXPECT_LE((dot - I{static_cast(a == b)}).Abs(), (Gamma(2048) * absolute).hi) | EXPECT_GT(r[0].Cross(r[1]).Dot(r[2]), 0) | EXPECT_LE(std::abs(q[c] - expected[c]), budget) | EXPECT_LE((actual_local - expected_local).Abs(), budget + Gamma(16).hi * k * (8 + 16 / h) * scale) | EXPECT_EQ(traces[0][6 * point + 2].Dot(normal), 0) | EXPECT_LE( std::abs(traces[0][6 * point + 3].Dot(normal) + 4 * k / h), (Gamma(2048) * I{2 * k * (8 + 16 / h)}).hi) EXPECT_FALSE(cache.matrix.has_value()) | EXPECT_LE((dot - I{static_cast(a == b)}).Abs(), (Gamma(2048) * absolute).hi) | EXPECT_GT(r[0].Cross(r[1]).Dot(r[2]), 0) | EXPECT_LE(std::abs(q[c] - expected[c]), budget) | EXPECT_LE((actual_local - expected_local).Abs(), budget + Gamma(16).hi * k * (8 + 16 / h) * scale) | EXPECT_EQ(traces[0][6 * point + 2].Dot(normal), 0) | EXPECT_LE( std::abs(traces[0][6 * point + 3].Dot(normal) + 4 * k / h), (Gamma(2048) * I{2 * k * (8 + 16 / h)}).hi) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.FullTwoDimensionalMeshesHaveSecondOrderTemperatureAndFirstOrderGradient ThermalPhysics.FullTwoDimensionalMeshesHaveSecondOrderTemperatureAndFirstOrderGradient; assertion 11개 tests/integration/analysis/thermal_physics_test.cpp ThermalPhysics.FullTwoDimensionalMeshesHaveSecondOrderTemperatureAndFirstOrderGradient 유지 원문 검사 body 및 assertion 동일. 0ceca38a5febc9b2b1dd637a6fdc3c6bade908c088a878422dd93f60377d48e4 0ceca38a5febc9b2b1dd637a6fdc3c6bade908c088a878422dd93f60377d48e4 EXPECT_LE((twelve.temperature - sixteen.temperature).Abs(), sixteen.temperature.lo * 1e-8) | EXPECT_LE((twelve.gradient - sixteen.gradient).Abs(), sixteen.gradient.lo * 1e-8) | EXPECT_LE(agreement.hi, forward.hi) | EXPECT_LE(forward.hi, sixteen.temperature.lo / 1000) | EXPECT_LE((Sqrt(I{24. * n * n + 1280}) * forward).hi, sixteen.gradient.lo / 1000) | EXPECT_LE(temporal.hi, spatial_error.temperature.lo / 32) | EXPECT_GE(temperature_order, 1.95) | EXPECT_LE(temperature_order, 2.05) | EXPECT_GE(gradient_order, .98) | EXPECT_LE(gradient_order, 1.03) | EXPECT_EQ(8 * (metrics.temperature_values + metrics.flux_values), 81074472U) EXPECT_LE((twelve.temperature - sixteen.temperature).Abs(), sixteen.temperature.lo * 1e-8) | EXPECT_LE((twelve.gradient - sixteen.gradient).Abs(), sixteen.gradient.lo * 1e-8) | EXPECT_LE(agreement.hi, forward.hi) | EXPECT_LE(forward.hi, sixteen.temperature.lo / 1000) | EXPECT_LE((Sqrt(I{24. * n * n + 1280}) * forward).hi, sixteen.gradient.lo / 1000) | EXPECT_LE(temporal.hi, spatial_error.temperature.lo / 32) | EXPECT_GE(temperature_order, 1.95) | EXPECT_LE(temperature_order, 2.05) | EXPECT_GE(gradient_order, .98) | EXPECT_LE(gradient_order, 1.03) | EXPECT_EQ(8 * (metrics.temperature_values + metrics.flux_values), 81074472U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/analysis/thermal_physics_test.cpp ThermalSlab.ActualMeshesMatchCertifiedP2AndSeparateFourierError ThermalSlab.ActualMeshesMatchCertifiedP2AndSeparateFourierError; assertion 10개 tests/integration/analysis/thermal_physics_test.cpp ThermalSlab.ActualMeshesMatchCertifiedP2AndSeparateFourierError 유지 원문 검사 body 및 assertion 동일. 35d85f768c1c0df7ccdf1dcfe80c2a8294bffdfc09fc9f32bef7e529eaa29491 35d85f768c1c0df7ccdf1dcfe80c2a8294bffdfc09fc9f32bef7e529eaa29491 EXPECT_EQ(p.state.CommittedState().temperature[row], 0) | ASSERT_GT(inverse_denominator.lo, 0) | EXPECT_LE(std::abs(element[sample][0]), flux_budget.hi) | EXPECT_LE(std::abs(element[sample][1]), flux_budget.hi) | EXPECT_LE((samples[quantity] - first_mesh[quantity]).Abs(), (I{first_budget[group]} + I{solver_budget[group]}).hi) | EXPECT_LE(roundoff.hi, oracle.space[group] / 1000) | EXPECT_LE(agreement[group], roundoff.hi) | EXPECT_LE(physical[group], (I{oracle.space[group]} + I{time_error[group]} + roundoff).hi) | EXPECT_LE((I{physical[group]} - I{space_error[group]}).Abs(), (I{time_error[group]} + roundoff).hi) | EXPECT_TRUE(plateau) EXPECT_EQ(p.state.CommittedState().temperature[row], 0) | ASSERT_GT(inverse_denominator.lo, 0) | EXPECT_LE(std::abs(element[sample][0]), flux_budget.hi) | EXPECT_LE(std::abs(element[sample][1]), flux_budget.hi) | EXPECT_LE((samples[quantity] - first_mesh[quantity]).Abs(), (I{first_budget[group]} + I{solver_budget[group]}).hi) | EXPECT_LE(roundoff.hi, oracle.space[group] / 1000) | EXPECT_LE(agreement[group], roundoff.hi) | EXPECT_LE(physical[group], (I{oracle.space[group]} + I{time_error[group]} + roundoff).hi) | EXPECT_LE((I{physical[group]} - I{space_error[group]}).Abs(), (I{time_error[group]} + roundoff).hi) | EXPECT_TRUE(plateau) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/analysis/thermal_physics_test.cpp support@1-337 helper/oracle/fixture/include/static assertion 구간: ti, Down, Up, I, Mid, Abs, Sqrt, Square, Gamma, Pi, Cos, if, ExpNegative, while, Power, T, Take, Checked, Mesh, Prepared, RunMetrics, Advance, for, Print, CapacityNorm tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ab404661df8fb79566243b654ea29e927bfecaa40967268a503305ab70dc37d9 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_physics_test.cpp support@357-431 helper/oracle/fixture/include/static assertion 구간: VerifyDiscreteEigenmode tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 302213d4b2826eec0d855386a82aa934f7517ca58b5a648eee7d7312b379e6a7 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_physics_test.cpp support@539-602 helper/oracle/fixture/include/static assertion 구간: ZeroLike, CertifiedInverse, if tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ed80a8f1fe0a8a5a570f4eee10c069f506b9a07b7e1187cae5bd9481521fb22a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_physics_test.cpp support@799-870 helper/oracle/fixture/include/static assertion 구간: ThicknessMass, ThicknessGradient, SpatialError, IntegrateSpatialError, for tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6fe84510f8e89a0b45ac65e8b403973d1a9f3333b13d9c73deaf7076f9ca12ee 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_physics_test.cpp support@959-961 helper/oracle/fixture/include/static assertion 구간: Bracket, ThermalSlab tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 132c3f6724f847d2eb1cb70298ba8cbba9a8d0a5f070b51734e71be7e07e0616 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_physics_test.cpp support@1133-1141 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/analysis/thermal_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e43aa8e23b2faf52e75adc8f5647bf291d27a232530b2c49b1bb17df2d2e329e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_slab_oracle.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/integration/analysis/thermal_slab_oracle.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2d4d4f58df2a9f08b25f850c59617100f2a8af10ba7bdebb7ee80e15b079ad27 2d4d4f58df2a9f08b25f850c59617100f2a8af10ba7bdebb7ee80e15b079ad27 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/analysis/thermal_slab_oracle.h support@1-359 helper/oracle/fixture/include/static assertion 구간: thermal_oracle, Bracket, SlabCase tests/integration/analysis/thermal_slab_oracle.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3dfe0819fc272857692d3de89c30080b4f509c425b6169550bba89114be56c1f 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/app/eigen_application_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/integration/app/eigen_application_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7632397db2daf06eb0ff79a311f4f61832f415ebee4aebe334c8bf5d97e83772 7632397db2daf06eb0ff79a311f4f61832f415ebee4aebe334c8bf5d97e83772 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/app/eigen_application_test.cpp EigenApplicationTest.DispatchesFrequencyAndWritesModalSibling EigenApplicationTest.DispatchesFrequencyAndWritesModalSibling; assertion 9개 tests/integration/app/eigen_application_test.cpp EigenApplicationTest.DispatchesFrequencyAndWritesModalSibling 유지 원문 검사 body 및 assertion 동일. 68264a89e2eea378557e983ac8734ba58b464af83c2ac2b3628f1f1fafa70ee3 68264a89e2eea378557e983ac8734ba58b464af83c2ac2b3628f1f1fafa70ee3 "ASSERT_EQ(fesa::FesaApplication{}.Run({input_.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output_)) | ASSERT_TRUE(std::filesystem::exists(log_)) | EXPECT_EQ(std::filesystem::file_size(log_), 0U) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/modes"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/vectors"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" "ASSERT_EQ(fesa::FesaApplication{}.Run({input_.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output_)) | ASSERT_TRUE(std::filesystem::exists(log_)) | EXPECT_EQ(std::filesystem::file_size(log_), 0U) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/modes"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/vectors"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/app/eigen_application_test.cpp EigenApplicationTest.EmptyPencilPreservesPreviousFinalAndEmptyLog EigenApplicationTest.EmptyPencilPreservesPreviousFinalAndEmptyLog; assertion 3개 tests/integration/app/eigen_application_test.cpp EigenApplicationTest.EmptyPencilPreservesPreviousFinalAndEmptyLog 유지 원문 검사 body 및 assertion 동일. c919926a783cca5aacef016773b325fbad92557b269875233aa77feb5f4cf253 c919926a783cca5aacef016773b325fbad92557b269875233aa77feb5f4cf253 EXPECT_EQ(fesa::FesaApplication{}.Run({input_.string()}), 4) | EXPECT_TRUE(std::string(std::istreambuf_iterator{previous}, {}) == original) | EXPECT_EQ(std::filesystem::file_size(log_), 0U) EXPECT_EQ(fesa::FesaApplication{}.Run({input_.string()}), 4) | EXPECT_TRUE(std::string(std::istreambuf_iterator{previous}, {}) == original) | EXPECT_EQ(std::filesystem::file_size(log_), 0U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/app/eigen_application_test.cpp support@1-81 helper/oracle/fixture/include/static assertion 구간: EigenApplicationTest, WriteDeck tests/integration/app/eigen_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 34d85c877e290ff9094967418cedc08e2751fe6074e5f3007b0b1dd16a22e861 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/app/eigen_application_test.cpp support@110-111 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/eigen_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/app/fesa_application_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/integration/app/fesa_application_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 07d63eb93467254f069d6ae86e2af022287e1ff0dba8272dbb08e830709a9ff0 07d63eb93467254f069d6ae86e2af022287e1ff0dba8272dbb08e830709a9ff0 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/app/fesa_application_test.cpp LinearStaticCli.DefaultOutputUsesInputSiblingDerivedName LinearStaticCli.DefaultOutputUsesInputSiblingDerivedName; assertion 2개 tests/integration/app/fesa_application_test.cpp LinearStaticCli.DefaultOutputUsesInputSiblingDerivedName 유지 원문 검사 body 및 assertion 동일. 32a254e96576eb69d5fa023125fa0bf941cf0d2a73be539df402feb8687b097f 32a254e96576eb69d5fa023125fa0bf941cf0d2a73be539df402feb8687b097f "ASSERT_EQ(result.exit_code, 0) | EXPECT_FALSE(std::filesystem::exists(directory.Path() / ""results.h5""))" "ASSERT_EQ(result.exit_code, 0) | EXPECT_FALSE(std::filesystem::exists(directory.Path() / ""results.h5""))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/app/fesa_application_test.cpp FesaApplication.OpensDerivedLogBeforeInputMapping FesaApplication.OpensDerivedLogBeforeInputMapping; assertion 3개 tests/integration/app/fesa_application_test.cpp FesaApplication.OpensDerivedLogBeforeInputMapping 유지 원문 검사 body 및 assertion 동일. 0ff45e4e3ddc200c86c04a2c7aeafc773da2345f78afda2eadc06eddd4d6d006 0ff45e4e3ddc200c86c04a2c7aeafc773da2345f78afda2eadc06eddd4d6d006 EXPECT_EQ(result.exit_code, 3) | ASSERT_TRUE(std::filesystem::exists(log)) | EXPECT_EQ(std::filesystem::file_size(log), 0U) EXPECT_EQ(result.exit_code, 3) | ASSERT_TRUE(std::filesystem::exists(log)) | EXPECT_EQ(std::filesystem::file_size(log), 0U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/app/fesa_application_test.cpp LinearStaticCli.ReturnsEveryExactExitCodeAndOrderedDiagnostic LinearStaticCli.ReturnsEveryExactExitCodeAndOrderedDiagnostic; assertion 9개 tests/integration/app/fesa_application_test.cpp LinearStaticCli.ReturnsEveryExactExitCodeAndOrderedDiagnostic 유지 원문 검사 body 및 assertion 동일. 466456fe6183443de50011587199f89bcfe4345da298f5ffcb6fb3bf21b27f83 466456fe6183443de50011587199f89bcfe4345da298f5ffcb6fb3bf21b27f83 "EXPECT_EQ(success.exit_code, 0) | EXPECT_EQ(usage.exit_code, 2) | EXPECT_EQ(input.exit_code, 3) | EXPECT_EQ(model.exit_code, 4) | EXPECT_EQ(solver.exit_code, 5) | EXPECT_EQ(repeated_output.exit_code, 2) | EXPECT_NE(repeated_output.standard_error.find(""code=cli-usage""), std::string::npos) | EXPECT_EQ(unknown_output_option.exit_code, 2) | EXPECT_NE(unknown_output_option.standard_error.find(""code=cli-usage""), std::string::npos)" "EXPECT_EQ(success.exit_code, 0) | EXPECT_EQ(usage.exit_code, 2) | EXPECT_EQ(input.exit_code, 3) | EXPECT_EQ(model.exit_code, 4) | EXPECT_EQ(solver.exit_code, 5) | EXPECT_EQ(repeated_output.exit_code, 2) | EXPECT_NE(repeated_output.standard_error.find(""code=cli-usage""), std::string::npos) | EXPECT_EQ(unknown_output_option.exit_code, 2) | EXPECT_NE(unknown_output_option.standard_error.find(""code=cli-usage""), std::string::npos)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/app/fesa_application_test.cpp LinearStaticCli.OutputSubstringRejectionLeavesDerivedFilesUnchanged LinearStaticCli.OutputSubstringRejectionLeavesDerivedFilesUnchanged; assertion 7개 tests/integration/app/fesa_application_test.cpp LinearStaticCli.OutputSubstringRejectionLeavesDerivedFilesUnchanged 유지 원문 검사 body 및 assertion 동일. 15e900377c4aa714bb7d75ea9dcefa8e379107ec7b3aae46f27c39781c4d73e4 15e900377c4aa714bb7d75ea9dcefa8e379107ec7b3aae46f27c39781c4d73e4 "EXPECT_EQ(result.exit_code, 2) | EXPECT_EQ( std::count(result.standard_error.begin(), result.standard_error.end(), '\n'), 1U) | EXPECT_NE(result.standard_error.find(""code=cli-usage""), std::string::npos) | EXPECT_EQ(SnapshotFile(results).contents, previous_results.contents) | EXPECT_EQ(SnapshotFile(results).write_time, previous_results.write_time) | EXPECT_EQ(SnapshotFile(log).contents, previous_log.contents) | EXPECT_EQ(SnapshotFile(log).write_time, previous_log.write_time)" "EXPECT_EQ(result.exit_code, 2) | EXPECT_EQ( std::count(result.standard_error.begin(), result.standard_error.end(), '\n'), 1U) | EXPECT_NE(result.standard_error.find(""code=cli-usage""), std::string::npos) | EXPECT_EQ(SnapshotFile(results).contents, previous_results.contents) | EXPECT_EQ(SnapshotFile(results).write_time, previous_results.write_time) | EXPECT_EQ(SnapshotFile(log).contents, previous_log.contents) | EXPECT_EQ(SnapshotFile(log).write_time, previous_log.write_time)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/app/fesa_application_test.cpp LinearStaticCli.BusyOutputLeaseLeavesDerivedFilesUnchanged LinearStaticCli.BusyOutputLeaseLeavesDerivedFilesUnchanged; assertion 7개 tests/integration/app/fesa_application_test.cpp LinearStaticCli.BusyOutputLeaseLeavesDerivedFilesUnchanged 유지 원문 검사 body 및 assertion 동일. 28fec91071cedec614407118354e3d04c18bccaf67210f5351846382380f4def 28fec91071cedec614407118354e3d04c18bccaf67210f5351846382380f4def "ASSERT_TRUE(lease.HasValue()) | EXPECT_EQ(result.exit_code, 6) | EXPECT_NE(result.standard_error.find(""code=output-busy""), std::string::npos) | EXPECT_EQ(SnapshotFile(results).contents, previous_results.contents) | EXPECT_EQ(SnapshotFile(results).write_time, previous_results.write_time) | EXPECT_EQ(SnapshotFile(log).contents, previous_log.contents) | EXPECT_EQ(SnapshotFile(log).write_time, previous_log.write_time)" "ASSERT_TRUE(lease.HasValue()) | EXPECT_EQ(result.exit_code, 6) | EXPECT_NE(result.standard_error.find(""code=output-busy""), std::string::npos) | EXPECT_EQ(SnapshotFile(results).contents, previous_results.contents) | EXPECT_EQ(SnapshotFile(results).write_time, previous_results.write_time) | EXPECT_EQ(SnapshotFile(log).contents, previous_log.contents) | EXPECT_EQ(SnapshotFile(log).write_time, previous_log.write_time)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/app/fesa_application_test.cpp LinearStaticCli.OutputRequestsDoNotFilterMandatoryResults LinearStaticCli.OutputRequestsDoNotFilterMandatoryResults; assertion 6개 tests/integration/app/fesa_application_test.cpp LinearStaticCli.OutputRequestsDoNotFilterMandatoryResults 유지 원문 검사 body 및 assertion 동일. 36ab47846953b9f89467d79516155a88696bf76e752f34933d9dc6169a28f6a3 36ab47846953b9f89467d79516155a88696bf76e752f34933d9dc6169a28f6a3 "ASSERT_EQ(plain.exit_code, 0) | ASSERT_EQ(requested.exit_code, 0) | EXPECT_EQ(ReadDoubleDataset(requested_file.Get(), path), ReadDoubleDataset(plain_file.Get(), path)) | EXPECT_EQ(DatasetDimensions(plain_file.Get(), ""/diagnostics""), std::vector({0U})) | ASSERT_EQ(requested_diagnostics.size(), 1U) | EXPECT_GT(requested_diagnostics[0U], 0U)" "ASSERT_EQ(plain.exit_code, 0) | ASSERT_EQ(requested.exit_code, 0) | EXPECT_EQ(ReadDoubleDataset(requested_file.Get(), path), ReadDoubleDataset(plain_file.Get(), path)) | EXPECT_EQ(DatasetDimensions(plain_file.Get(), ""/diagnostics""), std::vector({0U})) | ASSERT_EQ(requested_diagnostics.size(), 1U) | EXPECT_GT(requested_diagnostics[0U], 0U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/app/fesa_application_test.cpp Mitc4ShellCli.WritesShellHdf5ThroughTheExistingApplicationRoute Mitc4ShellCli.WritesShellHdf5ThroughTheExistingApplicationRoute; assertion 1개 tests/integration/app/fesa_application_test.cpp Mitc4ShellCli.WritesShellHdf5ThroughTheExistingApplicationRoute 유지 원문 검사 body 및 assertion 동일. f437d9ab3ce6cc9db9242318e612bb8e0f5acdf70ce8ca47910c24a6e2fefbf9 f437d9ab3ce6cc9db9242318e612bb8e0f5acdf70ce8ca47910c24a6e2fefbf9 ASSERT_EQ(result.exit_code, 0) ASSERT_EQ(result.exit_code, 0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/app/fesa_application_test.cpp support@1-355 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, CurrentDirectoryGuard, Hdf5Handle, WriteText, AxialDeck, AllConstrainedShellDeck, OpenFile, OpenDataset, DatasetDimensions, ReadDoubleDataset, for, ReadStringAttribute, ExpectMandatoryInventory, ExpectFesaHdf5Identity, ExpectShellHdf5Identity, AppRun, RunApplication, catch, ExpectDiagnosticFieldOrder, FileSnapshot, SnapshotFile tests/integration/app/fesa_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 86ad01a4a2d9c96621b43860360f5db1b874f41c64a92f5331a7d2c5f7a090b2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/app/fesa_application_test.cpp support@370-371 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/fesa_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0d9a57af3a9392fe92e3468c81957fece71dccadbc9c5c1d2ae25abcdcfcbf96 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/app/fesa_application_test.cpp support@424-426 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/fesa_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2e743f1bbe2074a4e496d4e18d5f0fb1d01581db88662ac2b7000cbbf3235f48 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/app/fesa_application_test.cpp support@454-456 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/fesa_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 485a5a091491fa984b66ae21431bff2ac7e5bd7b5981645f350c41c4c4d1ceff 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/app/fesa_application_test.cpp support@517-518 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/fesa_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7210dc43217ee6c97222f26b3a7441a44ac19ae603a5360e08ac32b4c466f12d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/app/shell_surface_pressure_application_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/integration/app/shell_surface_pressure_application_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 369cc07b69791c67f80fefdfebd3b3986bdd7ec3ddae0fc20cc7f9f01f1e4d07 369cc07b69791c67f80fefdfebd3b3986bdd7ec3ddae0fc20cc7f9f01f1e4d07 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.LinearFailurePreservesExistingFinalAndNoCandidate ShellSurfacePressureApplication.LinearFailurePreservesExistingFinalAndNoCandidate; assertion 2개 tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.LinearFailurePreservesExistingFinalAndNoCandidate 유지 원문 검사 body 및 assertion 동일. 4352e654ee0cbb33ae714e1d066609c2a6e2daf28d16df65df2da019d8af4e50 4352e654ee0cbb33ae714e1d066609c2a6e2daf28d16df65df2da019d8af4e50 EXPECT_NE(exit_code, 0) | EXPECT_EQ(ReadBytes(output), previous) EXPECT_NE(exit_code, 0) | EXPECT_EQ(ReadBytes(output), previous) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingLinearBehavior ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingLinearBehavior; assertion 7개 tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingLinearBehavior 유지 원문 검사 body 및 assertion 동일. 53128674e01206097130820f16e2df3d01c24e0961f07bad72972d923ed96683 53128674e01206097130820f16e2df3d01c24e0961f07bad72972d923ed96683 "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/frames/0/nodal/displacement"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/frames/0/nodal/displacement"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingNonlinearBehavior ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingNonlinearBehavior; assertion 7개 tests/integration/app/shell_surface_pressure_application_test.cpp ShellSurfacePressureApplication.InputWithoutPressureRetainsExistingNonlinearBehavior 유지 원문 검사 body 및 assertion 동일. a92cd868028262e66a83bd771b9a654819e00285b03907d87f49c87ae6ceb5fe a92cd868028262e66a83bd771b9a654819e00285b03907d87f49c87ae6ceb5fe "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" "EXPECT_EQ(fesa::FesaApplication{}.Run({input.string()}), 0) | ASSERT_TRUE(std::filesystem::exists(output)) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file, ""/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GE(H5Fclose(file), 0)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/app/shell_surface_pressure_application_test.cpp support@1-137 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, WriteText, ReadBytes, ShellDeck, NonlinearShellDeck tests/integration/app/shell_surface_pressure_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 018b3c3f47b9ffbf3ee6fc438e63618a745aef6195e249c4b5acf8cbfd00ac04 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/app/solid_application_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/integration/app/solid_application_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4fe3fa020951bd776343af5d26def36392794dd74c5e19ca3d57427c489c6831 4fe3fa020951bd776343af5d26def36392794dd74c5e19ca3d57427c489c6831 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/app/solid_application_test.cpp SolidApplication.AllFiveActualProceduresWriteOfficialSolidSchema SolidApplication.AllFiveActualProceduresWriteOfficialSolidSchema; assertion 6개 tests/integration/app/solid_application_test.cpp SolidApplication.AllFiveActualProceduresWriteOfficialSolidSchema 유지 원문 검사 body 및 assertion 동일. 0cddac0e04be42a231c5f6677e088fd87072a425b750a23aab5690b0ed8c84bd 0cddac0e04be42a231c5f6677e088fd87072a425b750a23aab5690b0ed8c84bd ASSERT_EQ(fesa::FesaApplication{}.Run({files.input.string()}), 0) | ASSERT_GE(f, 0) | ASSERT_GE(g, 0) | ASSERT_GE(a, 0) | ASSERT_GE(H5Aread(a, t, &value), 0) | EXPECT_STREQ(value, solid_output_test::Procedure(p)) ASSERT_EQ(fesa::FesaApplication{}.Run({files.input.string()}), 0) | ASSERT_GE(f, 0) | ASSERT_GE(g, 0) | ASSERT_GE(a, 0) | ASSERT_GE(H5Aread(a, t, &value), 0) | EXPECT_STREQ(value, solid_output_test::Procedure(p)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/app/solid_application_test.cpp SolidApplication.NativeExecutableRunsAllFiveAndKeepsWarningsAndTypedLogs SolidApplication.NativeExecutableRunsAllFiveAndKeepsWarningsAndTypedLogs; assertion 20개 tests/integration/app/solid_application_test.cpp SolidApplication.NativeExecutableRunsAllFiveAndKeepsWarningsAndTypedLogs 유지 원문 검사 body 및 assertion 동일. 6fa687c0d3ddc09ca8dfdbe276e14156ffb4b98874acb4e66b2a3a815956eb96 6fa687c0d3ddc09ca8dfdbe276e14156ffb4b98874acb4e66b2a3a815956eb96 "ASSERT_GT(length, 0u) | ASSERT_LT(length, module.size()) | ASSERT_TRUE(std::filesystem::exists(executable)) | ASSERT_EQ(fesa::FesaApplication{}.Run({files.input.string()}), 0) | ASSERT_TRUE(CreateProcessW(executable.c_str(), command.data(), nullptr, nullptr, FALSE, CREATE_NO_WINDOW, nullptr, nullptr, &startup, &process)) | EXPECT_TRUE(GetExitCodeProcess(process.hProcess, &exit)) | ASSERT_EQ(wait, WAIT_OBJECT_0) | ASSERT_EQ(exit, 0u) | EXPECT_GT(H5Fis_hdf5(files.output.string().c_str()), 0) | EXPECT_EQ(NumericSnapshot(files.output, p), expected) | EXPECT_EQ(log.find(""correction_rotation""), std::string::npos) | EXPECT_EQ(log.find(""residual_moment""), std::string::npos) | EXPECT_NE(log.find(""schema=solid-static-log-v1""), std::string::npos) | EXPECT_NE(log.find(""schema=solid-hht-log-v1""), std::string::npos) | EXPECT_NE(log.find(""h2_physical_da_over_L=""), std::string::npos) | EXPECT_NE(log.find(""h2_algorithmic_dA_over_L=""), std::string::npos) | EXPECT_NE(log.find(""normalized-high-low-physical-state;RN64-observables""), std::string::npos) | ASSERT_GE(file, 0) | ASSERT_GE(diagnostics, 0) | EXPECT_GT(rows, 0u)" "ASSERT_GT(length, 0u) | ASSERT_LT(length, module.size()) | ASSERT_TRUE(std::filesystem::exists(executable)) | ASSERT_EQ(fesa::FesaApplication{}.Run({files.input.string()}), 0) | ASSERT_TRUE(CreateProcessW(executable.c_str(), command.data(), nullptr, nullptr, FALSE, CREATE_NO_WINDOW, nullptr, nullptr, &startup, &process)) | EXPECT_TRUE(GetExitCodeProcess(process.hProcess, &exit)) | ASSERT_EQ(wait, WAIT_OBJECT_0) | ASSERT_EQ(exit, 0u) | EXPECT_GT(H5Fis_hdf5(files.output.string().c_str()), 0) | EXPECT_EQ(NumericSnapshot(files.output, p), expected) | EXPECT_EQ(log.find(""correction_rotation""), std::string::npos) | EXPECT_EQ(log.find(""residual_moment""), std::string::npos) | EXPECT_NE(log.find(""schema=solid-static-log-v1""), std::string::npos) | EXPECT_NE(log.find(""schema=solid-hht-log-v1""), std::string::npos) | EXPECT_NE(log.find(""h2_physical_da_over_L=""), std::string::npos) | EXPECT_NE(log.find(""h2_algorithmic_dA_over_L=""), std::string::npos) | EXPECT_NE(log.find(""normalized-high-low-physical-state;RN64-observables""), std::string::npos) | ASSERT_GE(file, 0) | ASSERT_GE(diagnostics, 0) | EXPECT_GT(rows, 0u)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/app/solid_application_test.cpp SolidApplication.SuccessfulWarningsRetainSourceLocationAndTarget SolidApplication.SuccessfulWarningsRetainSourceLocationAndTarget; assertion 5개 tests/integration/app/solid_application_test.cpp SolidApplication.SuccessfulWarningsRetainSourceLocationAndTarget 유지 원문 검사 body 및 assertion 동일. cb7efd965f709cfc1e66b1751aaaf1c95e875fafa95a45ce6b96ab5f92a47918 cb7efd965f709cfc1e66b1751aaaf1c95e875fafa95a45ce6b96ab5f92a47918 "ASSERT_EQ(exit, 0) | EXPECT_NE(diagnostics.find(""code=inactive-solid-rotation-boundary""), std::string::npos) | EXPECT_NE(diagnostics.find(""entity_identity=Fixed""), std::string::npos) | EXPECT_NE(diagnostics.find(""line=30""), std::string::npos) | EXPECT_NE(diagnostics.find(files.input.generic_u8string()), std::string::npos)" "ASSERT_EQ(exit, 0) | EXPECT_NE(diagnostics.find(""code=inactive-solid-rotation-boundary""), std::string::npos) | EXPECT_NE(diagnostics.find(""entity_identity=Fixed""), std::string::npos) | EXPECT_NE(diagnostics.find(""line=30""), std::string::npos) | EXPECT_NE(diagnostics.find(files.input.generic_u8string()), std::string::npos)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/integration/app/solid_application_test.cpp support@1-73 helper/oracle/fixture/include/static assertion 구간: NumericSnapshot, for, if tests/integration/app/solid_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fae87db4332db2d58466c577879e346b24a315f8b02442f98f89f063011d1cdf 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/app/solid_application_test.cpp support@174-174 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/solid_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/app/thermal_application_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/integration/app/thermal_application_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 921d9686ce735dc7e44d0e9bd61580838f969ce08e3f858550a099c9fc98cbef 921d9686ce735dc7e44d0e9bd61580838f969ce08e3f858550a099c9fc98cbef 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.ExecutesThermalInputThroughAtomicOutput ThermalApplicationTest.ExecutesThermalInputThroughAtomicOutput; assertion 27개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.ExecutesThermalInputThroughAtomicOutput 유지 원문 검사 body 및 assertion 동일. f6df36c87719748f81960dad63fa6e838d8bc71a7814c36d0d7cb28449bed204 f6df36c87719748f81960dad63fa6e838d8bc71a7814c36d0d7cb28449bed204 "ASSERT_EQ(run.exit_code, 0) | EXPECT_GT(H5Fis_hdf5(Path(""Heat.Model_results.h5"").string().c_str()), 0) | EXPECT_EQ(std::filesystem::file_size(Path(""Heat.Model_log.txt"")), 0U) | EXPECT_EQ(StringAttribute(metadata.Get(), ""source_step_name""), ""Raw Heat"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""feature_id""), ""shell-transient-heat-transfer"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""analysis_procedure""), ""uncoupled-transient-heat-transfer"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""source_input_identity"") .find(""path="" + Path(""Heat.Model.INP"").generic_u8string() + "";content_identity=""), 0U) | ASSERT_EQ(frames.size(), 4U) | EXPECT_EQ(frame.frame_index, index) | EXPECT_EQ(frame.increment_index, index) | EXPECT_EQ(frame.is_initial, index == 0 ? 1 : 0) | EXPECT_DOUBLE_EQ(frame.time, index == 3 ? .7 : static_cast(index) * .3) | EXPECT_DOUBLE_EQ(frame.time_increment, index == 0 ? 0 : index == 3 ? std::fma(-2., .3, .7) : .3) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/temperature""), (std::vector{4, 5})) | EXPECT_TRUE(std::isfinite(value)) | EXPECT_LT(value, 0.) | EXPECT_DOUBLE_EQ(value, -2.) | EXPECT_EQ( H5Lexists(file.Get(), (root + ""/nodal/reaction_heat_rate"").c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), (root + ""/element"").c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/reaction_heat_rate""), (std::vector{0})) | EXPECT_EQ(Shape(file.Get(), root + ""/element/heat_flux""), (std::vector{1, 4, 6, 3})) | EXPECT_EQ(Shape(file.Get(), ""/diagnostics""), (std::vector{1})) | ASSERT_GE(H5Tset_size(string_type.Get(), H5T_VARIABLE), 0) | ASSERT_GE(H5Tset_cset(string_type.Get(), H5T_CSET_UTF8), 0) | ASSERT_GE(H5Tinsert(row_type.Get(), ""code"", 0, string_type.Get()), 0) | ASSERT_GE(H5Dread(diagnostics.Get(), row_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &code), 0) | EXPECT_STREQ(code, ""ignored-input-keyword"")" "ASSERT_EQ(run.exit_code, 0) | EXPECT_GT(H5Fis_hdf5(Path(""Heat.Model_results.h5"").string().c_str()), 0) | EXPECT_EQ(std::filesystem::file_size(Path(""Heat.Model_log.txt"")), 0U) | EXPECT_EQ(StringAttribute(metadata.Get(), ""source_step_name""), ""Raw Heat"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""feature_id""), ""shell-transient-heat-transfer"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""analysis_procedure""), ""uncoupled-transient-heat-transfer"") | EXPECT_EQ(StringAttribute(metadata.Get(), ""source_input_identity"") .find(""path="" + Path(""Heat.Model.INP"").generic_u8string() + "";content_identity=""), 0U) | ASSERT_EQ(frames.size(), 4U) | EXPECT_EQ(frame.frame_index, index) | EXPECT_EQ(frame.increment_index, index) | EXPECT_EQ(frame.is_initial, index == 0 ? 1 : 0) | EXPECT_DOUBLE_EQ(frame.time, index == 3 ? .7 : static_cast(index) * .3) | EXPECT_DOUBLE_EQ(frame.time_increment, index == 0 ? 0 : index == 3 ? std::fma(-2., .3, .7) : .3) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/temperature""), (std::vector{4, 5})) | EXPECT_TRUE(std::isfinite(value)) | EXPECT_LT(value, 0.) | EXPECT_DOUBLE_EQ(value, -2.) | EXPECT_EQ( H5Lexists(file.Get(), (root + ""/nodal/reaction_heat_rate"").c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), (root + ""/element"").c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/reaction_heat_rate""), (std::vector{0})) | EXPECT_EQ(Shape(file.Get(), root + ""/element/heat_flux""), (std::vector{1, 4, 6, 3})) | EXPECT_EQ(Shape(file.Get(), ""/diagnostics""), (std::vector{1})) | ASSERT_GE(H5Tset_size(string_type.Get(), H5T_VARIABLE), 0) | ASSERT_GE(H5Tset_cset(string_type.Get(), H5T_CSET_UTF8), 0) | ASSERT_GE(H5Tinsert(row_type.Get(), ""code"", 0, string_type.Get()), 0) | ASSERT_GE(H5Dread(diagnostics.Get(), row_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &code), 0) | EXPECT_STREQ(code, ""ignored-input-keyword"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.EndpointCloseUsesActualDeltaAndLargeIncrementUsesPeriod ThermalApplicationTest.EndpointCloseUsesActualDeltaAndLargeIncrementUsesPeriod; assertion 8개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.EndpointCloseUsesActualDeltaAndLargeIncrementUsesPeriod 유지 원문 검사 body 및 assertion 동일. ad5bd959038bf1bc1167ca2796d5badbb5ec663f87fe89df335c5b8acb760992 ad5bd959038bf1bc1167ca2796d5badbb5ec663f87fe89df335c5b8acb760992 ASSERT_EQ(run.exit_code, 0) | ASSERT_EQ(frames.size(), 4U) | EXPECT_DOUBLE_EQ(frames.back().time, .9) | EXPECT_DOUBLE_EQ(frames.back().time_increment, .3) | EXPECT_NE(frames.back().time_increment, frames[3].time - frames[2].time) | ASSERT_EQ(frames.size(), 2U) | EXPECT_DOUBLE_EQ(frames.back().time, .7) | EXPECT_DOUBLE_EQ(frames.back().time_increment, .7) ASSERT_EQ(run.exit_code, 0) | ASSERT_EQ(frames.size(), 4U) | EXPECT_DOUBLE_EQ(frames.back().time, .9) | EXPECT_DOUBLE_EQ(frames.back().time_increment, .3) | EXPECT_NE(frames.back().time_increment, frames[3].time - frames[2].time) | ASSERT_EQ(frames.size(), 2U) | EXPECT_DOUBLE_EQ(frames.back().time, .7) | EXPECT_DOUBLE_EQ(frames.back().time_increment, .7) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.RawInitialPrecedesPrescribedBoundaryProjection ThermalApplicationTest.RawInitialPrecedesPrescribedBoundaryProjection; assertion 5개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.RawInitialPrecedesPrescribedBoundaryProjection 유지 원문 검사 body 및 assertion 동일. 28ecc20ef5539e10837bbd26888c6c4700394e032a556a72b3732e7322abaad7 28ecc20ef5539e10837bbd26888c6c4700394e032a556a72b3732e7322abaad7 "ASSERT_EQ(run.exit_code, 0) | EXPECT_DOUBLE_EQ(value, -2) | EXPECT_DOUBLE_EQ(temperature[5 * node], 1) | EXPECT_DOUBLE_EQ(temperature[5 * node + 4], 1) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/reaction_heat_rate""), (std::vector{8}))" "ASSERT_EQ(run.exit_code, 0) | EXPECT_DOUBLE_EQ(value, -2) | EXPECT_DOUBLE_EQ(temperature[5 * node], 1) | EXPECT_DOUBLE_EQ(temperature[5 * node + 4], 1) | EXPECT_EQ(Shape(file.Get(), root + ""/nodal/reaction_heat_rate""), (std::vector{8}))" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.InputAndSolverFailuresPreservePreviousFinal ThermalApplicationTest.InputAndSolverFailuresPreservePreviousFinal; assertion 4개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.InputAndSolverFailuresPreservePreviousFinal 유지 원문 검사 body 및 assertion 동일. cfe5e9a34c0cbd33635c6d35935173a280c1378f0735dfc9e5a5777696c1bc7b cfe5e9a34c0cbd33635c6d35935173a280c1378f0735dfc9e5a5777696c1bc7b "EXPECT_EQ(run.exit_code, test.second) | EXPECT_FALSE(run.error.empty()) | EXPECT_EQ(ReadBytes(Path(""model_results.h5"")), previous) | EXPECT_EQ(std::filesystem::file_size(Path(""model_log.txt"")), 0U)" "EXPECT_EQ(run.exit_code, test.second) | EXPECT_FALSE(run.error.empty()) | EXPECT_EQ(ReadBytes(Path(""model_results.h5"")), previous) | EXPECT_EQ(std::filesystem::file_size(Path(""model_log.txt"")), 0U)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.BusyLeasePrecedesParsingAndPreservesBothOutputs ThermalApplicationTest.BusyLeasePrecedesParsingAndPreservesBothOutputs; assertion 5개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.BusyLeasePrecedesParsingAndPreservesBothOutputs 유지 원문 검사 body 및 assertion 동일. be71949b43487d6eed86586a4994ed0d9fd08e1263cb47f5d13b7c995aaf01a0 be71949b43487d6eed86586a4994ed0d9fd08e1263cb47f5d13b7c995aaf01a0 "ASSERT_TRUE(lease.HasValue()) | EXPECT_EQ(run.exit_code, 6) | EXPECT_NE(run.error.find(""code=output-busy""), std::string::npos) | EXPECT_EQ(ReadBytes(paths.results_path), ""previous final"") | EXPECT_EQ(ReadBytes(paths.log_path), ""previous log"")" "ASSERT_TRUE(lease.HasValue()) | EXPECT_EQ(run.exit_code, 6) | EXPECT_NE(run.error.find(""code=output-busy""), std::string::npos) | EXPECT_EQ(ReadBytes(paths.results_path), ""previous final"") | EXPECT_EQ(ReadBytes(paths.log_path), ""previous log"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.RealFinalizeFailurePreservesFinalAndRemovesCandidate ThermalApplicationTest.RealFinalizeFailurePreservesFinalAndRemovesCandidate; assertion 6개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.RealFinalizeFailurePreservesFinalAndRemovesCandidate 유지 원문 검사 body 및 assertion 동일. 5f48d5b0464432fadf5f0f9522ae62bb204c588633cc77c86517b58a81667be0 5f48d5b0464432fadf5f0f9522ae62bb204c588633cc77c86517b58a81667be0 "ASSERT_NE(locked, INVALID_HANDLE_VALUE) | EXPECT_TRUE(CloseHandle(locked)) | EXPECT_EQ(run.exit_code, 6) | EXPECT_EQ(ReadBytes(Path(""model_results.h5"")), ""previous final"") | EXPECT_EQ(std::filesystem::file_size(Path(""model_log.txt"")), 0U) | EXPECT_EQ(entry.path().filename().string().find("".tmp.""), std::string::npos)" "ASSERT_NE(locked, INVALID_HANDLE_VALUE) | EXPECT_TRUE(CloseHandle(locked)) | EXPECT_EQ(run.exit_code, 6) | EXPECT_EQ(ReadBytes(Path(""model_results.h5"")), ""previous final"") | EXPECT_EQ(std::filesystem::file_size(Path(""model_log.txt"")), 0U) | EXPECT_EQ(entry.path().filename().string().find("".tmp.""), std::string::npos)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.MissingAdaptersHaveSpecificFailureCategories ThermalApplicationTest.MissingAdaptersHaveSpecificFailureCategories; assertion 14개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.MissingAdaptersHaveSpecificFailureCategories 유지 원문 검사 body 및 assertion 동일. 96329adf31d0773e0ed5ee9335cb9c21be7908e2179d2c8abb4a74f7a5ba71c1 96329adf31d0773e0ed5ee9335cb9c21be7908e2179d2c8abb4a74f7a5ba71c1 "ASSERT_TRUE(prepared.HasValue()) | ASSERT_EQ(prepared.Value().domain.Steps().Size(), 0U) | ASSERT_TRUE(log.Open(Path(""model_log.txt"")).IsOk()) | ASSERT_FALSE(missing.HasValue()) | EXPECT_EQ(missing.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(missing.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].code, ""missing-thermal-executor"") | ASSERT_TRUE(outcome.HasValue()) | ASSERT_TRUE( std::holds_alternative(outcome.Value())) | ASSERT_TRUE(log.Close().IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0].code, ""missing-thermal-writer"") | EXPECT_EQ(ReadBytes(paths.results_path), ""previous final"")" "ASSERT_TRUE(prepared.HasValue()) | ASSERT_EQ(prepared.Value().domain.Steps().Size(), 0U) | ASSERT_TRUE(log.Open(Path(""model_log.txt"")).IsOk()) | ASSERT_FALSE(missing.HasValue()) | EXPECT_EQ(missing.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(missing.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].code, ""missing-thermal-executor"") | ASSERT_TRUE(outcome.HasValue()) | ASSERT_TRUE( std::holds_alternative(outcome.Value())) | ASSERT_TRUE(log.Close().IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0].code, ""missing-thermal-writer"") | EXPECT_EQ(ReadBytes(paths.results_path), ""previous final"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.ExistingStructuralStaticNonlinearAndHhtRoutesRemainAvailable ThermalApplicationTest.ExistingStructuralStaticNonlinearAndHhtRoutesRemainAvailable; assertion 2개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.ExistingStructuralStaticNonlinearAndHhtRoutesRemainAvailable 유지 원문 검사 body 및 assertion 동일. b103892efb098072fe2035f37dbc8731fa5d2819279d54cc1cc3a7e0dfc3b29d b103892efb098072fe2035f37dbc8731fa5d2819279d54cc1cc3a7e0dfc3b29d "ASSERT_EQ(run.exit_code, 0) | EXPECT_GT(H5Fis_hdf5(Path(""model_results.h5"").string().c_str()), 0)" "ASSERT_EQ(run.exit_code, 0) | EXPECT_GT(H5Fis_hdf5(Path(""model_results.h5"").string().c_str()), 0)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.NativeExecutableAcceptsThermalInputAndRejectsInteriorBoundary ThermalApplicationTest.NativeExecutableAcceptsThermalInputAndRejectsInteriorBoundary; assertion 9개 tests/integration/app/thermal_application_test.cpp ThermalApplicationTest.NativeExecutableAcceptsThermalInputAndRejectsInteriorBoundary 유지 원문 검사 body 및 assertion 동일. 24830ff7dc3c76bc4465be558297597f8626d2f17796512e86b1853983bb48da 24830ff7dc3c76bc4465be558297597f8626d2f17796512e86b1853983bb48da "ASSERT_GT(length, 0U) | ASSERT_LT(length, module.size()) | ASSERT_TRUE(std::filesystem::exists(executable)) | ASSERT_TRUE(CreateProcessW(executable.c_str(), command.data(), nullptr, nullptr, FALSE, CREATE_NO_WINDOW, nullptr, nullptr, &startup, &process)) | EXPECT_TRUE(GetExitCodeProcess(process.hProcess, &exit)) | ASSERT_EQ(wait, WAIT_OBJECT_0) | EXPECT_EQ(exit, valid ? 0U : 3U) | EXPECT_GT(H5Fis_hdf5(Path(""native_results.h5"").string().c_str()), 0) | EXPECT_EQ(ReadBytes(Path(""native_results.h5"")), previous)" "ASSERT_GT(length, 0U) | ASSERT_LT(length, module.size()) | ASSERT_TRUE(std::filesystem::exists(executable)) | ASSERT_TRUE(CreateProcessW(executable.c_str(), command.data(), nullptr, nullptr, FALSE, CREATE_NO_WINDOW, nullptr, nullptr, &startup, &process)) | EXPECT_TRUE(GetExitCodeProcess(process.hProcess, &exit)) | ASSERT_EQ(wait, WAIT_OBJECT_0) | EXPECT_EQ(exit, valid ? 0U : 3U) | EXPECT_GT(H5Fis_hdf5(Path(""native_results.h5"").string().c_str()), 0) | EXPECT_EQ(ReadBytes(Path(""native_results.h5"")), previous)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/integration/app/thermal_application_test.cpp support@1-210 helper/oracle/fixture/include/static assertion 구간: HdfHandle, Get, Shape, Doubles, StringAttribute, FrameRow, Frames, ReadBytes, Replace, AppRun, RunApplication, ThermalApplicationTest, Path, Write, Deck tests/integration/app/thermal_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c9bedffeff261fb62a5b5b120bbf06fa4662699a430a6974de8875b45fd134ff 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/integration/app/thermal_application_test.cpp support@492-493 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/integration/app/thermal_application_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/reference/b33_reference_comparison_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/reference/b33_reference_comparison_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8de80a54713f644fb3f7e0d4a1f2d633cf05973b3fcb71ad23bb9e3b318b5296 8de80a54713f644fb3f7e0d4a1f2d633cf05973b3fcb71ad23bb9e3b318b5296 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/b33_reference_comparison_test.cpp B33ReferenceComparison.GeneratesAuthoritativeHdf5AndComparisonEvidence B33ReferenceComparison.GeneratesAuthoritativeHdf5AndComparisonEvidence; assertion 35개 tests/reference/b33_reference_comparison_test.cpp B33ReferenceComparison.GeneratesAuthoritativeHdf5AndComparisonEvidence 유지 원문 검사 body 및 assertion 동일. 082a94dba1c41737c5aad55d0f5f0c0e94a339a24de29e3dfba6d70ddf48f0ea 082a94dba1c41737c5aad55d0f5f0c0e94a339a24de29e3dfba6d70ddf48f0ea "ASSERT_TRUE(std::filesystem::create_directories(output_directory, error)) | ASSERT_FALSE(error) | ASSERT_EQ(reference_before.size(), 4U) | EXPECT_EQ(reference_before[0U].relative_path, std::filesystem::path{""cantilever beam displacements.csv""}) | EXPECT_EQ(reference_before[1U].relative_path, std::filesystem::path{""cantilever beam elemental forces.csv""}) | EXPECT_EQ(reference_before[2U].relative_path, std::filesystem::path{""cantilever beam reactions.csv""}) | EXPECT_EQ(reference_before[3U].relative_path, std::filesystem::path{""cantilever beam.inp""}) | ASSERT_TRUE(std::filesystem::copy_file(input, execution_input, error)) | ASSERT_FALSE(error) | ASSERT_EQ(application.Run({execution_input.string()}), 0) | ASSERT_TRUE(std::filesystem::is_regular_file(results)) | ASSERT_GT(H5Fis_hdf5(results.string().c_str()), 0) | EXPECT_GT(StressRowCount(results), 0U) | ASSERT_TRUE(comparison_result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.rows.size(), kExpectedRowCount) | ASSERT_EQ(report.metrics.size(), kExpectedMetricCount) | EXPECT_TRUE(std::all_of( report.rows.begin(), report.rows.end(), [](const fesa::test::RowDecision& row) { return row.passed && std::isfinite(row.absolute_error) && std::isfinite(row.tolerance) && row.tolerance >= 0.0 && std::isfinite(row.reference_scale) && std::isfinite(row.near_zero_band) && std::isfinite(row.relative_error) && row.fesa.model_id == ""cantilever-beam-b33"" && row.reference.model_id == ""cantilever-beam-b33"" && row.fesa.step_name == ""Step-1"" && row.reference.step_name == ""Step-1"" && row.fesa.frame_index == 0U && row.reference.frame_index == 0U && row.fesa.instance_name == ""PART-1_1-1"" && row.reference.instance_name == ""PART-1_1-1"" && !row.fesa.hdf5_dataset_path.empty(); })) | EXPECT_TRUE( std::all_of(report.metrics.begin(), report.metrics.end(), [](const fesa::test::ComponentMetrics& metric) { return std::isfinite(metric.reference_scale) && std::isfinite(metric.near_zero_band) && std::isfinite(metric.maximum_absolute_error) && std::isfinite(metric.relative_rms) && metric.rms_passed && metric.passed && metric.row_count > 0U && !metric.components.empty(); })) | EXPECT_FALSE(report.stress_comparison_applicable) | EXPECT_NE(report.stress_comparison_reason.find(""N/A""), std::string::npos) | EXPECT_NE(report.stress_comparison_reason.find(""HDF5""), std::string::npos) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | EXPECT_TRUE(std::isfinite(report.physics_evidence.free_residual_norm)) | EXPECT_LE(report.physics_evidence.free_residual_norm, 1.0e-3) | EXPECT_LE(Norm(Sum(report.physics_evidence.applied_force, report.physics_evidence.reaction_force)), 1.0e-3) | EXPECT_LE(Norm(Sum(report.physics_evidence.applied_moment_about_origin, report.physics_evidence.reaction_moment_about_origin)), 1.0e-2) | ASSERT_TRUE(fesa::test::ReferenceComparison::WriteDeterministicJson( report, comparison) .IsOk()) | ASSERT_TRUE(std::filesystem::is_regular_file(comparison)) | EXPECT_NE(json.find(""\""stress_comparison_applicable\"":false""), std::string::npos) | EXPECT_NE(json.find(""\""physics_evidence\""""), std::string::npos) | EXPECT_NE(json.find(""\""source_element_label\""""), std::string::npos) | EXPECT_NE(json.find(""\""family_identity\""""), std::string::npos) | EXPECT_NE(json.find(""\""row_count\""""), std::string::npos) | EXPECT_EQ(generated_names, (std::vector{""cantilever beam.inp"", ""cantilever beam_log.txt"", ""cantilever beam_results.h5"", ""comparison.json""}))" "ASSERT_TRUE(std::filesystem::create_directories(output_directory, error)) | ASSERT_FALSE(error) | ASSERT_EQ(reference_before.size(), 4U) | EXPECT_EQ(reference_before[0U].relative_path, std::filesystem::path{""cantilever beam displacements.csv""}) | EXPECT_EQ(reference_before[1U].relative_path, std::filesystem::path{""cantilever beam elemental forces.csv""}) | EXPECT_EQ(reference_before[2U].relative_path, std::filesystem::path{""cantilever beam reactions.csv""}) | EXPECT_EQ(reference_before[3U].relative_path, std::filesystem::path{""cantilever beam.inp""}) | ASSERT_TRUE(std::filesystem::copy_file(input, execution_input, error)) | ASSERT_FALSE(error) | ASSERT_EQ(application.Run({execution_input.string()}), 0) | ASSERT_TRUE(std::filesystem::is_regular_file(results)) | ASSERT_GT(H5Fis_hdf5(results.string().c_str()), 0) | EXPECT_GT(StressRowCount(results), 0U) | ASSERT_TRUE(comparison_result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.rows.size(), kExpectedRowCount) | ASSERT_EQ(report.metrics.size(), kExpectedMetricCount) | EXPECT_TRUE(std::all_of( report.rows.begin(), report.rows.end(), [](const fesa::test::RowDecision& row) { return row.passed && std::isfinite(row.absolute_error) && std::isfinite(row.tolerance) && row.tolerance >= 0.0 && std::isfinite(row.reference_scale) && std::isfinite(row.near_zero_band) && std::isfinite(row.relative_error) && row.fesa.model_id == ""cantilever-beam-b33"" && row.reference.model_id == ""cantilever-beam-b33"" && row.fesa.step_name == ""Step-1"" && row.reference.step_name == ""Step-1"" && row.fesa.frame_index == 0U && row.reference.frame_index == 0U && row.fesa.instance_name == ""PART-1_1-1"" && row.reference.instance_name == ""PART-1_1-1"" && !row.fesa.hdf5_dataset_path.empty(); })) | EXPECT_TRUE( std::all_of(report.metrics.begin(), report.metrics.end(), [](const fesa::test::ComponentMetrics& metric) { return std::isfinite(metric.reference_scale) && std::isfinite(metric.near_zero_band) && std::isfinite(metric.maximum_absolute_error) && std::isfinite(metric.relative_rms) && metric.rms_passed && metric.passed && metric.row_count > 0U && !metric.components.empty(); })) | EXPECT_FALSE(report.stress_comparison_applicable) | EXPECT_NE(report.stress_comparison_reason.find(""N/A""), std::string::npos) | EXPECT_NE(report.stress_comparison_reason.find(""HDF5""), std::string::npos) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | EXPECT_TRUE(std::isfinite(report.physics_evidence.free_residual_norm)) | EXPECT_LE(report.physics_evidence.free_residual_norm, 1.0e-3) | EXPECT_LE(Norm(Sum(report.physics_evidence.applied_force, report.physics_evidence.reaction_force)), 1.0e-3) | EXPECT_LE(Norm(Sum(report.physics_evidence.applied_moment_about_origin, report.physics_evidence.reaction_moment_about_origin)), 1.0e-2) | ASSERT_TRUE(fesa::test::ReferenceComparison::WriteDeterministicJson( report, comparison) .IsOk()) | ASSERT_TRUE(std::filesystem::is_regular_file(comparison)) | EXPECT_NE(json.find(""\""stress_comparison_applicable\"":false""), std::string::npos) | EXPECT_NE(json.find(""\""physics_evidence\""""), std::string::npos) | EXPECT_NE(json.find(""\""source_element_label\""""), std::string::npos) | EXPECT_NE(json.find(""\""family_identity\""""), std::string::npos) | EXPECT_NE(json.find(""\""row_count\""""), std::string::npos) | EXPECT_EQ(generated_names, (std::vector{""cantilever beam.inp"", ""cantilever beam_log.txt"", ""cantilever beam_results.h5"", ""comparison.json""}))" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/b33_reference_comparison_test.cpp support@1-147 helper/oracle/fixture/include/static assertion 구간: Hdf5Handle, if, ReferenceSnapshotEntry, ReadBytes, SnapshotTree, sort, ExpectTreeUnchanged, Norm, Sum, StressRowCount tests/reference/b33_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 08f0770f5aeb24b1560b8da3f35b583cbf85abfbf36dded9d21e96dfb54c38c3 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/eigen_reference_cases_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/reference/eigen_reference_cases_test.cpp file 유지 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 modal identity·수치 기준은 유지한다. 4890fe18f1ff259890fbc9baf6f4f1c39fabd3bc0a42b8059581dfff7604aeb6 4890fe18f1ff259890fbc9baf6f4f1c39fabd3bc0a42b8059581dfff7604aeb6 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/eigen_reference_cases_test.cpp EigenReference.RunsOriginalInputAndComparesAllModalFrameIdentities EigenReference.RunsOriginalInputAndComparesAllModalFrameIdentities; assertion 16개 tests/reference/eigen_reference_cases_test.cpp EigenReference.RunsOriginalInputAndComparesAllModalFrameIdentities 유지 원문 검사 body 및 assertion 동일. e4f451acf146ec42a498f137080e48e956b4c57c5dbbbaff1a880d95123d254c e4f451acf146ec42a498f137080e48e956b4c57c5dbbbaff1a880d95123d254c "EXPECT_EQ(ReadBytes(input), input_before) | EXPECT_EQ(ReadBytes(text), text_before) | ASSERT_EQ(exit_code, 0) | ASSERT_TRUE(std::filesystem::is_regular_file(results)) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().passed) | EXPECT_EQ(comparison.Value().source_step_name, ""Step-2"") | EXPECT_EQ(comparison.Value().requested_mode_count, 10U) | ASSERT_EQ(comparison.Value().rows.size(), 10U) | ASSERT_EQ(comparison.Value().families.size(), 10U) | EXPECT_EQ(comparison.Value().rows[index].mode_id, index + 1U) | EXPECT_EQ(comparison.Value().rows[index].component, ""Value"") | EXPECT_EQ(comparison.Value().families[index].row_count, 1U) | EXPECT_TRUE(comparison.Value().families[index].passed) | EXPECT_EQ(ReadBytes(input), input_before) | EXPECT_EQ(ReadBytes(text), text_before)" "EXPECT_EQ(ReadBytes(input), input_before) | EXPECT_EQ(ReadBytes(text), text_before) | ASSERT_EQ(exit_code, 0) | ASSERT_TRUE(std::filesystem::is_regular_file(results)) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().passed) | EXPECT_EQ(comparison.Value().source_step_name, ""Step-2"") | EXPECT_EQ(comparison.Value().requested_mode_count, 10U) | ASSERT_EQ(comparison.Value().rows.size(), 10U) | ASSERT_EQ(comparison.Value().families.size(), 10U) | EXPECT_EQ(comparison.Value().rows[index].mode_id, index + 1U) | EXPECT_EQ(comparison.Value().rows[index].component, ""Value"") | EXPECT_EQ(comparison.Value().families[index].row_count, 1U) | EXPECT_TRUE(comparison.Value().families[index].passed) | EXPECT_EQ(ReadBytes(input), input_before) | EXPECT_EQ(ReadBytes(text), text_before)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/reference/eigen_reference_cases_test.cpp support@1-31 helper/oracle/fixture/include/static assertion 구간: ReadBytes, if tests/reference/eigen_reference_cases_test.cpp file-support 유지 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 modal identity·수치 기준은 유지한다. e6d5ed00a9bcbd734a958a0c92005773d61527a1f2fdad5e04571e08bb892da2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/eigen_reference_cases_test.cpp support@78-79 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/eigen_reference_cases_test.cpp file-support 유지 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 modal identity·수치 기준은 유지한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/eigen_reference_comparison.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/eigen_reference_comparison.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b46d4b18fcbf3bbcba3547c41cdecc3f206eb6ed6d2df44b7de4f3a8c2c86000 b46d4b18fcbf3bbcba3547c41cdecc3f206eb6ed6d2df44b7de4f3a8c2c86000 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/eigen_reference_comparison.cpp support@1-436 helper/oracle/fixture/include/static assertion 구간: fesa, ComparisonFailure, Fail, FailureStatus, Hdf5Handle, if, RequireId, RequireHdf, ReadUtf8Attribute, ReadUint64Attribute, Hdf5Mode, ReadModes, ParseFiniteNumber, data, RequireNumberSyntax, ReadReferenceText, while, Result, Compare, for, catch tests/reference/eigen_reference_comparison.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f8341d7432300658ef47c07672af81668f135597ea1bad54b73a9c9000e3c51b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/eigen_reference_comparison.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/eigen_reference_comparison.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 96423b9a6c85e87752a28c38eed575c834c724caad6692122523f49888391a15 96423b9a6c85e87752a28c38eed575c834c724caad6692122523f49888391a15 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/eigen_reference_comparison.h support@1-51 helper/oracle/fixture/include/static assertion 구간: fesa, EigenReferenceCase, EigenReferenceRowDecision, EigenReferenceComparisonReport, EigenReferenceComparison tests/reference/eigen_reference_comparison.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c66c08bae4956e9e12aa43fd98fcb70678b043ac7046cd085f1662494f61f0e0 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/eigen_reference_comparison_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/reference/eigen_reference_comparison_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f71ba9da827ff4740ce536149fef0f03dcd226f6c61f72a721973cae2b159e2a f71ba9da827ff4740ce536149fef0f03dcd226f6c61f72a721973cae2b159e2a 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/eigen_reference_comparison_test.cpp EigenReferenceComparison.DirectSchemaFixtureAcceptsRepeatedReorderedModes EigenReferenceComparison.DirectSchemaFixtureAcceptsRepeatedReorderedModes; assertion 14개 tests/reference/eigen_reference_comparison_test.cpp EigenReferenceComparison.DirectSchemaFixtureAcceptsRepeatedReorderedModes 유지 원문 검사 body 및 assertion 동일. c756a589e4eb9b1be73380851a5bf8e12dae19900777b023aa6929938a0f7db5 c756a589e4eb9b1be73380851a5bf8e12dae19900777b023aa6929938a0f7db5 "ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(ok.HasValue()) | EXPECT_EQ(ok.Value().policy_id, ""mitc4-eigen-first-implementation"") | EXPECT_DOUBLE_EQ(ok.Value().relative_rms_tolerance, 0.05) | EXPECT_EQ(ok.Value().families.size(), 2U) | ASSERT_GE(H5Dwrite(ds, t, H5S_ALL, H5S_ALL, H5P_DEFAULT, v), 0) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_EQ(comparison.Value().passed, sample.second) | EXPECT_EQ(comparison.Value().families[0].rms_passed, sample.second) | EXPECT_TRUE(comparison.Value().families[1].passed) | ASSERT_FALSE(comparison.HasValue()) | ASSERT_EQ(comparison.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(comparison.GetStatus().Diagnostics()[0U].code, invalid_text.expected_code) | EXPECT_FALSE( fesa::test::EigenReferenceComparison::Compare(reference_case).HasValue())" "ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(ok.HasValue()) | EXPECT_EQ(ok.Value().policy_id, ""mitc4-eigen-first-implementation"") | EXPECT_DOUBLE_EQ(ok.Value().relative_rms_tolerance, 0.05) | EXPECT_EQ(ok.Value().families.size(), 2U) | ASSERT_GE(H5Dwrite(ds, t, H5S_ALL, H5S_ALL, H5P_DEFAULT, v), 0) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_EQ(comparison.Value().passed, sample.second) | EXPECT_EQ(comparison.Value().families[0].rms_passed, sample.second) | EXPECT_TRUE(comparison.Value().families[1].passed) | ASSERT_FALSE(comparison.HasValue()) | ASSERT_EQ(comparison.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(comparison.GetStatus().Diagnostics()[0U].code, invalid_text.expected_code) | EXPECT_FALSE( fesa::test::EigenReferenceComparison::Compare(reference_case).HasValue())" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/eigen_reference_comparison_test.cpp support@1-54 helper/oracle/fixture/include/static assertion 구간: UniqueFixtureDirectory, Mode, Str, U tests/reference/eigen_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c8f66a74f9a84a0ee73ed94a47674bcef6637bcbda68daa9b9cac52cd0715989 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/eigen_reference_comparison_test.cpp support@193-193 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/eigen_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_cases_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/reference/mitc4_reference_cases_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 60c30a9f9b735df4571ef7bc262710fc3c1e84fb98b86b2d25611ff1406cb745 60c30a9f9b735df4571ef7bc262710fc3c1e84fb98b86b2d25611ff1406cb745 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_cases_test.cpp Mitc4S4Reference.PreservesS4AndWritesCommonMitc4Metadata Mitc4S4Reference.PreservesS4AndWritesCommonMitc4Metadata; assertion 0개 tests/reference/mitc4_reference_cases_test.cpp Mitc4S4Reference.PreservesS4AndWritesCommonMitc4Metadata 유지 원문 검사 body 및 assertion 동일. 0a439f95ff0f8ff6baf1784c2b8286af7c5e9abe4027f6ab711e7cfd274dd297 0a439f95ff0f8ff6baf1784c2b8286af7c5e9abe4027f6ab711e7cfd274dd297 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_cases_test.cpp Mitc4S4Reference.PassesBlockingUAndReportsEveryUrRow Mitc4S4Reference.PassesBlockingUAndReportsEveryUrRow; assertion 0개 tests/reference/mitc4_reference_cases_test.cpp Mitc4S4Reference.PassesBlockingUAndReportsEveryUrRow 유지 원문 검사 body 및 assertion 동일. 4305a332a97418a4548f580e4efd059145ba1f826292cc21d959bbeb55443add 4305a332a97418a4548f580e4efd059145ba1f826292cc21d959bbeb55443add 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_cases_test.cpp support@1-177 helper/oracle/fixture/include/static assertion 구간: ReadBytes, if, ArtifactSnapshot, Snapshot, ExpectUnchanged, CaseEvidence, RunCase, for, ExpectCommonMetadata, ExpectComparisonCoverage, count_if, EXPECT_TRUE, find_if tests/reference/mitc4_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 00c52267b127eef3d2cd68d7bf6171119e37f97b63bd848ff0448f70687590f3 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_cases_test.cpp support@186-187 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 60b4486538263f1db4cc916d19cd7fe382e843507683db5da9f99168f7336722 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_cases_test.cpp support@197-198 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_comparison.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/mitc4_reference_comparison.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1e23f52e7a9ff7172bf67f5f9c3e460a05b86089b4df1f91566e502b3f7a3c69 1e23f52e7a9ff7172bf67f5f9c3e460a05b86089b4df1f91566e502b3f7a3c69 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_comparison.cpp support@1-984 helper/oracle/fixture/include/static assertion 구간: fesa, ComparisonFailure, Fail, FailureStatus, Trim, find_if_not, SplitCsvLine, while, if, ParsePositiveLabel, ParseFiniteDouble, UppercaseAscii, transform, IdentityKey, WideRow, ReadReferenceCsv, Hdf5Handle, Hdf5ErrorSilencer, Hdf5VlenReclaimer, Reclaim, RequireId, RequireHdf, MakeUtf8StringType, OpenDataset, Dimensions, ReadStringAttribute, ReadUint64Attribute, RequireStringAttribute, RequireExactCompoundMembers, NodeReadRow, ReadNodes, ElementIdentityReadRow, RequireElementIdentity, for, ReadDisplacement, Hdf5Projection, ReadHdf5, RequireArtifacts, FiniteText, BranchName, switch, JsonEscape, WriteJsonStrings, Result, Compare, catch, WriteDeterministicJson tests/reference/mitc4_reference_comparison.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ba7f7e025e2dad0fa22b02dc44d600c2edb732f2bec5f89856fb2dab648b0958 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_comparison.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/mitc4_reference_comparison.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 51c8b78b44583986eeb175a839fd72a11ca5f3405bf016432da9563878c8f1f6 51c8b78b44583986eeb175a839fd72a11ca5f3405bf016432da9563878c8f1f6 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_comparison.h support@1-93 helper/oracle/fixture/include/static assertion 구간: fesa, Mitc4ReferenceCase, Mitc4RowDecision, Mitc4ComponentMetrics, Mitc4VectorMetrics, Mitc4Warning, Mitc4ComparisonReport, Mitc4ReferenceComparison tests/reference/mitc4_reference_comparison.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 66926b7d72ccfcf4d1a0a42bfa456a43a8b71eac6b7dea8b91f381aff620cb5f 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_comparison_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/reference/mitc4_reference_comparison_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b886b3cf9a6d3569e73f6792ce8ff0a84052c81eb21d78a31245fc74033bf370 b886b3cf9a6d3569e73f6792ce8ff0a84052c81eb21d78a31245fc74033bf370 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.MapsTrimmedHeaderAndSixComponentsBySourceIdentity Mitc4ReferenceComparison.MapsTrimmedHeaderAndSixComponentsBySourceIdentity; assertion 11개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.MapsTrimmedHeaderAndSixComponentsBySourceIdentity 유지 원문 검사 body 및 assertion 동일. 44461d859079ddd35dd95bcca00277017ed16033e7164b9e62d27f9d98e54836 44461d859079ddd35dd95bcca00277017ed16033e7164b9e62d27f9d98e54836 "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.rows.size(), 12U) | EXPECT_EQ(report.rows[0U].source_node_label, 1) | EXPECT_EQ(report.rows[0U].component, ""U1"") | EXPECT_EQ(report.rows[5U].component, ""UR3"") | EXPECT_EQ(report.rows[6U].source_node_label, 2) | ASSERT_EQ(report.metrics.size(), 2U) | EXPECT_EQ(report.metrics[0U].row_count, 6U) | EXPECT_EQ(report.metrics[1U].row_count, 6U) | EXPECT_TRUE(std::all_of(report.rows.begin(), report.rows.end(), [](const fesa::test::Mitc4RowDecision& row) { return row.case_id == ""shell-contract"" && row.instance_name == kInstanceName && row.within_tolerance; }))" "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.rows.size(), 12U) | EXPECT_EQ(report.rows[0U].source_node_label, 1) | EXPECT_EQ(report.rows[0U].component, ""U1"") | EXPECT_EQ(report.rows[5U].component, ""UR3"") | EXPECT_EQ(report.rows[6U].source_node_label, 2) | ASSERT_EQ(report.metrics.size(), 2U) | EXPECT_EQ(report.metrics[0U].row_count, 6U) | EXPECT_EQ(report.metrics[1U].row_count, 6U) | EXPECT_TRUE(std::all_of(report.rows.begin(), report.rows.end(), [](const fesa::test::Mitc4RowDecision& row) { return row.case_id == ""shell-contract"" && row.instance_name == kInstanceName && row.within_tolerance; }))" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RejectsInvalidInventoryBeforeNumericComparison Mitc4ReferenceComparison.RejectsInvalidInventoryBeforeNumericComparison; assertion 1개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RejectsInvalidInventoryBeforeNumericComparison 유지 원문 검사 body 및 assertion 동일. d4d1ef19df229bad1f14847b9c437910e324f55f638cb91dbec9ec9815681c09 d4d1ef19df229bad1f14847b9c437910e324f55f638cb91dbec9ec9815681c09 ASSERT_TRUE(std::filesystem::remove(fixture.Input())) ASSERT_TRUE(std::filesystem::remove(fixture.Input())) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.SharesTranslationScaleAcrossUComponentsAndUsesNearZeroBranches Mitc4ReferenceComparison.SharesTranslationScaleAcrossUComponentsAndUsesNearZeroBranches; assertion 19개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.SharesTranslationScaleAcrossUComponentsAndUsesNearZeroBranches 유지 원문 검사 body 및 assertion 동일. 3dbbc317c15107ab849cb8e39ca1a7f85c3a111c899a6074f98efcda9b6b5311 3dbbc317c15107ab849cb8e39ca1a7f85c3a111c899a6074f98efcda9b6b5311 "ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(report.passed) | ASSERT_NE(u1_zero, nullptr) | ASSERT_NE(u1_scaled, nullptr) | ASSERT_NE(u2_near, nullptr) | ASSERT_NE(u2_over, nullptr) | EXPECT_DOUBLE_EQ(u1_zero->tolerance, 8.0e-2) | EXPECT_TRUE(u1_zero->within_tolerance) | EXPECT_FALSE(u1_zero->relative_error_applicable) | EXPECT_FALSE(u1_scaled->within_tolerance) | EXPECT_NEAR(u1_scaled->normalized_error, 0.05005, 1.0e-12) | EXPECT_DOUBLE_EQ(u2_near->tolerance, 8.0e-2) | EXPECT_TRUE(u2_near->within_tolerance) | EXPECT_FALSE(u2_near->relative_error_applicable) | EXPECT_FALSE(u2_over->within_tolerance) | EXPECT_DOUBLE_EQ(u2_over->tolerance, 8.0e-2) | ASSERT_NE(translation, nullptr) | EXPECT_DOUBLE_EQ(translation->reference_scale, 8.0) | EXPECT_EQ(translation->components, (std::vector{""U1"", ""U2"", ""U3""}))" "ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(report.passed) | ASSERT_NE(u1_zero, nullptr) | ASSERT_NE(u1_scaled, nullptr) | ASSERT_NE(u2_near, nullptr) | ASSERT_NE(u2_over, nullptr) | EXPECT_DOUBLE_EQ(u1_zero->tolerance, 8.0e-2) | EXPECT_TRUE(u1_zero->within_tolerance) | EXPECT_FALSE(u1_zero->relative_error_applicable) | EXPECT_FALSE(u1_scaled->within_tolerance) | EXPECT_NEAR(u1_scaled->normalized_error, 0.05005, 1.0e-12) | EXPECT_DOUBLE_EQ(u2_near->tolerance, 8.0e-2) | EXPECT_TRUE(u2_near->within_tolerance) | EXPECT_FALSE(u2_near->relative_error_applicable) | EXPECT_FALSE(u2_over->within_tolerance) | EXPECT_DOUBLE_EQ(u2_over->tolerance, 8.0e-2) | ASSERT_NE(translation, nullptr) | EXPECT_DOUBLE_EQ(translation->reference_scale, 8.0) | EXPECT_EQ(translation->components, (std::vector{""U1"", ""U2"", ""U3""}))" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationExceedanceWarnsWithoutBlockingTranslationVerdict Mitc4ReferenceComparison.RotationExceedanceWarnsWithoutBlockingTranslationVerdict; assertion 11개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationExceedanceWarnsWithoutBlockingTranslationVerdict 유지 원문 검사 body 및 assertion 동일. 0a685f2a0ea27dcdc95dc89c981067220e0418afd2c3cc242569d38d86212613 0a685f2a0ea27dcdc95dc89c981067220e0418afd2c3cc242569d38d86212613 "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 2U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-exceedance"") | EXPECT_EQ(report.warnings[1U].code, ""rotation-reference-rms-exceedance"") | ASSERT_NE(row, nullptr) | EXPECT_FALSE(row->blocking) | EXPECT_FALSE(row->within_tolerance) | EXPECT_EQ(report.warnings[0U].row, static_cast(row - report.rows.data())) | EXPECT_NE(report.warnings[0U].message.find(""shell-contract""), std::string::npos) | EXPECT_NE(report.warnings[0U].message.find(""UR1""), std::string::npos)" "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 2U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-exceedance"") | EXPECT_EQ(report.warnings[1U].code, ""rotation-reference-rms-exceedance"") | ASSERT_NE(row, nullptr) | EXPECT_FALSE(row->blocking) | EXPECT_FALSE(row->within_tolerance) | EXPECT_EQ(report.warnings[0U].row, static_cast(row - report.rows.data())) | EXPECT_NE(report.warnings[0U].message.find(""shell-contract""), std::string::npos) | EXPECT_NE(report.warnings[0U].message.find(""UR1""), std::string::npos)" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationRmsExceedanceWarnsWhenEveryRotationRowPasses Mitc4ReferenceComparison.RotationRmsExceedanceWarnsWhenEveryRotationRowPasses; assertion 5개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationRmsExceedanceWarnsWhenEveryRotationRowPasses 유지 원문 검사 body 및 assertion 동일. b300a3ed2c250fb7fe702e7abdc96b7f2d90a9231c2f09107719e9be524a4521 b300a3ed2c250fb7fe702e7abdc96b7f2d90a9231c2f09107719e9be524a4521 "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 1U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-rms-exceedance"") | EXPECT_TRUE(std::all_of(report.rows.begin(), report.rows.end(), [](const fesa::test::Mitc4RowDecision& row) { return row.within_tolerance; }))" "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 1U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-rms-exceedance"") | EXPECT_TRUE(std::all_of(report.rows.begin(), report.rows.end(), [](const fesa::test::Mitc4RowDecision& row) { return row.within_tolerance; }))" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationRowAndRmsExceedancesProduceSeparateWarnings Mitc4ReferenceComparison.RotationRowAndRmsExceedancesProduceSeparateWarnings; assertion 7개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RotationRowAndRmsExceedancesProduceSeparateWarnings 유지 원문 검사 body 및 assertion 동일. deca37dbcad9f79f872439a23d198ead553f7e589eddb78d69f9c74acd722c39 deca37dbcad9f79f872439a23d198ead553f7e589eddb78d69f9c74acd722c39 "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 2U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-exceedance"") | EXPECT_EQ(report.warnings[1U].code, ""rotation-reference-rms-exceedance"") | EXPECT_LT(report.warnings[0U].row, report.rows.size()) | EXPECT_LT(report.warnings[1U].row, report.rows.size())" "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(report.passed) | ASSERT_EQ(report.warnings.size(), 2U) | EXPECT_EQ(report.warnings[0U].code, ""rotation-reference-exceedance"") | EXPECT_EQ(report.warnings[1U].code, ""rotation-reference-rms-exceedance"") | EXPECT_LT(report.warnings[0U].row, report.rows.size()) | EXPECT_LT(report.warnings[1U].row, report.rows.size())" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.ReportsMetricsVectorsWorstRowAndJsonDeterministically Mitc4ReferenceComparison.ReportsMetricsVectorsWorstRowAndJsonDeterministically; assertion 18개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.ReportsMetricsVectorsWorstRowAndJsonDeterministically 유지 원문 검사 body 및 assertion 동일. cff2c517222a6a1e2b7e9aba2c8336edfcb6740cb671e64b4a0ab0cb9c1172c6 cff2c517222a6a1e2b7e9aba2c8336edfcb6740cb671e64b4a0ab0cb9c1172c6 "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.metrics.size(), 2U) | ASSERT_EQ(report.vector_metrics.size(), 2U) | EXPECT_NEAR(report.vector_metrics[0U].displacement_norm_error, std::sqrt(0.3125) * 1.0e-9, 1.0e-21) | EXPECT_DOUBLE_EQ(report.vector_metrics[0U].rotation_norm_error, 0.75e-9) | ASSERT_LT(report.worst_row, report.rows.size()) | EXPECT_EQ(report.rows[report.worst_row].component, ""UR1"") | EXPECT_TRUE(std::isfinite(metric.reference_scale)) | EXPECT_TRUE(std::isfinite(metric.near_zero_band)) | EXPECT_TRUE(std::isfinite(metric.maximum_absolute_error)) | EXPECT_TRUE(std::isfinite(metric.relative_rms)) | EXPECT_FALSE(metric.components.empty()) | EXPECT_LT(metric.worst_row, report.rows.size()) | ASSERT_TRUE(fesa::test::Mitc4ReferenceComparison::WriteDeterministicJson( report, json_a) .IsOk()) | ASSERT_TRUE(fesa::test::Mitc4ReferenceComparison::WriteDeterministicJson( report, json_b) .IsOk()) | EXPECT_EQ(first, ReadBytes(json_b)) | EXPECT_NE(first.find(key), std::string::npos)" "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.metrics.size(), 2U) | ASSERT_EQ(report.vector_metrics.size(), 2U) | EXPECT_NEAR(report.vector_metrics[0U].displacement_norm_error, std::sqrt(0.3125) * 1.0e-9, 1.0e-21) | EXPECT_DOUBLE_EQ(report.vector_metrics[0U].rotation_norm_error, 0.75e-9) | ASSERT_LT(report.worst_row, report.rows.size()) | EXPECT_EQ(report.rows[report.worst_row].component, ""UR1"") | EXPECT_TRUE(std::isfinite(metric.reference_scale)) | EXPECT_TRUE(std::isfinite(metric.near_zero_band)) | EXPECT_TRUE(std::isfinite(metric.maximum_absolute_error)) | EXPECT_TRUE(std::isfinite(metric.relative_rms)) | EXPECT_FALSE(metric.components.empty()) | EXPECT_LT(metric.worst_row, report.rows.size()) | ASSERT_TRUE(fesa::test::Mitc4ReferenceComparison::WriteDeterministicJson( report, json_a) .IsOk()) | ASSERT_TRUE(fesa::test::Mitc4ReferenceComparison::WriteDeterministicJson( report, json_b) .IsOk()) | EXPECT_EQ(first, ReadBytes(json_b)) | EXPECT_NE(first.find(key), std::string::npos)" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RequiresOnlyDeclaredInputCsvAndHdf5 Mitc4ReferenceComparison.RequiresOnlyDeclaredInputCsvAndHdf5; assertion 3개 tests/reference/mitc4_reference_comparison_test.cpp Mitc4ReferenceComparison.RequiresOnlyDeclaredInputCsvAndHdf5 유지 원문 검사 body 및 assertion 동일. 5e8e14898d5f4d7dc448a30743686c8627513240f85ab704fe3dc6e23c603a55 5e8e14898d5f4d7dc448a30743686c8627513240f85ab704fe3dc6e23c603a55 "EXPECT_EQ(names, (std::vector{""case.inp"", ""displacements.csv"", ""results.h5""})) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().passed)" "EXPECT_EQ(names, (std::vector{""case.inp"", ""displacements.csv"", ""results.h5""})) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().passed)" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_comparison_test.cpp support@1-476 helper/oracle/fixture/include/static assertion 구간: Hdf5Handle, if, RequireId, RequireHdf, MakeUtf8StringType, WriteStringAttribute, WriteUint64Attribute, CreateGroup, ComparisonValueRow, DefaultRows, Hdf5Options, NodeWriteRow, ElementWriteRow, WriteNodes, for, WriteElements, WriteDisplacement, WriteCsv, ContractFixture, ReferenceCase, ExpectFailureCode, FindRow, find_if, FindMetric, ReadBytes tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 37402c89c01cf3d2cc2e8ab77859308b01ab38311dacae197ad4bc1c5b5ab9f9 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_comparison_test.cpp support@509-510 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0395266b04005731c3a8af3c854de2e8675b475916ea8b790258cd372ba59d80 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_comparison_test.cpp support@591-592 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bbe05c4478ba04dae1068ff83f56d7e512486c768824cd8b6645449c28f0076c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_comparison_test.cpp support@638-639 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ee84c2fb6946961d9421c461d0c0de38916103a6aa11929f0b95ecb0bae198a2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_comparison_test.cpp support@706-707 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 54b3ad86c7b60c18d9bd032f8ba2e7e827c96c6da35e0194fb82dc04afcbae8e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_comparison_test.cpp support@755-756 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b1f4e55b34b476926e1cf7fe2ada3941a66cdc5cd6e79bd7e94ad257167f6dcc 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/mitc4_reference_comparison_test.cpp support@772-773 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/mitc4_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_cases_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/reference/nonlinear_static_reference_cases_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d50d0cc07497cb23b71c50e59b5eba6896d601f76c57a416cb5d8fe2f950b269 d50d0cc07497cb23b71c50e59b5eba6896d601f76c57a416cb5d8fe2f950b269 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.AuditsEveryDeclaredArtifactBeforeExecution NonlinearStaticReference.AuditsEveryDeclaredArtifactBeforeExecution; assertion 8개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.AuditsEveryDeclaredArtifactBeforeExecution 유지 원문 검사 body 및 assertion 동일. 188bdb8763fbe96d17021a85b71a95d57a69789bc2d7a07ca0d86dbceb1d6c70 188bdb8763fbe96d17021a85b71a95d57a69789bc2d7a07ca0d86dbceb1d6c70 "ASSERT_TRUE(nonlinear_artifacts.HasValue()) | ASSERT_EQ(nonlinear_artifacts.Value().size(), 4U) | EXPECT_EQ(nonlinear_artifacts.Value()[0U].sha256, ""4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2"") | EXPECT_EQ(nonlinear_artifacts.Value()[3U].sha256, ""5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F"") | ASSERT_TRUE(linear_artifacts.HasValue()) | ASSERT_EQ(linear_artifacts.Value().size(), 4U) | EXPECT_EQ(linear_artifacts.Value()[0U].sha256, ""4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF"") | EXPECT_EQ(linear_artifacts.Value()[3U].sha256, ""2B75A5B0DEB045A283C9BB7E9B1153B79F7537FF487214BF4A23316B59B660A7"")" "ASSERT_TRUE(nonlinear_artifacts.HasValue()) | ASSERT_EQ(nonlinear_artifacts.Value().size(), 4U) | EXPECT_EQ(nonlinear_artifacts.Value()[0U].sha256, ""4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2"") | EXPECT_EQ(nonlinear_artifacts.Value()[3U].sha256, ""5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F"") | ASSERT_TRUE(linear_artifacts.HasValue()) | ASSERT_EQ(linear_artifacts.Value().size(), 4U) | EXPECT_EQ(linear_artifacts.Value()[0U].sha256, ""4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF"") | EXPECT_EQ(linear_artifacts.Value()[3U].sha256, ""2B75A5B0DEB045A283C9BB7E9B1153B79F7537FF487214BF4A23316B59B660A7"")" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.CopiesRunsComparesAndPreservesTheReadOnlyReferenceInventory NonlinearStaticReference.CopiesRunsComparesAndPreservesTheReadOnlyReferenceInventory; assertion 16개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.CopiesRunsComparesAndPreservesTheReadOnlyReferenceInventory 유지 원문 검사 body 및 assertion 동일. 2eede76606712cf98bc621846084840a3172005b4d3d556415eeb01cef3e286a 2eede76606712cf98bc621846084840a3172005b4d3d556415eeb01cef3e286a "ASSERT_TRUE(before.HasValue()) | ASSERT_TRUE(copied.HasValue()) | EXPECT_NE(copied.Value().parent_path(), reference_case.original_input_path.parent_path()) | EXPECT_EQ(ReadBytes(copied.Value()), ReadBytes(reference_case.original_input_path)) | ASSERT_TRUE(generated.HasValue()) | EXPECT_EQ(generated.Value().copied_input_path, copied.Value()) | EXPECT_TRUE(std::filesystem::is_regular_file( generated.Value().generated_results_hdf5)) | EXPECT_TRUE( std::filesystem::is_regular_file(generated.Value().generated_log_path)) | EXPECT_EQ(generated.Value().generated_results_hdf5.filename(), case_id == ""shellnl-s4-final"" ? ""shellNL_results.h5"" : ""shell_results.h5"") | EXPECT_EQ( generated.Value().generated_log_path.filename(), case_id == ""shellnl-s4-final"" ? ""shellNL_log.txt"" : ""shell_log.txt"") | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().blocking_passed) | EXPECT_EQ(comparison.Value().copied_input_path, copied.Value()) | EXPECT_EQ(comparison.Value().generated_log_path, generated.Value().generated_log_path) | EXPECT_EQ(FindFamily(comparison.Value(), ""RM3""), nullptr) | ASSERT_TRUE(after.HasValue())" "ASSERT_TRUE(before.HasValue()) | ASSERT_TRUE(copied.HasValue()) | EXPECT_NE(copied.Value().parent_path(), reference_case.original_input_path.parent_path()) | EXPECT_EQ(ReadBytes(copied.Value()), ReadBytes(reference_case.original_input_path)) | ASSERT_TRUE(generated.HasValue()) | EXPECT_EQ(generated.Value().copied_input_path, copied.Value()) | EXPECT_TRUE(std::filesystem::is_regular_file( generated.Value().generated_results_hdf5)) | EXPECT_TRUE( std::filesystem::is_regular_file(generated.Value().generated_log_path)) | EXPECT_EQ(generated.Value().generated_results_hdf5.filename(), case_id == ""shellnl-s4-final"" ? ""shellNL_results.h5"" : ""shell_results.h5"") | EXPECT_EQ( generated.Value().generated_log_path.filename(), case_id == ""shellnl-s4-final"" ? ""shellNL_log.txt"" : ""shell_log.txt"") | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().blocking_passed) | EXPECT_EQ(comparison.Value().copied_input_path, copied.Value()) | EXPECT_EQ(comparison.Value().generated_log_path, generated.Value().generated_log_path) | EXPECT_EQ(FindFamily(comparison.Value(), ""RM3""), nullptr) | ASSERT_TRUE(after.HasValue())" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.RejectsInvalidHdf5BeforeToleranceAndKeepsWarningOnlyClassification NonlinearStaticReference.RejectsInvalidHdf5BeforeToleranceAndKeepsWarningOnlyClassification; assertion 4개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.RejectsInvalidHdf5BeforeToleranceAndKeepsWarningOnlyClassification 유지 원문 검사 body 및 assertion 동일. c212189f32ba963e3f1464a12d8527079d439ef8c08cf77fa6186ab4c701cf1d c212189f32ba963e3f1464a12d8527079d439ef8c08cf77fa6186ab4c701cf1d ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | EXPECT_FALSE( fesa::test::CompareHdf5ToReferenceCsv(reference_case, invalid_hdf5) .HasValue()) | EXPECT_EQ( fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kWarningOnlyDifferences) ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | EXPECT_FALSE( fesa::test::CompareHdf5ToReferenceCsv(reference_case, invalid_hdf5) .HasValue()) | EXPECT_EQ( fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kWarningOnlyDifferences) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.AuditsRetainedStaticArtifacts NonlinearStaticReference.AuditsRetainedStaticArtifacts; assertion 7개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.AuditsRetainedStaticArtifacts 유지 원문 검사 body 및 assertion 동일. d8455237b6913bfc17eb366ce869732b1034a695dbc6da8104f52942fa5fa6fb d8455237b6913bfc17eb366ce869732b1034a695dbc6da8104f52942fa5fa6fb ASSERT_TRUE(before.HasValue()) | ASSERT_EQ(before.Value().size(), 4U) | ASSERT_TRUE(copied.HasValue()) | EXPECT_NE(copied.Value().parent_path(), reference_case.original_input_path.parent_path()) | ASSERT_TRUE(generated.HasValue()) | EXPECT_TRUE(std::filesystem::is_regular_file( generated.Value().generated_results_hdf5)) | ASSERT_TRUE(after.HasValue()) ASSERT_TRUE(before.HasValue()) | ASSERT_EQ(before.Value().size(), 4U) | ASSERT_TRUE(copied.HasValue()) | EXPECT_NE(copied.Value().parent_path(), reference_case.original_input_path.parent_path()) | ASSERT_TRUE(generated.HasValue()) | EXPECT_TRUE(std::filesystem::is_regular_file( generated.Value().generated_results_hdf5)) | ASSERT_TRUE(after.HasValue()) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.ReviewOnlyLocalReactionsCannotChangeBlockingVerdict NonlinearStaticReference.ReviewOnlyLocalReactionsCannotChangeBlockingVerdict; assertion 4개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.ReviewOnlyLocalReactionsCannotChangeBlockingVerdict 유지 원문 검사 body 및 assertion 동일. 65b04d41c62639181a36905c13090411b957dc30b224c524136459e7b051deb4 65b04d41c62639181a36905c13090411b957dc30b224c524136459e7b051deb4 ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().external_blocking_passed) ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | ASSERT_TRUE(comparison.HasValue()) | EXPECT_TRUE(comparison.Value().external_blocking_passed) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.BlocksOnGlobalBalanceAndAcceptedFreeResidual NonlinearStaticReference.BlocksOnGlobalBalanceAndAcceptedFreeResidual; assertion 7개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.BlocksOnGlobalBalanceAndAcceptedFreeResidual 유지 원문 검사 body 및 assertion 동일. 007fcebce090b5bf09d568e58cd17470b556ad70894f09e2dc2703f4cec41e51 007fcebce090b5bf09d568e58cd17470b556ad70894f09e2dc2703f4cec41e51 ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | ASSERT_TRUE(comparison.HasValue()) | ASSERT_NE(found, comparison.Value().internal_equilibrium.end()) | EXPECT_TRUE(found->passed) | EXPECT_TRUE(comparison.Value().internal_blocking_passed) | EXPECT_NE(comparison.Value().constrained_reaction_resultant.force, zero_resultant) ASSERT_TRUE(copied.HasValue()) | ASSERT_TRUE(generated.HasValue()) | ASSERT_TRUE(comparison.HasValue()) | ASSERT_NE(found, comparison.Value().internal_equilibrium.end()) | EXPECT_TRUE(found->passed) | EXPECT_TRUE(comparison.Value().internal_blocking_passed) | EXPECT_NE(comparison.Value().constrained_reaction_resultant.force, zero_resultant) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.RejectsMissingExtraDuplicateAndNonfiniteRowsBeforeToleranceAndRecordsReviewOnlyFindings NonlinearStaticReference.RejectsMissingExtraDuplicateAndNonfiniteRowsBeforeToleranceAndRecordsReviewOnlyFindings; assertion 3개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.RejectsMissingExtraDuplicateAndNonfiniteRowsBeforeToleranceAndRecordsReviewOnlyFindings 유지 원문 검사 body 및 assertion 동일. f98dddaed34ee9b825986ce96db9d50e870ce4a58ceaa9e262995c448f58d601 f98dddaed34ee9b825986ce96db9d50e870ce4a58ceaa9e262995c448f58d601 "EXPECT_EQ(fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kFailed) | EXPECT_EQ(report.precheck_findings[1U].diagnostic_code, ""duplicate-row"") | EXPECT_EQ(report.precheck_findings[2U].diagnostic_code, ""nonfinite-row"")" "EXPECT_EQ(fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kFailed) | EXPECT_EQ(report.precheck_findings[1U].diagnostic_code, ""duplicate-row"") | EXPECT_EQ(report.precheck_findings[2U].diagnostic_code, ""nonfinite-row"")" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.GlobalForceAndMomentBalanceUseApprovedInclusiveOneEighthGate NonlinearStaticReference.GlobalForceAndMomentBalanceUseApprovedInclusiveOneEighthGate; assertion 9개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.GlobalForceAndMomentBalanceUseApprovedInclusiveOneEighthGate 유지 원문 검사 body 및 assertion 동일. 37b6f0097c7fdc4525f9c98325a913cc1c66be9a852f7ec7ea8d6dbe8e973336 37b6f0097c7fdc4525f9c98325a913cc1c66be9a852f7ec7ea8d6dbe8e973336 EXPECT_TRUE(below.passed) | ASSERT_TRUE(below.normalized_metric.has_value()) | EXPECT_EQ(*below.normalized_metric, 5.0e-9) | EXPECT_TRUE(boundary.passed) | ASSERT_TRUE(boundary.normalized_metric.has_value()) | EXPECT_EQ(*boundary.normalized_metric, 1.0e-8) | EXPECT_FALSE(above.passed) | ASSERT_TRUE(above.normalized_metric.has_value()) | EXPECT_GT(*above.normalized_metric, 1.0e-8) EXPECT_TRUE(below.passed) | ASSERT_TRUE(below.normalized_metric.has_value()) | EXPECT_EQ(*below.normalized_metric, 5.0e-9) | EXPECT_TRUE(boundary.passed) | ASSERT_TRUE(boundary.normalized_metric.has_value()) | EXPECT_EQ(*boundary.normalized_metric, 1.0e-8) | EXPECT_FALSE(above.passed) | ASSERT_TRUE(above.normalized_metric.has_value()) | EXPECT_GT(*above.normalized_metric, 1.0e-8) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.GlobalForceAndMomentExactZeroScaleRequiresExactZeroBalance NonlinearStaticReference.GlobalForceAndMomentExactZeroScaleRequiresExactZeroBalance; assertion 6개 tests/reference/nonlinear_static_reference_cases_test.cpp NonlinearStaticReference.GlobalForceAndMomentExactZeroScaleRequiresExactZeroBalance 유지 원문 검사 body 및 assertion 동일. 04cc9d2dc3f468c5abd9317787db0c7dea8bb935021cf0bc51375c2e8a90d1bc 04cc9d2dc3f468c5abd9317787db0c7dea8bb935021cf0bc51375c2e8a90d1bc EXPECT_TRUE(exact_zero.passed) | EXPECT_EQ(exact_zero.scale, 0.0) | EXPECT_FALSE(exact_zero.normalized_metric.has_value()) | EXPECT_FALSE(nonzero.passed) | EXPECT_EQ(nonzero.scale, 0.0) | EXPECT_FALSE(nonzero.normalized_metric.has_value()) EXPECT_TRUE(exact_zero.passed) | EXPECT_EQ(exact_zero.scale, 0.0) | EXPECT_FALSE(exact_zero.normalized_metric.has_value()) | EXPECT_FALSE(nonzero.passed) | EXPECT_EQ(nonzero.scale, 0.0) | EXPECT_FALSE(nonzero.normalized_metric.has_value()) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_cases_test.cpp support@1-113 helper/oracle/fixture/include/static assertion 구간: ReadBytes, if, MakeCase, ExpectSnapshotsEqual, FindFamily, find_if, ExpectFamily, ExpectBlockingFamiliesPassed, for, ExpectInternalFamiliesPassed tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 287a99d8f479a4d4ed54bfe04a80c303dd3ef8d3b6dd67665ce65ec0404d6d3b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_cases_test.cpp support@134-135 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 90e14ecb07fccdcf231e83a52c8f744d9319ba16ae7f04c27256c406a6429dac 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_cases_test.cpp support@202-203 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 87ef91571b7fcd7d7161bb8b385c8e0bfdc90da3dc29f8a77c0e4592e5be6f83 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_cases_test.cpp support@246-247 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 75ed650921b2a719d01db3b9a8699b87ebb403589335c0dab3766f91a93dd189 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_cases_test.cpp support@273-274 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3989248f6a5e57cdd68d8ef2bf85830b385196f16f2e293b504208192705563c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_cases_test.cpp support@295-296 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f580803fc945d7c5cc37b9dcda1e262d1c4026b9a5b6544073525786b07f48be 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_cases_test.cpp support@338-339 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a7955cbfd2f91685d3d922391e61a1c415c6daed4cf7b2eddc4407e3fe715bc0 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_cases_test.cpp support@366-367 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3e9b6724351d2c4044c018875a3878cef2b85ee06c40f3ad50c76fe5acc6c8fb 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_cases_test.cpp support@393-394 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/nonlinear_static_reference_cases_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d365ebad227c3cdf28bfb737c8976d06bc3484e90b5556e13a91605a5367aabe 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_comparison.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/nonlinear_static_reference_comparison.cpp file 유지 SpatialMoment helper는 production inverse API 제거에 따라 독립 closed-form oracle로 이관한다. 비교 family·global balance·RF/RM review-only·finite 사전 gate는 유지한다. 64d9fa7d7067830bedd7316e66d68c32839c7e701fa8f6a49421cbbcce3938a2 64d9fa7d7067830bedd7316e66d68c32839c7e701fa8f6a49421cbbcce3938a2 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_comparison.cpp support@1-1721 helper/oracle/fixture/include/static assertion 구간: fesa, CaseContract, ContractFor, if, ComparisonFailure, Fail, FailureStatus, Normalized, IsDescendantOf, GenericPath, Trim, find_if_not, UppercaseAscii, transform, ReadBytes, RotateRight, Sha256, for, while, Fnv1a64, DeclaredArtifact, DeclaredArtifacts, Snapshot, SplitCsv, ParsePositiveLabel, ParseFiniteDouble, CsvWideRow, ReadCsvWideRows, Hdf5Handle, Hdf5ErrorSilencer, Hdf5VlenReclaimer, Reclaim, RequireId, RequireHdf, OpenDataset, Dimensions, MakeUtf8StringType, ReadStringAttribute, ReadUint64Attribute, RequireStringAttribute, NodeReadRow, Hdf5Node, ReadNodes, AcceptedFrameReadRow, ReadFactorOneFrame, ReadNodalDataset, ReadConstraintMask, Hdf5Projection, CopiedInputPathFor, ReadGlobalBalance, ReadNonlinearHdf5, RequireExactNodeLabels, RequirePressureInstance, Key, IsSelected, ProjectCsv, ProjectHdf5, EvaluateFamily, AppendFamily, ExpectedConstrainedLabels, RequiredConstrainedLabels, VectorAt, SpatialMoment, MaskedResidual, InfinityNorm, FreeRowCount, AppendInternal, AppendFreeResidual, AppendGlobalBalance, AppendInternalEquilibrium, DerivedLogPath, DerivedResultsPath, MakeReport, CompareLinearCase, CompareNonlinearCase, ComparePressureCase, NonlinearInternalEquilibriumReport, EvaluateGlobalBalance, ArtifactCheck, catch, CopyInputToExecutionDirectory, RunFesaApplicationOnCopiedInput, CompareHdf5ToReferenceCsv, ClassifyReferenceComparison, any_of, BuildReferenceComparisonReport tests/reference/nonlinear_static_reference_comparison.cpp file-support 유지 SpatialMoment helper는 production inverse API 제거에 따라 독립 closed-form oracle로 이관한다. 비교 family·global balance·RF/RM review-only·finite 사전 gate는 유지한다. 97dfe70f99b977337fc72e71aec2c6097d686525bd022b595ba95f7343275488 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_comparison.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/nonlinear_static_reference_comparison.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6f3832cec9b2ab5770948480045b2e454a5d0bc8fd2b6c38f0e134fbaf2983be 6f3832cec9b2ab5770948480045b2e454a5d0bc8fd2b6c38f0e134fbaf2983be 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/nonlinear_static_reference_comparison.h support@1-143 helper/oracle/fixture/include/static assertion 구간: fesa, NonlinearReferenceArtifactDisposition, NonlinearReferenceCase, ArtifactSnapshot, NonlinearReferenceDisposition, NonlinearReferenceRowKey, NonlinearReferenceFamilyReport, NonlinearReferencePrecheckFinding, NonlinearInternalEquilibriumReport, ConstrainedReactionResultantReport, GeneratedRunArtifacts, NonlinearReferenceComparisonReport, NonlinearReferenceClassification tests/reference/nonlinear_static_reference_comparison.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e61520b0bf03ec971e428abd42887d86bd74ee157eb174f0da25be3ca00d20ae 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_comparison.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/reference_comparison.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9680d6dd2deef156b5c8d000167cd6d3f6e29fe1b1fecc5a0f9cd6ebc0fa1602 9680d6dd2deef156b5c8d000167cd6d3f6e29fe1b1fecc5a0f9cd6ebc0fa1602 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_comparison.cpp support@1-1519 helper/oracle/fixture/include/static assertion 구간: fesa, ComparisonFailure, Fail, ComparisonFailureStatus, Trim, find_if_not, CollapseWhitespace, for, if, AsciiLower, transform, SplitCsvLine, while, ParsePositiveLabel, ParseFiniteDouble, WideReferenceRow, ReferenceTable, SectionReferenceRow, SectionReferenceTable, ReadReferenceCsv, find_if, ReadSectionReferenceCsv, RequireExactArtifactInventory, increment, ReadApprovedDomain, Hdf5Handle, Hdf5ErrorSilencer, Hdf5VlenReclaimer, RequireId, RequireHdf, OpenDataset, DatasetDimensions, ReadStringAttribute, ReadUint64Attribute, RequireStringAttribute, RequireResultAttributes, ReadDoubleDataset, RequireCompoundMembers, MakeVariableStringType, NodeMemoryRow, ElementMemoryRow, HdfNode, HdfElement, ReadNodeRows, ReadElementRows, RequireFiniteStress, StressValue, ExpectedLocalAxes, HdfProjection, ReadHdfProjection, OrderedRows, OrderedSectionRows, CanonicalRow, AppendNodalRows, AppendSectionRows, BranchName, switch, EvaluateFamily, MakePhysicsEvidence, QuantityName, WriteJsonString, WriteCanonicalRow, WriteArray, WriteStrings, FiniteReport, all_of, Result, Compare, catch, WriteDeterministicJson tests/reference/reference_comparison.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4f6eadb9f7705f35da852e0f4cf63f1af16a1f951faf90b6895841a4a7b12380 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_comparison.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/reference_comparison.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1ca9383ffed095fdb372fe7d16ec3d9c6fbace46c7a103e94c27220fc99b56b0 1ca9383ffed095fdb372fe7d16ec3d9c6fbace46c7a103e94c27220fc99b56b0 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_comparison.h support@1-102 helper/oracle/fixture/include/static assertion 구간: fesa, ComparisonQuantity, CanonicalComparisonRow, RowDecision, ComponentMetrics, PhysicsEvidence, ComparisonReport, ReferenceComparison tests/reference/reference_comparison.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1f39624e67c37926b656243337baed8a87b43b96547388e0d41dd6a25db0e37e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_comparison_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/reference/reference_comparison_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e39732a6cb8747725a43f7fc6341fd4688d04cd3f9f936ec33cbc79b232886af e39732a6cb8747725a43f7fc6341fd4688d04cd3f9f936ec33cbc79b232886af 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.PrecheckRejectsMissingSchemaDuplicateAndNonfiniteRows ReferenceComparisonContract.PrecheckRejectsMissingSchemaDuplicateAndNonfiniteRows; assertion 7개 tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.PrecheckRejectsMissingSchemaDuplicateAndNonfiniteRows 유지 원문 검사 body 및 assertion 동일. 810238882b3a881527ffba11344288d641d606f3538f88d2f5e55adba4409905 810238882b3a881527ffba11344288d641d606f3538f88d2f5e55adba4409905 ASSERT_TRUE(std::filesystem::remove(fixture.Legacy() / kDisplacementName)) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_GT(lines.size(), 2U) ASSERT_TRUE(std::filesystem::remove(fixture.Legacy() / kDisplacementName)) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kNodeCount + 1U) | ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_GT(lines.size(), 2U) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.AppliesSharedFamilyScaleAndNearZeroBranchesWithoutAnAbsoluteGate ReferenceComparisonContract.AppliesSharedFamilyScaleAndNearZeroBranchesWithoutAnAbsoluteGate; assertion 28개 tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.AppliesSharedFamilyScaleAndNearZeroBranchesWithoutAnAbsoluteGate 유지 원문 검사 body 및 assertion 동일. f6ca0c5aae73df95b70d24611a1948a63e24dc842bc9da29f03f7182f05ad9fd f6ca0c5aae73df95b70d24611a1948a63e24dc842bc9da29f03f7182f05ad9fd "ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(report.passed) | EXPECT_EQ(report.rows.size(), kExpectedRowCount) | EXPECT_EQ(report.metrics.size(), kExpectedMetricCount) | ASSERT_NE(zero, nullptr) | ASSERT_NE(near_zero, nullptr) | ASSERT_NE(deliberate_failure, nullptr) | EXPECT_DOUBLE_EQ(zero->reference.value, 0.0) | EXPECT_DOUBLE_EQ(zero->fesa.value, 0.0) | EXPECT_DOUBLE_EQ(zero->tolerance, near_zero_band) | EXPECT_TRUE(zero->passed) | EXPECT_TRUE(near_zero->passed) | EXPECT_FALSE(deliberate_failure->passed) | EXPECT_EQ(near_zero->tolerance_branch, ""near-zero"") | EXPECT_FALSE(near_zero->relative_error_applicable) | ASSERT_NE(my_metric, nullptr) | EXPECT_DOUBLE_EQ(my_metric->reference_scale, 1.0e7) | EXPECT_EQ(my_metric->components, (std::vector{""T"", ""My"", ""Mz""})) | ASSERT_NE(scaled, nullptr) | ASSERT_NE(residue, nullptr) | EXPECT_DOUBLE_EQ(scaled->tolerance, 5.0e5) | EXPECT_DOUBLE_EQ(scaled->absolute_error, 4.999e5) | EXPECT_TRUE(scaled->passed) | EXPECT_DOUBLE_EQ(residue->reference.value, -1.5625e-2) | EXPECT_DOUBLE_EQ(residue->fesa.value, 0.0) | EXPECT_DOUBLE_EQ(residue->absolute_error, 1.5625e-2) | EXPECT_DOUBLE_EQ(residue->tolerance, 1.0e5) | EXPECT_TRUE(residue->passed)" "ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(report.passed) | EXPECT_EQ(report.rows.size(), kExpectedRowCount) | EXPECT_EQ(report.metrics.size(), kExpectedMetricCount) | ASSERT_NE(zero, nullptr) | ASSERT_NE(near_zero, nullptr) | ASSERT_NE(deliberate_failure, nullptr) | EXPECT_DOUBLE_EQ(zero->reference.value, 0.0) | EXPECT_DOUBLE_EQ(zero->fesa.value, 0.0) | EXPECT_DOUBLE_EQ(zero->tolerance, near_zero_band) | EXPECT_TRUE(zero->passed) | EXPECT_TRUE(near_zero->passed) | EXPECT_FALSE(deliberate_failure->passed) | EXPECT_EQ(near_zero->tolerance_branch, ""near-zero"") | EXPECT_FALSE(near_zero->relative_error_applicable) | ASSERT_NE(my_metric, nullptr) | EXPECT_DOUBLE_EQ(my_metric->reference_scale, 1.0e7) | EXPECT_EQ(my_metric->components, (std::vector{""T"", ""My"", ""Mz""})) | ASSERT_NE(scaled, nullptr) | ASSERT_NE(residue, nullptr) | EXPECT_DOUBLE_EQ(scaled->tolerance, 5.0e5) | EXPECT_DOUBLE_EQ(scaled->absolute_error, 4.999e5) | EXPECT_TRUE(scaled->passed) | EXPECT_DOUBLE_EQ(residue->reference.value, -1.5625e-2) | EXPECT_DOUBLE_EQ(residue->fesa.value, 0.0) | EXPECT_DOUBLE_EQ(residue->absolute_error, 1.5625e-2) | EXPECT_DOUBLE_EQ(residue->tolerance, 1.0e5) | EXPECT_TRUE(residue->passed)" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.ReportsEveryRowAndAggregateMetricDeterministically ReferenceComparisonContract.ReportsEveryRowAndAggregateMetricDeterministically; assertion 24개 tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.ReportsEveryRowAndAggregateMetricDeterministically 유지 원문 검사 body 및 assertion 동일. 3aeb231f836acf51af5432b7c06df1e786278ff6fceeb3a53d50a9377653df3c 3aeb231f836acf51af5432b7c06df1e786278ff6fceeb3a53d50a9377653df3c "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.metrics.size(), kExpectedMetricCount) | EXPECT_TRUE(std::all_of( report.rows.begin(), report.rows.end(), [](const fesa::test::RowDecision& row) { return row.passed; })) | ASSERT_NE(metric, nullptr) | ASSERT_NE(worst, nullptr) | EXPECT_EQ(metric->row_count, kNodeCount * 3U) | EXPECT_DOUBLE_EQ(metric->reference_scale, 1.90476272e-2) | EXPECT_DOUBLE_EQ(metric->maximum_absolute_error, 1.0e-9) | EXPECT_NEAR(metric->relative_rms, std::sqrt(1.25 / static_cast(kNodeCount * 3U)) * 1.0e-9 / metric->reference_scale, 1.0e-21) | EXPECT_EQ(metric->worst_row, static_cast(worst - report.rows.data())) | EXPECT_FALSE(report.stress_comparison_applicable) | EXPECT_NE(report.stress_comparison_reason.find(""N/A""), std::string::npos) | EXPECT_NE(report.stress_comparison_reason.find(""HDF5""), std::string::npos) | EXPECT_DOUBLE_EQ(report.physics_evidence.free_residual_norm, 0.0) | EXPECT_EQ(report.physics_evidence.applied_force, (std::array{0.0, 0.0, -1.0e6})) | EXPECT_EQ(report.physics_evidence.reaction_force, (std::array{0.0, 0.0, 1.0e6})) | EXPECT_EQ(report.physics_evidence.applied_moment_about_origin, (std::array{0.0, 1.0e7, 0.0})) | EXPECT_EQ(report.physics_evidence.reaction_moment_about_origin, (std::array{0.0, -1.0e7, 0.0})) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | ASSERT_TRUE( fesa::test::ReferenceComparison::WriteDeterministicJson(report, json_a) .IsOk()) | ASSERT_TRUE( fesa::test::ReferenceComparison::WriteDeterministicJson(report, json_b) .IsOk()) | EXPECT_EQ(first, ReadBytes(json_b)) | EXPECT_NE(first.find(required), std::string::npos)" "ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_EQ(report.metrics.size(), kExpectedMetricCount) | EXPECT_TRUE(std::all_of( report.rows.begin(), report.rows.end(), [](const fesa::test::RowDecision& row) { return row.passed; })) | ASSERT_NE(metric, nullptr) | ASSERT_NE(worst, nullptr) | EXPECT_EQ(metric->row_count, kNodeCount * 3U) | EXPECT_DOUBLE_EQ(metric->reference_scale, 1.90476272e-2) | EXPECT_DOUBLE_EQ(metric->maximum_absolute_error, 1.0e-9) | EXPECT_NEAR(metric->relative_rms, std::sqrt(1.25 / static_cast(kNodeCount * 3U)) * 1.0e-9 / metric->reference_scale, 1.0e-21) | EXPECT_EQ(metric->worst_row, static_cast(worst - report.rows.data())) | EXPECT_FALSE(report.stress_comparison_applicable) | EXPECT_NE(report.stress_comparison_reason.find(""N/A""), std::string::npos) | EXPECT_NE(report.stress_comparison_reason.find(""HDF5""), std::string::npos) | EXPECT_DOUBLE_EQ(report.physics_evidence.free_residual_norm, 0.0) | EXPECT_EQ(report.physics_evidence.applied_force, (std::array{0.0, 0.0, -1.0e6})) | EXPECT_EQ(report.physics_evidence.reaction_force, (std::array{0.0, 0.0, 1.0e6})) | EXPECT_EQ(report.physics_evidence.applied_moment_about_origin, (std::array{0.0, 1.0e7, 0.0})) | EXPECT_EQ(report.physics_evidence.reaction_moment_about_origin, (std::array{0.0, -1.0e7, 0.0})) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | ASSERT_TRUE( fesa::test::ReferenceComparison::WriteDeterministicJson(report, json_a) .IsOk()) | ASSERT_TRUE( fesa::test::ReferenceComparison::WriteDeterministicJson(report, json_b) .IsOk()) | EXPECT_EQ(first, ReadBytes(json_b)) | EXPECT_NE(first.find(required), std::string::npos)" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.PreservesSectionEndpointIdentityWithoutStationNormalization ReferenceComparisonContract.PreservesSectionEndpointIdentityWithoutStationNormalization; assertion 10개 tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.PreservesSectionEndpointIdentityWithoutStationNormalization 유지 원문 검사 body 및 assertion 동일. 35b078826866908199d78ce70bc394087ad8ad257cc7db971e29412a67ab19d2 35b078826866908199d78ce70bc394087ad8ad257cc7db971e29412a67ab19d2 ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | ASSERT_NE(interior, nullptr) | EXPECT_DOUBLE_EQ(interior->fesa.value, 9.0e6 - 5.0) | EXPECT_DOUBLE_EQ(interior->reference.value, 9.0e6) | EXPECT_DOUBLE_EQ(interior->absolute_error, 5.0) | ASSERT_NE(adjacent, nullptr) | EXPECT_DOUBLE_EQ(adjacent->fesa.value, 9.0e6) | EXPECT_DOUBLE_EQ(adjacent->reference.value, 9.0e6) ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | EXPECT_TRUE(report.physics_evidence.endpoint_consistency_passed) | ASSERT_NE(interior, nullptr) | EXPECT_DOUBLE_EQ(interior->fesa.value, 9.0e6 - 5.0) | EXPECT_DOUBLE_EQ(interior->reference.value, 9.0e6) | EXPECT_DOUBLE_EQ(interior->absolute_error, 5.0) | ASSERT_NE(adjacent, nullptr) | EXPECT_DOUBLE_EQ(adjacent->fesa.value, 9.0e6) | EXPECT_DOUBLE_EQ(adjacent->reference.value, 9.0e6) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.MapsEachSectionCsvComponentToItsDirectEndpointResultant ReferenceComparisonContract.MapsEachSectionCsvComponentToItsDirectEndpointResultant; assertion 15개 tests/reference/reference_comparison_test.cpp ReferenceComparisonContract.MapsEachSectionCsvComponentToItsDirectEndpointResultant 유지 원문 검사 body 및 assertion 동일. cb0ba7caae79f4c0d6d33c2fe7d29658710974c27d49edc9d208987cd21dcb73 cb0ba7caae79f4c0d6d33c2fe7d29658710974c27d49edc9d208987cd21dcb73 ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_NE(n, nullptr) | ASSERT_NE(t, nullptr) | ASSERT_NE(my, nullptr) | ASSERT_NE(mz, nullptr) | EXPECT_DOUBLE_EQ(n->reference.value, 11.0) | EXPECT_DOUBLE_EQ(t->reference.value, 22.0) | EXPECT_DOUBLE_EQ(my->reference.value, 33.0) | EXPECT_DOUBLE_EQ(mz->reference.value, 44.0) | EXPECT_DOUBLE_EQ(n->fesa.value, 11.0) | EXPECT_DOUBLE_EQ(t->fesa.value, 22.0) | EXPECT_DOUBLE_EQ(my->fesa.value, 33.0) | EXPECT_DOUBLE_EQ(mz->fesa.value, 44.0) ASSERT_EQ(lines.size(), kElementCount * 2U + 1U) | ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(report.passed) | ASSERT_NE(n, nullptr) | ASSERT_NE(t, nullptr) | ASSERT_NE(my, nullptr) | ASSERT_NE(mz, nullptr) | EXPECT_DOUBLE_EQ(n->reference.value, 11.0) | EXPECT_DOUBLE_EQ(t->reference.value, 22.0) | EXPECT_DOUBLE_EQ(my->reference.value, 33.0) | EXPECT_DOUBLE_EQ(mz->reference.value, 44.0) | EXPECT_DOUBLE_EQ(n->fesa.value, 11.0) | EXPECT_DOUBLE_EQ(t->fesa.value, 22.0) | EXPECT_DOUBLE_EQ(my->fesa.value, 33.0) | EXPECT_DOUBLE_EQ(mz->fesa.value, 44.0) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_comparison_test.cpp support@1-424 helper/oracle/fixture/include/static assertion 구간: ComparisonValues, SourceRoot, BinaryRoot, ReadBytes, if, WriteBytes, ReadLines, WriteLines, for, ReplaceFirst, ReferenceValues, MakeDefinition, WriteResultsFixture, ContractFixture, ExpectFailureCode, FindRow, find_if, FindMetric, FindSectionRow, ExpectExactRowInventory tests/reference/reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 26a9f2cdd31fc7384d94d10efdfe1ab22d82b8c620ee16874094069b4671958b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_tolerance_policy.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/reference_tolerance_policy.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b2e6065df0d673be20fb10fbf0ef58705fc04c1788b5e52d1faaf7ebda33274f b2e6065df0d673be20fb10fbf0ef58705fc04c1788b5e52d1faaf7ebda33274f 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_tolerance_policy.cpp support@1-138 helper/oracle/fixture/include/static assertion 구간: fesa, IsFiniteFamily, if, all_of, EvaluateFamilies, for, ReferenceToleranceEvaluation, Evaluate, EvaluateMitc4EigenFirstImplementation tests/reference/reference_tolerance_policy.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 27b71db22073ee923ba13a8c32bff7ea14ab488d80c2ceefb7767747b68d52f0 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_tolerance_policy.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/reference_tolerance_policy.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9918e9b43e9b777dae620fc552badccc5570bb246a6499756df83b1c207f9e24 9918e9b43e9b777dae620fc552badccc5570bb246a6499756df83b1c207f9e24 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_tolerance_policy.h support@1-80 helper/oracle/fixture/include/static assertion 구간: fesa, ReferenceToleranceBranch, ReferenceToleranceRow, ReferenceToleranceFamily, ReferenceToleranceRowDecision, ReferenceToleranceFamilyDecision, ReferenceToleranceEvaluation, ReferenceTolerancePolicy tests/reference/reference_tolerance_policy.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. de2c46296fb2b5947a46c739ae21ad66802622b97ee4845543d3cd2a50ba03ac 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_tolerance_policy_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/reference/reference_tolerance_policy_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. be4a8896f4847dec26c07578c91d97f23f132c8a97c2507e5614011f70aa600f be4a8896f4847dec26c07578c91d97f23f132c8a97c2507e5614011f70aa600f 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.AppliesRelativeAndNearZeroThresholdsAtTheirInclusiveBoundaries ReferenceTolerancePolicy.AppliesRelativeAndNearZeroThresholdsAtTheirInclusiveBoundaries; assertion 19개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.AppliesRelativeAndNearZeroThresholdsAtTheirInclusiveBoundaries 유지 원문 검사 body 및 assertion 동일. 0796acda78954b1bf9b52659b043f23a0435245c7198961ebd96d84b241c9265 0796acda78954b1bf9b52659b043f23a0435245c7198961ebd96d84b241c9265 ASSERT_TRUE(evaluation.valid) | ASSERT_EQ(evaluation.families.size(), 1U) | EXPECT_EQ(family.row_count, 4U) | EXPECT_DOUBLE_EQ(family.reference_scale, 100.0) | EXPECT_DOUBLE_EQ(family.near_zero_band, 1.0) | EXPECT_EQ(family.near_zero_count, 2U) | EXPECT_FALSE(family.passed) | ASSERT_EQ(family.rows.size(), 4U) | EXPECT_EQ(family.rows[0U].branch, ReferenceToleranceBranch::kRelative) | EXPECT_TRUE(family.rows[0U].relative_error_applicable) | EXPECT_DOUBLE_EQ(family.rows[0U].relative_error, 0.05) | EXPECT_DOUBLE_EQ(family.rows[0U].threshold, 5.0) | EXPECT_TRUE(family.rows[0U].passed) | EXPECT_FALSE(family.rows[1U].passed) | EXPECT_EQ(family.rows[2U].branch, ReferenceToleranceBranch::kNearZero) | EXPECT_FALSE(family.rows[2U].relative_error_applicable) | EXPECT_DOUBLE_EQ(family.rows[2U].threshold, 1.0) | EXPECT_TRUE(family.rows[2U].passed) | EXPECT_FALSE(family.rows[3U].passed) ASSERT_TRUE(evaluation.valid) | ASSERT_EQ(evaluation.families.size(), 1U) | EXPECT_EQ(family.row_count, 4U) | EXPECT_DOUBLE_EQ(family.reference_scale, 100.0) | EXPECT_DOUBLE_EQ(family.near_zero_band, 1.0) | EXPECT_EQ(family.near_zero_count, 2U) | EXPECT_FALSE(family.passed) | ASSERT_EQ(family.rows.size(), 4U) | EXPECT_EQ(family.rows[0U].branch, ReferenceToleranceBranch::kRelative) | EXPECT_TRUE(family.rows[0U].relative_error_applicable) | EXPECT_DOUBLE_EQ(family.rows[0U].relative_error, 0.05) | EXPECT_DOUBLE_EQ(family.rows[0U].threshold, 5.0) | EXPECT_TRUE(family.rows[0U].passed) | EXPECT_FALSE(family.rows[1U].passed) | EXPECT_EQ(family.rows[2U].branch, ReferenceToleranceBranch::kNearZero) | EXPECT_FALSE(family.rows[2U].relative_error_applicable) | EXPECT_DOUBLE_EQ(family.rows[2U].threshold, 1.0) | EXPECT_TRUE(family.rows[2U].passed) | EXPECT_FALSE(family.rows[3U].passed) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.RejectsFamiliesWhoseScaleRelativeRmsExceedsOnePercent ReferenceTolerancePolicy.RejectsFamiliesWhoseScaleRelativeRmsExceedsOnePercent; assertion 7개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.RejectsFamiliesWhoseScaleRelativeRmsExceedsOnePercent 유지 원문 검사 body 및 assertion 동일. c92918fb5b5c06da814ac1213a2b80b8af1ffd52bd0f11339468ab1ff87eed5f c92918fb5b5c06da814ac1213a2b80b8af1ffd52bd0f11339468ab1ff87eed5f ASSERT_TRUE(evaluation.valid) | EXPECT_EQ(family.row_count, 4U) | EXPECT_TRUE(std::all_of(family.rows.begin(), family.rows.end(), [](const auto& row) { return row.passed; })) | EXPECT_NEAR(family.relative_rms, 0.011, 1.0e-15) | EXPECT_FALSE(family.rms_passed) | EXPECT_FALSE(family.passed) | EXPECT_FALSE(evaluation.passed) ASSERT_TRUE(evaluation.valid) | EXPECT_EQ(family.row_count, 4U) | EXPECT_TRUE(std::all_of(family.rows.begin(), family.rows.end(), [](const auto& row) { return row.passed; })) | EXPECT_NEAR(family.relative_rms, 0.011, 1.0e-15) | EXPECT_FALSE(family.rms_passed) | EXPECT_FALSE(family.passed) | EXPECT_FALSE(evaluation.passed) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.FailsClosedForZeroScaleNonzeroErrorWithoutNonfiniteMetrics ReferenceTolerancePolicy.FailsClosedForZeroScaleNonzeroErrorWithoutNonfiniteMetrics; assertion 14개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.FailsClosedForZeroScaleNonzeroErrorWithoutNonfiniteMetrics 유지 원문 검사 body 및 assertion 동일. 38ca8bda67fdaa127b1694bc937e3ca56f701ea313ab767da299fc747b33c7de 38ca8bda67fdaa127b1694bc937e3ca56f701ea313ab767da299fc747b33c7de "ASSERT_TRUE(evaluation.valid) | EXPECT_EQ(family.row_count, 2U) | EXPECT_DOUBLE_EQ(family.reference_scale, 0.0) | EXPECT_DOUBLE_EQ(family.near_zero_band, 0.0) | EXPECT_EQ(family.near_zero_count, 2U) | EXPECT_EQ(family.diagnostic_code, ""zero-reference-scale-nonzero-error"") | EXPECT_EQ(family.rows[0U].branch, ReferenceToleranceBranch::kZeroScaleExact) | EXPECT_TRUE(family.rows[0U].passed) | EXPECT_FALSE(family.rows[1U].passed) | EXPECT_FALSE(family.rows[1U].relative_error_applicable) | EXPECT_TRUE(std::isfinite(family.relative_rms)) | EXPECT_DOUBLE_EQ(family.relative_rms, 0.0) | EXPECT_FALSE(family.rms_passed) | EXPECT_FALSE(family.passed)" "ASSERT_TRUE(evaluation.valid) | EXPECT_EQ(family.row_count, 2U) | EXPECT_DOUBLE_EQ(family.reference_scale, 0.0) | EXPECT_DOUBLE_EQ(family.near_zero_band, 0.0) | EXPECT_EQ(family.near_zero_count, 2U) | EXPECT_EQ(family.diagnostic_code, ""zero-reference-scale-nonzero-error"") | EXPECT_EQ(family.rows[0U].branch, ReferenceToleranceBranch::kZeroScaleExact) | EXPECT_TRUE(family.rows[0U].passed) | EXPECT_FALSE(family.rows[1U].passed) | EXPECT_FALSE(family.rows[1U].relative_error_applicable) | EXPECT_TRUE(std::isfinite(family.relative_rms)) | EXPECT_DOUBLE_EQ(family.relative_rms, 0.0) | EXPECT_FALSE(family.rms_passed) | EXPECT_FALSE(family.passed)" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.KeepsWarningOnlyFamilyExceedanceOutOfBlockingVerdict ReferenceTolerancePolicy.KeepsWarningOnlyFamilyExceedanceOutOfBlockingVerdict; assertion 5개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.KeepsWarningOnlyFamilyExceedanceOutOfBlockingVerdict 유지 원문 검사 body 및 assertion 동일. ea07bf7d6def7cbd89bc911f979f710846ad558b1711613f3abcc97e14be0b8a ea07bf7d6def7cbd89bc911f979f710846ad558b1711613f3abcc97e14be0b8a ASSERT_TRUE(evaluation.valid) | ASSERT_EQ(evaluation.families.size(), 2U) | EXPECT_TRUE(evaluation.families[0U].passed) | EXPECT_FALSE(evaluation.families[1U].passed) | EXPECT_TRUE(evaluation.passed) ASSERT_TRUE(evaluation.valid) | ASSERT_EQ(evaluation.families.size(), 2U) | EXPECT_TRUE(evaluation.families[0U].passed) | EXPECT_FALSE(evaluation.families[1U].passed) | EXPECT_TRUE(evaluation.passed) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.RejectsNonfiniteInputsBeforeToleranceEvaluation ReferenceTolerancePolicy.RejectsNonfiniteInputsBeforeToleranceEvaluation; assertion 3개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.RejectsNonfiniteInputsBeforeToleranceEvaluation 유지 원문 검사 body 및 assertion 동일. 42628fe515d6debce07e8553911bb1a6b74e316265a0702267056258db827b45 42628fe515d6debce07e8553911bb1a6b74e316265a0702267056258db827b45 "EXPECT_FALSE(evaluation.valid) | EXPECT_EQ(evaluation.diagnostic_code, ""nonfinite-comparison-value"") | EXPECT_TRUE(evaluation.families.empty())" "EXPECT_FALSE(evaluation.valid) | EXPECT_EQ(evaluation.diagnostic_code, ""nonfinite-comparison-value"") | EXPECT_TRUE(evaluation.families.empty())" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationDoesNotRelaxCommonPolicy ReferenceTolerancePolicy.EigenFirstImplementationDoesNotRelaxCommonPolicy; assertion 6개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationDoesNotRelaxCommonPolicy 유지 원문 검사 body 및 assertion 동일. d4090ddd26b57509606e7f1dfdbfd22996f95d19c5d761d6368b6c07a467aca2 d4090ddd26b57509606e7f1dfdbfd22996f95d19c5d761d6368b6c07a467aca2 ASSERT_TRUE(common.valid) | ASSERT_TRUE(eigen.valid) | EXPECT_FALSE(common.passed) | EXPECT_TRUE(eigen.passed) | EXPECT_DOUBLE_EQ(eigen.families[0].relative_rms, 0.05) | EXPECT_DOUBLE_EQ(common.families[0].relative_rms, eigen.families[0].relative_rms) ASSERT_TRUE(common.valid) | ASSERT_TRUE(eigen.valid) | EXPECT_FALSE(common.passed) | EXPECT_TRUE(eigen.passed) | EXPECT_DOUBLE_EQ(eigen.families[0].relative_rms, 0.05) | EXPECT_DOUBLE_EQ(common.families[0].relative_rms, eigen.families[0].relative_rms) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationPreservesZeroAndFiniteChecks ReferenceTolerancePolicy.EigenFirstImplementationPreservesZeroAndFiniteChecks; assertion 5개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationPreservesZeroAndFiniteChecks 유지 원문 검사 body 및 assertion 동일. 463cda2ec4b8c4b83cc64d2b655af56b24f310add1ee6bc486c3f319e6ad076a 463cda2ec4b8c4b83cc64d2b655af56b24f310add1ee6bc486c3f319e6ad076a "EXPECT_FALSE(result.valid) | EXPECT_FALSE(result.passed) | ASSERT_TRUE(result.valid) | EXPECT_EQ(result.passed, row.fesa_value == 0.0) | EXPECT_EQ(result.families[0].diagnostic_code, ""zero-reference-scale-nonzero-error"")" "EXPECT_FALSE(result.valid) | EXPECT_FALSE(result.passed) | ASSERT_TRUE(result.valid) | EXPECT_EQ(result.passed, row.fesa_value == 0.0) | EXPECT_EQ(result.families[0].diagnostic_code, ""zero-reference-scale-nonzero-error"")" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationRejectsNonmodalFamilies ReferenceTolerancePolicy.EigenFirstImplementationRejectsNonmodalFamilies; assertion 3개 tests/reference/reference_tolerance_policy_test.cpp ReferenceTolerancePolicy.EigenFirstImplementationRejectsNonmodalFamilies 유지 원문 검사 body 및 assertion 동일. cacd7f2e9c5bdc6c907786187817305395ce12155fa51e4e10ce01d364df2741 cacd7f2e9c5bdc6c907786187817305395ce12155fa51e4e10ce01d364df2741 "EXPECT_FALSE(result.valid) | EXPECT_FALSE(result.passed) | EXPECT_EQ(result.diagnostic_code, ""invalid-eigen-tolerance-family"")" "EXPECT_FALSE(result.valid) | EXPECT_FALSE(result.passed) | EXPECT_EQ(result.diagnostic_code, ""invalid-eigen-tolerance-family"")" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_tolerance_policy_test.cpp support@1-26 helper/oracle/fixture/include/static assertion 구간: MakeFamily tests/reference/reference_tolerance_policy_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9c2d3b770c78989b0bbe4bf618d87e318a4ddd8322aa0debfffe7cc932d3f028 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/reference_tolerance_policy_test.cpp support@172-173 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/reference_tolerance_policy_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 804f89fc0ec98c9824183e795d3edd19e930f7bc471f9012aa3d503be2f8974b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/shell_surface_pressure_reference_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/reference/shell_surface_pressure_reference_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 45a004e6e7ab3dba315796d54e1347b54fca3e1cad3b637a2dda6884ab846d7d 45a004e6e7ab3dba315796d54e1347b54fca3e1cad3b637a2dda6884ab846d7d 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/shell_surface_pressure_reference_test.cpp ShellSurfacePressureReference.ClassifiesTranslationBlockingAndRotationWarningOnly ShellSurfacePressureReference.ClassifiesTranslationBlockingAndRotationWarningOnly; assertion 1개 tests/reference/shell_surface_pressure_reference_test.cpp ShellSurfacePressureReference.ClassifiesTranslationBlockingAndRotationWarningOnly 유지 원문 검사 body 및 assertion 동일. ed6f0cea1655c6b579fecd966c3c2b1b62812f1e69475b98610c093cd4229455 ed6f0cea1655c6b579fecd966c3c2b1b62812f1e69475b98610c093cd4229455 EXPECT_EQ( fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kWarningOnlyDifferences) EXPECT_EQ( fesa::test::ClassifyReferenceComparison(report), fesa::test::NonlinearReferenceClassification::kWarningOnlyDifferences) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/shell_surface_pressure_reference_test.cpp support@1-12 helper/oracle/fixture/include/static assertion 구간: MakeTolerance tests/reference/shell_surface_pressure_reference_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8d9d1942187a363e8bc49004c4b7df1b110071843d5cdf55dccc741ee6066ea7 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/shell_surface_pressure_reference_test.cpp support@31-32 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/shell_surface_pressure_reference_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/thermal_reference_cases_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/reference/thermal_reference_cases_test.cpp file 유지 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 기존 diagnostic/nonblocking 판정은 유지한다. 8b340c31cb028e1cf8e676f35869cb74d923c7e3f05d5ed8d3cc428722b4aed3 8b340c31cb028e1cf8e676f35869cb74d923c7e3f05d5ed8d3cc428722b4aed3 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/thermal_reference_cases_test.cpp ThermalReference.OriginalAbaqusNt11RemainsAnExplicitFailingDiagnostic ThermalReference.OriginalAbaqusNt11RemainsAnExplicitFailingDiagnostic; assertion 16개 tests/reference/thermal_reference_cases_test.cpp ThermalReference.OriginalAbaqusNt11RemainsAnExplicitFailingDiagnostic 유지 원문 검사 body 및 assertion 동일. 86884d662acf255866202f5682b4e95db4785ee4a0da1ae2e83fc410f36a4290 86884d662acf255866202f5682b4e95db4785ee4a0da1ae2e83fc410f36a4290 ASSERT_FALSE(before_input.empty()) | ASSERT_FALSE(before_csv.empty()) | EXPECT_EQ(Bytes(input), before_input) | EXPECT_EQ(Bytes(csv), before_csv) | ASSERT_EQ(exit, 0) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(r.rows.size(), 729U) | ASSERT_TRUE(rows.good()) | EXPECT_EQ(r.family.reference_scale, 1000) | EXPECT_EQ(r.family.near_zero_band, 10) | EXPECT_FALSE(r.family.blocking) | EXPECT_FALSE(r.passed) | EXPECT_FALSE(r.family.rms_passed) | EXPECT_EQ(failed, 87U) | EXPECT_GT(r.family.relative_rms, fesa::test::ReferenceTolerancePolicy::kRelativeRmsTolerance) | EXPECT_GT(r.family.maximum_absolute_error, r.family.near_zero_band) ASSERT_FALSE(before_input.empty()) | ASSERT_FALSE(before_csv.empty()) | EXPECT_EQ(Bytes(input), before_input) | EXPECT_EQ(Bytes(csv), before_csv) | ASSERT_EQ(exit, 0) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(r.rows.size(), 729U) | ASSERT_TRUE(rows.good()) | EXPECT_EQ(r.family.reference_scale, 1000) | EXPECT_EQ(r.family.near_zero_band, 10) | EXPECT_FALSE(r.family.blocking) | EXPECT_FALSE(r.passed) | EXPECT_FALSE(r.family.rms_passed) | EXPECT_EQ(failed, 87U) | EXPECT_GT(r.family.relative_rms, fesa::test::ReferenceTolerancePolicy::kRelativeRmsTolerance) | EXPECT_GT(r.family.maximum_absolute_error, r.family.near_zero_band) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/reference/thermal_reference_cases_test.cpp support@1-15 helper/oracle/fixture/include/static assertion 구간: Bytes tests/reference/thermal_reference_cases_test.cpp file-support 유지 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 기존 diagnostic/nonblocking 판정은 유지한다. d748735499aeda58e97d6652289f5ba2fb3a8b1143f03a04e6159b38f93dbf0b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/thermal_reference_cases_test.cpp support@75-75 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/thermal_reference_cases_test.cpp file-support 유지 실행 파일만 build scratch 복사본으로 연결한다. 원본은 읽기 전용이고 기존 diagnostic/nonblocking 판정은 유지한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/thermal_reference_comparison.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/thermal_reference_comparison.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0cb4c1b8595a16219808d6fe661571b59f7b7f2e100749d83baf2506dc0a61a0 0cb4c1b8595a16219808d6fe661571b59f7b7f2e100749d83baf2506dc0a61a0 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/thermal_reference_comparison.cpp support@1-417 helper/oracle/fixture/include/static assertion 구간: fesa, Failure, Require, H, Id, Shape, Attr, if, T, Scalar, Primitive, Field, Label, Trim, Result, CompareThermalSnapshots, for, catch, ReadThermalReferenceCsv, while, ReadThermalReferenceHdf5, NodeRow, Frame, CompareThermalReferenceFiles tests/reference/thermal_reference_comparison.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 56b6cc4aad9b0122c1a0d266048c889280113757493d372501e163005bab9e1f 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/thermal_reference_comparison.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/reference/thermal_reference_comparison.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c0e30c7bdd6ef3fad7e0d69159888a15e35a096adbd77c8481913063d703a9e0 c0e30c7bdd6ef3fad7e0d69159888a15e35a096adbd77c8481913063d703a9e0 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/thermal_reference_comparison.h support@1-57 helper/oracle/fixture/include/static assertion 구간: fesa, ThermalReferenceRow, ThermalReferenceSnapshot, ThermalReferenceRowDecision, ThermalReferenceReport tests/reference/thermal_reference_comparison.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c1ecc31681e11d2a2b9a7f64773dc821acd8b3678d77c6063044b481a7f2409d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/thermal_reference_comparison_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/reference/thermal_reference_comparison_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d98e4228c027b4cedd45cc97c75fbd56694f91ecff32c875e32da384faa9a19e d98e4228c027b4cedd45cc97c75fbd56694f91ecff32c875e32da384faa9a19e 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.HdfSchemaMappingRejectsMalformedStationFrameAndNodeData ThermalReferenceComparison.HdfSchemaMappingRejectsMalformedStationFrameAndNodeData; assertion 4개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.HdfSchemaMappingRejectsMalformedStationFrameAndNodeData 유지 원문 검사 body 및 assertion 동일. b5991ec2a055de6dd67134f1cbf7445a7cfe8618f7089e1fe9968a22b3df1aaa b5991ec2a055de6dd67134f1cbf7445a7cfe8618f7089e1fe9968a22b3df1aaa ASSERT_TRUE(read.HasValue()) | EXPECT_EQ(result.HasValue(), defect == 0) | EXPECT_TRUE(result.Value().passed) | EXPECT_FALSE(read.HasValue()) ASSERT_TRUE(read.HasValue()) | EXPECT_EQ(result.HasValue(), defect == 0) | EXPECT_TRUE(result.Value().passed) | EXPECT_FALSE(read.HasValue()) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.MapsSourceLabelsWithoutRowOrderAndPreservesSignedValues ThermalReferenceComparison.MapsSourceLabelsWithoutRowOrderAndPreservesSignedValues; assertion 9개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.MapsSourceLabelsWithoutRowOrderAndPreservesSignedValues 유지 원문 검사 body 및 assertion 동일. 9fbe3d06c90283b2e1b9473474b689354f9dbd1bd2eca8c120e10127bfc472b9 9fbe3d06c90283b2e1b9473474b689354f9dbd1bd2eca8c120e10127bfc472b9 ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().passed) | ASSERT_EQ(result.Value().rows.size(), 3U) | EXPECT_EQ(result.Value().rows[1].label, 7U) | EXPECT_EQ(result.Value().rows[1].reference, -15.5742216) | EXPECT_EQ(result.Value().rows[1].tolerance.branch, fesa::test::ReferenceToleranceBranch::kRelative) | EXPECT_EQ(result.Value().family.reference_scale, 1000) | EXPECT_EQ(result.Value().family.near_zero_band, 10) | EXPECT_FALSE(result.Value().family.blocking) ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().passed) | ASSERT_EQ(result.Value().rows.size(), 3U) | EXPECT_EQ(result.Value().rows[1].label, 7U) | EXPECT_EQ(result.Value().rows[1].reference, -15.5742216) | EXPECT_EQ(result.Value().rows[1].tolerance.branch, fesa::test::ReferenceToleranceBranch::kRelative) | EXPECT_EQ(result.Value().family.reference_scale, 1000) | EXPECT_EQ(result.Value().family.near_zero_band, 10) | EXPECT_FALSE(result.Value().family.blocking) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.RejectsMissingExtraDuplicateAndNonfiniteBeforeTolerance ThermalReferenceComparison.RejectsMissingExtraDuplicateAndNonfiniteBeforeTolerance; assertion 1개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.RejectsMissingExtraDuplicateAndNonfiniteBeforeTolerance 유지 원문 검사 body 및 assertion 동일. bb8b648993b9f4ae838901f9566db7ca32f22e6bdbd6018213d68e1ff48dfc46 bb8b648993b9f4ae838901f9566db7ca32f22e6bdbd6018213d68e1ff48dfc46 "EXPECT_FALSE(fesa::test::CompareThermalSnapshots(actual, reference, {3, 7, 20}, ""Part-1-1"") .HasValue())" "EXPECT_FALSE(fesa::test::CompareThermalSnapshots(actual, reference, {3, 7, 20}, ""Part-1-1"") .HasValue())" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.RejectsWrongStepTimeIncrementInstanceAndStation ThermalReferenceComparison.RejectsWrongStepTimeIncrementInstanceAndStation; assertion 1개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.RejectsWrongStepTimeIncrementInstanceAndStation 유지 원문 검사 body 및 assertion 동일. e9b3d7890b38b8ac9d7124ef7b38cea8037bd5f2977145231c47928af3112462 e9b3d7890b38b8ac9d7124ef7b38cea8037bd5f2977145231c47928af3112462 "EXPECT_FALSE(fesa::test::CompareThermalSnapshots(actual, reference, {3, 7, 20}, ""Part-1-1"") .HasValue())" "EXPECT_FALSE(fesa::test::CompareThermalSnapshots(actual, reference, {3, 7, 20}, ""Part-1-1"") .HasValue())" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.UsesUnmodifiedFivePercentOnePercentAndExactZeroPolicy ThermalReferenceComparison.UsesUnmodifiedFivePercentOnePercentAndExactZeroPolicy; assertion 5개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.UsesUnmodifiedFivePercentOnePercentAndExactZeroPolicy 유지 원문 검사 body 및 assertion 동일. 6fa4b28f03af7accaa46980c8de1e428a784bed83de862984ec5c1fed45ea9db 6fa4b28f03af7accaa46980c8de1e428a784bed83de862984ec5c1fed45ea9db ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(result.Value().passed) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(result.Value().passed) | EXPECT_EQ(result.Value().family.reference_scale, 0) ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(result.Value().passed) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(result.Value().passed) | EXPECT_EQ(result.Value().family.reference_scale, 0) 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.CsvRequiresExactHeaderFrameFiniteValuesAndSoleInstance ThermalReferenceComparison.CsvRequiresExactHeaderFrameFiniteValuesAndSoleInstance; assertion 2개 tests/reference/thermal_reference_comparison_test.cpp ThermalReferenceComparison.CsvRequiresExactHeaderFrameFiniteValuesAndSoleInstance 유지 원문 검사 body 및 assertion 동일. 6a725850decb91c07895b0f8e6513e95e866004b4885a6f9cd0959b79b3d05f8 6a725850decb91c07895b0f8e6513e95e866004b4885a6f9cd0959b79b3d05f8 "EXPECT_EQ(result.HasValue(), text == header + valid) | EXPECT_FALSE(fesa::test::ReadThermalReferenceCsv(path, """").HasValue())" "EXPECT_EQ(result.HasValue(), text == header + valid) | EXPECT_FALSE(fesa::test::ReadThermalReferenceCsv(path, """").HasValue())" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/thermal_reference_comparison_test.cpp support@1-170 helper/oracle/fixture/include/static assertion 구간: TemporaryFolder, Handle, StringAttribute, T, ScalarAttribute, Dataset, comparator, Node, Frame tests/reference/thermal_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8fe742ff0a0ff661b374df3df48724fad479ad1702325197a6ff058cd08f3942 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/thermal_reference_comparison_test.cpp support@196-204 helper/oracle/fixture/include/static assertion 구간: Snapshot tests/reference/thermal_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 32bf1858c73c1cbf1f65ee1adc11e7230a993eb21b972a8b16916a5fe4eb2d21 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/reference/thermal_reference_comparison_test.cpp support@330-330 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/reference/thermal_reference_comparison_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 60개 tests/test_compare_hex8.py file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 48770f6e83f1b7c34a15e396fd7f21bc02c2c102f47f7bab520203d4ac4d872c 48770f6e83f1b7c34a15e396fd7f21bc02c2c102f47f7bab520203d4ac4d872c 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py family fixture/oracle/helper family tests/test_compare_hex8.py family 유지 원문 검사 body 및 assertion 동일. 470c4ffd359ca492fe0f676adef5096d760aa885da86bfea548cf66668911061 470c4ffd359ca492fe0f676adef5096d760aa885da86bfea548cf66668911061 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_zero_reference_scale_requires_exact_zero test_zero_reference_scale_requires_exact_zero; assertion 0개 tests/test_compare_hex8.py test_zero_reference_scale_requires_exact_zero 유지 원문 검사 body 및 assertion 동일. acffff10b5ecba2f553c11e2b6b170454e0622ae88c80e848c35e5a2657fb973 acffff10b5ecba2f553c11e2b6b170454e0622ae88c80e848c35e5a2657fb973 "assert not report[""passed""] | assert report[""diagnostic_code""] == ""zero-reference-scale-nonzero-error""" "assert not report[""passed""] | assert report[""diagnostic_code""] == ""zero-reference-scale-nonzero-error""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_row_pass_does_not_override_one_percent_rms test_row_pass_does_not_override_one_percent_rms; assertion 0개 tests/test_compare_hex8.py test_row_pass_does_not_override_one_percent_rms 유지 원문 검사 body 및 assertion 동일. 37a10f25ff36684717173aa3133bad3199da22251c4eede4c32926cb162248f1 37a10f25ff36684717173aa3133bad3199da22251c4eede4c32926cb162248f1 "assert report[""rows_passed""] | assert not report[""rms_passed""] | assert not report[""passed""]" "assert report[""rows_passed""] | assert not report[""rms_passed""] | assert not report[""passed""]" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_near_zero_band_uses_reference_scale_only test_near_zero_band_uses_reference_scale_only; assertion 0개 tests/test_compare_hex8.py test_near_zero_band_uses_reference_scale_only 유지 원문 검사 body 및 assertion 동일. 048405550e540c6604cc5f747bf2601f3a2ca7f18361f1a5b93c5e9ed2354674 048405550e540c6604cc5f747bf2601f3a2ca7f18361f1a5b93c5e9ed2354674 "assert report[""passed""] | assert report[""rows""][1][""branch""] == ""near-zero"" | assert not family([100.0, 1.0001], [100.0, 0.0])[""passed""]" "assert report[""passed""] | assert report[""rows""][1][""branch""] == ""near-zero"" | assert not family([100.0, 1.0001], [100.0, 0.0])[""passed""]" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_nonfinite_family_fails_before_tolerance test_nonfinite_family_fails_before_tolerance; assertion 0개 tests/test_compare_hex8.py test_nonfinite_family_fails_before_tolerance 유지 원문 검사 body 및 assertion 동일. d6a5a081bc6210e5bf9d8abf51bfb34dbc4216f72afaed67fcb2dd34bd0367de d6a5a081bc6210e5bf9d8abf51bfb34dbc4216f72afaed67fcb2dd34bd0367de 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_header_strip_collision_rejected_before_bad_numeric test_header_strip_collision_rejected_before_bad_numeric; assertion 0개 tests/test_compare_hex8.py test_header_strip_collision_rejected_before_bad_numeric 유지 원문 검사 body 및 assertion 동일. c563f3f16975c19d7cefff2d423156520212de85fc08c6efea140482cbf171a2 c563f3f16975c19d7cefff2d423156520212de85fc08c6efea140482cbf171a2 "assert error.value.code == ""duplicate-reference-header""" "assert error.value.code == ""duplicate-reference-header""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_modal_quantity_and_units_are_explicit test_modal_quantity_and_units_are_explicit; assertion 0개 tests/test_compare_hex8.py test_modal_quantity_and_units_are_explicit 유지 원문 검사 body 및 assertion 동일. 69224345be705ed0e5ddc73a0097e2cbde7fe40ae0767c3e366285b855b6f0c5 69224345be705ed0e5ddc73a0097e2cbde7fe40ae0767c3e366285b855b6f0c5 "assert error.value.code == ""wrong-modal-quantity""" "assert error.value.code == ""wrong-modal-quantity""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_modal_singletons_use_common_one_percent_rms test_modal_singletons_use_common_one_percent_rms; assertion 0개 tests/test_compare_hex8.py test_modal_singletons_use_common_one_percent_rms 유지 원문 검사 body 및 assertion 동일. 12414f36bfd7c2b85119a129cfadc5a621337125523d3e12f79239c235df245e 12414f36bfd7c2b85119a129cfadc5a621337125523d3e12f79239c235df245e "assert not report[""passed""] | assert len(report[""families""]) == 10 | assert all(row[""rows_passed""] and not row[""rms_passed""] for row in report[""families""])" "assert not report[""passed""] | assert len(report[""families""]) == 10 | assert all(row[""rows_passed""] and not row[""rms_passed""] for row in report[""families""])" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py write_strings fixture/oracle/helper write_strings tests/test_compare_hex8.py write_strings 유지 원문 검사 body 및 assertion 동일. 276c5761682166fbc7c118aec375743a4a95f58bc89d842e3115cd0f205c6192 276c5761682166fbc7c118aec375743a4a95f58bc89d842e3115cd0f205c6192 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py compound fixture/oracle/helper compound tests/test_compare_hex8.py compound 유지 원문 검사 body 및 assertion 동일. 24a2ff98b03ced8d9940d466b856caaa2aa4e4946964d331c183a39b97472f1c 24a2ff98b03ced8d9940d466b856caaa2aa4e4946964d331c183a39b97472f1c 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py source_models fixture/oracle/helper source_models tests/test_compare_hex8.py source_models 유지 원문 검사 body 및 assertion 동일. 49ff1623a3a5e4c6ae82fb11badea5f7c4a9c91c250effb7a622cd8b65a5de92 49ff1623a3a5e4c6ae82fb11badea5f7c4a9c91c250effb7a622cd8b65a5de92 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py source_rows fixture/oracle/helper source_rows tests/test_compare_hex8.py source_rows 유지 원문 검사 body 및 assertion 동일. a37f3e15cda5217583236cbba542b086d7167ec604698a3f920d9a8d4e89d570 a37f3e15cda5217583236cbba542b086d7167ec604698a3f920d9a8d4e89d570 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py make_result fixture/oracle/helper make_result tests/test_compare_hex8.py make_result 유지 원문 검사 body 및 assertion 동일. 331007a19dc4d4fe252e38c7aac4c31371b60f3e33dbe052ef1a6ed7ad41a8c6 331007a19dc4d4fe252e38c7aac4c31371b60f3e33dbe052ef1a6ed7ad41a8c6 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py result_fixtures fixture/oracle/helper result_fixtures tests/test_compare_hex8.py result_fixtures 유지 원문 검사 body 및 assertion 동일. 08b2a69b873b21100a21e05395ab04849091de70c7248b281c4bd803d067e0a6 08b2a69b873b21100a21e05395ab04849091de70c7248b281c4bd803d067e0a6 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py copy_result fixture/oracle/helper copy_result tests/test_compare_hex8.py copy_result 유지 원문 검사 body 및 assertion 동일. c050dd11768c91e970fbcc94d7c4dd2d83f5fb89df8b0c894446683f59be8e4c c050dd11768c91e970fbcc94d7c4dd2d83f5fb89df8b0c894446683f59be8e4c 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py compare_fixture fixture/oracle/helper compare_fixture tests/test_compare_hex8.py compare_fixture 유지 원문 검사 body 및 assertion 동일. 2c8a6c16b7f44b4ca2cf499b3564b53df1c0fdff6cb5470e192724ddf7267b65 2c8a6c16b7f44b4ca2cf499b3564b53df1c0fdff6cb5470e192724ddf7267b65 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py mutate_csv fixture/oracle/helper mutate_csv tests/test_compare_hex8.py mutate_csv 유지 원문 검사 body 및 assertion 동일. b240a6dce17c82736f4e531a9b7d741a44d9bfeac4aff82419842c5d2b0b4f24 b240a6dce17c82736f4e531a9b7d741a44d9bfeac4aff82419842c5d2b0b4f24 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_all_original_sized_schema_fixtures_compare_by_identity test_all_original_sized_schema_fixtures_compare_by_identity; assertion 0개 tests/test_compare_hex8.py test_all_original_sized_schema_fixtures_compare_by_identity 유지 원문 검사 body 및 assertion 동일. 25f539a154d3685491c6b4eebcdfbe580ef2fa1ab98b3cee67b29d8f8a2a667c 25f539a154d3685491c6b4eebcdfbe580ef2fa1ab98b3cee67b29d8f8a2a667c "assert report[""precheck""][""passed""], report[""precheck""] | assert report[""verdict""] == ""passed"" | assert report[""execution""][""verified""] is False | assert len(report[""families""]) == (101 if case.startswith(""hexa_dyn"") else 3) | assert [family[""row_count""] for family in report[""families""]] == [1326, 51, 14400] | assert report[""precheck""][""reference_row_counts""][""RF""] == 442 | assert [family[""increment""] for family in report[""families""]] == list(range(101)) | assert all(family[""row_count""] == 1326 for family in report[""families""]) | assert report[""families""][0][""reference_scale""] == 0." "assert report[""precheck""][""passed""], report[""precheck""] | assert report[""verdict""] == ""passed"" | assert report[""execution""][""verified""] is False | assert len(report[""families""]) == (101 if case.startswith(""hexa_dyn"") else 3) | assert [family[""row_count""] for family in report[""families""]] == [1326, 51, 14400] | assert report[""precheck""][""reference_row_counts""][""RF""] == 442 | assert [family[""increment""] for family in report[""families""]] == list(range(101)) | assert all(family[""row_count""] == 1326 for family in report[""families""]) | assert report[""families""][0][""reference_scale""] == 0." 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_static_final_factor_maps_to_increment10_not_storage_frame test_static_final_factor_maps_to_increment10_not_storage_frame; assertion 0개 tests/test_compare_hex8.py test_static_final_factor_maps_to_increment10_not_storage_frame 유지 원문 검사 body 및 assertion 동일. 7aa3392c943620fcf98de2866021d09008a01ba106f1d2c396d84e0cf2b747f7 7aa3392c943620fcf98de2866021d09008a01ba106f1d2c396d84e0cf2b747f7 "assert {family[""increment""] for family in report[""families""]} == {10} | assert all(family[""passed""] for family in report[""families""])" "assert {family[""increment""] for family in report[""families""]} == {10} | assert all(family[""passed""] for family in report[""families""])" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_csv_order_does_not_supply_identity test_csv_order_does_not_supply_identity; assertion 0개 tests/test_compare_hex8.py test_csv_order_does_not_supply_identity 유지 원문 검사 body 및 assertion 동일. 140999c1e06c6c5c0bd3b013af006f60671ccf6385c9f147f082d70d9ee27725 140999c1e06c6c5c0bd3b013af006f60671ccf6385c9f147f082d70d9ee27725 "assert COMPARE.reference_values(rows, quantity, source_models[""hexa_linearstatic""]) == COMPARE.reference_values(original, quantity, source_models[""hexa_linearstatic""])" "assert COMPARE.reference_values(rows, quantity, source_models[""hexa_linearstatic""]) == COMPARE.reference_values(original, quantity, source_models[""hexa_linearstatic""])" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_reference_identity_errors_precede_nonfinite test_reference_identity_errors_precede_nonfinite; assertion 0개 tests/test_compare_hex8.py test_reference_identity_errors_precede_nonfinite 유지 원문 검사 body 및 assertion 동일. 6cd9376817bc9787434e7936ae23d00acad81a8679b5a5f53db429eb3fd335b9 6cd9376817bc9787434e7936ae23d00acad81a8679b5a5f53db429eb3fd335b9 assert error.value.code == code assert error.value.code == code 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_rf_entire_inventory_precedes_constraint_projection test_rf_entire_inventory_precedes_constraint_projection; assertion 0개 tests/test_compare_hex8.py test_rf_entire_inventory_precedes_constraint_projection 유지 원문 검사 body 및 assertion 동일. 2a07dc3e967642c71bda95de58e1f31891d31d056b300fd6066499e045a79688 2a07dc3e967642c71bda95de58e1f31891d31d056b300fd6066499e045a79688 "assert int(rows[0][""Node Label""]) == 1 # A free node, absent from projected RF family. | assert error.value.code == ""reference-inventory""" "assert int(rows[0][""Node Label""]) == 1 # A free node, absent from projected RF family. | assert error.value.code == ""reference-inventory""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_duplicate_reference_identity_precedes_bad_numeric test_duplicate_reference_identity_precedes_bad_numeric; assertion 0개 tests/test_compare_hex8.py test_duplicate_reference_identity_precedes_bad_numeric 유지 원문 검사 body 및 assertion 동일. b8160b12d894a2c7aafcb8eb961995755fd8fb0dd739258a52252e56ccaceb71 b8160b12d894a2c7aafcb8eb961995755fd8fb0dd739258a52252e56ccaceb71 "assert error.value.code == ""duplicate-reference-identity""" "assert error.value.code == ""duplicate-reference-identity""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_invalid_stress_point_is_never_rematched test_invalid_stress_point_is_never_rematched; assertion 0개 tests/test_compare_hex8.py test_invalid_stress_point_is_never_rematched 유지 원문 검사 body 및 assertion 동일. d22612e0ce45e17242b4c97aa8d0d5d2adf7a7d3f712751b6d309f2cc4470a30 d22612e0ce45e17242b4c97aa8d0d5d2adf7a7d3f712751b6d309f2cc4470a30 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_stress_point_order_coordinates_are_auxiliary_not_identity test_stress_point_order_coordinates_are_auxiliary_not_identity; assertion 0개 tests/test_compare_hex8.py test_stress_point_order_coordinates_are_auxiliary_not_identity 유지 원문 검사 body 및 assertion 동일. 0b4282275b0eedfe1f8f2e20135d3f679b7ee5038d912776f9ce9e14e2884466 0b4282275b0eedfe1f8f2e20135d3f679b7ee5038d912776f9ce9e14e2884466 "assert error.value.code == ""reference-coordinate-convention""" "assert error.value.code == ""reference-coordinate-convention""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_wrong_component_columns_rejected test_wrong_component_columns_rejected; assertion 0개 tests/test_compare_hex8.py test_wrong_component_columns_rejected 유지 원문 검사 body 및 assertion 동일. f3c962f00fd73f46fb8ff3c38ad0c1cfc18b8eb1fd8788b069d17e58019eb126 f3c962f00fd73f46fb8ff3c38ad0c1cfc18b8eb1fd8788b069d17e58019eb126 "assert error.value.code == ""wrong-reference-columns""" "assert error.value.code == ""wrong-reference-columns""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_dynamic_decimal_time_requires_exact_integer_frame test_dynamic_decimal_time_requires_exact_integer_frame; assertion 0개 tests/test_compare_hex8.py test_dynamic_decimal_time_requires_exact_integer_frame 유지 원문 검사 body 및 assertion 동일. 06f5140c6a935a5342af4a214007ccf4bac66cf353827e55fe8485f5cefef15f 06f5140c6a935a5342af4a214007ccf4bac66cf353827e55fe8485f5cefef15f "assert error.value.code == ""wrong-reference-frame-time""" "assert error.value.code == ""wrong-reference-frame-time""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_nonfinite_free_reference_rf_is_not_discarded test_nonfinite_free_reference_rf_is_not_discarded; assertion 0개 tests/test_compare_hex8.py test_nonfinite_free_reference_rf_is_not_discarded 유지 원문 검사 body 및 assertion 동일. ad89da9e96e0415c98e715ab0a87b8c97e921b5bec4c545f8e24b5edceeb2dc8 ad89da9e96e0415c98e715ab0a87b8c97e921b5bec4c545f8e24b5edceeb2dc8 "assert error.value.code == ""nonfinite-reference-value""" "assert error.value.code == ""nonfinite-reference-value""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_inclusive_row_and_rms_boundaries_are_independent test_inclusive_row_and_rms_boundaries_are_independent; assertion 0개 tests/test_compare_hex8.py test_inclusive_row_and_rms_boundaries_are_independent 유지 원문 검사 body 및 assertion 동일. cc19b85a5d142f0c8f65b2b1ee9d5f6f14cdb4b0a071c0c70f92142de45d8e92 cc19b85a5d142f0c8f65b2b1ee9d5f6f14cdb4b0a071c0c70f92142de45d8e92 "assert report[""passed""] and report[""rows""][0][""relative_error""] == .05 | assert not family([21.00001] + [20.] * 99, [20.] * 100)[""rows_passed""] | assert family([101.], [100.])[""passed""] | assert not family([101.00001], [100.])[""rms_passed""] | assert family([100., 2.], [100., 1.])[""rows""][1][""branch""] == ""near-zero""" "assert report[""passed""] and report[""rows""][0][""relative_error""] == .05 | assert not family([21.00001] + [20.] * 99, [20.] * 100)[""rows_passed""] | assert family([101.], [100.])[""passed""] | assert not family([101.00001], [100.])[""rms_passed""] | assert family([100., 2.], [100., 1.])[""rows""][1][""branch""] == ""near-zero""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_overflow_cannot_create_passing_metric test_overflow_cannot_create_passing_metric; assertion 0개 tests/test_compare_hex8.py test_overflow_cannot_create_passing_metric 유지 원문 검사 body 및 assertion 동일. ea8571675e864411a18189b384b7fa253f49feba9e9d05585c1807eec00e535f ea8571675e864411a18189b384b7fa253f49feba9e9d05585c1807eec00e535f 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_wrong_result_node_beats_nonfinite_displacement test_wrong_result_node_beats_nonfinite_displacement; assertion 0개 tests/test_compare_hex8.py test_wrong_result_node_beats_nonfinite_displacement 유지 원문 검사 body 및 assertion 동일. 76c7756b8724d4c2364d64dcd7123768ba0c191288989e6a5111fbd805dedfc5 76c7756b8724d4c2364d64dcd7123768ba0c191288989e6a5111fbd805dedfc5 "assert report[""precheck""][""code""] == ""result-node-inventory"" | assert report[""families""] == []" "assert report[""precheck""][""code""] == ""result-node-inventory"" | assert report[""families""] == []" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_metadata_identity_rejects_other_model test_metadata_identity_rejects_other_model; assertion 0개 tests/test_compare_hex8.py test_metadata_identity_rejects_other_model 유지 원문 검사 body 및 assertion 동일. c40c79702d38d5f4ef675590d8b9b7ae40c1e41ce5e691cad6430866d583e1e4 c40c79702d38d5f4ef675590d8b9b7ae40c1e41ce5e691cad6430866d583e1e4 "assert compare_fixture(path)[""precheck""][""code""] == code" "assert compare_fixture(path)[""precheck""][""code""] == code" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_result_quantity_semantics_must_match test_result_quantity_semantics_must_match; assertion 0개 tests/test_compare_hex8.py test_result_quantity_semantics_must_match 유지 원문 검사 body 및 assertion 동일. e636737d8798f7c35df431feb03f9716b52bc784a175e9d4337b0f8757f18991 e636737d8798f7c35df431feb03f9716b52bc784a175e9d4337b0f8757f18991 "assert compare_fixture(path)[""precheck""][""code""] == ""wrong-result-attribute""" "assert compare_fixture(path)[""precheck""][""code""] == ""wrong-result-attribute""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_wrong_shape_or_dtype_is_not_sliced_into_supported_components test_wrong_shape_or_dtype_is_not_sliced_into_supported_components; assertion 0개 tests/test_compare_hex8.py test_wrong_shape_or_dtype_is_not_sliced_into_supported_components 유지 원문 검사 body 및 assertion 동일. 7bc82a71594a9faff7998ef731fd43085ff7bdb862796cc4709b73be5677bfb6 7bc82a71594a9faff7998ef731fd43085ff7bdb862796cc4709b73be5677bfb6 "assert compare_fixture(path)[""precheck""][""code""] == code" "assert compare_fixture(path)[""precheck""][""code""] == code" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_signed_ids_and_fixed_ascii_are_not_official_compound_schema test_signed_ids_and_fixed_ascii_are_not_official_compound_schema; assertion 0개 tests/test_compare_hex8.py test_signed_ids_and_fixed_ascii_are_not_official_compound_schema 유지 원문 검사 body 및 assertion 동일. 326c204371abb9ac125cf2d879a1e5e303f46584342a9b5332c26ab41d27d893 326c204371abb9ac125cf2d879a1e5e303f46584342a9b5332c26ab41d27d893 "assert compare_fixture(path)[""precheck""][""code""] == ""wrong-result-table-schema""" "assert compare_fixture(path)[""precheck""][""code""] == ""wrong-result-table-schema""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_dynamic_frame_inventory_is_exact test_dynamic_frame_inventory_is_exact; assertion 0개 tests/test_compare_hex8.py test_dynamic_frame_inventory_is_exact 유지 원문 검사 body 및 assertion 동일. 7d3cdb79af00089850401f5f3ffe9fb0b6ab71a67a876ef91141c7e65d07d3bc 7d3cdb79af00089850401f5f3ffe9fb0b6ab71a67a876ef91141c7e65d07d3bc "assert compare_fixture(path, ""hexa_dynlinear"")[""precheck""][""code""] == ""result-frame-inventory""" "assert compare_fixture(path, ""hexa_dynlinear"")[""precheck""][""code""] == ""result-frame-inventory""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_dynamic_binary_schedule_not_nearest_time test_dynamic_binary_schedule_not_nearest_time; assertion 0개 tests/test_compare_hex8.py test_dynamic_binary_schedule_not_nearest_time 유지 원문 검사 body 및 assertion 동일. 3368eac157758a820c6b4bb5bc95da45047e81e23d6bdf323683e77ee4b879f4 3368eac157758a820c6b4bb5bc95da45047e81e23d6bdf323683e77ee4b879f4 "assert compare_fixture(path, ""hexa_dynlinear"")[""precheck""][""code""] == ""wrong-result-frame-schedule""" "assert compare_fixture(path, ""hexa_dynlinear"")[""precheck""][""code""] == ""wrong-result-frame-schedule""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_result_point_id_mismatch_rejected_before_nan_stress test_result_point_id_mismatch_rejected_before_nan_stress; assertion 0개 tests/test_compare_hex8.py test_result_point_id_mismatch_rejected_before_nan_stress 유지 원문 검사 body 및 assertion 동일. 4e46b65fbed4063d375d07afc69d281201bddcd455b4313d31bb75fee88828ce 4e46b65fbed4063d375d07afc69d281201bddcd455b4313d31bb75fee88828ce "assert compare_fixture(path)[""precheck""][""code""] == ""wrong-result-point-identity""" "assert compare_fixture(path)[""precheck""][""code""] == ""wrong-result-point-identity""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_result_free_reaction_is_not_free_residual test_result_free_reaction_is_not_free_residual; assertion 0개 tests/test_compare_hex8.py test_result_free_reaction_is_not_free_residual 유지 원문 검사 body 및 assertion 동일. 96f0a2ad9860091e2b8f7f08e6a041166cf9da1ed854f0206b39bd0e8daa8379 96f0a2ad9860091e2b8f7f08e6a041166cf9da1ed854f0206b39bd0e8daa8379 "assert compare_fixture(path)[""verdict""] == ""passed"" | assert compare_fixture(path)[""precheck""][""code""] == ""nonzero-free-result-reaction""" "assert compare_fixture(path)[""verdict""] == ""passed"" | assert compare_fixture(path)[""precheck""][""code""] == ""nonzero-free-result-reaction""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_nonfinite_uncompared_quantity_is_schema_failure test_nonfinite_uncompared_quantity_is_schema_failure; assertion 0개 tests/test_compare_hex8.py test_nonfinite_uncompared_quantity_is_schema_failure 유지 원문 검사 body 및 assertion 동일. 7d8b2c00b5d320dc0383c2b280d291ee67e39b4f3d6800a9942efa71bf457acf 7d8b2c00b5d320dc0383c2b280d291ee67e39b4f3d6800a9942efa71bf457acf "assert compare_fixture(path)[""precheck""][""code""] == ""nonfinite-result-value""" "assert compare_fixture(path)[""precheck""][""code""] == ""nonfinite-result-value""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_source_copy_must_be_byte_identical test_source_copy_must_be_byte_identical; assertion 0개 tests/test_compare_hex8.py test_source_copy_must_be_byte_identical 유지 원문 검사 body 및 assertion 동일. ca309837ae5901ff7b9ed075ed34361571c2364f92b7f513b6a27ba70daf9a9d ca309837ae5901ff7b9ed075ed34361571c2364f92b7f513b6a27ba70daf9a9d "assert report[""precheck""][""code""] == ""source-input-hash-mismatch""" "assert report[""precheck""][""code""] == ""source-input-hash-mismatch""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_report_is_deterministic_and_keeps_family_boundaries test_report_is_deterministic_and_keeps_family_boundaries; assertion 0개 tests/test_compare_hex8.py test_report_is_deterministic_and_keeps_family_boundaries 유지 원문 검사 body 및 assertion 동일. 83672aa126a31dc439b6013d1c0243cacd84420a98288d151475336dee22a335 83672aa126a31dc439b6013d1c0243cacd84420a98288d151475336dee22a335 "assert json.dumps(first, sort_keys=True, allow_nan=False) == json.dumps(second, sort_keys=True, allow_nan=False) | assert [row[""quantity""] for row in first[""families""]] == [""U"", ""RF"", ""S""] | assert len({row[""reference_sha256""] for row in first[""families""]}) == 3" "assert json.dumps(first, sort_keys=True, allow_nan=False) == json.dumps(second, sort_keys=True, allow_nan=False) | assert [row[""quantity""] for row in first[""families""]] == [""U"", ""RF"", ""S""] | assert len({row[""reference_sha256""] for row in first[""families""]}) == 3" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_modal_original_absence_is_not_pass test_modal_original_absence_is_not_pass; assertion 0개 tests/test_compare_hex8.py test_modal_original_absence_is_not_pass 유지 원문 검사 body 및 assertion 동일. 8f020cb160e1da7c98ea588a1ac9a18f661f2b3c8985d79da286d3a952e28676 8f020cb160e1da7c98ea588a1ac9a18f661f2b3c8985d79da286d3a952e28676 "assert report[""precheck""][""passed""], report[""precheck""] | assert report[""verdict""] == ""not-run"" and not report[""blocking_passed""] | assert report[""families""] == []" "assert report[""precheck""][""passed""], report[""precheck""] | assert report[""verdict""] == ""not-run"" and not report[""blocking_passed""] | assert report[""families""] == []" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_supplied_modal_values_are_compared_not_reported_missing test_supplied_modal_values_are_compared_not_reported_missing; assertion 0개 tests/test_compare_hex8.py test_supplied_modal_values_are_compared_not_reported_missing 유지 원문 검사 body 및 assertion 동일. a7a7696b247f603796274c8b69b4a9bcdc3812e23c5ee73d4d0be7ad8f35d364 a7a7696b247f603796274c8b69b4a9bcdc3812e23c5ee73d4d0be7ad8f35d364 "assert report[""precheck""][""passed""], report[""precheck""] | assert report[""verdict""] == ""failed"" | assert len(report[""blocking_failures""]) == 10 | assert report[""precheck""][""reference_row_counts""][""Value""] == 10 | assert [f[""mode""] for f in report[""families""]] == list(range(1, 11)) | assert all(f[""quantity""] == ""eigenvalue"" for f in report[""families""])" "assert report[""precheck""][""passed""], report[""precheck""] | assert report[""verdict""] == ""failed"" | assert len(report[""blocking_failures""]) == 10 | assert report[""precheck""][""reference_row_counts""][""Value""] == 10 | assert [f[""mode""] for f in report[""families""]] == list(range(1, 11)) | assert all(f[""quantity""] == ""eigenvalue"" for f in report[""families""])" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_modal_eigenvalue_matches_pass_with_ten_independent_families test_modal_eigenvalue_matches_pass_with_ten_independent_families; assertion 0개 tests/test_compare_hex8.py test_modal_eigenvalue_matches_pass_with_ten_independent_families 유지 원문 검사 body 및 assertion 동일. 15c1cf8449841503ddd4ec0cea73280634781696ea2eb95fcdbed7ea21a9c11f 15c1cf8449841503ddd4ec0cea73280634781696ea2eb95fcdbed7ea21a9c11f "assert first[""verdict""] == ""passed"", first | assert first[""blocking_passed""] and first[""blocking_failures""] == [] | assert len({f[""identity""] for f in first[""families""]}) == 10 | assert all(f[""relative_rms""] == 0 and f[""row_count""] == 1 for f in first[""families""]) | assert first == compare_fixture(path, ""hexa_freq"")" "assert first[""verdict""] == ""passed"", first | assert first[""blocking_passed""] and first[""blocking_failures""] == [] | assert len({f[""identity""] for f in first[""families""]}) == 10 | assert all(f[""relative_rms""] == 0 and f[""row_count""] == 1 for f in first[""families""]) | assert first == compare_fixture(path, ""hexa_freq"")" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_modal_text_reads_value_not_cycles_per_time test_modal_text_reads_value_not_cycles_per_time; assertion 0개 tests/test_compare_hex8.py test_modal_text_reads_value_not_cycles_per_time 유지 원문 검사 body 및 assertion 동일. f99481938f41cc81ea04e50441b26e6a48f2e3f0648e7d906ef1457296b8fbb7 f99481938f41cc81ea04e50441b26e6a48f2e3f0648e7d906ef1457296b8fbb7 "assert rows[0] == {""step"": ""Step-1"", ""mode"": 1, ""quantity"": ""eigenvalue"", | assert rows[-1][""value""] == 449260.0 | assert COMPARE.read_modal_reference(reversed_path) == rows" "assert rows[0] == {""step"": ""Step-1"", ""mode"": 1, ""quantity"": ""eigenvalue"", | assert rows[-1][""value""] == 449260.0 | assert COMPARE.read_modal_reference(reversed_path) == rows" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_modal_text_rejects_invalid_source test_modal_text_rejects_invalid_source; assertion 0개 tests/test_compare_hex8.py test_modal_text_rejects_invalid_source 유지 원문 검사 body 및 assertion 동일. dacd9a4c8381da554f965861f1475cb12ba5219b061223fcc307eb43d779796b dacd9a4c8381da554f965861f1475cb12ba5219b061223fcc307eb43d779796b assert error.value.code == code assert error.value.code == code 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_modified_modal_reference_is_precheck_failure test_modified_modal_reference_is_precheck_failure; assertion 0개 tests/test_compare_hex8.py test_modified_modal_reference_is_precheck_failure 유지 원문 검사 body 및 assertion 동일. 6b06ccce353b338e48690a346c912469d3e2647863855943bb8c472c71cd2a8a 6b06ccce353b338e48690a346c912469d3e2647863855943bb8c472c71cd2a8a "assert report[""verdict""] == ""failed"" | assert report[""precheck""][""code""] == ""reference-hash-mismatch""" "assert report[""verdict""] == ""failed"" | assert report[""precheck""][""code""] == ""reference-hash-mismatch""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_modal_identity_before_nonfinite test_modal_identity_before_nonfinite; assertion 0개 tests/test_compare_hex8.py test_modal_identity_before_nonfinite 유지 원문 검사 body 및 assertion 동일. 893568688885b010fbd9a3be2c4d9627f481e17be01702926fb2732a43c2b115 893568688885b010fbd9a3be2c4d9627f481e17be01702926fb2732a43c2b115 assert error.value.code == code assert error.value.code == code 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_closed_execution_record_hashes_are_checked test_closed_execution_record_hashes_are_checked; assertion 0개 tests/test_compare_hex8.py test_closed_execution_record_hashes_are_checked 유지 원문 검사 body 및 assertion 동일. 306414b617f9e0617b63b3b788805ae7c77ea9069ab5120b5fad61f5f73d2f59 306414b617f9e0617b63b3b788805ae7c77ea9069ab5120b5fad61f5f73d2f59 "assert compare_fixture(path, execution=record)[""execution""][""verified""] | assert compare_fixture(path, execution=record)[""precheck""][""code""] == ""invalid-execution-evidence"" | assert compare_fixture(path, execution=record)[""precheck""][""code""] == ""invalid-execution-evidence""" "assert compare_fixture(path, execution=record)[""execution""][""verified""] | assert compare_fixture(path, execution=record)[""precheck""][""code""] == ""invalid-execution-evidence"" | assert compare_fixture(path, execution=record)[""precheck""][""code""] == ""invalid-execution-evidence""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_cli_protects_reference_and_has_deterministic_exit test_cli_protects_reference_and_has_deterministic_exit; assertion 0개 tests/test_compare_hex8.py test_cli_protects_reference_and_has_deterministic_exit 유지 원문 검사 body 및 assertion 동일. d9b7e54c8824ebd960062ee77e0f438c6ba8a67d9b212884748873bdfd001f95 d9b7e54c8824ebd960062ee77e0f438c6ba8a67d9b212884748873bdfd001f95 "assert denied.returncode == 2 | assert COMPARE.sha256(REFERENCE / ""hexa_linearstatic_U.csv"") == original_hash | assert completed.returncode == 0, completed.stderr | assert json.loads(report_path.read_text())[""verdict""] == ""passed""" "assert denied.returncode == 2 | assert COMPARE.sha256(REFERENCE / ""hexa_linearstatic_U.csv"") == original_hash | assert completed.returncode == 0, completed.stderr | assert json.loads(report_path.read_text())[""verdict""] == ""passed""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_result_projection_joins_source_identities_not_storage_order test_result_projection_joins_source_identities_not_storage_order; assertion 0개 tests/test_compare_hex8.py test_result_projection_joins_source_identities_not_storage_order 유지 원문 검사 body 및 assertion 동일. 11573010c8678557897930e563fa8f9074b8b07af5a5eba26b972696d968d8b7 11573010c8678557897930e563fa8f9074b8b07af5a5eba26b972696d968d8b7 "assert report[""verdict""] == ""passed"", report[""precheck""]" "assert report[""verdict""] == ""passed"", report[""precheck""]" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_model_geometry_and_properties_match_frozen_input test_model_geometry_and_properties_match_frozen_input; assertion 0개 tests/test_compare_hex8.py test_model_geometry_and_properties_match_frozen_input 유지 원문 검사 body 및 assertion 동일. 8bbc10c2dbf029c6223beee9f01e0c7155579348a5dc91a486f0e4c111354761 8bbc10c2dbf029c6223beee9f01e0c7155579348a5dc91a486f0e4c111354761 "assert compare_fixture(path)[""precheck""][""code""] == code" "assert compare_fixture(path)[""precheck""][""code""] == code" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_required_types_and_complete_dataset_inventory test_required_types_and_complete_dataset_inventory; assertion 0개 tests/test_compare_hex8.py test_required_types_and_complete_dataset_inventory 유지 원문 검사 body 및 assertion 동일. 114fead25988359420b99d9a58edd0514cb669077b0120c85604346ea2b9b479 114fead25988359420b99d9a58edd0514cb669077b0120c85604346ea2b9b479 "assert compare_fixture(path)[""precheck""][""code""] == code" "assert compare_fixture(path)[""precheck""][""code""] == code" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_reference_raw_hash_rejects_modified_original_copy test_reference_raw_hash_rejects_modified_original_copy; assertion 0개 tests/test_compare_hex8.py test_reference_raw_hash_rejects_modified_original_copy 유지 원문 검사 body 및 assertion 동일. a1a2f799343ed1504cac751a71ab566919a4a9007dbd9446a216f2ff6bef4d4e a1a2f799343ed1504cac751a71ab566919a4a9007dbd9446a216f2ff6bef4d4e "assert report[""precheck""][""code""] == ""reference-hash-mismatch""" "assert report[""precheck""][""code""] == ""reference-hash-mismatch""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_case_families_cannot_share_scale_or_cancel_sign_errors test_case_families_cannot_share_scale_or_cancel_sign_errors; assertion 0개 tests/test_compare_hex8.py test_case_families_cannot_share_scale_or_cancel_sign_errors 유지 원문 검사 body 및 assertion 동일. ecc0b0b8f4f8eefe0d2bc111db41930d0b621e835796926a00b55285521960d2 ecc0b0b8f4f8eefe0d2bc111db41930d0b621e835796926a00b55285521960d2 "assert family([100.], [100.])[""passed""] | assert not family([.001], [0.])[""passed""] | assert report[""rows_passed""] | assert report[""absolute_rms""] == 1. | assert report[""relative_rms""] == .05 | assert not report[""rms_passed""]" "assert family([100.], [100.])[""passed""] | assert not family([.001], [0.])[""passed""] | assert report[""rows_passed""] | assert report[""absolute_rms""] == 1. | assert report[""relative_rms""] == .05 | assert not report[""rms_passed""]" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_alternate_reference_directory_cannot_make_original_report_writable test_alternate_reference_directory_cannot_make_original_report_writable; assertion 0개 tests/test_compare_hex8.py test_alternate_reference_directory_cannot_make_original_report_writable 유지 원문 검사 body 및 assertion 동일. 88cf4804dc26e3b48b04fe37cd50db943db4128f1377f94d83617daf41233f07 88cf4804dc26e3b48b04fe37cd50db943db4128f1377f94d83617daf41233f07 assert error.value.code == 2 | assert COMPARE.sha256(original) == original_sha assert error.value.code == 2 | assert COMPARE.sha256(original) == original_sha 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_modal_pair_rank_errors_produce_failed_precheck test_modal_pair_rank_errors_produce_failed_precheck; assertion 0개 tests/test_compare_hex8.py test_modal_pair_rank_errors_produce_failed_precheck 유지 원문 검사 body 및 assertion 동일. a80e0ea9fcb695c665ee25e589e3c77e59ec6e2fc21f94f50b6c1723e450e622 a80e0ea9fcb695c665ee25e589e3c77e59ec6e2fc21f94f50b6c1723e450e622 "assert not report[""precheck""][""passed""] | assert report[""precheck""][""code""] == ""wrong-modal-pair-shape"" | assert report[""families""] == []" "assert not report[""precheck""][""passed""] | assert report[""precheck""][""code""] == ""wrong-modal-pair-shape"" | assert report[""families""] == []" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_hardlink_report_alias_cannot_overwrite_known_source test_hardlink_report_alias_cannot_overwrite_known_source; assertion 0개 tests/test_compare_hex8.py test_hardlink_report_alias_cannot_overwrite_known_source 유지 원문 검사 body 및 assertion 동일. 72307938889302e35f061b0f2cbd70a3aa780360f32b4d04deb6f6bb2c5ead36 72307938889302e35f061b0f2cbd70a3aa780360f32b4d04deb6f6bb2c5ead36 assert error.value.code == 2 | assert COMPARE.sha256(original) == original_sha assert error.value.code == 2 | assert COMPARE.sha256(original) == original_sha 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py test_lexically_equivalent_input_path_preserves_writer_identity test_lexically_equivalent_input_path_preserves_writer_identity; assertion 0개 tests/test_compare_hex8.py test_lexically_equivalent_input_path_preserves_writer_identity 유지 원문 검사 body 및 assertion 동일. b25f45a465c21132bb6f2972f0c4047e36fecfda3da5c400a7370479a0b9bc95 b25f45a465c21132bb6f2972f0c4047e36fecfda3da5c400a7370479a0b9bc95 "assert report[""verdict""] == ""passed"", report[""precheck""]" "assert report[""verdict""] == ""passed"", report[""precheck""]" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py support@1-25 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/test_compare_hex8.py file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1181192f9dce7bde37bbe1b2babf9a029df220d85ae832d623cfa7e8657231b4 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hex8.py support@84-89 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/test_compare_hex8.py file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 19003de235fbe57439674b70bbb66a1b8b296722c91ede8ebe79e269db9e6a2e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hht_dynamic.py file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 12개 tests/test_compare_hht_dynamic.py file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 717065b241e599f704598cf92f1fdab29dfea77ee0fc7ed8e6f95c215d0354c4 717065b241e599f704598cf92f1fdab29dfea77ee0fc7ed8e6f95c215d0354c4 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hht_dynamic.py artifacts fixture/oracle/helper artifacts tests/test_compare_hht_dynamic.py artifacts 유지 원문 검사 body 및 assertion 동일. c2f9c40bf1524935da18d0426e5a09e3f00ef7bd417c2e1be8b55a04b5e9397f c2f9c40bf1524935da18d0426e5a09e3f00ef7bd417c2e1be8b55a04b5e9397f 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hht_dynamic.py changed_result fixture/oracle/helper changed_result tests/test_compare_hht_dynamic.py changed_result 유지 원문 검사 body 및 assertion 동일. 4dd2b5dcd04aea78c3995ac0f1c8dc4bfd249311251b8d6969dc3b2c416369cd 4dd2b5dcd04aea78c3995ac0f1c8dc4bfd249311251b8d6969dc3b2c416369cd 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hht_dynamic.py reduced_result fixture/oracle/helper reduced_result tests/test_compare_hht_dynamic.py reduced_result 유지 원문 검사 body 및 assertion 동일. fb941274cf24a5f6fe4ef37b24f1d304b9ee1062fba979d32dd7eda5825b5273 fb941274cf24a5f6fe4ef37b24f1d304b9ee1062fba979d32dd7eda5825b5273 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hht_dynamic.py test_reduced_schema_preserves_displacement_comparison test_reduced_schema_preserves_displacement_comparison; assertion 0개 tests/test_compare_hht_dynamic.py test_reduced_schema_preserves_displacement_comparison 유지 원문 검사 body 및 assertion 동일. 8ae92fbafbac4a8d8b1427a1722af164d9e4ade93b5c5ad94369091ac42c1040 8ae92fbafbac4a8d8b1427a1722af164d9e4ade93b5c5ad94369091ac42c1040 "assert result[""precheck""][""passed""], result[""precheck""] | assert result[""verdict""] == ""passed""" "assert result[""precheck""][""passed""], result[""precheck""] | assert result[""verdict""] == ""passed""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hht_dynamic.py test_reduced_schema_rejects_inconsistent_auxiliary_history test_reduced_schema_rejects_inconsistent_auxiliary_history; assertion 0개 tests/test_compare_hht_dynamic.py test_reduced_schema_rejects_inconsistent_auxiliary_history 유지 원문 검사 body 및 assertion 동일. 5ad1dc6319074a157cf8df0e2817fe65b198aa8ab8121dbf1d250fc13a6bc7f5 5ad1dc6319074a157cf8df0e2817fe65b198aa8ab8121dbf1d250fc13a6bc7f5 "assert not result[""precheck""][""passed""] | assert result[""families""] == []" "assert not result[""precheck""][""passed""] | assert result[""families""] == []" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hht_dynamic.py test_original_csv_exact_matching_history_and_deterministic_report test_original_csv_exact_matching_history_and_deterministic_report; assertion 0개 tests/test_compare_hht_dynamic.py test_original_csv_exact_matching_history_and_deterministic_report 유지 원문 검사 body 및 assertion 동일. e55e00c524c66f78ec00f4f3bbbd16383ad322afde9e9d1e36b76dda1074c682 e55e00c524c66f78ec00f4f3bbbd16383ad322afde9e9d1e36b76dda1074c682 "assert first == second | assert first[""precheck""][""passed""], first[""precheck""] | assert first[""precheck""][""reference_row_count""] == 909 | assert first[""precheck""][""checked_result_scalars""] == 441774 | assert first[""verdict""] == ""passed"" | assert first[""warnings""] == [] | assert len(first[""families""]) == 202 | assert sum(family[""row_count""] for family in first[""families""]) == 5454 | assert [family[""quantity""] for family in first[""families""][:4]] == [""U"", ""UR"", ""U"", ""UR""] | assert all(family[""passed""] for family in first[""families""]) | assert first[""families""][0][""reference_scale""] == 0.0 | assert first[""families""][6][""hdf5_time""] == 3 * 0.1 | assert first[""families""][6][""reference_decimal_time""] == ""0.3"" | assert 3 * 0.1 != float(""0.3"") # Both legitimate representations were validated independently." "assert first == second | assert first[""precheck""][""passed""], first[""precheck""] | assert first[""precheck""][""reference_row_count""] == 909 | assert first[""precheck""][""checked_result_scalars""] == 441774 | assert first[""verdict""] == ""passed"" | assert first[""warnings""] == [] | assert len(first[""families""]) == 202 | assert sum(family[""row_count""] for family in first[""families""]) == 5454 | assert [family[""quantity""] for family in first[""families""][:4]] == [""U"", ""UR"", ""U"", ""UR""] | assert all(family[""passed""] for family in first[""families""]) | assert first[""families""][0][""reference_scale""] == 0.0 | assert first[""families""][6][""hdf5_time""] == 3 * 0.1 | assert first[""families""][6][""reference_decimal_time""] == ""0.3"" | assert 3 * 0.1 != float(""0.3"") # Both legitimate representations were validated independently." 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hht_dynamic.py test_hdf5_precheck_rejects_before_tolerance test_hdf5_precheck_rejects_before_tolerance; assertion 0개 tests/test_compare_hht_dynamic.py test_hdf5_precheck_rejects_before_tolerance 유지 원문 검사 body 및 assertion 동일. fda55efd6e0d44ea147b97e855a8c039b26d96b790a7b6f0a97930e45f2c19b5 fda55efd6e0d44ea147b97e855a8c039b26d96b790a7b6f0a97930e45f2c19b5 "assert report[""precheck""][""passed""] is False | assert report[""precheck""][""code""] == code, report[""precheck""] | assert report[""families""] == [] | assert report[""verdict""] == ""failed""" "assert report[""precheck""][""passed""] is False | assert report[""precheck""][""code""] == code, report[""precheck""] | assert report[""families""] == [] | assert report[""verdict""] == ""failed""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hht_dynamic.py test_reference_precheck_rejects_before_tolerance test_reference_precheck_rejects_before_tolerance; assertion 0개 tests/test_compare_hht_dynamic.py test_reference_precheck_rejects_before_tolerance 유지 원문 검사 body 및 assertion 동일. d243b045242334bc6b410f278e139b1f8f49f37f9c3d1b4c0562966c0893d344 d243b045242334bc6b410f278e139b1f8f49f37f9c3d1b4c0562966c0893d344 "assert not report[""precheck""][""passed""] | assert report[""precheck""][""code""] == code, report[""precheck""] | assert report[""families""] == []" "assert not report[""precheck""][""passed""] | assert report[""precheck""][""code""] == code, report[""precheck""] | assert report[""families""] == []" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hht_dynamic.py test_projection_joins_source_identity_and_csv_order_is_irrelevant test_projection_joins_source_identity_and_csv_order_is_irrelevant; assertion 0개 tests/test_compare_hht_dynamic.py test_projection_joins_source_identity_and_csv_order_is_irrelevant 유지 원문 검사 body 및 assertion 동일. 62ffbc38263b6589b55b4a28098b5150d949b590393e23f1de7f225836705742 62ffbc38263b6589b55b4a28098b5150d949b590393e23f1de7f225836705742 "assert report[""precheck""][""passed""], report[""precheck""] | assert report[""verdict""] == ""passed""" "assert report[""precheck""][""passed""], report[""precheck""] | assert report[""verdict""] == ""passed""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hht_dynamic.py test_translation_blocks_rotation_warns test_translation_blocks_rotation_warns; assertion 0개 tests/test_compare_hht_dynamic.py test_translation_blocks_rotation_warns 유지 원문 검사 body 및 assertion 동일. aa638d6ff3d660e834fb941a5ab49c7dca6e131afe6531e0937c933b17c721c2 aa638d6ff3d660e834fb941a5ab49c7dca6e131afe6531e0937c933b17c721c2 "assert report[""precheck""][""passed""] | assert report[""blocking_passed""] is passed | assert len(report[""warnings""]) == (2 if passed else 0) | assert [warning[""code""] for warning in report[""warnings""]] == [""row-tolerance-failure"", ""relative-rms-failure""] | assert report[""blocking_failures""] == [""U-global:Step-1:increment-1""]" "assert report[""precheck""][""passed""] | assert report[""blocking_passed""] is passed | assert len(report[""warnings""]) == (2 if passed else 0) | assert [warning[""code""] for warning in report[""warnings""]] == [""row-tolerance-failure"", ""relative-rms-failure""] | assert report[""blocking_failures""] == [""U-global:Step-1:increment-1""]" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hht_dynamic.py test_common_policy_boundaries_and_zero_scale test_common_policy_boundaries_and_zero_scale; assertion 0개 tests/test_compare_hht_dynamic.py test_common_policy_boundaries_and_zero_scale 유지 원문 검사 body 및 assertion 동일. 626203451410090b9aff637c9d93892a57f99a387fa004f091a6f66044929ea5 626203451410090b9aff637c9d93892a57f99a387fa004f091a6f66044929ea5 "assert near[""passed""] | assert [row[""branch""] for row in near[""rows""]] == [""relative"", ""near-zero"", ""near-zero""] | assert relative[""rows_passed""] and not relative[""rms_passed""] | assert boundary[""passed""] | assert boundary[""relative_rms""] == 0.01 | assert outside[""rows_passed""] and not outside[""rms_passed""] | assert zero[""passed""] and zero[""relative_rms""] is None | assert not nonzero[""passed""] | assert nonzero[""diagnostic_code""] == ""zero-reference-scale-nonzero-error""" "assert near[""passed""] | assert [row[""branch""] for row in near[""rows""]] == [""relative"", ""near-zero"", ""near-zero""] | assert relative[""rows_passed""] and not relative[""rms_passed""] | assert boundary[""passed""] | assert boundary[""relative_rms""] == 0.01 | assert outside[""rows_passed""] and not outside[""rms_passed""] | assert zero[""passed""] and zero[""relative_rms""] is None | assert not nonzero[""passed""] | assert nonzero[""diagnostic_code""] == ""zero-reference-scale-nonzero-error""" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hht_dynamic.py test_cli_writes_json_and_exit_two_for_missing_results test_cli_writes_json_and_exit_two_for_missing_results; assertion 0개 tests/test_compare_hht_dynamic.py test_cli_writes_json_and_exit_two_for_missing_results 유지 원문 검사 body 및 assertion 동일. 7c7fb2cc6f1f7c6611d524de5342a2ad2ebbd4a7fab21595190d6373f16e91c8 7c7fb2cc6f1f7c6611d524de5342a2ad2ebbd4a7fab21595190d6373f16e91c8 "assert completed.returncode == 2, completed.stderr | assert not evidence[""precheck""][""passed""] | assert evidence[""families""] == []" "assert completed.returncode == 2, completed.stderr | assert not evidence[""precheck""][""passed""] | assert evidence[""families""] == []" 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/test_compare_hht_dynamic.py support@1-17 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/test_compare_hht_dynamic.py file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8915eca10fabc7d88e164dc7e9fe54e9f9485a879b4b05a29eed1b655a6695fd 최종 파일 SHA 참조 해당 없음 해당 없음 유지-비교계약 R-COMPARISON test-cleanup-review.md#r-comparison +Refactor tests/unit/analysis/analysis_model_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/analysis/analysis_model_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 008c38d245f54595a9a057575e264b408f235df5e9ff4fad3ef342ab6ff4301a 008c38d245f54595a9a057575e264b408f235df5e9ff4fad3ef342ab6ff4301a 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/analysis_model_test.cpp AnalysisModel.ClassifiesActiveEntitiesInStableOrder AnalysisModel.ClassifiesActiveEntitiesInStableOrder; assertion 9개 tests/unit/analysis/analysis_model_test.cpp AnalysisModel.ClassifiesActiveEntitiesInStableOrder 유지 원문 검사 body 및 assertion 동일. a295d00387546de59b989c3ac1abc3835489a6a9cc331a2b564b4ab6f5b76497 a295d00387546de59b989c3ac1abc3835489a6a9cc331a2b564b4ab6f5b76497 ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(model.ActiveElements(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(model.ActiveMaterials(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveSections(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveBoundaryConditions(), (std::vector{0U, 1U, 2U, 3U, 4U, 5U})) | EXPECT_EQ(model.ActiveLoads(), (std::vector{0U, 1U, 2U})) | ASSERT_EQ(model.Step().Loads().size(), 3U) | EXPECT_EQ(&model.Step().Loads()[0U].get(), &domain_result.Value().Steps()[0U].Loads()[0U].get()) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(model.ActiveElements(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(model.ActiveMaterials(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveSections(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveBoundaryConditions(), (std::vector{0U, 1U, 2U, 3U, 4U, 5U})) | EXPECT_EQ(model.ActiveLoads(), (std::vector{0U, 1U, 2U})) | ASSERT_EQ(model.Step().Loads().size(), 3U) | EXPECT_EQ(&model.Step().Loads()[0U].get(), &domain_result.Value().Steps()[0U].Loads()[0U].get()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/analysis_model_test.cpp AnalysisModel.ReferencesWithoutCopyingOrMutatingDomain AnalysisModel.ReferencesWithoutCopyingOrMutatingDomain; assertion 12개 tests/unit/analysis/analysis_model_test.cpp AnalysisModel.ReferencesWithoutCopyingOrMutatingDomain 유지 원문 검사 body 및 assertion 동일. f48acbdd2020c7f7dcf6795c0bcb2efd01e531fca508a98469183cadaa6af312 f48acbdd2020c7f7dcf6795c0bcb2efd01e531fca508a98469183cadaa6af312 ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(&model.GetDomain(), &domain) | EXPECT_EQ(&model.Step(), &domain.Steps()[0]) | EXPECT_EQ(&model.GetDomain().Elements()[0U], element_address) | EXPECT_EQ(&model.GetDomain().Materials()[0U], material_address) | EXPECT_EQ(&model.GetDomain().Sections()[0U], section_address) | EXPECT_EQ(&model.GetDomain().Elements()[model.ActiveElements()[1]], &domain.Elements()[1]) | EXPECT_EQ(&model.GetDomain().Materials()[model.ActiveMaterials()[2]], &domain.Materials()[2]) | EXPECT_EQ(&model.GetDomain().Sections()[model.ActiveSections()[1]], &domain.Sections()[1]) | EXPECT_EQ(domain.Steps()[0].Name(), step_name) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[0U], first_load_magnitude) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(&model.GetDomain(), &domain) | EXPECT_EQ(&model.Step(), &domain.Steps()[0]) | EXPECT_EQ(&model.GetDomain().Elements()[0U], element_address) | EXPECT_EQ(&model.GetDomain().Materials()[0U], material_address) | EXPECT_EQ(&model.GetDomain().Sections()[0U], section_address) | EXPECT_EQ(&model.GetDomain().Elements()[model.ActiveElements()[1]], &domain.Elements()[1]) | EXPECT_EQ(&model.GetDomain().Materials()[model.ActiveMaterials()[2]], &domain.Materials()[2]) | EXPECT_EQ(&model.GetDomain().Sections()[model.ActiveSections()[1]], &domain.Sections()[1]) | EXPECT_EQ(domain.Steps()[0].Name(), step_name) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[0U], first_load_magnitude) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/analysis_model_test.cpp AnalysisModel.KeepsNonOwningMixedDefinitionAndPropertyIndices AnalysisModel.KeepsNonOwningMixedDefinitionAndPropertyIndices; assertion 9개 tests/unit/analysis/analysis_model_test.cpp AnalysisModel.KeepsNonOwningMixedDefinitionAndPropertyIndices 유지 원문 검사 body 및 assertion 동일. 36df6ff3f545836b79af2c8987b7bc0042b748e43cc1a2a8a83f2679904abb16 36df6ff3f545836b79af2c8987b7bc0042b748e43cc1a2a8a83f2679904abb16 ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(&model.GetDomain(), &domain) | EXPECT_EQ(model.ActiveElements(), (std::vector{0U, 1U, 2U, 3U, 4U})) | EXPECT_EQ(model.ActiveMaterials(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveProperties(), (std::vector{0U, 1U, 2U, 4U})) | EXPECT_EQ(&model.GetDomain().Elements()[model.ActiveElements()[4U]], &domain.Elements()[4U]) | EXPECT_EQ(&model.GetDomain().Materials()[model.ActiveMaterials()[1U]], &domain.Materials()[1U]) | EXPECT_EQ(&model.GetDomain().Properties()[model.ActiveProperties()[3U]], &domain.Properties()[4U]) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(&model.GetDomain(), &domain) | EXPECT_EQ(model.ActiveElements(), (std::vector{0U, 1U, 2U, 3U, 4U})) | EXPECT_EQ(model.ActiveMaterials(), (std::vector{0U, 1U, 2U})) | EXPECT_EQ(model.ActiveProperties(), (std::vector{0U, 1U, 2U, 4U})) | EXPECT_EQ(&model.GetDomain().Elements()[model.ActiveElements()[4U]], &domain.Elements()[4U]) | EXPECT_EQ(&model.GetDomain().Materials()[model.ActiveMaterials()[1U]], &domain.Materials()[1U]) | EXPECT_EQ(&model.GetDomain().Properties()[model.ActiveProperties()[3U]], &domain.Properties()[4U]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/analysis_model_test.cpp AnalysisModel.RejectsMissingOrMultipleStep AnalysisModel.RejectsMissingOrMultipleStep; assertion 15개 tests/unit/analysis/analysis_model_test.cpp AnalysisModel.RejectsMissingOrMultipleStep 유지 원문 검사 body 및 assertion 동일. 0815824dc498c89c2c43b00880b4458ce2b620a55e337c0a65de481074bb5318 0815824dc498c89c2c43b00880b4458ce2b620a55e337c0a65de481074bb5318 "ASSERT_TRUE(missing_domain.HasValue()) | ASSERT_FALSE(missing.HasValue()) | EXPECT_EQ(missing.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(missing.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].code, ""invalid-model-cardinality"") | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].keyword, ""STEP"") | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].entity_identity, ""0"") | ASSERT_TRUE(multiple_domain.HasValue()) | ASSERT_FALSE(multiple.HasValue()) | EXPECT_EQ(multiple.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(multiple.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].code, ""unsupported-multiple-step"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].keyword, ""STEP"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].entity_identity, ""Step-2"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].location.line, 60U)" "ASSERT_TRUE(missing_domain.HasValue()) | ASSERT_FALSE(missing.HasValue()) | EXPECT_EQ(missing.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(missing.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].code, ""invalid-model-cardinality"") | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].keyword, ""STEP"") | EXPECT_EQ(missing.GetStatus().Diagnostics()[0].entity_identity, ""0"") | ASSERT_TRUE(multiple_domain.HasValue()) | ASSERT_FALSE(multiple.HasValue()) | EXPECT_EQ(multiple.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(multiple.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].code, ""unsupported-multiple-step"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].keyword, ""STEP"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].entity_identity, ""Step-2"") | EXPECT_EQ(multiple.GetStatus().Diagnostics()[0].location.line, 60U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/analysis_model_test.cpp support@1-94 helper/oracle/fixture/include/static assertion 구간: MakeDefinition, MakeMixedDefinition tests/unit/analysis/analysis_model_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 06aad822bf2ade2c6877393bd23043babd0680f2b0dd2fb85a7f4cda1d5a6287 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/analysis_model_test.cpp support@148-149 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/analysis_model_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c4948f64c25c201003b0122f19efe90f365b9e8c9e4aeb1f21a6cffa974d706a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/analysis_state_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/analysis/analysis_state_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cc752a188e4daa7862e6602271a728de64f67de407ab7e573e9f87380d2b5bbb cc752a188e4daa7862e6602271a728de64f67de407ab7e573e9f87380d2b5bbb 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/analysis_state_test.cpp AnalysisState.AllocatesOnlyV0FullVectors AnalysisState.AllocatesOnlyV0FullVectors; assertion 14개 tests/unit/analysis/analysis_state_test.cpp AnalysisState.AllocatesOnlyV0FullVectors 유지 원문 검사 body 및 assertion 동일. 42f5f3563e7bf05df3559cd1173b200e4625be35cbe6ebf91140bb4275cc7961 42f5f3563e7bf05df3559cd1173b200e4625be35cbe6ebf91140bb4275cc7961 ASSERT_EQ(dofs.FullDofCount(), 12U) | ASSERT_EQ(dofs.ConstrainedDofCount(), 6U) | EXPECT_EQ(vector->Size(), dofs.FullDofCount()) | EXPECT_NE(vectors[left]->Data(), vectors[right]->Data()) | EXPECT_DOUBLE_EQ(state.Displacement()[0], 4.0) | EXPECT_DOUBLE_EQ(state.Reaction()[11], -9.0) | EXPECT_DOUBLE_EQ(state.ExternalForce()[0], 0.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[0], 0.0) | EXPECT_DOUBLE_EQ(state.Residual()[0], 0.0) | EXPECT_FALSE(HasVelocity::value) | EXPECT_FALSE(HasAcceleration::value) | EXPECT_FALSE(HasTemperature::value) | EXPECT_FALSE(HasIterationHistory::value) | EXPECT_FALSE(HasNonlinearState::value) ASSERT_EQ(dofs.FullDofCount(), 12U) | ASSERT_EQ(dofs.ConstrainedDofCount(), 6U) | EXPECT_EQ(vector->Size(), dofs.FullDofCount()) | EXPECT_NE(vectors[left]->Data(), vectors[right]->Data()) | EXPECT_DOUBLE_EQ(state.Displacement()[0], 4.0) | EXPECT_DOUBLE_EQ(state.Reaction()[11], -9.0) | EXPECT_DOUBLE_EQ(state.ExternalForce()[0], 0.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[0], 0.0) | EXPECT_DOUBLE_EQ(state.Residual()[0], 0.0) | EXPECT_FALSE(HasVelocity::value) | EXPECT_FALSE(HasAcceleration::value) | EXPECT_FALSE(HasTemperature::value) | EXPECT_FALSE(HasIterationHistory::value) | EXPECT_FALSE(HasNonlinearState::value) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/analysis_state_test.cpp AnalysisState.CopiesOrMovesWithoutAliasing AnalysisState.CopiesOrMovesWithoutAliasing; assertion 17개 tests/unit/analysis/analysis_state_test.cpp AnalysisState.CopiesOrMovesWithoutAliasing 유지 원문 검사 body 및 assertion 동일. 20bcbe30286b42f64657a68599fd57793c882e3a0a1e6eab8a654ad6909dc75b 20bcbe30286b42f64657a68599fd57793c882e3a0a1e6eab8a654ad6909dc75b "EXPECT_NE(copied.Displacement().Data(), original.Displacement().Data()) | EXPECT_NE(copied.Reaction().Data(), original.Reaction().Data()) | EXPECT_NE(copied.EndpointResults().data(), original.EndpointResults().data()) | EXPECT_NE(copied.GaussResults().data(), original.GaussResults().data()) | EXPECT_NE(copied.StressResults().data(), original.StressResults().data()) | EXPECT_DOUBLE_EQ(original.Displacement()[0], 3.0) | EXPECT_DOUBLE_EQ(original.EndpointResults()[0].end_action[0], 1.0) | EXPECT_EQ(moved.Identity().step_name, ""Step-1"") | EXPECT_DOUBLE_EQ(moved.Displacement()[0], 30.0) | EXPECT_DOUBLE_EQ(moved.EndpointResults()[0].end_action[0], 20.0) | EXPECT_NE(moved.Displacement().Data(), original.Displacement().Data()) | EXPECT_NE(moved.EndpointResults().data(), original.EndpointResults().data()) | EXPECT_DOUBLE_EQ(original.Reaction()[11], -2.0) | EXPECT_EQ(copy_assigned.Identity().step_name, ""Step-1"") | EXPECT_EQ(move_assigned.Identity().step_name, ""Step-1"") | EXPECT_DOUBLE_EQ(move_assigned.Reaction()[11], -20.0) | EXPECT_NE(move_assigned.Reaction().Data(), original.Reaction().Data())" "EXPECT_NE(copied.Displacement().Data(), original.Displacement().Data()) | EXPECT_NE(copied.Reaction().Data(), original.Reaction().Data()) | EXPECT_NE(copied.EndpointResults().data(), original.EndpointResults().data()) | EXPECT_NE(copied.GaussResults().data(), original.GaussResults().data()) | EXPECT_NE(copied.StressResults().data(), original.StressResults().data()) | EXPECT_DOUBLE_EQ(original.Displacement()[0], 3.0) | EXPECT_DOUBLE_EQ(original.EndpointResults()[0].end_action[0], 1.0) | EXPECT_EQ(moved.Identity().step_name, ""Step-1"") | EXPECT_DOUBLE_EQ(moved.Displacement()[0], 30.0) | EXPECT_DOUBLE_EQ(moved.EndpointResults()[0].end_action[0], 20.0) | EXPECT_NE(moved.Displacement().Data(), original.Displacement().Data()) | EXPECT_NE(moved.EndpointResults().data(), original.EndpointResults().data()) | EXPECT_DOUBLE_EQ(original.Reaction()[11], -2.0) | EXPECT_EQ(copy_assigned.Identity().step_name, ""Step-1"") | EXPECT_EQ(move_assigned.Identity().step_name, ""Step-1"") | EXPECT_DOUBLE_EQ(move_assigned.Reaction()[11], -20.0) | EXPECT_NE(move_assigned.Reaction().Data(), original.Reaction().Data())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/analysis_state_test.cpp support@1-86 helper/oracle/fixture/include/static assertion 구간: T, HasVelocity, HasAcceleration, HasTemperature, HasIterationHistory, HasNonlinearState, MakeDofs, ExpectAllZero tests/unit/analysis/analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 01765d678413b708d354a9af35eb64ecfc588a1ed7d472b484ac590a620701ff 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/analysis_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/unit/analysis/analysis_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7fa4c3708ec692f95b5c230c7d7c36f1ef665363228d1d26eea41fe5560eedfd 7fa4c3708ec692f95b5c230c7d7c36f1ef665363228d1d26eea41fe5560eedfd 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/analysis_test.cpp Analysis.PropagatesStatusAndDestroysThroughMinimalAnalysis Analysis.PropagatesStatusAndDestroysThroughMinimalAnalysis; assertion 7개 tests/unit/analysis/analysis_test.cpp Analysis.PropagatesStatusAndDestroysThroughMinimalAnalysis 유지 원문 검사 body 및 assertion 동일. 946fa72dea150d4bb8404a904b626c9d3037ae9eb3b765a68e288560e7b21975 946fa72dea150d4bb8404a904b626c9d3037ae9eb3b765a68e288560e7b21975 "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""analysis-test-failure"") | EXPECT_EQ(concrete_observer->Request().input_path, request.input_path) | EXPECT_EQ(concrete_observer->Request().output_path, request.output_path) | EXPECT_TRUE(destroyed)" "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""analysis-test-failure"") | EXPECT_EQ(concrete_observer->Request().input_path, request.input_path) | EXPECT_EQ(concrete_observer->Request().output_path, request.output_path) | EXPECT_TRUE(destroyed)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/analysis_test.cpp AnalysisProcedure.PreparedConsumerPreservesDomainFailureAndLifetime AnalysisProcedure.PreparedConsumerPreservesDomainFailureAndLifetime; assertion 11개 tests/unit/analysis/analysis_test.cpp AnalysisProcedure.PreparedConsumerPreservesDomainFailureAndLifetime 유지 원문 검사 body 및 assertion 동일. 0835fdd74c95442a58be5105ad47ca39d84a8591a9fef11dc839820f2e02c01a 0835fdd74c95442a58be5105ad47ca39d84a8591a9fef11dc839820f2e02c01a "ASSERT_TRUE(domain_result.HasValue()) | EXPECT_EQ(observed, &domain) | ASSERT_FALSE(outcome.HasValue()) | EXPECT_EQ(outcome.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(outcome.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""procedure-original-failure"") | EXPECT_EQ(diagnostic.keyword, ""ORIGINAL"") | EXPECT_EQ(diagnostic.entity_identity, ""source-identity"") | EXPECT_EQ(diagnostic.message, ""Original failure message."") | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed)" "ASSERT_TRUE(domain_result.HasValue()) | EXPECT_EQ(observed, &domain) | ASSERT_FALSE(outcome.HasValue()) | EXPECT_EQ(outcome.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(outcome.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""procedure-original-failure"") | EXPECT_EQ(diagnostic.keyword, ""ORIGINAL"") | EXPECT_EQ(diagnostic.entity_identity, ""source-identity"") | EXPECT_EQ(diagnostic.message, ""Original failure message."") | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/analysis_test.cpp EquilibriumAlgorithm.RetainsMoveOnlyCandidateUntilProcedureTakesIt EquilibriumAlgorithm.RetainsMoveOnlyCandidateUntilProcedureTakesIt; assertion 6개 tests/unit/analysis/analysis_test.cpp EquilibriumAlgorithm.RetainsMoveOnlyCandidateUntilProcedureTakesIt 유지 원문 검사 body 및 assertion 동일. cf0bd4a0f259033db8884adb1d02051869fff7d04d8d7f1049d54fcc0b5000f4 cf0bd4a0f259033db8884adb1d02051869fff7d04d8d7f1049d54fcc0b5000f4 EXPECT_FALSE(step.HasCandidate()) | ASSERT_TRUE(step.Solve(base).IsOk()) | EXPECT_EQ(observed, (std::vector{1U, 2U, 3U})) | ASSERT_TRUE(step.HasCandidate()) | ASSERT_NE(accepted, nullptr) | EXPECT_EQ(*accepted, 42) EXPECT_FALSE(step.HasCandidate()) | ASSERT_TRUE(step.Solve(base).IsOk()) | EXPECT_EQ(observed, (std::vector{1U, 2U, 3U})) | ASSERT_TRUE(step.HasCandidate()) | ASSERT_NE(accepted, nullptr) | EXPECT_EQ(*accepted, 42) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/analysis_test.cpp EquilibriumAlgorithm.FirstFailedEvaluationLeavesNoAcceptedCandidate EquilibriumAlgorithm.FirstFailedEvaluationLeavesNoAcceptedCandidate; assertion 7개 tests/unit/analysis/analysis_test.cpp EquilibriumAlgorithm.FirstFailedEvaluationLeavesNoAcceptedCandidate 유지 원문 검사 body 및 assertion 동일. a9ea9287cab2c7c7d29f9c4f7a9fa4b157574c53b3ecf22937fe7194ecfbd0c8 a9ea9287cab2c7c7d29f9c4f7a9fa4b157574c53b3ecf22937fe7194ecfbd0c8 "EXPECT_EQ(observed, (std::vector{1U})) | EXPECT_FALSE(step.HasCandidate()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0].code, ""first-evaluation-failure"") | EXPECT_EQ(status.Diagnostics()[0].entity_identity, ""original-owner"") | EXPECT_EQ(status.Diagnostics()[0].message, ""Original evaluation failure."")" "EXPECT_EQ(observed, (std::vector{1U})) | EXPECT_FALSE(step.HasCandidate()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0].code, ""first-evaluation-failure"") | EXPECT_EQ(status.Diagnostics()[0].entity_identity, ""original-owner"") | EXPECT_EQ(status.Diagnostics()[0].message, ""Original evaluation failure."")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/analysis_test.cpp EquilibriumAlgorithm.InjectsAlternativeOrderAndPreservesTypedPendingOnFailure EquilibriumAlgorithm.InjectsAlternativeOrderAndPreservesTypedPendingOnFailure; assertion 11개 tests/unit/analysis/analysis_test.cpp EquilibriumAlgorithm.InjectsAlternativeOrderAndPreservesTypedPendingOnFailure 유지 원문 검사 body 및 assertion 동일. 0f11b4a60c58ba9d453161dc48b5fbdff6b859ac9328111c05b28a152a3b6de0 0f11b4a60c58ba9d453161dc48b5fbdff6b859ac9328111c05b28a152a3b6de0 ASSERT_TRUE(step.Solve(*policy).IsOk()) | EXPECT_EQ(observed, (std::vector{0U, 3U})) | EXPECT_EQ(observed, (std::vector{0U, 3U})) | ASSERT_TRUE(step.HasCandidate()) | EXPECT_EQ(*step.TakeCandidate(), 42) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed) | ASSERT_TRUE(zero_step.Solve(zero_algorithm).IsOk()) | EXPECT_EQ(zero_observed, (std::vector{0U, 1U, 2U})) | ASSERT_TRUE(zero_step.HasCandidate()) | EXPECT_EQ(zero_step.TakeCandidate(), 7) ASSERT_TRUE(step.Solve(*policy).IsOk()) | EXPECT_EQ(observed, (std::vector{0U, 3U})) | EXPECT_EQ(observed, (std::vector{0U, 3U})) | ASSERT_TRUE(step.HasCandidate()) | EXPECT_EQ(*step.TakeCandidate(), 42) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed) | ASSERT_TRUE(zero_step.Solve(zero_algorithm).IsOk()) | EXPECT_EQ(zero_observed, (std::vector{0U, 1U, 2U})) | ASSERT_TRUE(zero_step.HasCandidate()) | EXPECT_EQ(zero_step.TakeCandidate(), 7) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/analysis_test.cpp ProcedureIntegratorInjection.ShellValuesUseProductionStepAndPreserveHistory ProcedureIntegratorInjection.ShellValuesUseProductionStepAndPreserveHistory; assertion 28개 tests/unit/analysis/analysis_test.cpp ProcedureIntegratorInjection.ShellValuesUseProductionStepAndPreserveHistory 유지 원문 검사 body 및 assertion 동일. a94f0fe856ad7d4058f5f31a03c1f0f08ef2ecc3d75114c505ff8d8bce4c820d a94f0fe856ad7d4058f5f31a03c1f0f08ef2ecc3d75114c505ff8d8bce4c820d "EXPECT_EQ(&history, &old) | EXPECT_EQ(&p, ¶meters) | EXPECT_DOUBLE_EQ(h, 17) | EXPECT_EQ(&request.history, &old) | EXPECT_EQ(&request.chart, &chart) | EXPECT_EQ(&request.trial_algorithmic, &algorithmic) | EXPECT_EQ(&request.retained_velocity, &retained_v) | EXPECT_EQ(&request.retained_acceleration, &retained_a) | EXPECT_EQ(&request.parameters, ¶meters) | EXPECT_DOUBLE_EQ(request.h, 17) | EXPECT_FALSE(request.copy_translation_rates) | EXPECT_NE(velocity.Data(), acceleration.Data()) | EXPECT_NE(velocity.Data(), request.vpp.Data()) | EXPECT_NE(acceleration.Data(), request.trial_algorithmic.Data()) | EXPECT_EQ(&c, &chart) | EXPECT_EQ(&r, &root) | EXPECT_EQ(&backend, &solver) | EXPECT_EQ(v_data, rates.velocity.Data()) | EXPECT_EQ(a_data, rates.acceleration.Data()) | ASSERT_TRUE(shell_value::RunReducedHhtStep(*integrator, old, 17, parameters, evaluate, commit).IsOk()) | EXPECT_EQ(events, (std::vector{""predict"", ""rates"", ""reconstruct"", ""commit""})) | ASSERT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""predict"", ""rates"", ""reconstruct""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""predict"", ""rates"", ""reconstruct"", ""commit""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed)" "EXPECT_EQ(&history, &old) | EXPECT_EQ(&p, ¶meters) | EXPECT_DOUBLE_EQ(h, 17) | EXPECT_EQ(&request.history, &old) | EXPECT_EQ(&request.chart, &chart) | EXPECT_EQ(&request.trial_algorithmic, &algorithmic) | EXPECT_EQ(&request.retained_velocity, &retained_v) | EXPECT_EQ(&request.retained_acceleration, &retained_a) | EXPECT_EQ(&request.parameters, ¶meters) | EXPECT_DOUBLE_EQ(request.h, 17) | EXPECT_FALSE(request.copy_translation_rates) | EXPECT_NE(velocity.Data(), acceleration.Data()) | EXPECT_NE(velocity.Data(), request.vpp.Data()) | EXPECT_NE(acceleration.Data(), request.trial_algorithmic.Data()) | EXPECT_EQ(&c, &chart) | EXPECT_EQ(&r, &root) | EXPECT_EQ(&backend, &solver) | EXPECT_EQ(v_data, rates.velocity.Data()) | EXPECT_EQ(a_data, rates.acceleration.Data()) | ASSERT_TRUE(shell_value::RunReducedHhtStep(*integrator, old, 17, parameters, evaluate, commit).IsOk()) | EXPECT_EQ(events, (std::vector{""predict"", ""rates"", ""reconstruct"", ""commit""})) | ASSERT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""predict"", ""rates"", ""reconstruct""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""predict"", ""rates"", ""reconstruct"", ""commit""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/analysis_test.cpp ProcedureIntegratorInjection.SolidPairedValuesUseProductionStepAndPreserveHistory ProcedureIntegratorInjection.SolidPairedValuesUseProductionStepAndPreserveHistory; assertion 18개 tests/unit/analysis/analysis_test.cpp ProcedureIntegratorInjection.SolidPairedValuesUseProductionStepAndPreserveHistory 유지 원문 검사 body 및 assertion 동일. c1f6fefeb375372f008e812939ed19d2821d59b71d633de05ea6caded90255a5 c1f6fefeb375372f008e812939ed19d2821d59b71d633de05ea6caded90255a5 "EXPECT_EQ(&frame, &old) | EXPECT_EQ(&p, ¶meters) | EXPECT_DOUBLE_EQ(h, 17) | EXPECT_EQ(&old_a, &old.acceleration) | EXPECT_EQ(&old_a_low, &old.low.acceleration) | EXPECT_EQ(&p, ¶meters) | EXPECT_DOUBLE_EQ(h, 17) | ASSERT_TRUE(fesa::detail::RunSolidHhtStep(*integrator, old, 17, parameters, failure, evaluate, commit).IsOk()) | EXPECT_EQ(events, (std::vector{""predict"", ""rates"", ""commit""})) | ASSERT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""predict"", ""predict-failure""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""predict"", ""rates""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""predict"", ""rates"", ""commit""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed)" "EXPECT_EQ(&frame, &old) | EXPECT_EQ(&p, ¶meters) | EXPECT_DOUBLE_EQ(h, 17) | EXPECT_EQ(&old_a, &old.acceleration) | EXPECT_EQ(&old_a_low, &old.low.acceleration) | EXPECT_EQ(&p, ¶meters) | EXPECT_DOUBLE_EQ(h, 17) | ASSERT_TRUE(fesa::detail::RunSolidHhtStep(*integrator, old, 17, parameters, failure, evaluate, commit).IsOk()) | EXPECT_EQ(events, (std::vector{""predict"", ""rates"", ""commit""})) | ASSERT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""predict"", ""predict-failure""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""predict"", ""rates""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""predict"", ""rates"", ""commit""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/analysis_test.cpp ProcedureIntegratorInjection.HeatValuesUseProductionRecoveryCommitAndPreserveHistory ProcedureIntegratorInjection.HeatValuesUseProductionRecoveryCommitAndPreserveHistory; assertion 44개 tests/unit/analysis/analysis_test.cpp ProcedureIntegratorInjection.HeatValuesUseProductionRecoveryCommitAndPreserveHistory 유지 원문 검사 body 및 assertion 동일. ca98008566955e437f9faaa1aabf54305988d72549a7440880ffbf244c57949a ca98008566955e437f9faaa1aabf54305988d72549a7440880ffbf244c57949a "ASSERT_TRUE(matrix.HasValue()) | EXPECT_EQ(&supplied, &system) | EXPECT_EQ(&p, &partition) | EXPECT_EQ(&previous, &old) | EXPECT_EQ(&backend, &solver) | EXPECT_EQ(&workspace, &cache) | EXPECT_DOUBLE_EQ(delta, 17) | EXPECT_EQ(&supplied.k, &k) | EXPECT_EQ(&supplied.c, &c) | EXPECT_EQ(&supplied.q, &q) | EXPECT_EQ(supplied.k_error, nullptr) | EXPECT_EQ(supplied.c_error, nullptr) | EXPECT_EQ(supplied.q_error, nullptr) | EXPECT_EQ(p.free, (std::vector{0, 1})) | EXPECT_TRUE(p.constrained.empty()) | EXPECT_EQ(p.prescribed.Size(), 0U) | EXPECT_DOUBLE_EQ(e.beta_cert, 31) | EXPECT_DOUBLE_EQ(e.beta_limit, 32) | EXPECT_DOUBLE_EQ(e.free_residual_cert, 33) | EXPECT_DOUBLE_EQ(e.full_free_residual_cert, 34) | EXPECT_DOUBLE_EQ(e.full_beta_cert, 35) | EXPECT_DOUBLE_EQ(e.operator_construction_error, 36) | EXPECT_DOUBLE_EQ(e.rhs_construction_error, 37) | EXPECT_DOUBLE_EQ(e.construction_identity_bound, 38) | EXPECT_DOUBLE_EQ(e.energy_change, 39) | EXPECT_DOUBLE_EQ(e.energy_defect, 40) | EXPECT_DOUBLE_EQ(e.energy_bound, 41) | EXPECT_TRUE(e.dissipation_checked) | EXPECT_DOUBLE_EQ(e.dissipation_defect, 42) | EXPECT_DOUBLE_EQ(e.dissipation_bound, 43) | EXPECT_EQ(flux.size(), 1U) | EXPECT_EQ(value.Components(), (std::array{51, 52, 53})) | ASSERT_TRUE(heat_value::RunThermalStep(*integrator, system, partition, old, 17, solver, cache, recovery, commit).IsOk()) | EXPECT_EQ(events, (std::vector{""solve"", ""recovery"", ""commit""})) | ASSERT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""solve""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""solve"", ""recovery""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""solve"", ""recovery"", ""commit""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_FALSE(cache.matrix.has_value()) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed)" "ASSERT_TRUE(matrix.HasValue()) | EXPECT_EQ(&supplied, &system) | EXPECT_EQ(&p, &partition) | EXPECT_EQ(&previous, &old) | EXPECT_EQ(&backend, &solver) | EXPECT_EQ(&workspace, &cache) | EXPECT_DOUBLE_EQ(delta, 17) | EXPECT_EQ(&supplied.k, &k) | EXPECT_EQ(&supplied.c, &c) | EXPECT_EQ(&supplied.q, &q) | EXPECT_EQ(supplied.k_error, nullptr) | EXPECT_EQ(supplied.c_error, nullptr) | EXPECT_EQ(supplied.q_error, nullptr) | EXPECT_EQ(p.free, (std::vector{0, 1})) | EXPECT_TRUE(p.constrained.empty()) | EXPECT_EQ(p.prescribed.Size(), 0U) | EXPECT_DOUBLE_EQ(e.beta_cert, 31) | EXPECT_DOUBLE_EQ(e.beta_limit, 32) | EXPECT_DOUBLE_EQ(e.free_residual_cert, 33) | EXPECT_DOUBLE_EQ(e.full_free_residual_cert, 34) | EXPECT_DOUBLE_EQ(e.full_beta_cert, 35) | EXPECT_DOUBLE_EQ(e.operator_construction_error, 36) | EXPECT_DOUBLE_EQ(e.rhs_construction_error, 37) | EXPECT_DOUBLE_EQ(e.construction_identity_bound, 38) | EXPECT_DOUBLE_EQ(e.energy_change, 39) | EXPECT_DOUBLE_EQ(e.energy_defect, 40) | EXPECT_DOUBLE_EQ(e.energy_bound, 41) | EXPECT_TRUE(e.dissipation_checked) | EXPECT_DOUBLE_EQ(e.dissipation_defect, 42) | EXPECT_DOUBLE_EQ(e.dissipation_bound, 43) | EXPECT_EQ(flux.size(), 1U) | EXPECT_EQ(value.Components(), (std::array{51, 52, 53})) | ASSERT_TRUE(heat_value::RunThermalStep(*integrator, system, partition, old, 17, solver, cache, recovery, commit).IsOk()) | EXPECT_EQ(events, (std::vector{""solve"", ""recovery"", ""commit""})) | ASSERT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""solve""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""solve"", ""recovery""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_EQ(events, (std::vector{""solve"", ""recovery"", ""commit""})) | EXPECT_EQ(history.size(), 1U) | EXPECT_FALSE(cache.matrix.has_value()) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/analysis_test.cpp support@1-51 helper/oracle/fixture/include/static assertion 구간: StatusAnalysis tests/unit/analysis/analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1f9bcf41d5b9d4c5c4dd1f5f6fc2f59e4256ec4061745837f86e04644e130450 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/analysis_test.cpp support@79-113 helper/oracle/fixture/include/static assertion 구간: ObservedProcedure tests/unit/analysis/analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4502cb928dc48ff07cc73fa7959747b8297a3f4cff51595860a4e2600f6a18a1 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/analysis_test.cpp support@183-340 helper/oracle/fixture/include/static assertion 구간: InjectionFailure, ExpectInjectionFailure, ExpectValueVector, NeverCalledLinear, NeverCalledTangent, SelectedOrderAlgorithm, shell_value, ValueShellIntegrator, ValueSolidIntegrator, heat_value, ValueHeatIntegrator tests/unit/analysis/analysis_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8f3567a998f77ac0108671b3754e8bff34b3b5488709883977373db21caefd18 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/dynamic_analysis_state_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/analysis/dynamic_analysis_state_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 25e30b540c37be5c7699132ddf7c5da319a4a1bf3fb8988b054c8e9941ca594f 25e30b540c37be5c7699132ddf7c5da319a4a1bf3fb8988b054c8e9941ca594f 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsUnknownOrChangingIntegrationFormulation DynamicAnalysisState.RejectsUnknownOrChangingIntegrationFormulation; assertion 6개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsUnknownOrChangingIntegrationFormulation 유지 원문 검사 body 및 assertion 동일. b299952d9c0f3e19395a6d489944cf36625188d909376ec71022cdfc3c04478e b299952d9c0f3e19395a6d489944cf36625188d909376ec71022cdfc3c04478e EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_TRUE(fixture.state.AcceptedFrames().empty()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(next).IsOk()) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), 1U) | EXPECT_TRUE(fixture.state.CommitAcceptedFrame(next).IsOk()) EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_TRUE(fixture.state.AcceptedFrames().empty()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(next).IsOk()) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), 1U) | EXPECT_TRUE(fixture.state.CommitAcceptedFrame(next).IsOk()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.DefaultStateRejectsTrialAndCommit DynamicAnalysisState.DefaultStateRejectsTrialAndCommit; assertion 7개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.DefaultStateRejectsTrialAndCommit 유지 원문 검사 body 및 assertion 동일. b4737286e2144fd021d33353dc82bdd2e178140858c8f7abd06756e0ce44a186 b4737286e2144fd021d33353dc82bdd2e178140858c8f7abd06756e0ce44a186 "EXPECT_FALSE(state.IsInitialized()) | EXPECT_TRUE(state.AcceptedFrames().empty()) | EXPECT_FALSE(state.BeginTrialFromCommitted().HasValue()) | EXPECT_THROW((void)state.CommittedState(), std::logic_error) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-invalid-state"")" "EXPECT_FALSE(state.IsInitialized()) | EXPECT_TRUE(state.AcceptedFrames().empty()) | EXPECT_FALSE(state.BeginTrialFromCommitted().HasValue()) | EXPECT_THROW((void)state.CommittedState(), std::logic_error) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-invalid-state"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.CommitsCompleteZeroCorrectionHistoryAndCopiesTrials DynamicAnalysisState.CommitsCompleteZeroCorrectionHistoryAndCopiesTrials; assertion 11개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.CommitsCompleteZeroCorrectionHistoryAndCopiesTrials 유지 원문 검사 body 및 assertion 동일. 6724599255887b6bf6c6e95acb67cf1a050081f3bbb2af3617e3abd7d2c2f4be 6724599255887b6bf6c6e95acb67cf1a050081f3bbb2af3617e3abd7d2c2f4be EXPECT_TRUE(fixture.state.IsInitialized()) | EXPECT_FALSE(fixture.state.BeginTrialFromCommitted().HasValue()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().reaction[2U], -4.0) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), index + 1U) | ASSERT_TRUE(trial.HasValue()) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().generalized_coordinates[0U], 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState() .shell_results[0U] .stress[0U] .components[0U], 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().time, 0.5) | EXPECT_FALSE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 3U)).IsOk()) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), 3U) EXPECT_TRUE(fixture.state.IsInitialized()) | EXPECT_FALSE(fixture.state.BeginTrialFromCommitted().HasValue()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().reaction[2U], -4.0) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), index + 1U) | ASSERT_TRUE(trial.HasValue()) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().generalized_coordinates[0U], 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState() .shell_results[0U] .stress[0U] .components[0U], 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().time, 0.5) | EXPECT_FALSE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 3U)).IsOk()) | EXPECT_EQ(fixture.state.AcceptedFrames().size(), 3U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsMalformedInventoryScheduleAndPreservesEndpoint DynamicAnalysisState.RejectsMalformedInventoryScheduleAndPreservesEndpoint; assertion 8개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsMalformedInventoryScheduleAndPreservesEndpoint 유지 원문 검사 body 및 assertion 동일. ebf23f327fb58c09d0aa92da9d41f6059c31e1ff89f221511925e93e12b65922 ebf23f327fb58c09d0aa92da9d41f6059c31e1ff89f221511925e93e12b65922 "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-invalid-state"") | ASSERT_EQ(fixture.state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().time, 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().reaction[2U], -4.0) | EXPECT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 1U)).IsOk())" "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-invalid-state"") | ASSERT_EQ(fixture.state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().time, 0.0) | EXPECT_DOUBLE_EQ(fixture.state.CommittedState().reaction[2U], -4.0) | EXPECT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 1U)).IsOk())" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsInvalidInitialStateAndFreeReaction DynamicAnalysisState.RejectsInvalidInitialStateAndFreeReaction; assertion 6개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.RejectsInvalidInitialStateAndFreeReaction 유지 원문 검사 body 및 assertion 동일. 7651255fed1f126aeef752981e055c05207296c59c2ea57c8ece5b759bf5050e 7651255fed1f126aeef752981e055c05207296c59c2ea57c8ece5b759bf5050e EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_TRUE(fixture.state.AcceptedFrames().empty()) | EXPECT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_FALSE(fixture.state.CommitAcceptedFrame(initial).IsOk()) | EXPECT_TRUE(fixture.state.AcceptedFrames().empty()) | EXPECT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.CreateRejectsInvalidScheduleAndNonzeroBoundary DynamicAnalysisState.CreateRejectsInvalidScheduleAndNonzeroBoundary; assertion 4개 tests/unit/analysis/dynamic_analysis_state_test.cpp DynamicAnalysisState.CreateRejectsInvalidScheduleAndNonzeroBoundary 유지 원문 검사 body 및 assertion 동일. bbfb29c502216154504e82bbab6dc0df768128bc6ce0543958c4637ea1f32ef6 bbfb29c502216154504e82bbab6dc0df768128bc6ce0543958c4637ea1f32ef6 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_FALSE( fesa::DynamicAnalysisState::Create(domain.Value(), dofs.Value()) .HasValue()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_FALSE( fesa::DynamicAnalysisState::Create(domain.Value(), dofs.Value()) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/dynamic_analysis_state_test.cpp support@1-142 helper/oracle/fixture/include/static assertion 구간: MakeDefinition, if, Fixture, MakeFixture, MakeFrame tests/unit/analysis/dynamic_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7a11e3f45e7410305d59981204ce69f453199fac55bfeaf62d2a5c8e6c409fa2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/dynamic_analysis_state_test.cpp support@321-322 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/dynamic_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/eigen_mass_assembly_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/analysis/eigen_mass_assembly_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8489602024286b7c66c26750ecbf627d361b893fa9083c7d2dd97d34bbe3c25e 8489602024286b7c66c26750ecbf627d361b893fa9083c7d2dd97d34bbe3c25e 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/eigen_mass_assembly_test.cpp EigenMassAssembly.ScattersHeterogeneousSharedNodeMassInSourceOrder EigenMassAssembly.ScattersHeterogeneousSharedNodeMassInSourceOrder; assertion 9개 tests/unit/analysis/eigen_mass_assembly_test.cpp EigenMassAssembly.ScattersHeterogeneousSharedNodeMassInSourceOrder 유지 원문 검사 body 및 assertion 동일. 6d9e4d731b921c8e3a160847675ebe72b28977b65f3abdee8fc959a4a183b62f 6d9e4d731b921c8e3a160847675ebe72b28977b65f3abdee8fc959a4a183b62f ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(expected.HasValue()) | EXPECT_LE(std::abs(expected.Value().mass - analytic_shared_rotary_mass) / analytic_shared_rotary_mass, 1e-12) | ASSERT_TRUE(state.HasValue()) | ASSERT_EQ(state.Value().free_dof_count, 1U) | ASSERT_EQ(state.Value().modes.size(), 1U) | EXPECT_LE(std::abs(state.Value().modes[0U].eigenvalue - expected_eigenvalue) / (std::abs(state.Value().modes[0U].eigenvalue) + std::abs(expected_eigenvalue)), 1e-12) | EXPECT_LE(std::abs(amplitude * amplitude * analytic_shared_rotary_mass - 1.0), 1e-12) | EXPECT_NEAR(eigenvalues[0U], eigenvalues[1U], 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(expected.HasValue()) | EXPECT_LE(std::abs(expected.Value().mass - analytic_shared_rotary_mass) / analytic_shared_rotary_mass, 1e-12) | ASSERT_TRUE(state.HasValue()) | ASSERT_EQ(state.Value().free_dof_count, 1U) | ASSERT_EQ(state.Value().modes.size(), 1U) | EXPECT_LE(std::abs(state.Value().modes[0U].eigenvalue - expected_eigenvalue) / (std::abs(state.Value().modes[0U].eigenvalue) + std::abs(expected_eigenvalue)), 1e-12) | EXPECT_LE(std::abs(amplitude * amplitude * analytic_shared_rotary_mass - 1.0), 1e-12) | EXPECT_NEAR(eigenvalues[0U], eigenvalues[1U], 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/eigen_mass_assembly_test.cpp support@1-148 helper/oracle/fixture/include/static assertion 구간: StatusText, SharedNodeDomain, SharedDofPencil, DirectSharedDofPencil tests/unit/analysis/eigen_mass_assembly_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 53cc183efe17e5050e7ea520df0757fe7dfdc9eba5668b6a1a2bcb51ae107667 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/eigen_mass_assembly_test.cpp support@179-180 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/eigen_mass_assembly_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/eigen_reduction_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/unit/analysis/eigen_reduction_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c6d306df8de16086aaa2c1b8135de697180ed6576dce01cbbc550c0147469c30 deeb284988187961964b2a213d19e3b2655f399294debdc175e43be75dada796 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.KeepsPositivePartialGlobalRotationAndOriginalPencil EigenReduction.KeepsPositivePartialGlobalRotationAndOriginalPencil; assertion 6개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.KeepsPositivePartialGlobalRotationAndOriginalPencil 유지 원문 검사 body 및 assertion 동일. 399fa920a441080dca52e78288f339ef61c0a5a2ffd35eac3374a02d2732c42a 399fa920a441080dca52e78288f339ef61c0a5a2ffd35eac3374a02d2732c42a ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 0U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 1U) | EXPECT_NEAR(result.Value().whitened_operator.Values()[0], 10369.0 / 450.0, 1e-12) | EXPECT_DOUBLE_EQ(y[i], 0.0) | EXPECT_NEAR(y[5U] * y[5U] * (3.0 / 50.0), 1.0, 1e-12) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 0U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 1U) | EXPECT_NEAR(result.Value().whitened_operator.Values()[0], 10369.0 / 450.0, 1e-12) | EXPECT_DOUBLE_EQ(y[i], 0.0) | EXPECT_NEAR(y[5U] * y[5U] * (3.0 / 50.0), 1.0, 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.RemovesOnlyActualFreeDirectorNull EigenReduction.RemovesOnlyActualFreeDirectorNull; assertion 7개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.RemovesOnlyActualFreeDirectorNull 유지 원문 검사 body 및 assertion 동일. 471fdf9ca8aeae5af42703e726987365971308fc83bc8104410a6a1840e1082a 471fdf9ca8aeae5af42703e726987365971308fc83bc8104410a6a1840e1082a ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().free_count, 6U) | EXPECT_EQ(result.Value().null_count, 1U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 5U) | EXPECT_NEAR(action[i], 7.0, 1e-12) | EXPECT_LE(result.Value().eta_kz, 1e-12) | EXPECT_FALSE(fesa::eigen_internal::BuildEigenReduction( Sparse(stiffness), {mass}, {frame}, std::vector(6U, 0U), {0.25}, 2.0) .HasValue()) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().free_count, 6U) | EXPECT_EQ(result.Value().null_count, 1U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 5U) | EXPECT_NEAR(action[i], 7.0, 1e-12) | EXPECT_LE(result.Value().eta_kz, 1e-12) | EXPECT_FALSE(fesa::eigen_internal::BuildEigenReduction( Sparse(stiffness), {mass}, {frame}, std::vector(6U, 0U), {0.25}, 2.0) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.RejectsPositiveButUnresolvableMassWithoutDeletingDofs EigenReduction.RejectsPositiveButUnresolvableMassWithoutDeletingDofs; assertion 2개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.RejectsPositiveButUnresolvableMassWithoutDeletingDofs 유지 원문 검사 body 및 assertion 동일. f6d11adf25938f2049286ead08de4b4714864ca4b1322e18bf3633bcf7854c31 f6d11adf25938f2049286ead08de4b4714864ca4b1322e18bf3633bcf7854c31 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""eigen-mass-conditioning"")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""eigen-mass-conditioning"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.WhitensOffDiagonalMassAndRestoresOriginalPencil EigenReduction.WhitensOffDiagonalMassAndRestoresOriginalPencil; assertion 7개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.WhitensOffDiagonalMassAndRestoresOriginalPencil 유지 원문 검사 body 및 assertion 동일. b5a7c3d712f378cd6568ccd879c6c7390686b963b0528af91c9a20bf8353e277 b5a7c3d712f378cd6568ccd879c6c7390686b963b0528af91c9a20bf8353e277 ASSERT_TRUE(reduction.HasValue()) | ASSERT_TRUE(eigen.HasValue()) | ASSERT_EQ(eigen.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(eigen.Value().eigenvalues[0], 2.0, 1e-12) | EXPECT_NEAR(eigen.Value().eigenvalues[1], 10.0 / 3.0, 1e-12) | EXPECT_NEAR(q.Dot(mq), 1.0, 1e-12) | EXPECT_LE(residual.Norm(), 1e-12) ASSERT_TRUE(reduction.HasValue()) | ASSERT_TRUE(eigen.HasValue()) | ASSERT_EQ(eigen.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(eigen.Value().eigenvalues[0], 2.0, 1e-12) | EXPECT_NEAR(eigen.Value().eigenvalues[1], 10.0 / 3.0, 1e-12) | EXPECT_NEAR(q.Dot(mq), 1.0, 1e-12) | EXPECT_LE(residual.Norm(), 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.PreservesSmallResolvablePositivePartialRotationMass EigenReduction.PreservesSmallResolvablePositivePartialRotationMass; assertion 4개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.PreservesSmallResolvablePositivePartialRotationMass 유지 원문 검사 body 및 assertion 동일. aff919e78c5664fb5231773c44978a9d7cbf02ee6f62c4a2a94d2abb33948434 aff919e78c5664fb5231773c44978a9d7cbf02ee6f62c4a2a94d2abb33948434 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 0U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 5U) | EXPECT_GE(result.Value().nodes[0].record.rcond_inf, 0x1p-32) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 0U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 5U) | EXPECT_GE(result.Value().nodes[0].record.rcond_inf, 0x1p-32) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.HandlesTwoFreeRotationsAndRejectsEmptyFiniteSpace EigenReduction.HandlesTwoFreeRotationsAndRejectsEmptyFiniteSpace; assertion 7개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.HandlesTwoFreeRotationsAndRejectsEmptyFiniteSpace 유지 원문 검사 body 및 assertion 동일. 9291ee1eebaa0910609397a4c53ac7f706ee44b9c19994ed2c1976a7c0e8befe 9291ee1eebaa0910609397a4c53ac7f706ee44b9c19994ed2c1976a7c0e8befe "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 1U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 1U) | EXPECT_FALSE(fesa::eigen_internal::BuildEigenReduction( Sparse(stiffness), {mass}, {frame}, mask, {0.25}, 1.0) .HasValue()) | ASSERT_FALSE(empty.HasValue()) | EXPECT_EQ(empty.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_EQ(empty.GetStatus().Diagnostics()[0].code, ""empty-eigenproblem"")" "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().null_count, 1U) | EXPECT_EQ(result.Value().whitened_operator.Rows(), 1U) | EXPECT_FALSE(fesa::eigen_internal::BuildEigenReduction( Sparse(stiffness), {mass}, {frame}, mask, {0.25}, 1.0) .HasValue()) | ASSERT_FALSE(empty.HasValue()) | EXPECT_EQ(empty.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_EQ(empty.GetStatus().Diagnostics()[0].code, ""empty-eigenproblem"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.PureMassWhiteningRetainsInclusiveInfinityConditionGate EigenReduction.PureMassWhiteningRetainsInclusiveInfinityConditionGate; assertion 5개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.PureMassWhiteningRetainsInclusiveInfinityConditionGate 유지 원문 검사 body 및 assertion 동일. 8d5801bc22534356f71705e0e72244253b4a9c9aae2bd601ca8e86d65824f457 8d5801bc22534356f71705e0e72244253b4a9c9aae2bd601ca8e86d65824f457 "EXPECT_EQ(reduced.HasValue(), diagonal >= 0x1p-32) | EXPECT_DOUBLE_EQ(reduced.Value().nodes[0].record.rcond_inf, diagonal) | EXPECT_NEAR(applied[0], 3.0, 1e-12) | EXPECT_NEAR(applied[1], 3.0, 1e-12) | EXPECT_EQ(reduced.GetStatus().Diagnostics()[0].code, ""eigen-mass-conditioning"")" "EXPECT_EQ(reduced.HasValue(), diagonal >= 0x1p-32) | EXPECT_DOUBLE_EQ(reduced.Value().nodes[0].record.rcond_inf, diagonal) | EXPECT_NEAR(applied[0], 3.0, 1e-12) | EXPECT_NEAR(applied[1], 3.0, 1e-12) | EXPECT_EQ(reduced.GetStatus().Diagnostics()[0].code, ""eigen-mass-conditioning"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.PureOffDiagonalWhiteningMatchesAnalyticGramAndPencil EigenReduction.PureOffDiagonalWhiteningMatchesAnalyticGramAndPencil; assertion 8개 tests/unit/analysis/eigen_reduction_test.cpp EigenReduction.PureOffDiagonalWhiteningMatchesAnalyticGramAndPencil 유지 원문 검사 body 및 assertion 동일. e1fd9603a07186b94bc73be8913ab26c440e3383f2dffa976e8de8454fd4e545 e1fd9603a07186b94bc73be8913ab26c440e3383f2dffa976e8de8454fd4e545 ASSERT_TRUE(reduced.HasValue()) | EXPECT_NEAR(physical[0][0], 1.0 / std::sqrt(2.0), 1e-12) | EXPECT_NEAR(physical[0][1], 0.0, 1e-12) | EXPECT_NEAR(physical[1][0], -1.0 / std::sqrt(6.0), 1e-12) | EXPECT_NEAR(physical[1][1], 2.0 / std::sqrt(6.0), 1e-12) | EXPECT_NEAR(physical[row].Dot(mq), row == column ? 1.0 : 0.0, 1e-12) | EXPECT_NEAR(action[row], expected[row][column], 1e-12) | EXPECT_NEAR(action[row], physical[row].Dot(kq), 1e-12) ASSERT_TRUE(reduced.HasValue()) | EXPECT_NEAR(physical[0][0], 1.0 / std::sqrt(2.0), 1e-12) | EXPECT_NEAR(physical[0][1], 0.0, 1e-12) | EXPECT_NEAR(physical[1][0], -1.0 / std::sqrt(6.0), 1e-12) | EXPECT_NEAR(physical[1][1], 2.0 / std::sqrt(6.0), 1e-12) | EXPECT_NEAR(physical[row].Dot(mq), row == column ? 1.0 : 0.0, 1e-12) | EXPECT_NEAR(action[row], expected[row][column], 1e-12) | EXPECT_NEAR(action[row], physical[row].Dot(kq), 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/eigen_reduction_test.cpp support@1-50 helper/oracle/fixture/include/static assertion 구간: Sparse, NodalMass, TiltedFrame tests/unit/analysis/eigen_reduction_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ec071e4e6d7f4391202a3a9d93789568081129769ce79baf2093b17de991fbca 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 20개 tests/unit/analysis/hht_dynamic_algebra_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e926831b44741880a7a729c57266c668eeeccc9130be07eacdb97c5330338ad2 e926831b44741880a7a729c57266c668eeeccc9130be07eacdb97c5330338ad2 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidPredictorPreservesRatesFixedDofsAndOldState HhtNewtonStart.ValidPredictorPreservesRatesFixedDofsAndOldState; assertion 16개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidPredictorPreservesRatesFixedDofsAndOldState 유지 원문 검사 body 및 assertion 동일. 83ff51b06a72feea0d70aa1de3e1d8fa07f7128d4c4194861b5bb148ba8813f9 83ff51b06a72feea0d70aa1de3e1d8fa07f7128d4c4194861b5bb148ba8813f9 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_GT(frame.generalized_coordinates[2U], 0.0) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], predictor.coordinates[i]) | EXPECT_DOUBLE_EQ(frame.velocity[i], predictor.velocity[i]) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], parameters.alpha * old.acceleration[i] / (1.0 + parameters.alpha)) | EXPECT_DOUBLE_EQ(old.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.velocity[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(old.velocity[2U], 0.2) | EXPECT_DOUBLE_EQ(old.acceleration[2U], 0.3) | EXPECT_EQ(old.iteration_count, 7U) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_GT(frame.generalized_coordinates[2U], 0.0) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], predictor.coordinates[i]) | EXPECT_DOUBLE_EQ(frame.velocity[i], predictor.velocity[i]) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], parameters.alpha * old.acceleration[i] / (1.0 + parameters.alpha)) | EXPECT_DOUBLE_EQ(old.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.velocity[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0.0) | EXPECT_DOUBLE_EQ(old.velocity[2U], 0.2) | EXPECT_DOUBLE_EQ(old.acceleration[2U], 0.3) | EXPECT_EQ(old.iteration_count, 7U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.InvalidPredictorGeometryUsesUnchangedAcceptedCoordinates HhtNewtonStart.InvalidPredictorGeometryUsesUnchangedAcceptedCoordinates; assertion 6개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.InvalidPredictorGeometryUsesUnchangedAcceptedCoordinates 유지 원문 검사 body 및 assertion 동일. 7f1ecc04486786cb084db0832cdaf162e71ddcf7e8ad02c3193dbb36d5d195f3 7f1ecc04486786cb084db0832cdaf162e71ddcf7e8ad02c3193dbb36d5d195f3 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(old.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(start.Value().frame.algorithmic_acceleration[i], auxiliary) | EXPECT_DOUBLE_EQ(start.Value().frame.acceleration[i], auxiliary / (1.0 + parameters.alpha)) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(old.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(start.Value().frame.algorithmic_acceleration[i], auxiliary) | EXPECT_DOUBLE_EQ(start.Value().frame.acceleration[i], auxiliary / (1.0 + parameters.alpha)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidChartRateOverflowIsNotReplacedByAcceptedGeometry HhtNewtonStart.ValidChartRateOverflowIsNotReplacedByAcceptedGeometry; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidChartRateOverflowIsNotReplacedByAcceptedGeometry 유지 원문 검사 body 및 assertion 동일. 52556a58a35b9a39362efc3fd2fff266da52dea44cfdea0e89c4c1c288705fee 52556a58a35b9a39362efc3fd2fff266da52dea44cfdea0e89c4c1c288705fee "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-dynamic-rotation"")" "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-dynamic-rotation"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.LaterOutsideChartNodeDoesNotHideEarlierRateOverflow HhtNewtonStart.LaterOutsideChartNodeDoesNotHideEarlierRateOverflow; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.LaterOutsideChartNodeDoesNotHideEarlierRateOverflow 유지 원문 검사 body 및 assertion 동일. 30d8bdf6512795f74fb1e1322a2a7266e83e2545f10f4cc95ecde8c83530594e 30d8bdf6512795f74fb1e1322a2a7266e83e2545f10f4cc95ecde8c83530594e "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-dynamic-rotation"")" "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-dynamic-rotation"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.UsesTheExistingPrincipalChartMarginForInitialSelection HhtNewtonStart.UsesTheExistingPrincipalChartMarginForInitialSelection; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.UsesTheExistingPrincipalChartMarginForInitialSelection 유지 원문 검사 body 및 assertion 동일. aad0befacc29ae3638004bedd9fcd0c4a0be3dcd89ec1c4a5f2b4ff45d505b57 aad0befacc29ae3638004bedd9fcd0c4a0be3dcd89ec1c4a5f2b4ff45d505b57 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], inside ? predictor.coordinates[5U] : 0.0) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], inside ? predictor.coordinates[5U] : 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.CommonEnergyScalingSelectsTheSmallerFreeResidual HhtNewtonStart.CommonEnergyScalingSelectsTheSmallerFreeResidual; assertion 5개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.CommonEnergyScalingSelectsTheSmallerFreeResidual 유지 원문 검사 body 및 assertion 동일. c81160bc3e25344f04144572f3efb18f086dfca03dab2442ab766da8e00fbb69 c81160bc3e25344f04144572f3efb18f086dfca03dab2442ab766da8e00fbb69 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(evaluated.HasValue()) | ASSERT_GT(drill_residual, 0.0) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], 0.25) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(evaluated.HasValue()) | ASSERT_GT(drill_residual, 0.0) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], 0.25) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ConstrainedReactionDoesNotChangeNontrivialFreeResidualTie HhtNewtonStart.ConstrainedReactionDoesNotChangeNontrivialFreeResidualTie; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ConstrainedReactionDoesNotChangeNontrivialFreeResidualTie 유지 원문 검사 body 및 assertion 동일. 82af7082c22c2e465b2b74e21b3fab82eebce0a797ce924fb0e62a7a6e4b8977 82af7082c22c2e465b2b74e21b3fab82eebce0a797ce924fb0e62a7a6e4b8977 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(evaluated.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], 0.25) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(evaluated.HasValue()) | ASSERT_TRUE(start.HasValue()) | EXPECT_DOUBLE_EQ(start.Value().frame.generalized_coordinates[5U], 0.25) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ScaledResidualOverflowRemainsAFailure HhtNewtonStart.ScaledResidualOverflowRemainsAFailure; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ScaledResidualOverflowRemainsAFailure 유지 원문 검사 body 및 assertion 동일. db53879667603238b22caad54b437d6e9355b60a01d62fcc5895c0ea29bd2206 db53879667603238b22caad54b437d6e9355b60a01d62fcc5895c0ea29bd2206 "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.AcceptedStartArithmeticFailureIsNotIgnoredDuringComparison HhtNewtonStart.AcceptedStartArithmeticFailureIsNotIgnoredDuringComparison; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.AcceptedStartArithmeticFailureIsNotIgnoredDuringComparison 유지 원문 검사 body 및 assertion 동일. ae45e703f39d5173207289f5bac55b10d4912d7faaeb7e31b0828c6c3d84bd59 ae45e703f39d5173207289f5bac55b10d4912d7faaeb7e31b0828c6c3d84bd59 "ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(valid_predictor.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" "ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(valid_predictor.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.RejectedPredictorDoesNotHideInvalidAcceptedStartRates HhtNewtonStart.RejectedPredictorDoesNotHideInvalidAcceptedStartRates; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.RejectedPredictorDoesNotHideInvalidAcceptedStartRates 유지 원문 검사 body 및 assertion 동일. 87af7acedf54a8bacd7dc709d4cf98bab2e8dd55c6033d7decfc9edf545cd69e 87af7acedf54a8bacd7dc709d4cf98bab2e8dd55c6033d7decfc9edf545cd69e "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"") | EXPECT_DOUBLE_EQ(old.generalized_coordinates[5U], 0.0)" "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"") | EXPECT_DOUBLE_EQ(old.generalized_coordinates[5U], 0.0)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidGeometryStressOverflowRemainsARecoveryFailure HhtNewtonStart.ValidGeometryStressOverflowRemainsARecoveryFailure; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtNewtonStart.ValidGeometryStressOverflowRemainsARecoveryFailure 유지 원문 검사 body 및 assertion 동일. 608c3757178a373edae163916eb616d060f80ed87e569f1a747ef533fba5e841 608c3757178a373edae163916eb616d060f80ed87e569f1a747ef533fba5e841 "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-nonlinear-shell-recovery"")" "ASSERT_TRUE(shells.HasValue()) | ASSERT_FALSE(start.HasValue()) | EXPECT_EQ(start.GetStatus().Diagnostics().front().code, ""invalid-nonlinear-shell-recovery"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.InitializesCoupledMasslessAccelerationFromHiddenEquation HhtDynamicAlgebra.InitializesCoupledMasslessAccelerationFromHiddenEquation; assertion 10개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.InitializesCoupledMasslessAccelerationFromHiddenEquation 유지 원문 검사 body 및 assertion 동일. dca81e4f5956f5fd2a869a3a5b03c9e15df863b98e40c9cf8489678b3d516a02 dca81e4f5956f5fd2a869a3a5b03c9e15df863b98e40c9cf8489678b3d516a02 ASSERT_TRUE(acceleration.HasValue()) | EXPECT_NEAR(acceleration.Value()[0], 1.0, 1.0e-12) | EXPECT_NEAR(acceleration.Value()[5], 0.7, 1.0e-12) | EXPECT_EQ(acceleration.Value()[full], 0.0) | ASSERT_EQ(nodes, std::vector{0U}) | EXPECT_TRUE(fesa::hht_internal::CompleteConstraintEvidence( *fixture.domain, fixture.dofs, assembly, 2.0, nodes, positive, tangent, &frame) .IsOk()) | ASSERT_EQ(frame.hidden_acceleration_defect.Size(), 1U) | EXPECT_NEAR(frame.hidden_acceleration_defect[0], 0.0, 1.0e-12) | EXPECT_GT(frame.hidden_acceleration_defect_scale[0], 0.0) | EXPECT_FALSE(pseudoinverse.IsOk()) ASSERT_TRUE(acceleration.HasValue()) | EXPECT_NEAR(acceleration.Value()[0], 1.0, 1.0e-12) | EXPECT_NEAR(acceleration.Value()[5], 0.7, 1.0e-12) | EXPECT_EQ(acceleration.Value()[full], 0.0) | ASSERT_EQ(nodes, std::vector{0U}) | EXPECT_TRUE(fesa::hht_internal::CompleteConstraintEvidence( *fixture.domain, fixture.dofs, assembly, 2.0, nodes, positive, tangent, &frame) .IsOk()) | ASSERT_EQ(frame.hidden_acceleration_defect.Size(), 1U) | EXPECT_NEAR(frame.hidden_acceleration_defect[0], 0.0, 1.0e-12) | EXPECT_GT(frame.hidden_acceleration_defect_scale[0], 0.0) | EXPECT_FALSE(pseudoinverse.IsOk()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsMissingCanonicalHiddenGradient HhtDynamicAlgebra.RejectsMissingCanonicalHiddenGradient; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsMissingCanonicalHiddenGradient 유지 원문 검사 body 및 assertion 동일. 74a7c54d874d6dc0045725cdb30a80de28ba7e3bfb9624462ed9234575436bbd 74a7c54d874d6dc0045725cdb30a80de28ba7e3bfb9624462ed9234575436bbd "ASSERT_FALSE(acceleration.HasValue()) | ASSERT_FALSE(acceleration.GetStatus().Diagnostics().empty()) | EXPECT_EQ(acceleration.GetStatus().Diagnostics().front().code, ""dynamic-algebraic-gradient"")" "ASSERT_FALSE(acceleration.HasValue()) | ASSERT_FALSE(acceleration.GetStatus().Diagnostics().empty()) | EXPECT_EQ(acceleration.GetStatus().Diagnostics().front().code, ""dynamic-algebraic-gradient"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.ChecksInitialConstraintAndVelocityWithoutRepair HhtDynamicAlgebra.ChecksInitialConstraintAndVelocityWithoutRepair; assertion 2개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.ChecksInitialConstraintAndVelocityWithoutRepair 유지 원문 검사 body 및 assertion 동일. 1f8d68dac0766ed6cfd75b6e55633612751022e7d9c6e8f77d67c06a694973a4 1f8d68dac0766ed6cfd75b6e55633612751022e7d9c6e8f77d67c06a694973a4 EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, inconsistent, 2.0, positive, tangent) .HasValue()) | EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, inconsistent, 2.0, positive, tangent) .HasValue()) EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, inconsistent, 2.0, positive, tangent) .HasValue()) | EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, inconsistent, 2.0, positive, tangent) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.KeepsAcceptedHiddenRateDefectsAsDiagnostics HhtDynamicAlgebra.KeepsAcceptedHiddenRateDefectsAsDiagnostics; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.KeepsAcceptedHiddenRateDefectsAsDiagnostics 유지 원문 검사 body 및 assertion 동일. b6656cadbd8eff4fe59cb6e649da8b73f332d6371a24e089e51a502fd701812a b6656cadbd8eff4fe59cb6e649da8b73f332d6371a24e089e51a502fd701812a ASSERT_TRUE(result.IsOk()) | EXPECT_NEAR(frame.hidden_velocity_defect[0], 0.3, 1.0e-12) | EXPECT_NEAR(frame.hidden_acceleration_defect[0], -0.6, 1.0e-12) ASSERT_TRUE(result.IsOk()) | EXPECT_NEAR(frame.hidden_velocity_defect[0], 0.3, 1.0e-12) | EXPECT_NEAR(frame.hidden_acceleration_defect[0], -0.6, 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsNegativePhysicalMassAndAlgebraicRankLoss HhtDynamicAlgebra.RejectsNegativePhysicalMassAndAlgebraicRankLoss; assertion 2개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsNegativePhysicalMassAndAlgebraicRankLoss 유지 원문 검사 body 및 assertion 동일. 78d8a27b28858536af53be59122d7afd794a448f30eee56de369e82b20ecb0a8 78d8a27b28858536af53be59122d7afd794a448f30eee56de369e82b20ecb0a8 EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, negative, 2.0, positive, tangent) .HasValue()) | EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, singular, 2.0, positive, tangent) .HasValue()) EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, negative, 2.0, positive, tangent) .HasValue()) | EXPECT_FALSE( fesa::hht_internal::InitializeAcceleration( *fixture.domain, fixture.dofs, singular, 2.0, positive, tangent) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.AppliesTheExactRegularityConditionBoundary HhtDynamicAlgebra.AppliesTheExactRegularityConditionBoundary; assertion 3개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.AppliesTheExactRegularityConditionBoundary 유지 원문 검사 body 및 assertion 동일. 6c6023800e47f2dee4b1e70509312f6286db2bb011b24117d285dca77fb219e3 6c6023800e47f2dee4b1e70509312f6286db2bb011b24117d285dca77fb219e3 "EXPECT_EQ(result.HasValue(), exponent <= 32) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""dynamic-algebraic-conditioning"")" "EXPECT_EQ(result.HasValue(), exponent <= 32) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""dynamic-algebraic-conditioning"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.AllFixedModelHasAnEmptyValidAccelerationSolve HhtDynamicAlgebra.AllFixedModelHasAnEmptyValidAccelerationSolve; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.AllFixedModelHasAnEmptyValidAccelerationSolve 유지 원문 검사 body 및 assertion 동일. b46d03f9802058ea1af7e6fb69903168a20526878111f1e1994389b609273c36 b46d03f9802058ea1af7e6fb69903168a20526878111f1e1994389b609273c36 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().Norm(), 0.0) | EXPECT_TRUE(fesa::hht_internal::CompleteConstraintEvidence( *fixture.domain, fixture.dofs, assembly, 2.0, {}, positive, tangent, &frame) .IsOk()) | EXPECT_EQ(frame.hidden_constraint.Size(), 0U) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().Norm(), 0.0) | EXPECT_TRUE(fesa::hht_internal::CompleteConstraintEvidence( *fixture.domain, fixture.dofs, assembly, 2.0, {}, positive, tangent, &frame) .IsOk()) | EXPECT_EQ(frame.hidden_constraint.Size(), 0U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.PartialBoundaryRetainsEveryNonzeroPhysicalDirection HhtDynamicAlgebra.PartialBoundaryRetainsEveryNonzeroPhysicalDirection; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.PartialBoundaryRetainsEveryNonzeroPhysicalDirection 유지 원문 검사 body 및 assertion 동일. 7d72f765cafbf817a9f26d9f8abd9d654664b17589b1824d0bdc885f35ffd953 7d72f765cafbf817a9f26d9f8abd9d654664b17589b1824d0bdc885f35ffd953 "EXPECT_EQ(nodes.size(), p == 0.0 ? 1U : 0U) | EXPECT_EQ(result.HasValue(), expected) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""dynamic-positive-mass-conditioning"")" "EXPECT_EQ(nodes.size(), p == 0.0 ? 1U : 0U) | EXPECT_EQ(result.HasValue(), expected) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""dynamic-positive-mass-conditioning"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsAdmissibleNullRankChangeBeforeAcceptingFrame HhtDynamicAlgebra.RejectsAdmissibleNullRankChangeBeforeAcceptingFrame; assertion 4개 tests/unit/analysis/hht_dynamic_algebra_test.cpp HhtDynamicAlgebra.RejectsAdmissibleNullRankChangeBeforeAcceptingFrame 유지 원문 검사 body 및 assertion 동일. 614b49ef2166dc30907a57a85d9ecada764ca8a1864a6c55562c7e645b410611 614b49ef2166dc30907a57a85d9ecada764ca8a1864a6c55562c7e645b410611 "ASSERT_EQ(initial_nodes.size(), 1U) | ASSERT_FALSE(result.IsOk()) | EXPECT_EQ(result.Diagnostics()[0].code, ""dynamic-mass-null-rank-change"") | EXPECT_EQ(frame.hidden_constraint[0], 23.0)" "ASSERT_EQ(initial_nodes.size(), 1U) | ASSERT_FALSE(result.IsOk()) | EXPECT_EQ(result.Diagnostics()[0].code, ""dynamic-mass-null-rank-change"") | EXPECT_EQ(frame.hidden_constraint[0], 23.0)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp support@1-161 helper/oracle/fixture/include/static assertion 구간: Fixture, MakeFixture, if, Sparse, Assembly, EmptyTrial tests/unit/analysis/hht_dynamic_algebra_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b54e2c2f814694abbd26a1b4accdd404cb99fbcdb05093dd7f89602ee20ba702 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_dynamic_algebra_test.cpp support@671-672 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_dynamic_algebra_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_dynamic_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/analysis/hht_dynamic_procedure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7b16fff8a3edd6482b56b0c6ac02cbac5b292aecb05c82d51ac460f691befd3a 7b16fff8a3edd6482b56b0c6ac02cbac5b292aecb05c82d51ac460f691befd3a 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.ClampedStepLoadHasPhysicalReactionAndZeroMotion HhtDynamicProcedure.ClampedStepLoadHasPhysicalReactionAndZeroMotion; assertion 13개 tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.ClampedStepLoadHasPhysicalReactionAndZeroMotion 유지 원문 검사 body 및 assertion 동일. af10ef2634dd693ac1345389ffd20c559b5cab842c16135d6ee600f40b749c52 af10ef2634dd693ac1345389ffd20c559b5cab842c16135d6ee600f40b749c52 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 3U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.reaction[2U], -4.0) | EXPECT_DOUBLE_EQ(frame.external_force[2U], 4.0) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.energy_defect, 0.0) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0.0) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 3U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.reaction[2U], -4.0) | EXPECT_DOUBLE_EQ(frame.external_force[2U], 4.0) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.energy_defect, 0.0) | EXPECT_DOUBLE_EQ(frame.generalized_coordinates[i], 0.0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.UnloadedFreeChannelsRemainExactlyAtRest HhtDynamicProcedure.UnloadedFreeChannelsRemainExactlyAtRest; assertion 13개 tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.UnloadedFreeChannelsRemainExactlyAtRest 유지 원문 검사 body 및 assertion 동일. 16d814c3946a314c5b19636f0dda7cbe9d6c7702feaf70a007d2e9546e81ab56 16d814c3946a314c5b19636f0dda7cbe9d6c7702feaf70a007d2e9546e81ab56 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 3U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ((*values)[i], 0.0) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.drilling_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.energy_defect, 0.0) | EXPECT_DOUBLE_EQ(metric, 0.0) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 3U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ((*values)[i], 0.0) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.drilling_energy, 0.0) | EXPECT_DOUBLE_EQ(frame.energy_defect, 0.0) | EXPECT_DOUBLE_EQ(metric, 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.LargeDirectStepStartsFromAcceptedGeometry HhtDynamicProcedure.LargeDirectStepStartsFromAcceptedGeometry; assertion 10개 tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.LargeDirectStepStartsFromAcceptedGeometry 유지 원문 검사 body 및 assertion 동일. 03acc1280ba57f65c34c10dcee9d444861d413107a82328c271e8affa1349c9e 03acc1280ba57f65c34c10dcee9d444861d413107a82328c271e8affa1349c9e ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GT( std::abs(result.Value().state.AcceptedFrames()[0U].acceleration[14U]), 1e5) | EXPECT_LT(result.Value().state.CommittedState().generalized_coordinates[14U], 0.0) | EXPECT_LE(metric, 1e-10) | EXPECT_GT(result.Value().state.CommittedState().iteration_count, 0U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[dof], (1.0 + alpha) * frame.acceleration[dof] - alpha * frames[frame_index - 1U].acceleration[dof]) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GT( std::abs(result.Value().state.AcceptedFrames()[0U].acceleration[14U]), 1e5) | EXPECT_LT(result.Value().state.CommittedState().generalized_coordinates[14U], 0.0) | EXPECT_LE(metric, 1e-10) | EXPECT_GT(result.Value().state.CommittedState().iteration_count, 0U) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[dof], (1.0 + alpha) * frame.acceleration[dof] - alpha * frames[frame_index - 1U].acceleration[dof]) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.PreservesBackendCauseAndAddsInitialFailureContext HhtDynamicProcedure.PreservesBackendCauseAndAddsInitialFailureContext; assertion 13개 tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.PreservesBackendCauseAndAddsInitialFailureContext 유지 원문 검사 body 및 assertion 동일. b869904675bfc24f3eff1a042534df660eca2c47b484a361461060c349de2e1f b869904675bfc24f3eff1a042534df660eca2c47b484a361461060c349de2e1f "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics().front().code, ""injected-tangent-backend"") | ASSERT_NE(found, result.GetStatus().Diagnostics().end()) | EXPECT_EQ(found->location.file, std::filesystem::path{""dynamic-state.inp""}) | EXPECT_EQ(found->location.line, 13U) | EXPECT_EQ(found->entity_identity, ""Transient Load"") | EXPECT_NE(found->message.find(""stage=initial""), std::string::npos) | EXPECT_NE(found->message.find(""increment=0""), std::string::npos) | EXPECT_NE(found->message.find(""time=0""), std::string::npos)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(log.Open(path).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics().front().code, ""injected-tangent-backend"") | ASSERT_NE(found, result.GetStatus().Diagnostics().end()) | EXPECT_EQ(found->location.file, std::filesystem::path{""dynamic-state.inp""}) | EXPECT_EQ(found->location.line, 13U) | EXPECT_EQ(found->entity_identity, ""Transient Load"") | EXPECT_NE(found->message.find(""stage=initial""), std::string::npos) | EXPECT_NE(found->message.find(""increment=0""), std::string::npos) | EXPECT_NE(found->message.find(""time=0""), std::string::npos)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.UniformTranslationHasNoShellStrainAndIsDeterministicAcrossPartitions HhtDynamicProcedure.UniformTranslationHasNoShellStrainAndIsDeterministicAcrossPartitions; assertion 15개 tests/unit/analysis/hht_dynamic_procedure_test.cpp HhtDynamicProcedure.UniformTranslationHasNoShellStrainAndIsDeterministicAcrossPartitions 유지 원문 검사 body 및 assertion 동일. b0478c8b2a601459afa174f5b801ee5cfd08d11a8a971e979ef7ba8cde76dc28 b0478c8b2a601459afa174f5b801ee5cfd08d11a8a971e979ef7ba8cde76dc28 ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(partitioned.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(finite_rotation.HasValue()) | ASSERT_TRUE(rotated_finite_rotation.HasValue()) | ASSERT_EQ(frames.size(), 3U) | EXPECT_LE(std::abs(frame.physical_strain_energy) / kReferenceEnergy, 1e-10) | EXPECT_LE(std::abs(frame.drilling_energy) / kReferenceEnergy, 1e-10) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node] - frame.generalized_coordinates[0U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + 1U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + 2U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + rotation]), 1e-12) | EXPECT_GT(frames.back().generalized_coordinates[0U], 0.0) | EXPECT_GT(maximum_rotation, 0.0) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(partitioned.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(finite_rotation.HasValue()) | ASSERT_TRUE(rotated_finite_rotation.HasValue()) | ASSERT_EQ(frames.size(), 3U) | EXPECT_LE(std::abs(frame.physical_strain_energy) / kReferenceEnergy, 1e-10) | EXPECT_LE(std::abs(frame.drilling_energy) / kReferenceEnergy, 1e-10) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node] - frame.generalized_coordinates[0U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + 1U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + 2U]) / kCoordinateScale, 1e-12) | EXPECT_LE(std::abs(frame.generalized_coordinates[6U * node + rotation]), 1e-12) | EXPECT_GT(frames.back().generalized_coordinates[0U], 0.0) | EXPECT_GT(maximum_rotation, 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_dynamic_procedure_test.cpp support@1-330 helper/oracle/fixture/include/static assertion 구간: InjectedTangentFailure, FailingTangent, FailureText, for, MakeRigidTranslationDefinition, RotateGlobal, MakeRotatedRigidTranslationDefinition, MakeFiniteRotationDefinition, MakeRotatedFiniteRotationDefinition, RigidTranslationRun, ExpectSameSourceIds, RunRigidTranslation, ExpectSameDynamicHistory, ExpectRotatedDofVector, ExpectCovariantDynamicHistory, MakeDefinition, if tests/unit/analysis/hht_dynamic_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 678fa0e4df0f56e62f9a30783ffbf7e564661fc06a0fbc9bbf69bd6e25c8123c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_dynamic_procedure_test.cpp support@570-571 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_dynamic_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_energy_verification_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/analysis/hht_energy_verification_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9d0c672737a65b301b38b949aef26d0099451719a7fd98ffa7c5d1171e97a885 9d0c672737a65b301b38b949aef26d0099451719a7fd98ffa7c5d1171e97a885 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07AlphaZeroConservesLinearOscillatorEnergy HhtEnergyVerification.C07AlphaZeroConservesLinearOscillatorEnergy; assertion 2개 tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07AlphaZeroConservesLinearOscillatorEnergy 유지 원문 검사 body 및 assertion 동일. c212f946ce9196b35236724d344066dbfcb8d3df5910b001c265f1f5e8ef53b3 c212f946ce9196b35236724d344066dbfcb8d3df5910b001c265f1f5e8ef53b3 ASSERT_TRUE(parameters.HasValue()) | EXPECT_LE(maximum, 1.0e-10) ASSERT_TRUE(parameters.HasValue()) | EXPECT_LE(maximum, 1.0e-10) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07DefaultAlphaReportsEnergyAndPhaseChanges HhtEnergyVerification.C07DefaultAlphaReportsEnergyAndPhaseChanges; assertion 3개 tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07DefaultAlphaReportsEnergyAndPhaseChanges 유지 원문 검사 body 및 assertion 동일. 683b5ca010185dc76cd3ecf37078c479637fd0a00c07ed5a1a80a5a116c14933 683b5ca010185dc76cd3ecf37078c479637fd0a00c07ed5a1a80a5a116c14933 ASSERT_TRUE(parameters.HasValue()) | EXPECT_TRUE(std::isfinite(energy)) | EXPECT_LT(energy, 2.0) ASSERT_TRUE(parameters.HasValue()) | EXPECT_TRUE(std::isfinite(energy)) | EXPECT_LT(energy, 2.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07IndependentAmplificationHasThePrescribedSpectrum HhtEnergyVerification.C07IndependentAmplificationHasThePrescribedSpectrum; assertion 4개 tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07IndependentAmplificationHasThePrescribedSpectrum 유지 원문 검사 body 및 assertion 동일. a96cd1993dfff2d5f5c40fdaf6139af7e5f6aa82dfc5cc784de896f1df437bca a96cd1993dfff2d5f5c40fdaf6139af7e5f6aa82dfc5cc784de896f1df437bca EXPECT_NEAR(std::abs(roots[1]), 1.0, 1.0e-10) | EXPECT_NEAR(std::abs(roots[2]), 1.0, 1.0e-10) | EXPECT_LE(radius, 1.0 + 1.0e-10) | EXPECT_LT(error, previous_limit_error) EXPECT_NEAR(std::abs(roots[1]), 1.0, 1.0e-10) | EXPECT_NEAR(std::abs(roots[2]), 1.0, 1.0e-10) | EXPECT_LE(radius, 1.0 + 1.0e-10) | EXPECT_LT(error, previous_limit_error) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07SupportReactionUsesPhysicalAccelerationAndCoupling HhtEnergyVerification.C07SupportReactionUsesPhysicalAccelerationAndCoupling; assertion 4개 tests/unit/analysis/hht_energy_verification_test.cpp HhtEnergyVerification.C07SupportReactionUsesPhysicalAccelerationAndCoupling 유지 원문 검사 body 및 assertion 동일. 3462a480370c4e1ef1adba61c8cecbd490c5a188b1c0f71c8f381a648f7717f7 3462a480370c4e1ef1adba61c8cecbd490c5a188b1c0f71c8f381a648f7717f7 ASSERT_TRUE(parameters.HasValue()) | EXPECT_EQ(reaction, 0.5 * state.a[0]) | EXPECT_LE(std::abs(balance) / scale, 1.0e-10) | EXPECT_GT(mutation_difference, 1.0e-6) ASSERT_TRUE(parameters.HasValue()) | EXPECT_EQ(reaction, 0.5 * state.a[0]) | EXPECT_LE(std::abs(balance) / scale, 1.0e-10) | EXPECT_GT(mutation_difference, 1.0e-6) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_energy_verification_test.cpp support@1-119 helper/oracle/fixture/include/static assertion 구간: Oscillator, Advance, Amplification, Eigenvalues, if, for tests/unit/analysis/hht_energy_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 85df404875102d22dc4c86031757dd24174a652f4dc39cf7ce0f561c59a977b4 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_energy_verification_test.cpp support@222-223 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_energy_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 19개 tests/unit/analysis/hht_reduced_shell_test.cpp file 이관 Dev trial cache·context 변경·copy/move 소유권·실패 우선순위·left-association 검사를 복원한다. 같은 trial의 독립 local 평가만 ShellTrialElement::EvaluateTrial 호출로 이관한다. d4ad83f9f7c7f4ba18942abb13ef3838edb8e39eea2d32a5cc2b8870a85f81d5 243fb1edd3dfd485e824cf11291087e0e6daf469a9c8d0f2ed04ce893e385129 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.SelectsCanonicalPivotAndLiftsCoordinates HhtReducedChart.SelectsCanonicalPivotAndLiftsCoordinates; assertion 7개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.SelectsCanonicalPivotAndLiftsCoordinates 유지 원문 검사 body 및 assertion 동일. 9be1e26c0f12a99552fa2c7e2a706eb69bf9829d16cea9fda53f6d60ed62dd86 9be1e26c0f12a99552fa2c7e2a706eb69bf9829d16cea9fda53f6d60ed62dd86 ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(chart.Value().null_nodes.size(), 4U) | EXPECT_EQ(chart.Value().pivot_components[node], 2U) | EXPECT_EQ(chart.Value().z_dofs[node], 6U * node + 5U) | ASSERT_TRUE(full.HasValue()) | EXPECT_DOUBLE_EQ(full.Value()[chart.Value().p_dofs[i]], p[i]) | EXPECT_DOUBLE_EQ(full.Value()[chart.Value().z_dofs[i]], z[i]) ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(chart.Value().null_nodes.size(), 4U) | EXPECT_EQ(chart.Value().pivot_components[node], 2U) | EXPECT_EQ(chart.Value().z_dofs[node], 6U * node + 5U) | ASSERT_TRUE(full.HasValue()) | EXPECT_DOUBLE_EQ(full.Value()[chart.Value().p_dofs[i]], p[i]) | EXPECT_DOUBLE_EQ(full.Value()[chart.Value().z_dofs[i]], z[i]) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.RetainsNodeWhenItsPartialBoundaryCutsTheNull HhtReducedChart.RetainsNodeWhenItsPartialBoundaryCutsTheNull; assertion 9개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.RetainsNodeWhenItsPartialBoundaryCutsTheNull 유지 원문 검사 body 및 assertion 동일. 6233920d1de0cb982482e84f4acac2853c5d4b5f8b76431c4e52cc215134cc89 6233920d1de0cb982482e84f4acac2853c5d4b5f8b76431c4e52cc215134cc89 ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(chart.Value().null_nodes.size(), 3U) | EXPECT_TRUE(std::find(chart.Value().null_nodes.begin(), chart.Value().null_nodes.end(), 0U) == chart.Value().null_nodes.end()) | EXPECT_TRUE(std::find(chart.Value().p_dofs.begin(), chart.Value().p_dofs.end(), 3U) != chart.Value().p_dofs.end()) | EXPECT_TRUE(std::find(chart.Value().p_dofs.begin(), chart.Value().p_dofs.end(), 4U) != chart.Value().p_dofs.end()) | ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(operators.HasValue()) | EXPECT_EQ(operators.Value().rows.size(), 3U) ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(chart.Value().null_nodes.size(), 3U) | EXPECT_TRUE(std::find(chart.Value().null_nodes.begin(), chart.Value().null_nodes.end(), 0U) == chart.Value().null_nodes.end()) | EXPECT_TRUE(std::find(chart.Value().p_dofs.begin(), chart.Value().p_dofs.end(), 3U) != chart.Value().p_dofs.end()) | EXPECT_TRUE(std::find(chart.Value().p_dofs.begin(), chart.Value().p_dofs.end(), 4U) != chart.Value().p_dofs.end()) | ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(operators.HasValue()) | EXPECT_EQ(operators.Value().rows.size(), 3U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.UsesActualFiniteInitialNullAndPreservesTransposeActions HhtReducedChart.UsesActualFiniteInitialNullAndPreservesTransposeActions; assertion 13개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.UsesActualFiniteInitialNullAndPreservesTransposeActions 유지 원문 검사 body 및 assertion 동일. 3a0cce3ce539ccc6181768741375eed175e179b4e875a97b2369e6bd7f6a4c2f 3a0cce3ce539ccc6181768741375eed175e179b4e875a97b2369e6bd7f6a4c2f ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(built.HasValue()) | EXPECT_EQ(chart.minimum_axes.front(), axis) | ASSERT_EQ(chart.z_columns.front().support.size(), 3U) | EXPECT_NEAR(column.support[i].value, raw[i] / norm, 1e-15) | EXPECT_TRUE(std::isfinite(column.support_radii[i])) | EXPECT_GE(column.support_radii[i], 0.0) | EXPECT_GT(std::abs(chart.z_columns.front().support[0U].value), 0.01) | ASSERT_TRUE(full.HasValue()) | ASSERT_TRUE(projected_p.HasValue()) | ASSERT_TRUE(projected_z.HasValue()) | EXPECT_NEAR(projected_p.Value()[i], p[i], 1e-15) | EXPECT_NEAR(projected_z.Value()[i], z[i], 1e-15) ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(built.HasValue()) | EXPECT_EQ(chart.minimum_axes.front(), axis) | ASSERT_EQ(chart.z_columns.front().support.size(), 3U) | EXPECT_NEAR(column.support[i].value, raw[i] / norm, 1e-15) | EXPECT_TRUE(std::isfinite(column.support_radii[i])) | EXPECT_GE(column.support_radii[i], 0.0) | EXPECT_GT(std::abs(chart.z_columns.front().support[0U].value), 0.01) | ASSERT_TRUE(full.HasValue()) | ASSERT_TRUE(projected_p.HasValue()) | ASSERT_TRUE(projected_z.HasValue()) | EXPECT_NEAR(projected_p.Value()[i], p[i], 1e-15) | EXPECT_NEAR(projected_z.Value()[i], z[i], 1e-15) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.MinimumAxisTieAndPartialBoundaryRetainExactZeros HhtReducedChart.MinimumAxisTieAndPartialBoundaryRetainExactZeros; assertion 5개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.MinimumAxisTieAndPartialBoundaryRetainExactZeros 유지 원문 검사 body 및 assertion 동일. 199055f0e67f5c20880dc18741e1294140016db419e6a95628c00e1cb1277f8b 199055f0e67f5c20880dc18741e1294140016db419e6a95628c00e1cb1277f8b ASSERT_TRUE(chart.HasValue()) | EXPECT_EQ(axis, 0U) | ASSERT_TRUE(full.HasValue()) | EXPECT_DOUBLE_EQ(full.Value()[5U], 0.0) | EXPECT_FALSE(column.fixed_plane) ASSERT_TRUE(chart.HasValue()) | EXPECT_EQ(axis, 0U) | ASSERT_TRUE(full.HasValue()) | EXPECT_DOUBLE_EQ(full.Value()[5U], 0.0) | EXPECT_FALSE(column.fixed_plane) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.ProperRotationRelatesRetainedPlanesByConstantOrthogonalMap HhtReducedChart.ProperRotationRelatesRetainedPlanesByConstantOrthogonalMap; assertion 8개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.ProperRotationRelatesRetainedPlanesByConstantOrthogonalMap 유지 원문 검사 body 및 assertion 동일. 0a3d19b8bfc9be9ba9e6f6d45bf817a8cde05698c75a9ae3355fb4c74ac52e62 0a3d19b8bfc9be9ba9e6f6d45bf817a8cde05698c75a9ae3355fb4c74ac52e62 ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(transformed.HasValue()) | ASSERT_TRUE(source.HasValue()) | ASSERT_TRUE(target.HasValue()) | ASSERT_EQ(si, 2U) | ASSERT_EQ(ti, 2U) | EXPECT_NEAR(target_plane[0U][k] * t[0U][j] + target_plane[1U][k] * t[1U][j], rotated[k], 1e-14) | EXPECT_NEAR(t[0U][i] * t[0U][j] + t[1U][i] * t[1U][j], i == j ? 1.0 : 0.0, 1e-14) ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(transformed.HasValue()) | ASSERT_TRUE(source.HasValue()) | ASSERT_TRUE(target.HasValue()) | ASSERT_EQ(si, 2U) | ASSERT_EQ(ti, 2U) | EXPECT_NEAR(target_plane[0U][k] * t[0U][j] + target_plane[1U][k] * t[1U][j], rotated[k], 1e-14) | EXPECT_NEAR(t[0U][i] * t[0U][j] + t[1U][i] * t[1U][j], i == j ? 1.0 : 0.0, 1e-14) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.RejectsSubnormalNormWithoutAValidCoefficientCertificate HhtReducedChart.RejectsSubnormalNormWithoutAValidCoefficientCertificate; assertion 1개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.RejectsSubnormalNormWithoutAValidCoefficientCertificate 유지 원문 검사 body 및 assertion 동일. c8389950eef75e9147da8658be67e71bb4c52c46db7991d0488a4937ac82c439 c8389950eef75e9147da8658be67e71bb4c52c46db7991d0488a4937ac82c439 EXPECT_FALSE(fesa::hht_reduced_internal::BuildFixedChart(fixture.dofs, rotations).HasValue()) EXPECT_FALSE(fesa::hht_reduced_internal::BuildFixedChart(fixture.dofs, rotations).HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.NativeCoefficientRadiiExportFixedInputReplay HhtReducedChart.NativeCoefficientRadiiExportFixedInputReplay; assertion 7개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.NativeCoefficientRadiiExportFixedInputReplay 유지 원문 검사 body 및 assertion 동일. 9c220fc2bc4ffd53650d9c3af693560d6beeaf06b5631d766ae082ff5ec3e8fb 9c220fc2bc4ffd53650d9c3af693560d6beeaf06b5631d766ae082ff5ec3e8fb ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(column, 2U) | ASSERT_EQ(p->support.size(), 3U) | EXPECT_TRUE(std::isfinite(radius)) | EXPECT_GE(radius, 0.0) | EXPECT_FALSE(fesa::hht_reduced_internal::BuildFixedChart(fixture.dofs, invalid).HasValue()) ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_EQ(column, 2U) | ASSERT_EQ(p->support.size(), 3U) | EXPECT_TRUE(std::isfinite(radius)) | EXPECT_GE(radius, 0.0) | EXPECT_FALSE(fesa::hht_reduced_internal::BuildFixedChart(fixture.dofs, invalid).HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.InvertibleGraphDoesNotCertifySelectorTransversality HhtReducedChart.InvertibleGraphDoesNotCertifySelectorTransversality; assertion 6개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChart.InvertibleGraphDoesNotCertifySelectorTransversality 유지 원문 검사 body 및 assertion 동일. 23c5ac02ecae6f1ee4b38528c74d1fe93200138fd51a2ab0d23b694c7e04abbe 23c5ac02ecae6f1ee4b38528c74d1fe93200138fd51a2ab0d23b694c7e04abbe ASSERT_TRUE(chart.HasValue()) | EXPECT_TRUE(fesa::hht_reduced_internal::SolveGraphSystem( fesa::hht_reduced_internal::GraphJacobian(operators, chart.Value()), fesa::Vector(4U, 1.0), solver).HasValue()) | ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::CheckSelectorTransversality( assembly, chart.Value(), solver).HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::CheckSelectorTransversality( assembly, chart.Value(), solver).HasValue()) ASSERT_TRUE(chart.HasValue()) | EXPECT_TRUE(fesa::hht_reduced_internal::SolveGraphSystem( fesa::hht_reduced_internal::GraphJacobian(operators, chart.Value()), fesa::Vector(4U, 1.0), solver).HasValue()) | ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::CheckSelectorTransversality( assembly, chart.Value(), solver).HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::CheckSelectorTransversality( assembly, chart.Value(), solver).HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.ScatterShellDerivativesByConstraintRow HhtReducedOperators.ScatterShellDerivativesByConstraintRow; assertion 15개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedOperators.ScatterShellDerivativesByConstraintRow 유지 원문 검사 body 및 assertion 동일. b57a6ce0864234af355f619fb8be4a19898393df437f5b314c8f1e2ee79dc0bd b57a6ce0864234af355f619fb8be4a19898393df437f5b314c8f1e2ee79dc0bd ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(operators.HasValue()) | ASSERT_EQ(operators.Value().rows.size(), 4U) | ASSERT_TRUE(graph_condition.HasValue()) | EXPECT_GE(graph_condition.Value(), std::ldexp(1.0, -32)) | EXPECT_DOUBLE_EQ(row.value, 0.0) | EXPECT_DOUBLE_EQ(row.value_scale, expected_scale) | EXPECT_FALSE(row.gradient.empty()) | EXPECT_FALSE(row.hessian.empty()) | EXPECT_LT(row.gradient.size(), fixture.dofs.FullDofCount()) | EXPECT_LT(entry.row, fixture.dofs.FullDofCount()) | EXPECT_LT(entry.column, fixture.dofs.FullDofCount()) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(operators.HasValue()) | ASSERT_EQ(operators.Value().rows.size(), 4U) | ASSERT_TRUE(graph_condition.HasValue()) | EXPECT_GE(graph_condition.Value(), std::ldexp(1.0, -32)) | EXPECT_DOUBLE_EQ(row.value, 0.0) | EXPECT_DOUBLE_EQ(row.value_scale, expected_scale) | EXPECT_FALSE(row.gradient.empty()) | EXPECT_FALSE(row.hessian.empty()) | EXPECT_LT(row.gradient.size(), fixture.dofs.FullDofCount()) | EXPECT_LT(entry.row, fixture.dofs.FullDofCount()) | EXPECT_LT(entry.column, fixture.dofs.FullDofCount()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.RejectsNonfiniteGraphResidualBeforeAcceptance HhtReducedEmbedding.RejectsNonfiniteGraphResidualBeforeAcceptance; assertion 4개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.RejectsNonfiniteGraphResidualBeforeAcceptance 유지 원문 검사 body 및 assertion 동일. aba990268187a0cee9fe762ab5acefe258144c3a8bcaf27245174b8cc87d6ac6 aba990268187a0cee9fe762ab5acefe258144c3a8bcaf27245174b8cc87d6ac6 "ASSERT_TRUE(chart.HasValue()) | ASSERT_FALSE(root.HasValue()) | ASSERT_FALSE(root.GetStatus().Diagnostics().empty()) | EXPECT_EQ(root.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" "ASSERT_TRUE(chart.HasValue()) | ASSERT_FALSE(root.HasValue()) | ASSERT_FALSE(root.GetStatus().Diagnostics().empty()) | EXPECT_EQ(root.GetStatus().Diagnostics().front().code, ""dynamic-invalid-state"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReturnsExactTwoCycleForFullHiddenCertification HhtReducedEmbedding.ReturnsExactTwoCycleForFullHiddenCertification; assertion 4개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReturnsExactTwoCycleForFullHiddenCertification 유지 원문 검사 body 및 assertion 동일. 1c20656897f7812ce5cf1b2993fc07ba03b3b4c04bcc5d9b8111bffb775607ab 1c20656897f7812ce5cf1b2993fc07ba03b3b4c04bcc5d9b8111bffb775607ab ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], -1.0) | EXPECT_DOUBLE_EQ(root.Value().q[0U], -1.0) | EXPECT_DOUBLE_EQ(root.Value().operators.rows[0U].value, -2.0) ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], -1.0) | EXPECT_DOUBLE_EQ(root.Value().q[0U], -1.0) | EXPECT_DOUBLE_EQ(root.Value().operators.rows[0U].value, -2.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReturnsEvaluatedTrialWhenLiftAbsorbsAChangedPrivateRoot HhtReducedEmbedding.ReturnsEvaluatedTrialWhenLiftAbsorbsAChangedPrivateRoot; assertion 12개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReturnsEvaluatedTrialWhenLiftAbsorbsAChangedPrivateRoot 유지 원문 검사 body 및 assertion 동일. 72f50cedc425b3beda1ad7a34363c76203e2792acbf3eff5bfdc4c3dee43c148 72f50cedc425b3beda1ad7a34363c76203e2792acbf3eff5bfdc4c3dee43c148 ASSERT_TRUE(built.HasValue()) | ASSERT_EQ(angular, 2U) | ASSERT_TRUE(original.HasValue()) | EXPECT_NE(changed[0U], seed[0U]) | ASSERT_TRUE(absorbed.HasValue()) | EXPECT_EQ(original.Value()[i], absorbed.Value()[i]) | ASSERT_TRUE(root.HasValue()) | EXPECT_EQ(root.Value().z[0U], seed[0U]) | EXPECT_NE(root.Value().operators.rows[0U].value, 0.0) | EXPECT_GT(root.Value().graph_residual_relative, 1e-10) | EXPECT_EQ(root.Value().graph_iteration_count, 0U) | EXPECT_EQ(root.Value().q[i], original.Value()[i]) ASSERT_TRUE(built.HasValue()) | ASSERT_EQ(angular, 2U) | ASSERT_TRUE(original.HasValue()) | EXPECT_NE(changed[0U], seed[0U]) | ASSERT_TRUE(absorbed.HasValue()) | EXPECT_EQ(original.Value()[i], absorbed.Value()[i]) | ASSERT_TRUE(root.HasValue()) | EXPECT_EQ(root.Value().z[0U], seed[0U]) | EXPECT_NE(root.Value().operators.rows[0U].value, 0.0) | EXPECT_GT(root.Value().graph_residual_relative, 1e-10) | EXPECT_EQ(root.Value().graph_iteration_count, 0U) | EXPECT_EQ(root.Value().q[i], original.Value()[i]) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.StopsAtExistingScaledPositionCertificate HhtReducedEmbedding.StopsAtExistingScaledPositionCertificate; assertion 5개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.StopsAtExistingScaledPositionCertificate 유지 원문 검사 body 및 assertion 동일. 40399a56a3e5ee5dd124159d271c7c833a7fb9bf4de311a17d44b0752fe90716 40399a56a3e5ee5dd124159d271c7c833a7fb9bf4de311a17d44b0752fe90716 ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], 0.0) | EXPECT_DOUBLE_EQ(root.Value().graph_residual_infinity, 5.0e-11) | EXPECT_DOUBLE_EQ(root.Value().graph_residual_relative, 5.0e-11) | EXPECT_DOUBLE_EQ(root.Value().graph_correction_infinity, 0.0) ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], 0.0) | EXPECT_DOUBLE_EQ(root.Value().graph_residual_infinity, 5.0e-11) | EXPECT_DOUBLE_EQ(root.Value().graph_residual_relative, 5.0e-11) | EXPECT_DOUBLE_EQ(root.Value().graph_correction_infinity, 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.RequiresExactZeroWhenPositionScaleIsZero HhtReducedEmbedding.RequiresExactZeroWhenPositionScaleIsZero; assertion 3개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.RequiresExactZeroWhenPositionScaleIsZero 유지 원문 검사 body 및 assertion 동일. 781274b693d154f790a5b856ea36ce7faf58048779d75a99636edfed40153d2d 781274b693d154f790a5b856ea36ce7faf58048779d75a99636edfed40153d2d ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], 0.0) | EXPECT_DOUBLE_EQ(root.Value().operators.rows[0U].value, 0.0) ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().z[0U], 0.0) | EXPECT_DOUBLE_EQ(root.Value().operators.rows[0U].value, 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReconstructsRatesAcrossSelectedPartitionCancellation HhtReducedEmbedding.ReconstructsRatesAcrossSelectedPartitionCancellation; assertion 11개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReconstructsRatesAcrossSelectedPartitionCancellation 유지 원문 검사 body 및 assertion 동일. 99f396cb603db35827fd7516d26285d29dfd1fc5149f7f1ae100caf12b3c027f 99f396cb603db35827fd7516d26285d29dfd1fc5149f7f1ae100caf12b3c027f EXPECT_DOUBLE_EQ(plain_velocity_rhs, 0.0) | EXPECT_DOUBLE_EQ(plain_acceleration_rhs, 0.0) | ASSERT_TRUE(rates.HasValue()) | EXPECT_DOUBLE_EQ(rates.Value().velocity[0U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().velocity[1U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().velocity[2U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[0U], 0.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[1U], 0.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[2U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().z_velocity[0U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().z_acceleration[0U], 1.0) EXPECT_DOUBLE_EQ(plain_velocity_rhs, 0.0) | EXPECT_DOUBLE_EQ(plain_acceleration_rhs, 0.0) | ASSERT_TRUE(rates.HasValue()) | EXPECT_DOUBLE_EQ(rates.Value().velocity[0U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().velocity[1U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().velocity[2U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[0U], 0.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[1U], 0.0) | EXPECT_DOUBLE_EQ(rates.Value().acceleration[2U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().z_velocity[0U], 1.0) | EXPECT_DOUBLE_EQ(rates.Value().z_acceleration[0U], 1.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReconstructsActualShellRatesWithMixedTimeLoad HhtReducedEmbedding.ReconstructsActualShellRatesWithMixedTimeLoad; assertion 53개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedEmbedding.ReconstructsActualShellRatesWithMixedTimeLoad 유지 원문 검사 body 및 assertion 동일. d7e9c115b48ed36f68722faa84b348585d6fd80567b49019bbac78cde25cd8b9 d7e9c115b48ed36f68722faa84b348585d6fd80567b49019bbac78cde25cd8b9 ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(initial.HasValue()) | ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().q[2U], 0.01) | ASSERT_TRUE(rates.HasValue()) | ASSERT_TRUE(actual.HasValue()) | ASSERT_TRUE(operators.HasValue()) | EXPECT_NEAR(hidden[0U], 0.0, 1.0e-9) | EXPECT_NEAR(hidden[1U], 0.0, 1.0e-9) | EXPECT_NEAR(hidden[2U], 0.0, 1.0e-8) | EXPECT_TRUE(saw_time_term) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(reference_length.HasValue()) | ASSERT_TRUE(system.HasValue()) | ASSERT_EQ(system.Value().physical_count, chart.Value().p_dofs.size()) | ASSERT_EQ(system.Value().algebraic_count, chart.Value().z_dofs.size()) | ASSERT_TRUE(mapped.HasValue()) | EXPECT_DOUBLE_EQ(mapped.Value().coordinate[0U], 0.004) | EXPECT_DOUBLE_EQ(mapped.Value().velocity[0U], cv * 0.004) | EXPECT_DOUBLE_EQ(mapped.Value().acceleration[0U], ca * 0.004) | EXPECT_NEAR(mapped.Value().coordinate[entry.dof], -0.003 * entry.value, 1e-17) | EXPECT_NEAR(mapped.Value().velocity[entry.dof], 0.002 * entry.value, 1e-17) | EXPECT_NEAR(mapped.Value().acceleration[entry.dof], -0.001 * entry.value, 1e-17) | ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(projected_base.HasValue()) | EXPECT_NEAR(base.Value()[i], system.Value().row_scale[i] * projected_base.Value()[i], 1e-13 * system.Value().row_scale[i] * uncancelled) | ASSERT_GT(direction_norm, 0.0) | ASSERT_TRUE(mapped_direction.HasValue()) | ASSERT_GT(tangent_frobenius, 0.0) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_EQ(consecutive, expected_pass) | ASSERT_TRUE(no_force_actual.HasValue()) | ASSERT_TRUE(no_force_operators.HasValue()) | ASSERT_EQ(omitted_external_gradient.rows.size(), no_force_operators.Value().rows.size()) | ASSERT_EQ(omitted.size(), no_force.size()) | ASSERT_EQ(omitted[entry].dof, no_force[entry].dof) | ASSERT_TRUE(saw_external_position_gradient) | ASSERT_TRUE(omitted_external_gradient_system.HasValue()) | ASSERT_TRUE(ha_actual.HasValue()) | ASSERT_TRUE(ha_operators.HasValue()) | ASSERT_TRUE(ha_system.HasValue()) | ASSERT_TRUE(omitted_ha_system.HasValue()) | ASSERT_TRUE(hw_actual.HasValue()) | ASSERT_TRUE(hw_operators.HasValue()) | ASSERT_TRUE(hw_system.HasValue()) | ASSERT_TRUE(omitted_hw_system.HasValue()) | ASSERT_TRUE(third_system.HasValue()) | ASSERT_TRUE(mixed_time_system.HasValue()) | ASSERT_TRUE(omitted_second_time_rates.HasValue()) | EXPECT_GT(omitted_second_time_hidden, 1.0e-8) ASSERT_TRUE(shells.HasValue()) | ASSERT_TRUE(initial.HasValue()) | ASSERT_TRUE(finite.HasValue()) | ASSERT_TRUE(chart.HasValue()) | ASSERT_TRUE(root.HasValue()) | EXPECT_DOUBLE_EQ(root.Value().q[2U], 0.01) | ASSERT_TRUE(rates.HasValue()) | ASSERT_TRUE(actual.HasValue()) | ASSERT_TRUE(operators.HasValue()) | EXPECT_NEAR(hidden[0U], 0.0, 1.0e-9) | EXPECT_NEAR(hidden[1U], 0.0, 1.0e-9) | EXPECT_NEAR(hidden[2U], 0.0, 1.0e-8) | EXPECT_TRUE(saw_time_term) | ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(reference_length.HasValue()) | ASSERT_TRUE(system.HasValue()) | ASSERT_EQ(system.Value().physical_count, chart.Value().p_dofs.size()) | ASSERT_EQ(system.Value().algebraic_count, chart.Value().z_dofs.size()) | ASSERT_TRUE(mapped.HasValue()) | EXPECT_DOUBLE_EQ(mapped.Value().coordinate[0U], 0.004) | EXPECT_DOUBLE_EQ(mapped.Value().velocity[0U], cv * 0.004) | EXPECT_DOUBLE_EQ(mapped.Value().acceleration[0U], ca * 0.004) | EXPECT_NEAR(mapped.Value().coordinate[entry.dof], -0.003 * entry.value, 1e-17) | EXPECT_NEAR(mapped.Value().velocity[entry.dof], 0.002 * entry.value, 1e-17) | EXPECT_NEAR(mapped.Value().acceleration[entry.dof], -0.001 * entry.value, 1e-17) | ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(projected_base.HasValue()) | EXPECT_NEAR(base.Value()[i], system.Value().row_scale[i] * projected_base.Value()[i], 1e-13 * system.Value().row_scale[i] * uncancelled) | ASSERT_GT(direction_norm, 0.0) | ASSERT_TRUE(mapped_direction.HasValue()) | ASSERT_GT(tangent_frobenius, 0.0) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_EQ(consecutive, expected_pass) | ASSERT_TRUE(no_force_actual.HasValue()) | ASSERT_TRUE(no_force_operators.HasValue()) | ASSERT_EQ(omitted_external_gradient.rows.size(), no_force_operators.Value().rows.size()) | ASSERT_EQ(omitted.size(), no_force.size()) | ASSERT_EQ(omitted[entry].dof, no_force[entry].dof) | ASSERT_TRUE(saw_external_position_gradient) | ASSERT_TRUE(omitted_external_gradient_system.HasValue()) | ASSERT_TRUE(ha_actual.HasValue()) | ASSERT_TRUE(ha_operators.HasValue()) | ASSERT_TRUE(ha_system.HasValue()) | ASSERT_TRUE(omitted_ha_system.HasValue()) | ASSERT_TRUE(hw_actual.HasValue()) | ASSERT_TRUE(hw_operators.HasValue()) | ASSERT_TRUE(hw_system.HasValue()) | ASSERT_TRUE(omitted_hw_system.HasValue()) | ASSERT_TRUE(third_system.HasValue()) | ASSERT_TRUE(mixed_time_system.HasValue()) | ASSERT_TRUE(omitted_second_time_rates.HasValue()) | EXPECT_GT(omitted_second_time_hidden, 1.0e-8) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RequiresEveryTranslationGateAndThaws HhtReducedChannelNewton.RequiresEveryTranslationGateAndThaws; assertion 10개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RequiresEveryTranslationGateAndThaws 유지 원문 검사 body 및 assertion 동일. 635a7b5bdebdb547e60223694971085c31ae50c328a17ee943f24d0f968e86b3 635a7b5bdebdb547e60223694971085c31ae50c328a17ee943f24d0f968e86b3 EXPECT_TRUE(refine({1e-10, 2e-10}, zero)) | EXPECT_FALSE(refine({2e-10, 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, 1e-10}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero, false)) | EXPECT_FALSE(refine({0.0, 2e-10}, correction)) | EXPECT_FALSE(refine({0.0, 2e-10}, correction)) | EXPECT_FALSE(refine({std::numeric_limits::infinity(), 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, std::numeric_limits::quiet_NaN()}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero)) EXPECT_TRUE(refine({1e-10, 2e-10}, zero)) | EXPECT_FALSE(refine({2e-10, 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, 1e-10}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero, false)) | EXPECT_FALSE(refine({0.0, 2e-10}, correction)) | EXPECT_FALSE(refine({0.0, 2e-10}, correction)) | EXPECT_FALSE(refine({std::numeric_limits::infinity(), 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, std::numeric_limits::quiet_NaN()}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero)) | EXPECT_FALSE(refine({0.0, 2e-10}, zero)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RetainsAllAuxiliaryBlocksAndFullModelDefect HhtReducedChannelNewton.RetainsAllAuxiliaryBlocksAndFullModelDefect; assertion 22개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RetainsAllAuxiliaryBlocksAndFullModelDefect 유지 원문 검사 body 및 assertion 동일. e1aa1e05ebaeb7f832033a6db8283163510c5d3266ee5a5863a445694b12e3d7 e1aa1e05ebaeb7f832033a6db8283163510c5d3266ee5a5863a445694b12e3d7 ASSERT_TRUE(tangent.HasValue()) | ASSERT_TRUE(selected.HasValue()) | EXPECT_EQ(selected.Value().full_indices, (std::vector{1U, 2U, 3U, 4U, 5U})) | ASSERT_TRUE(solver.FactorizeFresh(selected.Value().tangent).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(selected.Value().rhs, step).IsOk()) | EXPECT_TRUE(fesa::hht_internal::CheckLinearSolve( selected.Value().tangent, selected.Value().rhs, step).IsOk()) | ASSERT_TRUE(embedded.HasValue()) | EXPECT_DOUBLE_EQ(embedded.Value()[0U], 0.0) | EXPECT_NEAR(embedded.Value()[i], expected[i], 1e-14) | EXPECT_FALSE(fesa::hht_internal::CheckLinearSolve( full.tangent, full.rhs, embedded.Value()).IsOk()) | ASSERT_TRUE(mapped.HasValue()) | EXPECT_DOUBLE_EQ(mapped.Value().coordinate[0U], 0.0) | EXPECT_DOUBLE_EQ(mapped.Value().velocity[0U], 0.0) | EXPECT_DOUBLE_EQ(mapped.Value().acceleration[0U], 0.0) | EXPECT_NEAR(mapped.Value().coordinate[5U], 0.4, 1e-14) | EXPECT_NEAR(mapped.Value().velocity[5U], 0.2, 1e-14) | EXPECT_NEAR(mapped.Value().acceleration[5U], -0.3, 1e-14) | ASSERT_TRUE(thawed.HasValue()) | EXPECT_EQ(thawed.Value().full_indices.size(), 6U) | EXPECT_DOUBLE_EQ(thawed.Value().rhs[0U], rhs[0U]) | EXPECT_FALSE(fesa::hht_reduced_internal::SelectAugmentedSolve( invalid, chart, true).HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::EmbedAugmentedSolution( selected.Value(), step, 6U).HasValue()) ASSERT_TRUE(tangent.HasValue()) | ASSERT_TRUE(selected.HasValue()) | EXPECT_EQ(selected.Value().full_indices, (std::vector{1U, 2U, 3U, 4U, 5U})) | ASSERT_TRUE(solver.FactorizeFresh(selected.Value().tangent).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(selected.Value().rhs, step).IsOk()) | EXPECT_TRUE(fesa::hht_internal::CheckLinearSolve( selected.Value().tangent, selected.Value().rhs, step).IsOk()) | ASSERT_TRUE(embedded.HasValue()) | EXPECT_DOUBLE_EQ(embedded.Value()[0U], 0.0) | EXPECT_NEAR(embedded.Value()[i], expected[i], 1e-14) | EXPECT_FALSE(fesa::hht_internal::CheckLinearSolve( full.tangent, full.rhs, embedded.Value()).IsOk()) | ASSERT_TRUE(mapped.HasValue()) | EXPECT_DOUBLE_EQ(mapped.Value().coordinate[0U], 0.0) | EXPECT_DOUBLE_EQ(mapped.Value().velocity[0U], 0.0) | EXPECT_DOUBLE_EQ(mapped.Value().acceleration[0U], 0.0) | EXPECT_NEAR(mapped.Value().coordinate[5U], 0.4, 1e-14) | EXPECT_NEAR(mapped.Value().velocity[5U], 0.2, 1e-14) | EXPECT_NEAR(mapped.Value().acceleration[5U], -0.3, 1e-14) | ASSERT_TRUE(thawed.HasValue()) | EXPECT_EQ(thawed.Value().full_indices.size(), 6U) | EXPECT_DOUBLE_EQ(thawed.Value().rhs[0U], rhs[0U]) | EXPECT_FALSE(fesa::hht_reduced_internal::SelectAugmentedSolve( invalid, chart, true).HasValue()) | EXPECT_FALSE(fesa::hht_reduced_internal::EmbedAugmentedSolution( selected.Value(), step, 6U).HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RestrictedSingularityIsNotFullInvertibility HhtReducedChannelNewton.RestrictedSingularityIsNotFullInvertibility; assertion 4개 tests/unit/analysis/hht_reduced_shell_test.cpp HhtReducedChannelNewton.RestrictedSingularityIsNotFullInvertibility 유지 원문 검사 body 및 assertion 동일. 929b1e67526d7ea5095985c949c85d901e3f90db028afcd2bdd3826dba226d7b 929b1e67526d7ea5095985c949c85d901e3f90db028afcd2bdd3826dba226d7b ASSERT_TRUE(matrix.HasValue()) | ASSERT_TRUE(restricted.HasValue()) | ASSERT_TRUE(solver.FactorizeFresh(full.tangent).IsOk()) | EXPECT_FALSE(solver.FactorizeFresh(restricted.Value().tangent).IsOk()) ASSERT_TRUE(matrix.HasValue()) | ASSERT_TRUE(restricted.HasValue()) | ASSERT_TRUE(solver.FactorizeFresh(full.tangent).IsOk()) | EXPECT_FALSE(solver.FactorizeFresh(restricted.Value().tangent).IsOk()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp support@1-154 helper/oracle/fixture/include/static assertion 구간: Fixture, MakeFixture, if, Rotations, Assemble, SetComponentColumns, PIndex, Hidden, for tests/unit/analysis/hht_reduced_shell_test.cpp file-support 이관 Dev trial cache·context 변경·copy/move 소유권·실패 우선순위·left-association 검사를 복원한다. 같은 trial의 독립 local 평가만 ShellTrialElement::EvaluateTrial 호출로 이관한다. f4776f384d43392262250a14b547685114913e28225a2510142dd854f147b4ca 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_reduced_shell_test.cpp support@1143-1144 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_reduced_shell_test.cpp file-support 유지 Dev trial cache·context 변경·copy/move 소유권·실패 우선순위·left-association 검사를 복원한다. 같은 trial의 독립 local 평가만 ShellTrialElement::EvaluateTrial 호출로 이관한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_shell_physics_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 27개 tests/unit/analysis/hht_shell_physics_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 029bc0a2ece9780b1c904e966bf71a2a43741317000b7bd1ea3544c2d07968a1 029bc0a2ece9780b1c904e966bf71a2a43741317000b7bd1ea3544c2d07968a1 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.NodalRigidForceRatesMatchIndependentTimeDifferences HhtShellPhysics.NodalRigidForceRatesMatchIndependentTimeDifferences; assertion 2개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.NodalRigidForceRatesMatchIndependentTimeDifferences 유지 원문 검사 body 및 assertion 동일. 8e7bbb65a70d3694839108bc430e01ae3292d6b4ab980922f7c9577af3185f6c 8e7bbb65a70d3694839108bc430e01ae3292d6b4ab980922f7c9577af3185f6c ASSERT_GT(scale, 0.0) | EXPECT_LE(error / scale, 1.0e-6) ASSERT_GT(scale, 0.0) | EXPECT_LE(error / scale, 1.0e-6) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ExternalDrillingHessianBalancesGradientAcceleration HhtShellPhysics.ExternalDrillingHessianBalancesGradientAcceleration; assertion 8개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ExternalDrillingHessianBalancesGradientAcceleration 유지 원문 검사 body 및 assertion 동일. 9456fd3f90ad9a3f30a93fd5e5d513eb2798f88ae63df197d1c0db7471c84a53 9456fd3f90ad9a3f30a93fd5e5d513eb2798f88ae63df197d1c0db7471c84a53 ASSERT_TRUE(external.HasValue()) | EXPECT_NEAR(external.Value().directional_second, -1.0 / 6.0, 1.0e-14) | EXPECT_NEAR(gradient_acceleration, 1.0 / 6.0, 1.0e-14) | EXPECT_NEAR(external.Value().directional_second + gradient_acceleration, 0.0, 1.0e-14) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(middle.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_NEAR(finite_difference, external.Value().directional_second, 1.0e-8) ASSERT_TRUE(external.HasValue()) | EXPECT_NEAR(external.Value().directional_second, -1.0 / 6.0, 1.0e-14) | EXPECT_NEAR(gradient_acceleration, 1.0 / 6.0, 1.0e-14) | EXPECT_NEAR(external.Value().directional_second + gradient_acceleration, 0.0, 1.0e-14) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(middle.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_NEAR(finite_difference, external.Value().directional_second, 1.0e-8) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ManufacturedHiddenCountsExternalHessianOnce HhtShellPhysics.ManufacturedHiddenCountsExternalHessianOnce; assertion 2개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ManufacturedHiddenCountsExternalHessianOnce 유지 원문 검사 body 및 assertion 동일. 66c7a72b17bea62b6f47d56a3ad1c08c66eec8169ebaaa0adcdc71e7b85a892c 66c7a72b17bea62b6f47d56a3ad1c08c66eec8169ebaaa0adcdc71e7b85a892c ASSERT_GT(scale, 0.0) | EXPECT_LE(std::abs(balance.hidden_acceleration_defect[node] - expected) / scale, 1.0e-12) ASSERT_GT(scale, 0.0) | EXPECT_LE(std::abs(balance.hidden_acceleration_defect[node] - expected) / scale, 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08aRigidOrbitMatchesIndependentVolumeForcePowerAndMomentum HhtShellPhysics.C08aRigidOrbitMatchesIndependentVolumeForcePowerAndMomentum; assertion 14개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08aRigidOrbitMatchesIndependentVolumeForcePowerAndMomentum 유지 원문 검사 body 및 assertion 동일. fcb752c10cea7eb76dfcbb5e2035bb3eb8392589fafa6e8673656dd5ecfe934f fcb752c10cea7eb76dfcbb5e2035bb3eb8392589fafa6e8673656dd5ecfe934f EXPECT_LE(difference.Norm() / oracle.force.Norm(), 1.0e-12) | EXPECT_LE(std::abs(assembly.frame.kinetic_energy - static_cast(oracle.kinetic)) / static_cast(oracle.kinetic), 1.0e-12) | EXPECT_LE(std::abs(oracle.force.Dot(exact.velocity) - static_cast(oracle.power)) / static_cast(oracle.power_scale), 1.0e-10) | EXPECT_LE(assembly.frame.physical_strain_energy / 800.0, 1.0e-10) | EXPECT_LE(assembly.frame.drilling_energy / 800.0, 1.0e-10) | EXPECT_DOUBLE_EQ(scaled_force.Norm(), 0.0) | EXPECT_LE(scaled_force.Norm() / force_scale, 1.0e-10) | EXPECT_LE(momentum_error / static_cast(oracle.momentum_scale), 1.0e-12) | EXPECT_LE( angular_error / static_cast(oracle.angular_momentum_scale), 1.0e-12) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_LE(value / scale, 1.0e-10) | EXPECT_TRUE(fesa::hht_internal::CompleteEquilibrium( *fixture.domain, fixture.dofs, assembly, &balance) .IsOk()) | EXPECT_LE(assembly.mass.Multiply(null).Norm() / mass_norm, 1.0e-12) | EXPECT_GT(maximum_rotation, 0.5) EXPECT_LE(difference.Norm() / oracle.force.Norm(), 1.0e-12) | EXPECT_LE(std::abs(assembly.frame.kinetic_energy - static_cast(oracle.kinetic)) / static_cast(oracle.kinetic), 1.0e-12) | EXPECT_LE(std::abs(oracle.force.Dot(exact.velocity) - static_cast(oracle.power)) / static_cast(oracle.power_scale), 1.0e-10) | EXPECT_LE(assembly.frame.physical_strain_energy / 800.0, 1.0e-10) | EXPECT_LE(assembly.frame.drilling_energy / 800.0, 1.0e-10) | EXPECT_DOUBLE_EQ(scaled_force.Norm(), 0.0) | EXPECT_LE(scaled_force.Norm() / force_scale, 1.0e-10) | EXPECT_LE(momentum_error / static_cast(oracle.momentum_scale), 1.0e-12) | EXPECT_LE( angular_error / static_cast(oracle.angular_momentum_scale), 1.0e-12) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_LE(value / scale, 1.0e-10) | EXPECT_TRUE(fesa::hht_internal::CompleteEquilibrium( *fixture.domain, fixture.dofs, assembly, &balance) .IsOk()) | EXPECT_LE(assembly.mass.Multiply(null).Norm() / mass_norm, 1.0e-12) | EXPECT_GT(maximum_rotation, 0.5) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisCoefficientRadiusSurvivesSparseProjectionAndLift HhtShellPhysics.BasisCoefficientRadiusSurvivesSparseProjectionAndLift; assertion 4개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisCoefficientRadiusSurvivesSparseProjectionAndLift 유지 원문 검사 body 및 assertion 동일. 28a447ddb306564c9364deaf08aacaeeb7189e3b604a6c594230eae915501a84 28a447ddb306564c9364deaf08aacaeeb7189e3b604a6c594230eae915501a84 EXPECT_GT(lifted[3U], 0.0) | EXPECT_GE(lifted[4U], 4.0 * 0x1p-53) | EXPECT_GE(lifted[5U], 4.0 * 0x1p-53) | EXPECT_GT(projected[0U], 2.0 * 0x1p-53) EXPECT_GT(lifted[3U], 0.0) | EXPECT_GE(lifted[4U], 4.0 * 0x1p-53) | EXPECT_GE(lifted[5U], 4.0 * 0x1p-53) | EXPECT_GT(projected[0U], 2.0 * 0x1p-53) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisRadiusReplayMatchesCompensatedProjectionAndCombinedLift HhtShellPhysics.BasisRadiusReplayMatchesCompensatedProjectionAndCombinedLift; assertion 11개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisRadiusReplayMatchesCompensatedProjectionAndCombinedLift 유지 원문 검사 body 및 assertion 동일. 31474d755fe7fa0af870a6fbb2bbba642858fd2250d3d8c7e01158e109379958 31474d755fe7fa0af870a6fbb2bbba642858fd2250d3d8c7e01158e109379958 EXPECT_DOUBLE_EQ(projected[0U], 1.0) | EXPECT_DOUBLE_EQ(projection_center[0U], projected[0U]) | EXPECT_GT(projection_radius[0U], 0.0) | EXPECT_DOUBLE_EQ(lifted[0U], 1.0) | EXPECT_DOUBLE_EQ(replay.center[0U], lifted[0U]) | EXPECT_DOUBLE_EQ(plain, 0.0) | EXPECT_GE(target_radius, 0.25) | EXPECT_DOUBLE_EQ(small_replay.center[0U], small_lifted[0U]) | EXPECT_DOUBLE_EQ(small_replay.center[0U], 1.0) | ASSERT_LT(small_replay.radius[0U], 0.25) | EXPECT_GE(small_target_radius, 0.25) EXPECT_DOUBLE_EQ(projected[0U], 1.0) | EXPECT_DOUBLE_EQ(projection_center[0U], projected[0U]) | EXPECT_GT(projection_radius[0U], 0.0) | EXPECT_DOUBLE_EQ(lifted[0U], 1.0) | EXPECT_DOUBLE_EQ(replay.center[0U], lifted[0U]) | EXPECT_DOUBLE_EQ(plain, 0.0) | EXPECT_GE(target_radius, 0.25) | EXPECT_DOUBLE_EQ(small_replay.center[0U], small_lifted[0U]) | EXPECT_DOUBLE_EQ(small_replay.center[0U], 1.0) | ASSERT_LT(small_replay.radius[0U], 0.25) | EXPECT_GE(small_target_radius, 0.25) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisLiftedAlgorithmicCorrectionUsesHhtFilterFactor HhtShellPhysics.BasisLiftedAlgorithmicCorrectionUsesHhtFilterFactor; assertion 3개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.BasisLiftedAlgorithmicCorrectionUsesHhtFilterFactor 유지 원문 검사 body 및 assertion 동일. 1135c210293ec3de4a84aed758353386e122ef4db703182ee03e2b48fca4340c 1135c210293ec3de4a84aed758353386e122ef4db703182ee03e2b48fca4340c EXPECT_NEAR(projected[0U], delta_ar, 1.0e-15) | ASSERT_GT(omission_scale, 0.0) | EXPECT_GT(std::abs(omitted[0U] - delta_ar) / omission_scale, 1.0e-12) EXPECT_NEAR(projected[0U], delta_ar, 1.0e-15) | ASSERT_GT(omission_scale, 0.0) | EXPECT_GT(std::abs(omitted[0U] - delta_ar) / omission_scale, 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.CarriedArRadiiIncludeAbsorbedUpdatesAndInputHistory HhtShellPhysics.CarriedArRadiiIncludeAbsorbedUpdatesAndInputHistory; assertion 10개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.CarriedArRadiiIncludeAbsorbedUpdatesAndInputHistory 유지 원문 검사 body 및 assertion 동일. b6ca11dc0cf68db6fc9d0a966480453e8c85dff9d3588962557189cb91cf455b b6ca11dc0cf68db6fc9d0a966480453e8c85dff9d3588962557189cb91cf455b ASSERT_EQ(std::fegetround(), FE_TONEAREST) | ASSERT_DOUBLE_EQ(doubled, 2.0 * std::numeric_limits::denorm_min()) | ASSERT_DOUBLE_EQ(rounded, 1.0) | EXPECT_GE(first, tiny) | EXPECT_GT(second, first) | EXPECT_GE(second, 2.0 * tiny) | EXPECT_GE(ProductRadius(2.0, tiny, 4.0, tiny), 6.0 * tiny) | EXPECT_GE(QuotientRadius(1.0, tiny, 2.0, 0.0), 0.5 * tiny) | EXPECT_THROW(QuotientRadius(1.0, 0.0, 1.0, 1.0), std::runtime_error) | EXPECT_TRUE(std::isinf(AddRadius(std::numeric_limits::max(), std::numeric_limits::max(), 0.0))) ASSERT_EQ(std::fegetround(), FE_TONEAREST) | ASSERT_DOUBLE_EQ(doubled, 2.0 * std::numeric_limits::denorm_min()) | ASSERT_DOUBLE_EQ(rounded, 1.0) | EXPECT_GE(first, tiny) | EXPECT_GT(second, first) | EXPECT_GE(second, 2.0 * tiny) | EXPECT_GE(ProductRadius(2.0, tiny, 4.0, tiny), 6.0 * tiny) | EXPECT_GE(QuotientRadius(1.0, tiny, 2.0, 0.0), 0.5 * tiny) | EXPECT_THROW(QuotientRadius(1.0, 0.0, 1.0, 1.0), std::runtime_error) | EXPECT_TRUE(std::isinf(AddRadius(std::numeric_limits::max(), std::numeric_limits::max(), 0.0))) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.PrimaryCoordinateRetainsCorrectionAbsorbedByCarriedAr HhtShellPhysics.PrimaryCoordinateRetainsCorrectionAbsorbedByCarriedAr; assertion 6개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.PrimaryCoordinateRetainsCorrectionAbsorbedByCarriedAr 유지 원문 검사 body 및 assertion 동일. 4b84aaf12146380cfb61eeebe617e119bce3a1155aa3ea45d9c020bda2c1cb42 4b84aaf12146380cfb61eeebe617e119bce3a1155aa3ea45d9c020bda2c1cb42 EXPECT_DOUBLE_EQ(pp + factor * next_ar, initial_p) | EXPECT_GT(next_p, initial_p) | EXPECT_DOUBLE_EQ(next_p - initial_p, delta_p) | EXPECT_LE(std::abs(next_p - (pp + factor * next_ar)) / scale, 1.0e-12) | EXPECT_GT(first_radius, inherited_radius) | EXPECT_GT(AddRadius(next_p + delta_p, first_radius, 0.0), first_radius) EXPECT_DOUBLE_EQ(pp + factor * next_ar, initial_p) | EXPECT_GT(next_p, initial_p) | EXPECT_DOUBLE_EQ(next_p - initial_p, delta_p) | EXPECT_LE(std::abs(next_p - (pp + factor * next_ar)) / scale, 1.0e-12) | EXPECT_GT(first_radius, inherited_radius) | EXPECT_GT(AddRadius(next_p + delta_p, first_radius, 0.0), first_radius) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.CompensatedCoordinateRetainsAbsorbedNewtonCorrections HhtShellPhysics.CompensatedCoordinateRetainsAbsorbedNewtonCorrections; assertion 12개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.CompensatedCoordinateRetainsAbsorbedNewtonCorrections 유지 원문 검사 body 및 assertion 동일. f9679eaf06ac657dba93fb8d8bcd5d4b9942deb7d677c1fe4ffe86fc6f7fd072 f9679eaf06ac657dba93fb8d8bcd5d4b9942deb7d677c1fe4ffe86fc6f7fd072 EXPECT_DOUBLE_EQ(high, 1.0) | EXPECT_DOUBLE_EQ(low, delta) | EXPECT_DOUBLE_EQ(high, 1.0 + std::ldexp(1.0, -52)) | EXPECT_DOUBLE_EQ(low, 0.0) | EXPECT_GT(radius, inherited_radius) | EXPECT_GE(UpSum(radius, std::abs(low)), inherited_radius) | EXPECT_DOUBLE_EQ(high, 1.0 + std::ldexp(1.0, -52)) | EXPECT_DOUBLE_EQ(low, -delta) | EXPECT_DOUBLE_EQ(high, 2.0 * std::numeric_limits::denorm_min()) | EXPECT_DOUBLE_EQ(low, 0.0) | EXPECT_FALSE(std::isfinite(high)) | EXPECT_FALSE(std::isfinite(radius)) EXPECT_DOUBLE_EQ(high, 1.0) | EXPECT_DOUBLE_EQ(low, delta) | EXPECT_DOUBLE_EQ(high, 1.0 + std::ldexp(1.0, -52)) | EXPECT_DOUBLE_EQ(low, 0.0) | EXPECT_GT(radius, inherited_radius) | EXPECT_GE(UpSum(radius, std::abs(low)), inherited_radius) | EXPECT_DOUBLE_EQ(high, 1.0 + std::ldexp(1.0, -52)) | EXPECT_DOUBLE_EQ(low, -delta) | EXPECT_DOUBLE_EQ(high, 2.0 * std::numeric_limits::denorm_min()) | EXPECT_DOUBLE_EQ(low, 0.0) | EXPECT_FALSE(std::isfinite(high)) | EXPECT_FALSE(std::isfinite(radius)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.FrozenGraphIndicatorIncludesCoordinateAndRateCurvature HhtShellPhysics.FrozenGraphIndicatorIncludesCoordinateAndRateCurvature; assertion 8개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.FrozenGraphIndicatorIncludesCoordinateAndRateCurvature 유지 원문 검사 body 및 assertion 동일. 5f98ecd78623006a570c8acf4c252ad547abf5c9d490d0888e9ec4ccb39baa08 5f98ecd78623006a570c8acf4c252ad547abf5c9d490d0888e9ec4ccb39baa08 EXPECT_GE(indicator.coordinates[1U], 2.0e-6) | EXPECT_GE(indicator.velocity[1U], 2.0e-6 + 2.0e-7) | EXPECT_GE(indicator.acceleration[1U], 4.0e-6 + 4.0e-7 + 2.0e-8) | EXPECT_TRUE(std::isfinite(indicator.acceleration[1U])) | EXPECT_GE(indicator.algorithmic_acceleration[1U], (1.0 + parameters.alpha) * indicator.acceleration[1U]) | EXPECT_TRUE(std::isinf(unresolved.coordinates[1U])) | EXPECT_TRUE(std::isinf(unresolved.velocity[1U])) | EXPECT_TRUE(std::isinf(unresolved.acceleration[1U])) EXPECT_GE(indicator.coordinates[1U], 2.0e-6) | EXPECT_GE(indicator.velocity[1U], 2.0e-6 + 2.0e-7) | EXPECT_GE(indicator.acceleration[1U], 4.0e-6 + 4.0e-7 + 2.0e-8) | EXPECT_TRUE(std::isfinite(indicator.acceleration[1U])) | EXPECT_GE(indicator.algorithmic_acceleration[1U], (1.0 + parameters.alpha) * indicator.acceleration[1U]) | EXPECT_TRUE(std::isinf(unresolved.coordinates[1U])) | EXPECT_TRUE(std::isinf(unresolved.velocity[1U])) | EXPECT_TRUE(std::isinf(unresolved.acceleration[1U])) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.GraphBasisCertificateBoundsMatrixAndRhsPerturbations HhtShellPhysics.GraphBasisCertificateBoundsMatrixAndRhsPerturbations; assertion 13개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.GraphBasisCertificateBoundsMatrixAndRhsPerturbations 유지 원문 검사 body 및 assertion 동일. d620963924f330ab1f029380440d739230f3c3341475bcdbf97a3453f7fe5339 d620963924f330ab1f029380440d739230f3c3341475bcdbf97a3453f7fe5339 ASSERT_TRUE(inverse.complete) | EXPECT_LE(std::abs(actual[0U] - center[0U]), bound[0U]) | EXPECT_GT(bound[0U], 0.0) | EXPECT_GE(centered[0U], std::ldexp(1.0, -30)) | EXPECT_EQ(UpProduct(0.0, std::numeric_limits::infinity()), 0.0) | EXPECT_TRUE(std::isinf(UpProduct(0.0, std::numeric_limits::quiet_NaN()))) | EXPECT_FALSE(CertifyGraphInverse(products, &solver).complete) | EXPECT_THROW(BoundGraphSolution(products, inverse, rhs, fesa::Vector(1U), center), std::runtime_error) | ASSERT_TRUE(inverse.complete) | EXPECT_LE(std::abs(actual[i] - center[i]), bound[i]) | EXPECT_GT(bound[i], 9.0) | ASSERT_TRUE(invalid_inverse.complete) | EXPECT_THROW(BoundGraphSolution(products, invalid_inverse, rhs, fesa::Vector(4U), center), std::runtime_error) ASSERT_TRUE(inverse.complete) | EXPECT_LE(std::abs(actual[0U] - center[0U]), bound[0U]) | EXPECT_GT(bound[0U], 0.0) | EXPECT_GE(centered[0U], std::ldexp(1.0, -30)) | EXPECT_EQ(UpProduct(0.0, std::numeric_limits::infinity()), 0.0) | EXPECT_TRUE(std::isinf(UpProduct(0.0, std::numeric_limits::quiet_NaN()))) | EXPECT_FALSE(CertifyGraphInverse(products, &solver).complete) | EXPECT_THROW(BoundGraphSolution(products, inverse, rhs, fesa::Vector(1U), center), std::runtime_error) | ASSERT_TRUE(inverse.complete) | EXPECT_LE(std::abs(actual[i] - center[i]), bound[i]) | EXPECT_GT(bound[i], 9.0) | ASSERT_TRUE(invalid_inverse.complete) | EXPECT_THROW(BoundGraphSolution(products, invalid_inverse, rhs, fesa::Vector(4U), center), std::runtime_error) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.RestrictedLastSolvePreservesOmittedTranslationDefect HhtShellPhysics.RestrictedLastSolvePreservesOmittedTranslationDefect; assertion 10개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.RestrictedLastSolvePreservesOmittedTranslationDefect 유지 원문 검사 body 및 assertion 동일. c779af538471833c822bd7697c9114c63dcca6dbaa3ba7953dd8abadf7c306f2 c779af538471833c822bd7697c9114c63dcca6dbaa3ba7953dd8abadf7c306f2 ASSERT_TRUE(reduced::ShouldRefineAngular(chart, {0.0, 1.0}, {0.0, 0.0, 0.0, 0.0}, true)) | ASSERT_TRUE(selected.angular_only) | ASSERT_EQ(selected.full_indices, std::vector({1U})) | EXPECT_EQ(embedded[0U], 0.0) | EXPECT_EQ(embedded[1U], 1.0) | EXPECT_EQ(selected_residual[0U] - selected.rhs[0U], 0.0) | EXPECT_EQ(full_defect[0U], -2.0) | EXPECT_EQ(full_defect[1U], 0.0) | EXPECT_GT(std::abs(full_model[0U]), 0.0) | EXPECT_GT(std::abs(full_model[1U]), 0.0) ASSERT_TRUE(reduced::ShouldRefineAngular(chart, {0.0, 1.0}, {0.0, 0.0, 0.0, 0.0}, true)) | ASSERT_TRUE(selected.angular_only) | ASSERT_EQ(selected.full_indices, std::vector({1U})) | EXPECT_EQ(embedded[0U], 0.0) | EXPECT_EQ(embedded[1U], 1.0) | EXPECT_EQ(selected_residual[0U] - selected.rhs[0U], 0.0) | EXPECT_EQ(full_defect[0U], -2.0) | EXPECT_EQ(full_defect[1U], 0.0) | EXPECT_GT(std::abs(full_model[0U]), 0.0) | EXPECT_GT(std::abs(full_model[1U]), 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.RestrictedRecordNoiseIncludesFullModelOmittedUDefect HhtShellPhysics.RestrictedRecordNoiseIncludesFullModelOmittedUDefect; assertion 6개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.RestrictedRecordNoiseIncludesFullModelOmittedUDefect 유지 원문 검사 body 및 assertion 동일. 2deecf4d898da2c40d311b18173e7ae7a11f75f87024cc2f64e1cf63d0caedd1 2deecf4d898da2c40d311b18173e7ae7a11f75f87024cc2f64e1cf63d0caedd1 ASSERT_LT(u, chart.p_columns.size()) | ASSERT_LT(angular, chart.p_columns.size()) | ASSERT_EQ(restricted_selected.full_indices, baseline_selected.full_indices) | ASSERT_NE(full_defect[u], 0.0) | EXPECT_GT(mapped_model.coordinate.Norm(), 0.0) | EXPECT_GT(restricted_noise, baseline_noise) ASSERT_LT(u, chart.p_columns.size()) | ASSERT_LT(angular, chart.p_columns.size()) | ASSERT_EQ(restricted_selected.full_indices, baseline_selected.full_indices) | ASSERT_NE(full_defect[u], 0.0) | EXPECT_GT(mapped_model.coordinate.Norm(), 0.0) | EXPECT_GT(restricted_noise, baseline_noise) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ReducedManufacturedControllerKeepsExactInitialOrbit HhtShellPhysics.ReducedManufacturedControllerKeepsExactInitialOrbit; assertion 16개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.ReducedManufacturedControllerKeepsExactInitialOrbit 유지 원문 검사 body 및 assertion 동일. 9bc51b902d77a1dbb6f75c292ca75f05e1bf8beb71bc73aef1176005d73804fd 9bc51b902d77a1dbb6f75c292ca75f05e1bf8beb71bc73aef1176005d73804fd ASSERT_EQ(grid.history.size(), 65U) | EXPECT_DOUBLE_EQ(grid.history.front().generalized_coordinates[i], exact.generalized_coordinates[i]) | EXPECT_DOUBLE_EQ(grid.history.front().velocity[i], exact.velocity[i]) | EXPECT_DOUBLE_EQ(grid.history.front().acceleration[i], exact.acceleration[i]) | EXPECT_DOUBLE_EQ(grid.history.front().algorithmic_acceleration[i], exact.acceleration[i]) | EXPECT_DOUBLE_EQ(frame.time, static_cast(index) / 64.0) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.generalized_coordinates.Size(), fixture.dofs.FullDofCount()) | EXPECT_EQ(frame.velocity.Size(), fixture.dofs.FullDofCount()) | EXPECT_EQ(frame.acceleration.Size(), fixture.dofs.FullDofCount()) | EXPECT_TRUE(std::isfinite((*channel)[i])) | EXPECT_LE(residual, 1.0e-10) | EXPECT_TRUE(std::isfinite((*defect)[i])) | EXPECT_EQ(grid.history.back().time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_DOUBLE_EQ(grid.history.back().time, 1.0) | EXPECT_GT(grid.maximum_rotation, 0.5) ASSERT_EQ(grid.history.size(), 65U) | EXPECT_DOUBLE_EQ(grid.history.front().generalized_coordinates[i], exact.generalized_coordinates[i]) | EXPECT_DOUBLE_EQ(grid.history.front().velocity[i], exact.velocity[i]) | EXPECT_DOUBLE_EQ(grid.history.front().acceleration[i], exact.acceleration[i]) | EXPECT_DOUBLE_EQ(grid.history.front().algorithmic_acceleration[i], exact.acceleration[i]) | EXPECT_DOUBLE_EQ(frame.time, static_cast(index) / 64.0) | EXPECT_EQ(frame.time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_EQ(frame.generalized_coordinates.Size(), fixture.dofs.FullDofCount()) | EXPECT_EQ(frame.velocity.Size(), fixture.dofs.FullDofCount()) | EXPECT_EQ(frame.acceleration.Size(), fixture.dofs.FullDofCount()) | EXPECT_TRUE(std::isfinite((*channel)[i])) | EXPECT_LE(residual, 1.0e-10) | EXPECT_TRUE(std::isfinite((*defect)[i])) | EXPECT_EQ(grid.history.back().time_integration_formulation, fesa::DynamicTimeIntegrationFormulation::kReducedCoordinateHht) | EXPECT_DOUBLE_EQ(grid.history.back().time, 1.0) | EXPECT_GT(grid.maximum_rotation, 0.5) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08aRigidManufacturedOrbitReducedCoordinateTimeConvergence HhtShellPhysics.C08aRigidManufacturedOrbitReducedCoordinateTimeConvergence; assertion 15개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08aRigidManufacturedOrbitReducedCoordinateTimeConvergence 유지 원문 검사 body 및 assertion 동일. 19dc62f139091fea4190eb7e7034119c9b725c4e46570f8acb6af9d590471c22 19dc62f139091fea4190eb7e7034119c9b725c4e46570f8acb6af9d590471c22 EXPECT_GT(grid.maximum_rotation, 0.5) | ASSERT_EQ(frame.hidden_velocity_defect.Size(), fixture.domain->Nodes().size()) | ASSERT_EQ(frame.hidden_velocity_defect_scale.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_EQ(frame.hidden_acceleration_defect.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_EQ(frame.hidden_acceleration_defect_scale.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_TRUE(std::isfinite(values.first)) | ASSERT_TRUE(std::isfinite(values.second)) | ASSERT_GE(values.second, 0.0) | EXPECT_DOUBLE_EQ(values.first, 0.0) | EXPECT_LE(std::abs(values.first) / values.second, 1.0e-10) | EXPECT_LE(errors.back()[channel], 1.0e-4) | ASSERT_GT(errors[grid][channel], 0.0) | ASSERT_GT(errors[grid + 1U][channel], 0.0) | EXPECT_GE(std::log2(errors[grid][channel] / errors[grid + 1U][channel]), 1.8) | EXPECT_GT(errors[grid][channel], 100.0 * std::max(grids[grid].solve_noise[channel], grids[grid].arithmetic_noise[channel])) EXPECT_GT(grid.maximum_rotation, 0.5) | ASSERT_EQ(frame.hidden_velocity_defect.Size(), fixture.domain->Nodes().size()) | ASSERT_EQ(frame.hidden_velocity_defect_scale.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_EQ(frame.hidden_acceleration_defect.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_EQ(frame.hidden_acceleration_defect_scale.Size(), frame.hidden_velocity_defect.Size()) | ASSERT_TRUE(std::isfinite(values.first)) | ASSERT_TRUE(std::isfinite(values.second)) | ASSERT_GE(values.second, 0.0) | EXPECT_DOUBLE_EQ(values.first, 0.0) | EXPECT_LE(std::abs(values.first) / values.second, 1.0e-10) | EXPECT_LE(errors.back()[channel], 1.0e-4) | ASSERT_GT(errors[grid][channel], 0.0) | ASSERT_GT(errors[grid + 1U][channel], 0.0) | EXPECT_GE(std::log2(errors[grid][channel] / errors[grid + 1U][channel]), 1.8) | EXPECT_GT(errors[grid][channel], 100.0 * std::max(grids[grid].solve_noise[channel], grids[grid].arithmetic_noise[channel])) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08bInitialPhysicalSpectrumProbe HhtShellPhysics.C08bInitialPhysicalSpectrumProbe; assertion 4개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08bInitialPhysicalSpectrumProbe 유지 원문 검사 body 및 assertion 동일. 7673da377048ad5e617480ff75b5ef812d216306aa82ee6bd55e576582ea3551 7673da377048ad5e617480ff75b5ef812d216306aa82ee6bd55e576582ea3551 ASSERT_EQ(matrix.Rows(), 54U) | ASSERT_EQ(matrix.Columns(), 54U) | ASSERT_EQ(matrix.RowOffsets().size(), 55U) | ASSERT_LT(column, values.size()) ASSERT_EQ(matrix.Rows(), 54U) | ASSERT_EQ(matrix.Columns(), 54U) | ASSERT_EQ(matrix.RowOffsets().size(), 55U) | ASSERT_LT(column, values.size()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.PredictorStartCompletesPreviouslyFailingLumpedFreePlateGrid HhtShellPhysics.PredictorStartCompletesPreviouslyFailingLumpedFreePlateGrid; assertion 4개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.PredictorStartCompletesPreviouslyFailingLumpedFreePlateGrid 유지 원문 검사 body 및 assertion 동일. 874c85b16464eb1986a4f6579949282d69aec903ef832d63d9212c6eb545d4f0 874c85b16464eb1986a4f6579949282d69aec903ef832d63d9212c6eb545d4f0 ASSERT_EQ(evidence.history.size(), 65U) | EXPECT_DOUBLE_EQ(evidence.history.back().time, kEndTime) | EXPECT_GE(evidence.maximum_rotation, 0.2) | EXPECT_LT(evidence.maximum_rotation, std::acos(-1.0)) ASSERT_EQ(evidence.history.size(), 65U) | EXPECT_DOUBLE_EQ(evidence.history.back().time, kEndTime) | EXPECT_GE(evidence.maximum_rotation, 0.2) | EXPECT_LT(evidence.maximum_rotation, std::acos(-1.0)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08bFreeFiniteRotationPlateSelfConvergenceAndPhysicalInvariants HhtShellPhysics.C08bFreeFiniteRotationPlateSelfConvergenceAndPhysicalInvariants; assertion 11개 tests/unit/analysis/hht_shell_physics_test.cpp HhtShellPhysics.C08bFreeFiniteRotationPlateSelfConvergenceAndPhysicalInvariants 유지 원문 검사 body 및 assertion 동일. 33dea1e6e2f44f6945fb386065b0319493f3658f049437474babe90c53736d20 33dea1e6e2f44f6945fb386065b0319493f3658f049437474babe90c53736d20 EXPECT_GE(grids.back().maximum_rotation, 0.2) | EXPECT_LE(differences.back()[channel], 1.0e-4) | ASSERT_GT(first, 0.0) | ASSERT_GT(second, 0.0) | EXPECT_GE(first / second, threshold) | EXPECT_GT(differences[pair][channel], 100.0 * noise) | EXPECT_LT(grids[final - 1U].*member, grids[final - 2U].*member) | EXPECT_LT(grids[final].*member, grids[final - 1U].*member) | EXPECT_LE(grids[final].*member, 0.6 * (grids[final - 1U].*member)) | EXPECT_LE(grids[final].*member, 1.0e-3) | EXPECT_LE(grids.back().momentum_error, 1.0e-3) EXPECT_GE(grids.back().maximum_rotation, 0.2) | EXPECT_LE(differences.back()[channel], 1.0e-4) | ASSERT_GT(first, 0.0) | ASSERT_GT(second, 0.0) | EXPECT_GE(first / second, threshold) | EXPECT_GT(differences[pair][channel], 100.0 * noise) | EXPECT_LT(grids[final - 1U].*member, grids[final - 2U].*member) | EXPECT_LT(grids[final].*member, grids[final - 1U].*member) | EXPECT_LE(grids[final].*member, 0.6 * (grids[final - 1U].*member)) | EXPECT_LE(grids[final].*member, 1.0e-3) | EXPECT_LE(grids.back().momentum_error, 1.0e-3) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.FrozenNearestCoordinatesPassPairArithmeticWithoutChangingHigh HhtReducedIncrement.FrozenNearestCoordinatesPassPairArithmeticWithoutChangingHigh; assertion 7개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.FrozenNearestCoordinatesPassPairArithmeticWithoutChangingHigh 유지 원문 검사 body 및 assertion 동일. ba5a3f724636ab75d38249cfc9c5583f72f8a08b3c0d67109c843892031a85d2 ba5a3f724636ab75d38249cfc9c5583f72f8a08b3c0d67109c843892031a85d2 EXPECT_TRUE(first.storage_pass) | EXPECT_TRUE(first.arithmetic_pass) | EXPECT_EQ(first.defect, 0.0) | EXPECT_TRUE(worst.storage_pass) | EXPECT_TRUE(worst.arithmetic_pass) | EXPECT_EQ(worst.defect, 0.0) | EXPECT_FALSE(missing_low.arithmetic_pass) EXPECT_TRUE(first.storage_pass) | EXPECT_TRUE(first.arithmetic_pass) | EXPECT_EQ(first.defect, 0.0) | EXPECT_TRUE(worst.storage_pass) | EXPECT_TRUE(worst.arithmetic_pass) | EXPECT_EQ(worst.defect, 0.0) | EXPECT_FALSE(missing_low.arithmetic_pass) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.StorageRequiresNearestEvenIncludingBothMidpointDirections HhtReducedIncrement.StorageRequiresNearestEvenIncludingBothMidpointDirections; assertion 8개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.StorageRequiresNearestEvenIncludingBothMidpointDirections 유지 원문 검사 body 및 assertion 동일. 01ead07c8dcec86cc541b6c45ad646cb7c1d2dd4d9eef28ba89436d7082a2954 01ead07c8dcec86cc541b6c45ad646cb7c1d2dd4d9eef28ba89436d7082a2954 EXPECT_TRUE(reduced::CheckPairIncrement(1.0, half_upper_spacing, 1.0, {half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(reduced::CheckPairIncrement(1.0, -std::ldexp(1.0, -54), 1.0, {-std::ldexp(1.0, -54)}, std::ldexp(1.0, -54)).storage_pass) | EXPECT_TRUE(reduced::CheckPairIncrement(-1.0, -half_upper_spacing, -1.0, {-half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(odd_tie.arithmetic_pass) | EXPECT_FALSE(odd_tie.storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(-odd, half_upper_spacing, -1.0, {-half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(misplaced_high.arithmetic_pass) | EXPECT_FALSE(misplaced_high.storage_pass) EXPECT_TRUE(reduced::CheckPairIncrement(1.0, half_upper_spacing, 1.0, {half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(reduced::CheckPairIncrement(1.0, -std::ldexp(1.0, -54), 1.0, {-std::ldexp(1.0, -54)}, std::ldexp(1.0, -54)).storage_pass) | EXPECT_TRUE(reduced::CheckPairIncrement(-1.0, -half_upper_spacing, -1.0, {-half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(odd_tie.arithmetic_pass) | EXPECT_FALSE(odd_tie.storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(-odd, half_upper_spacing, -1.0, {-half_upper_spacing}, half_upper_spacing).storage_pass) | EXPECT_TRUE(misplaced_high.arithmetic_pass) | EXPECT_FALSE(misplaced_high.storage_pass) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.WholeUpdateAndIndependentTraceRejectMissingCorrection HhtReducedIncrement.WholeUpdateAndIndependentTraceRejectMissingCorrection; assertion 5개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.WholeUpdateAndIndependentTraceRejectMissingCorrection 유지 원문 검사 body 및 assertion 동일. 262933302f3210cf4380812f75addf653e952d4ba8595c66d7d3b5772c59b6b5 262933302f3210cf4380812f75addf653e952d4ba8595c66d7d3b5772c59b6b5 EXPECT_TRUE(valid_whole.arithmetic_pass && valid_whole.storage_pass) | EXPECT_TRUE(valid_trace.arithmetic_pass && valid_trace.storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, correction, 1.0, {correction, 0.0, correction}, 2.0 * correction).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, correction, 1.0, {2.0 * correction, 0.0}, 2.0 * correction).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, -2.0 * correction, 1.0, {2.0 * correction, 0.0}, 2.0 * correction).arithmetic_pass) EXPECT_TRUE(valid_whole.arithmetic_pass && valid_whole.storage_pass) | EXPECT_TRUE(valid_trace.arithmetic_pass && valid_trace.storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, correction, 1.0, {correction, 0.0, correction}, 2.0 * correction).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, correction, 1.0, {2.0 * correction, 0.0}, 2.0 * correction).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(1.0, -2.0 * correction, 1.0, {2.0 * correction, 0.0}, 2.0 * correction).arithmetic_pass) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.ExactThresholdRejectsTailHiddenByRoundedRatio HhtReducedIncrement.ExactThresholdRejectsTailHiddenByRoundedRatio; assertion 8개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.ExactThresholdRejectsTailHiddenByRoundedRatio 유지 원문 검사 body 및 assertion 동일. a91408b59790f93c59b20fc737d66f81ae8f8cfe1e8502b13836b5ad0efbb24e a91408b59790f93c59b20fc737d66f81ae8f8cfe1e8502b13836b5ad0efbb24e EXPECT_TRUE(equality.arithmetic_pass) | EXPECT_EQ(above.ratio, threshold) | EXPECT_FALSE(above.arithmetic_pass) | EXPECT_EQ(above_decimal.ratio, threshold) | EXPECT_FALSE(above_decimal.arithmetic_pass) | EXPECT_TRUE(below.arithmetic_pass) | EXPECT_TRUE(maximum.arithmetic_pass) | EXPECT_FALSE(unsupported.arithmetic_pass) EXPECT_TRUE(equality.arithmetic_pass) | EXPECT_EQ(above.ratio, threshold) | EXPECT_FALSE(above.arithmetic_pass) | EXPECT_EQ(above_decimal.ratio, threshold) | EXPECT_FALSE(above_decimal.arithmetic_pass) | EXPECT_TRUE(below.arithmetic_pass) | EXPECT_TRUE(maximum.arithmetic_pass) | EXPECT_FALSE(unsupported.arithmetic_pass) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.ZeroScaleAndSubnormalArithmeticRemainExact HhtReducedIncrement.ZeroScaleAndSubnormalArithmeticRemainExact; assertion 8개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.ZeroScaleAndSubnormalArithmeticRemainExact 유지 원문 검사 body 및 assertion 동일. 6c6c8a54ef0f513faca05e189ae080d712597fbe859edf9c0df7169058d7086d 6c6c8a54ef0f513faca05e189ae080d712597fbe859edf9c0df7169058d7086d EXPECT_TRUE(zero.arithmetic_pass && zero.storage_pass) | EXPECT_TRUE(fixed_zero.arithmetic_pass && fixed_zero.storage_pass) | EXPECT_TRUE(tiny_valid.arithmetic_pass && tiny_valid.storage_pass) | EXPECT_EQ(tiny_valid.defect, 0.0) | EXPECT_TRUE(tiny_nonzero.storage_pass) | EXPECT_FALSE(tiny_nonzero.arithmetic_pass) | EXPECT_EQ(tiny_nonzero.defect, tiny) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, tiny, 0.0, {tiny}, tiny).storage_pass) EXPECT_TRUE(zero.arithmetic_pass && zero.storage_pass) | EXPECT_TRUE(fixed_zero.arithmetic_pass && fixed_zero.storage_pass) | EXPECT_TRUE(tiny_valid.arithmetic_pass && tiny_valid.storage_pass) | EXPECT_EQ(tiny_valid.defect, 0.0) | EXPECT_TRUE(tiny_nonzero.storage_pass) | EXPECT_FALSE(tiny_nonzero.arithmetic_pass) | EXPECT_EQ(tiny_nonzero.defect, tiny) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, tiny, 0.0, {tiny}, tiny).storage_pass) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.NonfiniteAndOverflowFailBeforeAcceptance HhtReducedIncrement.NonfiniteAndOverflowFailBeforeAcceptance; assertion 9개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedIncrement.NonfiniteAndOverflowFailBeforeAcceptance 유지 원문 검사 body 및 assertion 동일. fb5fe44c1510d94b22e68a48f545271af54787ba6f38e7d57105f584b02eda1f fb5fe44c1510d94b22e68a48f545271af54787ba6f38e7d57105f584b02eda1f EXPECT_FALSE(reduced::CheckPairIncrement(invalid, 0.0, 0.0, {0.0}, 0.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, invalid, 0.0, {0.0}, 0.0).storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, invalid, {0.0}, 0.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, 0.0, {invalid}, 1.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, 0.0, {0.0}, invalid).arithmetic_pass) | EXPECT_FALSE(overflow.arithmetic_pass) | EXPECT_FALSE(overflow.storage_pass) | EXPECT_FALSE(unsupported.arithmetic_pass) | EXPECT_FALSE(unsupported.storage_pass) EXPECT_FALSE(reduced::CheckPairIncrement(invalid, 0.0, 0.0, {0.0}, 0.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, invalid, 0.0, {0.0}, 0.0).storage_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, invalid, {0.0}, 0.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, 0.0, {invalid}, 1.0).arithmetic_pass) | EXPECT_FALSE(reduced::CheckPairIncrement(0.0, 0.0, 0.0, {0.0}, invalid).arithmetic_pass) | EXPECT_FALSE(overflow.arithmetic_pass) | EXPECT_FALSE(overflow.storage_pass) | EXPECT_FALSE(unsupported.arithmetic_pass) | EXPECT_FALSE(unsupported.storage_pass) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedLifecycle.AllowsEvaluationAfterCorrection100ButNeverCorrection101 HhtReducedLifecycle.AllowsEvaluationAfterCorrection100ButNeverCorrection101; assertion 7개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedLifecycle.AllowsEvaluationAfterCorrection100ButNeverCorrection101 유지 원문 검사 body 및 assertion 동일. 60a86b1cfb0b9cc5f37aec09bacc49496468028cdff28ddf5010a1f482add364 60a86b1cfb0b9cc5f37aec09bacc49496468028cdff28ddf5010a1f482add364 EXPECT_TRUE(CanApplyOuterCorrection(0U)) | EXPECT_TRUE(CanApplyOuterCorrection(99U)) | EXPECT_FALSE(CanApplyOuterCorrection(100U)) | EXPECT_FALSE(CanApplyOuterCorrection(101U)) | EXPECT_EQ(corrections, 100U) | EXPECT_EQ(last_evaluation, 100U) | EXPECT_EQ(accepted, accept_at_100) EXPECT_TRUE(CanApplyOuterCorrection(0U)) | EXPECT_TRUE(CanApplyOuterCorrection(99U)) | EXPECT_FALSE(CanApplyOuterCorrection(100U)) | EXPECT_FALSE(CanApplyOuterCorrection(101U)) | EXPECT_EQ(corrections, 100U) | EXPECT_EQ(last_evaluation, 100U) | EXPECT_EQ(accepted, accept_at_100) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedLifecycle.FailedExecutionDoesNotPublishCandidateOrContaminateRetry HhtReducedLifecycle.FailedExecutionDoesNotPublishCandidateOrContaminateRetry; assertion 18개 tests/unit/analysis/hht_shell_physics_test.cpp HhtReducedLifecycle.FailedExecutionDoesNotPublishCandidateOrContaminateRetry 유지 원문 검사 body 및 assertion 동일. 200703a9b2cc195cf471123955a0f052d0732809a02789d894ab9df46002879a 200703a9b2cc195cf471123955a0f052d0732809a02789d894ab9df46002879a "ASSERT_TRUE(baseline.HasValue()) | ASSERT_EQ(baseline.Value().state.AcceptedFrames().size(), 3U) | EXPECT_GT(baseline.Value().state.AcceptedFrames()[1U].generalized_coordinates[0U], 0.0) | ASSERT_FALSE(failed.HasValue()) | EXPECT_EQ(failing.failures, 1U) | EXPECT_EQ(failed.GetStatus().Diagnostics().front().code, ""c10-injected-backend"") | EXPECT_NE(partial_log.find(""\tincrement=2\t""), std::string::npos) | EXPECT_NE(partial_log.find(""\toutcome=failed""), std::string::npos) | EXPECT_NE(ReadLifecycleLog(baseline_path).find(line + '\n'), std::string::npos) | EXPECT_EQ(line.find(""\tincrement=2\t""), std::string::npos) | ASSERT_TRUE(retry.HasValue()) | ASSERT_EQ(actual.size(), expected.size()) | EXPECT_EQ(actual[frame].frame_index, expected[frame].frame_index) | EXPECT_EQ(actual[frame].iteration_count, expected[frame].iteration_count) | EXPECT_EQ(actual[frame].time, expected[frame].time) | ASSERT_EQ(left.Size(), right.Size()) | EXPECT_EQ(left[i], right[i]) | EXPECT_EQ(ReadLifecycleLog(retry_path), ReadLifecycleLog(baseline_path))" "ASSERT_TRUE(baseline.HasValue()) | ASSERT_EQ(baseline.Value().state.AcceptedFrames().size(), 3U) | EXPECT_GT(baseline.Value().state.AcceptedFrames()[1U].generalized_coordinates[0U], 0.0) | ASSERT_FALSE(failed.HasValue()) | EXPECT_EQ(failing.failures, 1U) | EXPECT_EQ(failed.GetStatus().Diagnostics().front().code, ""c10-injected-backend"") | EXPECT_NE(partial_log.find(""\tincrement=2\t""), std::string::npos) | EXPECT_NE(partial_log.find(""\toutcome=failed""), std::string::npos) | EXPECT_NE(ReadLifecycleLog(baseline_path).find(line + '\n'), std::string::npos) | EXPECT_EQ(line.find(""\tincrement=2\t""), std::string::npos) | ASSERT_TRUE(retry.HasValue()) | ASSERT_EQ(actual.size(), expected.size()) | EXPECT_EQ(actual[frame].frame_index, expected[frame].frame_index) | EXPECT_EQ(actual[frame].iteration_count, expected[frame].iteration_count) | EXPECT_EQ(actual[frame].time, expected[frame].time) | ASSERT_EQ(left.Size(), right.Size()) | EXPECT_EQ(left[i], right[i]) | EXPECT_EQ(ReadLifecycleLog(retry_path), ReadLifecycleLog(baseline_path))" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_shell_physics_test.cpp support@1-528 helper/oracle/fixture/include/static assertion 구간: Message, Require, Add, Scale, Cross, Dot, Norm, Triple, Coordinates, Store, Fixture, MakeFixture, if, EmptyFrame, Evaluate, VolumeOracle, Integrate, OrbitChart, RigidOrbit, OrbitPhysicalRates, RigidForceRates, SparseNorm, ManufacturedHidden, CompleteManufacturedConstraints tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bff094dc63055b397162f08ce704ce39f346436a57378522c8c80557b71d9529 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_shell_physics_test.cpp support@734-983 helper/oracle/fixture/include/static assertion 구간: InitializeNullVelocity, GridEvidence, RecoveredAcceleration, ArithmeticRadii, Up, UpSum, UpProduct, RoundoffRadius, AddRadius, ProductRadius, RateSumRadius, Add, Value, Radius, QuotientRadius, reduced, ProjectBasisRadii, AccumulateLiftBasisRadii, BasisLiftReplay, ReplayLiftBasisRadii, LiftBasisRadii tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 13a1ff8e33d6400d5bdcf494a3a6abe02fdbf33582c3f5de2ef4f71bf5bd18d7 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_shell_physics_test.cpp support@1133-1153 helper/oracle/fixture/include/static assertion 구간: AdditionLowPart, AdvanceCoordinate tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 61ed0abe9524b8e3099608f9f117ed4ed88fb40aa98039f13024486c80f3d640 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_shell_physics_test.cpp support@1185-1669 helper/oracle/fixture/include/static assertion 구간: HhtCoordinateFactorRadius, RadiusNorm, GraphBasisProducts, GraphInverseCertificate, ContractGraphBasis, for, SparseFromDense, UpperRowSum, FiniteMatrix, FiniteNonnegativeMatrix, FiniteVector, FiniteNonnegativeVector, HasInfiniteRadius, FillInfinite, CertifyGraphInverse, AddPhysicalContractionRadius, BoundGraphSolution, GraphArithmeticIndicator, if tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b2e045bbe0fa0615cde9321d1f050fb0e003242df9c3c54c8ad5fa110caf906a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_shell_physics_test.cpp support@1795-1925 helper/oracle/fixture/include/static assertion 구간: LastSolve, RecordNoise, for tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6b9392a417c11f51d48a97f27a0dc0542c4f005b1063414cb4b9403d1550a5e3 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_shell_physics_test.cpp support@2055-3075 helper/oracle/fixture/include/static assertion 구간: RecoverAcceleration, if, CompleteOriginalConstraints, RunPlate, for, Require, Trial, UpdateTrace, Differences, FrameError, RecoveredFrameError, RecoveredDifferences, AccelerationSplit tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 82a60a9bab9a1165f469ca2106a81e8e004ec8c859ea5301ab896f1da9329e8e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_shell_physics_test.cpp support@3561-3596 helper/oracle/fixture/include/static assertion 구간: ReadLifecycleLog, FailAfterAcceptedIncrement, while, if tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fdaacc9c5e36ed4d024ff28652880353526b01b1ea8bb6ab1fb4b1a86e0279f5 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_shell_physics_test.cpp support@3665-3666 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_shell_physics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_temporal_verification_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/analysis/hht_temporal_verification_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 03565773d95b6bad350d360bb1b2b2489c81b19c5877a5c7bcc6362c951fb013 03565773d95b6bad350d360bb1b2b2489c81b19c5877a5c7bcc6362c951fb013 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C01MatchesConstantMassRecurrenceAndSecondOrder HhtTemporalVerification.C01MatchesConstantMassRecurrenceAndSecondOrder; assertion 1개 tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C01MatchesConstantMassRecurrenceAndSecondOrder 유지 원문 검사 body 및 assertion 동일. 17fe998913063fd19bb6401c48b979bf998384569d88bb14e42ce753c13ca7e6 17fe998913063fd19bb6401c48b979bf998384569d88bb14e42ce753c13ca7e6 EXPECT_LE(error.constant_mass_recurrence_difference, 1.0e-12) EXPECT_LE(error.constant_mass_recurrence_difference, 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C03VariableMassIsSecondOrderAndNaiveWeightingIsNot HhtTemporalVerification.C03VariableMassIsSecondOrderAndNaiveWeightingIsNot; assertion 2개 tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C03VariableMassIsSecondOrderAndNaiveWeightingIsNot 유지 원문 검사 body 및 assertion 동일. c1215c7361ecf522a71c80084595558d3433a6afa624d162f76e2d3535f641f7 c1215c7361ecf522a71c80084595558d3433a6afa624d162f76e2d3535f641f7 EXPECT_GT(errors.back().auxiliary_difference, 0.0) | EXPECT_LT(order, 1.5) EXPECT_GT(errors.back().auxiliary_difference, 0.0) | EXPECT_LT(order, 1.5) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04aCoupledMasslessCoordinatesHaveSecondOrder HhtTemporalVerification.C04aCoupledMasslessCoordinatesHaveSecondOrder; assertion 2개 tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04aCoupledMasslessCoordinatesHaveSecondOrder 유지 원문 검사 body 및 assertion 동일. 3b88debb5cff0df98f0085bd9f58e4fc847d99251be567cee3fb1e277d42e2c0 3b88debb5cff0df98f0085bd9f58e4fc847d99251be567cee3fb1e277d42e2c0 EXPECT_LE(errors[grid].constant_mass_recurrence_difference, 1.0e-12) | EXPECT_LE(errors[grid].reduced_difference, 1.0e-10) EXPECT_LE(errors[grid].constant_mass_recurrence_difference, 1.0e-12) | EXPECT_LE(errors[grid].reduced_difference, 1.0e-10) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04aFinestReductionComparisonIsNumericallyResolved HhtTemporalVerification.C04aFinestReductionComparisonIsNumericallyResolved; assertion 1개 tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04aFinestReductionComparisonIsNumericallyResolved 유지 원문 검사 body 및 assertion 동일. 29e3b4fcb4310f058433aebe1547c1b5df41000e2e29b6cae9506c8dc4960555 29e3b4fcb4310f058433aebe1547c1b5df41000e2e29b6cae9506c8dc4960555 EXPECT_LE(error.reduced_difference, 1.0e-10) EXPECT_LE(error.reduced_difference, 1.0e-10) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04bFullCartesianMovingNullConverges HhtTemporalVerification.C04bFullCartesianMovingNullConverges; assertion 5개 tests/unit/analysis/hht_temporal_verification_test.cpp HhtTemporalVerification.C04bFullCartesianMovingNullConverges 유지 원문 검사 body 및 assertion 동일. d6e5f3a57a0983661a209be99ff249fae0ce28d7343f1a2d0e74de29a2ccfc95 d6e5f3a57a0983661a209be99ff249fae0ce28d7343f1a2d0e74de29a2ccfc95 EXPECT_LE(error.position_constraint, 1.0e-10) | EXPECT_LT(errors[grid].hidden_velocity, errors[grid - 1U].hidden_velocity) | EXPECT_LT(errors[grid].hidden_acceleration, errors[grid - 1U].hidden_acceleration) | EXPECT_LE(errors.back().hidden_velocity, 1.0e-6) | EXPECT_LE(errors.back().hidden_acceleration, 1.0e-4) EXPECT_LE(error.position_constraint, 1.0e-10) | EXPECT_LT(errors[grid].hidden_velocity, errors[grid - 1U].hidden_velocity) | EXPECT_LT(errors[grid].hidden_acceleration, errors[grid - 1U].hidden_acceleration) | EXPECT_LE(errors.back().hidden_velocity, 1.0e-6) | EXPECT_LE(errors.back().hidden_acceleration, 1.0e-4) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_temporal_verification_test.cpp support@1-451 helper/oracle/fixture/include/static assertion 구간: Case, ExactState, Dimension, Exact, if, Amplitudes, Equation, Evaluate, Multiply, Solve, Effective, Errors, Integrate, Sweep tests/unit/analysis/hht_temporal_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c427466b945f2d0b9cbfec1a629323a8f2d81fd7574c29f611baa1e6c07860ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_temporal_verification_test.cpp support@506-507 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_temporal_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_time_integration_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/analysis/hht_time_integration_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 068a7d057ec10b7f70a883d56ad54bb12f20873028b3bd7c34a1eb5c29adce20 068a7d057ec10b7f70a883d56ad54bb12f20873028b3bd7c34a1eb5c29adce20 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.KeepsPhysicalAndAlgorithmicAccelerationDistinct HhtTimeIntegrationTest.KeepsPhysicalAndAlgorithmicAccelerationDistinct; assertion 6개 tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.KeepsPhysicalAndAlgorithmicAccelerationDistinct 유지 원문 검사 body 및 assertion 동일. bc5623fd45c2fb228f48298ee47d4f1c5a287a1d18591f8e4f618814f7ffd9b8 bc5623fd45c2fb228f48298ee47d4f1c5a287a1d18591f8e4f618814f7ffd9b8 ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_NEAR(rates.Value().algorithmic_acceleration[0U], 2.0, 1e-14) | EXPECT_NEAR(rates.Value().acceleration[0U], 1.95 / 0.95, 1e-14) | EXPECT_NEAR(rates.Value().velocity[0U], 0.155, 1e-14) ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_NEAR(rates.Value().algorithmic_acceleration[0U], 2.0, 1e-14) | EXPECT_NEAR(rates.Value().acceleration[0U], 1.95 / 0.95, 1e-14) | EXPECT_NEAR(rates.Value().velocity[0U], 0.155, 1e-14) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.RejectsInvalidParametersAndTime HhtTimeIntegrationTest.RejectsInvalidParametersAndTime; assertion 7개 tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.RejectsInvalidParametersAndTime 유지 원문 검사 body 및 assertion 동일. 8f052b7f1a3b8fb822dc564e2365883b6827c3e9f566e2fd07dc2a67c9246816 8f052b7f1a3b8fb822dc564e2365883b6827c3e9f566e2fd07dc2a67c9246816 EXPECT_FALSE(MakeHhtParameters(0.01).HasValue()) | EXPECT_FALSE(MakeHhtParameters(-0.34).HasValue()) | ASSERT_TRUE(MakeHhtParameters(-1.0 / 3.0).HasValue()) | ASSERT_TRUE(parameters.HasValue()) | EXPECT_EQ(parameters.Value().beta, 0.25) | EXPECT_EQ(parameters.Value().gamma, 0.5) | EXPECT_FALSE(PredictHht(zero, zero, zero, 0.0, parameters.Value()).HasValue()) EXPECT_FALSE(MakeHhtParameters(0.01).HasValue()) | EXPECT_FALSE(MakeHhtParameters(-0.34).HasValue()) | ASSERT_TRUE(MakeHhtParameters(-1.0 / 3.0).HasValue()) | ASSERT_TRUE(parameters.HasValue()) | EXPECT_EQ(parameters.Value().beta, 0.25) | EXPECT_EQ(parameters.Value().gamma, 0.5) | EXPECT_FALSE(PredictHht(zero, zero, zero, 0.0, parameters.Value()).HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.StepOscillatorHasSecondOrderMaximumError HhtTimeIntegrationTest.StepOscillatorHasSecondOrderMaximumError; assertion 9개 tests/unit/analysis/hht_time_integration_test.cpp HhtTimeIntegrationTest.StepOscillatorHasSecondOrderMaximumError 유지 원문 검사 body 및 assertion 동일. 75ff32c40233ae10ed77f6cd3ffb13361d13d1c6a0acb05720d450f0d5f4d053 75ff32c40233ae10ed77f6cd3ffb13361d13d1c6a0acb05720d450f0d5f4d053 ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_GE(std::log2(previous_q / error_q), 1.8) | EXPECT_GE(std::log2(previous_v / error_v), 1.8) | EXPECT_GE(std::log2(previous_a / error_a), 1.8) | EXPECT_LT(error_q, 1e-4) | EXPECT_LT(error_v, 1e-4) | EXPECT_LT(error_a, 1e-4) ASSERT_TRUE(parameters.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_GE(std::log2(previous_q / error_q), 1.8) | EXPECT_GE(std::log2(previous_v / error_v), 1.8) | EXPECT_GE(std::log2(previous_a / error_a), 1.8) | EXPECT_LT(error_q, 1e-4) | EXPECT_LT(error_v, 1e-4) | EXPECT_LT(error_a, 1e-4) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/hht_time_integration_test.cpp support@1-9 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/analysis/hht_time_integration_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ae92a1fab37e019e61be13e7179238f0a1920b5d84bd46e196d22971dc9f979d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_time_integration_test.cpp support@40-41 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/hht_time_integration_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5f00a39140d4b7cac4217349f6c92160b11694234e9665516332598cd78d2637 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/hht_time_integration_test.cpp support@95-97 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/analysis/hht_time_integration_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/newton_iteration_log_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 11개 tests/unit/analysis/newton_iteration_log_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d3101c094646165ee241aa223245bcbf7d58accb1a8f018d2c83fed3f484b9dc d3101c094646165ee241aa223245bcbf7d58accb1a8f018d2c83fed3f484b9dc 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.WritesOneLfTerminated39FieldRecordInApprovedOrder NewtonIterationLog.WritesOneLfTerminated39FieldRecordInApprovedOrder; assertion 4개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.WritesOneLfTerminated39FieldRecordInApprovedOrder 유지 원문 검사 body 및 assertion 동일. 478006c691de24dd68fd00fb670f08f3df30134ddab9b8d2c1300bcb3bbf9b9b 478006c691de24dd68fd00fb670f08f3df30134ddab9b8d2c1300bcb3bbf9b9b "ASSERT_EQ(fields.size(), labels.size()) | EXPECT_EQ(fields[index].substr(0U, fields[index].find('=')), labels[index]) | EXPECT_EQ(FieldValue(fields, ""record""), ""record=newton-iteration"") | EXPECT_EQ(FieldValue(fields, ""schema""), ""schema=nsnr-log-v1"")" "ASSERT_EQ(fields.size(), labels.size()) | EXPECT_EQ(fields[index].substr(0U, fields[index].find('=')), labels[index]) | EXPECT_EQ(FieldValue(fields, ""record""), ""record=newton-iteration"") | EXPECT_EQ(FieldValue(fields, ""schema""), ""schema=nsnr-log-v1"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.FormatsFiniteNumbersForLocaleIndependentRoundTrip NewtonIterationLog.FormatsFiniteNumbersForLocaleIndependentRoundTrip; assertion 5개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.FormatsFiniteNumbersForLocaleIndependentRoundTrip 유지 원문 검사 body 및 assertion 동일. af49c065bc4263fecd936356c425497319528bab0b5bbf04bcc82a252eac4ed0 af49c065bc4263fecd936356c425497319528bab0b5bbf04bcc82a252eac4ed0 EXPECT_EQ(result.ec, std::errc{}) | EXPECT_EQ(result.ptr, value.data() + value.size()) | EXPECT_DOUBLE_EQ(parsed, 0.12345678901234567) | EXPECT_NE(value.find('.'), std::string::npos) | EXPECT_EQ(value.find(','), std::string::npos) EXPECT_EQ(result.ec, std::errc{}) | EXPECT_EQ(result.ptr, value.data() + value.size()) | EXPECT_DOUBLE_EQ(parsed, 0.12345678901234567) | EXPECT_NE(value.find('.'), std::string::npos) | EXPECT_EQ(value.find(','), std::string::npos) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesChannelDecisionsAndExplicitOutcomeFields NewtonIterationLog.SerializesChannelDecisionsAndExplicitOutcomeFields; assertion 13개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesChannelDecisionsAndExplicitOutcomeFields 유지 원문 검사 body 및 assertion 동일. a72dbdfb59417fdad8806c162889401a17f516cfe5f527c4b08d6bfd1c12d076 a72dbdfb59417fdad8806c162889401a17f516cfe5f527c4b08d6bfd1c12d076 "EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_channel""), std::string{prefix} + ""_channel="" + std::string{prefix}) | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_numerator_norm""), std::string{prefix} + ""_numerator_norm=0.0012345678901234567"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_denominator_scale""), std::string{prefix} + ""_denominator_scale=1.2345678901234567"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_branch""), std::string{prefix} + ""_branch=relative"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold""), std::string{prefix} + ""_threshold=0.01"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold_unit""), std::string{prefix} + ""_threshold_unit=1"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_pass""), std::string{prefix} + ""_pass=1"") | EXPECT_EQ(FieldValue(fields, ""last_completed_stage""), ""last_completed_stage=convergence-gates"") | EXPECT_EQ(FieldValue(fields, ""failing_stage""), ""failing_stage=none"") | EXPECT_EQ(FieldValue(fields, ""combined_pass""), ""combined_pass=1"") | EXPECT_EQ(FieldValue(fields, ""transition""), ""transition=accept"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=accepted"") | EXPECT_EQ(FieldValue(fields, ""diagnostic_code""), ""diagnostic_code=none"")" "EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_channel""), std::string{prefix} + ""_channel="" + std::string{prefix}) | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_numerator_norm""), std::string{prefix} + ""_numerator_norm=0.0012345678901234567"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_denominator_scale""), std::string{prefix} + ""_denominator_scale=1.2345678901234567"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_branch""), std::string{prefix} + ""_branch=relative"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold""), std::string{prefix} + ""_threshold=0.01"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold_unit""), std::string{prefix} + ""_threshold_unit=1"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_pass""), std::string{prefix} + ""_pass=1"") | EXPECT_EQ(FieldValue(fields, ""last_completed_stage""), ""last_completed_stage=convergence-gates"") | EXPECT_EQ(FieldValue(fields, ""failing_stage""), ""failing_stage=none"") | EXPECT_EQ(FieldValue(fields, ""combined_pass""), ""combined_pass=1"") | EXPECT_EQ(FieldValue(fields, ""transition""), ""transition=accept"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=accepted"") | EXPECT_EQ(FieldValue(fields, ""diagnostic_code""), ""diagnostic_code=none"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesEmptyChannelsAsTypedZeroScaleDecisions NewtonIterationLog.SerializesEmptyChannelsAsTypedZeroScaleDecisions; assertion 8개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesEmptyChannelsAsTypedZeroScaleDecisions 유지 원문 검사 body 및 assertion 동일. 52595116ab45dfc4a15efc3027ebda7ed94578e61ba5516a49952da4787b3aea 52595116ab45dfc4a15efc3027ebda7ed94578e61ba5516a49952da4787b3aea "EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_numerator_norm""), std::string{prefix} + ""_numerator_norm=0"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_denominator_scale""), std::string{prefix} + ""_denominator_scale=0"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_branch""), std::string{prefix} + ""_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold""), std::string{prefix} + ""_threshold=0.001"") | EXPECT_EQ(FieldValue(fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=force"") | EXPECT_EQ(FieldValue(fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=force*length"") | EXPECT_EQ(FieldValue(fields, ""correction_translation_threshold_unit""), ""correction_translation_threshold_unit=length"") | EXPECT_EQ(FieldValue(fields, ""correction_rotation_threshold_unit""), ""correction_rotation_threshold_unit=1"")" "EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_numerator_norm""), std::string{prefix} + ""_numerator_norm=0"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_denominator_scale""), std::string{prefix} + ""_denominator_scale=0"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_branch""), std::string{prefix} + ""_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, std::string{prefix} + ""_threshold""), std::string{prefix} + ""_threshold=0.001"") | EXPECT_EQ(FieldValue(fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=force"") | EXPECT_EQ(FieldValue(fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=force*length"") | EXPECT_EQ(FieldValue(fields, ""correction_translation_threshold_unit""), ""correction_translation_threshold_unit=length"") | EXPECT_EQ(FieldValue(fields, ""correction_rotation_threshold_unit""), ""correction_rotation_threshold_unit=1"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.EscapesStringsAndOmitsUnevaluatedFailureFields NewtonIterationLog.EscapesStringsAndOmitsUnevaluatedFailureFields; assertion 5개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.EscapesStringsAndOmitsUnevaluatedFailureFields 유지 원문 검사 body 및 assertion 동일. 2f3470b4d8bf9aacf7f50890f7b53816dfe990193f8af3a6d0cc066b88f7037d 2f3470b4d8bf9aacf7f50890f7b53816dfe990193f8af3a6d0cc066b88f7037d "EXPECT_EQ(ValueAfterEquals(fields[index]), not_evaluated) | EXPECT_EQ(FieldValue(fields, ""failing_stage""), ""failing_stage=load-boundary"") | EXPECT_EQ(FieldValue(fields, ""transition""), ""transition=fail\\ttransition"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=failed\\nrecord"") | EXPECT_EQ(FieldValue(fields, ""diagnostic_code""), ""diagnostic_code=external\\\\load\\r\\0"")" "EXPECT_EQ(ValueAfterEquals(fields[index]), not_evaluated) | EXPECT_EQ(FieldValue(fields, ""failing_stage""), ""failing_stage=load-boundary"") | EXPECT_EQ(FieldValue(fields, ""transition""), ""transition=fail\\ttransition"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=failed\\nrecord"") | EXPECT_EQ(FieldValue(fields, ""diagnostic_code""), ""diagnostic_code=external\\\\load\\r\\0"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.ReportsWriteFlushAndCloseStateFailures NewtonIterationLog.ReportsWriteFlushAndCloseStateFailures; assertion 2개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.ReportsWriteFlushAndCloseStateFailures 유지 원문 검사 body 및 assertion 동일. af4d515b9dc0ca7b6af0fa1cfae5d26577b3efc5ab172f3ee816db7044509e96 af4d515b9dc0ca7b6af0fa1cfae5d26577b3efc5ab172f3ee816db7044509e96 ASSERT_TRUE(closed_writer.Open(path).IsOk()) | ASSERT_TRUE(closed_writer.Close().IsOk()) ASSERT_TRUE(closed_writer.Open(path).IsOk()) | ASSERT_TRUE(closed_writer.Close().IsOk()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.LeavesZeroByteLogForNonNewtonControlledFailurePath NewtonIterationLog.LeavesZeroByteLogForNonNewtonControlledFailurePath; assertion 4개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.LeavesZeroByteLogForNonNewtonControlledFailurePath 유지 원문 검사 body 및 assertion 동일. 6e9b83153024bcd0b3e29402a533faf17fa26d708db7bc574ee13b8a1ffa9902 6e9b83153024bcd0b3e29402a533faf17fa26d708db7bc574ee13b8a1ffa9902 ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | EXPECT_TRUE(std::filesystem::exists(path)) | EXPECT_EQ(std::filesystem::file_size(path), 0U) ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | EXPECT_TRUE(std::filesystem::exists(path)) | EXPECT_EQ(std::filesystem::file_size(path), 0U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesEvaluatorProducedExternalScaleResidualDecisions NewtonIterationLog.SerializesEvaluatorProducedExternalScaleResidualDecisions; assertion 19개 tests/unit/analysis/newton_iteration_log_test.cpp NewtonIterationLog.SerializesEvaluatorProducedExternalScaleResidualDecisions 유지 원문 검사 body 및 assertion 동일. 883a7d046a0275863ab3ba8717420a46120cd4730070a07ebf692cad2fdc6b1c 883a7d046a0275863ab3ba8717420a46120cd4730070a07ebf692cad2fdc6b1c "ASSERT_EQ(zero_fields.size(), 39U) | EXPECT_EQ(FieldValue(zero_fields, ""schema""), ""schema=nsnr-log-v1"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_denominator_scale""), ""residual_force_denominator_scale=0"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_denominator_scale""), ""residual_moment_denominator_scale=0"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_branch""), ""residual_force_branch=zero-scale"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_branch""), ""residual_moment_branch=zero-scale"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_threshold""), ""residual_force_threshold=0.001"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_threshold""), ""residual_moment_threshold=0.001"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=force"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=force*length"") | ASSERT_EQ(relative_fields.size(), 39U) | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_denominator_scale""), ""residual_force_denominator_scale=2"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_denominator_scale""), ""residual_moment_denominator_scale=2"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_branch""), ""residual_force_branch=relative"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_branch""), ""residual_moment_branch=relative"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_threshold""), ""residual_force_threshold=0.01"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_threshold""), ""residual_moment_threshold=0.01"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=1"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=1"")" "ASSERT_EQ(zero_fields.size(), 39U) | EXPECT_EQ(FieldValue(zero_fields, ""schema""), ""schema=nsnr-log-v1"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_denominator_scale""), ""residual_force_denominator_scale=0"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_denominator_scale""), ""residual_moment_denominator_scale=0"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_branch""), ""residual_force_branch=zero-scale"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_branch""), ""residual_moment_branch=zero-scale"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_threshold""), ""residual_force_threshold=0.001"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_threshold""), ""residual_moment_threshold=0.001"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=force"") | EXPECT_EQ(FieldValue(zero_fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=force*length"") | ASSERT_EQ(relative_fields.size(), 39U) | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_denominator_scale""), ""residual_force_denominator_scale=2"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_denominator_scale""), ""residual_moment_denominator_scale=2"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_branch""), ""residual_force_branch=relative"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_branch""), ""residual_moment_branch=relative"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_threshold""), ""residual_force_threshold=0.01"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_threshold""), ""residual_moment_threshold=0.01"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_force_threshold_unit""), ""residual_force_threshold_unit=1"") | EXPECT_EQ(FieldValue(relative_fields, ""residual_moment_threshold_unit""), ""residual_moment_threshold_unit=1"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.WritesTimeAndAllTwoChannelMetrics DynamicNewtonIterationLog.WritesTimeAndAllTwoChannelMetrics; assertion 24개 tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.WritesTimeAndAllTwoChannelMetrics 유지 원문 검사 body 및 assertion 동일. 21230f3c31871e11f03f9fb62d0be2dc01e29447bf22847af4e642acd48094d0 21230f3c31871e11f03f9fb62d0be2dc01e29447bf22847af4e642acd48094d0 "ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(record).IsOk()) | ASSERT_TRUE(writer.Flush().IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | ASSERT_FALSE(bytes.empty()) | EXPECT_EQ(bytes.back(), '\n') | EXPECT_EQ(std::count(bytes.begin(), bytes.end(), '\n'), 1) | EXPECT_EQ(bytes.find('\r'), std::string::npos) | EXPECT_EQ(bytes.find(""target_factor""), std::string::npos) | EXPECT_EQ(bytes.find(""nsnr-log-v1""), std::string::npos) | EXPECT_EQ(fields.size(), 24U) | EXPECT_EQ(FieldValue(fields, ""record""), ""record=dynamic-newton-iteration"") | EXPECT_EQ(FieldValue(fields, ""schema""), ""schema=hht-log-v1"") | EXPECT_EQ(FieldValue(fields, ""increment""), ""increment=2"") | EXPECT_EQ(FieldValue(fields, ""iteration""), ""iteration=3"") | EXPECT_EQ(FieldValue(fields, ""time""), ""time=0.25"") | EXPECT_EQ(FieldValue(fields, ""stage""), ""stage=convergence"") | EXPECT_EQ(FieldValue(fields, ""residual_u_branch""), ""residual_u_branch=relative"") | EXPECT_EQ(FieldValue(fields, ""residual_phi_branch""), ""residual_phi_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, ""residual_pass""), ""residual_pass=1"") | EXPECT_EQ(FieldValue(fields, ""correction_pass""), ""correction_pass=1"") | EXPECT_EQ(parsed.ec, std::errc{}) | EXPECT_EQ(parsed.ptr, text.data() + text.size()) | EXPECT_DOUBLE_EQ(value, metric.second)" "ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(record).IsOk()) | ASSERT_TRUE(writer.Flush().IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | ASSERT_FALSE(bytes.empty()) | EXPECT_EQ(bytes.back(), '\n') | EXPECT_EQ(std::count(bytes.begin(), bytes.end(), '\n'), 1) | EXPECT_EQ(bytes.find('\r'), std::string::npos) | EXPECT_EQ(bytes.find(""target_factor""), std::string::npos) | EXPECT_EQ(bytes.find(""nsnr-log-v1""), std::string::npos) | EXPECT_EQ(fields.size(), 24U) | EXPECT_EQ(FieldValue(fields, ""record""), ""record=dynamic-newton-iteration"") | EXPECT_EQ(FieldValue(fields, ""schema""), ""schema=hht-log-v1"") | EXPECT_EQ(FieldValue(fields, ""increment""), ""increment=2"") | EXPECT_EQ(FieldValue(fields, ""iteration""), ""iteration=3"") | EXPECT_EQ(FieldValue(fields, ""time""), ""time=0.25"") | EXPECT_EQ(FieldValue(fields, ""stage""), ""stage=convergence"") | EXPECT_EQ(FieldValue(fields, ""residual_u_branch""), ""residual_u_branch=relative"") | EXPECT_EQ(FieldValue(fields, ""residual_phi_branch""), ""residual_phi_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, ""residual_pass""), ""residual_pass=1"") | EXPECT_EQ(FieldValue(fields, ""correction_pass""), ""correction_pass=1"") | EXPECT_EQ(parsed.ec, std::errc{}) | EXPECT_EQ(parsed.ptr, text.data() + text.size()) | EXPECT_DOUBLE_EQ(value, metric.second)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.EscapesFailureContextAndKeepsZeroScaleFailure DynamicNewtonIterationLog.EscapesFailureContextAndKeepsZeroScaleFailure; assertion 11개 tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.EscapesFailureContextAndKeepsZeroScaleFailure 유지 원문 검사 body 및 assertion 동일. 0f65cd37830b1416f99088775f625be1000782b62f4d62110c4c68d39859d164 0f65cd37830b1416f99088775f625be1000782b62f4d62110c4c68d39859d164 "ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(record).IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | EXPECT_EQ(std::count(bytes.begin(), bytes.end(), '\n'), 1) | EXPECT_EQ(FieldValue(fields, ""stage""), ""stage=mass\\tcheck"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=failed\\ntrial"") | EXPECT_EQ(FieldValue(fields, ""failure_code""), ""failure_code=dynamic\\\\mass\\rregularity"") | EXPECT_EQ(FieldValue(fields, ""residual_u_numerator""), ""residual_u_numerator=1"") | EXPECT_EQ(FieldValue(fields, ""residual_u_scale""), ""residual_u_scale=0"") | EXPECT_EQ(FieldValue(fields, ""residual_u_branch""), ""residual_u_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, ""residual_pass""), ""residual_pass=0"")" "ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(record).IsOk()) | ASSERT_TRUE(writer.Close().IsOk()) | EXPECT_EQ(std::count(bytes.begin(), bytes.end(), '\n'), 1) | EXPECT_EQ(FieldValue(fields, ""stage""), ""stage=mass\\tcheck"") | EXPECT_EQ(FieldValue(fields, ""outcome""), ""outcome=failed\\ntrial"") | EXPECT_EQ(FieldValue(fields, ""failure_code""), ""failure_code=dynamic\\\\mass\\rregularity"") | EXPECT_EQ(FieldValue(fields, ""residual_u_numerator""), ""residual_u_numerator=1"") | EXPECT_EQ(FieldValue(fields, ""residual_u_scale""), ""residual_u_scale=0"") | EXPECT_EQ(FieldValue(fields, ""residual_u_branch""), ""residual_u_branch=zero-scale"") | EXPECT_EQ(FieldValue(fields, ""residual_pass""), ""residual_pass=0"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.InvalidEvidencePreservesFlushedPrefixAndFailsLifecycle DynamicNewtonIterationLog.InvalidEvidencePreservesFlushedPrefixAndFailsLifecycle; assertion 4개 tests/unit/analysis/newton_iteration_log_test.cpp DynamicNewtonIterationLog.InvalidEvidencePreservesFlushedPrefixAndFailsLifecycle 유지 원문 검사 body 및 assertion 동일. 6b1f341aed7b1b9de8b7a2a0f6a8da67a51219a45b3cd7d50ed8535e224165bc 6b1f341aed7b1b9de8b7a2a0f6a8da67a51219a45b3cd7d50ed8535e224165bc ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(CompleteDynamicRecord()).IsOk()) | ASSERT_TRUE(writer.Flush().IsOk()) | EXPECT_EQ(ReadLogBytes(path), prefix) ASSERT_TRUE(writer.Open(path).IsOk()) | ASSERT_TRUE(writer.Write(CompleteDynamicRecord()).IsOk()) | ASSERT_TRUE(writer.Flush().IsOk()) | EXPECT_EQ(ReadLogBytes(path), prefix) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/newton_iteration_log_test.cpp support@1-148 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, ExpectLogOutputFailure, SplitTabs, while, FieldValue, for, ValueAfterEquals, VectorFrom, MakeDecision, CompleteRecord, WriteAndRead tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3f36093d9eeb5955577586d7074fcf8e441c479b923ff29b85d93f9fa0a014db 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/newton_iteration_log_test.cpp support@181-182 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 19386ea2961b53078a1506ac96caf435499c2ce389a6c4bc8b1d1334e3450291 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/newton_iteration_log_test.cpp support@198-199 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f968f62ecd764a93d0aebdeb90b34d4f95aea19862f1025a8f99eeaa0f513e90 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/newton_iteration_log_test.cpp support@233-234 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 66bb75d8fde94c7f7e4f4ae4f2d8b281f4bd149a8cda9b86613f7499da6a8973 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/newton_iteration_log_test.cpp support@275-276 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 71ce16e6c3d23ad2f7d4620ddc39c24e95471753e20be5b664c828f13cb2ebb1 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/newton_iteration_log_test.cpp support@303-304 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2289d04b1dccb850b21a2112940a26b854cfb47de6032c0404ffd2a9a1257809 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/newton_iteration_log_test.cpp support@324-325 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ed7ec9f2fea8c0942706f056482e9ebbdd7f1c498b5b8ba0a274bdb7a0e1705b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/newton_iteration_log_test.cpp support@336-337 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 611c87e9e2a44fb7f16bfcb907f0ca1acf1ffc4101a78393551ee362850e63bf 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/newton_iteration_log_test.cpp support@416-439 helper/oracle/fixture/include/static assertion 구간: CompleteDynamicRecord, ReadLogBytes tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9f652c12fbac5b067b0d88e3ec7dcfe31f9bb9bdad34b6a378d15c84ae567c39 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/newton_iteration_log_test.cpp support@564-565 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/newton_iteration_log_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/analysis/nonlinear_analysis_state_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 71de713d652861fd086471944762c2ce289442e6e2ba2e259db76fad20e63db1 71de713d652861fd086471944762c2ce289442e6e2ba2e259db76fad20e63db1 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.CreatesFactorZeroBaselineInStableIdentityOrder NonlinearAnalysisState.CreatesFactorZeroBaselineInStableIdentityOrder; assertion 10개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.CreatesFactorZeroBaselineInStableIdentityOrder 유지 원문 검사 body 및 assertion 동일. e055bd3a2aa163dedf599de37840273eb34bd74e59a8a94225360994929673f3 e055bd3a2aa163dedf599de37840273eb34bd74e59a8a94225360994929673f3 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(committed.increment_index, 0U) | EXPECT_DOUBLE_EQ(committed.load_factor, 0.0) | EXPECT_TRUE(committed.is_factor_zero_baseline) | EXPECT_TRUE(result.Value().AcceptedFrames().empty()) | ASSERT_EQ(committed.nodal_internal_order.size(), fixture.domain->Nodes().size()) | ASSERT_EQ(committed.nodal_source_ids.size(), fixture.domain->Nodes().size()) | EXPECT_EQ(committed.nodal_internal_order[node], node) | ASSERT_EQ(vector->Size(), fixture.dofs->FullDofCount()) | EXPECT_DOUBLE_EQ((*vector)[index], 0.0) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(committed.increment_index, 0U) | EXPECT_DOUBLE_EQ(committed.load_factor, 0.0) | EXPECT_TRUE(committed.is_factor_zero_baseline) | EXPECT_TRUE(result.Value().AcceptedFrames().empty()) | ASSERT_EQ(committed.nodal_internal_order.size(), fixture.domain->Nodes().size()) | ASSERT_EQ(committed.nodal_source_ids.size(), fixture.domain->Nodes().size()) | EXPECT_EQ(committed.nodal_internal_order[node], node) | ASSERT_EQ(vector->Size(), fixture.dofs->FullDofCount()) | EXPECT_DOUBLE_EQ((*vector)[index], 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.RejectsInvalidBaselineInventoryBeforeStateCreation NonlinearAnalysisState.RejectsInvalidBaselineInventoryBeforeStateCreation; assertion 1개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.RejectsInvalidBaselineInventoryBeforeStateCreation 유지 원문 검사 body 및 assertion 동일. 4ec9496b06d3904c913dea2c3ce00de01fbb8f56585ffc969b4c3ef52fcd464d 4ec9496b06d3904c913dea2c3ce00de01fbb8f56585ffc969b4c3ef52fcd464d EXPECT_FALSE(result.HasValue()) EXPECT_FALSE(result.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.RejectsNonfiniteBaselineAndDofMismatch NonlinearAnalysisState.RejectsNonfiniteBaselineAndDofMismatch; assertion 4개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.RejectsNonfiniteBaselineAndDofMismatch 유지 원문 검사 body 및 assertion 동일. 3ba1563177a1cb2640413807396826918fd0e25aa71517fdf1ec53fb5054735a 3ba1563177a1cb2640413807396826918fd0e25aa71517fdf1ec53fb5054735a EXPECT_FALSE(fesa::NonlinearAnalysisState::Create( *fixture.domain, *fixture.dofs, nonfinite_triad) .HasValue()) | EXPECT_FALSE(fesa::NonlinearAnalysisState::Create( *fixture.domain, *fixture.dofs, nonfinite_director) .HasValue()) | ASSERT_TRUE(empty_domain_result.HasValue()) | EXPECT_FALSE(dof_mismatch.HasValue()) EXPECT_FALSE(fesa::NonlinearAnalysisState::Create( *fixture.domain, *fixture.dofs, nonfinite_triad) .HasValue()) | EXPECT_FALSE(fesa::NonlinearAnalysisState::Create( *fixture.domain, *fixture.dofs, nonfinite_director) .HasValue()) | ASSERT_TRUE(empty_domain_result.HasValue()) | EXPECT_FALSE(dof_mismatch.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.PreservesDuplicateLabelsWhenInstancesDiffer NonlinearAnalysisState.PreservesDuplicateLabelsWhenInstancesDiffer; assertion 7개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.PreservesDuplicateLabelsWhenInstancesDiffer 유지 원문 검사 body 및 assertion 동일. e5a32acb933b1e65d2b1efef48bdee5223bd4276460d245229bf10410bfbf59b e5a32acb933b1e65d2b1efef48bdee5223bd4276460d245229bf10410bfbf59b ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | ASSERT_TRUE(dofs_result.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().CommittedState().nodal_source_ids.size(), 2U) | EXPECT_EQ(result.Value().CommittedState().nodal_source_ids[0U].source_label, result.Value().CommittedState().nodal_source_ids[1U].source_label) | EXPECT_NE(result.Value().CommittedState().nodal_source_ids[0U].instance_name, result.Value().CommittedState().nodal_source_ids[1U].instance_name) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | ASSERT_TRUE(dofs_result.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().CommittedState().nodal_source_ids.size(), 2U) | EXPECT_EQ(result.Value().CommittedState().nodal_source_ids[0U].source_label, result.Value().CommittedState().nodal_source_ids[1U].source_label) | EXPECT_NE(result.Value().CommittedState().nodal_source_ids[0U].instance_name, result.Value().CommittedState().nodal_source_ids[1U].instance_name) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.StartsIndependentTrialAndDiscardPreservesCommit NonlinearAnalysisState.StartsIndependentTrialAndDiscardPreservesCommit; assertion 3개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.StartsIndependentTrialAndDiscardPreservesCommit 유지 원문 검사 body 및 assertion 동일. c8246ffc811a47dcc57b704918eb2f14188fef66dd65d0f63ce0892482986949 c8246ffc811a47dcc57b704918eb2f14188fef66dd65d0f63ce0892482986949 ASSERT_TRUE(trial.HasValue()) | EXPECT_NE(trial.Value().displacement.Data(), state.CommittedState().displacement.Data()) | EXPECT_DOUBLE_EQ(state.CommittedState().nodal_director[0U][2U], 1.0) ASSERT_TRUE(trial.HasValue()) | EXPECT_NE(trial.Value().displacement.Data(), state.CommittedState().displacement.Data()) | EXPECT_DOUBLE_EQ(state.CommittedState().nodal_director[0U][2U], 1.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.CommitsOnlyStableCompleteAcceptedFrames NonlinearAnalysisState.CommitsOnlyStableCompleteAcceptedFrames; assertion 16개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.CommitsOnlyStableCompleteAcceptedFrames 유지 원문 검사 body 및 assertion 동일. c2c798a56a4a0a3e7e44c9a7208e608f5244ce3ba8f2e2204f03adf4dafdbac9 c2c798a56a4a0a3e7e44c9a7208e608f5244ce3ba8f2e2204f03adf4dafdbac9 ASSERT_TRUE(state.CommitAcceptedFrame(first).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_EQ(state.AcceptedFrames()[0U].frame_index, 0U) | EXPECT_EQ(state.AcceptedFrames()[0U].increment_index, 1U) | EXPECT_FALSE(state.AcceptedFrames()[0U].is_factor_one) | EXPECT_EQ(state.CommittedState().increment_index, 1U) | EXPECT_FALSE(state.CommittedState().is_factor_zero_baseline) | EXPECT_DOUBLE_EQ(state.CommittedState().residual[0U], 5.0) | EXPECT_DOUBLE_EQ(state.CommittedState().reaction[0U], 5.0) | ASSERT_EQ(state.CommittedState().shell_results.size(), 4U) | EXPECT_EQ(state.CommittedState().shell_results[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(state.CommittedState().shell_results[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | ASSERT_TRUE(state.CommitAcceptedFrame(final_frame).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 2U) | EXPECT_EQ(state.AcceptedFrames()[1U].frame_index, 1U) | EXPECT_TRUE(state.AcceptedFrames()[1U].is_factor_one) ASSERT_TRUE(state.CommitAcceptedFrame(first).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_EQ(state.AcceptedFrames()[0U].frame_index, 0U) | EXPECT_EQ(state.AcceptedFrames()[0U].increment_index, 1U) | EXPECT_FALSE(state.AcceptedFrames()[0U].is_factor_one) | EXPECT_EQ(state.CommittedState().increment_index, 1U) | EXPECT_FALSE(state.CommittedState().is_factor_zero_baseline) | EXPECT_DOUBLE_EQ(state.CommittedState().residual[0U], 5.0) | EXPECT_DOUBLE_EQ(state.CommittedState().reaction[0U], 5.0) | ASSERT_EQ(state.CommittedState().shell_results.size(), 4U) | EXPECT_EQ(state.CommittedState().shell_results[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(state.CommittedState().shell_results[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | ASSERT_TRUE(state.CommitAcceptedFrame(final_frame).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 2U) | EXPECT_EQ(state.AcceptedFrames()[1U].frame_index, 1U) | EXPECT_TRUE(state.AcceptedFrames()[1U].is_factor_one) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.AtomicallyRejectsMalformedAcceptedFrames NonlinearAnalysisState.AtomicallyRejectsMalformedAcceptedFrames; assertion 7개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.AtomicallyRejectsMalformedAcceptedFrames 유지 원문 검사 body 및 assertion 동일. c5236c5ae93e09ba72c3ae4a4deefec8eff58282d70ec1a3125f9895785189f5 c5236c5ae93e09ba72c3ae4a4deefec8eff58282d70ec1a3125f9895785189f5 "ASSERT_TRUE(state.CommitAcceptedFrame(first).IsOk()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-accepted-state"") | EXPECT_EQ(state.AcceptedFrames().size(), frame_count) | EXPECT_EQ(state.CommittedState().increment_index, before.increment_index) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, before.load_factor)" "ASSERT_TRUE(state.CommitAcceptedFrame(first).IsOk()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-accepted-state"") | EXPECT_EQ(state.AcceptedFrames().size(), frame_count) | EXPECT_EQ(state.CommittedState().increment_index, before.increment_index) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, before.load_factor)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.AtomicallyRejectsNonfiniteAcceptedFrame NonlinearAnalysisState.AtomicallyRejectsNonfiniteAcceptedFrame; assertion 6개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.AtomicallyRejectsNonfiniteAcceptedFrame 유지 원문 검사 body 및 assertion 동일. cc5e4a6773c3318499122f00929c214489dbb84190929c6eb5997ced2860c51c cc5e4a6773c3318499122f00929c214489dbb84190929c6eb5997ced2860c51c "ASSERT_TRUE(state.CommitAcceptedFrame(valid).IsOk()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-accepted-state"") | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, before.load_factor)" "ASSERT_TRUE(state.CommitAcceptedFrame(valid).IsOk()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-accepted-state"") | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, before.load_factor)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.StoresNoUnapprovedVerificationMetrics NonlinearAnalysisState.StoresNoUnapprovedVerificationMetrics; assertion 2개 tests/unit/analysis/nonlinear_analysis_state_test.cpp NonlinearAnalysisState.StoresNoUnapprovedVerificationMetrics 유지 원문 검사 body 및 assertion 동일. b69ab505986f7c4e96d680112f051eb4ad264b5a4b0d00534017599fbcec886d b69ab505986f7c4e96d680112f051eb4ad264b5a4b0d00534017599fbcec886d EXPECT_FALSE((HasVerificationMetrics::value)) | EXPECT_FALSE((HasVerificationMetrics::value)) EXPECT_FALSE((HasVerificationMetrics::value)) | EXPECT_FALSE((HasVerificationMetrics::value)) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp support@1-184 helper/oracle/fixture/include/static assertion 구간: Fixture, MakeFixture, if, MakeBaseline, MakeState, MakeShellRow, MakeShellRows, MakeFrame, T, HasVerificationMetrics, ExpectSourceIdEqual, ExpectVectorEqual tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2e56a14c0097a3200d0e43093dd79e3af9fbde80419d3561620f97d79996642e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp support@215-216 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bd37a239145c5cebe3e142065918acfbe17a8b4a9038df01ef0c3dc0653dd7a6 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp support@251-252 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8fe7a38902e0f0554e724e21bd6626055452ad1f94713ee1115cc0415d753fb2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp support@276-277 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 284e6386154a0d7de7b977bffbccc58a0cccdd9f7d48f388d64f6bedeab4288e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp support@318-319 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 00e2be860cc981a9ca4aa4ec18c34ff5e6071b8d9df6a4e02a2b41acdfb1cb7c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp support@336-338 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7926abaabd465ec5f2df8c1281d0d9f682d634e296091035784916bea8ca5ed0 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp support@369-370 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 15735dfe66660b9315679d163a8e4573eb57893a4db8bf85e7542c4cf8cc664b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp support@431-432 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 44e172af12e1ad94ad0079a1ed7dcc3e57c9ad141594f6626542163024522747 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_analysis_state_test.cpp support@451-452 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5064d5792cabc37a1beb0d4085f57716fdb52851fdf8bff86383f061be0fd2ae 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 13개 tests/unit/analysis/nonlinear_static_control_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d12853400861a54e112f715d41be7470bf32caff38740282301f452c636a668c d12853400861a54e112f715d41be7470bf32caff38740282301f452c636a668c 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearStaticControl.BuildsFixedFactorSequenceWithExactEndpoint NonlinearStaticControl.BuildsFixedFactorSequenceWithExactEndpoint; assertion 10개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearStaticControl.BuildsFixedFactorSequenceWithExactEndpoint 유지 원문 검사 body 및 assertion 동일. 03cf5328984955e5bd0957b26938892dbadee29219434b903c919e1c159bfc6f 03cf5328984955e5bd0957b26938892dbadee29219434b903c919e1c159bfc6f ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().size(), 10U) | EXPECT_EQ(increment.increment_index, static_cast(index + 1U)) | EXPECT_DOUBLE_EQ(increment.load_factor, static_cast(index + 1U) * 0.1) | EXPECT_EQ(increment.is_factor_one, index + 1U == result.Value().size()) | EXPECT_DOUBLE_EQ(result.Value().back().load_factor, 1.0) | ASSERT_TRUE(one_hundred_result.HasValue()) | ASSERT_EQ(one_hundred_result.Value().size(), 100U) | EXPECT_EQ(one_hundred_result.Value().back().increment_index, 100U) | EXPECT_TRUE(one_hundred_result.Value().back().is_factor_one) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().size(), 10U) | EXPECT_EQ(increment.increment_index, static_cast(index + 1U)) | EXPECT_DOUBLE_EQ(increment.load_factor, static_cast(index + 1U) * 0.1) | EXPECT_EQ(increment.is_factor_one, index + 1U == result.Value().size()) | EXPECT_DOUBLE_EQ(result.Value().back().load_factor, 1.0) | ASSERT_TRUE(one_hundred_result.HasValue()) | ASSERT_EQ(one_hundred_result.Value().size(), 100U) | EXPECT_EQ(one_hundred_result.Value().back().increment_index, 100U) | EXPECT_TRUE(one_hundred_result.Value().back().is_factor_one) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearStaticControl.IgnoresPositiveMinimumAndMaximumDuringStepping NonlinearStaticControl.IgnoresPositiveMinimumAndMaximumDuringStepping; assertion 5개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearStaticControl.IgnoresPositiveMinimumAndMaximumDuringStepping 유지 원문 검사 body 및 assertion 동일. 99470076262ba5d8b53bbdc942349594b403bf7b4c1ffbb01e172701fb11f882 99470076262ba5d8b53bbdc942349594b403bf7b4c1ffbb01e172701fb11f882 ASSERT_TRUE(first_result.HasValue()) | ASSERT_TRUE(second_result.HasValue()) | ASSERT_EQ(first_result.Value().size(), second_result.Value().size()) | EXPECT_DOUBLE_EQ(first_result.Value()[index].load_factor, second_result.Value()[index].load_factor) | EXPECT_EQ(first_result.Value()[index].increment_index, second_result.Value()[index].increment_index) ASSERT_TRUE(first_result.HasValue()) | ASSERT_TRUE(second_result.HasValue()) | ASSERT_EQ(first_result.Value().size(), second_result.Value().size()) | EXPECT_DOUBLE_EQ(first_result.Value()[index].load_factor, second_result.Value()[index].load_factor) | EXPECT_EQ(first_result.Value()[index].increment_index, second_result.Value()[index].increment_index) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.AppliesAbsoluteBoundaryTargetsWithoutCorrection NonlinearLoadBoundary.AppliesAbsoluteBoundaryTargetsWithoutCorrection; assertion 5개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.AppliesAbsoluteBoundaryTargetsWithoutCorrection 유지 원문 검사 body 및 assertion 동일. 5e3b97613fd46bce571853e5787057d6cae4c99e6b8114c00823878a5a43e764 5e3b97613fd46bce571853e5787057d6cae4c99e6b8114c00823878a5a43e764 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 2U) | EXPECT_DOUBLE_EQ(result.Value()[0U], 1.0) | EXPECT_DOUBLE_EQ(result.Value()[1U], -0.125) | EXPECT_EQ(TrialCoordinates(fixture)[constrained], 0.0) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 2U) | EXPECT_DOUBLE_EQ(result.Value()[0U], 1.0) | EXPECT_DOUBLE_EQ(result.Value()[1U], -0.125) | EXPECT_EQ(TrialCoordinates(fixture)[constrained], 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.AssemblesEverySharedNodeLoadOnceInFixedGlobalAxes NonlinearLoadBoundary.AssemblesEverySharedNodeLoadOnceInFixedGlobalAxes; assertion 7개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.AssemblesEverySharedNodeLoadOnceInFixedGlobalAxes 유지 원문 검사 body 및 assertion 동일. f9fd946c0c146cac052d1f2ce57c48e989e1700b61bc00e546bd78376a8707ba f9fd946c0c146cac052d1f2ce57c48e989e1700b61bc00e546bd78376a8707ba ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().generalized_external_force.Size(), fixture.dofs->FullDofCount()) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[0U], 2.0) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[1U], -1.0) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[3U], 0.5) | EXPECT_DOUBLE_EQ(fixture.domain->Steps()[0U] .ConcentratedLoads()[0U] .GlobalComponents()[0U], 8.0) | EXPECT_DOUBLE_EQ(fixture.domain->Steps()[0U] .ConcentratedLoads()[2U] .GlobalComponents()[3U], 2.0) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().generalized_external_force.Size(), fixture.dofs->FullDofCount()) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[0U], 2.0) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[1U], -1.0) | EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[3U], 0.5) | EXPECT_DOUBLE_EQ(fixture.domain->Steps()[0U] .ConcentratedLoads()[0U] .GlobalComponents()[0U], 8.0) | EXPECT_DOUBLE_EQ(fixture.domain->Steps()[0U] .ConcentratedLoads()[2U] .GlobalComponents()[3U], 2.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.RejectsDirectorAlignedMomentAboveTheExactBand NonlinearLoadBoundary.RejectsDirectorAlignedMomentAboveTheExactBand; assertion 4개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.RejectsDirectorAlignedMomentAboveTheExactBand 유지 원문 검사 body 및 assertion 동일. 6fd8c584b65e4594d07dee3e89a681ebbf4990173da1ace05bde715753ca71f3 6fd8c584b65e4594d07dee3e89a681ebbf4990173da1ace05bde715753ca71f3 "EXPECT_TRUE( fesa::CheckMomentAdmissibility(director, {1.0, 0.0, 1.0e-12}).IsOk()) | EXPECT_FALSE(rejected.IsOk()) | ASSERT_EQ(rejected.Diagnostics().size(), 1U) | EXPECT_EQ(rejected.Diagnostics()[0U].code, ""unsupported-drilling-load"")" "EXPECT_TRUE( fesa::CheckMomentAdmissibility(director, {1.0, 0.0, 1.0e-12}).IsOk()) | EXPECT_FALSE(rejected.IsOk()) | ASSERT_EQ(rejected.Diagnostics().size(), 1U) | EXPECT_EQ(rejected.Diagnostics()[0U].code, ""unsupported-drilling-load"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.PreservesSourceOrderDuringGlobalAccumulation NonlinearLoadBoundary.PreservesSourceOrderDuringGlobalAccumulation; assertion 6개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.PreservesSourceOrderDuringGlobalAccumulation 유지 원문 검사 body 및 assertion 동일. c3bb30245b6f1676ea97c2d939256da763d500b601a670f86968efa43d87b75a c3bb30245b6f1676ea97c2d939256da763d500b601a670f86968efa43d87b75a ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().generalized_external_force[0U], 1.0) | EXPECT_EQ(first.Value().generalized_external_tangent.RowOffsets(), second.Value().generalized_external_tangent.RowOffsets()) | EXPECT_EQ(first.Value().generalized_external_tangent.ColumnIndices(), second.Value().generalized_external_tangent.ColumnIndices()) | EXPECT_EQ(first.Value().generalized_external_tangent.Values(), second.Value().generalized_external_tangent.Values()) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().generalized_external_force[0U], 1.0) | EXPECT_EQ(first.Value().generalized_external_tangent.RowOffsets(), second.Value().generalized_external_tangent.RowOffsets()) | EXPECT_EQ(first.Value().generalized_external_tangent.ColumnIndices(), second.Value().generalized_external_tangent.ColumnIndices()) | EXPECT_EQ(first.Value().generalized_external_tangent.Values(), second.Value().generalized_external_tangent.Values()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.DifferentiatesOneFixedSpatialMomentAndUsesSubtraction NonlinearLoadBoundary.DifferentiatesOneFixedSpatialMomentAndUsesSubtraction; assertion 6개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearLoadBoundary.DifferentiatesOneFixedSpatialMomentAndUsesSubtraction 유지 원문 검사 body 및 assertion 동일. e3040db107a7fc1174faf58c76c4c5915e3a021adbdc44927ec95bf2dbf7877b e3040db107a7fc1174faf58c76c4c5915e3a021adbdc44927ec95bf2dbf7877b ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_LE(MaximumAbsoluteDifference(derivative, tangent_action), 1.0e-8) | EXPECT_DOUBLE_EQ(residual[3U], 5.0 - result.Value().generalized_external_force[3U]) | EXPECT_DOUBLE_EQ( -tangent_action[3U], -result.Value().generalized_external_tangent.Multiply(direction)[3U]) ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_LE(MaximumAbsoluteDifference(derivative, tangent_action), 1.0e-8) | EXPECT_DOUBLE_EQ(residual[3U], 5.0 - result.Value().generalized_external_force[3U]) | EXPECT_DOUBLE_EQ( -tangent_action[3U], -result.Value().generalized_external_tangent.Multiply(direction)[3U]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.UsesOwnedRelativeThresholdsForEveryChannel NonlinearConvergence.UsesOwnedRelativeThresholdsForEveryChannel; assertion 8개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.UsesOwnedRelativeThresholdsForEveryChannel 유지 원문 검사 body 및 assertion 동일. 6cfe9ea574efccc73afb0318189186da892593dc1ca54dcecc940c9f96d4b6ae 6cfe9ea574efccc73afb0318189186da892593dc1ca54dcecc940c9f96d4b6ae EXPECT_TRUE(result.combined_passed) | EXPECT_FALSE(decision.identity.empty()) | EXPECT_DOUBLE_EQ(decision.numerator_norm, 1.0e-2) | EXPECT_DOUBLE_EQ(decision.denominator_scale, 1.0) | EXPECT_EQ(decision.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(decision.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(decision.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(decision.passed) EXPECT_TRUE(result.combined_passed) | EXPECT_FALSE(decision.identity.empty()) | EXPECT_DOUBLE_EQ(decision.numerator_norm, 1.0e-2) | EXPECT_DOUBLE_EQ(decision.denominator_scale, 1.0) | EXPECT_EQ(decision.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(decision.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(decision.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(decision.passed) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.AppliesTypedZeroScaleGatesToEmptyChannels NonlinearConvergence.AppliesTypedZeroScaleGatesToEmptyChannels; assertion 7개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.AppliesTypedZeroScaleGatesToEmptyChannels 유지 원문 검사 body 및 assertion 동일. 6dae4244b6d4b6af487b476312174ee8d379aae3416c77f5833eeb43b1ac0a2f 6dae4244b6d4b6af487b476312174ee8d379aae3416c77f5833eeb43b1ac0a2f EXPECT_TRUE(result.combined_passed) | EXPECT_DOUBLE_EQ(decisions[index].numerator_norm, 0.0) | EXPECT_DOUBLE_EQ(decisions[index].denominator_scale, 0.0) | EXPECT_EQ(decisions[index].branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(decisions[index].threshold, fesa::kNewtonZeroScaleThreshold) | EXPECT_EQ(decisions[index].threshold_unit, units[index]) | EXPECT_TRUE(decisions[index].passed) EXPECT_TRUE(result.combined_passed) | EXPECT_DOUBLE_EQ(decisions[index].numerator_norm, 0.0) | EXPECT_DOUBLE_EQ(decisions[index].denominator_scale, 0.0) | EXPECT_EQ(decisions[index].branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(decisions[index].threshold, fesa::kNewtonZeroScaleThreshold) | EXPECT_EQ(decisions[index].threshold_unit, units[index]) | EXPECT_TRUE(decisions[index].passed) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.SelectsTypedZeroScaleFromExactZeroExternalResidualChannels NonlinearConvergence.SelectsTypedZeroScaleFromExactZeroExternalResidualChannels; assertion 10개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.SelectsTypedZeroScaleFromExactZeroExternalResidualChannels 유지 원문 검사 body 및 assertion 동일. 83f1b0cae81f3d8f7b93fe76c1857758f18b6e9d9c97b091cb9e101fb23f1f3e 83f1b0cae81f3d8f7b93fe76c1857758f18b6e9d9c97b091cb9e101fb23f1f3e EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(decisions[index].denominator_scale, 0.0) | EXPECT_EQ(decisions[index].branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(decisions[index].threshold, fesa::kNewtonZeroScaleThreshold) | EXPECT_EQ(decisions[index].threshold_unit, units[index]) | EXPECT_TRUE(decisions[index].passed) | EXPECT_FALSE(force_rejected.force_residual.passed) | EXPECT_FALSE(force_rejected.combined_passed) | EXPECT_FALSE(moment_rejected.moment_residual.passed) | EXPECT_FALSE(moment_rejected.combined_passed) EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(decisions[index].denominator_scale, 0.0) | EXPECT_EQ(decisions[index].branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(decisions[index].threshold, fesa::kNewtonZeroScaleThreshold) | EXPECT_EQ(decisions[index].threshold_unit, units[index]) | EXPECT_TRUE(decisions[index].passed) | EXPECT_FALSE(force_rejected.force_residual.passed) | EXPECT_FALSE(force_rejected.combined_passed) | EXPECT_FALSE(moment_rejected.moment_residual.passed) | EXPECT_FALSE(moment_rejected.combined_passed) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.UsesRelativeResidualScaleOnlyWhenMatchingExternalScaleIsNonzero NonlinearConvergence.UsesRelativeResidualScaleOnlyWhenMatchingExternalScaleIsNonzero; assertion 10개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.UsesRelativeResidualScaleOnlyWhenMatchingExternalScaleIsNonzero 유지 원문 검사 body 및 assertion 동일. 6d42f6c27a543b480e86044b3b77d0943d8cb2d2482dd1aba56d30e16a39058c 6d42f6c27a543b480e86044b3b77d0943d8cb2d2482dd1aba56d30e16a39058c EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(decision.denominator_scale, 2.0) | EXPECT_EQ(decision.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(decision.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(decision.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(decision.passed) | EXPECT_FALSE(fesa::EvaluateNewtonConvergence(input).force_residual.passed) | EXPECT_FALSE(fesa::EvaluateNewtonConvergence(input).moment_residual.passed) | EXPECT_FALSE(relative_rejected.force_residual.passed) | EXPECT_FALSE(relative_rejected.combined_passed) EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(decision.denominator_scale, 2.0) | EXPECT_EQ(decision.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(decision.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(decision.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(decision.passed) | EXPECT_FALSE(fesa::EvaluateNewtonConvergence(input).force_residual.passed) | EXPECT_FALSE(fesa::EvaluateNewtonConvergence(input).moment_residual.passed) | EXPECT_FALSE(relative_rejected.force_residual.passed) | EXPECT_FALSE(relative_rejected.combined_passed) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.RejectsNonfiniteResidualInputsBeforeSelectingOrAcceptingAChannel NonlinearConvergence.RejectsNonfiniteResidualInputsBeforeSelectingOrAcceptingAChannel; assertion 7개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.RejectsNonfiniteResidualInputsBeforeSelectingOrAcceptingAChannel 유지 원문 검사 body 및 assertion 동일. df264b5cae771cdeb5f4ea6aa1ca08c5353da8a51e88409b08509e598dd6e79e df264b5cae771cdeb5f4ea6aa1ca08c5353da8a51e88409b08509e598dd6e79e EXPECT_FALSE(decision.passed) | EXPECT_FALSE(result.combined_passed) | EXPECT_TRUE(relative.force_residual.passed) | EXPECT_DOUBLE_EQ(relative.force_residual.denominator_scale, smallest_external) | EXPECT_EQ(relative.force_residual.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(relative.force_residual.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(relative.force_residual.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) EXPECT_FALSE(decision.passed) | EXPECT_FALSE(result.combined_passed) | EXPECT_TRUE(relative.force_residual.passed) | EXPECT_DOUBLE_EQ(relative.force_residual.denominator_scale, smallest_external) | EXPECT_EQ(relative.force_residual.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_DOUBLE_EQ(relative.force_residual.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(relative.force_residual.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.RequiresEveryResidualAndCorrectionChannelToPass NonlinearConvergence.RequiresEveryResidualAndCorrectionChannelToPass; assertion 8개 tests/unit/analysis/nonlinear_static_control_test.cpp NonlinearConvergence.RequiresEveryResidualAndCorrectionChannelToPass 유지 원문 검사 body 및 assertion 동일. a832011e0feb435ce0aa354c482a5af20cdcc12a5b3ee069a6805fa2760daa0f a832011e0feb435ce0aa354c482a5af20cdcc12a5b3ee069a6805fa2760daa0f EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(accepted.translation_correction.denominator_scale, 1.0) | EXPECT_DOUBLE_EQ(accepted.rotation_correction.denominator_scale, 1.0) | EXPECT_DOUBLE_EQ(accepted.translation_correction.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_DOUBLE_EQ(accepted.rotation_correction.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(accepted.translation_correction.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_EQ(accepted.rotation_correction.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_FALSE(result.combined_passed) EXPECT_TRUE(accepted.combined_passed) | EXPECT_DOUBLE_EQ(accepted.translation_correction.denominator_scale, 1.0) | EXPECT_DOUBLE_EQ(accepted.rotation_correction.denominator_scale, 1.0) | EXPECT_DOUBLE_EQ(accepted.translation_correction.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_DOUBLE_EQ(accepted.rotation_correction.threshold, fesa::kNewtonRelativeThreshold) | EXPECT_EQ(accepted.translation_correction.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_EQ(accepted.rotation_correction.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_FALSE(result.combined_passed) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@1-158 helper/oracle/fixture/include/static assertion 구간: VectorFrom, Fixture, if, TrialCoordinates, AddScaled, MaximumAbsoluteDifference, RelativeConvergenceInput, ExactZeroExternalResidualInput tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6a0d6117066d7bc0244668abef8eff3eb3f09fefb66e56d8ff7dae4978b297e2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@184-185 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a728c5ddd282acb272a289129b2beaaf82361231a53854f9678579e963ca7bf5 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@204-205 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5d5d51f179b49fab4320bca3fb1a67c9514c031c6eb4146cd06e0fd67d94e32b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@221-222 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b88abcc3396bee3d80864ac6e5b5d69fd7a65489104a60fee981bfb1f80dcf66 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@250-251 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6d84fb8f223d3d49be0a8b3f94cc76dc49eb532f98b45a89eaf3f6b7c0d9d928 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@262-263 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 891df0432d2d49bd73ab72565c58f1833e37588e6e1f011e9622f474b2164e52 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@285-286 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. de1e68c7ef81aa7e6db55005224ab3b7051d71f20a74f0a005cadc3d2950055f 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@324-325 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 577d29344a758ac62f396a9e34591982aab171dd34082649c877701cf8834124 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@346-347 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 66b90623292bf823c4ec82313343514c4d6118d131a2112173300ffc87582cc6 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@376-377 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0413b1a93aa4812b4c92ab8aeba36ae964d35ffceb3ae14bde002cc02b4a128a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@414-415 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c2e9bb7f999bfecdf11b504b8f331912407fc2aace0ed3334b7095b7686f5f8a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@454-455 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. dc36777ce188869f3f1f91b7963b011739df7f02cac290f3dfac4efbe4bf15bf 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@500-501 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d661490b198257d4473dc5b81ce890e2389d53e281ec635145449812542abe98 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/nonlinear_static_control_test.cpp support@533-534 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/nonlinear_static_control_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 8개 tests/unit/analysis/solid_frequency_procedure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. afb4cc6cb6b1b6913bcfd0d473260ab060c91b66835e5570073472e3bc7f3dd5 afb4cc6cb6b1b6913bcfd0d473260ab060c91b66835e5570073472e3bc7f3dd5 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.FreeBrickRetainsSixRigidModes SolidFrequencyProcedure.FreeBrickRetainsSixRigidModes; assertion 6개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.FreeBrickRetainsSixRigidModes 유지 원문 검사 body 및 assertion 동일. cce9667bb3dd958f4277c3c2cea2cd1c9d7a29bbc73e03edfe674518cb099309 cce9667bb3dd958f4277c3c2cea2cd1c9d7a29bbc73e03edfe674518cb099309 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().modes.size(), 6U) | EXPECT_EQ(mode.classification, 0U) | EXPECT_EQ(result.Value().vectors.Rows(), 6U) | EXPECT_EQ(result.Value().vectors.Columns(), 24U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().modes.size(), 6U) | EXPECT_EQ(mode.classification, 0U) | EXPECT_EQ(result.Value().vectors.Rows(), 6U) | EXPECT_EQ(result.Value().vectors.Columns(), 24U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.RowSumLumpedPencilMatchesIndependentDenseOracle SolidFrequencyProcedure.RowSumLumpedPencilMatchesIndependentDenseOracle; assertion 22개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.RowSumLumpedPencilMatchesIndependentDenseOracle 유지 원문 검사 body 및 assertion 동일. 4c97e6d2016b331fe2696c558e569c93fce6a5040249a4fa536634b8617ae5fb 4c97e6d2016b331fe2696c558e569c93fce6a5040249a4fa536634b8617ae5fb "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(state.modes.size(), oracle.size()) | ASSERT_EQ(state.eigenpair_checks.size(), oracle.size()) | EXPECT_NEAR(state.modes[c].eigenvalue, oracle[c], 1e-10 * state.classification_scale) | EXPECT_EQ(state.modes[c].mode_id, c + 1) | EXPECT_EQ(state.eigenpair_checks[c].sorted_rank, c + 1) | EXPECT_LE(state.eigenpair_checks[c].eta_r, 1e-10) | EXPECT_LE(state.eigenpair_checks[c].eta_energy, 1e-10) | EXPECT_LE(state.eigenpair_checks[c].eta_norm, 1e-10) | EXPECT_NEAR(state.eigenpair_checks[c].modal_mass, 1.0, 1e-10) | EXPECT_EQ(state.vectors(c, row), 0.0) | EXPECT_GT(state.vectors(c, pivot), 0.0) | EXPECT_LE(state.eta_gram, 1e-10) | EXPECT_LE(state.max_eta_orth, 1e-10) | EXPECT_NEAR(state.mass_ideal_lower_bound, 12.0 / 27.0, 1e-13) | EXPECT_GT(state.mass_lower_bound, 0.0) | EXPECT_LT(state.mass_lower_bound, state.mass_ideal_lower_bound) | EXPECT_GT(state.mass_roundoff_guard, 0.0) | EXPECT_EQ(state.backend.integer_abi, ""ILP64"") | EXPECT_EQ(state.backend.eigenvectors.Rows(), 0U) | EXPECT_EQ(state.backend.backend_calls.front().kind, ""mass-spd"")" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(state.modes.size(), oracle.size()) | ASSERT_EQ(state.eigenpair_checks.size(), oracle.size()) | EXPECT_NEAR(state.modes[c].eigenvalue, oracle[c], 1e-10 * state.classification_scale) | EXPECT_EQ(state.modes[c].mode_id, c + 1) | EXPECT_EQ(state.eigenpair_checks[c].sorted_rank, c + 1) | EXPECT_LE(state.eigenpair_checks[c].eta_r, 1e-10) | EXPECT_LE(state.eigenpair_checks[c].eta_energy, 1e-10) | EXPECT_LE(state.eigenpair_checks[c].eta_norm, 1e-10) | EXPECT_NEAR(state.eigenpair_checks[c].modal_mass, 1.0, 1e-10) | EXPECT_EQ(state.vectors(c, row), 0.0) | EXPECT_GT(state.vectors(c, pivot), 0.0) | EXPECT_LE(state.eta_gram, 1e-10) | EXPECT_LE(state.max_eta_orth, 1e-10) | EXPECT_NEAR(state.mass_ideal_lower_bound, 12.0 / 27.0, 1e-13) | EXPECT_GT(state.mass_lower_bound, 0.0) | EXPECT_LT(state.mass_lower_bound, state.mass_ideal_lower_bound) | EXPECT_GT(state.mass_roundoff_guard, 0.0) | EXPECT_EQ(state.backend.integer_abi, ""ILP64"") | EXPECT_EQ(state.backend.eigenvectors.Rows(), 0U) | EXPECT_EQ(state.backend.backend_calls.front().kind, ""mass-spd"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.DensityLengthAndMaterialScaling SolidFrequencyProcedure.DensityLengthAndMaterialScaling; assertion 5개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.DensityLengthAndMaterialScaling 유지 원문 검사 body 및 assertion 동일. cdee8e33c911874556fd0de7f4206dabb00b6323ffc6dc258ea2775cd9d4203c cdee8e33c911874556fd0de7f4206dabb00b6323ffc6dc258ea2775cd9d4203c ASSERT_TRUE(base_domain.HasValue()) | ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(result.Value().modes[c].eigenvalue, base.Value().modes[c].eigenvalue * parameters[3], 1e-10 * result.Value().classification_scale) ASSERT_TRUE(base_domain.HasValue()) | ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(result.Value().modes[c].eigenvalue, base.Value().modes[c].eigenvalue * parameters[3], 1e-10 * result.Value().classification_scale) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.OneFreeDofAndAllConstrainedAndExcessRequest SolidFrequencyProcedure.OneFreeDofAndAllConstrainedAndExcessRequest; assertion 5개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.OneFreeDofAndAllConstrainedAndExcessRequest 유지 원문 검사 body 및 assertion 동일. c873c04a035270f6496bcb1e0d60a1558b2eccd3043729a891bc459cd0f18927 c873c04a035270f6496bcb1e0d60a1558b2eccd3043729a891bc459cd0f18927 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(result.Value().modes[0].eigenvalue, DenseOracle({2U})[0], 1e-11) | ASSERT_TRUE(invalid.HasValue()) | EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(invalid.Value()) .HasValue()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(result.Value().modes[0].eigenvalue, DenseOracle({2U})[0], 1e-11) | ASSERT_TRUE(invalid.HasValue()) | EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(invalid.Value()) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.MissingDensityAndFailedBackendPreservePriorCandidate SolidFrequencyProcedure.MissingDensityAndFailedBackendPreservePriorCandidate; assertion 7개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.MissingDensityAndFailedBackendPreservePriorCandidate 유지 원문 검사 body 및 assertion 동일. 3f418707dfaaffaae21da5242f50881cd3b4e2d1049377e14af02ad858f84b9c 3f418707dfaaffaae21da5242f50881cd3b4e2d1049377e14af02ad858f84b9c EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(missing.Value()) .HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(good.HasValue()) | EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(domain.Value()) .HasValue()) | EXPECT_EQ(good.Value().modes[0].eigenvalue, previous) | ASSERT_TRUE(again.HasValue()) | EXPECT_NEAR(again.Value().modes[0].eigenvalue, previous, 1e-12) EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(missing.Value()) .HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(good.HasValue()) | EXPECT_FALSE(fesa::SolidFrequencyProcedureExecutor{} .Execute(domain.Value()) .HasValue()) | EXPECT_EQ(good.Value().modes[0].eigenvalue, previous) | ASSERT_TRUE(again.HasValue()) | EXPECT_NEAR(again.Value().modes[0].eigenvalue, previous, 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.NearZeroNegativeRemainsRawWithoutFrequency SolidFrequencyProcedure.NearZeroNegativeRemainsRawWithoutFrequency; assertion 6개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.NearZeroNegativeRemainsRawWithoutFrequency 유지 원문 검사 body 및 assertion 동일. 5c7466461ae588cfbd0a9a9bdd24664d5d7cf8f721ecf9fa68b53fa3041f35eb 5c7466461ae588cfbd0a9a9bdd24664d5d7cf8f721ecf9fa68b53fa3041f35eb ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_LT(result.Value().modes[0].eigenvalue, 0.0) | EXPECT_EQ(result.Value().modes[0].classification, 0U) | EXPECT_FALSE(result.Value().modes[0].frequency.has_value()) | EXPECT_EQ(mode.cluster_id, 1U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_LT(result.Value().modes[0].eigenvalue, 0.0) | EXPECT_EQ(result.Value().modes[0].classification, 0U) | EXPECT_FALSE(result.Value().modes[0].frequency.has_value()) | EXPECT_EQ(mode.cluster_id, 1U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.SuppliedFrequencyInputHasIndependentNumericalEvidence SolidFrequencyProcedure.SuppliedFrequencyInputHasIndependentNumericalEvidence; assertion 10개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.SuppliedFrequencyInputHasIndependentNumericalEvidence 유지 원문 검사 body 및 assertion 동일. 0287bfd4fea7a6dcac7e9ad689ef6fde57e28ebbe300516a82f71d32366695b0 0287bfd4fea7a6dcac7e9ad689ef6fde57e28ebbe300516a82f71d32366695b0 ASSERT_FALSE(root.empty()) | ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().modes.size(), 10U) | EXPECT_EQ(result.Value().vectors.Columns(), 3U * 442U) | EXPECT_GE(result.Value().eigenpair_checks.size(), 10U) | EXPECT_GT(result.Value().mass_lower_bound, 0.0) | EXPECT_LE(result.Value().eta_gram, 1e-10) | EXPECT_LE(result.Value().max_eta_orth, 1e-10) ASSERT_FALSE(root.empty()) | ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().modes.size(), 10U) | EXPECT_EQ(result.Value().vectors.Columns(), 3U * 442U) | EXPECT_GE(result.Value().eigenpair_checks.size(), 10U) | EXPECT_GT(result.Value().mass_lower_bound, 0.0) | EXPECT_LE(result.Value().eta_gram, 1e-10) | EXPECT_LE(result.Value().max_eta_orth, 1e-10) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.RejectsOverflowingOriginalPencilValidationScale SolidFrequencyProcedure.RejectsOverflowingOriginalPencilValidationScale; assertion 5개 tests/unit/analysis/solid_frequency_procedure_test.cpp SolidFrequencyProcedure.RejectsOverflowingOriginalPencilValidationScale 유지 원문 검사 body 및 assertion 동일. 23de9158e3984de0b4196abe914a4980b20b59e595d0f6de100b63c0608b4e5c 23de9158e3984de0b4196abe914a4980b20b59e595d0f6de100b63c0608b4e5c "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""solid-eigenpair-validation-failed"") | EXPECT_NE(result.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""solid-eigenpair-validation-failed"") | EXPECT_NE(result.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp support@1-64 helper/oracle/fixture/include/static assertion 구간: StatusText, Brick tests/unit/analysis/solid_frequency_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 338ba214915b6614a5178292ab8ca1c8409f79c52bfdae155360a152c9033cc2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/solid_frequency_procedure_test.cpp support@77-136 helper/oracle/fixture/include/static assertion 구간: GradientIntegral, DenseOracle, FaceFree tests/unit/analysis/solid_frequency_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ce1a07c50cc327f05d6a67dcefec86324ec510e7189bc09589a7347b3ebac1a1 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 30개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8d90de51b606957522feabd9c9e063a463a91ecf2065fc63a21c893aed45276d 8d90de51b606957522feabd9c9e063a463a91ecf2065fc63a21c893aed45276d 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.InitialLowPartsSurviveTrialCopyAndRejectedCommit SolidHhtPairedState.InitialLowPartsSurviveTrialCopyAndRejectedCommit; assertion 13개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.InitialLowPartsSurviveTrialCopyAndRejectedCommit 유지 원문 검사 body 및 assertion 동일. 825c8f0dad20f8717e1ea0b6b8603fd2644a8f3994ac000270d5f9e4327983e2 825c8f0dad20f8717e1ea0b6b8603fd2644a8f3994ac000270d5f9e4327983e2 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.Value().CommitAcceptedFrame(initial).IsOk()) | ASSERT_TRUE(trial.HasValue()) | EXPECT_EQ(trial.Value().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_EQ(trial.Value().low.residual_scale[0], std::ldexp(1.0, -61)) | EXPECT_EQ(trial.Value().low.linear_momentum_rate[0], std::ldexp(1.0, -59)) | EXPECT_EQ(trial.Value().low.angular_momentum_rate[1], std::ldexp(1.0, -60)) | EXPECT_EQ(state.Value().CommittedState().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_EQ(state.Value().CommittedState().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_EQ(state.Value().CommittedState().low.inertia_force[0], std::ldexp(1.0, -62)) | EXPECT_EQ(state.Value().CommittedState().low.angular_momentum_rate[2], -std::ldexp(1.0, -60)) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.Value().CommitAcceptedFrame(initial).IsOk()) | ASSERT_TRUE(trial.HasValue()) | EXPECT_EQ(trial.Value().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_EQ(trial.Value().low.residual_scale[0], std::ldexp(1.0, -61)) | EXPECT_EQ(trial.Value().low.linear_momentum_rate[0], std::ldexp(1.0, -59)) | EXPECT_EQ(trial.Value().low.angular_momentum_rate[1], std::ldexp(1.0, -60)) | EXPECT_EQ(state.Value().CommittedState().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_EQ(state.Value().CommittedState().low.acceleration[0], std::ldexp(1.0, -60)) | EXPECT_EQ(state.Value().CommittedState().low.inertia_force[0], std::ldexp(1.0, -62)) | EXPECT_EQ(state.Value().CommittedState().low.angular_momentum_rate[2], -std::ldexp(1.0, -60)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.InvalidLowShapeFiniteNormalizationAndIdentitiesFail SolidHhtPairedState.InvalidLowShapeFiniteNormalizationAndIdentitiesFail; assertion 4개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.InvalidLowShapeFiniteNormalizationAndIdentitiesFail 유지 원문 검사 body 및 assertion 동일. 2b78c719a88df0067bb2b21166b8c312c308d89d1c1983c1c771809eb499d299 2b78c719a88df0067bb2b21166b8c312c308d89d1c1983c1c771809eb499d299 ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue()) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.SubUlpPhysicalDisplacementRecoversNonzeroRates SolidHhtPairedKinematics.SubUlpPhysicalDisplacementRecoversNonzeroRates; assertion 13개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.SubUlpPhysicalDisplacementRecoversNonzeroRates 유지 원문 검사 body 및 assertion 동일. 1f4fe6c56fb73d89e0ad67e5ff0f7f140cbcf1ec8e26da6ea909fe446d6f19c3 1f4fe6c56fb73d89e0ad67e5ff0f7f140cbcf1ec8e26da6ea909fe446d6f19c3 ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | EXPECT_EQ(predictor.Value().displacement[0], 1) | EXPECT_EQ(predictor.Value().displacement_low[0], epsilon) | ASSERT_TRUE(rates.HasValue()) | EXPECT_EQ(rates.Value().algorithmic_acceleration[0], 4 * epsilon) | EXPECT_EQ(rates.Value().acceleration[0], 4 * epsilon) | EXPECT_EQ(rates.Value().velocity[0], 2 * epsilon) | EXPECT_EQ(rates.Value().algorithmic_acceleration_low[0], 0) | EXPECT_EQ(rates.Value().acceleration_low[0], 0) | EXPECT_EQ(rates.Value().velocity_low[0], 0) | ASSERT_TRUE(rounded_rates.HasValue()) | EXPECT_EQ(rounded_rates.Value().acceleration[0], 0) ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(predictor.HasValue()) | EXPECT_EQ(predictor.Value().displacement[0], 1) | EXPECT_EQ(predictor.Value().displacement_low[0], epsilon) | ASSERT_TRUE(rates.HasValue()) | EXPECT_EQ(rates.Value().algorithmic_acceleration[0], 4 * epsilon) | EXPECT_EQ(rates.Value().acceleration[0], 4 * epsilon) | EXPECT_EQ(rates.Value().velocity[0], 2 * epsilon) | EXPECT_EQ(rates.Value().algorithmic_acceleration_low[0], 0) | EXPECT_EQ(rates.Value().acceleration_low[0], 0) | EXPECT_EQ(rates.Value().velocity_low[0], 0) | ASSERT_TRUE(rounded_rates.HasValue()) | EXPECT_EQ(rounded_rates.Value().acceleration[0], 0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.PhysicalAndAuxiliaryRatesKeepOldPhysicalTerm SolidHhtPairedKinematics.PhysicalAndAuxiliaryRatesKeepOldPhysicalTerm; assertion 5개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.PhysicalAndAuxiliaryRatesKeepOldPhysicalTerm 유지 원문 검사 body 및 assertion 동일. 50303350d2b5f81d3838936cc4b1c4aefb9d23acffa5f1db16b392d59eadbc49 50303350d2b5f81d3838936cc4b1c4aefb9d23acffa5f1db16b392d59eadbc49 ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_EQ(rates.Value().algorithmic_acceleration[0], epsilon) | EXPECT_EQ(rates.Value().acceleration[0], 0) | EXPECT_EQ(rates.Value().velocity[0], 6 * epsilon) ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(rates.HasValue()) | EXPECT_EQ(rates.Value().algorithmic_acceleration[0], epsilon) | EXPECT_EQ(rates.Value().acceleration[0], 0) | EXPECT_EQ(rates.Value().velocity[0], 6 * epsilon) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.InvalidLowInputsFailWithoutChangingPredictor SolidHhtPairedKinematics.InvalidLowInputsFailWithoutChangingPredictor; assertion 6개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.InvalidLowInputsFailWithoutChangingPredictor 유지 원문 검사 body 및 assertion 동일. 42be154d7316bf84811c30432c01f348e2cd4964c15a9ca2a8542b3a4d099a72 42be154d7316bf84811c30432c01f348e2cd4964c15a9ca2a8542b3a4d099a72 ASSERT_TRUE(p.HasValue()) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(1, low), predictor, fesa::Vector(1), fesa::Vector(1), 1, p.Value()) .HasValue()) | EXPECT_EQ(predictor.displacement[0], 1) | EXPECT_EQ(predictor.displacement_low[0], 0) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(0), predictor, fesa::Vector(1), fesa::Vector(1), 1, p.Value()) .HasValue()) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(1), predictor, fesa::Vector(1), fesa::Vector(1), 1, invalid_parameters) .HasValue()) ASSERT_TRUE(p.HasValue()) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(1, low), predictor, fesa::Vector(1), fesa::Vector(1), 1, p.Value()) .HasValue()) | EXPECT_EQ(predictor.displacement[0], 1) | EXPECT_EQ(predictor.displacement_low[0], 0) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(0), predictor, fesa::Vector(1), fesa::Vector(1), 1, p.Value()) .HasValue()) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtHighLowRates( fesa::Vector(1, 1), fesa::Vector(1), predictor, fesa::Vector(1), fesa::Vector(1), 1, invalid_parameters) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.MassMultiplyKeepsSubUlpActionAndCancellation SolidHhtPairedKinematics.MassMultiplyKeepsSubUlpActionAndCancellation; assertion 7개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.MassMultiplyKeepsSubUlpActionAndCancellation 유지 원문 검사 body 및 assertion 동일. ef6f15688746af81bfd5dd21af5158228a986336d03b3619f12ec626edb65ebb ef6f15688746af81bfd5dd21af5158228a986336d03b3619f12ec626edb65ebb ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().high[0], 3 * epsilon) | EXPECT_EQ(result.Value().low[0], 0) | EXPECT_EQ(result.Value().high[1], -3) | EXPECT_EQ(result.Value().low[1], 3 * epsilon) | EXPECT_EQ(mass.Value().Multiply(high)[0], 0) ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().high[0], 3 * epsilon) | EXPECT_EQ(result.Value().low[0], 0) | EXPECT_EQ(result.Value().high[1], -3) | EXPECT_EQ(result.Value().low[1], 3 * epsilon) | EXPECT_EQ(mass.Value().Multiply(high)[0], 0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.WeightedIdentityPreservesNonzeroOldResidualLow SolidHhtPairedKinematics.WeightedIdentityPreservesNonzeroOldResidualLow; assertion 11개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedKinematics.WeightedIdentityPreservesNonzeroOldResidualLow 유지 원문 검사 body 및 assertion 동일. 7bbac5223481362748fa1ff73b62f4b7a0758b25cbf6c9128cf1eeb983846480 7bbac5223481362748fa1ff73b62f4b7a0758b25cbf6c9128cf1eeb983846480 ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(fesa::detail::EvaluateSolidHhtHighLowForceIdentity( mass.Value(), 0, fesa::math_internal::HighLow(epsilon), next, old, -.25, &result)) | EXPECT_EQ(result.original.high, 3.25) | EXPECT_EQ(result.original.low, epsilon) | EXPECT_EQ(result.solved.high, 3.25) | EXPECT_EQ(result.solved.low, epsilon) | EXPECT_EQ(result.defect.high, 0) | EXPECT_EQ(result.metric.high, 0) | ASSERT_TRUE(fesa::detail::EvaluateSolidHhtHighLowForceIdentity( mass.Value(), 0, fesa::math_internal::HighLow(epsilon), next, old, -.25, &result)) | EXPECT_EQ(result.solved.low, 0) | EXPECT_EQ(result.defect.high, epsilon) ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(fesa::detail::EvaluateSolidHhtHighLowForceIdentity( mass.Value(), 0, fesa::math_internal::HighLow(epsilon), next, old, -.25, &result)) | EXPECT_EQ(result.original.high, 3.25) | EXPECT_EQ(result.original.low, epsilon) | EXPECT_EQ(result.solved.high, 3.25) | EXPECT_EQ(result.solved.low, epsilon) | EXPECT_EQ(result.defect.high, 0) | EXPECT_EQ(result.metric.high, 0) | ASSERT_TRUE(fesa::detail::EvaluateSolidHhtHighLowForceIdentity( mass.Value(), 0, fesa::math_internal::HighLow(epsilon), next, old, -.25, &result)) | EXPECT_EQ(result.solved.low, 0) | EXPECT_EQ(result.defect.high, epsilon) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.BackendEnvironmentMutationFailsAndPreservesPairs SolidHhtPairedState.BackendEnvironmentMutationFailsAndPreservesPairs; assertion 14개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtPairedState.BackendEnvironmentMutationFailsAndPreservesPairs 유지 원문 검사 body 및 assertion 동일. 3f256cc73e3837028a0a56cde57bac0f445e407b546e0ec820c96be62645c8de 3f256cc73e3837028a0a56cde57bac0f445e407b546e0ec820c96be62645c8de "ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(fesa::math_internal::ArithmeticEnvironmentSupported()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_EQ(status.Diagnostics().front().code, ""solid-dynamic-arithmetic-environment"") | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(actual.displacement[0], expected.displacement[0]) | EXPECT_EQ(actual.low.displacement[0], expected.low.displacement[0]) | EXPECT_EQ(actual.acceleration[0], expected.acceleration[0]) | EXPECT_EQ(actual.low.acceleration[0], expected.low.acceleration[0]) | EXPECT_EQ(actual.external_work, expected.external_work) | EXPECT_EQ(actual.low.external_work, expected.low.external_work)" "ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(fesa::math_internal::ArithmeticEnvironmentSupported()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_EQ(status.Diagnostics().front().code, ""solid-dynamic-arithmetic-environment"") | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(actual.displacement[0], expected.displacement[0]) | EXPECT_EQ(actual.low.displacement[0], expected.low.displacement[0]) | EXPECT_EQ(actual.acceleration[0], expected.acceleration[0]) | EXPECT_EQ(actual.low.acceleration[0], expected.low.acceleration[0]) | EXPECT_EQ(actual.external_work, expected.external_work) | EXPECT_EQ(actual.low.external_work, expected.low.external_work)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AllConstrainedRetainsPhysicalReactionAndEightPoints SolidHhtDynamics.AllConstrainedRetainsPhysicalReactionAndEightPoints; assertion 9개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AllConstrainedRetainsPhysicalReactionAndEightPoints 유지 원문 검사 body 및 assertion 동일. 9aae6cd617d88f7c8d407f069a1bb691963a5b920d9c6ade7953aac765a05542 9aae6cd617d88f7c8d407f069a1bb691963a5b920d9c6ade7953aac765a05542 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 21U) | EXPECT_EQ(f.displacement.Size(), 24U) | EXPECT_EQ(f.solid_results.size(), 8U) | EXPECT_DOUBLE_EQ(f.reaction[1], -7) | EXPECT_DOUBLE_EQ(f.acceleration[1], 0) | EXPECT_DOUBLE_EQ(f.external_work, 0) | EXPECT_EQ(f.iteration_count, 0U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 21U) | EXPECT_EQ(f.displacement.Size(), 24U) | EXPECT_EQ(f.solid_results.size(), 8U) | EXPECT_DOUBLE_EQ(f.reaction[1], -7) | EXPECT_DOUBLE_EQ(f.acceleration[1], 0) | EXPECT_DOUBLE_EQ(f.external_work, 0) | EXPECT_EQ(f.iteration_count, 0U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.ActualEndpointsUseDifferentCurvesKnotsInteriorsAndHolds SolidHhtDynamics.ActualEndpointsUseDifferentCurvesKnotsInteriorsAndHolds; assertion 5개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.ActualEndpointsUseDifferentCurvesKnotsInteriorsAndHolds 유지 원문 검사 body 및 assertion 동일. c5e559e653ca89a7bb7004a700e7f2eeff2550e6ceb1f76318567165f97bed7a c5e559e653ca89a7bb7004a700e7f2eeff2550e6ceb1f76318567165f97bed7a ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(f.external_force[0], 2 * a + 3 * b, 1e-14) | EXPECT_DOUBLE_EQ(f.reaction[0], -f.external_force[0]) | EXPECT_DOUBLE_EQ(f.external_force[5], 7) | EXPECT_DOUBLE_EQ(f.time, static_cast(f.increment_index) * .125) ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(f.external_force[0], 2 * a + 3 * b, 1e-14) | EXPECT_DOUBLE_EQ(f.reaction[0], -f.external_force[0]) | EXPECT_DOUBLE_EQ(f.external_force[5], 7) | EXPECT_DOUBLE_EQ(f.time, static_cast(f.increment_index) * .125) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.RampStartsAtZeroAndAuxiliaryAccelerationIsDistinct SolidHhtDynamics.RampStartsAtZeroAndAuxiliaryAccelerationIsDistinct; assertion 10개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.RampStartsAtZeroAndAuxiliaryAccelerationIsDistinct 유지 원문 검사 body 및 assertion 동일. 8806b0f8147101e938132724b2e9fdc8f4a536db7c7d0c03962e17393a021ec9 8806b0f8147101e938132724b2e9fdc8f4a536db7c7d0c03962e17393a021ec9 ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frames.front().acceleration[0], 0) | EXPECT_GT(std::abs(frames[1].acceleration[0] - frames[1].algorithmic_acceleration[0]), 1e-5) | EXPECT_NEAR(f.algorithmic_acceleration[0], .95 * f.acceleration[0] + .05 * old.acceleration[0], 1e-14) | EXPECT_LT(f.iterations.back().update_metric, 1e-12) | EXPECT_LE(f.iterations.back().residual_metric, 1e-10) | EXPECT_DOUBLE_EQ(f.displacement[i], 0) | EXPECT_DOUBLE_EQ(f.velocity[i], 0) | EXPECT_DOUBLE_EQ(f.acceleration[i], 0) | EXPECT_DOUBLE_EQ(f.algorithmic_acceleration[i], 0) ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frames.front().acceleration[0], 0) | EXPECT_GT(std::abs(frames[1].acceleration[0] - frames[1].algorithmic_acceleration[0]), 1e-5) | EXPECT_NEAR(f.algorithmic_acceleration[0], .95 * f.acceleration[0] + .05 * old.acceleration[0], 1e-14) | EXPECT_LT(f.iterations.back().update_metric, 1e-12) | EXPECT_LE(f.iterations.back().residual_metric, 1e-10) | EXPECT_DOUBLE_EQ(f.displacement[i], 0) | EXPECT_DOUBLE_EQ(f.velocity[i], 0) | EXPECT_DOUBLE_EQ(f.acceleration[i], 0) | EXPECT_DOUBLE_EQ(f.algorithmic_acceleration[i], 0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.OneFreeTranslationHasAnalyticLumpedInertialSupportReactions SolidHhtDynamics.OneFreeTranslationHasAnalyticLumpedInertialSupportReactions; assertion 4개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.OneFreeTranslationHasAnalyticLumpedInertialSupportReactions 유지 원문 검사 body 및 assertion 동일. 1c002e47b63b342b26d3651c49bb19e06ac80d6f2744f2f435c9190103f3d797 1c002e47b63b342b26d3651c49bb19e06ac80d6f2744f2f435c9190103f3d797 ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(f.reaction[3 * b + c], reaction, roundoff * scale) | EXPECT_NEAR(weighted, endpoint_identity, roundoff * scale) | EXPECT_NEAR(f.iterations.back().weighted_residual_numerator, std::abs(weighted), roundoff * scale) ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(f.reaction[3 * b + c], reaction, roundoff * scale) | EXPECT_NEAR(weighted, endpoint_identity, roundoff * scale) | EXPECT_NEAR(f.iterations.back().weighted_residual_numerator, std::abs(weighted), roundoff * scale) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.BackendNanNonconvergenceAndInversionPreserveAcceptedInitial SolidHhtDynamics.BackendNanNonconvergenceAndInversionPreserveAcceptedInitial; assertion 21개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.BackendNanNonconvergenceAndInversionPreserveAcceptedInitial 유지 원문 검사 body 및 assertion 동일. 994315fd5e36287233e88949fa06cdd1a82a3df567118949362421a330549049 994315fd5e36287233e88949fa06cdd1a82a3df567118949362421a330549049 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_EQ(state.Value().CommittedState().increment_index, 0U) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], 0) | EXPECT_NEAR(state.Value().CommittedState().acceleration[0], .01 / .25, 1e-14) | ASSERT_FALSE(state.Value().IterationRecords().empty()) | EXPECT_EQ(state.Value().IterationRecords().back().stage, ""failed"") | EXPECT_FALSE(state.Value().IterationRecords().back().failure_code.empty()) | EXPECT_EQ(failed.evidence.iteration_index, 100U) | EXPECT_EQ(failed.failure_code, ""solid-dynamic-nonconvergence"") | EXPECT_FALSE(failed.failure_force_sum.has_value()) | EXPECT_NEAR(failed.evidence.worst_force_terms[1], expected_inertia, 32 * std::numeric_limits::epsilon() * std::abs(expected_inertia)) | EXPECT_DOUBLE_EQ(failed.evidence.worst_force_terms[2], 0) | EXPECT_DOUBLE_EQ(failed.evidence.worst_force_terms[3], .01) | EXPECT_FALSE(failed.evidence.residual_pass) | EXPECT_TRUE(failed.evidence.update_pass) | EXPECT_TRUE(failed.evidence.correction_pass) | EXPECT_TRUE(std::isfinite(value)) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().low.displacement[i], 0)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_EQ(state.Value().CommittedState().increment_index, 0U) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], 0) | EXPECT_NEAR(state.Value().CommittedState().acceleration[0], .01 / .25, 1e-14) | ASSERT_FALSE(state.Value().IterationRecords().empty()) | EXPECT_EQ(state.Value().IterationRecords().back().stage, ""failed"") | EXPECT_FALSE(state.Value().IterationRecords().back().failure_code.empty()) | EXPECT_EQ(failed.evidence.iteration_index, 100U) | EXPECT_EQ(failed.failure_code, ""solid-dynamic-nonconvergence"") | EXPECT_FALSE(failed.failure_force_sum.has_value()) | EXPECT_NEAR(failed.evidence.worst_force_terms[1], expected_inertia, 32 * std::numeric_limits::epsilon() * std::abs(expected_inertia)) | EXPECT_DOUBLE_EQ(failed.evidence.worst_force_terms[2], 0) | EXPECT_DOUBLE_EQ(failed.evidence.worst_force_terms[3], .01) | EXPECT_FALSE(failed.evidence.residual_pass) | EXPECT_TRUE(failed.evidence.update_pass) | EXPECT_TRUE(failed.evidence.correction_pass) | EXPECT_TRUE(std::isfinite(value)) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().low.displacement[i], 0)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.LateBackendFailurePreservesActualCommittedMotionAndHistory SolidHhtDynamics.LateBackendFailurePreservesActualCommittedMotionAndHistory; assertion 11개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.LateBackendFailurePreservesActualCommittedMotionAndHistory 유지 원문 검사 body 및 assertion 동일. 0e04bfa810734cd17fe3ed9b0ce99f803e24ecf3224cfee93f44df7f79d2f3b9 0e04bfa810734cd17fe3ed9b0ce99f803e24ecf3224cfee93f44df7f79d2f3b9 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(state.Value().CommittedState().increment_index, 1U) | EXPECT_GT(state.Value().CommittedState().displacement[0], 0) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], committed.displacement[0]) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().strain_energy, committed.strain_energy) | EXPECT_EQ(state.Value().CommittedState().solid_results[0].cauchy_stress, committed.solid_results[0].cauchy_stress) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(state.Value().CommittedState().increment_index, 1U) | EXPECT_GT(state.Value().CommittedState().displacement[0], 0) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], committed.displacement[0]) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().strain_energy, committed.strain_energy) | EXPECT_EQ(state.Value().CommittedState().solid_results[0].cauchy_stress, committed.solid_results[0].cauchy_stress) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.NonfiniteWeightedEvidenceCannotContaminateAcceptedHistory SolidHhtDynamics.NonfiniteWeightedEvidenceCannotContaminateAcceptedHistory; assertion 7개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.NonfiniteWeightedEvidenceCannotContaminateAcceptedHistory 유지 원문 검사 body 및 assertion 동일. 6e0271bb8ebda6f0a0c5a3a7a2287c385827fd8d17d18652b2208b204bf6ab8e 6e0271bb8ebda6f0a0c5a3a7a2287c385827fd8d17d18652b2208b204bf6ab8e ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(fesa::SolidHhtDynamicProcedureExecutor(parallel, mass, tangent) .ExecuteInto(domain.Value(), state.Value()) .IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(state.Value().CommittedState().solid_results[0].cauchy_stress, committed.solid_results[0].cauchy_stress) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], committed.displacement[0]) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(fesa::SolidHhtDynamicProcedureExecutor(parallel, mass, tangent) .ExecuteInto(domain.Value(), state.Value()) .IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(bad).IsOk()) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_EQ(state.Value().CommittedState().solid_results[0].cauchy_stress, committed.solid_results[0].cauchy_stress) | EXPECT_DOUBLE_EQ(state.Value().CommittedState().displacement[0], committed.displacement[0]) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AlphaZeroLinearUnforcedTailConservesEnergyAndTrapezoidWork SolidHhtDynamics.AlphaZeroLinearUnforcedTailConservesEnergyAndTrapezoidWork; assertion 6개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AlphaZeroLinearUnforcedTailConservesEnergyAndTrapezoidWork 유지 원문 검사 body 및 assertion 동일. dd866c138e709fdc9aa58b3b2e87b3781004ecb72d2991144c208d93d71b1ea8 dd866c138e709fdc9aa58b3b2e87b3781004ecb72d2991144c208d93d71b1ea8 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(status.IsOk()) | ASSERT_GT(tail, 1e-7) | EXPECT_NEAR(frames[n].external_work, work, 1e-16) | EXPECT_NEAR(frames[n].energy_balance_error, 0, 2e-12 * tail) | EXPECT_NEAR(frames[n].kinetic_energy + frames[n].strain_energy, tail, 2e-12 * tail) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(status.IsOk()) | ASSERT_GT(tail, 1e-7) | EXPECT_NEAR(frames[n].external_work, work, 1e-16) | EXPECT_NEAR(frames[n].energy_balance_error, 0, 2e-12 * tail) | EXPECT_NEAR(frames[n].kinetic_energy + frames[n].strain_energy, tail, 2e-12 * tail) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.InitialMassBackendFailuresPreserveEmptyHistory SolidHhtDynamics.InitialMassBackendFailuresPreserveEmptyHistory; assertion 12개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.InitialMassBackendFailuresPreserveEmptyHistory 유지 원문 검사 body 및 assertion 동일. e05bf94288c50cbcb48e82d010333756d3468e53ca60fd91f161a749ed0f1ffc e05bf94288c50cbcb48e82d010333756d3468e53ca60fd91f161a749ed0f1ffc "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue()) | ASSERT_EQ(records.size(), factorization ? 1U : 2U) | EXPECT_EQ(records.front().stage, ""initial-mass"") | EXPECT_EQ(records.front().outcome, ""residual-refinement"") | EXPECT_EQ(records.front().evidence.iteration_index, 0U) | EXPECT_FALSE(records.front().evidence.residual_pass) | EXPECT_EQ(records.back().stage, ""failed"") | EXPECT_EQ(records.back().failure_code, ""injected-backend"")" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue()) | ASSERT_EQ(records.size(), factorization ? 1U : 2U) | EXPECT_EQ(records.front().stage, ""initial-mass"") | EXPECT_EQ(records.front().outcome, ""residual-refinement"") | EXPECT_EQ(records.front().evidence.iteration_index, 0U) | EXPECT_FALSE(records.front().evidence.residual_pass) | EXPECT_EQ(records.back().stage, ""failed"") | EXPECT_EQ(records.back().failure_code, ""injected-backend"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AllFreeNoForceIsExactlyAtRestForLinearAndTl SolidHhtDynamics.AllFreeNoForceIsExactlyAtRestForLinearAndTl; assertion 10개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.AllFreeNoForceIsExactlyAtRestForLinearAndTl 유지 원문 검사 body 및 assertion 동일. d09d84966fea765d732e231ff5dde9c2e8a649cbd91c3a946e2020274e398ddd d09d84966fea765d732e231ff5dde9c2e8a649cbd91c3a946e2020274e398ddd ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0) | EXPECT_DOUBLE_EQ(frame.strain_energy, 0) | EXPECT_DOUBLE_EQ(frame.displacement[i], 0) | EXPECT_DOUBLE_EQ(frame.velocity[i], 0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0) | EXPECT_DOUBLE_EQ(frame.residual[i], 0) | EXPECT_DOUBLE_EQ(frame.reaction[i], 0) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(frame.iteration_count, 0U) | EXPECT_DOUBLE_EQ(frame.kinetic_energy, 0) | EXPECT_DOUBLE_EQ(frame.strain_energy, 0) | EXPECT_DOUBLE_EQ(frame.displacement[i], 0) | EXPECT_DOUBLE_EQ(frame.velocity[i], 0) | EXPECT_DOUBLE_EQ(frame.acceleration[i], 0) | EXPECT_DOUBLE_EQ(frame.algorithmic_acceleration[i], 0) | EXPECT_DOUBLE_EQ(frame.residual[i], 0) | EXPECT_DOUBLE_EQ(frame.reaction[i], 0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtSourceSmoke.ReadOnlyOriginalLinearAcceptsAll101Endpoints SolidHhtSourceSmoke.ReadOnlyOriginalLinearAcceptsAll101Endpoints; assertion 0개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtSourceSmoke.ReadOnlyOriginalLinearAcceptsAll101Endpoints 유지 원문 검사 body 및 assertion 동일. 5391fef4221914378a7f90aee66f4b5dfdce359f6f20a5206103e3df7bc40d95 5391fef4221914378a7f90aee66f4b5dfdce359f6f20a5206103e3df7bc40d95 해당 없음 해당 없음 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtSourceSmoke.ReadOnlyOriginalNonlinearAcceptsAll101Endpoints SolidHhtSourceSmoke.ReadOnlyOriginalNonlinearAcceptsAll101Endpoints; assertion 0개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtSourceSmoke.ReadOnlyOriginalNonlinearAcceptsAll101Endpoints 유지 원문 검사 body 및 assertion 동일. 24b67b4ab019d0f53319e5523d3aa2893debf73e13edf2dab5f27889e9547dfd 24b67b4ab019d0f53319e5523d3aa2893debf73e13edf2dab5f27889e9547dfd 해당 없음 해당 없음 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.WeightedIdentityRetainsNonzeroOldResidualAndEffectiveTangent SolidHhtDynamics.WeightedIdentityRetainsNonzeroOldResidualAndEffectiveTangent; assertion 8개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.WeightedIdentityRetainsNonzeroOldResidualAndEffectiveTangent 유지 원문 검사 body 및 assertion 동일. f7634aeb2f9bf5b13387abd6ef3e10c9f2f0024741dbc34a156e27668892ce91 f7634aeb2f9bf5b13387abd6ef3e10c9f2f0024741dbc34a156e27668892ce91 ASSERT_TRUE(mass.HasValue()) | ASSERT_NE(old.residual[0], 0) | ASSERT_NE(old.residual[1], 0) | EXPECT_TRUE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), i, MA[i], next, old, alpha, &identities[i])) | EXPECT_LE(identities[i].metric, 1e-12) | EXPECT_NEAR( identities[i].original, identities[i].solved, 512 * std::numeric_limits::epsilon() * identities[i].scale) | EXPECT_GT( std::abs(identities[i].solved - (1 + alpha) * next.residual[i]), .01) | EXPECT_NEAR((right[i].solved - left[i].solved) / (2 * epsilon), tangent_direction[i], 1e-9 * std::abs(tangent_direction[i])) ASSERT_TRUE(mass.HasValue()) | ASSERT_NE(old.residual[0], 0) | ASSERT_NE(old.residual[1], 0) | EXPECT_TRUE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), i, MA[i], next, old, alpha, &identities[i])) | EXPECT_LE(identities[i].metric, 1e-12) | EXPECT_NEAR( identities[i].original, identities[i].solved, 512 * std::numeric_limits::epsilon() * identities[i].scale) | EXPECT_GT( std::abs(identities[i].solved - (1 + alpha) * next.residual[i]), .01) | EXPECT_NEAR((right[i].solved - left[i].solved) / (2 * epsilon), tangent_direction[i], 1e-9 * std::abs(tangent_direction[i])) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.WeightedIdentityRejectsNonfiniteAndOverflowBeforeNormReduction SolidHhtDynamics.WeightedIdentityRejectsNonfiniteAndOverflowBeforeNormReduction; assertion 8개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.WeightedIdentityRejectsNonfiniteAndOverflowBeforeNormReduction 유지 원문 검사 body 및 assertion 동일. 21767e2f26a9783ef8b3ea4897f8543314f9353f4d55800634852db6ca5e9b2a 21767e2f26a9783ef8b3ea4897f8543314f9353f4d55800634852db6ca5e9b2a ASSERT_TRUE(mass.HasValue()) | EXPECT_TRUE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) | EXPECT_EQ(identity.scale, 0) | EXPECT_EQ(identity.metric, 0) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, invalid, next, old, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, bad, previous, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) ASSERT_TRUE(mass.HasValue()) | EXPECT_TRUE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) | EXPECT_EQ(identity.scale, 0) | EXPECT_EQ(identity.metric, 0) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, invalid, next, old, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, bad, previous, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) | EXPECT_FALSE(fesa::detail::EvaluateSolidHhtForceIdentity( mass.Value(), 0, 0, next, old, -.05, &identity)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.FullFreeNewtonRecoversAllComponentsAfterCoupledTrialPerturbation SolidHhtDynamics.FullFreeNewtonRecoversAllComponentsAfterCoupledTrialPerturbation; assertion 8개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.FullFreeNewtonRecoversAllComponentsAfterCoupledTrialPerturbation 유지 원문 검사 body 및 assertion 동일. 9e1a1f350b3a8da815127d3678f269e8701013a5e689bab8a5a1c4dc5e965a41 9e1a1f350b3a8da815127d3678f269e8701013a5e689bab8a5a1c4dc5e965a41 ASSERT_TRUE(domain.HasValue()) | EXPECT_TRUE(tangent.kicked) | EXPECT_TRUE(tangent.full_size_all_calls) | EXPECT_TRUE(tangent.solved_after_kick) | ASSERT_TRUE(status.IsOk()) | EXPECT_LE(frame.iterations.back().residual_metric, 1e-10) | EXPECT_LE(frame.iterations.back().update_metric, 1e-12) | EXPECT_NEAR(frame.displacement[3 * n], .5 * frame.time * frame.time, roundoff * .5 * frame.time * frame.time) ASSERT_TRUE(domain.HasValue()) | EXPECT_TRUE(tangent.kicked) | EXPECT_TRUE(tangent.full_size_all_calls) | EXPECT_TRUE(tangent.solved_after_kick) | ASSERT_TRUE(status.IsOk()) | EXPECT_LE(frame.iterations.back().residual_metric, 1e-10) | EXPECT_LE(frame.iterations.back().update_metric, 1e-12) | EXPECT_NEAR(frame.displacement[3 * n], .5 * frame.time * frame.time, roundoff * .5 * frame.time * frame.time) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.RepresentableNeighborUsesHeldCouplingAndOriginalFullForceMetric SolidHhtFloat64History.RepresentableNeighborUsesHeldCouplingAndOriginalFullForceMetric; assertion 24개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.RepresentableNeighborUsesHeldCouplingAndOriginalFullForceMetric 유지 원문 검사 body 및 assertion 동일. edbbaae61828136237c20662167cca044b5992c324f9989e801d85b6ae72343a edbbaae61828136237c20662167cca044b5992c324f9989e801d85b6ae72343a ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(tangent.HasValue()) | ASSERT_GT(initial, 1e-10) | ASSERT_EQ(frame.residual[1], 0) | ASSERT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0, 1}, frame, 1, -.05, .275625, &selected)) | ASSERT_TRUE(selected.found) | EXPECT_EQ(selected.full_dof, 1U) | EXPECT_EQ(selected.displacement, std::nextafter(.5, -std::numeric_limits::infinity())) | EXPECT_EQ(selected.delta, selected.displacement - frame.displacement[1]) | EXPECT_LT(selected.predicted_metric, initial) | EXPECT_LE(selected.predicted_metric, 1e-10) | EXPECT_EQ(selected.predicted_metric, exact_metric) | ASSERT_TRUE(alternative_tangent.HasValue()) | ASSERT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), alternative_tangent.Value(), {0, 1}, frame, 1, -.05, .275625, &selected, &ranked)) | ASSERT_EQ(ranked.size(), 2U) | EXPECT_EQ(ranked[0].full_dof, 0U) | EXPECT_EQ(ranked[1].full_dof, 1U) | EXPECT_LT(ranked[0].predicted_metric, ranked[1].predicted_metric) | EXPECT_LT(ranked[1].predicted_metric, initial) | ASSERT_TRUE(accepted.HasValue()) | EXPECT_TRUE(accepted.Value()) | EXPECT_EQ(tried, (std::vector{0, 1})) | EXPECT_FALSE(invalid.HasValue()) | EXPECT_EQ(tried, (std::vector{0})) ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(tangent.HasValue()) | ASSERT_GT(initial, 1e-10) | ASSERT_EQ(frame.residual[1], 0) | ASSERT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0, 1}, frame, 1, -.05, .275625, &selected)) | ASSERT_TRUE(selected.found) | EXPECT_EQ(selected.full_dof, 1U) | EXPECT_EQ(selected.displacement, std::nextafter(.5, -std::numeric_limits::infinity())) | EXPECT_EQ(selected.delta, selected.displacement - frame.displacement[1]) | EXPECT_LT(selected.predicted_metric, initial) | EXPECT_LE(selected.predicted_metric, 1e-10) | EXPECT_EQ(selected.predicted_metric, exact_metric) | ASSERT_TRUE(alternative_tangent.HasValue()) | ASSERT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), alternative_tangent.Value(), {0, 1}, frame, 1, -.05, .275625, &selected, &ranked)) | ASSERT_EQ(ranked.size(), 2U) | EXPECT_EQ(ranked[0].full_dof, 0U) | EXPECT_EQ(ranked[1].full_dof, 1U) | EXPECT_LT(ranked[0].predicted_metric, ranked[1].predicted_metric) | EXPECT_LT(ranked[1].predicted_metric, initial) | ASSERT_TRUE(accepted.HasValue()) | EXPECT_TRUE(accepted.Value()) | EXPECT_EQ(tried, (std::vector{0, 1})) | EXPECT_FALSE(invalid.HasValue()) | EXPECT_EQ(tried, (std::vector{0})) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.RepresentableNeighborKeepsExactZeroAndRejectsInvalidArithmetic SolidHhtDynamics.RepresentableNeighborKeepsExactZeroAndRejectsInvalidArithmetic; assertion 6개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.RepresentableNeighborKeepsExactZeroAndRejectsInvalidArithmetic 유지 원문 검사 body 및 assertion 동일. d9613a73dba9cc37e8a8f2190ca794fcacc17920cf0fba558508b576429d4d31 d9613a73dba9cc37e8a8f2190ca794fcacc17920cf0fba558508b576429d4d31 ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(tangent.HasValue()) | EXPECT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, frame, .1, -.05, .275625, &selected)) | EXPECT_FALSE(selected.found) | EXPECT_FALSE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, bad, .1, -.05, .275625, &selected)) | EXPECT_FALSE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, frame, 0, -.05, .275625, &selected)) ASSERT_TRUE(mass.HasValue()) | ASSERT_TRUE(tangent.HasValue()) | EXPECT_TRUE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, frame, .1, -.05, .275625, &selected)) | EXPECT_FALSE(selected.found) | EXPECT_FALSE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, bad, .1, -.05, .275625, &selected)) | EXPECT_FALSE(fesa::detail::SelectSolidHhtRepresentableNeighbor( mass.Value(), tangent.Value(), {0}, frame, 0, -.05, .275625, &selected)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.ActualNewtonStallAtLowHalfOfTwoCycleTriesFallback SolidHhtFloat64History.ActualNewtonStallAtLowHalfOfTwoCycleTriesFallback; assertion 10개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.ActualNewtonStallAtLowHalfOfTwoCycleTriesFallback 유지 원문 검사 body 및 assertion 동일. 704d7a705643dd225528629f4b721162a3c853dd1a41efd579935737b8adeb80 704d7a705643dd225528629f4b721162a3c853dd1a41efd579935737b8adeb80 "ASSERT_LT(current_metric, previous_metric) | ASSERT_TRUE(history.Capture(previous, mask, metrics, 0, false)) | ASSERT_TRUE(history.Capture(current, mask, metrics, 1, false)) | EXPECT_TRUE(history.Match(previous, mask, metrics, false, &repeat)) | ASSERT_TRUE(selected.HasValue()) | EXPECT_TRUE(selected.Value()) | EXPECT_EQ(evaluated, (std::vector{""complete-newton"", ""actual-neighbor""})) | ASSERT_TRUE(productive.HasValue()) | EXPECT_FALSE(productive.Value()) | EXPECT_EQ(evaluated, (std::vector{""complete-newton""}))" "ASSERT_LT(current_metric, previous_metric) | ASSERT_TRUE(history.Capture(previous, mask, metrics, 0, false)) | ASSERT_TRUE(history.Capture(current, mask, metrics, 1, false)) | EXPECT_TRUE(history.Match(previous, mask, metrics, false, &repeat)) | ASSERT_TRUE(selected.HasValue()) | EXPECT_TRUE(selected.Value()) | EXPECT_EQ(evaluated, (std::vector{""complete-newton"", ""actual-neighbor""})) | ASSERT_TRUE(productive.HasValue()) | EXPECT_FALSE(productive.Value()) | EXPECT_EQ(evaluated, (std::vector{""complete-newton""}))" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.ExactNewtonLoopHistoryDetectsThreeStateRecurrence SolidHhtFloat64History.ExactNewtonLoopHistoryDetectsThreeStateRecurrence; assertion 28개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.ExactNewtonLoopHistoryDetectsThreeStateRecurrence 유지 원문 검사 body 및 assertion 동일. 0d255c9f25e86d515bd140a91ed3a0af1f996156162df0c81c8e8cb340b2cd78 0d255c9f25e86d515bd140a91ed3a0af1f996156162df0c81c8e8cb340b2cd78 ASSERT_TRUE(history.Capture(first, first_mask, first_metrics, 4, false)) | ASSERT_TRUE(history.Capture(second, second_mask, second_metrics, 5, false)) | ASSERT_TRUE(history.Capture(third, first_mask, second_metrics, 6, false)) | EXPECT_EQ(history.Size(), 3U) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_TRUE(e.repeat) | EXPECT_EQ(e.matched_entry_iteration, 4U) | EXPECT_EQ(e.history_entry_count, 3U) | EXPECT_EQ(e.changed_translations, 0U) | EXPECT_EQ(e.changed_holding_mask, 0U) | EXPECT_EQ(e.changed_correction_metrics, 0U) | ASSERT_TRUE(history.Match(first, second_mask, first_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, different_metrics, false, &e)) | EXPECT_TRUE( e.repeat) | EXPECT_EQ(e.changed_correction_metrics, 1U) | ASSERT_TRUE(history.Match(first, first_mask, failing_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, true, &e)) | EXPECT_FALSE(e.repeat) | EXPECT_FALSE( history.Match(fesa::Vector(2), first_mask, first_metrics, false, &e)) | EXPECT_FALSE(history.Match(first, {false}, first_metrics, false, &e)) | EXPECT_FALSE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_FALSE(history.Capture(first, first_mask, first_metrics, 7, false)) | EXPECT_FALSE(history.Match(first, first_mask, bad_metrics, false, &e)) | EXPECT_FALSE(history.Capture(first, first_mask, bad_metrics, 7, false)) ASSERT_TRUE(history.Capture(first, first_mask, first_metrics, 4, false)) | ASSERT_TRUE(history.Capture(second, second_mask, second_metrics, 5, false)) | ASSERT_TRUE(history.Capture(third, first_mask, second_metrics, 6, false)) | EXPECT_EQ(history.Size(), 3U) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_TRUE(e.repeat) | EXPECT_EQ(e.matched_entry_iteration, 4U) | EXPECT_EQ(e.history_entry_count, 3U) | EXPECT_EQ(e.changed_translations, 0U) | EXPECT_EQ(e.changed_holding_mask, 0U) | EXPECT_EQ(e.changed_correction_metrics, 0U) | ASSERT_TRUE(history.Match(first, second_mask, first_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, different_metrics, false, &e)) | EXPECT_TRUE( e.repeat) | EXPECT_EQ(e.changed_correction_metrics, 1U) | ASSERT_TRUE(history.Match(first, first_mask, failing_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(first, first_mask, first_metrics, true, &e)) | EXPECT_FALSE(e.repeat) | EXPECT_FALSE( history.Match(fesa::Vector(2), first_mask, first_metrics, false, &e)) | EXPECT_FALSE(history.Match(first, {false}, first_metrics, false, &e)) | EXPECT_FALSE(history.Match(first, first_mask, first_metrics, false, &e)) | EXPECT_FALSE(history.Capture(first, first_mask, first_metrics, 7, false)) | EXPECT_FALSE(history.Match(first, first_mask, bad_metrics, false, &e)) | EXPECT_FALSE(history.Capture(first, first_mask, bad_metrics, 7, false)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.EquivalentFailedNewtonEntrySurvivesRepresentableMove SolidHhtFloat64History.EquivalentFailedNewtonEntrySurvivesRepresentableMove; assertion 21개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtFloat64History.EquivalentFailedNewtonEntrySurvivesRepresentableMove 유지 원문 검사 body 및 assertion 동일. 6b2aeb48d13d507d18a5dd85677f1fbc3204be7f109d4237fb3cae32ca59e4e1 6b2aeb48d13d507d18a5dd85677f1fbc3204be7f109d4237fb3cae32ca59e4e1 "ASSERT_TRUE(history.Capture(failed, mask, correction, 23, true)) | EXPECT_EQ(history.Size(), 0U) | ASSERT_TRUE(history.Capture(failed, mask, large, 23, false)) | EXPECT_EQ(history.Size(), 0U) | ASSERT_TRUE(history.Capture(failed, mask, correction, 23, false)) | EXPECT_TRUE(history.Match(failed, mask, correction, false, &e)) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(first.Value()) | EXPECT_NE(actual[0], failed[0]) | EXPECT_TRUE(history.Match(failed, mask, new_metrics, false, &e)) | EXPECT_TRUE(e.repeat) | EXPECT_EQ(e.matched_entry_iteration, 23U) | ASSERT_TRUE(second.HasValue()) | EXPECT_TRUE(second.Value()) | EXPECT_EQ(applied, (std::vector{""accepted-ulp"", ""returning-newton-evaluated"", ""another-accepted-ulp""})) | ASSERT_TRUE(history.Match(fresh, mask, new_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(failed, {true, false}, new_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(failed, mask, new_metrics, true, &e)) | EXPECT_FALSE(e.repeat)" "ASSERT_TRUE(history.Capture(failed, mask, correction, 23, true)) | EXPECT_EQ(history.Size(), 0U) | ASSERT_TRUE(history.Capture(failed, mask, large, 23, false)) | EXPECT_EQ(history.Size(), 0U) | ASSERT_TRUE(history.Capture(failed, mask, correction, 23, false)) | EXPECT_TRUE(history.Match(failed, mask, correction, false, &e)) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(first.Value()) | EXPECT_NE(actual[0], failed[0]) | EXPECT_TRUE(history.Match(failed, mask, new_metrics, false, &e)) | EXPECT_TRUE(e.repeat) | EXPECT_EQ(e.matched_entry_iteration, 23U) | ASSERT_TRUE(second.HasValue()) | EXPECT_TRUE(second.Value()) | EXPECT_EQ(applied, (std::vector{""accepted-ulp"", ""returning-newton-evaluated"", ""another-accepted-ulp""})) | ASSERT_TRUE(history.Match(fresh, mask, new_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(failed, {true, false}, new_metrics, false, &e)) | EXPECT_FALSE(e.repeat) | ASSERT_TRUE(history.Match(failed, mask, new_metrics, true, &e)) | EXPECT_FALSE(e.repeat)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.UnsupportedPairedProductsPreserveEmptyHistory SolidHhtDynamics.UnsupportedPairedProductsPreserveEmptyHistory; assertion 9개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.UnsupportedPairedProductsPreserveEmptyHistory 유지 원문 검사 body 및 assertion 동일. ee1b43798dba3932ce708b5da15e9939ca00a2600a213127e00db3b0a0fdfd03 ee1b43798dba3932ce708b5da15e9939ca00a2600a213127e00db3b0a0fdfd03 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_NE(status.Diagnostics().front().message.find(""supported""), std::string::npos) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue())" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_NE(status.Diagnostics().front().message.find(""supported""), std::string::npos) | EXPECT_TRUE(state.Value().AcceptedFrames().empty()) | EXPECT_FALSE(state.Value().BeginTrialFromCommitted().HasValue())" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.FailureShadowRecoversCancellationAndRejectsOverflow SolidHhtDynamics.FailureShadowRecoversCancellationAndRejectsOverflow; assertion 8개 tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp SolidHhtDynamics.FailureShadowRecoversCancellationAndRejectsOverflow 유지 원문 검사 body 및 assertion 동일. e0a5f34b9c1b33e66905824b7b4c1a4a0987200be7dc62c0e9f98a1ff767e22b e0a5f34b9c1b33e66905824b7b4c1a4a0987200be7dc62c0e9f98a1ff767e22b ASSERT_TRUE(fesa::detail::AccumulateSolidHhtForceShadow( term, 0, &sum, &correction, &absolute_sum)) | EXPECT_EQ(sum, 0) | EXPECT_EQ(sum + correction, 1) | ASSERT_TRUE(fesa::detail::AccumulateSolidHhtForceShadow( 1e308, 0, &sum, &correction, &absolute_sum)) | EXPECT_FALSE(fesa::detail::AccumulateSolidHhtForceShadow( -1e308, 0, &sum, &correction, &absolute_sum)) | EXPECT_EQ(sum, 1e308) | EXPECT_EQ(absolute_sum, 1e308) | EXPECT_FALSE(fesa::detail::AccumulateSolidHhtForceShadow( 0, std::numeric_limits::quiet_NaN(), &sum, &correction, &absolute_sum)) ASSERT_TRUE(fesa::detail::AccumulateSolidHhtForceShadow( term, 0, &sum, &correction, &absolute_sum)) | EXPECT_EQ(sum, 0) | EXPECT_EQ(sum + correction, 1) | ASSERT_TRUE(fesa::detail::AccumulateSolidHhtForceShadow( 1e308, 0, &sum, &correction, &absolute_sum)) | EXPECT_FALSE(fesa::detail::AccumulateSolidHhtForceShadow( -1e308, 0, &sum, &correction, &absolute_sum)) | EXPECT_EQ(sum, 1e308) | EXPECT_EQ(absolute_sum, 1e308) | EXPECT_FALSE(fesa::detail::AccumulateSolidHhtForceShadow( 0, std::numeric_limits::quiet_NaN(), &sum, &correction, &absolute_sum)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp support@1-153 helper/oracle/fixture/include/static assertion 구간: RunDynamics, Injected, ControlledTangent, FailedMass, OneFree, namespace, PairedUniformInitial tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 233de46ebb5bd11cb643df1a23a3dd168545dc31c41cb3f07b10e23592debb5e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp support@377-446 helper/oracle/fixture/include/static assertion 구간: RestoreArithmeticEnvironment, MutateArithmeticEnvironment, defined, EnvironmentMass, EnvironmentTangent tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b2d00fc08e11c3ce43e06b98f3dae891caf968c4b4fa6bd29a53bdab50fb2004 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp support@856-977 helper/oracle/fixture/include/static assertion 구간: CheckOriginalSourceDeck, if, for tests/unit/analysis/solid_hht_dynamic_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3246a745bf72b60f32cde913fdf1d843b9baa70e5c6d6a3887a9d41f9bbbdf45 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2973549ac31485ce1ab52ad5dc69ca0e8790f437361cf696f53e4bac0b9c627c 2973549ac31485ce1ab52ad5dc69ca0e8790f437361cf696f53e4bac0b9c627c 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.PairedSerialAndTbbPreserveEveryLowComponent SolidHhtTemporal.PairedSerialAndTbbPreserveEveryLowComponent; assertion 0개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.PairedSerialAndTbbPreserveEveryLowComponent 유지 원문 검사 body 및 assertion 동일. 925f400f0ca59d4e2137357ae92f2a0dd2d7509f13b020d8976c51c5aca4650c 925f400f0ca59d4e2137357ae92f2a0dd2d7509f13b020d8976c51c5aca4650c 해당 없음 해당 없음 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.FreeConstantForceHasAnalyticalInitialAcceleration SolidHhtTemporal.FreeConstantForceHasAnalyticalInitialAcceleration; assertion 4개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.FreeConstantForceHasAnalyticalInitialAcceleration 유지 원문 검사 body 및 assertion 동일. cb0a64053e82c3ccc5536f4e9436ad00984a15283b69f2f32cad33eb3f89713f cb0a64053e82c3ccc5536f4e9436ad00984a15283b69f2f32cad33eb3f89713f ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(initial.acceleration[3 * node], 1, 1e-13) | EXPECT_DOUBLE_EQ(initial.displacement[3 * node], 0) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(initial.acceleration[3 * node], 1, 1e-13) | EXPECT_DOUBLE_EQ(initial.displacement[3 * node], 0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.AllFreeUniformForceRetainsExactRigidTranslationBehavior SolidHhtTemporal.AllFreeUniformForceRetainsExactRigidTranslationBehavior; assertion 9개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.AllFreeUniformForceRetainsExactRigidTranslationBehavior 유지 원문 검사 body 및 assertion 동일. 8f852ae83f87b923ddb98e6b8def6326dadb54b8a8e7f239ca53f21cb5740be0 8f852ae83f87b923ddb98e6b8def6326dadb54b8a8e7f239ca53f21cb5740be0 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(std::any_of( state.Value().IterationRecords().begin(), state.Value().IterationRecords().end(), [](const auto& record) { return record.outcome == ""paired-candidate""; })) | EXPECT_NEAR(f.displacement[3 * n], .5 * f.time * f.time, roundoff * .5 * f.time * f.time) | EXPECT_NEAR(f.velocity[3 * n], f.time, roundoff * f.time) | EXPECT_NEAR(f.acceleration[3 * n], 1, roundoff) | EXPECT_NEAR(f.displacement[3 * n + c], 0, roundoff * .5 * f.time * f.time) | EXPECT_NEAR(f.velocity[3 * n + c], 0, roundoff * f.time) | EXPECT_NEAR(f.acceleration[3 * n + c], 0, roundoff)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(std::any_of( state.Value().IterationRecords().begin(), state.Value().IterationRecords().end(), [](const auto& record) { return record.outcome == ""paired-candidate""; })) | EXPECT_NEAR(f.displacement[3 * n], .5 * f.time * f.time, roundoff * .5 * f.time * f.time) | EXPECT_NEAR(f.velocity[3 * n], f.time, roundoff * f.time) | EXPECT_NEAR(f.acceleration[3 * n], 1, roundoff) | EXPECT_NEAR(f.displacement[3 * n + c], 0, roundoff * .5 * f.time * f.time) | EXPECT_NEAR(f.velocity[3 * n + c], 0, roundoff * f.time) | EXPECT_NEAR(f.acceleration[3 * n + c], 0, roundoff)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.PairedNewtonKeepsAllOriginalComponentsAcrossAxesAndScales SolidHhtTemporal.PairedNewtonKeepsAllOriginalComponentsAcrossAxesAndScales; assertion 10개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.PairedNewtonKeepsAllOriginalComponentsAcrossAxesAndScales 유지 원문 검사 body 및 assertion 동일. 7652c6a7c34e2a7cb0a270e47e8f0e15059187b39635ba1980ddbfac049e0764 7652c6a7c34e2a7cb0a270e47e8f0e15059187b39635ba1980ddbfac049e0764 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(status.IsOk()) | EXPECT_LE(frame.iterations.back().residual_metric, 1e-10) | EXPECT_LE(frame.iterations.back().update_metric, 1e-12) | EXPECT_NEAR(frame.displacement[3 * node + c], .5 * a * frame.time * frame.time, roundoff * .5 * acceleration * frame.time * frame.time) | EXPECT_NEAR(frame.velocity[3 * node + c], a * frame.time, roundoff * acceleration * frame.time) | EXPECT_NEAR(frame.acceleration[3 * node + c], a, roundoff * acceleration) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(status.IsOk()) | EXPECT_LE(frame.iterations.back().residual_metric, 1e-10) | EXPECT_LE(frame.iterations.back().update_metric, 1e-12) | EXPECT_NEAR(frame.displacement[3 * node + c], .5 * a * frame.time * frame.time, roundoff * .5 * acceleration * frame.time * frame.time) | EXPECT_NEAR(frame.velocity[3 * node + c], a * frame.time, roundoff * acceleration * frame.time) | EXPECT_NEAR(frame.acceleration[3 * node + c], a, roundoff * acceleration) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.ActualTwoBrickLinearAndRotatingSmallStrainTlAreSecondOrder SolidHhtTemporal.ActualTwoBrickLinearAndRotatingSmallStrainTlAreSecondOrder; assertion 4개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.ActualTwoBrickLinearAndRotatingSmallStrainTlAreSecondOrder 유지 원문 검사 body 및 assertion 동일. e27884c416eb70f27d47e3985209f13751955e5c30a689ad6d938474f41ca416 e27884c416eb70f27d47e3985209f13751955e5c30a689ad6d938474f41ca416 EXPECT_GT(fine[j], 1e-8) | EXPECT_LT(coarse[j], .1) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) EXPECT_GT(fine[j], 1e-8) | EXPECT_LT(coarse[j], .1) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.IndependentThreeDofBrickOscillatorHasSecondOrderUVA SolidHhtTemporal.IndependentThreeDofBrickOscillatorHasSecondOrderUVA; assertion 5개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.IndependentThreeDofBrickOscillatorHasSecondOrderUVA 유지 원문 검사 body 및 assertion 동일. a3cc00aa843d56fb0d6354682dccb6ddb98a61b624f57e2337a37499cc7e3efa a3cc00aa843d56fb0d6354682dccb6ddb98a61b624f57e2337a37499cc7e3efa ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) | EXPECT_GT(errors[2][j], 1e-15) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) | EXPECT_GT(errors[2][j], 1e-15) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.IndependentScalarBrickOscillatorHasSecondOrderUVA SolidHhtTemporal.IndependentScalarBrickOscillatorHasSecondOrderUVA; assertion 7개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.IndependentScalarBrickOscillatorHasSecondOrderUVA 유지 원문 검사 body 및 assertion 동일. 8cd02e0db682a2480cd82a7ce3bb9d235ada6080f491eb79a280b4fd3469633f 8cd02e0db682a2480cd82a7ce3bb9d235ada6080f491eb79a280b4fd3469633f ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR( f.kinetic_energy, .5 * m * f.velocity[0] * f.velocity[0], 512 * std::numeric_limits::epsilon() * f.kinetic_energy) | EXPECT_NEAR(f.strain_energy, .5 * k * f.displacement[0] * f.displacement[0], 512 * std::numeric_limits::epsilon() * f.strain_energy) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) | EXPECT_GT(errors[2][j], 1e-8) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR( f.kinetic_energy, .5 * m * f.velocity[0] * f.velocity[0], 512 * std::numeric_limits::epsilon() * f.kinetic_energy) | EXPECT_NEAR(f.strain_energy, .5 * k * f.displacement[0] * f.displacement[0], 512 * std::numeric_limits::epsilon() * f.strain_energy) | EXPECT_GE(p1, 1.8) | EXPECT_GE(p2, 1.8) | EXPECT_GT(errors[2][j], 1e-8) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.FixedThicknessBendingRetainsDiscreteBulkBias SolidHhtTemporal.FixedThicknessBendingRetainsDiscreteBulkBias; assertion 3개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.FixedThicknessBendingRetainsDiscreteBulkBias 유지 원문 검사 body 및 assertion 동일. e9210764d5fd451d439b84dfd39db8695cac0f2bb2e9aefc1913caaa132185f4 e9210764d5fd451d439b84dfd39db8695cac0f2bb2e9aefc1913caaa132185f4 EXPECT_NEAR(energy[0] / continuum, limit + parasitic, 2e-11) | EXPECT_NEAR(energy[2] / continuum, 0, 2e-13) | EXPECT_NEAR(previous_parasitic / parasitic, 4, 1e-13) EXPECT_NEAR(energy[0] / continuum, limit + parasitic, 2e-11) | EXPECT_NEAR(energy[2] / continuum, 0, 2e-13) | EXPECT_NEAR(previous_parasitic / parasitic, 4, 1e-13) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.BendingMeshRefinementQuantifiesFullIntegrationShearLocking SolidHhtTemporal.BendingMeshRefinementQuantifiesFullIntegrationShearLocking; assertion 4개 tests/unit/analysis/solid_hht_temporal_verification_test.cpp SolidHhtTemporal.BendingMeshRefinementQuantifiesFullIntegrationShearLocking 유지 원문 검사 body 및 assertion 동일. f2d9632408ddbfd1de879876b41c4dbed627801d1bc3b1454cedd7b77345ce1d f2d9632408ddbfd1de879876b41c4dbed627801d1bc3b1454cedd7b77345ce1d EXPECT_NEAR(error, shear - missing_bulk, 2e-11) | EXPECT_NEAR(energy[1] / continuum, 4 * mu / (3 * axial) + shear, 2e-11) | EXPECT_NEAR(energy[2] / continuum, bulk / axial - missing_bulk, 2e-11) | EXPECT_NEAR(previous_error / error, 4, 1e-10) EXPECT_NEAR(error, shear - missing_bulk, 2e-11) | EXPECT_NEAR(energy[1] / continuum, 4 * mu / (3 * axial) + shear, 2e-11) | EXPECT_NEAR(energy[2] / continuum, bulk / axial - missing_bulk, 2e-11) | EXPECT_NEAR(previous_error / error, 4, 1e-10) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp support@1-332 helper/oracle/fixture/include/static assertion 구간: AffineMotion, Motion, if, Apply, TwoBricks, ExactForce, ExactMassProduct, AddCross, ManufacturedRun, for tests/unit/analysis/solid_hht_temporal_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4c8ee89aab5bd9798906f93ce66756ce94ef4d24fd91379106f91fb317702361 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/solid_hht_temporal_verification_test.cpp support@602-649 helper/oracle/fixture/include/static assertion 구간: BendingEnergy tests/unit/analysis/solid_hht_temporal_verification_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5ea1a45d3745809343ba4a3358aaafeb00f60c830f663189069687af8a684b7f 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/solid_hht_test_fixture.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/unit/analysis/solid_hht_test_fixture.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2ffd1ec89405f926f038cb58fc612604ff8e17853c134caf7cb127c32685cefd 2ffd1ec89405f926f038cb58fc612604ff8e17853c134caf7cb127c32685cefd 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/solid_hht_test_fixture.h support@1-52 helper/oracle/fixture/include/static assertion 구간: solid_hht_test, Brick, Message tests/unit/analysis/solid_hht_test_fixture.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e2621f72b12715391a06e51ec23a320063679e90af74443afd5237197194b962 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/solid_static_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 23개 tests/unit/analysis/solid_static_procedure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8253b2e91a4db4d52cc039a5084ddfb93f7b0ffd1d10b1680e0e79439eabcb04 8253b2e91a4db4d52cc039a5084ddfb93f7b0ffd1d10b1680e0e79439eabcb04 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LinearForceNonzeroSupportAndCompleteRecovery SolidStaticProcedure.LinearForceNonzeroSupportAndCompleteRecovery; assertion 17개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LinearForceNonzeroSupportAndCompleteRecovery 유지 원문 검사 body 및 assertion 동일. 0661804c27dc3d473e445fb06a9874f92a9e56b90ad2f77cafcd5eda24a801ed 0661804c27dc3d473e445fb06a9874f92a9e56b90ad2f77cafcd5eda24a801ed ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 1U) | EXPECT_EQ(frame.frame_index, 0U) | EXPECT_DOUBLE_EQ(frame.load_factor, 1.0) | ASSERT_EQ(frame.displacement.Size(), 24U) | ASSERT_EQ(frame.solid_results.size(), 8U) | EXPECT_NEAR(frame.displacement[3 * a], 0.02 + 0.01 * kX[a][0], 1e-13) | EXPECT_NEAR(frame.displacement[3 * a + 1], -0.0025 * kX[a][1], 1e-13) | EXPECT_NEAR(frame.displacement[3 * a + 2], -0.0025 * kX[a][2], 1e-13) | EXPECT_DOUBLE_EQ(frame.reaction[3 * a], 0.0) | EXPECT_NEAR(frame.reaction[3 * a], -0.3, 1e-13) | EXPECT_NEAR(frame.physical_strain_energy, 0.006, 1e-13) | EXPECT_NEAR(point.cauchy_stress[0], 1.2, 1e-12) | EXPECT_NEAR(point.cauchy_stress[1], 0.0, 1e-12) | EXPECT_NEAR(point.strain[0], 0.01, 1e-13) | EXPECT_NEAR(value, 0.0, 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 1U) | EXPECT_EQ(frame.frame_index, 0U) | EXPECT_DOUBLE_EQ(frame.load_factor, 1.0) | ASSERT_EQ(frame.displacement.Size(), 24U) | ASSERT_EQ(frame.solid_results.size(), 8U) | EXPECT_NEAR(frame.displacement[3 * a], 0.02 + 0.01 * kX[a][0], 1e-13) | EXPECT_NEAR(frame.displacement[3 * a + 1], -0.0025 * kX[a][1], 1e-13) | EXPECT_NEAR(frame.displacement[3 * a + 2], -0.0025 * kX[a][2], 1e-13) | EXPECT_DOUBLE_EQ(frame.reaction[3 * a], 0.0) | EXPECT_NEAR(frame.reaction[3 * a], -0.3, 1e-13) | EXPECT_NEAR(frame.physical_strain_energy, 0.006, 1e-13) | EXPECT_NEAR(point.cauchy_stress[0], 1.2, 1e-12) | EXPECT_NEAR(point.cauchy_stress[1], 0.0, 1e-12) | EXPECT_NEAR(point.strain[0], 0.01, 1e-13) | EXPECT_NEAR(value, 0.0, 1e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.AllConstrainedShearHasTensorStrainAndLinearMomentEvidence SolidStaticProcedure.AllConstrainedShearHasTensorStrainAndLinearMomentEvidence; assertion 8개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.AllConstrainedShearHasTensorStrainAndLinearMomentEvidence 유지 원문 검사 body 및 assertion 동일. e2c2aaea106d7f59e5ac8f4e9b545fe99ced00b92c0113d4e36fd40d305a972b e2c2aaea106d7f59e5ac8f4e9b545fe99ced00b92c0113d4e36fd40d305a972b ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(point.strain[3], 0.015, 1e-13) | EXPECT_NEAR(point.cauchy_stress[3], 1.44, 1e-12) | EXPECT_NEAR(frame.physical_strain_energy, 0.0504, 1e-13) | EXPECT_GT(std::abs(frame.balance.current_internal_moment[2]), 1e-5) | EXPECT_NEAR(frame.balance.current_internal_moment[2], frame.balance.linearization_moment[2], 1e-12) | EXPECT_NEAR(frame.balance.reference_internal_moment[2], 0.0, 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(point.strain[3], 0.015, 1e-13) | EXPECT_NEAR(point.cauchy_stress[3], 1.44, 1e-12) | EXPECT_NEAR(frame.physical_strain_energy, 0.0504, 1e-13) | EXPECT_GT(std::abs(frame.balance.current_internal_moment[2]), 1e-5) | EXPECT_NEAR(frame.balance.current_internal_moment[2], frame.balance.linearization_moment[2], 1e-12) | EXPECT_NEAR(frame.balance.reference_internal_moment[2], 0.0, 1e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.NonlinearDirectScheduleScalesForceAndAbsoluteTargets SolidStaticProcedure.NonlinearDirectScheduleScalesForceAndAbsoluteTargets; assertion 13개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.NonlinearDirectScheduleScalesForceAndAbsoluteTargets 유지 원문 검사 body 및 assertion 동일. d9e5db680ab7cfefe0bb0adc600921ea6a1ce60566317367656d013931bfebf6 d9e5db680ab7cfefe0bb0adc600921ea6a1ce60566317367656d013931bfebf6 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 4U) | EXPECT_EQ(frame.frame_index, n) | EXPECT_EQ(frame.increment_index, n + 1U) | EXPECT_DOUBLE_EQ(frame.load_factor, 0.25 * (n + 1)) | EXPECT_DOUBLE_EQ(frame.displacement[0], 0.02 * frame.load_factor) | EXPECT_DOUBLE_EQ(frame.external_force[3], 0.3 * frame.load_factor) | EXPECT_GT(frame.iteration_count, 1U) | EXPECT_EQ(frame.is_factor_one, n == 3) | EXPECT_NEAR(value, 0.0, 1e-12) | ASSERT_FALSE(result.Value().state.IterationRecords().empty()) | EXPECT_TRUE(result.Value().state.IterationRecords().back().accepted) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 4U) | EXPECT_EQ(frame.frame_index, n) | EXPECT_EQ(frame.increment_index, n + 1U) | EXPECT_DOUBLE_EQ(frame.load_factor, 0.25 * (n + 1)) | EXPECT_DOUBLE_EQ(frame.displacement[0], 0.02 * frame.load_factor) | EXPECT_DOUBLE_EQ(frame.external_force[3], 0.3 * frame.load_factor) | EXPECT_GT(frame.iteration_count, 1U) | EXPECT_EQ(frame.is_factor_one, n == 3) | EXPECT_NEAR(value, 0.0, 1e-12) | ASSERT_FALSE(result.Value().state.IterationRecords().empty()) | EXPECT_TRUE(result.Value().state.IterationRecords().back().accepted) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PurePrescribedNonlinearAndSmallLoadLinearLimit SolidStaticProcedure.PurePrescribedNonlinearAndSmallLoadLinearLimit; assertion 9개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PurePrescribedNonlinearAndSmallLoadLinearLimit 유지 원문 검사 body 및 assertion 동일. 45b82b45c2f4ba29abb9e5f78b83dea26d453f512441f7bb2d79443d02ab4f92 45b82b45c2f4ba29abb9e5f78b83dea26d453f512441f7bb2d79443d02ab4f92 ASSERT_TRUE(pure.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(record.force_residual.branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(record.force_residual.denominator_scale, 0.0) | ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(l.HasValue()) | ASSERT_TRUE(n.HasValue()) | EXPECT_NEAR(l.Value().state.CommittedState().displacement[i], n.Value().state.CommittedState().displacement[i], 2e-13) ASSERT_TRUE(pure.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(record.force_residual.branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(record.force_residual.denominator_scale, 0.0) | ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(l.HasValue()) | ASSERT_TRUE(n.HasValue()) | EXPECT_NEAR(l.Value().state.CommittedState().displacement[i], n.Value().state.CommittedState().displacement[i], 2e-13) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.StrainedThenRotatedTLCauchyAndEnergyOracle SolidStaticProcedure.StrainedThenRotatedTLCauchyAndEnergyOracle; assertion 7개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.StrainedThenRotatedTLCauchyAndEnergyOracle 유지 원문 검사 body 및 assertion 동일. ae7f274dc580d801db003d380539c0153f30638e98a1aef9ddb9bed86a5cf421 ae7f274dc580d801db003d380539c0153f30638e98a1aef9ddb9bed86a5cf421 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(point.strain[0], green, 1e-13) | EXPECT_NEAR( point.cauchy_stress[0], std::pow(std::cos(angle), 2) * s0 + std::pow(std::sin(angle), 2) * s1, 1e-11) | EXPECT_NEAR(point.cauchy_stress[3], std::sin(angle) * std::cos(angle) * (s0 - s1), 1e-11) | EXPECT_NEAR(frame.physical_strain_energy, 72 * green * green, 1e-12) | EXPECT_NEAR(value, 0.0, 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(point.strain[0], green, 1e-13) | EXPECT_NEAR( point.cauchy_stress[0], std::pow(std::cos(angle), 2) * s0 + std::pow(std::sin(angle), 2) * s1, 1e-11) | EXPECT_NEAR(point.cauchy_stress[3], std::sin(angle) * std::cos(angle) * (s0 - s1), 1e-11) | EXPECT_NEAR(frame.physical_strain_energy, 72 * green * green, 1e-12) | EXPECT_NEAR(value, 0.0, 1e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.FailedBackendKeepsActualAcceptedHistory SolidStaticProcedure.FailedBackendKeepsActualAcceptedHistory; assertion 11개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.FailedBackendKeepsActualAcceptedHistory 유지 원문 검사 body 및 assertion 동일. 8fcbb8d30b751700e685c57cf7f932779ef1105776f8c5cde20834df611a5075 8fcbb8d30b751700e685c57cf7f932779ef1105776f8c5cde20834df611a5075 "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.25) | EXPECT_EQ(state.CommittedState().displacement.Size(), 24U) | EXPECT_EQ(state.CommittedState().solid_results.size(), 8U) | EXPECT_EQ(state.IterationRecords().back().diagnostic_code, ""injected-backend"") | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | EXPECT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.25)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.25) | EXPECT_EQ(state.CommittedState().displacement.Size(), 24U) | EXPECT_EQ(state.CommittedState().solid_results.size(), 8U) | EXPECT_EQ(state.IterationRecords().back().diagnostic_code, ""injected-backend"") | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | EXPECT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.25)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.GeometryIterationAndNonfiniteFailuresPreserveBaseline SolidStaticProcedure.GeometryIterationAndNonfiniteFailuresPreserveBaseline; assertion 10개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.GeometryIterationAndNonfiniteFailuresPreserveBaseline 유지 원문 검사 body 및 assertion 동일. d01826c155aeded9026db515baedaf45ea10080a9ac6c9e5604e3e8f05b46770 d01826c155aeded9026db515baedaf45ea10080a9ac6c9e5604e3e8f05b46770 ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(state.AcceptedFrames().empty()) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.0) | ASSERT_EQ(state.CommittedState().displacement.Size(), 24U) | EXPECT_DOUBLE_EQ(state.CommittedState().displacement[i], 0.0) | ASSERT_FALSE(state.IterationRecords().empty()) | EXPECT_FALSE(state.IterationRecords().back().accepted) | EXPECT_FALSE(state.IterationRecords().back().diagnostic_code.empty()) | EXPECT_EQ(state.IterationRecords().back().iteration, 100U) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(state.AcceptedFrames().empty()) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.0) | ASSERT_EQ(state.CommittedState().displacement.Size(), 24U) | EXPECT_DOUBLE_EQ(state.CommittedState().displacement[i], 0.0) | ASSERT_FALSE(state.IterationRecords().empty()) | EXPECT_FALSE(state.IterationRecords().back().accepted) | EXPECT_FALSE(state.IterationRecords().back().diagnostic_code.empty()) | EXPECT_EQ(state.IterationRecords().back().iteration, 100U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.UnconstrainedSolidFailsWithoutRegularization SolidStaticProcedure.UnconstrainedSolidFailsWithoutRegularization; assertion 2개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.UnconstrainedSolidFailsWithoutRegularization 유지 원문 검사 body 및 assertion 동일. 26a02bf428c8b4d8684b66f3b75d4fc83e96c18d6497d81dba18879b19b2c81f 26a02bf428c8b4d8684b66f3b75d4fc83e96c18d6497d81dba18879b19b2c81f ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(result.HasValue()) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(result.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.EightElementAffinePatchHasSolvedInteriorAndStableRows SolidStaticProcedure.EightElementAffinePatchHasSolvedInteriorAndStableRows; assertion 18개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.EightElementAffinePatchHasSolvedInteriorAndStableRows 유지 원문 검사 body 및 assertion 동일. db9abadb927e8b0a0bb434ae43107b27275e65355b74fbba89d72cfad8c88d91 db9abadb927e8b0a0bb434ae43107b27275e65355b74fbba89d72cfad8c88d91 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(frame.solid_results.size(), 64U) | EXPECT_NEAR(frame.displacement[3 * 13], 0.05, 1e-13) | EXPECT_NEAR(frame.displacement[3 * 13 + 1], 0.0, 1e-13) | EXPECT_NEAR(frame.displacement[3 * 13 + 2], 0.0, 1e-13) | EXPECT_NEAR(frame.physical_strain_energy, 8 * 0.0504, 1e-12) | EXPECT_EQ(frame.solid_results[g].element, g / 8) | EXPECT_EQ(frame.solid_results[g].integration_point, static_cast(g % 8 + 1)) | EXPECT_NEAR(frame.solid_results[g].cauchy_stress[0], 2.88, 1e-12) | EXPECT_NEAR(frame.solid_results[g].cauchy_stress[3], 1.44, 1e-12) | ASSERT_TRUE(parallel_result.HasValue()) | EXPECT_DOUBLE_EQ(parallel_frame.physical_strain_energy, frame.physical_strain_energy) | EXPECT_DOUBLE_EQ(parallel_frame.displacement[i], frame.displacement[i]) | EXPECT_DOUBLE_EQ(parallel_frame.internal_force[i], frame.internal_force[i]) | EXPECT_DOUBLE_EQ(parallel_frame.residual[i], frame.residual[i]) | EXPECT_EQ(parallel_frame.solid_results[g].cauchy_stress, frame.solid_results[g].cauchy_stress) | EXPECT_EQ(parallel_frame.solid_results[g].strain, frame.solid_results[g].strain) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(frame.solid_results.size(), 64U) | EXPECT_NEAR(frame.displacement[3 * 13], 0.05, 1e-13) | EXPECT_NEAR(frame.displacement[3 * 13 + 1], 0.0, 1e-13) | EXPECT_NEAR(frame.displacement[3 * 13 + 2], 0.0, 1e-13) | EXPECT_NEAR(frame.physical_strain_energy, 8 * 0.0504, 1e-12) | EXPECT_EQ(frame.solid_results[g].element, g / 8) | EXPECT_EQ(frame.solid_results[g].integration_point, static_cast(g % 8 + 1)) | EXPECT_NEAR(frame.solid_results[g].cauchy_stress[0], 2.88, 1e-12) | EXPECT_NEAR(frame.solid_results[g].cauchy_stress[3], 1.44, 1e-12) | ASSERT_TRUE(parallel_result.HasValue()) | EXPECT_DOUBLE_EQ(parallel_frame.physical_strain_energy, frame.physical_strain_energy) | EXPECT_DOUBLE_EQ(parallel_frame.displacement[i], frame.displacement[i]) | EXPECT_DOUBLE_EQ(parallel_frame.internal_force[i], frame.internal_force[i]) | EXPECT_DOUBLE_EQ(parallel_frame.residual[i], frame.residual[i]) | EXPECT_EQ(parallel_frame.solid_results[g].cauchy_stress, frame.solid_results[g].cauchy_stress) | EXPECT_EQ(parallel_frame.solid_results[g].strain, frame.solid_results[g].strain) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LaterInvertedPrescribedTrialPreservesThreeAcceptedFrames SolidStaticProcedure.LaterInvertedPrescribedTrialPreservesThreeAcceptedFrames; assertion 8개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LaterInvertedPrescribedTrialPreservesThreeAcceptedFrames 유지 원문 검사 body 및 assertion 동일. aa4fc98ea93ac0cf4107c008482a044d58aa6fe24db7d22ac1f070603a8cd04c aa4fc98ea93ac0cf4107c008482a044d58aa6fe24db7d22ac1f070603a8cd04c ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 3U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.75) | EXPECT_NEAR(state.CommittedState().displacement[3], -0.9, 1e-15) | ASSERT_EQ(state.CommittedState().solid_results.size(), 8U) | EXPECT_EQ(state.IterationRecords().back().increment_index, 4U) | EXPECT_FALSE(state.IterationRecords().back().accepted) ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 3U) | EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, 0.75) | EXPECT_NEAR(state.CommittedState().displacement[3], -0.9, 1e-15) | ASSERT_EQ(state.CommittedState().solid_results.size(), 8U) | EXPECT_EQ(state.IterationRecords().back().increment_index, 4U) | EXPECT_FALSE(state.IterationRecords().back().accepted) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PartiallySupportedRigidMechanismAlsoFailsUnloaded SolidStaticProcedure.PartiallySupportedRigidMechanismAlsoFailsUnloaded; assertion 3개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PartiallySupportedRigidMechanismAlsoFailsUnloaded 유지 원문 검사 body 및 assertion 동일. 7f3830b55f5ac74af77b283eb5c3bc1c1e747a146c92b19de6d45f417141e9c5 7f3830b55f5ac74af77b283eb5c3bc1c1e747a146c92b19de6d45f417141e9c5 ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.SerialAndTbbFramesAndFailureEvidenceAreIdentical SolidStaticProcedure.SerialAndTbbFramesAndFailureEvidenceAreIdentical; assertion 18개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.SerialAndTbbFramesAndFailureEvidenceAreIdentical 유지 원문 검사 body 및 assertion 동일. 2204b6d824ccabcf85805a5c154e72abfcd625aa56a832f3814e99a3e0e70a47 2204b6d824ccabcf85805a5c154e72abfcd625aa56a832f3814e99a3e0e70a47 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(a.HasValue()) | ASSERT_TRUE(b.HasValue()) | ASSERT_EQ(a.Value().state.AcceptedFrames().size(), b.Value().state.AcceptedFrames().size()) | EXPECT_DOUBLE_EQ(af.physical_strain_energy, bf.physical_strain_energy) | EXPECT_EQ(af.global_equilibrium, bf.global_equilibrium) | EXPECT_DOUBLE_EQ(af.displacement[i], bf.displacement[i]) | EXPECT_DOUBLE_EQ(af.residual[i], bf.residual[i]) | EXPECT_DOUBLE_EQ(af.reaction[i], bf.reaction[i]) | EXPECT_EQ(af.solid_results[g].cauchy_stress, bf.solid_results[g].cauchy_stress) | EXPECT_EQ(af.solid_results[g].strain, bf.solid_results[g].strain) | ASSERT_TRUE(invalid.HasValue()) | ASSERT_FALSE(as.IsOk()) | ASSERT_FALSE(bs.IsOk()) | EXPECT_EQ(as.Diagnostics()[0].code, bs.Diagnostics()[0].code) | EXPECT_EQ(sa.AcceptedFrames().size(), sb.AcceptedFrames().size()) | EXPECT_EQ(sa.IterationRecords().back().stage, sb.IterationRecords().back().stage) | EXPECT_DOUBLE_EQ(sa.CommittedState().physical_strain_energy, sb.CommittedState().physical_strain_energy) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(a.HasValue()) | ASSERT_TRUE(b.HasValue()) | ASSERT_EQ(a.Value().state.AcceptedFrames().size(), b.Value().state.AcceptedFrames().size()) | EXPECT_DOUBLE_EQ(af.physical_strain_energy, bf.physical_strain_energy) | EXPECT_EQ(af.global_equilibrium, bf.global_equilibrium) | EXPECT_DOUBLE_EQ(af.displacement[i], bf.displacement[i]) | EXPECT_DOUBLE_EQ(af.residual[i], bf.residual[i]) | EXPECT_DOUBLE_EQ(af.reaction[i], bf.reaction[i]) | EXPECT_EQ(af.solid_results[g].cauchy_stress, bf.solid_results[g].cauchy_stress) | EXPECT_EQ(af.solid_results[g].strain, bf.solid_results[g].strain) | ASSERT_TRUE(invalid.HasValue()) | ASSERT_FALSE(as.IsOk()) | ASSERT_FALSE(bs.IsOk()) | EXPECT_EQ(as.Diagnostics()[0].code, bs.Diagnostics()[0].code) | EXPECT_EQ(sa.AcceptedFrames().size(), sb.AcceptedFrames().size()) | EXPECT_EQ(sa.IterationRecords().back().stage, sb.IterationRecords().back().stage) | EXPECT_DOUBLE_EQ(sa.CommittedState().physical_strain_energy, sb.CommittedState().physical_strain_energy) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.InvalidRecoveryAndRepeatedExecutionKeepAcceptedFrame SolidStaticProcedure.InvalidRecoveryAndRepeatedExecutionKeepAcceptedFrame; assertion 9개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.InvalidRecoveryAndRepeatedExecutionKeepAcceptedFrame 유지 원문 검사 body 및 assertion 동일. c7dfc371a7b67a1c78981dc4d1deb65f7122dcff6108ae6c7ec65caf7448d811 c7dfc371a7b67a1c78981dc4d1deb65f7122dcff6108ae6c7ec65caf7448d811 ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(fesa::SolidStaticProcedureExecutor(serial, linear, tangent) .ExecuteInto(domain.Value(), state) .IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().physical_strain_energy, valid.physical_strain_energy) | EXPECT_EQ(state.CommittedState().solid_results[0].cauchy_stress, valid.solid_results[0].cauchy_stress) | EXPECT_FALSE(fesa::SolidStaticProcedureExecutor(serial, linear, tangent) .ExecuteInto(domain.Value(), state) .IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(fesa::SolidStaticProcedureExecutor(serial, linear, tangent) .ExecuteInto(domain.Value(), state) .IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_FALSE(state.CommitAcceptedFrame(bad).IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_DOUBLE_EQ(state.CommittedState().physical_strain_energy, valid.physical_strain_energy) | EXPECT_EQ(state.CommittedState().solid_results[0].cauchy_stress, valid.solid_results[0].cauchy_stress) | EXPECT_FALSE(fesa::SolidStaticProcedureExecutor(serial, linear, tangent) .ExecuteInto(domain.Value(), state) .IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.StressedIndefiniteFreeTangentUsesCapableBackend SolidStaticProcedure.StressedIndefiniteFreeTangentUsesCapableBackend; assertion 6개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.StressedIndefiniteFreeTangentUsesCapableBackend 유지 원문 검사 body 및 assertion 동일. b812d55397294e1477756f267282142cdab4613da0d6ba78c49161e44a4bb757 b812d55397294e1477756f267282142cdab4613da0d6ba78c49161e44a4bb757 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(tangent.rayleigh_sum, -21.12, 1e-12) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 1U) | EXPECT_NEAR(frame.displacement[3 * a + 1], 0.0, 1e-13) | EXPECT_NEAR(frame.solid_results[0].strain[0], -.48, 1e-13) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(tangent.rayleigh_sum, -21.12, 1e-12) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 1U) | EXPECT_NEAR(frame.displacement[3 * a + 1], 0.0, 1e-13) | EXPECT_NEAR(frame.solid_results[0].strain[0], -.48, 1e-13) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.FullyConstrainedZeroDisplacementRetainsSupportLoadResidual SolidStaticProcedure.FullyConstrainedZeroDisplacementRetainsSupportLoadResidual; assertion 8개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.FullyConstrainedZeroDisplacementRetainsSupportLoadResidual 유지 원문 검사 body 및 assertion 동일. 956d6dd86eb3526eb262dd5e38e7b4245a5a0dda8fba51effed01c553a14f29f 956d6dd86eb3526eb262dd5e38e7b4245a5a0dda8fba51effed01c553a14f29f ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frame.internal_force[0], 0.0) | EXPECT_DOUBLE_EQ(frame.residual[0], -7.0) | EXPECT_DOUBLE_EQ(frame.reaction[0], -7.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | ASSERT_EQ(frame.solid_results.size(), 8U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frame.internal_force[0], 0.0) | EXPECT_DOUBLE_EQ(frame.residual[0], -7.0) | EXPECT_DOUBLE_EQ(frame.reaction[0], -7.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | ASSERT_EQ(frame.solid_results.size(), 8U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.UniformPrescribedTranslationHasExactlyZeroRecovery SolidStaticProcedure.UniformPrescribedTranslationHasExactlyZeroRecovery; assertion 11개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.UniformPrescribedTranslationHasExactlyZeroRecovery 유지 원문 검사 body 및 assertion 동일. 283e16609b747830674f685910884882be83a270558850725c06370227b2ff47 283e16609b747830674f685910884882be83a270558850725c06370227b2ff47 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(frame.displacement.Size(), 24U) | EXPECT_DOUBLE_EQ(frame.displacement[i], translation[i % 3U]) | EXPECT_DOUBLE_EQ(frame.internal_force[i], 0.0) | EXPECT_DOUBLE_EQ(frame.residual[i], 0.0) | EXPECT_DOUBLE_EQ(frame.reaction[i], 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | ASSERT_EQ(frame.solid_results.size(), 8U) | EXPECT_DOUBLE_EQ(strain, 0.0) | EXPECT_DOUBLE_EQ(stress, 0.0) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(frame.displacement.Size(), 24U) | EXPECT_DOUBLE_EQ(frame.displacement[i], translation[i % 3U]) | EXPECT_DOUBLE_EQ(frame.internal_force[i], 0.0) | EXPECT_DOUBLE_EQ(frame.residual[i], 0.0) | EXPECT_DOUBLE_EQ(frame.reaction[i], 0.0) | EXPECT_DOUBLE_EQ(frame.physical_strain_energy, 0.0) | ASSERT_EQ(frame.solid_results.size(), 8U) | EXPECT_DOUBLE_EQ(strain, 0.0) | EXPECT_DOUBLE_EQ(stress, 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.MixedStrainAndTranslationPreserveAnalyticRecovery SolidStaticProcedure.MixedStrainAndTranslationPreserveAnalyticRecovery; assertion 16개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.MixedStrainAndTranslationPreserveAnalyticRecovery 유지 원문 검사 body 및 assertion 동일. d39c4b7c1d12b2e0b05fc9b5df66b9d0a184eee9e1f297b5fb4ea583f8655f8d d39c4b7c1d12b2e0b05fc9b5df66b9d0a184eee9e1f297b5fb4ea583f8655f8d ASSERT_TRUE(original_domain.HasValue()) | ASSERT_TRUE(translated_domain.HasValue()) | ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(translated.HasValue()) | EXPECT_NEAR(frame->physical_strain_energy, 0.1640625, 1e-13) | EXPECT_NEAR(point.strain[0], 1.0 / 32, 1e-15) | EXPECT_NEAR(point.strain[3], 1.0 / 32, 1e-15) | EXPECT_NEAR(point.cauchy_stress[c], stress[c], 1e-13) | EXPECT_NEAR(frame->internal_force[3 * node + c], exact_force[c], 1e-13) | EXPECT_NEAR(frame->reaction[3 * node + c], exact_force[c], 1e-13) | EXPECT_DOUBLE_EQ(a.physical_strain_energy, b.physical_strain_energy) | EXPECT_DOUBLE_EQ(a.internal_force[i], b.internal_force[i]) | EXPECT_DOUBLE_EQ(a.reaction[i], b.reaction[i]) | EXPECT_DOUBLE_EQ(a.residual[i], b.residual[i]) | EXPECT_EQ(a.solid_results[g].strain, b.solid_results[g].strain) | EXPECT_EQ(a.solid_results[g].cauchy_stress, b.solid_results[g].cauchy_stress) ASSERT_TRUE(original_domain.HasValue()) | ASSERT_TRUE(translated_domain.HasValue()) | ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(translated.HasValue()) | EXPECT_NEAR(frame->physical_strain_energy, 0.1640625, 1e-13) | EXPECT_NEAR(point.strain[0], 1.0 / 32, 1e-15) | EXPECT_NEAR(point.strain[3], 1.0 / 32, 1e-15) | EXPECT_NEAR(point.cauchy_stress[c], stress[c], 1e-13) | EXPECT_NEAR(frame->internal_force[3 * node + c], exact_force[c], 1e-13) | EXPECT_NEAR(frame->reaction[3 * node + c], exact_force[c], 1e-13) | EXPECT_DOUBLE_EQ(a.physical_strain_energy, b.physical_strain_energy) | EXPECT_DOUBLE_EQ(a.internal_force[i], b.internal_force[i]) | EXPECT_DOUBLE_EQ(a.reaction[i], b.reaction[i]) | EXPECT_DOUBLE_EQ(a.residual[i], b.residual[i]) | EXPECT_EQ(a.solid_results[g].strain, b.solid_results[g].strain) | EXPECT_EQ(a.solid_results[g].cauchy_stress, b.solid_results[g].cauchy_stress) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PureLargeRigidRotationEndsAtZeroStrainEnergy SolidStaticProcedure.PureLargeRigidRotationEndsAtZeroStrainEnergy; assertion 5개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.PureLargeRigidRotationEndsAtZeroStrainEnergy 유지 원문 검사 body 및 assertion 동일. 4fe6729cebd103240b949a646d1071d16c80aa9b748edec55cac4187a571090d 4fe6729cebd103240b949a646d1071d16c80aa9b748edec55cac4187a571090d ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(frame.physical_strain_energy, 0.0, 1e-25) | EXPECT_NEAR(value, 0.0, 1e-14) | EXPECT_NEAR(value, 0.0, 1e-12) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(frame.physical_strain_energy, 0.0, 1e-25) | EXPECT_NEAR(value, 0.0, 1e-14) | EXPECT_NEAR(value, 0.0, 1e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.OrdinaryStaticKeepsExistingFinalShortFactorPath SolidStaticProcedure.OrdinaryStaticKeepsExistingFinalShortFactorPath; assertion 6개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.OrdinaryStaticKeepsExistingFinalShortFactorPath 유지 원문 검사 body 및 assertion 동일. f89b10887a1fc24fed122505ce929cd71894836076dc926635924d209419eb98 f89b10887a1fc24fed122505ce929cd71894836076dc926635924d209419eb98 ASSERT_NE(position, std::string::npos) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 4U) | EXPECT_NEAR(result.Value().state.AcceptedFrames()[i].load_factor, factors[i], 1e-15) | EXPECT_DOUBLE_EQ(result.Value().state.CommittedState().load_factor, 1.0) ASSERT_NE(position, std::string::npos) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().state.AcceptedFrames().size(), 4U) | EXPECT_NEAR(result.Value().state.AcceptedFrames()[i].load_factor, factors[i], 1e-15) | EXPECT_DOUBLE_EQ(result.Value().state.CommittedState().load_factor, 1.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.BoundedSpatialRefinementReportsFullIntegrationLocking SolidStaticProcedure.BoundedSpatialRefinementReportsFullIntegrationLocking; assertion 6개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.BoundedSpatialRefinementReportsFullIntegrationLocking 유지 원문 검사 body 및 assertion 동일. 0be527378cf6b99c5d21b37fae3756fcf90b3baf550974c57e04fc9f1f828875 0be527378cf6b99c5d21b37fae3756fcf90b3baf550974c57e04fc9f1f828875 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GT(tip, previous[material]) | EXPECT_LT(tip, 1.05 * beam_limit) | EXPECT_LT(final[1], final[0]) | EXPECT_GT(std::abs(final[1] - beam_limit), std::abs(final[0] - beam_limit)) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_GT(tip, previous[material]) | EXPECT_LT(tip, 1.05 * beam_limit) | EXPECT_LT(final[1], final[0]) | EXPECT_GT(std::abs(final[1] - beam_limit), std::abs(final[0] - beam_limit)) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LaterIterationNonfiniteAndGeometryFailureKeepEveryAcceptedQuantity SolidStaticProcedure.LaterIterationNonfiniteAndGeometryFailureKeepEveryAcceptedQuantity; assertion 16개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.LaterIterationNonfiniteAndGeometryFailureKeepEveryAcceptedQuantity 유지 원문 검사 body 및 assertion 동일. d625f760d2aab29539cf34d792d6540f1c67c9e627fe2e17ec186ddc74df2f36 d625f760d2aab29539cf34d792d6540f1c67c9e627fe2e17ec186ddc74df2f36 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(successful.HasValue()) | ASSERT_EQ(expected.iteration_count, 2U) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_EQ(actual.global_equilibrium, expected.global_equilibrium) | EXPECT_DOUBLE_EQ(actual.physical_strain_energy, expected.physical_strain_energy) | EXPECT_DOUBLE_EQ(actual.displacement[i], expected.displacement[i]) | EXPECT_DOUBLE_EQ(actual.internal_force[i], expected.internal_force[i]) | EXPECT_DOUBLE_EQ(actual.external_force[i], expected.external_force[i]) | EXPECT_DOUBLE_EQ(actual.residual[i], expected.residual[i]) | EXPECT_DOUBLE_EQ(actual.reaction[i], expected.reaction[i]) | EXPECT_EQ(actual.solid_results[g].strain, expected.solid_results[g].strain) | EXPECT_EQ(actual.solid_results[g].cauchy_stress, expected.solid_results[g].cauchy_stress) | EXPECT_EQ(state.IterationRecords().back().increment_index, 2U) | EXPECT_FALSE(state.IterationRecords().back().accepted) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(successful.HasValue()) | ASSERT_EQ(expected.iteration_count, 2U) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(state.AcceptedFrames().size(), 1U) | EXPECT_EQ(actual.global_equilibrium, expected.global_equilibrium) | EXPECT_DOUBLE_EQ(actual.physical_strain_energy, expected.physical_strain_energy) | EXPECT_DOUBLE_EQ(actual.displacement[i], expected.displacement[i]) | EXPECT_DOUBLE_EQ(actual.internal_force[i], expected.internal_force[i]) | EXPECT_DOUBLE_EQ(actual.external_force[i], expected.external_force[i]) | EXPECT_DOUBLE_EQ(actual.residual[i], expected.residual[i]) | EXPECT_DOUBLE_EQ(actual.reaction[i], expected.reaction[i]) | EXPECT_EQ(actual.solid_results[g].strain, expected.solid_results[g].strain) | EXPECT_EQ(actual.solid_results[g].cauchy_stress, expected.solid_results[g].cauchy_stress) | EXPECT_EQ(state.IterationRecords().back().increment_index, 2U) | EXPECT_FALSE(state.IterationRecords().back().accepted) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.ExecutesBothUnmodifiedStaticSourceDecksThroughDirectApi SolidStaticProcedure.ExecutesBothUnmodifiedStaticSourceDecksThroughDirectApi; assertion 8개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.ExecutesBothUnmodifiedStaticSourceDecksThroughDirectApi 유지 원문 검사 body 및 assertion 동일. d3a90f93d9d9490f75afc00c665defc23cf55c13bfbca813fa2fed3140416ce3 d3a90f93d9d9490f75afc00c665defc23cf55c13bfbca813fa2fed3140416ce3 ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frame.load_factor, 1.0) | EXPECT_EQ(frame.increment_index, 10U) | EXPECT_EQ(frame.displacement.Size(), 442U * 3U) | EXPECT_EQ(frame.solid_results.size(), 300U * 8U) | EXPECT_EQ(state.AcceptedFrames().size(), domain.Value().Steps()[0].IsNonlinearStatic() ? 10U : 1U) ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(frame.load_factor, 1.0) | EXPECT_EQ(frame.increment_index, 10U) | EXPECT_EQ(frame.displacement.Size(), 442U * 3U) | EXPECT_EQ(frame.solid_results.size(), 300U * 8U) | EXPECT_EQ(state.AcceptedFrames().size(), domain.Value().Steps()[0].IsNonlinearStatic() ? 10U : 1U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.InjectedAlgorithmFailurePreservesInitializedBaseline SolidStaticProcedure.InjectedAlgorithmFailurePreservesInitializedBaseline; assertion 41개 tests/unit/analysis/solid_static_procedure_test.cpp SolidStaticProcedure.InjectedAlgorithmFailurePreservesInitializedBaseline 유지 원문 검사 body 및 assertion 동일. 7b239ad36e7c1c8bd5af6ed8a694901e4d9a48d518d9d416a70db384ffcb476c 7b239ad36e7c1c8bd5af6ed8a694901e4d9a48d518d9d416a70db384ffcb476c "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""injected-static-algorithm"") | EXPECT_EQ(diagnostic.keyword, ""STATIC"") | EXPECT_EQ(diagnostic.entity_identity, ""original-owner"") | EXPECT_EQ(diagnostic.message, ""Original algorithm failure."") | EXPECT_EQ(selected->calls, 1) | EXPECT_EQ(solvers.calls, 0) | EXPECT_TRUE(state.AcceptedFrames().empty()) | EXPECT_TRUE(state.IterationRecords().empty()) | EXPECT_EQ(actual.frame_index, expected.frame_index) | EXPECT_EQ(actual.increment_index, expected.increment_index) | EXPECT_DOUBLE_EQ(actual.load_factor, expected.load_factor) | EXPECT_EQ(actual.iteration_count, expected.iteration_count) | EXPECT_EQ(actual.is_factor_one, expected.is_factor_one) | EXPECT_EQ(actual.nodal_internal_order, expected.nodal_internal_order) | ASSERT_EQ(actual.nodal_source_ids.size(), expected.nodal_source_ids.size()) | EXPECT_TRUE(fesa::SourceIdentityEquals(actual.nodal_source_ids[i], expected.nodal_source_ids[i])) | ASSERT_EQ(a.Size(), b.Size()) | EXPECT_DOUBLE_EQ(a[i], b[i]) | EXPECT_DOUBLE_EQ(actual.physical_strain_energy, expected.physical_strain_energy) | EXPECT_EQ(actual.global_equilibrium, expected.global_equilibrium) | EXPECT_EQ(actual.balance.internal_force_sum, expected.balance.internal_force_sum) | EXPECT_EQ(actual.balance.reference_internal_moment, expected.balance.reference_internal_moment) | EXPECT_EQ(actual.balance.current_internal_moment, expected.balance.current_internal_moment) | EXPECT_EQ(actual.balance.free_residual_moment, expected.balance.free_residual_moment) | EXPECT_EQ(actual.balance.linearization_moment, expected.balance.linearization_moment) | EXPECT_EQ(actual.balance.internal_force_scale, expected.balance.internal_force_scale) | EXPECT_EQ(actual.balance.reference_moment_scale, expected.balance.reference_moment_scale) | EXPECT_EQ(actual.balance.current_moment_scale, expected.balance.current_moment_scale) | ASSERT_EQ(actual.solid_results.size(), expected.solid_results.size()) | EXPECT_EQ(a.element, b.element) | EXPECT_EQ(a.integration_point, b.integration_point) | EXPECT_EQ(a.natural_coordinates, b.natural_coordinates) | EXPECT_EQ(a.reference_coordinates, b.reference_coordinates) | EXPECT_EQ(a.cauchy_stress, b.cauchy_stress) | EXPECT_EQ(a.strain, b.strain) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""injected-static-algorithm"") | EXPECT_EQ(diagnostic.keyword, ""STATIC"") | EXPECT_EQ(diagnostic.entity_identity, ""original-owner"") | EXPECT_EQ(diagnostic.message, ""Original algorithm failure."") | EXPECT_EQ(selected->calls, 1) | EXPECT_EQ(solvers.calls, 0) | EXPECT_TRUE(state.AcceptedFrames().empty()) | EXPECT_TRUE(state.IterationRecords().empty()) | EXPECT_EQ(actual.frame_index, expected.frame_index) | EXPECT_EQ(actual.increment_index, expected.increment_index) | EXPECT_DOUBLE_EQ(actual.load_factor, expected.load_factor) | EXPECT_EQ(actual.iteration_count, expected.iteration_count) | EXPECT_EQ(actual.is_factor_one, expected.is_factor_one) | EXPECT_EQ(actual.nodal_internal_order, expected.nodal_internal_order) | ASSERT_EQ(actual.nodal_source_ids.size(), expected.nodal_source_ids.size()) | EXPECT_TRUE(fesa::SourceIdentityEquals(actual.nodal_source_ids[i], expected.nodal_source_ids[i])) | ASSERT_EQ(a.Size(), b.Size()) | EXPECT_DOUBLE_EQ(a[i], b[i]) | EXPECT_DOUBLE_EQ(actual.physical_strain_energy, expected.physical_strain_energy) | EXPECT_EQ(actual.global_equilibrium, expected.global_equilibrium) | EXPECT_EQ(actual.balance.internal_force_sum, expected.balance.internal_force_sum) | EXPECT_EQ(actual.balance.reference_internal_moment, expected.balance.reference_internal_moment) | EXPECT_EQ(actual.balance.current_internal_moment, expected.balance.current_internal_moment) | EXPECT_EQ(actual.balance.free_residual_moment, expected.balance.free_residual_moment) | EXPECT_EQ(actual.balance.linearization_moment, expected.balance.linearization_moment) | EXPECT_EQ(actual.balance.internal_force_scale, expected.balance.internal_force_scale) | EXPECT_EQ(actual.balance.reference_moment_scale, expected.balance.reference_moment_scale) | EXPECT_EQ(actual.balance.current_moment_scale, expected.balance.current_moment_scale) | ASSERT_EQ(actual.solid_results.size(), expected.solid_results.size()) | EXPECT_EQ(a.element, b.element) | EXPECT_EQ(a.integration_point, b.integration_point) | EXPECT_EQ(a.natural_coordinates, b.natural_coordinates) | EXPECT_EQ(a.reference_coordinates, b.reference_coordinates) | EXPECT_EQ(a.cauchy_stress, b.cauchy_stress) | EXPECT_EQ(a.strain, b.strain) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_procedure_test.cpp support@1-155 helper/oracle/fixture/include/static assertion 구간: Deck, Map, Message, ExecuteSolid, Supports, Tension, AffineBoundary, FailedTangent, Mode, ObservedIndefiniteTangent tests/unit/analysis/solid_static_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d96f4777bff4fddc469f8b9f9db91e1109d474ad8ff6ef8d854d233c3fe56dd9 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/solid_static_procedure_test.cpp support@691-732 helper/oracle/fixture/include/static assertion 구간: Cantilever tests/unit/analysis/solid_static_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 18b6fff6c45d794f77ce9044335c69313a256236f3b9cee759f0d5d8a33ca76e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/solid_static_procedure_test.cpp support@831-876 helper/oracle/fixture/include/static assertion 구간: StaticPolicyFailure, UnusedStaticSolvers, RefusingStaticAlgorithm tests/unit/analysis/solid_static_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b89a7e571f03accadb84ca3e127ac1529381da75155aec1cb29db9a8db61ac8f 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/solid_static_state_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/analysis/solid_static_state_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1693abc34bf1b4346ff3a17979cb8a763cb16950fee6b5a5471e402d4faf621d 1693abc34bf1b4346ff3a17979cb8a763cb16950fee6b5a5471e402d4faf621d 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/solid_static_state_test.cpp SolidStaticControls.PurePrescribedUsesAbsoluteForceAndOnlyTwoChannels SolidStaticControls.PurePrescribedUsesAbsoluteForceAndOnlyTwoChannels; assertion 8개 tests/unit/analysis/solid_static_state_test.cpp SolidStaticControls.PurePrescribedUsesAbsoluteForceAndOnlyTwoChannels 유지 원문 검사 body 및 assertion 동일. 64090bf859cad1c1f823058b375f44107bd69be3ea8a455abc6f1eb059ba2578 64090bf859cad1c1f823058b375f44107bd69be3ea8a455abc6f1eb059ba2578 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().force_residual.branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(result.Value().force_residual.denominator_scale, 0.0) | EXPECT_EQ(result.Value().force_residual.threshold_unit, fesa::NewtonChannelUnit::kForce) | EXPECT_EQ(result.Value().translation_correction.threshold_unit, fesa::NewtonChannelUnit::kLength) | EXPECT_TRUE(result.Value().force_residual.passed) | EXPECT_TRUE(result.Value().translation_correction.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence( residual, internal, external, correction, increment) .Value() .force_residual.passed) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().force_residual.branch, fesa::NewtonConvergenceBranch::kZeroScale) | EXPECT_DOUBLE_EQ(result.Value().force_residual.denominator_scale, 0.0) | EXPECT_EQ(result.Value().force_residual.threshold_unit, fesa::NewtonChannelUnit::kForce) | EXPECT_EQ(result.Value().translation_correction.threshold_unit, fesa::NewtonChannelUnit::kLength) | EXPECT_TRUE(result.Value().force_residual.passed) | EXPECT_TRUE(result.Value().translation_correction.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence( residual, internal, external, correction, increment) .Value() .force_residual.passed) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_state_test.cpp SolidStaticControls.RelativeLimitsRawNormsAndNonfiniteFailure SolidStaticControls.RelativeLimitsRawNormsAndNonfiniteFailure; assertion 10개 tests/unit/analysis/solid_static_state_test.cpp SolidStaticControls.RelativeLimitsRawNormsAndNonfiniteFailure 유지 원문 검사 body 및 assertion 동일. 9ced91c636ffa144e3fe1bd9748589a2a38f7afe41bd79eb1a71a7d0336144a8 9ced91c636ffa144e3fe1bd9748589a2a38f7afe41bd79eb1a71a7d0336144a8 ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().force_residual.numerator_norm, 1.0) | EXPECT_DOUBLE_EQ(result.Value().force_residual.denominator_scale, 100.0) | EXPECT_EQ(result.Value().force_residual.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_EQ(result.Value().force_residual.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(result.Value().force_residual.passed) | EXPECT_TRUE(result.Value().translation_correction.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence(r, f, p, du, u) .Value() .force_residual.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence(r, f, p, du, u).HasValue()) | EXPECT_FALSE( fesa::EvaluateSolidStaticConvergence(r, f, fesa::Vector{2U}, du, u) .HasValue()) ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().force_residual.numerator_norm, 1.0) | EXPECT_DOUBLE_EQ(result.Value().force_residual.denominator_scale, 100.0) | EXPECT_EQ(result.Value().force_residual.branch, fesa::NewtonConvergenceBranch::kRelative) | EXPECT_EQ(result.Value().force_residual.threshold_unit, fesa::NewtonChannelUnit::kDimensionless) | EXPECT_TRUE(result.Value().force_residual.passed) | EXPECT_TRUE(result.Value().translation_correction.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence(r, f, p, du, u) .Value() .force_residual.passed) | EXPECT_FALSE(fesa::EvaluateSolidStaticConvergence(r, f, p, du, u).HasValue()) | EXPECT_FALSE( fesa::EvaluateSolidStaticConvergence(r, f, fesa::Vector{2U}, du, u) .HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/analysis/solid_static_state_test.cpp support@1-6 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/solid_static_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e53402f8f5992b27b6c5a2443adf6251c74adbe566e295fba59e1621404883ca 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/thermal_analysis_state_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/analysis/thermal_analysis_state_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 505bda8adef4e2255a4ce1d76d08c96b5806da8652e397048a0b49e5fb364557 505bda8adef4e2255a4ce1d76d08c96b5806da8652e397048a0b49e5fb364557 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.OwnsRawInitialInventoryAfterDomainAndAssemblyDestruction ThermalAnalysisState.OwnsRawInitialInventoryAfterDomainAndAssemblyDestruction; assertion 24개 tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.OwnsRawInitialInventoryAfterDomainAndAssemblyDestruction 유지 원문 검사 body 및 assertion 동일. 29995b83f8751fc439725b0f3a266b7237c909a921280e02a60ef86b340ba760 29995b83f8751fc439725b0f3a266b7237c909a921280e02a60ef86b340ba760 "ASSERT_TRUE(state.HasValue()) | EXPECT_EQ(state.Value().NodeOrder(), (std::vector{1, 2, 3, 4})) | EXPECT_EQ(state.Value().NodeSourceIds()[0].source_label_text, ""0007"") | EXPECT_EQ(state.Value().ElementSourceIds()[0].source_label_text, ""0013"") | EXPECT_EQ(state.Value().ElementOrder(), (std::vector{0})) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_TRUE(initial.is_initial) | EXPECT_FALSE(initial.completed.has_value()) | EXPECT_EQ(initial.time, 0) | EXPECT_EQ(initial.time_increment, 0) | EXPECT_EQ(initial.temperature[a], -20.) | EXPECT_EQ(initial.temperature[5 + a], 0.) | EXPECT_EQ(initial.temperature[10 + a], 0.) | EXPECT_EQ(initial.temperature[15 + a], 7.125) | ASSERT_EQ(state.Value().ReactionDofs().size(), 2U) | EXPECT_EQ(state.Value().ReactionDofs()[0].node, 1U) | EXPECT_EQ(state.Value().ReactionDofs()[0].source_dof, 11) | EXPECT_EQ(state.Value().ReactionDofs()[1].node, 4U) | EXPECT_EQ(state.Value().ReactionDofs()[1].source_dof, 15) | EXPECT_EQ(state.Value().ConstraintMask()[row][a], ((row == 0 && a == 0) || (row == 3 && a == 4)) ? 1 : 0) | ASSERT_EQ(state.Value().FluxLocalFrames().size(), 1U) | EXPECT_EQ(frame[0], (fesa::Vector3{1, 0, 0})) | EXPECT_EQ(frame[1], (fesa::Vector3{0, 1, 0})) | EXPECT_EQ(frame[2], (fesa::Vector3{0, 0, 1}))" "ASSERT_TRUE(state.HasValue()) | EXPECT_EQ(state.Value().NodeOrder(), (std::vector{1, 2, 3, 4})) | EXPECT_EQ(state.Value().NodeSourceIds()[0].source_label_text, ""0007"") | EXPECT_EQ(state.Value().ElementSourceIds()[0].source_label_text, ""0013"") | EXPECT_EQ(state.Value().ElementOrder(), (std::vector{0})) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_TRUE(initial.is_initial) | EXPECT_FALSE(initial.completed.has_value()) | EXPECT_EQ(initial.time, 0) | EXPECT_EQ(initial.time_increment, 0) | EXPECT_EQ(initial.temperature[a], -20.) | EXPECT_EQ(initial.temperature[5 + a], 0.) | EXPECT_EQ(initial.temperature[10 + a], 0.) | EXPECT_EQ(initial.temperature[15 + a], 7.125) | ASSERT_EQ(state.Value().ReactionDofs().size(), 2U) | EXPECT_EQ(state.Value().ReactionDofs()[0].node, 1U) | EXPECT_EQ(state.Value().ReactionDofs()[0].source_dof, 11) | EXPECT_EQ(state.Value().ReactionDofs()[1].node, 4U) | EXPECT_EQ(state.Value().ReactionDofs()[1].source_dof, 15) | EXPECT_EQ(state.Value().ConstraintMask()[row][a], ((row == 0 && a == 0) || (row == 3 && a == 4)) ? 1 : 0) | ASSERT_EQ(state.Value().FluxLocalFrames().size(), 1U) | EXPECT_EQ(frame[0], (fesa::Vector3{1, 0, 0})) | EXPECT_EQ(frame[1], (fesa::Vector3{0, 1, 0})) | EXPECT_EQ(frame[2], (fesa::Vector3{0, 0, 1}))" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.CompletedZeroReactionPayloadAndExactActualDelta ThermalAnalysisState.CompletedZeroReactionPayloadAndExactActualDelta; assertion 20개 tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.CompletedZeroReactionPayloadAndExactActualDelta 유지 원문 검사 body 및 assertion 동일. faed8c798f105f506facfa91da0c77b9b7b74944851a63a32542901d8887197f faed8c798f105f506facfa91da0c77b9b7b74944851a63a32542901d8887197f ASSERT_TRUE(state.HasValue()) | EXPECT_TRUE(state.Value().ReactionDofs().empty()) | EXPECT_FALSE(state.Value().IsComplete()) | ASSERT_TRUE(frame.HasValue()) | ASSERT_TRUE(frame.Value().completed.has_value()) | EXPECT_EQ(frame.Value().completed->reaction_heat_rate.Size(), 0U) | EXPECT_EQ(frame.Value().time_increment, .3) | ASSERT_TRUE(state.Value().CommitAcceptedFrame(frame.Value()).IsOk()) | EXPECT_TRUE(state.Value().IsComplete()) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 4U) | EXPECT_EQ(state.Value().CommittedState().time, .9) | EXPECT_EQ(state.Value().CommittedState().time_increment, .3) | EXPECT_NE(state.Value().CommittedState().time - state.Value().AcceptedFrames()[2].time, .3) | EXPECT_EQ(state.Value().NominalTimeIncrement(), .3) | EXPECT_EQ(state.Value().TimePeriod(), .9) | EXPECT_FALSE( state.Value().CommitAcceptedFrame(state.Value().CommittedState()).IsOk()) | ASSERT_TRUE(short_state.HasValue()) | ASSERT_TRUE(last.HasValue()) | EXPECT_EQ(last.Value().time, 10.) | EXPECT_EQ(last.Value().time_increment, 1.) ASSERT_TRUE(state.HasValue()) | EXPECT_TRUE(state.Value().ReactionDofs().empty()) | EXPECT_FALSE(state.Value().IsComplete()) | ASSERT_TRUE(frame.HasValue()) | ASSERT_TRUE(frame.Value().completed.has_value()) | EXPECT_EQ(frame.Value().completed->reaction_heat_rate.Size(), 0U) | EXPECT_EQ(frame.Value().time_increment, .3) | ASSERT_TRUE(state.Value().CommitAcceptedFrame(frame.Value()).IsOk()) | EXPECT_TRUE(state.Value().IsComplete()) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 4U) | EXPECT_EQ(state.Value().CommittedState().time, .9) | EXPECT_EQ(state.Value().CommittedState().time_increment, .3) | EXPECT_NE(state.Value().CommittedState().time - state.Value().AcceptedFrames()[2].time, .3) | EXPECT_EQ(state.Value().NominalTimeIncrement(), .3) | EXPECT_EQ(state.Value().TimePeriod(), .9) | EXPECT_FALSE( state.Value().CommitAcceptedFrame(state.Value().CommittedState()).IsOk()) | ASSERT_TRUE(short_state.HasValue()) | ASSERT_TRUE(last.HasValue()) | EXPECT_EQ(last.Value().time, 10.) | EXPECT_EQ(last.Value().time_increment, 1.) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.EveryRejectedCandidatePreservesEntireAcceptedHistory ThermalAnalysisState.EveryRejectedCandidatePreservesEntireAcceptedHistory; assertion 9개 tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.EveryRejectedCandidatePreservesEntireAcceptedHistory 유지 원문 검사 body 및 assertion 동일. aaa377193cb0575e53405ed69aeeb7cc32e7c97bc56c05922bce6edcc2b1e74c aaa377193cb0575e53405ed69aeeb7cc32e7c97bc56c05922bce6edcc2b1e74c ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(state.CommitAcceptedFrame(first.Value()).IsOk()) | ASSERT_TRUE(candidate.HasValue()) | EXPECT_FALSE(state.CommitAcceptedFrame(candidate.Value()).IsOk()) | EXPECT_EQ(Snapshot(state), snapshot) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(state.CommitAcceptedFrame(second.Value()).IsOk()) | EXPECT_NE(state.CommittedState().temperature[0], 900) ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(state.CommitAcceptedFrame(first.Value()).IsOk()) | ASSERT_TRUE(candidate.HasValue()) | EXPECT_FALSE(state.CommitAcceptedFrame(candidate.Value()).IsOk()) | EXPECT_EQ(Snapshot(state), snapshot) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(state.CommitAcceptedFrame(second.Value()).IsOk()) | EXPECT_NE(state.CommittedState().temperature[0], 900) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.CheckedCandidateRejectsMissingDataAndHugeGridDoesNotPreallocateHistory ThermalAnalysisState.CheckedCandidateRejectsMissingDataAndHugeGridDoesNotPreallocateHistory; assertion 11개 tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.CheckedCandidateRejectsMissingDataAndHugeGridDoesNotPreallocateHistory 유지 원문 검사 body 및 assertion 동일. 5d135e0312f358eb833a0a1dfd014621f15196041711663bd84ceb65e3027aec 5d135e0312f358eb833a0a1dfd014621f15196041711663bd84ceb65e3027aec ASSERT_TRUE(state.HasValue()) | EXPECT_EQ(state.Value().TimeGrid().Count(), 4294967295U) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_FALSE(state.Value().IsComplete()) | ASSERT_TRUE(last.HasValue()) | EXPECT_EQ(last.Value().frame_index, 4294967295ULL) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(last.Value()).IsOk()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(0, fesa::Vector{20}, fesa::Vector{0}, {{}}) .HasValue()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(1, fesa::Vector{19}, fesa::Vector{0}, {{}}) .HasValue()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(1, fesa::Vector{20}, fesa::Vector{1}, {{}}) .HasValue()) | EXPECT_FALSE(state.Value() .MakeCompletedFrame(1, fesa::Vector{20}, fesa::Vector{0}, {}) .HasValue()) ASSERT_TRUE(state.HasValue()) | EXPECT_EQ(state.Value().TimeGrid().Count(), 4294967295U) | EXPECT_EQ(state.Value().AcceptedFrames().size(), 1U) | EXPECT_FALSE(state.Value().IsComplete()) | ASSERT_TRUE(last.HasValue()) | EXPECT_EQ(last.Value().frame_index, 4294967295ULL) | EXPECT_FALSE(state.Value().CommitAcceptedFrame(last.Value()).IsOk()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(0, fesa::Vector{20}, fesa::Vector{0}, {{}}) .HasValue()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(1, fesa::Vector{19}, fesa::Vector{0}, {{}}) .HasValue()) | EXPECT_FALSE( state.Value() .MakeCompletedFrame(1, fesa::Vector{20}, fesa::Vector{1}, {{}}) .HasValue()) | EXPECT_FALSE(state.Value() .MakeCompletedFrame(1, fesa::Vector{20}, fesa::Vector{0}, {}) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.RejectsAssemblyFromAnotherDomainAndInvalidSchedule ThermalAnalysisState.RejectsAssemblyFromAnotherDomainAndInvalidSchedule; assertion 9개 tests/unit/analysis/thermal_analysis_state_test.cpp ThermalAnalysisState.RejectsAssemblyFromAnotherDomainAndInvalidSchedule 유지 원문 검사 body 및 assertion 동일. 6cf18a4e7b7be31455ff4b43a91438c2dd613d6d822d85a7ba34e30d330c4bfd 6cf18a4e7b7be31455ff4b43a91438c2dd613d6d822d85a7ba34e30d330c4bfd ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(fm.HasValue()) | ASSERT_TRUE(sm.HasValue()) | ASSERT_TRUE(fd.HasValue()) | ASSERT_TRUE(sd.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | EXPECT_FALSE(fesa::ThermalAnalysisState::Create(sm.Value(), sd.Value(), assembly.Value()) .HasValue()) | EXPECT_FALSE(State(false, 10, 3, 3).HasValue()) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_TRUE(fm.HasValue()) | ASSERT_TRUE(sm.HasValue()) | ASSERT_TRUE(fd.HasValue()) | ASSERT_TRUE(sd.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | EXPECT_FALSE(fesa::ThermalAnalysisState::Create(sm.Value(), sd.Value(), assembly.Value()) .HasValue()) | EXPECT_FALSE(State(false, 10, 3, 3).HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/thermal_analysis_state_test.cpp support@1-117 helper/oracle/fixture/include/static assertion 구간: Definition, if, State, Candidate, Snapshot, for tests/unit/analysis/thermal_analysis_state_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7d5e5a315ff7f87c595a8854c5f8c267b900112d685f26afaea2a8b5510843e9 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/thermal_time_grid_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/analysis/thermal_time_grid_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a2f5f4ff554e4c7d127640394d45cd41bba3df2adde92d39071f720af402ff3e a2f5f4ff554e4c7d127640394d45cd41bba3df2adde92d39071f720af402ff3e 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.SingleStepUsesPeriodAsActualIncrement ThermalTimeGrid.SingleStepUsesPeriodAsActualIncrement; assertion 3개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.SingleStepUsesPeriodAsActualIncrement 유지 원문 검사 body 및 assertion 동일. df81cdf149e0a1f046502f072502b69775e5fded5a9aa972da75fc19d78c9157 df81cdf149e0a1f046502f072502b69775e5fded5a9aa972da75fc19d78c9157 ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 1U) | EXPECT_EQ(grid.Value().Delta(1U), 2.0) ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 1U) | EXPECT_EQ(grid.Value().Delta(1U), 2.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.PreservesGenuineRemainderOutsideInputCells ThermalTimeGrid.PreservesGenuineRemainderOutsideInputCells; assertion 3개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.PreservesGenuineRemainderOutsideInputCells 유지 원문 검사 body 및 assertion 동일. 1e5b5e3355eb2dd4f5bf7575918fd02b20d03764ecd41dad7b95bacae0ca4ee0 1e5b5e3355eb2dd4f5bf7575918fd02b20d03764ecd41dad7b95bacae0ca4ee0 ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 4U) | EXPECT_EQ(grid.Value().Delta(4U), 1.6653345369377348e-16) ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 4U) | EXPECT_EQ(grid.Value().Delta(4U), 1.6653345369377348e-16) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.OriginalSubnormalCellsRespectOpenAndClosedContact ThermalTimeGrid.OriginalSubnormalCellsRespectOpenAndClosedContact; assertion 5개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.OriginalSubnormalCellsRespectOpenAndClosedContact 유지 원문 검사 body 및 assertion 동일. b3750249efc6650ce8d7651338ad3bbd1a681960df204dc61df4047dbb7b7cec b3750249efc6650ce8d7651338ad3bbd1a681960df204dc61df4047dbb7b7cec ASSERT_TRUE(even.HasValue()) | ASSERT_TRUE(odd.HasValue()) | EXPECT_EQ(even.Value().Count(), 3U) | EXPECT_EQ(odd.Value().Count(), 4U) | EXPECT_EQ(odd.Value().Delta(4U), 2 * tiny) ASSERT_TRUE(even.HasValue()) | ASSERT_TRUE(odd.HasValue()) | EXPECT_EQ(even.Value().Count(), 3U) | EXPECT_EQ(odd.Value().Count(), 4U) | EXPECT_EQ(odd.Value().Delta(4U), 2 * tiny) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.DecimalCellsCounterexampleAndScale ThermalTimeGrid.DecimalCellsCounterexampleAndScale; assertion 8개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.DecimalCellsCounterexampleAndScale 유지 원문 검사 body 및 assertion 동일. 55542fd9e560e9916102520ef1a4955d9b86bf134c0bbc4d6010cee6fa01e746 55542fd9e560e9916102520ef1a4955d9b86bf134c0bbc4d6010cee6fa01e746 ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 3U) | EXPECT_EQ(grid.Value().Delta(3U), delta) | EXPECT_EQ(grid.Value().Time(3U), period) | ASSERT_TRUE(old_counterexample.HasValue()) | EXPECT_EQ(old_counterexample.Value().Count(), 31U) | EXPECT_EQ(old_counterexample.Value().Delta(31U), .17262758624947144) | EXPECT_FALSE( fesa::ThermalTimeGrid::Create(5.351455173733616, .17262758624947144, 30U) .HasValue()) ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 3U) | EXPECT_EQ(grid.Value().Delta(3U), delta) | EXPECT_EQ(grid.Value().Time(3U), period) | ASSERT_TRUE(old_counterexample.HasValue()) | EXPECT_EQ(old_counterexample.Value().Count(), 31U) | EXPECT_EQ(old_counterexample.Value().Delta(31U), .17262758624947144) | EXPECT_FALSE( fesa::ThermalTimeGrid::Create(5.351455173733616, .17262758624947144, 30U) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.BinadeLimitsAndMaximumFinitePreserveOriginalCells ThermalTimeGrid.BinadeLimitsAndMaximumFinitePreserveOriginalCells; assertion 8개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.BinadeLimitsAndMaximumFinitePreserveOriginalCells 유지 원문 검사 body 및 assertion 동일. 51807a8419bb57da7a52205af4bae20dd05265ee7bc2f446e396d861b9894232 51807a8419bb57da7a52205af4bae20dd05265ee7bc2f446e396d861b9894232 ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 3U) | EXPECT_EQ(grid.Value().Delta(3U), max / 3) | ASSERT_TRUE(upper.HasValue()) | EXPECT_EQ(upper.Value().Count(), 4294967295U) | EXPECT_TRUE(upper.Value().Frame(4294967295U).HasValue()) | EXPECT_FALSE( fesa::ThermalTimeGrid::Create(4294967296., 1., 4294967295U).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create( max, std::numeric_limits::denorm_min(), 4294967295U) .HasValue()) ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 3U) | EXPECT_EQ(grid.Value().Delta(3U), max / 3) | ASSERT_TRUE(upper.HasValue()) | EXPECT_EQ(upper.Value().Count(), 4294967295U) | EXPECT_TRUE(upper.Value().Frame(4294967295U).HasValue()) | EXPECT_FALSE( fesa::ThermalTimeGrid::Create(4294967296., 1., 4294967295U).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create( max, std::numeric_limits::denorm_min(), 4294967295U) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.ShortenedIncrementAndCheckedFrames ThermalTimeGrid.ShortenedIncrementAndCheckedFrames; assertion 15개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.ShortenedIncrementAndCheckedFrames 유지 원문 검사 body 및 assertion 동일. 26a8db8885d7920f5ee954491b801daefb3c4ad8e88e8bca8ffc4a394f668c07 26a8db8885d7920f5ee954491b801daefb3c4ad8e88e8bca8ffc4a394f668c07 ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 4U) | EXPECT_EQ(grid.Value().Time(0U), 0.) | ASSERT_TRUE(grid.Value().Frame(i).HasValue()) | EXPECT_EQ(grid.Value().Time(i), i == 4 ? 10. : 3. * i) | EXPECT_EQ(grid.Value().Delta(i), i == 4 ? 1. : 3.) | EXPECT_FALSE(grid.Value().Frame(0U).HasValue()) | EXPECT_FALSE(grid.Value().Frame(5U).HasValue()) | ASSERT_TRUE(decimals.HasValue()) | EXPECT_EQ(decimals.Value().Time(3U), .30000000000000004) | EXPECT_EQ(decimals.Value().Delta(10U), .1) | ASSERT_TRUE(close.HasValue()) | ASSERT_TRUE(short_last.HasValue()) | EXPECT_EQ(close.Value().Delta(3U), .3) | EXPECT_EQ(short_last.Value().Delta(3U), .2999999999999998) ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 4U) | EXPECT_EQ(grid.Value().Time(0U), 0.) | ASSERT_TRUE(grid.Value().Frame(i).HasValue()) | EXPECT_EQ(grid.Value().Time(i), i == 4 ? 10. : 3. * i) | EXPECT_EQ(grid.Value().Delta(i), i == 4 ? 1. : 3.) | EXPECT_FALSE(grid.Value().Frame(0U).HasValue()) | EXPECT_FALSE(grid.Value().Frame(5U).HasValue()) | ASSERT_TRUE(decimals.HasValue()) | EXPECT_EQ(decimals.Value().Time(3U), .30000000000000004) | EXPECT_EQ(decimals.Value().Delta(10U), .1) | ASSERT_TRUE(close.HasValue()) | ASSERT_TRUE(short_last.HasValue()) | EXPECT_EQ(close.Value().Delta(3U), .3) | EXPECT_EQ(short_last.Value().Delta(3U), .2999999999999998) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.RejectsInvalidControlsBeforeIntegerConversion ThermalTimeGrid.RejectsInvalidControlsBeforeIntegerConversion; assertion 5개 tests/unit/analysis/thermal_time_grid_test.cpp ThermalTimeGrid.RejectsInvalidControlsBeforeIntegerConversion 유지 원문 검사 body 및 assertion 동일. b7b300d2a27beb1ef71e1c4d21f574e4e5ae22ed3fe52417e940fbd4138cc5d4 b7b300d2a27beb1ef71e1c4d21f574e4e5ae22ed3fe52417e940fbd4138cc5d4 EXPECT_FALSE(fesa::ThermalTimeGrid::Create(bad, 1.).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create(1., bad).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create(1., 1., 0U).HasValue()) | ASSERT_TRUE(equal.HasValue()) | EXPECT_EQ(equal.Value().Delta(1U), 2.) EXPECT_FALSE(fesa::ThermalTimeGrid::Create(bad, 1.).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create(1., bad).HasValue()) | EXPECT_FALSE(fesa::ThermalTimeGrid::Create(1., 1., 0U).HasValue()) | ASSERT_TRUE(equal.HasValue()) | EXPECT_EQ(equal.Value().Delta(1U), 2.) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/thermal_time_grid_test.cpp support@1-7 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/analysis/thermal_time_grid_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4d7509a96a86780faf4709a37c3191b68a01d0bb865d28925558e8e69d405ef2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/transient_heat_procedure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 10개 tests/unit/analysis/transient_heat_procedure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. efff26c6a7451be803515541313038b9555ee01362e280915dab4d272586bef6 efff26c6a7451be803515541313038b9555ee01362e280915dab4d272586bef6 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.RawConstrainedCapacityProducesSignedTwoDofJump TransientHeatProcedure.RawConstrainedCapacityProducesSignedTwoDofJump; assertion 8개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.RawConstrainedCapacityProducesSignedTwoDofJump 유지 원문 검사 body 및 assertion 동일. 980805fa102cb221909d1766e40746ce9cf7fae52ceea5e89b51cf424ad0b73f 980805fa102cb221909d1766e40746ce9cf7fae52ceea5e89b51cf424ad0b73f ASSERT_TRUE(first.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().temperature[0], -.2) | EXPECT_DOUBLE_EQ(first.Value().reaction[0], 4.8) | ASSERT_TRUE(second.HasValue()) | EXPECT_NEAR(second.Value().temperature[0], .04, 16 * std::numeric_limits::epsilon() * .04) | EXPECT_DOUBLE_EQ(second.Value().reaction[0], 1.44) | EXPECT_EQ(solver.factorizations, 1) | EXPECT_EQ(solver.solves, 2) ASSERT_TRUE(first.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().temperature[0], -.2) | EXPECT_DOUBLE_EQ(first.Value().reaction[0], 4.8) | ASSERT_TRUE(second.HasValue()) | EXPECT_NEAR(second.Value().temperature[0], .04, 16 * std::numeric_limits::epsilon() * .04) | EXPECT_DOUBLE_EQ(second.Value().reaction[0], 1.44) | EXPECT_EQ(solver.factorizations, 1) | EXPECT_EQ(solver.solves, 2) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.AllConstrainedBypassesZeroSizeFactorization TransientHeatProcedure.AllConstrainedBypassesZeroSizeFactorization; assertion 5개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.AllConstrainedBypassesZeroSizeFactorization 유지 원문 검사 body 및 assertion 동일. 202ca407a90853cb361a166c1a72d391cf1a085616e54ed9c39d5c3d5d13a566 202ca407a90853cb361a166c1a72d391cf1a085616e54ed9c39d5c3d5d13a566 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().reaction[0], 6) | EXPECT_EQ(result.Value().reaction[1], 6) | EXPECT_EQ(solver.factorizations, 0) | EXPECT_EQ(solver.solves, 0) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().reaction[0], 6) | EXPECT_EQ(result.Value().reaction[1], 6) | EXPECT_EQ(solver.factorizations, 0) | EXPECT_EQ(solver.solves, 0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.CancellationCannotUseFullSystemScaleToPassCertificate TransientHeatProcedure.CancellationCannotUseFullSystemScaleToPassCertificate; assertion 3개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.CancellationCannotUseFullSystemScaleToPassCertificate 유지 원문 검사 body 및 assertion 동일. 5e0a1ecdf9e220cf428d03065cb6e98777df3afbfa34e41ce945372420f3004e 5e0a1ecdf9e220cf428d03065cb6e98777df3afbfa34e41ce945372420f3004e ASSERT_TRUE(valid.HasValue()) | EXPECT_DOUBLE_EQ(valid.Value().temperature[0], .8) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, old, .5, solver, cache) .HasValue()) ASSERT_TRUE(valid.HasValue()) | EXPECT_DOUBLE_EQ(valid.Value().temperature[0], .8) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, old, .5, solver, cache) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.ExactZeroAndUniformInsulatedStatesAndActualDeltaCache TransientHeatProcedure.ExactZeroAndUniformInsulatedStatesAndActualDeltaCache; assertion 12개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.ExactZeroAndUniformInsulatedStatesAndActualDeltaCache 유지 원문 검사 body 및 assertion 동일. ac935c01b0c672b156e573888f2e14ff26dfd1ee8579b195b45a210b274f7b78 ac935c01b0c672b156e573888f2e14ff26dfd1ee8579b195b45a210b274f7b78 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(state.IsComplete()) | EXPECT_EQ(state.AcceptedFrames().size(), schedule.steps + 1) | EXPECT_EQ(state.CommittedState().time, schedule.period) | EXPECT_EQ(state.CommittedState().time_increment, schedule.last) | EXPECT_EQ(solver.factorizations, schedule.factors) | EXPECT_EQ(solver.solves, static_cast(schedule.steps)) | EXPECT_FALSE(state.AcceptedFrames()[0].completed.has_value()) | EXPECT_EQ(frame.temperature[i], 0) | EXPECT_NEAR(frame.temperature[i], initial, 4096 * 0x1p-53 * initial) | EXPECT_EQ(frame.completed->reaction_heat_rate.Size(), 0U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(state.IsComplete()) | EXPECT_EQ(state.AcceptedFrames().size(), schedule.steps + 1) | EXPECT_EQ(state.CommittedState().time, schedule.period) | EXPECT_EQ(state.CommittedState().time_increment, schedule.last) | EXPECT_EQ(solver.factorizations, schedule.factors) | EXPECT_EQ(solver.solves, static_cast(schedule.steps)) | EXPECT_FALSE(state.AcceptedFrames()[0].completed.has_value()) | EXPECT_EQ(frame.temperature[i], 0) | EXPECT_NEAR(frame.temperature[i], initial, 4096 * 0x1p-53 * initial) | EXPECT_EQ(frame.completed->reaction_heat_rate.Size(), 0U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.MklMatchesIndependentAffineDiscreteModeAndDissipation TransientHeatProcedure.MklMatchesIndependentAffineDiscreteModeAndDissipation; assertion 15개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.MklMatchesIndependentAffineDiscreteModeAndDissipation 유지 원문 검사 body 및 assertion 동일. 469b0381e9116d635764dd3052feeddf1df682d761cf3122988c87b66b6157ec 469b0381e9116d635764dd3052feeddf1df682d761cf3122988c87b66b6157ec ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(candidate.temperature[i], mode[i / 5] / 4, bound) | EXPECT_LE(candidate.evidence.beta_cert, candidate.evidence.beta_limit) | EXPECT_LE(candidate.evidence.energy_defect, candidate.evidence.energy_bound) | EXPECT_TRUE(candidate.evidence.dissipation_checked) | EXPECT_LE(candidate.evidence.dissipation_defect, candidate.evidence.dissipation_bound) | ASSERT_TRUE(flux.HasValue()) | EXPECT_NEAR(q.X(), .5, 16 * bound + 4096 * 0x1p-53 * .5) | EXPECT_NEAR(q.Y(), 0, 16 * bound) | EXPECT_NEAR(q.Z(), 0, 16 * bound) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_NEAR(candidate.temperature[i], mode[i / 5] / 4, bound) | EXPECT_LE(candidate.evidence.beta_cert, candidate.evidence.beta_limit) | EXPECT_LE(candidate.evidence.energy_defect, candidate.evidence.energy_bound) | EXPECT_TRUE(candidate.evidence.dissipation_checked) | EXPECT_LE(candidate.evidence.dissipation_defect, candidate.evidence.dissipation_bound) | ASSERT_TRUE(flux.HasValue()) | EXPECT_NEAR(q.X(), .5, 16 * bound + 4096 * 0x1p-53 * .5) | EXPECT_NEAR(q.Y(), 0, 16 * bound) | EXPECT_NEAR(q.Z(), 0, 16 * bound) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.LaterSolveRecoveryAndPayloadFailuresPreserveEveryAcceptedBit TransientHeatProcedure.LaterSolveRecoveryAndPayloadFailuresPreserveEveryAcceptedBit; assertion 13개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.LaterSolveRecoveryAndPayloadFailuresPreserveEveryAcceptedBit 유지 원문 검사 body 및 assertion 동일. 2f4ea89dc0b1fb735d45915b043a1f2de650e0a55a98df2b4d95ce7bad84c001 2f4ea89dc0b1fb735d45915b043a1f2de650e0a55a98df2b4d95ce7bad84c001 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_FALSE(state.Value().IsComplete()) | EXPECT_EQ(evidence.size(), 1U) | EXPECT_EQ(Snapshot(state.Value()), before) | EXPECT_EQ(state.Value().AcceptedFrames()[0].temperature[0], 2) | EXPECT_EQ(state.Value().CommittedState().temperature[0], 1) | EXPECT_EQ(solver.factorizations, 1) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(state.Value().AcceptedFrames().size(), 2U) | EXPECT_FALSE(state.Value().IsComplete()) | EXPECT_EQ(evidence.size(), 1U) | EXPECT_EQ(Snapshot(state.Value()), before) | EXPECT_EQ(state.Value().AcceptedFrames()[0].temperature[0], 2) | EXPECT_EQ(state.Value().CommittedState().temperature[0], 1) | EXPECT_EQ(solver.factorizations, 1) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.SignedPowerConstrainedReactionAndDisconnectedComponentBalance TransientHeatProcedure.SignedPowerConstrainedReactionAndDisconnectedComponentBalance; assertion 14개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.SignedPowerConstrainedReactionAndDisconnectedComponentBalance 유지 원문 검사 body 및 assertion 동일. c99828c6527db730f1bb8ec96e489a85090c34c5d3084fe0a1dc5fc3dd507e15 c99828c6527db730f1bb8ec96e489a85090c34c5d3084fe0a1dc5fc3dd507e15 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(evidence.size(), 2U) | EXPECT_NEAR(balance[0], .25 * reaction, evidence[step - 1].energy_bound + 4096 * 0x1p-53 * scale[0]) | EXPECT_NEAR(balance[1], 0, evidence[step - 1].energy_bound + 4096 * 0x1p-53 * scale[1]) | EXPECT_FALSE(evidence[step - 1].dissipation_checked) | ASSERT_TRUE(other_domain.HasValue()) | ASSERT_TRUE(other.HasValue()) | EXPECT_NEAR(first.temperature[i], second.temperature[i], 4096 * 0x1p-53 * std::abs(second.temperature[i])) | EXPECT_NEAR(first.completed->reaction_heat_rate[0] - second.completed->reaction_heat_rate[0], -3., 4096 * 0x1p-53 * 3) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembly.HasValue()) | ASSERT_TRUE(state.HasValue()) | ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(evidence.size(), 2U) | EXPECT_NEAR(balance[0], .25 * reaction, evidence[step - 1].energy_bound + 4096 * 0x1p-53 * scale[0]) | EXPECT_NEAR(balance[1], 0, evidence[step - 1].energy_bound + 4096 * 0x1p-53 * scale[1]) | EXPECT_FALSE(evidence[step - 1].dissipation_checked) | ASSERT_TRUE(other_domain.HasValue()) | ASSERT_TRUE(other.HasValue()) | EXPECT_NEAR(first.temperature[i], second.temperature[i], 4096 * 0x1p-53 * std::abs(second.temperature[i])) | EXPECT_NEAR(first.completed->reaction_heat_rate[0] - second.completed->reaction_heat_rate[0], -3., 4096 * 0x1p-53 * 3) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.ConstructionEnclosuresRetainExactIdentitiesAndSubnormalLoss TransientHeatProcedure.ConstructionEnclosuresRetainExactIdentitiesAndSubnormalLoss; assertion 9개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.ConstructionEnclosuresRetainExactIdentitiesAndSubnormalLoss 유지 원문 검사 body 및 assertion 동일. 99c40aa53ebd7840c50827f7a7cba6e8c37e21c37797d984dfff01c81f812fb5 99c40aa53ebd7840c50827f7a7cba6e8c37e21c37797d984dfff01c81f812fb5 EXPECT_EQ(value.lower, expected) | EXPECT_EQ(value.upper, expected) | EXPECT_LE(midpoint.lower, 1) | EXPECT_GE(midpoint.upper, std::nextafter(1., 2.)) | EXPECT_LE(half.lower, 0) | EXPECT_GE(half.upper, tiny) | EXPECT_NE(half.lower, half.upper) | EXPECT_FALSE( b::Mul(b::I{std::numeric_limits::max()}, b::I{2}).IsFinite()) | EXPECT_GT(b::Roundoff(80, b::I{tiny}).upper, 0) EXPECT_EQ(value.lower, expected) | EXPECT_EQ(value.upper, expected) | EXPECT_LE(midpoint.lower, 1) | EXPECT_GE(midpoint.upper, std::nextafter(1., 2.)) | EXPECT_LE(half.lower, 0) | EXPECT_GE(half.upper, tiny) | EXPECT_NE(half.lower, half.upper) | EXPECT_FALSE( b::Mul(b::I{std::numeric_limits::max()}, b::I{2}).IsFinite()) | EXPECT_GT(b::Roundoff(80, b::I{tiny}).upper, 0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.GenericAlgebraRejectsInvalidInputsAndUncertifiedSubnormalSolve TransientHeatProcedure.GenericAlgebraRejectsInvalidInputsAndUncertifiedSubnormalSolve; assertion 5개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.GenericAlgebraRejectsInvalidInputsAndUncertifiedSubnormalSolve 유지 원문 검사 body 및 assertion 동일. 521aae60d1b90ac0380baf56f738a93910d9d758dbc2a785fb80e0cc5548087b 521aae60d1b90ac0380baf56f738a93910d9d758dbc2a785fb80e0cc5548087b EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, fesa::Vector{2}, delta, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, {{0}, {0}, fesa::Vector{1, 1}}, fesa::Vector{2}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, fesa::Vector{1}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({invalid, c, q}, p, fesa::Vector{2}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, small, fesa::Vector{2}, .5, solver, cache) .HasValue()) EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, fesa::Vector{2}, delta, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, {{0}, {0}, fesa::Vector{1, 1}}, fesa::Vector{2}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, p, fesa::Vector{1}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({invalid, c, q}, p, fesa::Vector{2}, .5, solver, cache) .HasValue()) | EXPECT_FALSE(ti::SolveThermalIncrement({k, c, q}, small, fesa::Vector{2}, .5, solver, cache) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.SerialAndTbbExecutionsHaveIdenticalAcceptedHistories TransientHeatProcedure.SerialAndTbbExecutionsHaveIdenticalAcceptedHistories; assertion 4개 tests/unit/analysis/transient_heat_procedure_test.cpp TransientHeatProcedure.SerialAndTbbExecutionsHaveIdenticalAcceptedHistories 유지 원문 검사 body 및 assertion 동일. d88a406c7cd08b89d4d7877bf387792819e771b3133dbf4ab7f248ecbd55cb22 d88a406c7cd08b89d4d7877bf387792819e771b3133dbf4ab7f248ecbd55cb22 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(left.HasValue()) | ASSERT_TRUE(right.HasValue()) | EXPECT_EQ(Snapshot(left.Value().state), Snapshot(right.Value().state)) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(left.HasValue()) | ASSERT_TRUE(right.HasValue()) | EXPECT_EQ(Snapshot(left.Value().state), Snapshot(right.Value().state)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/analysis/transient_heat_procedure_test.cpp support@1-103 helper/oracle/fixture/include/static assertion 구간: ti, Messages, Plate, TwoMatrix, CountingSolver, Snapshot, for, if tests/unit/analysis/transient_heat_procedure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4ee5ea61dfb7fb7b623a25046b64a1e7bb04f1bc8fafe69970766d1634cb027c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/app/output_paths_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/app/output_paths_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 23aa6fa1dac950505061d2d64a2ad10abffb76bcabc0232cd0afef512c863107 23aa6fa1dac950505061d2d64a2ad10abffb76bcabc0232cd0afef512c863107 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/app/output_paths_test.cpp OutputPaths.RejectsFirstTokenContainingOutputSubstring OutputPaths.RejectsFirstTokenContainingOutputSubstring; assertion 2개 tests/unit/app/output_paths_test.cpp OutputPaths.RejectsFirstTokenContainingOutputSubstring 유지 원문 검사 body 및 assertion 동일. b5fcd67ff4f6a7eaa6e06e55668193dd70ba3822879887699b02d4baf7b419b1 b5fcd67ff4f6a7eaa6e06e55668193dd70ba3822879887699b02d4baf7b419b1 "ASSERT_FALSE(paths.HasValue()) | EXPECT_EQ(paths.GetStatus().Diagnostics().front().entity_identity, ""argument_index=0;argument=abc--outputdef"")" "ASSERT_FALSE(paths.HasValue()) | EXPECT_EQ(paths.GetStatus().Diagnostics().front().entity_identity, ""argument_index=0;argument=abc--outputdef"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/app/output_paths_test.cpp OutputPaths.RejectsEveryOutputSubstringVariant OutputPaths.RejectsEveryOutputSubstringVariant; assertion 1개 tests/unit/app/output_paths_test.cpp OutputPaths.RejectsEveryOutputSubstringVariant 유지 원문 검사 body 및 assertion 동일. 9ccaab67728c7c0a433b6ece05c14731aa50e6b5010d9de5e18eb258fe6b4d3d 9ccaab67728c7c0a433b6ece05c14731aa50e6b5010d9de5e18eb258fe6b4d3d ASSERT_FALSE(paths.HasValue()) ASSERT_FALSE(paths.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/app/output_paths_test.cpp OutputPaths.DerivesNormalizedSiblingNamesFromRelativeInput OutputPaths.DerivesNormalizedSiblingNamesFromRelativeInput; assertion 4개 tests/unit/app/output_paths_test.cpp OutputPaths.DerivesNormalizedSiblingNamesFromRelativeInput 유지 원문 검사 body 및 assertion 동일. be83317f7274e5567210d53981799a741b7beb27bd40f47391f2417fac426bd0 be83317f7274e5567210d53981799a741b7beb27bd40f47391f2417fac426bd0 "ASSERT_TRUE(paths.HasValue()) | EXPECT_EQ( paths.Value().input_path, std::filesystem::path{""C:/invocation/current/models/Beam.Model.INP""}) | EXPECT_EQ(paths.Value().results_path, std::filesystem::path{ ""C:/invocation/current/models/Beam.Model_results.h5""}) | EXPECT_EQ(paths.Value().log_path, std::filesystem::path{ ""C:/invocation/current/models/Beam.Model_log.txt""})" "ASSERT_TRUE(paths.HasValue()) | EXPECT_EQ( paths.Value().input_path, std::filesystem::path{""C:/invocation/current/models/Beam.Model.INP""}) | EXPECT_EQ(paths.Value().results_path, std::filesystem::path{ ""C:/invocation/current/models/Beam.Model_results.h5""}) | EXPECT_EQ(paths.Value().log_path, std::filesystem::path{ ""C:/invocation/current/models/Beam.Model_log.txt""})" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/app/output_paths_test.cpp OutputPaths.PreservesBasenameCaseAndPrecedingDots OutputPaths.PreservesBasenameCaseAndPrecedingDots; assertion 3개 tests/unit/app/output_paths_test.cpp OutputPaths.PreservesBasenameCaseAndPrecedingDots 유지 원문 검사 body 및 assertion 동일. 61885c6eea856194a2be897fc370b6aaaab094a608da558e7459b8e5798941a8 61885c6eea856194a2be897fc370b6aaaab094a608da558e7459b8e5798941a8 "ASSERT_TRUE(paths.HasValue()) | EXPECT_EQ(paths.Value().results_path, std::filesystem::path{""C:/models/.Beam.v2_results.h5""}) | EXPECT_EQ(paths.Value().log_path, std::filesystem::path{""C:/models/.Beam.v2_log.txt""})" "ASSERT_TRUE(paths.HasValue()) | EXPECT_EQ(paths.Value().results_path, std::filesystem::path{""C:/models/.Beam.v2_results.h5""}) | EXPECT_EQ(paths.Value().log_path, std::filesystem::path{""C:/models/.Beam.v2_log.txt""})" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/app/output_paths_test.cpp OutputPaths.RejectsInputWithoutInpFinalExtension OutputPaths.RejectsInputWithoutInpFinalExtension; assertion 1개 tests/unit/app/output_paths_test.cpp OutputPaths.RejectsInputWithoutInpFinalExtension 유지 원문 검사 body 및 assertion 동일. 0014158f8fc76b488d78ce4409d51ef8f401c1f051f2cd0db5620a776c3b9953 0014158f8fc76b488d78ce4409d51ef8f401c1f051f2cd0db5620a776c3b9953 ASSERT_FALSE(paths.HasValue()) ASSERT_FALSE(paths.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/app/output_paths_test.cpp OutputPaths.LeaseCollisionPreservesPublicOutputPaths OutputPaths.LeaseCollisionPreservesPublicOutputPaths; assertion 6개 tests/unit/app/output_paths_test.cpp OutputPaths.LeaseCollisionPreservesPublicOutputPaths 유지 원문 검사 body 및 assertion 동일. b93c20d80194e4d6ef75b5cc9deeed307c666c32d1eb009a75058426755fa409 b93c20d80194e4d6ef75b5cc9deeed307c666c32d1eb009a75058426755fa409 ASSERT_TRUE(first.HasValue()) | EXPECT_FALSE(std::filesystem::exists(paths.results_path)) | EXPECT_FALSE(std::filesystem::exists(paths.log_path)) | ASSERT_FALSE(second.HasValue()) | EXPECT_FALSE(std::filesystem::exists(paths.results_path)) | EXPECT_FALSE(std::filesystem::exists(paths.log_path)) ASSERT_TRUE(first.HasValue()) | EXPECT_FALSE(std::filesystem::exists(paths.results_path)) | EXPECT_FALSE(std::filesystem::exists(paths.log_path)) | ASSERT_FALSE(second.HasValue()) | EXPECT_FALSE(std::filesystem::exists(paths.results_path)) | EXPECT_FALSE(std::filesystem::exists(paths.log_path)) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/app/output_paths_test.cpp OutputPaths.AnalysisRequestCarriesInputResultAndLogPaths OutputPaths.AnalysisRequestCarriesInputResultAndLogPaths; assertion 3개 tests/unit/app/output_paths_test.cpp OutputPaths.AnalysisRequestCarriesInputResultAndLogPaths 유지 원문 검사 body 및 assertion 동일. c48fbc834105a6cd2380b9a77237a1f2990fd348e4c796cb5ba405a37b2d07b2 c48fbc834105a6cd2380b9a77237a1f2990fd348e4c796cb5ba405a37b2d07b2 "EXPECT_EQ(request.input_path, ""C:/models/model.inp"") | EXPECT_EQ(request.output_path, ""C:/models/model_results.h5"") | EXPECT_EQ(request.log_path, ""C:/models/model_log.txt"")" "EXPECT_EQ(request.input_path, ""C:/models/model.inp"") | EXPECT_EQ(request.output_path, ""C:/models/model_results.h5"") | EXPECT_EQ(request.log_path, ""C:/models/model_log.txt"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/app/output_paths_test.cpp support@1-49 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, ExpectFailureCode tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8dbf6924f3d67728bb5446141ed4ace5ac53a860966902e0e81cfe6dc39db3c4 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/app/output_paths_test.cpp support@71-72 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b196b7affd091bd4430c558ecb836979300676f2db7a408c62e9271c62e40d71 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/app/output_paths_test.cpp support@89-90 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a5bd942724af8adb3d7c4b014a78f9a28247931c4ea15756008b12b39aeb68fd 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/app/output_paths_test.cpp support@109-110 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. af57532578cc6d4bc6c633b7417372ef65a6b94c1efa40c6a66a0c0a47624792 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/app/output_paths_test.cpp support@128-129 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 30515567df68d6c58a8531445f79936aa9236b7440ac2d675f11334b4e1278b9 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/app/output_paths_test.cpp support@140-141 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/app/output_paths_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/assembly/load_assembler_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 11개 tests/unit/assembly/load_assembler_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 67464dfa75fd5a01a96d5757f20061cbbf936c4ac7f16b605314de94aabeeee3 34eb602efea7903941426ad18f10ba54bdabd46e4e262ba6efcb5ffabf2af2d3 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AccumulatesGenericContributionsInSuppliedSourceOrder LoadAssembly.AccumulatesGenericContributionsInSuppliedSourceOrder; assertion 3개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AccumulatesGenericContributionsInSuppliedSourceOrder 유지 원문 검사 body 및 assertion 동일. aff7361b21837067a746e74160c69e478361e53af3444bffe4d0e557a557c690 aff7361b21837067a746e74160c69e478361e53af3444bffe4d0e557a557c690 ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value()[0U], -1.0) | EXPECT_DOUBLE_EQ(result.Value()[2U], -2.5) ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value()[0U], -1.0) | EXPECT_DOUBLE_EQ(result.Value()[2U], -2.5) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsGenericContributionErrorsBeforeCandidateCommit LoadAssembly.RejectsGenericContributionErrorsBeforeCandidateCommit; assertion 2개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsGenericContributionErrorsBeforeCandidateCommit 유지 원문 검사 body 및 assertion 동일. 4516bacc631826833398902d64155fc5f6d7c6906375f9966010ff7e7691dc7e 4516bacc631826833398902d64155fc5f6d7c6906375f9966010ff7e7691dc7e ASSERT_TRUE(repeated.HasValue()) | EXPECT_DOUBLE_EQ(repeated.Value()[1U], 3.0) ASSERT_TRUE(repeated.HasValue()) | EXPECT_DOUBLE_EQ(repeated.Value()[1U], 3.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AssemblesNodeSetAndSixComponentLoads LoadAssembly.AssemblesNodeSetAndSixComponentLoads; assertion 5개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AssemblesNodeSetAndSixComponentLoads 유지 원문 검사 body 및 assertion 동일. 1bdb44b82711f7c6e58780cce70be76a8c21cd6eb2017a77241d7b4ed031b4d5 1bdb44b82711f7c6e58780cce70be76a8c21cd6eb2017a77241d7b4ed031b4d5 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 12U) | EXPECT_EQ( std::vector(result.Value().Data(), result.Value().Data() + 12U), (std::vector{1.0, 2.0, 0.0, -4.0, 5.0, 0.0, 1.0, 0.0, 3.0, 0.0, 5.0, 6.0})) | EXPECT_EQ(fixture.dofs->ConstrainedDofs(), (std::vector{0U})) | EXPECT_DOUBLE_EQ(result.Value()[0U], 1.0) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 12U) | EXPECT_EQ( std::vector(result.Value().Data(), result.Value().Data() + 12U), (std::vector{1.0, 2.0, 0.0, -4.0, 5.0, 0.0, 1.0, 0.0, 3.0, 0.0, 5.0, 6.0})) | EXPECT_EQ(fixture.dofs->ConstrainedDofs(), (std::vector{0U})) | EXPECT_DOUBLE_EQ(result.Value()[0U], 1.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AccumulatesSignedLoadsInSourceOrder LoadAssembly.AccumulatesSignedLoadsInSourceOrder; assertion 4개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AccumulatesSignedLoadsInSourceOrder 유지 원문 검사 body 및 assertion 동일. 0e27baa9eedd061df41e6eb0ceaaf6ed5073343675c3d17412eb4bb33f7c055f 0e27baa9eedd061df41e6eb0ceaaf6ed5073343675c3d17412eb4bb33f7c055f ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value()[0U], 1.0) | EXPECT_DOUBLE_EQ(second.Value()[0U], 0.0) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value()[0U], 1.0) | EXPECT_DOUBLE_EQ(second.Value()[0U], 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AggregatesAllSixGlobalShellLoadComponentsInSourceOrder LoadAssembly.AggregatesAllSixGlobalShellLoadComponentsInSourceOrder; assertion 3개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AggregatesAllSixGlobalShellLoadComponentsInSourceOrder 유지 원문 검사 body 및 assertion 동일. 79cc99592d223bf47a84a2e6417bf67d9cd139106e217bba7ea034759ea36814 79cc99592d223bf47a84a2e6417bf67d9cd139106e217bba7ea034759ea36814 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 24U) | EXPECT_EQ( std::vector(result.Value().Data(), result.Value().Data() + 6U), (std::vector{1.0, 2.0, 3.0, 4.0, 5.0, 0.0})) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Size(), 24U) | EXPECT_EQ( std::vector(result.Value().Data(), result.Value().Data() + 6U), (std::vector{1.0, 2.0, 3.0, 4.0, 5.0, 0.0})) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AcceptsExactlyZeroAggregateShellMoment LoadAssembly.AcceptsExactlyZeroAggregateShellMoment; assertion 4개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.AcceptsExactlyZeroAggregateShellMoment 유지 원문 검사 body 및 assertion 동일. 733bd45f5146ff23a07a82104b8331e28b49c335ddf6a0aec54ad75bf642a316 733bd45f5146ff23a07a82104b8331e28b49c335ddf6a0aec54ad75bf642a316 ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value()[3U], 0.0) | EXPECT_DOUBLE_EQ(result.Value()[4U], 0.0) | EXPECT_DOUBLE_EQ(result.Value()[5U], 0.0) ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value()[3U], 0.0) | EXPECT_DOUBLE_EQ(result.Value()[4U], 0.0) | EXPECT_DOUBLE_EQ(result.Value()[5U], 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.EnforcesAggregateShellMomentDirectorProjectionThreshold LoadAssembly.EnforcesAggregateShellMomentDirectorProjectionThreshold; assertion 7개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.EnforcesAggregateShellMomentDirectorProjectionThreshold 유지 원문 검사 body 및 assertion 동일. fea2c3252ba8945cb8611b9feb2879b6eeaa387e739a47709caf10ce8a447337 fea2c3252ba8945cb8611b9feb2879b6eeaa387e739a47709caf10ce8a447337 "ASSERT_TRUE(accepted.HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(rejected.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""unsupported-drilling-load"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].keyword, ""CLOAD"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].entity_identity, ""10"")" "ASSERT_TRUE(accepted.HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(rejected.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""unsupported-drilling-load"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].keyword, ""CLOAD"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].entity_identity, ""10"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsDrillingMomentBeforeEffectiveRhsCanBeFormed LoadAssembly.RejectsDrillingMomentBeforeEffectiveRhsCanBeFormed; assertion 4개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsDrillingMomentBeforeEffectiveRhsCanBeFormed 유지 원문 검사 body 및 assertion 동일. 18508214d24d7672307273a6b6575be56d3d3e18b1890c1a5889d38969795375 18508214d24d7672307273a6b6575be56d3d3e18b1890c1a5889d38969795375 "ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(rejected.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""unsupported-drilling-load"")" "ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(rejected.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""unsupported-drilling-load"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.FormsNonzeroPrescribedEffectiveRhs LoadAssembly.FormsNonzeroPrescribedEffectiveRhs; assertion 4개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.FormsNonzeroPrescribedEffectiveRhs 유지 원문 검사 body 및 assertion 동일. ec68ce4b41d1de543a53650df90bfd6ff69f294deb6e1ed1ccdf92e34e1a90b4 ec68ce4b41d1de543a53650df90bfd6ff69f294deb6e1ed1ccdf92e34e1a90b4 ASSERT_TRUE(full.HasValue()) | ASSERT_TRUE(rhs.HasValue()) | ASSERT_EQ(rhs.Value().Size(), 4U) | EXPECT_EQ(std::vector(rhs.Value().Data(), rhs.Value().Data() + 4U), (std::vector{10.0, 18.0, 39.0, 38.0})) ASSERT_TRUE(full.HasValue()) | ASSERT_TRUE(rhs.HasValue()) | ASSERT_EQ(rhs.Value().Size(), 4U) | EXPECT_EQ(std::vector(rhs.Value().Data(), rhs.Value().Data() + 4U), (std::vector{10.0, 18.0, 39.0, 38.0})) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsNonfiniteOrDimensionMismatch LoadAssembly.RejectsNonfiniteOrDimensionMismatch; assertion 0개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.RejectsNonfiniteOrDimensionMismatch 유지 원문 검사 body 및 assertion 동일. 5cc4ddbbe4657de7260e4d3d06882ec35eddc096aaa2410c36fc7c0d1d8c2d87 5cc4ddbbe4657de7260e4d3d06882ec35eddc096aaa2410c36fc7c0d1d8c2d87 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/load_assembler_test.cpp LoadAssembly.ZeroLoadsRemainZero LoadAssembly.ZeroLoadsRemainZero; assertion 8개 tests/unit/assembly/load_assembler_test.cpp LoadAssembly.ZeroLoadsRemainZero 유지 원문 검사 body 및 assertion 동일. 7635872252315cd7031e15d3dc4016b63f745528c55c7be84c6651c5f25dcf19 7635872252315cd7031e15d3dc4016b63f745528c55c7be84c6651c5f25dcf19 ASSERT_TRUE(full.HasValue()) | EXPECT_TRUE(std::all_of(full.Value().Data(), full.Value().Data() + full.Value().Size(), [](const double value) { return value == 0.0; })) | ASSERT_TRUE(free_rhs.HasValue()) | EXPECT_EQ(free_rhs.Value().Size(), 6U) | EXPECT_TRUE(std::all_of(free_rhs.Value().Data(), free_rhs.Value().Data() + free_rhs.Value().Size(), [](const double value) { return value == 0.0; })) | ASSERT_TRUE(constrained_full.HasValue()) | ASSERT_TRUE(constrained_rhs.HasValue()) | EXPECT_EQ(constrained_rhs.Value().Size(), 0U) ASSERT_TRUE(full.HasValue()) | EXPECT_TRUE(std::all_of(full.Value().Data(), full.Value().Data() + full.Value().Size(), [](const double value) { return value == 0.0; })) | ASSERT_TRUE(free_rhs.HasValue()) | EXPECT_EQ(free_rhs.Value().Size(), 6U) | EXPECT_TRUE(std::all_of(free_rhs.Value().Data(), free_rhs.Value().Data() + free_rhs.Value().Size(), [](const double value) { return value == 0.0; })) | ASSERT_TRUE(constrained_full.HasValue()) | ASSERT_TRUE(constrained_rhs.HasValue()) | EXPECT_EQ(constrained_rhs.Value().Size(), 0U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/load_assembler_test.cpp support@1-189 helper/oracle/fixture/include/static assertion 구간: LoadFixture, MakeFixture, if, MakeShellFixture, MakeDenseSparse, ExpectFailureCode, FakeLoad tests/unit/assembly/load_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 09f288a427937029f1c93b5bd10b79a1ce75968600aab87a6017627ab43bbb4d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/assembly/load_assembler_test.cpp support@276-277 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/assembly/load_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a0c3d2fdca7428b4606aecf54fc991ff71f42a6f8dfbf900da33db75c07db5e7 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/assembly/load_assembler_test.cpp support@301-302 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/assembly/load_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e5f1c6b05c193f37b5f5903549e70c2637df4efaa741399afea556790fcdd57d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/assembly/load_assembler_test.cpp support@320-321 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/assembly/load_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6d8dccf1a14f246c0076046744d9f5f32eb359e499a133ad3f09fc9a287f59b3 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/assembly/load_assembler_test.cpp support@343-344 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/assembly/load_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 27a372ac23810e34bb1331fb06ff49031906985bdadbc563bb9322e0c7b5e944 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/assembly/parallel_for_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/assembly/parallel_for_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c33eb3d92d7e4fd8c3ae369e223cc123437ab59d17653a4114fc4d80b1230314 c33eb3d92d7e4fd8c3ae369e223cc123437ab59d17653a4114fc4d80b1230314 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/assembly/parallel_for_test.cpp ParallelFor.ZeroOneManyExecuteExactlyOnce ParallelFor.ZeroOneManyExecuteExactlyOnce; assertion 2개 tests/unit/assembly/parallel_for_test.cpp ParallelFor.ZeroOneManyExecuteExactlyOnce 유지 원문 검사 body 및 assertion 동일. ae877ba853b9d44bca19a62c65606b8130804cfd09d020aed0c560e1bf25fbb3 ae877ba853b9d44bca19a62c65606b8130804cfd09d020aed0c560e1bf25fbb3 EXPECT_EQ(zero_visits.load(std::memory_order_relaxed), 0U) | EXPECT_EQ(visits[index].load(std::memory_order_relaxed), 1U) EXPECT_EQ(zero_visits.load(std::memory_order_relaxed), 0U) | EXPECT_EQ(visits[index].load(std::memory_order_relaxed), 1U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/parallel_for_test.cpp ParallelFor.SerialAndTbbProduceStableIndexedOutput ParallelFor.SerialAndTbbProduceStableIndexedOutput; assertion 4개 tests/unit/assembly/parallel_for_test.cpp ParallelFor.SerialAndTbbProduceStableIndexedOutput 유지 원문 검사 body 및 assertion 동일. 2ab6268405c5255e272585cd37131ac4b46b20a59e68b8e4a151839a35ac727b 2ab6268405c5255e272585cd37131ac4b46b20a59e68b8e4a151839a35ac727b EXPECT_EQ(serial_visits[index].load(std::memory_order_relaxed), 1U) | EXPECT_EQ(tbb_visits[index].load(std::memory_order_relaxed), 1U) | EXPECT_EQ(tbb_output[index].load(std::memory_order_relaxed), serial_output[index].load(std::memory_order_relaxed)) | EXPECT_EQ(tbb_output[index].load(std::memory_order_relaxed), value_for_index(index)) EXPECT_EQ(serial_visits[index].load(std::memory_order_relaxed), 1U) | EXPECT_EQ(tbb_visits[index].load(std::memory_order_relaxed), 1U) | EXPECT_EQ(tbb_output[index].load(std::memory_order_relaxed), serial_output[index].load(std::memory_order_relaxed)) | EXPECT_EQ(tbb_output[index].load(std::memory_order_relaxed), value_for_index(index)) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/parallel_for_test.cpp ParallelFor.PropagatesBodyExceptionByContract ParallelFor.PropagatesBodyExceptionByContract; assertion 1개 tests/unit/assembly/parallel_for_test.cpp ParallelFor.PropagatesBodyExceptionByContract 유지 원문 검사 body 및 assertion 동일. e3d433539fb80a97ab4be815cbe5d2cd45434502bb2566bf94ff67bc15d4ee84 e3d433539fb80a97ab4be815cbe5d2cd45434502bb2566bf94ff67bc15d4ee84 "EXPECT_EQ(std::string{error.what()}, ""parallel-for-body-failure"")" "EXPECT_EQ(std::string{error.what()}, ""parallel-for-body-failure"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/parallel_for_test.cpp support@1-25 helper/oracle/fixture/include/static assertion 구간: fesa, ParallelForBodyError, ParallelForBackends tests/unit/assembly/parallel_for_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9cd2b8b3b770e02c02d2fe88f4966177d86c949c6fc0904fdbcfbedc9994989a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/assembly/parallel_for_test.cpp support@112-114 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/assembly/parallel_for_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/assembly/sparse_assembler_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/assembly/sparse_assembler_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0a9627a0923db100df6ce2d8ca2fada0d5d86cd156d2f12ac1c979a6f8291215 0a9627a0923db100df6ce2d8ca2fada0d5d86cd156d2f12ac1c979a6f8291215 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.AssemblesFakeRuntimeContributionsIntoExactDeterministicCsr SparseAssembly.AssemblesFakeRuntimeContributionsIntoExactDeterministicCsr; assertion 14개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.AssemblesFakeRuntimeContributionsIntoExactDeterministicCsr 유지 원문 검사 body 및 assertion 동일. 12ccb35b0634063643caa859a19ad70b4c5ffdd9c844561cf80ee3c18ab716f0 12ccb35b0634063643caa859a19ad70b4c5ffdd9c844561cf80ee3c18ab716f0 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), elements.size()) | EXPECT_EQ(serial.Value().Rows(), 18U) | EXPECT_EQ(serial.Value().Columns(), 18U) | EXPECT_EQ(serial.Value().RowOffsets(), (std::vector{0U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 6U, 6U, 9U, 9U, 9U, 12U})) | EXPECT_EQ(serial.Value().ColumnIndices(), (std::vector{0U, 12U, 0U, 12U, 14U, 17U, 12U, 14U, 17U, 12U, 14U, 17U})) | EXPECT_EQ(serial.Value().Values(), (std::vector{1.0, 2.0, 3.0, 9.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0})) | ASSERT_TRUE(repeated.HasValue()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), elements.size()) | EXPECT_EQ(serial.Value().Rows(), 18U) | EXPECT_EQ(serial.Value().Columns(), 18U) | EXPECT_EQ(serial.Value().RowOffsets(), (std::vector{0U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 2U, 6U, 6U, 9U, 9U, 9U, 12U})) | EXPECT_EQ(serial.Value().ColumnIndices(), (std::vector{0U, 12U, 0U, 12U, 14U, 17U, 12U, 14U, 17U, 12U, 14U, 17U})) | EXPECT_EQ(serial.Value().Values(), (std::vector{1.0, 2.0, 3.0, 9.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0})) | ASSERT_TRUE(repeated.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.SerialTbbAndRepeatedRunsAreByteIdentical SparseAssembly.SerialTbbAndRepeatedRunsAreByteIdentical; assertion 20개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.SerialTbbAndRepeatedRunsAreByteIdentical 유지 원문 검사 body 및 assertion 동일. 5849dbe7757b88a61317b8233042ef8e96361c3df7ffc77c6e5f428e52989d1e 5849dbe7757b88a61317b8233042ef8e96361c3df7ffc77c6e5f428e52989d1e ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | ASSERT_TRUE(dofs_result.HasValue()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), 2U) | EXPECT_EQ(serial.Value().Rows(), 18U) | EXPECT_EQ(serial.Value().Columns(), 18U) | EXPECT_EQ(serial.Value().RowOffsets(), dofs_result.Value().GetSparsePattern().row_offsets) | EXPECT_EQ(serial.Value().ColumnIndices(), dofs_result.Value().GetSparsePattern().column_indices) | EXPECT_TRUE(serial.Value().Validate().IsOk()) | ASSERT_TRUE(repeated.HasValue()) | EXPECT_DOUBLE_EQ(Entry(serial.Value(), row, column), Entry(serial.Value(), column, row)) | EXPECT_NEAR(Entry(serial.Value(), 0U, 0U), 120.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 0U, 6U), -120.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 6U, 6U), 200.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 6U, 12U), -80.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 12U, 12U), 80.0, 1.0e-12) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | ASSERT_TRUE(dofs_result.HasValue()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), 2U) | EXPECT_EQ(serial.Value().Rows(), 18U) | EXPECT_EQ(serial.Value().Columns(), 18U) | EXPECT_EQ(serial.Value().RowOffsets(), dofs_result.Value().GetSparsePattern().row_offsets) | EXPECT_EQ(serial.Value().ColumnIndices(), dofs_result.Value().GetSparsePattern().column_indices) | EXPECT_TRUE(serial.Value().Validate().IsOk()) | ASSERT_TRUE(repeated.HasValue()) | EXPECT_DOUBLE_EQ(Entry(serial.Value(), row, column), Entry(serial.Value(), column, row)) | EXPECT_NEAR(Entry(serial.Value(), 0U, 0U), 120.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 0U, 6U), -120.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 6U, 6U), 200.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 6U, 12U), -80.0, 1.0e-12) | EXPECT_NEAR(Entry(serial.Value(), 12U, 12U), 80.0, 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.AssemblesFourNodeTwentyFourDofKernelAndPreservesDiagonalSlots SparseAssembly.AssemblesFourNodeTwentyFourDofKernelAndPreservesDiagonalSlots; assertion 12개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.AssemblesFourNodeTwentyFourDofKernelAndPreservesDiagonalSlots 유지 원문 검사 body 및 assertion 동일. 49e404af06df45dd33c41511e4b767b397f204af6dee8ddf123a19cc1159d489 49e404af06df45dd33c41511e4b767b397f204af6dee8ddf123a19cc1159d489 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(expected.HasValue()) | EXPECT_EQ(assembled.Value().Rows(), 24U) | EXPECT_EQ(assembled.Value().Columns(), 24U) | EXPECT_EQ(assembled.Value().Values().size(), 24U * 24U) | EXPECT_EQ(assembled.Value().RowOffsets(), dofs.Value().GetSparsePattern().row_offsets) | EXPECT_EQ(assembled.Value().ColumnIndices(), dofs.Value().GetSparsePattern().column_indices) | EXPECT_NE(std::lower_bound(begin, end, row), end) | EXPECT_DOUBLE_EQ(Entry(assembled.Value(), row, column), expected.Value().stabilized_global24(row, column)) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_TRUE(expected.HasValue()) | EXPECT_EQ(assembled.Value().Rows(), 24U) | EXPECT_EQ(assembled.Value().Columns(), 24U) | EXPECT_EQ(assembled.Value().Values().size(), 24U * 24U) | EXPECT_EQ(assembled.Value().RowOffsets(), dofs.Value().GetSparsePattern().row_offsets) | EXPECT_EQ(assembled.Value().ColumnIndices(), dofs.Value().GetSparsePattern().column_indices) | EXPECT_NE(std::lower_bound(begin, end, row), end) | EXPECT_DOUBLE_EQ(Entry(assembled.Value(), row, column), expected.Value().stabilized_global24(row, column)) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.ShellSerialTbbReverseAndRepeatedRunsAreByteIdentical SparseAssembly.ShellSerialTbbReverseAndRepeatedRunsAreByteIdentical; assertion 6개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.ShellSerialTbbReverseAndRepeatedRunsAreByteIdentical 유지 원문 검사 body 및 assertion 동일. 8a7b6de57d65db7469d0151373d4dc4642b7279f6e4e036f8cc76bb27e0db170 8a7b6de57d65db7469d0151373d4dc4642b7279f6e4e036f8cc76bb27e0db170 ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), 2U) | ASSERT_TRUE(repeated.HasValue()) ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(tbb.HasValue()) | ASSERT_TRUE(reversed.HasValue()) | EXPECT_EQ(reverse_executor.Calls(), 1U) | EXPECT_EQ(reverse_executor.ObservedCount(), 2U) | ASSERT_TRUE(repeated.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.S4AndS4rSemanticFixturesAssembleIdenticalStiffness SparseAssembly.S4AndS4rSemanticFixturesAssembleIdenticalStiffness; assertion 3개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.S4AndS4rSemanticFixturesAssembleIdenticalStiffness 유지 원문 검사 body 및 assertion 동일. e5a06a15276973da6be56d1ee497a913c183e8fae82909c70d28845de7fd434c e5a06a15276973da6be56d1ee497a913c183e8fae82909c70d28845de7fd434c ASSERT_TRUE(s4.HasValue()) | ASSERT_TRUE(s4r.HasValue()) | EXPECT_TRUE(std::any_of(s4.Value().Values().begin(), s4.Value().Values().end(), [](const double value) { return value != 0.0; })) ASSERT_TRUE(s4.HasValue()) | ASSERT_TRUE(s4r.HasValue()) | EXPECT_TRUE(std::any_of(s4.Value().Values().begin(), s4.Value().Values().end(), [](const double value) { return value != 0.0; })) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.RejectsLayoutAndDimensionsInStableElementOrder SparseAssembly.RejectsLayoutAndDimensionsInStableElementOrder; assertion 17개 tests/unit/assembly/sparse_assembler_test.cpp SparseAssembly.RejectsLayoutAndDimensionsInStableElementOrder 유지 원문 검사 body 및 assertion 동일. ff4bfe491d0dfc3b93ef770dd1edde00232b272f6fc225e437e5b547881bf596 ff4bfe491d0dfc3b93ef770dd1edde00232b272f6fc225e437e5b547881bf596 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_FALSE(candidate.HasValue()) | EXPECT_EQ(candidate.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(candidate.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""invalid-assembly-layout"") | EXPECT_EQ(diagnostic.keyword, ""*ELEMENT"") | EXPECT_EQ(diagnostic.entity_identity, ""10"") | EXPECT_EQ(diagnostic.message, ""Element stiffness layout must match its declared runtime layout."") | ASSERT_FALSE(candidate.HasValue()) | EXPECT_EQ(candidate.GetStatus().Diagnostics()[0U].code, ""invalid-assembly-dimensions"") | EXPECT_EQ(candidate.GetStatus().Diagnostics()[0U].entity_identity, ""20"") | EXPECT_EQ(first.DofLayout().node_indices, first_layout.node_indices) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, original_pattern.row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, original_pattern.column_indices) | EXPECT_TRUE(dofs.ValidateInvariants().IsOk())" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_FALSE(candidate.HasValue()) | EXPECT_EQ(candidate.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(candidate.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""invalid-assembly-layout"") | EXPECT_EQ(diagnostic.keyword, ""*ELEMENT"") | EXPECT_EQ(diagnostic.entity_identity, ""10"") | EXPECT_EQ(diagnostic.message, ""Element stiffness layout must match its declared runtime layout."") | ASSERT_FALSE(candidate.HasValue()) | EXPECT_EQ(candidate.GetStatus().Diagnostics()[0U].code, ""invalid-assembly-dimensions"") | EXPECT_EQ(candidate.GetStatus().Diagnostics()[0U].entity_identity, ""20"") | EXPECT_EQ(first.DofLayout().node_indices, first_layout.node_indices) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, original_pattern.row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, original_pattern.column_indices) | EXPECT_TRUE(dofs.ValidateInvariants().IsOk())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/sparse_assembler_test.cpp support@1-234 helper/oracle/fixture/include/static assertion 구간: MakeDefinition, MakeShellDefinition, if, DirectShellStiffness, AssembleShell, T, ByteIdentical, Entry, ReverseParallelFor, FakeStiffnessElement, ReturnLayout, MatrixFromRows, ExpectByteIdentical tests/unit/assembly/sparse_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 12c7014b00e0a996d4b63688b2f04f6fb4abb4e9816b9f607afa9e2219a057a0 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/assembly/sparse_assembler_test.cpp support@477-478 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/assembly/sparse_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/assembly/surface_pressure_assembler_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/assembly/surface_pressure_assembler_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 65b0c1bd703fc7bafdbd8200cf61935a039da6b80295f0ddee35027d2cf2dc78 65b0c1bd703fc7bafdbd8200cf61935a039da6b80295f0ddee35027d2cf2dc78 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.AssemblesFullDofsInPressureFacetAndRecordOrder SurfacePressureAssembly.AssemblesFullDofsInPressureFacetAndRecordOrder; assertion 12개 tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.AssemblesFullDofsInPressureFacetAndRecordOrder 유지 원문 검사 body 및 assertion 동일. 61ec658b973ff4f2a3c4dc06cd90c2b4dd2b5ac5d323c41996fcea64dd0375c7 61ec658b973ff4f2a3c4dc06cd90c2b4dd2b5ac5d323c41996fcea64dd0375c7 ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().diagnostics.empty()) | ASSERT_EQ(result.Value().full_external_force.Size(), 24U) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 1U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 2U], -0.5) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 3U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 4U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 5U], 0.0) | EXPECT_EQ(result.Value().full_external_tangent.Rows(), 24U) | EXPECT_EQ(result.Value().full_external_tangent.Columns(), 24U) | EXPECT_EQ(value, 0.0) ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().diagnostics.empty()) | ASSERT_EQ(result.Value().full_external_force.Size(), 24U) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 1U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 2U], -0.5) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 3U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 4U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[offset + 5U], 0.0) | EXPECT_EQ(result.Value().full_external_tangent.Rows(), 24U) | EXPECT_EQ(result.Value().full_external_tangent.Columns(), 24U) | EXPECT_EQ(value, 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.AddsRepeatedRecordsAndAppliesUnitFactorExactlyOnce SurfacePressureAssembly.AddsRepeatedRecordsAndAppliesUnitFactorExactlyOnce; assertion 2개 tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.AddsRepeatedRecordsAndAppliesUnitFactorExactlyOnce 유지 원문 검사 body 및 assertion 동일. 8fdc8dc50f731553ae45c3c08e921158c7ddc9dd639562d30ea5261e09ad46d8 8fdc8dc50f731553ae45c3c08e921158c7ddc9dd639562d30ea5261e09ad46d8 ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[node * 6U + 2U], -1.0) ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(result.Value().full_external_force[node * 6U + 2U], -1.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.IsBitwiseStableForSerialAndParallelLocalEvaluation SurfacePressureAssembly.IsBitwiseStableForSerialAndParallelLocalEvaluation; assertion 8개 tests/unit/assembly/surface_pressure_assembler_test.cpp SurfacePressureAssembly.IsBitwiseStableForSerialAndParallelLocalEvaluation 유지 원문 검사 body 및 assertion 동일. 48444c6f2917e44301611c69abf5fe3192dddea0f8bd5491faa6798a1b1ee682 48444c6f2917e44301611c69abf5fe3192dddea0f8bd5491faa6798a1b1ee682 ASSERT_TRUE(serial_result.HasValue()) | ASSERT_TRUE(parallel_result.HasValue()) | EXPECT_EQ(Values(serial_result.Value().full_external_force), Values(parallel_result.Value().full_external_force)) | EXPECT_EQ(serial_result.Value().full_external_tangent.RowOffsets(), parallel_result.Value().full_external_tangent.RowOffsets()) | EXPECT_EQ(serial_result.Value().full_external_tangent.ColumnIndices(), parallel_result.Value().full_external_tangent.ColumnIndices()) | EXPECT_EQ(serial_result.Value().full_external_tangent.Values(), parallel_result.Value().full_external_tangent.Values()) | EXPECT_TRUE(serial_result.Value().diagnostics.empty()) | EXPECT_TRUE(parallel_result.Value().diagnostics.empty()) ASSERT_TRUE(serial_result.HasValue()) | ASSERT_TRUE(parallel_result.HasValue()) | EXPECT_EQ(Values(serial_result.Value().full_external_force), Values(parallel_result.Value().full_external_force)) | EXPECT_EQ(serial_result.Value().full_external_tangent.RowOffsets(), parallel_result.Value().full_external_tangent.RowOffsets()) | EXPECT_EQ(serial_result.Value().full_external_tangent.ColumnIndices(), parallel_result.Value().full_external_tangent.ColumnIndices()) | EXPECT_EQ(serial_result.Value().full_external_tangent.Values(), parallel_result.Value().full_external_tangent.Values()) | EXPECT_TRUE(serial_result.Value().diagnostics.empty()) | EXPECT_TRUE(parallel_result.Value().diagnostics.empty()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/assembly/surface_pressure_assembler_test.cpp support@1-122 helper/oracle/fixture/include/static assertion 구간: PressureFixture, MakeFixture, if, Values tests/unit/assembly/surface_pressure_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 212fb026f9860fa82917c9a2a8e06c719b1338a414784431d36b14ce79330338 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/assembly/thermal_assembler_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/assembly/thermal_assembler_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bcac60bb3167ad3e6ec2d45f9ee08c7535bb121f71cae21a7cac9053440ec25a bcac60bb3167ad3e6ec2d45f9ee08c7535bb121f71cae21a7cac9053440ec25a 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.HandAssemblyPreservesSharedStationsMaterialOffsetAndThicknessJump ThermalAssembler.HandAssemblyPreservesSharedStationsMaterialOffsetAndThicknessJump; assertion 12개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.HandAssemblyPreservesSharedStationsMaterialOffsetAndThicknessJump 유지 원문 검사 body 및 assertion 동일. 2b58c82002dcecc533fba0030b665848e18c223902521a1e83fd2a87d742cb62 2b58c82002dcecc533fba0030b665848e18c223902521a1e83fd2a87d742cb62 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_EQ(assembled.Value().Conductivity().Rows(), 30U) | EXPECT_LE(std::abs(k(i, j) - expected.k(i, j)), ek(i, j) + gamma * expected.pk(i, j)) | EXPECT_LE(std::abs(c(i, j) - expected.c(i, j)), ec(i, j) + gamma * expected.pc(i, j)) | EXPECT_EQ(domain.Value().ThermalElements()[0].MaterialIndex(), 1U) | EXPECT_EQ(domain.Value().ThermalElements()[1].MaterialIndex(), 2U) | EXPECT_EQ(assembled.Value().ElementOrder(), (std::vector{0, 1})) | EXPECT_EQ(assembled.Value().Kernels()[0].SourceId().source_label_text, ""0009"") | EXPECT_EQ(assembled.Value().Scatters()[0][5 + a], assembled.Value().Scatters()[1][a])" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(assembled.HasValue()) | ASSERT_EQ(assembled.Value().Conductivity().Rows(), 30U) | EXPECT_LE(std::abs(k(i, j) - expected.k(i, j)), ek(i, j) + gamma * expected.pk(i, j)) | EXPECT_LE(std::abs(c(i, j) - expected.c(i, j)), ec(i, j) + gamma * expected.pc(i, j)) | EXPECT_EQ(domain.Value().ThermalElements()[0].MaterialIndex(), 1U) | EXPECT_EQ(domain.Value().ThermalElements()[1].MaterialIndex(), 2U) | EXPECT_EQ(assembled.Value().ElementOrder(), (std::vector{0, 1})) | EXPECT_EQ(assembled.Value().Kernels()[0].SourceId().source_label_text, ""0009"") | EXPECT_EQ(assembled.Value().Scatters()[0][5 + a], assembled.Value().Scatters()[1][a])" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.SourceRowHeatInputRetainsPrescribedSignedDuplicateContributions ThermalAssembler.SourceRowHeatInputRetainsPrescribedSignedDuplicateContributions; assertion 15개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.SourceRowHeatInputRetainsPrescribedSignedDuplicateContributions 유지 원문 검사 body 및 assertion 동일. 17db9c94e9a588ae74c5f1a31a66d769b4b99a42263a1a0e04de71a3a1d53b0a 17db9c94e9a588ae74c5f1a31a66d769b4b99a42263a1a0e04de71a3a1d53b0a ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(dofs.Value().FreeEquation(full).has_value()) | EXPECT_EQ(result.Value().HeatInput()[full], 5.) | EXPECT_EQ(result.Value().HeatInput()[4], -7.) | EXPECT_GE(result.Value().HeatInputError()[full], 1.) | EXPECT_EQ(result.Value().HeatInput()[i], 0.) | EXPECT_EQ(result.Value().HeatInputError()[i], 0.) | ASSERT_TRUE(second_domain.HasValue()) | ASSERT_TRUE(second_model.HasValue()) | ASSERT_TRUE(second_dofs.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(second.Value().HeatInput()[full], 6.) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(dofs.Value().FreeEquation(full).has_value()) | EXPECT_EQ(result.Value().HeatInput()[full], 5.) | EXPECT_EQ(result.Value().HeatInput()[4], -7.) | EXPECT_GE(result.Value().HeatInputError()[full], 1.) | EXPECT_EQ(result.Value().HeatInput()[i], 0.) | EXPECT_EQ(result.Value().HeatInputError()[i], 0.) | ASSERT_TRUE(second_domain.HasValue()) | ASSERT_TRUE(second_model.HasValue()) | ASSERT_TRUE(second_dofs.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(second.Value().HeatInput()[full], 6.) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.SerialAndActualTbbOperatorsBoundsAndFluxAreBitwiseEqual ThermalAssembler.SerialAndActualTbbOperatorsBoundsAndFluxAreBitwiseEqual; assertion 11개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.SerialAndActualTbbOperatorsBoundsAndFluxAreBitwiseEqual 유지 원문 검사 body 및 assertion 동일. 7083d3f901965e28ae9783d436dcef27b2622cb304a5b6631c6081a6656a27e3 7083d3f901965e28ae9783d436dcef27b2622cb304a5b6631c6081a6656a27e3 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(parallel.HasValue()) | EXPECT_EQ(serial.Value().Conductivity().RowOffsets(), parallel.Value().Conductivity().RowOffsets()) | EXPECT_EQ(serial.Value().Conductivity().ColumnIndices(), parallel.Value().Conductivity().ColumnIndices()) | EXPECT_EQ( std::memcmp(serial.Value().HeatInput().Data(), parallel.Value().HeatInput().Data(), 30 * sizeof(double)), 0) | ASSERT_TRUE(sf.HasValue()) | ASSERT_TRUE(pf.HasValue()) | EXPECT_EQ( std::memcmp(sf.Value()[e][r].Components().data(), pf.Value()[e][r].Components().data(), 3 * sizeof(double)), 0) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(parallel.HasValue()) | EXPECT_EQ(serial.Value().Conductivity().RowOffsets(), parallel.Value().Conductivity().RowOffsets()) | EXPECT_EQ(serial.Value().Conductivity().ColumnIndices(), parallel.Value().Conductivity().ColumnIndices()) | EXPECT_EQ( std::memcmp(serial.Value().HeatInput().Data(), parallel.Value().HeatInput().Data(), 30 * sizeof(double)), 0) | ASSERT_TRUE(sf.HasValue()) | ASSERT_TRUE(pf.HasValue()) | EXPECT_EQ( std::memcmp(sf.Value()[e][r].Components().data(), pf.Value()[e][r].Components().data(), 3 * sizeof(double)), 0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.DisconnectedComponentsHaveNoCrossBlockEntries ThermalAssembler.DisconnectedComponentsHaveNoCrossBlockEntries; assertion 6개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.DisconnectedComponentsHaveNoCrossBlockEntries 유지 원문 검사 body 및 assertion 동일. 18403e156469c7c5012f27a63e4d9f13d4a7cef5d14cf64fb3c66e8b2b461fd9 18403e156469c7c5012f27a63e4d9f13d4a7cef5d14cf64fb3c66e8b2b461fd9 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(matrix.Rows(), 40U) | EXPECT_EQ(row < 20, matrix.ColumnIndices()[p] < 20) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(matrix.Rows(), 40U) | EXPECT_EQ(row < 20, matrix.ColumnIndices()[p] < 20) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.RejectsWrongProfilesPartitionsAndNonfiniteAccumulation ThermalAssembler.RejectsWrongProfilesPartitionsAndNonfiniteAccumulation; assertion 11개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.RejectsWrongProfilesPartitionsAndNonfiniteAccumulation 유지 원문 검사 body 및 assertion 동일. 17b959b03e9990bb95823d4e571e8e027d95babe4d8e5f02400d920e12e24961 17b959b03e9990bb95823d4e571e8e027d95babe4d8e5f02400d920e12e24961 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(model.Value(), fesa::DofManager{}, fesa::SerialParallelFor{}) .HasValue()) | ASSERT_TRUE(other_domain.HasValue()) | ASSERT_TRUE(other_model.HasValue()) | ASSERT_TRUE(other_dofs.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(model.Value(), other_dofs.Value(), fesa::SerialParallelFor{}) .HasValue()) | ASSERT_TRUE(overflow_domain.HasValue()) | ASSERT_TRUE(overflow_model.HasValue()) | ASSERT_TRUE(overflow_dofs.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(overflow_model.Value(), overflow_dofs.Value(), fesa::TbbParallelFor{}) .HasValue()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(model.Value(), fesa::DofManager{}, fesa::SerialParallelFor{}) .HasValue()) | ASSERT_TRUE(other_domain.HasValue()) | ASSERT_TRUE(other_model.HasValue()) | ASSERT_TRUE(other_dofs.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(model.Value(), other_dofs.Value(), fesa::SerialParallelFor{}) .HasValue()) | ASSERT_TRUE(overflow_domain.HasValue()) | ASSERT_TRUE(overflow_model.HasValue()) | ASSERT_TRUE(overflow_dofs.HasValue()) | EXPECT_FALSE(fesa::AssembleThermal(overflow_model.Value(), overflow_dofs.Value(), fesa::TbbParallelFor{}) .HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.ParallelKernelFailuresSelectStableSourceElement ThermalAssembler.ParallelKernelFailuresSelectStableSourceElement; assertion 7개 tests/unit/assembly/thermal_assembler_test.cpp ThermalAssembler.ParallelKernelFailuresSelectStableSourceElement 유지 원문 검사 body 및 assertion 동일. 705c5cdaa64861e8c3cdc7f638eb3bbc8d6d8bb25de3e78dec00674cb5bee2f4 705c5cdaa64861e8c3cdc7f638eb3bbc8d6d8bb25de3e78dec00674cb5bee2f4 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_FALSE(serial.HasValue()) | ASSERT_FALSE(parallel.HasValue()) | EXPECT_EQ(serial.GetStatus().Diagnostics()[0].entity_identity, ""plate:0009"") | EXPECT_EQ(parallel.GetStatus().Diagnostics()[0].entity_identity, ""plate:0009"")" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_FALSE(serial.HasValue()) | ASSERT_FALSE(parallel.HasValue()) | EXPECT_EQ(serial.GetStatus().Diagnostics()[0].entity_identity, ""plate:0009"") | EXPECT_EQ(parallel.GetStatus().Diagnostics()[0].entity_identity, ""plate:0009"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/assembly/thermal_assembler_test.cpp support@1-117 helper/oracle/fixture/include/static assertion 구간: Model, Dense, ExpectedMatrices, Expected, SameBits tests/unit/assembly/thermal_assembler_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b3e9525aaced1be323ec738ea9213a2323dd745f550425b6a612fa09fa176d50 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/build_info_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/build_info_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8bf9bfef45c45c9a09e0a0f98ee4cc38316e2550894c6e27ca599fdd650298b8 8bf9bfef45c45c9a09e0a0f98ee4cc38316e2550894c6e27ca599fdd650298b8 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/build_info_test.cpp BuildInfo.VersionIsStableAndNonEmpty BuildInfo.VersionIsStableAndNonEmpty; assertion 3개 tests/unit/build_info_test.cpp BuildInfo.VersionIsStableAndNonEmpty 유지 원문 검사 body 및 assertion 동일. 0cb8bda21730c82347550102836f3bade449b4c590aa77348381f5066c040bd0 0cb8bda21730c82347550102836f3bade449b4c590aa77348381f5066c040bd0 "EXPECT_FALSE(first.empty()) | EXPECT_EQ(first, second) | EXPECT_TRUE(std::regex_match(std::string(first), std::regex{R""(^[0-9]+\.[0-9]+\.[0-9]+$)""}))" "EXPECT_FALSE(first.empty()) | EXPECT_EQ(first, second) | EXPECT_TRUE(std::regex_match(std::string(first), std::regex{R""(^[0-9]+\.[0-9]+\.[0-9]+$)""}))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/build_info_test.cpp BuildInfo.PublicHeaderHasNoBackendDependency BuildInfo.PublicHeaderHasNoBackendDependency; assertion 0개 tests/unit/build_info_test.cpp BuildInfo.PublicHeaderHasNoBackendDependency 유지 원문 검사 body 및 assertion 동일. 918ff7cf6a6f923c243045921b33a38cf1e94cfc73a2247b7fac6ac76ecc09a8 918ff7cf6a6f923c243045921b33a38cf1e94cfc73a2247b7fac6ac76ecc09a8 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/build_info_test.cpp support@1-9 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/build_info_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c574474e8a7db434a18523c880adfe46ee608d4109b4dffa1ea623ef3c291ac5 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/constraints/boundary_condition_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/constraints/boundary_condition_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b5ff07b5925aab743568eff705c8827f7186889ad15541e90d2ed9fe6998ce79 b5ff07b5925aab743568eff705c8827f7186889ad15541e90d2ed9fe6998ce79 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.ResolvesStableNonzeroDefinitionsThroughBase BoundaryCondition.ResolvesStableNonzeroDefinitionsThroughBase; assertion 8개 tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.ResolvesStableNonzeroDefinitionsThroughBase 유지 원문 검사 body 및 assertion 동일. 8a449e3e0a082370655dda3bce51393da93ba796aac899f07b22572bffcc239d 8a449e3e0a082370655dda3bce51393da93ba796aac899f07b22572bffcc239d ASSERT_TRUE(definitions.HasValue()) | ASSERT_EQ(definitions.Value().size(), 2U) | EXPECT_EQ(definitions.Value()[0U].source_order, 4U) | EXPECT_EQ(definitions.Value()[0U].full_dof_index, 8U) | EXPECT_DOUBLE_EQ(definitions.Value()[0U].prescribed_value, 2.5) | EXPECT_EQ(definitions.Value()[1U].source_order, 4U) | EXPECT_EQ(definitions.Value()[1U].full_dof_index, 2U) | EXPECT_DOUBLE_EQ(definitions.Value()[1U].prescribed_value, 2.5) ASSERT_TRUE(definitions.HasValue()) | ASSERT_EQ(definitions.Value().size(), 2U) | EXPECT_EQ(definitions.Value()[0U].source_order, 4U) | EXPECT_EQ(definitions.Value()[0U].full_dof_index, 8U) | EXPECT_DOUBLE_EQ(definitions.Value()[0U].prescribed_value, 2.5) | EXPECT_EQ(definitions.Value()[1U].source_order, 4U) | EXPECT_EQ(definitions.Value()[1U].full_dof_index, 2U) | EXPECT_DOUBLE_EQ(definitions.Value()[1U].prescribed_value, 2.5) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.DomainOwnsExpandedPolymorphicDefinitionsStably BoundaryCondition.DomainOwnsExpandedPolymorphicDefinitionsStably; assertion 10개 tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.DomainOwnsExpandedPolymorphicDefinitionsStably 유지 원문 검사 body 및 assertion 동일. ccb7ed25f7f922616192d64201aa0dd2e02b20fc5f8c7e0b71b99921adff83f8 ccb7ed25f7f922616192d64201aa0dd2e02b20fc5f8c7e0b71b99921adff83f8 ASSERT_EQ(boundaries.size(), 2U) | EXPECT_EQ(fixture.model->ActiveBoundaryConditions(), (std::vector{0U, 1U})) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(first.Value()[0U].source_order, 0U) | EXPECT_EQ(first.Value()[0U].full_dof_index, 6U) | EXPECT_EQ(second.Value()[0U].source_order, 1U) | EXPECT_EQ(second.Value()[0U].full_dof_index, 7U) | EXPECT_DOUBLE_EQ(first.Value()[0U].prescribed_value, 1.25) | EXPECT_DOUBLE_EQ(second.Value()[0U].prescribed_value, 1.25) ASSERT_EQ(boundaries.size(), 2U) | EXPECT_EQ(fixture.model->ActiveBoundaryConditions(), (std::vector{0U, 1U})) | ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(first.Value()[0U].source_order, 0U) | EXPECT_EQ(first.Value()[0U].full_dof_index, 6U) | EXPECT_EQ(second.Value()[0U].source_order, 1U) | EXPECT_EQ(second.Value()[0U].full_dof_index, 7U) | EXPECT_DOUBLE_EQ(first.Value()[0U].prescribed_value, 1.25) | EXPECT_DOUBLE_EQ(second.Value()[0U].prescribed_value, 1.25) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.RejectsDuplicateConflictAndNonfiniteBeforeCandidateCommit BoundaryCondition.RejectsDuplicateConflictAndNonfiniteBeforeCandidateCommit; assertion 1개 tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.RejectsDuplicateConflictAndNonfiniteBeforeCandidateCommit 유지 원문 검사 body 및 assertion 동일. 0777dfa7d90a00f5b781ac55fbcd26140ce971f90872e5d827092036852f2a74 0777dfa7d90a00f5b781ac55fbcd26140ce971f90872e5d827092036852f2a74 ASSERT_TRUE( fixture.dofs->Build(*fixture.model, elements, {std::cref(initial)}) .IsOk()) ASSERT_TRUE( fixture.dofs->Build(*fixture.model, elements, {std::cref(initial)}) .IsOk()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.AcceptsIdenticalOverlapAcrossSourceDefinitions BoundaryCondition.AcceptsIdenticalOverlapAcrossSourceDefinitions; assertion 1개 tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.AcceptsIdenticalOverlapAcrossSourceDefinitions 유지 원문 검사 body 및 assertion 동일. 55ca5cd284184aa80c4d75cdced2736d1dedf3ee376f11277ff7ce933d8b1ba7 55ca5cd284184aa80c4d75cdced2736d1dedf3ee376f11277ff7ce933d8b1ba7 ASSERT_TRUE(status.IsOk()) ASSERT_TRUE(status.IsOk()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.ConcreteRejectsNonfinitePrescribedValue BoundaryCondition.ConcreteRejectsNonfinitePrescribedValue; assertion 3개 tests/unit/constraints/boundary_condition_test.cpp BoundaryCondition.ConcreteRejectsNonfinitePrescribedValue 유지 원문 검사 body 및 assertion 동일. 365ded0ccec2ef519edcd4c018361f02600a7e9ad1cf3964445965e9828e3a4a 365ded0ccec2ef519edcd4c018361f02600a7e9ad1cf3964445965e9828e3a4a "ASSERT_FALSE(result.HasValue()) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""nonfinite-prescribed-value"")" "ASSERT_FALSE(result.HasValue()) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""nonfinite-prescribed-value"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/constraints/boundary_condition_test.cpp support@1-104 helper/oracle/fixture/include/static assertion 구간: BoundaryFixture, FakeBoundaryCondition, ExpectFailureCode, ExpectCandidate tests/unit/constraints/boundary_condition_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7f03c2fa0d373d6420b1c18029f29a429ed75303d12a175e71a3ce669882c48a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/constraints/essential_constraints_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/constraints/essential_constraints_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3bbaa9486249cbfa5978af50408dc25eab1164fe110ebec87ea7f60f2019353a 3bbaa9486249cbfa5978af50408dc25eab1164fe110ebec87ea7f60f2019353a 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.ExtractsHandComputedBlocksInStableOrder EssentialConstraints.ExtractsHandComputedBlocksInStableOrder; assertion 18개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.ExtractsHandComputedBlocksInStableOrder 유지 원문 검사 body 및 assertion 동일. 674065ab604b3a41a09e73738260e57022bc1c90af16f0d1ff822a3fe000a923 674065ab604b3a41a09e73738260e57022bc1c90af16f0d1ff822a3fe000a923 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(blocks.k_ff.RowOffsets(), (std::vector{0U, 4U, 8U, 12U, 16U})) | EXPECT_EQ(blocks.k_ff.ColumnIndices(), (std::vector{0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U})) | EXPECT_EQ( blocks.k_ff.Values(), (std::vector{1.0, 3.0, 4.0, 6.0, 21.0, 23.0, 24.0, 26.0, 31.0, 33.0, 34.0, 36.0, 51.0, 53.0, 54.0, 56.0})) | EXPECT_EQ(blocks.k_fc.RowOffsets(), (std::vector{0U, 2U, 4U, 6U, 8U})) | EXPECT_EQ(blocks.k_fc.ColumnIndices(), (std::vector{0U, 1U, 0U, 1U, 0U, 1U, 0U, 1U})) | EXPECT_EQ(blocks.k_fc.Values(), (std::vector{2.0, 5.0, 22.0, 0.0, 32.0, 35.0, 52.0, 55.0})) | EXPECT_EQ(blocks.k_cf.RowOffsets(), (std::vector{0U, 4U, 8U})) | EXPECT_EQ(blocks.k_cf.ColumnIndices(), (std::vector{0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U})) | EXPECT_EQ( blocks.k_cf.Values(), (std::vector{11.0, 13.0, 14.0, 16.0, 41.0, 43.0, 44.0, 46.0})) | EXPECT_EQ(blocks.k_cc.RowOffsets(), (std::vector{0U, 2U, 4U})) | EXPECT_EQ(blocks.k_cc.ColumnIndices(), (std::vector{0U, 1U, 0U, 1U})) | EXPECT_EQ(blocks.k_cc.Values(), (std::vector{12.0, 15.0, 42.0, 45.0})) | EXPECT_EQ(blocks.k_fc.Values()[3U], 0.0) | EXPECT_TRUE(blocks.k_ff.Validate().IsOk()) | EXPECT_TRUE(blocks.k_fc.Validate().IsOk()) | EXPECT_TRUE(blocks.k_cf.Validate().IsOk()) | EXPECT_TRUE(blocks.k_cc.Validate().IsOk()) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(blocks.k_ff.RowOffsets(), (std::vector{0U, 4U, 8U, 12U, 16U})) | EXPECT_EQ(blocks.k_ff.ColumnIndices(), (std::vector{0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U})) | EXPECT_EQ( blocks.k_ff.Values(), (std::vector{1.0, 3.0, 4.0, 6.0, 21.0, 23.0, 24.0, 26.0, 31.0, 33.0, 34.0, 36.0, 51.0, 53.0, 54.0, 56.0})) | EXPECT_EQ(blocks.k_fc.RowOffsets(), (std::vector{0U, 2U, 4U, 6U, 8U})) | EXPECT_EQ(blocks.k_fc.ColumnIndices(), (std::vector{0U, 1U, 0U, 1U, 0U, 1U, 0U, 1U})) | EXPECT_EQ(blocks.k_fc.Values(), (std::vector{2.0, 5.0, 22.0, 0.0, 32.0, 35.0, 52.0, 55.0})) | EXPECT_EQ(blocks.k_cf.RowOffsets(), (std::vector{0U, 4U, 8U})) | EXPECT_EQ(blocks.k_cf.ColumnIndices(), (std::vector{0U, 1U, 2U, 3U, 0U, 1U, 2U, 3U})) | EXPECT_EQ( blocks.k_cf.Values(), (std::vector{11.0, 13.0, 14.0, 16.0, 41.0, 43.0, 44.0, 46.0})) | EXPECT_EQ(blocks.k_cc.RowOffsets(), (std::vector{0U, 2U, 4U})) | EXPECT_EQ(blocks.k_cc.ColumnIndices(), (std::vector{0U, 1U, 0U, 1U})) | EXPECT_EQ(blocks.k_cc.Values(), (std::vector{12.0, 15.0, 42.0, 45.0})) | EXPECT_EQ(blocks.k_fc.Values()[3U], 0.0) | EXPECT_TRUE(blocks.k_ff.Validate().IsOk()) | EXPECT_TRUE(blocks.k_fc.Validate().IsOk()) | EXPECT_TRUE(blocks.k_cf.Validate().IsOk()) | EXPECT_TRUE(blocks.k_cc.Validate().IsOk()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.HandlesNoAllAndMixedConstraints EssentialConstraints.HandlesNoAllAndMixedConstraints; assertion 10개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.HandlesNoAllAndMixedConstraints 유지 원문 검사 body 및 assertion 동일. 66201f4cf9837297e77488d6cb0babc1c5dd36934af64abe3b39cf85b4865cfd 66201f4cf9837297e77488d6cb0babc1c5dd36934af64abe3b39cf85b4865cfd ASSERT_TRUE(none.HasValue()) | EXPECT_EQ(none.Value().k_ff.Values(), full.Values()) | ASSERT_TRUE(all.HasValue()) | EXPECT_EQ(all.Value().k_cc.Values(), full.Values()) | ASSERT_TRUE(empty_rhs.HasValue()) | EXPECT_EQ(empty_rhs.Value().Size(), 0U) | ASSERT_TRUE(full_rhs.HasValue()) | EXPECT_EQ(full_rhs.Value()[i], static_cast(i) - 2.0) | EXPECT_EQ(full_load[i], static_cast(i) - 2.0) | ASSERT_TRUE(mixed.HasValue()) ASSERT_TRUE(none.HasValue()) | EXPECT_EQ(none.Value().k_ff.Values(), full.Values()) | ASSERT_TRUE(all.HasValue()) | EXPECT_EQ(all.Value().k_cc.Values(), full.Values()) | ASSERT_TRUE(empty_rhs.HasValue()) | EXPECT_EQ(empty_rhs.Value().Size(), 0U) | ASSERT_TRUE(full_rhs.HasValue()) | EXPECT_EQ(full_rhs.Value()[i], static_cast(i) - 2.0) | EXPECT_EQ(full_load[i], static_cast(i) - 2.0) | ASSERT_TRUE(mixed.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.PreservesShellSizedNoMixedAndAllConstraintRoundTrips EssentialConstraints.PreservesShellSizedNoMixedAndAllConstraintRoundTrips; assertion 7개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.PreservesShellSizedNoMixedAndAllConstraintRoundTrips 유지 원문 검사 body 및 assertion 동일. c943e0be6dafdad411e9dc5b075259ff93ba3d6edad1aac44186128b70255f2f c943e0be6dafdad411e9dc5b075259ff93ba3d6edad1aac44186128b70255f2f ASSERT_TRUE(none.HasValue()) | ASSERT_TRUE(mixed.HasValue()) | ASSERT_EQ(mixed_reconstructed.Size(), mixed_full.Size()) | EXPECT_DOUBLE_EQ(mixed_reconstructed[index], mixed_full[index]) | ASSERT_TRUE(all.HasValue()) | ASSERT_EQ(all_reconstructed.Size(), 24U) | EXPECT_DOUBLE_EQ(all_reconstructed[node * 6U + component], node + 1.0) ASSERT_TRUE(none.HasValue()) | ASSERT_TRUE(mixed.HasValue()) | ASSERT_EQ(mixed_reconstructed.Size(), mixed_full.Size()) | EXPECT_DOUBLE_EQ(mixed_reconstructed[index], mixed_full[index]) | ASSERT_TRUE(all.HasValue()) | ASSERT_EQ(all_reconstructed.Size(), 24U) | EXPECT_DOUBLE_EQ(all_reconstructed[node * 6U + component], node + 1.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.ReconstructsNonzeroPrescribedValues EssentialConstraints.ReconstructsNonzeroPrescribedValues; assertion 12개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.ReconstructsNonzeroPrescribedValues 유지 원문 검사 body 및 assertion 동일. 38aa54591420c254c738c4a4c26e333f8bfdf17f2f7e937f55b241729d5668fb 38aa54591420c254c738c4a4c26e333f8bfdf17f2f7e937f55b241729d5668fb EXPECT_EQ(free.Size(), 4U) | EXPECT_DOUBLE_EQ(free[0U], 10.0) | EXPECT_DOUBLE_EQ(free[1U], 20.0) | EXPECT_DOUBLE_EQ(free[2U], 30.0) | EXPECT_DOUBLE_EQ(free[3U], 40.0) | EXPECT_EQ(constrained.Size(), 2U) | EXPECT_DOUBLE_EQ(constrained[0U], 2.5) | EXPECT_DOUBLE_EQ(constrained[1U], -3.25) | EXPECT_EQ(constrained[0U], dofs.PrescribedValues()[0U]) | EXPECT_EQ(constrained[1U], dofs.PrescribedValues()[1U]) | ASSERT_EQ(reconstructed.Size(), full.Size()) | EXPECT_DOUBLE_EQ(reconstructed[index], full[index]) EXPECT_EQ(free.Size(), 4U) | EXPECT_DOUBLE_EQ(free[0U], 10.0) | EXPECT_DOUBLE_EQ(free[1U], 20.0) | EXPECT_DOUBLE_EQ(free[2U], 30.0) | EXPECT_DOUBLE_EQ(free[3U], 40.0) | EXPECT_EQ(constrained.Size(), 2U) | EXPECT_DOUBLE_EQ(constrained[0U], 2.5) | EXPECT_DOUBLE_EQ(constrained[1U], -3.25) | EXPECT_EQ(constrained[0U], dofs.PrescribedValues()[0U]) | EXPECT_EQ(constrained[1U], dofs.PrescribedValues()[1U]) | ASSERT_EQ(reconstructed.Size(), full.Size()) | EXPECT_DOUBLE_EQ(reconstructed[index], full[index]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.RejectsDimensionOrOrderMismatch EssentialConstraints.RejectsDimensionOrOrderMismatch; assertion 9개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.RejectsDimensionOrOrderMismatch 유지 원문 검사 body 및 assertion 동일. fc0cc64c86498e9c8468b6ad373ac9e32ec0bca9361615ae3f974df070dab2cf fc0cc64c86498e9c8468b6ad373ac9e32ec0bca9361615ae3f974df070dab2cf "ASSERT_FALSE(wrong_dimension.HasValue()) | EXPECT_EQ(wrong_dimension.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(wrong_dimension.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(wrong_dimension.GetStatus().Diagnostics()[0U].code, ""invalid-constraint-dimensions"") | ASSERT_FALSE(wrong_order.HasValue()) | EXPECT_EQ(wrong_order.GetStatus().Diagnostics()[0U].code, ""invalid-constraint-dimensions"") | EXPECT_THROW(static_cast(policy.GatherFree(fesa::Vector{5U}, dofs)), std::invalid_argument) | EXPECT_THROW( static_cast(policy.GatherConstrained(fesa::Vector{7U}, dofs)), std::invalid_argument) | EXPECT_THROW(static_cast(policy.ReconstructFull( fesa::Vector{4U}, fesa::Vector{2U}, dofs)), std::invalid_argument)" "ASSERT_FALSE(wrong_dimension.HasValue()) | EXPECT_EQ(wrong_dimension.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(wrong_dimension.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(wrong_dimension.GetStatus().Diagnostics()[0U].code, ""invalid-constraint-dimensions"") | ASSERT_FALSE(wrong_order.HasValue()) | EXPECT_EQ(wrong_order.GetStatus().Diagnostics()[0U].code, ""invalid-constraint-dimensions"") | EXPECT_THROW(static_cast(policy.GatherFree(fesa::Vector{5U}, dofs)), std::invalid_argument) | EXPECT_THROW( static_cast(policy.GatherConstrained(fesa::Vector{7U}, dofs)), std::invalid_argument) | EXPECT_THROW(static_cast(policy.ReconstructFull( fesa::Vector{4U}, fesa::Vector{2U}, dofs)), std::invalid_argument)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.PreservesEliminationFailureOrderAndInputs EssentialConstraints.PreservesEliminationFailureOrderAndInputs; assertion 21개 tests/unit/constraints/essential_constraints_test.cpp EssentialConstraints.PreservesEliminationFailureOrderAndInputs 유지 원문 검사 body 및 assertion 동일. 2cd3ea3170fd9e953bf747f537da7b235dd883641fd23782365bd8b11c4a9b76 2cd3ea3170fd9e953bf747f537da7b235dd883641fd23782365bd8b11c4a9b76 "ASSERT_FALSE(candidate.HasValue()) | EXPECT_EQ(candidate.GetStatus().Diagnostics()[0U].code, ""invalid-load-dimensions"") | ASSERT_FALSE(candidate.HasValue()) | EXPECT_EQ(candidate.GetStatus().Diagnostics()[0U].entity_identity, ""full-load:0"") | EXPECT_EQ(load[0U], std::numeric_limits::infinity()) | EXPECT_EQ(prescribed[0U], std::numeric_limits::infinity()) | ASSERT_FALSE(candidate.HasValue()) | EXPECT_EQ(candidate.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(candidate.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""nonfinite-load-accumulation"") | EXPECT_EQ(diagnostic.keyword, ""LOAD_ASSEMBLER"") | EXPECT_EQ(diagnostic.entity_identity, ""0"") | EXPECT_TRUE(diagnostic.location.file.empty()) | EXPECT_EQ(diagnostic.location.line, 0U) | EXPECT_EQ(diagnostic.message, ""Kfc times prescribed displacement produced a nonfinite row sum."") | EXPECT_EQ(load[0U], 7.0) | EXPECT_EQ(prescribed[0U], 2.0) | EXPECT_EQ(prescribed[1U], 1.0) | EXPECT_EQ(kfc.Values(), original_values) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, original_pattern.row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, original_pattern.column_indices)" "ASSERT_FALSE(candidate.HasValue()) | EXPECT_EQ(candidate.GetStatus().Diagnostics()[0U].code, ""invalid-load-dimensions"") | ASSERT_FALSE(candidate.HasValue()) | EXPECT_EQ(candidate.GetStatus().Diagnostics()[0U].entity_identity, ""full-load:0"") | EXPECT_EQ(load[0U], std::numeric_limits::infinity()) | EXPECT_EQ(prescribed[0U], std::numeric_limits::infinity()) | ASSERT_FALSE(candidate.HasValue()) | EXPECT_EQ(candidate.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(candidate.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""nonfinite-load-accumulation"") | EXPECT_EQ(diagnostic.keyword, ""LOAD_ASSEMBLER"") | EXPECT_EQ(diagnostic.entity_identity, ""0"") | EXPECT_TRUE(diagnostic.location.file.empty()) | EXPECT_EQ(diagnostic.location.line, 0U) | EXPECT_EQ(diagnostic.message, ""Kfc times prescribed displacement produced a nonfinite row sum."") | EXPECT_EQ(load[0U], 7.0) | EXPECT_EQ(prescribed[0U], 2.0) | EXPECT_EQ(prescribed[1U], 1.0) | EXPECT_EQ(kfc.Values(), original_values) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, original_pattern.row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, original_pattern.column_indices)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/constraints/essential_constraints_test.cpp support@1-120 helper/oracle/fixture/include/static assertion 구간: MakeDofs, MakeShellSizedDofs, MakeMatrix, SequentialDense, ExpectShape tests/unit/constraints/essential_constraints_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2aa63d265a44ca55310a67dcb59609d01f78e09129c32e6b6803b57e69d43fd2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/constraints/essential_constraints_test.cpp support@215-216 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/constraints/essential_constraints_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f6c2b9c304b34fa866abe406a7be1ab65a57b15b93aee4428636ed4eaa067081 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/core/ascii_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/core/ascii_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 25872dbd7f04fbdb796adecf712db87424f628615095e50d25e86d7ff05d70f1 25872dbd7f04fbdb796adecf712db87424f628615095e50d25e86d7ff05d70f1 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/core/ascii_test.cpp Ascii.LowercasesOnlyAsciiUppercaseBytes Ascii.LowercasesOnlyAsciiUppercaseBytes; assertion 5개 tests/unit/core/ascii_test.cpp Ascii.LowercasesOnlyAsciiUppercaseBytes 유지 원문 검사 body 및 assertion 동일. 909d024cf51f4c78bfbfbc0f844a4deb4d7995a1359e245bab03859c6a3f9dde 909d024cf51f4c78bfbfbc0f844a4deb4d7995a1359e245bab03859c6a3f9dde EXPECT_EQ(fesa::AsciiLower('A'), 'a') | EXPECT_EQ(fesa::AsciiLower('Z'), 'z') | EXPECT_EQ(fesa::AsciiLower('a'), 'a') | EXPECT_EQ(fesa::AsciiLower('0'), '0') | EXPECT_EQ(fesa::AsciiLower(non_ascii), non_ascii) EXPECT_EQ(fesa::AsciiLower('A'), 'a') | EXPECT_EQ(fesa::AsciiLower('Z'), 'z') | EXPECT_EQ(fesa::AsciiLower('a'), 'a') | EXPECT_EQ(fesa::AsciiLower('0'), '0') | EXPECT_EQ(fesa::AsciiLower(non_ascii), non_ascii) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/core/ascii_test.cpp Ascii.UppercaseCanonicalizationPreservesEveryOtherByteAndSourceText Ascii.UppercaseCanonicalizationPreservesEveryOtherByteAndSourceText; assertion 4개 tests/unit/core/ascii_test.cpp Ascii.UppercaseCanonicalizationPreservesEveryOtherByteAndSourceText 유지 원문 검사 body 및 assertion 동일. cdbafc80172cdd5acbf25b80444b88d1c4f7f6a62716326cee28890c42d7bab8 cdbafc80172cdd5acbf25b80444b88d1c4f7f6a62716326cee28890c42d7bab8 "EXPECT_EQ(fesa::AsciiUppercase(source), expected) | EXPECT_EQ(source, original) | EXPECT_TRUE(fesa::AsciiUppercase("""").empty()) | EXPECT_EQ(fesa::AsciiUppercase(""Shell-01""), ""SHELL-01"")" "EXPECT_EQ(fesa::AsciiUppercase(source), expected) | EXPECT_EQ(source, original) | EXPECT_TRUE(fesa::AsciiUppercase("""").empty()) | EXPECT_EQ(fesa::AsciiUppercase(""Shell-01""), ""SHELL-01"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/core/ascii_test.cpp Ascii.ComparesNamesWithoutLocaleOrUnicodeFolding Ascii.ComparesNamesWithoutLocaleOrUnicodeFolding; assertion 3개 tests/unit/core/ascii_test.cpp Ascii.ComparesNamesWithoutLocaleOrUnicodeFolding 유지 원문 검사 body 및 assertion 동일. 3db876d5e00670ef938aa3f78a4b4841b4aa9eb02bf470d659053719c7a47c27 3db876d5e00670ef938aa3f78a4b4841b4aa9eb02bf470d659053719c7a47c27 "EXPECT_TRUE(fesa::AsciiCaseInsensitiveEquals(""Beam-1"", ""bEaM-1"")) | EXPECT_FALSE(fesa::AsciiCaseInsensitiveEquals(""Beam-1"", ""Beam-10"")) | EXPECT_FALSE( fesa::AsciiCaseInsensitiveEquals(uppercase_byte, lowercase_byte))" "EXPECT_TRUE(fesa::AsciiCaseInsensitiveEquals(""Beam-1"", ""bEaM-1"")) | EXPECT_FALSE(fesa::AsciiCaseInsensitiveEquals(""Beam-1"", ""Beam-10"")) | EXPECT_FALSE( fesa::AsciiCaseInsensitiveEquals(uppercase_byte, lowercase_byte))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/core/ascii_test.cpp Ascii.ParsesOnlyCompletePositiveBaseTenSourceLabels Ascii.ParsesOnlyCompletePositiveBaseTenSourceLabels; assertion 11개 tests/unit/core/ascii_test.cpp Ascii.ParsesOnlyCompletePositiveBaseTenSourceLabels 유지 원문 검사 body 및 assertion 동일. 5770a5761723357706fadea333c7cf6c288511a29681077cb3f914cb4a236bf4 5770a5761723357706fadea333c7cf6c288511a29681077cb3f914cb4a236bf4 "ASSERT_TRUE(one.HasValue()) | EXPECT_EQ(one.Value(), 1) | ASSERT_TRUE(leading_zeroes.HasValue()) | EXPECT_EQ(leading_zeroes.Value(), 42) | ASSERT_TRUE(maximum.HasValue()) | EXPECT_EQ(maximum.Value(), (std::numeric_limits::max)()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-source-label"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].entity_identity, invalid)" "ASSERT_TRUE(one.HasValue()) | EXPECT_EQ(one.Value(), 1) | ASSERT_TRUE(leading_zeroes.HasValue()) | EXPECT_EQ(leading_zeroes.Value(), 42) | ASSERT_TRUE(maximum.HasValue()) | EXPECT_EQ(maximum.Value(), (std::numeric_limits::max)()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-source-label"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].entity_identity, invalid)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/core/ascii_test.cpp support@1-9 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/core/ascii_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 92beb48f1d8771676e841d9c0e884cace86bb18b98dbe9a629f21fa1d9e0bc9e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/core/diagnostic_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/core/diagnostic_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 440becb7f8e8ffe6db9b32b757b08a56baea19da46808dc42c426e0f9edb14e5 440becb7f8e8ffe6db9b32b757b08a56baea19da46808dc42c426e0f9edb14e5 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/core/diagnostic_test.cpp CoreDiagnostics.DiagnosticsSortDeterministically CoreDiagnostics.DiagnosticsSortDeterministically; assertion 15개 tests/unit/core/diagnostic_test.cpp CoreDiagnostics.DiagnosticsSortDeterministically 유지 원문 검사 body 및 assertion 동일. 2f659a7cf12be1a5e3e0221806e86f389fb3992907f5bcb4d533d160bbeb90ab 2f659a7cf12be1a5e3e0221806e86f389fb3992907f5bcb4d533d160bbeb90ab "ASSERT_EQ(diagnostics.size(), 7U) | EXPECT_EQ(diagnostics[0].message, ""line"") | EXPECT_EQ(diagnostics[1].message, ""keyword"") | EXPECT_EQ(diagnostics[2].message, ""first-equal"") | EXPECT_EQ(diagnostics[3].message, ""second-equal"") | EXPECT_EQ(diagnostics[4].message, ""code-z"") | EXPECT_EQ(diagnostics[5].message, ""entity-2"") | EXPECT_EQ(diagnostics[6].message, ""file-b"") | EXPECT_EQ(exact.severity, fesa::Severity::kError) | EXPECT_EQ(exact.code, ""a"") | EXPECT_EQ(exact.location.file, std::filesystem::path{""a.inp""}) | EXPECT_EQ(exact.location.line, 3U) | EXPECT_EQ(exact.keyword, ""*NODE"") | EXPECT_EQ(exact.entity_identity, ""I.1"") | EXPECT_EQ(exact.message, ""first-equal"")" "ASSERT_EQ(diagnostics.size(), 7U) | EXPECT_EQ(diagnostics[0].message, ""line"") | EXPECT_EQ(diagnostics[1].message, ""keyword"") | EXPECT_EQ(diagnostics[2].message, ""first-equal"") | EXPECT_EQ(diagnostics[3].message, ""second-equal"") | EXPECT_EQ(diagnostics[4].message, ""code-z"") | EXPECT_EQ(diagnostics[5].message, ""entity-2"") | EXPECT_EQ(diagnostics[6].message, ""file-b"") | EXPECT_EQ(exact.severity, fesa::Severity::kError) | EXPECT_EQ(exact.code, ""a"") | EXPECT_EQ(exact.location.file, std::filesystem::path{""a.inp""}) | EXPECT_EQ(exact.location.line, 3U) | EXPECT_EQ(exact.keyword, ""*NODE"") | EXPECT_EQ(exact.entity_identity, ""I.1"") | EXPECT_EQ(exact.message, ""first-equal"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/core/diagnostic_test.cpp support@1-25 helper/oracle/fixture/include/static assertion 구간: MakeDiagnostic tests/unit/core/diagnostic_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ae3d439e5440487b75c91d95add36374b3f77363663cdc902e830a9174a669e9 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/core/source_identity_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/core/source_identity_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a6ebba2d2f9e09be684e817e41b14b6572bcce0706d5114c8c8a88f6ac145746 a6ebba2d2f9e09be684e817e41b14b6572bcce0706d5114c8c8a88f6ac145746 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/core/source_identity_test.cpp CoreDiagnostics.SourceIdentityPreservesRawIdentity CoreDiagnostics.SourceIdentityPreservesRawIdentity; assertion 9개 tests/unit/core/source_identity_test.cpp CoreDiagnostics.SourceIdentityPreservesRawIdentity 유지 원문 검사 body 및 assertion 동일. f466209fca1d6d1f9aff769f37534515999cf4a71f1da756c95e007d1a1599c3 f466209fca1d6d1f9aff769f37534515999cf4a71f1da756c95e007d1a1599c3 "EXPECT_EQ(location.file, std::filesystem::path{""models/My Beam.inp""}) | EXPECT_EQ(location.line, 27U) | EXPECT_EQ(identity.instance_name, ""Beam-Instance_A"") | EXPECT_EQ(identity.source_label, 42) | EXPECT_EQ(identity.source_label_text, ""00042"") | EXPECT_TRUE(fesa::SourceIdentityEquals(identity, identity)) | EXPECT_FALSE(fesa::SourceIdentityEquals( identity, {""beam-instance_a"", std::int64_t{42}, ""00042""})) | EXPECT_FALSE(fesa::SourceIdentityEquals( identity, {""Beam-Instance_A"", std::int64_t{43}, ""00042""})) | EXPECT_FALSE(fesa::SourceIdentityEquals( identity, {""Beam-Instance_A"", std::int64_t{42}, ""42""}))" "EXPECT_EQ(location.file, std::filesystem::path{""models/My Beam.inp""}) | EXPECT_EQ(location.line, 27U) | EXPECT_EQ(identity.instance_name, ""Beam-Instance_A"") | EXPECT_EQ(identity.source_label, 42) | EXPECT_EQ(identity.source_label_text, ""00042"") | EXPECT_TRUE(fesa::SourceIdentityEquals(identity, identity)) | EXPECT_FALSE(fesa::SourceIdentityEquals( identity, {""beam-instance_a"", std::int64_t{42}, ""00042""})) | EXPECT_FALSE(fesa::SourceIdentityEquals( identity, {""Beam-Instance_A"", std::int64_t{43}, ""00042""})) | EXPECT_FALSE(fesa::SourceIdentityEquals( identity, {""Beam-Instance_A"", std::int64_t{42}, ""42""}))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/core/source_identity_test.cpp support@1-8 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/core/source_identity_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d2c1c5608afd74a75014476a740b7734f890ded534eb9532ad90766dcc16b86a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/core/status_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/core/status_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3cae23bb04187b6d104c3575d24a87daee20f5c1779dfcfd762ef299105aea42 3cae23bb04187b6d104c3575d24a87daee20f5c1779dfcfd762ef299105aea42 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/core/status_test.cpp CoreDiagnostics.ResultOwnsCopyOnlyPayloadWithoutIntermediateCopy CoreDiagnostics.ResultOwnsCopyOnlyPayloadWithoutIntermediateCopy; assertion 6개 tests/unit/core/status_test.cpp CoreDiagnostics.ResultOwnsCopyOnlyPayloadWithoutIntermediateCopy 유지 원문 검사 body 및 assertion 동일. 4828a9334088aff80cefe803fbfa80e0e173be1980ffbf6a260696da95cf739c 4828a9334088aff80cefe803fbfa80e0e173be1980ffbf6a260696da95cf739c ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.GetStatus().IsOk()) | EXPECT_EQ(result.Value().value, 23) | EXPECT_EQ(result.Value().copies, 2) | EXPECT_EQ(source.value, 23) | EXPECT_EQ(source.copies, 0) ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.GetStatus().IsOk()) | EXPECT_EQ(result.Value().value, 23) | EXPECT_EQ(result.Value().copies, 2) | EXPECT_EQ(source.value, 23) | EXPECT_EQ(source.copies, 0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/core/status_test.cpp CoreDiagnostics.ResultTransfersOwnedPayloadDirectlyIntoValue CoreDiagnostics.ResultTransfersOwnedPayloadDirectlyIntoValue; assertion 12개 tests/unit/core/status_test.cpp CoreDiagnostics.ResultTransfersOwnedPayloadDirectlyIntoValue 유지 원문 검사 body 및 assertion 동일. d294568176ee9775e98fcb17136e14517d3e30ac69975c1655d3bf6e72237cd7 d294568176ee9775e98fcb17136e14517d3e30ac69975c1655d3bf6e72237cd7 EXPECT_EQ(source.value, 17) | EXPECT_EQ(source.copies, 0) | EXPECT_EQ(source.moves, 0) | EXPECT_EQ(from_lvalue.Value().value, 17) | EXPECT_EQ(from_lvalue.Value().copies, 1) | EXPECT_EQ(from_lvalue.Value().moves, 1) | EXPECT_EQ(from_temporary.Value().value, 29) | EXPECT_EQ(from_temporary.Value().copies, 0) | EXPECT_EQ(from_temporary.Value().moves, 1) | EXPECT_EQ(owned, nullptr) | ASSERT_NE(move_only.Value(), nullptr) | EXPECT_EQ(*move_only.Value(), 31) EXPECT_EQ(source.value, 17) | EXPECT_EQ(source.copies, 0) | EXPECT_EQ(source.moves, 0) | EXPECT_EQ(from_lvalue.Value().value, 17) | EXPECT_EQ(from_lvalue.Value().copies, 1) | EXPECT_EQ(from_lvalue.Value().moves, 1) | EXPECT_EQ(from_temporary.Value().value, 29) | EXPECT_EQ(from_temporary.Value().copies, 0) | EXPECT_EQ(from_temporary.Value().moves, 1) | EXPECT_EQ(owned, nullptr) | ASSERT_NE(move_only.Value(), nullptr) | EXPECT_EQ(*move_only.Value(), 31) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/core/status_test.cpp CoreDiagnostics.ResultEnforcesValueErrorExclusivity CoreDiagnostics.ResultEnforcesValueErrorExclusivity; assertion 21개 tests/unit/core/status_test.cpp CoreDiagnostics.ResultEnforcesValueErrorExclusivity 유지 원문 검사 body 및 assertion 동일. 9e7d9261f2c51e9a1cb0ef57442073618731b3a1867833debe5c3b9d0b064be2 9e7d9261f2c51e9a1cb0ef57442073618731b3a1867833debe5c3b9d0b064be2 "EXPECT_TRUE(ok.IsOk()) | EXPECT_FALSE(ok.Category().has_value()) | EXPECT_TRUE(ok.Diagnostics().empty()) | EXPECT_FALSE(uncategorized.IsOk()) | EXPECT_FALSE(uncategorized.Category().has_value()) | ASSERT_EQ(uncategorized.Diagnostics().size(), 1U) | EXPECT_EQ(uncategorized.Diagnostics()[0].code, ""invalid-beam-length"") | EXPECT_FALSE(categorized.IsOk()) | ASSERT_TRUE(categorized.Category().has_value()) | EXPECT_EQ(*categorized.Category(), fesa::FailureCategory::kModel) | EXPECT_TRUE(success.HasValue()) | EXPECT_TRUE(success.GetStatus().IsOk()) | EXPECT_EQ(success.Value(), ""solved"") | EXPECT_EQ(copied.Value(), ""solved"") | EXPECT_EQ(moved.Value(), ""solved"") | EXPECT_FALSE(failure.HasValue()) | EXPECT_FALSE(failure.GetStatus().IsOk()) | EXPECT_EQ(failure.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_THROW(failure.Value(), std::logic_error) | EXPECT_THROW(const_failure.Value(), std::logic_error) | EXPECT_THROW((void)fesa::Result::Failure(fesa::Status::Ok()), std::invalid_argument)" "EXPECT_TRUE(ok.IsOk()) | EXPECT_FALSE(ok.Category().has_value()) | EXPECT_TRUE(ok.Diagnostics().empty()) | EXPECT_FALSE(uncategorized.IsOk()) | EXPECT_FALSE(uncategorized.Category().has_value()) | ASSERT_EQ(uncategorized.Diagnostics().size(), 1U) | EXPECT_EQ(uncategorized.Diagnostics()[0].code, ""invalid-beam-length"") | EXPECT_FALSE(categorized.IsOk()) | ASSERT_TRUE(categorized.Category().has_value()) | EXPECT_EQ(*categorized.Category(), fesa::FailureCategory::kModel) | EXPECT_TRUE(success.HasValue()) | EXPECT_TRUE(success.GetStatus().IsOk()) | EXPECT_EQ(success.Value(), ""solved"") | EXPECT_EQ(copied.Value(), ""solved"") | EXPECT_EQ(moved.Value(), ""solved"") | EXPECT_FALSE(failure.HasValue()) | EXPECT_FALSE(failure.GetStatus().IsOk()) | EXPECT_EQ(failure.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_THROW(failure.Value(), std::logic_error) | EXPECT_THROW(const_failure.Value(), std::logic_error) | EXPECT_THROW((void)fesa::Result::Failure(fesa::Status::Ok()), std::invalid_argument)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/core/status_test.cpp support@1-47 helper/oracle/fixture/include/static assertion 구간: ModelDiagnostic, CopyOnlyPayload, TransferPayload tests/unit/core/status_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f8ab40e99b7478b5f7d94eb35ac9f7a8cf6b0b82a9b442d9c597948dd39ac634 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/element_capabilities_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/elements/element_capabilities_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bce1a8538bc2a53ac05e99e96e19e1d25a556eeea42285230ac6c5cbe7c9060f bce1a8538bc2a53ac05e99e96e19e1d25a556eeea42285230ac6c5cbe7c9060f 해당 없음 해당 없음 유지-대체동등성미입증 R-CAPABILITY test-cleanup-review.md#r-capability +Refactor tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.ShellTrialPreservesCompleteDirectionalResponseAndFailure ElementCapabilities.ShellTrialPreservesCompleteDirectionalResponseAndFailure; assertion 8개 tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.ShellTrialPreservesCompleteDirectionalResponseAndFailure 유지 원문 검사 body 및 assertion 동일. 5921a5f48213445eb066af193c1127df7c941a08b7a4c1d624da2c958eb39937 5921a5f48213445eb066af193c1127df7c941a08b7a4c1d624da2c958eb39937 ASSERT_TRUE(made.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(via.HasValue()) | EXPECT_EQ(capability->DofLayout().node_indices, ShellLayout().node_indices) | EXPECT_EQ(capability->DofLayout().components_per_node, ShellLayout().components_per_node) | ASSERT_FALSE(failed_direct.HasValue()) | ASSERT_FALSE(failed_via.HasValue()) | ASSERT_TRUE(again.HasValue()) ASSERT_TRUE(made.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(via.HasValue()) | EXPECT_EQ(capability->DofLayout().node_indices, ShellLayout().node_indices) | EXPECT_EQ(capability->DofLayout().components_per_node, ShellLayout().components_per_node) | ASSERT_FALSE(failed_direct.HasValue()) | ASSERT_FALSE(failed_via.HasValue()) | ASSERT_TRUE(again.HasValue()) 유지-대체동등성미입증 R-CAPABILITY test-cleanup-review.md#r-capability +Refactor tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.ShellExternalConstraintRetainsEveryVariation ElementCapabilities.ShellExternalConstraintRetainsEveryVariation; assertion 5개 tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.ShellExternalConstraintRetainsEveryVariation 유지 원문 검사 body 및 assertion 동일. 8eab8e48a1d16b1f03dc2500d08d79e3737c50fe9b388563300f16ffd68d4916 8eab8e48a1d16b1f03dc2500d08d79e3737c50fe9b388563300f16ffd68d4916 ASSERT_TRUE(kernel.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(via.HasValue()) | ASSERT_FALSE(failed_direct.HasValue()) | ASSERT_FALSE(failed_via.HasValue()) ASSERT_TRUE(kernel.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(via.HasValue()) | ASSERT_FALSE(failed_direct.HasValue()) | ASSERT_FALSE(failed_via.HasValue()) 유지-대체동등성미입증 R-CAPABILITY test-cleanup-review.md#r-capability +Refactor tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.ShellInertiaRetainsCompletePhysicalResponse ElementCapabilities.ShellInertiaRetainsCompletePhysicalResponse; assertion 5개 tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.ShellInertiaRetainsCompletePhysicalResponse 유지 원문 검사 body 및 assertion 동일. 893cd00cd718f011c281cd205b403e4b821033b94315a86fb0382a459c6ad4f4 893cd00cd718f011c281cd205b403e4b821033b94315a86fb0382a459c6ad4f4 ASSERT_TRUE(kernel.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(via.HasValue()) | ASSERT_FALSE(failed_direct.HasValue()) | ASSERT_FALSE(failed_via.HasValue()) ASSERT_TRUE(kernel.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(via.HasValue()) | ASSERT_FALSE(failed_direct.HasValue()) | ASSERT_FALSE(failed_via.HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.ThermalPreservesStationLayoutIntervalsAndAllTraces ElementCapabilities.ThermalPreservesStationLayoutIntervalsAndAllTraces; assertion 13개 tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.ThermalPreservesStationLayoutIntervalsAndAllTraces 유지 원문 검사 body 및 assertion 동일. 93d27fb3103b3a58f40ef9c04936942073b555855d614faebb71f70aabb4c8cd 93d27fb3103b3a58f40ef9c04936942073b555855d614faebb71f70aabb4c8cd "ASSERT_TRUE(kernel.HasValue()) | EXPECT_EQ(capability->DofLayout().source_id.source_label_text, ""0019"") | EXPECT_EQ(capability->DofLayout().node_indices, kernel.Value().NodeIndices()) | EXPECT_EQ(static_cast(capability->DofLayout().components[i]), 11 + i) | EXPECT_EQ(&capability->Conductivity(), &kernel.Value().Conductivity()) | EXPECT_EQ(&capability->Capacity(), &kernel.Value().Capacity()) | EXPECT_EQ(&capability->ConductivityError(), &kernel.Value().ConductivityError()) | EXPECT_EQ(&capability->CapacityError(), &kernel.Value().CapacityError()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(via.HasValue()) | EXPECT_EQ(temperature, saved) | ASSERT_FALSE(failed_direct.HasValue()) | ASSERT_FALSE(failed_via.HasValue())" "ASSERT_TRUE(kernel.HasValue()) | EXPECT_EQ(capability->DofLayout().source_id.source_label_text, ""0019"") | EXPECT_EQ(capability->DofLayout().node_indices, kernel.Value().NodeIndices()) | EXPECT_EQ(static_cast(capability->DofLayout().components[i]), 11 + i) | EXPECT_EQ(&capability->Conductivity(), &kernel.Value().Conductivity()) | EXPECT_EQ(&capability->Capacity(), &kernel.Value().Capacity()) | EXPECT_EQ(&capability->ConductivityError(), &kernel.Value().ConductivityError()) | EXPECT_EQ(&capability->CapacityError(), &kernel.Value().CapacityError()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(via.HasValue()) | EXPECT_EQ(temperature, saved) | ASSERT_FALSE(failed_direct.HasValue()) | ASSERT_FALSE(failed_via.HasValue())" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.SolidRetainsLinearNonlinearAndPairedResponses ElementCapabilities.SolidRetainsLinearNonlinearAndPairedResponses; assertion 23개 tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.SolidRetainsLinearNonlinearAndPairedResponses 유지 원문 검사 body 및 assertion 동일. c3e08c5ffe1005723278871e714cc780f31a1b301606286a68ba4845994f0d76 c3e08c5ffe1005723278871e714cc780f31a1b301606286a68ba4845994f0d76 "ASSERT_TRUE(made.HasValue()) | EXPECT_EQ(&base.DofLayout(), &kernel.DofLayout()) | ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(via_linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(via_nonlinear.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(via.HasValue()) | ASSERT_TRUE(k.HasValue()) | ASSERT_TRUE(via_k.HasValue()) | ASSERT_TRUE(m.HasValue()) | ASSERT_TRUE(via_m.HasValue()) | ASSERT_TRUE(recovered.HasValue()) | ASSERT_TRUE(direct_recovered.HasValue()) | EXPECT_EQ(recovered.Value().source_id.source_label_text, ""0042"") | ASSERT_EQ(rows.rows.size(), direct_rows.rows.size()) | EXPECT_EQ(rows.rows[i].element, direct_rows.rows[i].element) | EXPECT_EQ(rows.rows[i].integration_point, direct_rows.rows[i].integration_point) | ASSERT_FALSE(failed.HasValue()) | ASSERT_FALSE(direct_failed.HasValue()) | ASSERT_FALSE(paired_failed.HasValue()) | ASSERT_FALSE(direct_paired_failed.HasValue()) | ASSERT_TRUE(again.HasValue())" "ASSERT_TRUE(made.HasValue()) | EXPECT_EQ(&base.DofLayout(), &kernel.DofLayout()) | ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(via_linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(via_nonlinear.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(via.HasValue()) | ASSERT_TRUE(k.HasValue()) | ASSERT_TRUE(via_k.HasValue()) | ASSERT_TRUE(m.HasValue()) | ASSERT_TRUE(via_m.HasValue()) | ASSERT_TRUE(recovered.HasValue()) | ASSERT_TRUE(direct_recovered.HasValue()) | EXPECT_EQ(recovered.Value().source_id.source_label_text, ""0042"") | ASSERT_EQ(rows.rows.size(), direct_rows.rows.size()) | EXPECT_EQ(rows.rows[i].element, direct_rows.rows[i].element) | EXPECT_EQ(rows.rows[i].integration_point, direct_rows.rows[i].integration_point) | ASSERT_FALSE(failed.HasValue()) | ASSERT_FALSE(direct_failed.HasValue()) | ASSERT_FALSE(paired_failed.HasValue()) | ASSERT_FALSE(direct_paired_failed.HasValue()) | ASSERT_TRUE(again.HasValue())" 유지-대체동등성미입증 R-CAPABILITY test-cleanup-review.md#r-capability +Refactor tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.BoundViewsSurviveOwnerVectorMovesAndRejectOtherFamilies ElementCapabilities.BoundViewsSurviveOwnerVectorMovesAndRejectOtherFamilies; assertion 13개 tests/unit/elements/element_capabilities_test.cpp ElementCapabilities.BoundViewsSurviveOwnerVectorMovesAndRejectOtherFamilies 유지 원문 검사 body 및 assertion 동일. 9de22e101a2f3c1630726b97a0fd914ab5df0069096fe89dc00e3c8941fc6f97 9de22e101a2f3c1630726b97a0fd914ab5df0069096fe89dc00e3c8941fc6f97 ASSERT_TRUE(made.HasValue()) | ASSERT_NE(capability, nullptr) | EXPECT_EQ(factory.BindShellReference(*original), nullptr) | EXPECT_EQ(transferred[0].get(), original) | EXPECT_EQ(&capability->DofLayout(), &original->DofLayout()) | ASSERT_TRUE(evaluated.HasValue()) | ASSERT_TRUE(recovered.HasValue()) | ASSERT_TRUE(shell.HasValue()) | EXPECT_EQ(factory.BindSolidTrial(shell.Value()), nullptr) | ASSERT_NE(reference, nullptr) | EXPECT_EQ(&reference->DofLayout(), &shell.Value().DofLayout()) | ASSERT_TRUE(direct_k.HasValue()) | ASSERT_TRUE(via_k.HasValue()) ASSERT_TRUE(made.HasValue()) | ASSERT_NE(capability, nullptr) | EXPECT_EQ(factory.BindShellReference(*original), nullptr) | EXPECT_EQ(transferred[0].get(), original) | EXPECT_EQ(&capability->DofLayout(), &original->DofLayout()) | ASSERT_TRUE(evaluated.HasValue()) | ASSERT_TRUE(recovered.HasValue()) | ASSERT_TRUE(shell.HasValue()) | EXPECT_EQ(factory.BindSolidTrial(shell.Value()), nullptr) | ASSERT_NE(reference, nullptr) | EXPECT_EQ(&reference->DofLayout(), &shell.Value().DofLayout()) | ASSERT_TRUE(direct_k.HasValue()) | ASSERT_TRUE(via_k.HasValue()) 유지-대체동등성미입증 R-CAPABILITY test-cleanup-review.md#r-capability +Refactor tests/unit/elements/element_capabilities_test.cpp support@1-106 helper/oracle/fixture/include/static assertion 구간: Same, ShellLayout, ShellInput, Pointers, Trial tests/unit/elements/element_capabilities_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 64cca7449df949df39d3843edb415e61ee0603867af7f27f6c376ccf8888b378 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-CAPABILITY test-cleanup-review.md#r-capability +Refactor tests/unit/elements/element_capabilities_test.cpp support@268-296 helper/oracle/fixture/include/static assertion 구간: Solid, Same tests/unit/elements/element_capabilities_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 959366a48c981e25617d2bfe8cfd588300b4c69b474fa3399a15613430e71d93 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-CAPABILITY test-cleanup-review.md#r-capability +Refactor tests/unit/elements/element_capabilities_test.cpp support@412-413 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/element_capabilities_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-CAPABILITY test-cleanup-review.md#r-capability +Refactor tests/unit/elements/element_factory_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/elements/element_factory_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 39cdff0a92b9a86f0efe54457c47f57bb8fa0a48887eae940198046c8f5249f0 39cdff0a92b9a86f0efe54457c47f57bb8fa0a48887eae940198046c8f5249f0 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/element_factory_test.cpp ElementFactory.CreatesBeamWithStableLayoutStiffnessAndRecovery ElementFactory.CreatesBeamWithStableLayoutStiffnessAndRecovery; assertion 21개 tests/unit/elements/element_factory_test.cpp ElementFactory.CreatesBeamWithStableLayoutStiffnessAndRecovery 유지 원문 검사 body 및 assertion 동일. 6ea821d717c92f195c2f3d8cac87a3f58f9db2377459cd40674d113374366e34 6ea821d717c92f195c2f3d8cac87a3f58f9db2377459cd40674d113374366e34 "EXPECT_NE(probe, nullptr) | EXPECT_TRUE(destroyed) | ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(candidate.Value(), nullptr) | EXPECT_EQ(layout.source_id.source_label_text, ""7"") | EXPECT_EQ(layout.node_indices, (std::vector{0U, 1U})) | EXPECT_EQ(layout.components_per_node, (std::vector{ fesa::DofComponent::kUx, fesa::DofComponent::kUy, fesa::DofComponent::kUz, fesa::DofComponent::kUrx, fesa::DofComponent::kUry, fesa::DofComponent::kUrz})) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_EQ(stiffness.Value().layout.node_indices, layout.node_indices) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_id.source_label_text, ""7"") | ASSERT_TRUE(std::holds_alternative( result.Value().payload)) | ASSERT_EQ(rows.endpoint_rows.size(), 2U) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[0U].end_action[0U], -10.0) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[1U].end_action[0U], 10.0) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[0U].section_resultant[0U], 10.0) | EXPECT_EQ(rows.endpoint_rows[0U].node.source_label_text, ""1"") | EXPECT_EQ(rows.endpoint_rows[1U].node.source_label_text, ""2"") | EXPECT_EQ(rows.gauss_rows.size(), 2U) | EXPECT_EQ(rows.stress_rows.size(), 2U)" "EXPECT_NE(probe, nullptr) | EXPECT_TRUE(destroyed) | ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(candidate.Value(), nullptr) | EXPECT_EQ(layout.source_id.source_label_text, ""7"") | EXPECT_EQ(layout.node_indices, (std::vector{0U, 1U})) | EXPECT_EQ(layout.components_per_node, (std::vector{ fesa::DofComponent::kUx, fesa::DofComponent::kUy, fesa::DofComponent::kUz, fesa::DofComponent::kUrx, fesa::DofComponent::kUry, fesa::DofComponent::kUrz})) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_EQ(stiffness.Value().layout.node_indices, layout.node_indices) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_id.source_label_text, ""7"") | ASSERT_TRUE(std::holds_alternative( result.Value().payload)) | ASSERT_EQ(rows.endpoint_rows.size(), 2U) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[0U].end_action[0U], -10.0) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[1U].end_action[0U], 10.0) | EXPECT_DOUBLE_EQ(rows.endpoint_rows[0U].section_resultant[0U], 10.0) | EXPECT_EQ(rows.endpoint_rows[0U].node.source_label_text, ""1"") | EXPECT_EQ(rows.endpoint_rows[1U].node.source_label_text, ""2"") | EXPECT_EQ(rows.gauss_rows.size(), 2U) | EXPECT_EQ(rows.stress_rows.size(), 2U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/element_factory_test.cpp ElementFactory.CreatesMitc4WithStableLayoutStiffnessAndRecovery ElementFactory.CreatesMitc4WithStableLayoutStiffnessAndRecovery; assertion 15개 tests/unit/elements/element_factory_test.cpp ElementFactory.CreatesMitc4WithStableLayoutStiffnessAndRecovery 유지 원문 검사 body 및 assertion 동일. 998ad7873f34e6ae9b95cc403602d8c995903164d6857c4952be354731aa6645 998ad7873f34e6ae9b95cc403602d8c995903164d6857c4952be354731aa6645 ASSERT_EQ(domain.Elements().Size(), 2U) | ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(candidate.Value(), nullptr) | EXPECT_EQ(element->DofLayout().node_indices, (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(element->DofLayout().components_per_node.size(), 6U) | ASSERT_TRUE(stiffness.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(direct_stiffness.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(std::holds_alternative( result.Value().payload)) | ASSERT_EQ(rows.rows.size(), 4U) | EXPECT_DOUBLE_EQ(rows.physical_strain_energy, 0.0) | EXPECT_EQ(rows.rows[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(rows.rows[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(row.element, fesa::EntityIndex{1U}) ASSERT_EQ(domain.Elements().Size(), 2U) | ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(candidate.Value(), nullptr) | EXPECT_EQ(element->DofLayout().node_indices, (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(element->DofLayout().components_per_node.size(), 6U) | ASSERT_TRUE(stiffness.HasValue()) | ASSERT_TRUE(direct.HasValue()) | ASSERT_TRUE(direct_stiffness.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_TRUE(std::holds_alternative( result.Value().payload)) | ASSERT_EQ(rows.rows.size(), 4U) | EXPECT_DOUBLE_EQ(rows.physical_strain_energy, 0.0) | EXPECT_EQ(rows.rows[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(rows.rows[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(row.element, fesa::EntityIndex{1U}) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/element_factory_test.cpp ElementFactory.OwnerBuildsNonOwningViewInStableElementOrder ElementFactory.OwnerBuildsNonOwningViewInStableElementOrder; assertion 7개 tests/unit/elements/element_factory_test.cpp ElementFactory.OwnerBuildsNonOwningViewInStableElementOrder 유지 원문 검사 body 및 assertion 동일. 11cc51a03beb75fe145b0865b12fb782a7bea43f352e46f4c198462f397e1196 11cc51a03beb75fe145b0865b12fb782a7bea43f352e46f4c198462f397e1196 "ASSERT_TRUE(beam.HasValue()) | ASSERT_TRUE(shell.HasValue()) | ASSERT_EQ(view.size(), 2U) | EXPECT_EQ(&view[0U].get(), owner[0U].get()) | EXPECT_EQ(&view[1U].get(), owner[1U].get()) | EXPECT_EQ(view[0U].get().DofLayout().source_id.source_label_text, ""7"") | EXPECT_EQ(view[1U].get().DofLayout().source_id.source_label_text, ""9"")" "ASSERT_TRUE(beam.HasValue()) | ASSERT_TRUE(shell.HasValue()) | ASSERT_EQ(view.size(), 2U) | EXPECT_EQ(&view[0U].get(), owner[0U].get()) | EXPECT_EQ(&view[1U].get(), owner[1U].get()) | EXPECT_EQ(view[0U].get().DofLayout().source_id.source_label_text, ""7"") | EXPECT_EQ(view[1U].get().DofLayout().source_id.source_label_text, ""9"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/element_factory_test.cpp ElementFactory.RejectsUnknownAndIncompatibleDefinitions ElementFactory.RejectsUnknownAndIncompatibleDefinitions; assertion 1개 tests/unit/elements/element_factory_test.cpp ElementFactory.RejectsUnknownAndIncompatibleDefinitions 유지 원문 검사 body 및 assertion 동일. 0e0b2765c7cebcbf59f6649a659226c9e963c37cf207db198ee2dd0a7a23f2c8 0e0b2765c7cebcbf59f6649a659226c9e963c37cf207db198ee2dd0a7a23f2c8 "EXPECT_EQ(missing_frame_result.GetStatus().Diagnostics()[0U].code, ""missing-shell-frame"")" "EXPECT_EQ(missing_frame_result.GetStatus().Diagnostics()[0U].code, ""missing-shell-frame"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/element_factory_test.cpp ElementFactory.SolidBindingPreservesThreeComponentsAndReferenceMass ElementFactory.SolidBindingPreservesThreeComponentsAndReferenceMass; assertion 15개 tests/unit/elements/element_factory_test.cpp ElementFactory.SolidBindingPreservesThreeComponentsAndReferenceMass 유지 원문 검사 body 및 assertion 동일. e0459ed0666964dd9f2f6f40d000d99842fe6e79acb14fe683fed56000f054f2 e0459ed0666964dd9f2f6f40d000d99842fe6e79acb14fe683fed56000f054f2 ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(solid, nullptr) | EXPECT_EQ(solid->DofLayout().source_id.source_label, 99) | EXPECT_EQ(solid->DofLayout().components_per_node, (std::vector{fesa::DofComponent::kUx, fesa::DofComponent::kUy, fesa::DofComponent::kUz})) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_EQ(stiffness.Value().values.Rows(), 24U) | ASSERT_TRUE(mass.HasValue()) | ASSERT_EQ(mass.Value().values.Rows(), 24U) | ASSERT_EQ(mass.Value().values.Columns(), 24U) | EXPECT_NEAR(total_mass, 2.0, 1.0e-13) | EXPECT_NEAR(mass.Value().values(row, column), 0.25, 1.0e-15) | EXPECT_DOUBLE_EQ(mass.Value().values(row, column), 0.0) | ASSERT_TRUE(response.HasValue()) | EXPECT_EQ(response.Value().points[point].element, 0U) | EXPECT_EQ(response.Value().points[point].integration_point, point + 1U) ASSERT_TRUE(candidate.HasValue()) | ASSERT_NE(solid, nullptr) | EXPECT_EQ(solid->DofLayout().source_id.source_label, 99) | EXPECT_EQ(solid->DofLayout().components_per_node, (std::vector{fesa::DofComponent::kUx, fesa::DofComponent::kUy, fesa::DofComponent::kUz})) | ASSERT_TRUE(stiffness.HasValue()) | EXPECT_EQ(stiffness.Value().values.Rows(), 24U) | ASSERT_TRUE(mass.HasValue()) | ASSERT_EQ(mass.Value().values.Rows(), 24U) | ASSERT_EQ(mass.Value().values.Columns(), 24U) | EXPECT_NEAR(total_mass, 2.0, 1.0e-13) | EXPECT_NEAR(mass.Value().values(row, column), 0.25, 1.0e-15) | EXPECT_DOUBLE_EQ(mass.Value().values(row, column), 0.0) | ASSERT_TRUE(response.HasValue()) | EXPECT_EQ(response.Value().points[point].element, 0U) | EXPECT_EQ(response.Value().points[point].integration_point, point + 1U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/element_factory_test.cpp ElementFactory.SolidStaticBindingKeepsAbsentDensityAndRejectsForeignOwner ElementFactory.SolidStaticBindingKeepsAbsentDensityAndRejectsForeignOwner; assertion 6개 tests/unit/elements/element_factory_test.cpp ElementFactory.SolidStaticBindingKeepsAbsentDensityAndRejectsForeignOwner 유지 원문 검사 body 및 assertion 동일. 67e0aa39b78dbefe0e852900de54f14318d5ae806e09ab40348a8798d246bd3f 67e0aa39b78dbefe0e852900de54f14318d5ae806e09ab40348a8798d246bd3f "ASSERT_TRUE(candidate.HasValue()) | EXPECT_TRUE(candidate.Value()->ComputeStiffness().HasValue()) | ASSERT_NE(solid, nullptr) | EXPECT_FALSE(solid->ComputeMass().HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""invalid-element-definition"")" "ASSERT_TRUE(candidate.HasValue()) | EXPECT_TRUE(candidate.Value()->ComputeStiffness().HasValue()) | ASSERT_NE(solid, nullptr) | EXPECT_FALSE(solid->ComputeMass().HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].code, ""invalid-element-definition"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/element_factory_test.cpp ElementFactory.SolidBindingRejectsReferenceInversionWithSourceContext ElementFactory.SolidBindingRejectsReferenceInversionWithSourceContext; assertion 3개 tests/unit/elements/element_factory_test.cpp ElementFactory.SolidBindingRejectsReferenceInversionWithSourceContext 유지 원문 검사 body 및 assertion 동일. ae4abe144881d88e3568e44f6d0bd4559ad3f9fdb401f326a722bbce37b492e7 ae4abe144881d88e3568e44f6d0bd4559ad3f9fdb401f326a722bbce37b492e7 "ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].entity_identity, ""Solid-1:99"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].location.line, 12U)" "ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].entity_identity, ""Solid-1:99"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0U].location.line, 12U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/element_factory_test.cpp support@1-203 helper/oracle/fixture/include/static assertion 구간: ShellDefinition, MakeDomain, if, SolidDefinition, ExpectSameMatrix, ExpectModelFailure, UnknownElementDefinition, DestructionProbeElement tests/unit/elements/element_factory_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5df55285ae0fae1c4f738f882bddf024296bcd204b785093108491fe34daed7d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/euler_beam_3d_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 11개 tests/unit/elements/euler_beam_3d_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 36b1305028805eacc62bf2e85b8abdf3512eb322f1a41429062b810365d79c0f 36b1305028805eacc62bf2e85b8abdf3512eb322f1a41429062b810365d79c0f 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.HermiteAndBMatrixMatchReviewedSigns EulerBeam3D.HermiteAndBMatrixMatchReviewedSigns; assertion 8개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.HermiteAndBMatrixMatchReviewedSigns 유지 원문 검사 body 및 assertion 동일. 72cf906f5dc17ad6e999e6805a6067f89c06a80fc3bb6982948a7ea36cfee95d 72cf906f5dc17ad6e999e6805a6067f89c06a80fc3bb6982948a7ea36cfee95d EXPECT_NEAR(recovery.gauss_generalized_strains[point][0U], axial_strain, 1.0e-14) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][1U], twist, 1.0e-14) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][2U], -curvature(w, x), 1.0e-13) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][3U], curvature(v, x), 1.0e-13) | EXPECT_NEAR(recovery.endpoint_section_resultants[0U][2U], material.youngs_modulus * section.i11 * -curvature(w, 0.0), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[1U][2U], material.youngs_modulus * section.i11 * -curvature(w, length), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[0U][3U], material.youngs_modulus * section.i22 * curvature(v, 0.0), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[1U][3U], material.youngs_modulus * section.i22 * curvature(v, length), 1.0e-5) EXPECT_NEAR(recovery.gauss_generalized_strains[point][0U], axial_strain, 1.0e-14) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][1U], twist, 1.0e-14) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][2U], -curvature(w, x), 1.0e-13) | EXPECT_NEAR(recovery.gauss_generalized_strains[point][3U], curvature(v, x), 1.0e-13) | EXPECT_NEAR(recovery.endpoint_section_resultants[0U][2U], material.youngs_modulus * section.i11 * -curvature(w, 0.0), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[1U][2U], material.youngs_modulus * section.i11 * -curvature(w, length), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[0U][3U], material.youngs_modulus * section.i22 * curvature(v, 0.0), 1.0e-5) | EXPECT_NEAR(recovery.endpoint_section_resultants[1U][3U], material.youngs_modulus * section.i22 * curvature(v, length), 1.0e-5) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.TwoPointGaussMatchesClosedStiffness EulerBeam3D.TwoPointGaussMatchesClosedStiffness; assertion 2개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.TwoPointGaussMatchesClosedStiffness 유지 원문 검사 body 및 assertion 동일. 5051a070e070c7eae4c852c1ea6f81abc26e94829ee91053d119f37018340643 5051a070e070c7eae4c852c1ea6f81abc26e94829ee91053d119f37018340643 EXPECT_LE(NormalizedMatrixError(actual, closed), kMatrixTolerance) | EXPECT_LE(NormalizedMatrixError(actual, transpose), kMatrixTolerance) EXPECT_LE(NormalizedMatrixError(actual, closed), kMatrixTolerance) | EXPECT_LE(NormalizedMatrixError(actual, transpose), kMatrixTolerance) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.HasSixRigidModesRankSixAndPositiveDeformationEnergy EulerBeam3D.HasSixRigidModesRankSixAndPositiveDeformationEnergy; assertion 4개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.HasSixRigidModesRankSixAndPositiveDeformationEnergy 유지 원문 검사 body 및 assertion 동일. 516ae9c2a58b6b19177233b4b31579a5096c950576c35ec6af2ad868dc41b63b 516ae9c2a58b6b19177233b4b31579a5096c950576c35ec6af2ad868dc41b63b EXPECT_LE(normalizedResidual, kRigidTolerance) | EXPECT_EQ(positive_count, 6) | EXPECT_GE(value, -kRigidTolerance * maximum_singular_value) | EXPECT_GT(QuadraticEnergy(stiffness, deformation), 0.0) EXPECT_LE(normalizedResidual, kRigidTolerance) | EXPECT_EQ(positive_count, 6) | EXPECT_GE(value, -kRigidTolerance * maximum_singular_value) | EXPECT_GT(QuadraticEnergy(stiffness, deformation), 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RotatedTransformPreservesWorkAndEnergy EulerBeam3D.RotatedTransformPreservesWorkAndEnergy; assertion 4개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RotatedTransformPreservesWorkAndEnergy 유지 원문 검사 body 및 assertion 동일. bcead48fa3010457278ea1a7c367260ca6fb9d4e01d8f58374fcfeafbd0c653d bcead48fa3010457278ea1a7c367260ca6fb9d4e01d8f58374fcfeafbd0c653d EXPECT_NEAR(dot, row == column ? 1.0 : 0.0, 1.0e-14) | EXPECT_NEAR(Determinant(rotation), 1.0, 1.0e-14) | EXPECT_LE(NormalizedMatrixError(global, expected_global), kMatrixTolerance) | EXPECT_NEAR(recovery.gauss_generalized_strains[0U][0U], (local_displacement[6U] - local_displacement[0U]) / 3.0, 1.0e-14) EXPECT_NEAR(dot, row == column ? 1.0 : 0.0, 1.0e-14) | EXPECT_NEAR(Determinant(rotation), 1.0, 1.0e-14) | EXPECT_LE(NormalizedMatrixError(global, expected_global), kMatrixTolerance) | EXPECT_NEAR(recovery.gauss_generalized_strains[0U][0U], (local_displacement[6U] - local_displacement[0U]) / 3.0, 1.0e-14) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.PreservesExactRotatedResultsAcrossVector3Migration EulerBeam3D.PreservesExactRotatedResultsAcrossVector3Migration; assertion 11개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.PreservesExactRotatedResultsAcrossVector3Migration 유지 원문 검사 body 및 assertion 동일. cf0127ac571a9fbf42f03f5ca9df5cb1211781ca31220dd266c7494bd465005b cf0127ac571a9fbf42f03f5ca9df5cb1211781ca31220dd266c7494bd465005b EXPECT_DOUBLE_EQ(delta.Norm(), 3.0) | EXPECT_DOUBLE_EQ(global(0U, 0U), 0x1.65f135da12f68p+28) | EXPECT_DOUBLE_EQ(global(0U, 1U), 0x1.6261c084bda12p+28) | EXPECT_DOUBLE_EQ(global(0U, 2U), 0x1.630ca684bda13p+27) | EXPECT_DOUBLE_EQ(global(4U, 4U), 0x1.068e359b59b58p+22) | EXPECT_DOUBLE_EQ(global(5U, 11U), 0x1.2d14a7ee7ee7bp+22) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][0U], 0x1.1111111111110p-5) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][1U], 0x1.1111111111111p-5) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][2U], -0x1.382425a7d2473p-6) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][3U], -0x1.a9389137b051dp-6) | EXPECT_DOUBLE_EQ(recovery.endpoint_section_resultants[1U][2U], 0x1.525c94a87359fp+17) EXPECT_DOUBLE_EQ(delta.Norm(), 3.0) | EXPECT_DOUBLE_EQ(global(0U, 0U), 0x1.65f135da12f68p+28) | EXPECT_DOUBLE_EQ(global(0U, 1U), 0x1.6261c084bda12p+28) | EXPECT_DOUBLE_EQ(global(0U, 2U), 0x1.630ca684bda13p+27) | EXPECT_DOUBLE_EQ(global(4U, 4U), 0x1.068e359b59b58p+22) | EXPECT_DOUBLE_EQ(global(5U, 11U), 0x1.2d14a7ee7ee7bp+22) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][0U], 0x1.1111111111110p-5) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][1U], 0x1.1111111111111p-5) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][2U], -0x1.382425a7d2473p-6) | EXPECT_DOUBLE_EQ(recovery.gauss_generalized_strains[0U][3U], -0x1.a9389137b051dp-6) | EXPECT_DOUBLE_EQ(recovery.endpoint_section_resultants[1U][2U], 0x1.525c94a87359fp+17) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.ConstantLineLoadMatchesAllSignedComponents EulerBeam3D.ConstantLineLoadMatchesAllSignedComponents; assertion 5개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.ConstantLineLoadMatchesAllSignedComponents 유지 원문 검사 body 및 assertion 동일. 6d608896998acfb9e31d28e2a9700cc5bfa9f3f273b5de08f201f18d6358f4f5 6d608896998acfb9e31d28e2a9700cc5bfa9f3f273b5de08f201f18d6358f4f5 ASSERT_EQ(equivalent.Size(), expected.size()) | EXPECT_GT(relative_errors[0U], relative_errors[1U]) | EXPECT_GT(relative_errors[1U], relative_errors[2U]) | EXPECT_NEAR( std::log(relative_errors[0U] / relative_errors[1U]) / std::log(2.0), 4.0, 1.0e-8) | EXPECT_NEAR( std::log(relative_errors[1U] / relative_errors[2U]) / std::log(2.0), 4.0, 1.0e-8) ASSERT_EQ(equivalent.Size(), expected.size()) | EXPECT_GT(relative_errors[0U], relative_errors[1U]) | EXPECT_GT(relative_errors[1U], relative_errors[2U]) | EXPECT_NEAR( std::log(relative_errors[0U] / relative_errors[1U]) / std::log(2.0), 4.0, 1.0e-8) | EXPECT_NEAR( std::log(relative_errors[1U] / relative_errors[2U]) / std::log(2.0), 4.0, 1.0e-8) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.AnalyticalAxialTorsionAndTwoPlaneBendingRecover EulerBeam3D.AnalyticalAxialTorsionAndTwoPlaneBendingRecover; assertion 2개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.AnalyticalAxialTorsionAndTwoPlaneBendingRecover 유지 원문 검사 body 및 assertion 동일. ec321db32dec17dd4598bb2af11029172b73838ff38e434a120520c4c8a66136 ec321db32dec17dd4598bb2af11029172b73838ff38e434a120520c4c8a66136 EXPECT_NEAR(local_yrecovery.endpoint_section_resultants[1U][3U], 0.0, 1.0e-8) | EXPECT_NEAR(local_zrecovery.endpoint_section_resultants[1U][2U], 0.0, 1.0e-8) EXPECT_NEAR(local_yrecovery.endpoint_section_resultants[1U][3U], 0.0, 1.0e-8) | EXPECT_NEAR(local_zrecovery.endpoint_section_resultants[1U][2U], 0.0, 1.0e-8) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RejectsInvalidGeometryAndProperties EulerBeam3D.RejectsInvalidGeometryAndProperties; assertion 5개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RejectsInvalidGeometryAndProperties 유지 원문 검사 body 및 assertion 동일. 84aca3252ee968479adb3ff42de486fae5c3eb0ecfc270ead2f5b7272471a512 84aca3252ee968479adb3ff42de486fae5c3eb0ecfc270ead2f5b7272471a512 EXPECT_EQ(result.GetStatus().Category(), FailureCategory::kModel) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, code) | EXPECT_TRUE(EulerBeam3D::Create(scaled_first, above_threshold, valid_section, valid_material) .HasValue()) | EXPECT_TRUE( EulerBeam3D::Create(origin, unit_x, guide_above_threshold, valid_material) .HasValue()) EXPECT_EQ(result.GetStatus().Category(), FailureCategory::kModel) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, code) | EXPECT_TRUE(EulerBeam3D::Create(scaled_first, above_threshold, valid_section, valid_material) .HasValue()) | EXPECT_TRUE( EulerBeam3D::Create(origin, unit_x, guide_above_threshold, valid_material) .HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RecoversSectionPointAndDefaultCentroidS11 EulerBeam3D.RecoversSectionPointAndDefaultCentroidS11; assertion 11개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.RecoversSectionPointAndDefaultCentroidS11 유지 원문 검사 body 및 assertion 동일. 22288ebdd3e81a891dc0f67b7ce14995403506506faa4cc045838d070fdd22d2 22288ebdd3e81a891dc0f67b7ce14995403506506faa4cc045838d070fdd22d2 "ASSERT_EQ(recovery.stress_points.size(), 4U) | EXPECT_EQ(stress.gauss_point, static_cast(gauss_point + 1U)) | EXPECT_EQ(stress.section_point, point + 1U) | EXPECT_DOUBLE_EQ(stress.x1, x1) | EXPECT_DOUBLE_EQ(stress.x2, x2) | ASSERT_EQ(default_recovery.stress_points.size(), 2U) | EXPECT_EQ(stress.gauss_point, static_cast(gauss_point + 1U)) | EXPECT_EQ(stress.section_point, 0U) | EXPECT_DOUBLE_EQ(stress.x1, 0.0) | EXPECT_DOUBLE_EQ(stress.x2, 0.0) | EXPECT_EQ(stress.source, ""fesa-default"")" "ASSERT_EQ(recovery.stress_points.size(), 4U) | EXPECT_EQ(stress.gauss_point, static_cast(gauss_point + 1U)) | EXPECT_EQ(stress.section_point, point + 1U) | EXPECT_DOUBLE_EQ(stress.x1, x1) | EXPECT_DOUBLE_EQ(stress.x2, x2) | ASSERT_EQ(default_recovery.stress_points.size(), 2U) | EXPECT_EQ(stress.gauss_point, static_cast(gauss_point + 1U)) | EXPECT_EQ(stress.section_point, 0U) | EXPECT_DOUBLE_EQ(stress.x1, 0.0) | EXPECT_DOUBLE_EQ(stress.x2, 0.0) | EXPECT_EQ(stress.source, ""fesa-default"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.ReproducesConstantStrainTwistAndCurvaturePatches EulerBeam3D.ReproducesConstantStrainTwistAndCurvaturePatches; assertion 4개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.ReproducesConstantStrainTwistAndCurvaturePatches 유지 원문 검사 body 및 assertion 동일. 4fa6d99d84b69f21604df5fa097dd5c21494f16445f261d75d87e8ebfbccd76e 4fa6d99d84b69f21604df5fa097dd5c21494f16445f261d75d87e8ebfbccd76e EXPECT_NEAR(recovery.equilibrium_end_actions[0U][1U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[0U][2U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[1U][1U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[1U][2U], 0.0, 1.0e-8) EXPECT_NEAR(recovery.equilibrium_end_actions[0U][1U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[0U][2U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[1U][1U], 0.0, 1.0e-8) | EXPECT_NEAR(recovery.equilibrium_end_actions[1U][2U], 0.0, 1.0e-8) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.OnePointNegativeControlHasRankFour EulerBeam3D.OnePointNegativeControlHasRankFour; assertion 2개 tests/unit/elements/euler_beam_3d_test.cpp EulerBeam3D.OnePointNegativeControlHasRankFour 유지 원문 검사 body 및 assertion 동일. 09b807bbb8c23f7aca5a27cdb8df60f75e866fec3d12dfce52a2c9271fec75da 09b807bbb8c23f7aca5a27cdb8df60f75e866fec3d12dfce52a2c9271fec75da EXPECT_EQ(SymmetricRank(one_point, kRigidTolerance), 4U) | EXPECT_EQ(SymmetricRank(production, kRigidTolerance), 6U) EXPECT_EQ(SymmetricRank(one_point, kRigidTolerance), 4U) | EXPECT_EQ(SymmetricRank(production, kRigidTolerance), 6U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/euler_beam_3d_test.cpp support@1-500 helper/oracle/fixture/include/static assertion 구간: fesa, MakeNode, MakeMaterial, RequireBeam, if, AlignedBeam, MaximumAbsoluteEntry, MatrixIsFinite, NormalizedMatrixError, VectorNorm, QuadraticEnergy, ExpectScaledNear, ExpectRelativeNear, ExpectedClosedStiffness, SymmetricEigenvalues, SymmetricRank, for, count_if, TestOnlyOnePointStiffness, SolveFixedFirstNode, SolveDenseSystem, SolveUniformTransverseCantilever, UniformLoadInteriorDisplacementError, TransformationFromKnownRows, TransposeMultiply, Determinant tests/unit/elements/euler_beam_3d_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8fe565c3a19d57cd6870d3739c431b99fc41c549a91faa396fd25baea0ebb604 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/euler_beam_3d_test.cpp support@1137-1139 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/elements/euler_beam_3d_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/finite_rotation_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/elements/finite_rotation_test.cpp file 이관 원래 3-column inverse identity를 SpatialMomentSO3의 모든 unit-vector solve로 이관한다. 1e-11과 finite 검사를 유지하고 Refactor의 독립 z-axis virtual-work 검사를 함께 남긴다. ab332c787f3b6a987180c4901cf8c713e08c640e2e197f1c7be52afb11e698a3 60399a9c2b20a3752b3f57a1b74807dbb4db0800c7aa8c5ce375375a1f93340f 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/finite_rotation_test.cpp FiniteRotation.ZeroCoordinatePreservesInitialFrameAndDirector FiniteRotation.ZeroCoordinatePreservesInitialFrameAndDirector; assertion 2개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.ZeroCoordinatePreservesInitialFrameAndDirector 유지 원문 검사 body 및 assertion 동일. aad5b1d13028179488b58dd96eca0f52247abdd44548c24f6b2a5c67b6a12aa5 aad5b1d13028179488b58dd96eca0f52247abdd44548c24f6b2a5c67b6a12aa5 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().phi, Vector3{}) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().phi, Vector3{}) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/finite_rotation_test.cpp FiniteRotation.FiniteCoordinateBuildsProperTriadAndDirector FiniteRotation.FiniteCoordinateBuildsProperTriadAndDirector; assertion 1개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.FiniteCoordinateBuildsProperTriadAndDirector 유지 원문 검사 body 및 assertion 동일. 1013327e87dfbcfd8516fe145e8e8051a97b90d1f4321ff5bdc4f99dbe198e94 1013327e87dfbcfd8516fe145e8e8051a97b90d1f4321ff5bdc4f99dbe198e94 ASSERT_TRUE(result.HasValue()) ASSERT_TRUE(result.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/finite_rotation_test.cpp FiniteRotation.GlobalIncrementRebuildsFixedReferenceOrientation FiniteRotation.GlobalIncrementRebuildsFixedReferenceOrientation; assertion 3개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.GlobalIncrementRebuildsFixedReferenceOrientation 유지 원문 검사 body 및 assertion 동일. 069a14c550efe63bd5178dae6e8c3ae73a67dbff8c75ee68d7af81582d3336dd 069a14c550efe63bd5178dae6e8c3ae73a67dbff8c75ee68d7af81582d3336dd ASSERT_TRUE(committed.HasValue()) | ASSERT_TRUE(updated.HasValue()) | EXPECT_EQ(updated.Value().phi, expected_phi) ASSERT_TRUE(committed.HasValue()) | ASSERT_TRUE(updated.HasValue()) | EXPECT_EQ(updated.Value().phi, expected_phi) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/finite_rotation_test.cpp FiniteRotation.RejectsCoordinatesInsidePrincipalBranchMargin FiniteRotation.RejectsCoordinatesInsidePrincipalBranchMargin; assertion 5개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.RejectsCoordinatesInsidePrincipalBranchMargin 유지 원문 검사 body 및 assertion 동일. 12de3e3e90b293e3c19a0cc9620342eab8bad27fd9185362bf6aefb4c3c4334d 12de3e3e90b293e3c19a0cc9620342eab8bad27fd9185362bf6aefb4c3c4334d "EXPECT_TRUE(MakeFiniteRotationState(Vector3{pi - 2.0 * margin, 0.0, 0.0}, initial_frame) .HasValue()) | ASSERT_FALSE(ambiguous.HasValue()) | ASSERT_FALSE(ambiguous.GetStatus().IsOk()) | ASSERT_EQ(ambiguous.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(ambiguous.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"")" "EXPECT_TRUE(MakeFiniteRotationState(Vector3{pi - 2.0 * margin, 0.0, 0.0}, initial_frame) .HasValue()) | ASSERT_FALSE(ambiguous.HasValue()) | ASSERT_FALSE(ambiguous.GetStatus().IsOk()) | ASSERT_EQ(ambiguous.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(ambiguous.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/finite_rotation_test.cpp FiniteRotation.SpatialMomentSolvePreservesKnownLoadAndVirtualWork FiniteRotation.SpatialMomentSolvePreservesKnownLoadAndVirtualWork; assertion 2개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.SpatialMomentSolvePreservesKnownLoadAndVirtualWork 유지 원문 검사 body 및 assertion 동일. 605952b5bb0e5427f1d027b62ef6b37b3b943b5372efbde1a6e8425453325844 605952b5bb0e5427f1d027b62ef6b37b3b943b5372efbde1a6e8425453325844 ASSERT_TRUE(solved.HasValue()) | EXPECT_NEAR(generalized.Dot(variation), solved.Value().Dot(spatial_variation), 1e-11) ASSERT_TRUE(solved.HasValue()) | EXPECT_NEAR(generalized.Dot(variation), solved.Value().Dot(spatial_variation), 1e-11) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/finite_rotation_test.cpp FiniteRotation.JacobiansAreFiniteInverseTransposeAndDerivativeConsistent FiniteRotation.JacobiansAreFiniteInverseTransposeAndDerivativeConsistent; assertion 2개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.JacobiansAreFiniteInverseTransposeAndDerivativeConsistent 이관 원래 3-column inverse identity를 SpatialMomentSO3의 모든 unit-vector solve로 이관한다. 1e-11과 finite 검사를 유지하고 Refactor의 독립 z-axis virtual-work 검사를 함께 남긴다. 02ba014c6b54d4f6da74142b2d912a025de49d92ab2e0542ca7c10714797ba6f a39013f3e24d31e9ecb14e3117116d4f8be30cb57b65c734d2d81b560719432a EXPECT_TRUE(IsFinite(left_jacobian)) | ASSERT_TRUE(spatial.HasValue()) EXPECT_TRUE(IsFinite(left_jacobian)) | ASSERT_TRUE(solved.HasValue()) | EXPECT_TRUE(std::isfinite(solved.Value().X())) | EXPECT_TRUE(std::isfinite(solved.Value().Y())) | EXPECT_TRUE(std::isfinite(solved.Value().Z())) | EXPECT_NEAR(identity_column[row], row == column ? 1.0 : 0.0, 1.0e-11) | ASSERT_TRUE(spatial.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/finite_rotation_test.cpp FiniteRotation.RejectsNonfiniteCoordinatesAndInvalidInitialFrames FiniteRotation.RejectsNonfiniteCoordinatesAndInvalidInitialFrames; assertion 8개 tests/unit/elements/finite_rotation_test.cpp FiniteRotation.RejectsNonfiniteCoordinatesAndInvalidInitialFrames 유지 원문 검사 body 및 assertion 동일. 5da1952beb0840c9e5ab9fb79e02c5a2519d977763fb497904b3741c3d2a52d7 5da1952beb0840c9e5ab9fb79e02c5a2519d977763fb497904b3741c3d2a52d7 "ASSERT_FALSE(nonfinite.HasValue()) | ASSERT_EQ(nonfinite.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(nonfinite.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"") | EXPECT_FALSE(MakeFiniteRotationState(Vector3{}, invalid_frame).HasValue()) | ASSERT_TRUE(committed.HasValue()) | ASSERT_FALSE(invalid_increment.HasValue()) | ASSERT_EQ(invalid_increment.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(invalid_increment.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"")" "ASSERT_FALSE(nonfinite.HasValue()) | ASSERT_EQ(nonfinite.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(nonfinite.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"") | EXPECT_FALSE(MakeFiniteRotationState(Vector3{}, invalid_frame).HasValue()) | ASSERT_TRUE(committed.HasValue()) | ASSERT_FALSE(invalid_increment.HasValue()) | ASSERT_EQ(invalid_increment.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(invalid_increment.GetStatus().Diagnostics()[0U].code, ""invalid-accepted-state"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/finite_rotation_test.cpp support@1-97 helper/oracle/fixture/include/static assertion 구간: fesa, InitialFrame, Transpose, Multiply, Determinant, IsFinite, if, ExpectMatrixNear, ExpectVectorNear, ExpectProperOrthogonal tests/unit/elements/finite_rotation_test.cpp file-support 유지 원래 3-column inverse identity를 SpatialMomentSO3의 모든 unit-vector solve로 이관한다. 1e-11과 finite 검사를 유지하고 Refactor의 독립 z-axis virtual-work 검사를 함께 남긴다. 214fd606ec176af7e65bf83ad0dd1cdaf0a15c0de6afd34a6fc06b5596dfab88 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/finite_rotation_test.cpp support@244-246 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/elements/finite_rotation_test.cpp file-support 유지 원래 3-column inverse identity를 SpatialMomentSO3의 모든 unit-vector solve로 이관한다. 1e-11과 finite 검사를 유지하고 Refactor의 독립 z-axis virtual-work 검사를 함께 남긴다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/hex8_element_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 34개 tests/unit/elements/hex8_element_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 978acb597d8a388a003add362d3eff59ae3def1be2a2ec7db8f43a0b42e56aed a80b2714cc9ea75d6b97dead96c8ff8d443812c306278883e54a74d8b4515d40 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.ExactBrickStiffnessAndRowSumLumpedMass Hex8Element.ExactBrickStiffnessAndRowSumLumpedMass; assertion 7개 tests/unit/elements/hex8_element_test.cpp Hex8Element.ExactBrickStiffnessAndRowSumLumpedMass 유지 원문 검사 body 및 assertion 동일. 4958ab7f7854bb45aa79de051af75399166c78d31010d04061a611e3f1b0af57 4958ab7f7854bb45aa79de051af75399166c78d31010d04061a611e3f1b0af57 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(stiffness.HasValue()) | ASSERT_TRUE(mass.HasValue()) | ASSERT_EQ(k.Rows(), 24U) | ASSERT_EQ(m.Columns(), 24U) | EXPECT_NEAR(k(3 * a + i, 3 * b + j), exact, 2e-12) | EXPECT_NEAR(m(3 * a + i, 3 * b + j), expected_mass, 2e-14) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(stiffness.HasValue()) | ASSERT_TRUE(mass.HasValue()) | ASSERT_EQ(k.Rows(), 24U) | ASSERT_EQ(m.Columns(), 24U) | EXPECT_NEAR(k(3 * a + i, 3 * b + j), exact, 2e-12) | EXPECT_NEAR(m(3 * a + i, 3 * b + j), expected_mass, 2e-14) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.AffineTensorShearAndEightDistinctRecoveryPoints Hex8Element.AffineTensorShearAndEightDistinctRecoveryPoints; assertion 13개 tests/unit/elements/hex8_element_test.cpp Hex8Element.AffineTensorShearAndEightDistinctRecoveryPoints 유지 원문 검사 body 및 assertion 동일. 313b67ab5495cf7f93ddcbf2e7b5060057d3b60bbe619ea1a8bf18aa0c834287 313b67ab5495cf7f93ddcbf2e7b5060057d3b60bbe619ea1a8bf18aa0c834287 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(r.Value().strain_energy, 48.0 * 48.0 * 0.0002, 1e-12) | EXPECT_EQ(p.element, 7U) | EXPECT_EQ(p.integration_point, static_cast(g + 1)) | EXPECT_NEAR(p.strain[3], 0.01, 1e-16) | EXPECT_NEAR(p.cauchy_stress[3], 0.96, 1e-14) | EXPECT_DOUBLE_EQ(p.natural_coordinates[i], natural[i]) | EXPECT_NEAR(p.reference_coordinates[i], natural[i] * static_cast(i + 1U), 2e-15) | EXPECT_LT(r.Value().points[2].natural_coordinates[0], 0.0) | EXPECT_GT(r.Value().points[2].natural_coordinates[1], 0.0) | ASSERT_TRUE(recovered.HasValue()) | EXPECT_EQ(std::get(recovered.Value().payload) .rows.size(), 8U) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(r.Value().strain_energy, 48.0 * 48.0 * 0.0002, 1e-12) | EXPECT_EQ(p.element, 7U) | EXPECT_EQ(p.integration_point, static_cast(g + 1)) | EXPECT_NEAR(p.strain[3], 0.01, 1e-16) | EXPECT_NEAR(p.cauchy_stress[3], 0.96, 1e-14) | EXPECT_DOUBLE_EQ(p.natural_coordinates[i], natural[i]) | EXPECT_NEAR(p.reference_coordinates[i], natural[i] * static_cast(i + 1U), 2e-15) | EXPECT_LT(r.Value().points[2].natural_coordinates[0], 0.0) | EXPECT_GT(r.Value().points[2].natural_coordinates[1], 0.0) | ASSERT_TRUE(recovered.HasValue()) | EXPECT_EQ(std::get(recovered.Value().payload) .rows.size(), 8U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.UniformTranslationHasExactlyZeroLinearForceAndEnergy Hex8Element.UniformTranslationHasExactlyZeroLinearForceAndEnergy; assertion 6개 tests/unit/elements/hex8_element_test.cpp Hex8Element.UniformTranslationHasExactlyZeroLinearForceAndEnergy 유지 원문 검사 body 및 assertion 동일. d26359e5ed35c184732756cded1c265d5d66185d9350490c6338e407985d9af7 d26359e5ed35c184732756cded1c265d5d66185d9350490c6338e407985d9af7 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_EQ(response.Value().strain_energy, 0.0) | EXPECT_EQ(response.Value().internal_force[i], 0.0) | EXPECT_EQ(point.strain[i], 0.0) | EXPECT_EQ(point.cauchy_stress[i], 0.0) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_EQ(response.Value().strain_energy, 0.0) | EXPECT_EQ(response.Value().internal_force[i], 0.0) | EXPECT_EQ(point.strain[i], 0.0) | EXPECT_EQ(point.cauchy_stress[i], 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.LinearResponseIsUnchangedByExactlyRepresentableTranslation Hex8Element.LinearResponseIsUnchangedByExactlyRepresentableTranslation; assertion 7개 tests/unit/elements/hex8_element_test.cpp Hex8Element.LinearResponseIsUnchangedByExactlyRepresentableTranslation 유지 원문 검사 body 및 assertion 동일. b6369e091941f9510897d937e44e5aea48b57bb6b78b0075ad1061ff7a9de3ab b6369e091941f9510897d937e44e5aea48b57bb6b78b0075ad1061ff7a9de3ab ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(translated.HasValue()) | EXPECT_EQ(translated.Value().strain_energy, original.Value().strain_energy) | EXPECT_EQ(translated.Value().internal_force[i], original.Value().internal_force[i]) | EXPECT_EQ(translated.Value().points[g].strain, original.Value().points[g].strain) | EXPECT_EQ(translated.Value().points[g].cauchy_stress, original.Value().points[g].cauchy_stress) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(translated.HasValue()) | EXPECT_EQ(translated.Value().strain_energy, original.Value().strain_energy) | EXPECT_EQ(translated.Value().internal_force[i], original.Value().internal_force[i]) | EXPECT_EQ(translated.Value().points[g].strain, original.Value().points[g].strain) | EXPECT_EQ(translated.Value().points[g].cauchy_stress, original.Value().points[g].cauchy_stress) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.TinySignedAffineStretchRetainsStvkStressForceAndEnergy Hex8Element.TinySignedAffineStretchRetainsStvkStressForceAndEnergy; assertion 8개 tests/unit/elements/hex8_element_test.cpp Hex8Element.TinySignedAffineStretchRetainsStvkStressForceAndEnergy 유지 원문 검사 body 및 assertion 동일. 78a9f3a03973517e375627e6db91c92f87055a4a578afaad01162ecd40bb8807 78a9f3a03973517e375627e6db91c92f87055a4a578afaad01162ecd40bb8807 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, expected_energy, 1e-12 * expected_energy) | EXPECT_NEAR(point.strain[0], green, 1e-12 * std::abs(green)) | EXPECT_NEAR(point.cauchy_stress[0], (1.0 + stretch) * sxx, 1e-12 * std::abs(sxx)) | EXPECT_NEAR(point.cauchy_stress[1], syy / (1.0 + stretch), 1e-12 * std::abs(syy)) | EXPECT_NEAR(point.cauchy_stress[2], syy / (1.0 + stretch), 1e-12 * std::abs(syy)) | EXPECT_NEAR(response.Value().internal_force[3U * a + i], expected[i], 1e-12 * std::abs(expected[i])) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, expected_energy, 1e-12 * expected_energy) | EXPECT_NEAR(point.strain[0], green, 1e-12 * std::abs(green)) | EXPECT_NEAR(point.cauchy_stress[0], (1.0 + stretch) * sxx, 1e-12 * std::abs(sxx)) | EXPECT_NEAR(point.cauchy_stress[1], syy / (1.0 + stretch), 1e-12 * std::abs(syy)) | EXPECT_NEAR(point.cauchy_stress[2], syy / (1.0 + stretch), 1e-12 * std::abs(syy)) | EXPECT_NEAR(response.Value().internal_force[3U * a + i], expected[i], 1e-12 * std::abs(expected[i])) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.FiniteRigidRotationHasZeroGreenEnergyAndForce Hex8Element.FiniteRigidRotationHasZeroGreenEnergyAndForce; assertion 4개 tests/unit/elements/hex8_element_test.cpp Hex8Element.FiniteRigidRotationHasZeroGreenEnergyAndForce 유지 원문 검사 body 및 assertion 동일. e455a9ed32fdd0e8e47fc3c290a1b727a91e2fa4e8bdaf6fbdc1afcf350feff8 e455a9ed32fdd0e8e47fc3c290a1b727a91e2fa4e8bdaf6fbdc1afcf350feff8 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(r.Value().strain_energy, 0.0, 1e-25) | EXPECT_LT(r.Value().internal_force.Norm(), 1e-11) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(r.Value().strain_energy, 0.0, 1e-25) | EXPECT_LT(r.Value().internal_force.Norm(), 1e-11) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsCollapsedAndInvalidMaterial Hex8Element.RejectsCollapsedAndInvalidMaterial; assertion 3개 tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsCollapsedAndInvalidMaterial 유지 원문 검사 body 및 assertion 동일. f7a6d301ea33b5e96a07e058df286d6cd4862431368a3073a678fb7d25013412 f7a6d301ea33b5e96a07e058df286d6cd4862431368a3073a678fb7d25013412 EXPECT_FALSE(Make(x).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, 0.5).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, -1.0).HasValue()) EXPECT_FALSE(Make(x).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, 0.5).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, -1.0).HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.CertifiesPositiveQuadraticAfterSubdivision Hex8Element.CertifiesPositiveQuadraticAfterSubdivision; assertion 3개 tests/unit/elements/hex8_element_test.cpp Hex8Element.CertifiesPositiveQuadraticAfterSubdivision 유지 원문 검사 body 및 assertion 동일. 95b193341de90670eec4e7255153d7dceed178a93f1f64c003a50b742b00a37d 95b193341de90670eec4e7255153d7dceed178a93f1f64c003a50b742b00a37d ASSERT_TRUE(r.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(total, 2.0 * 8.0 * (.1125 + 1.0 / 3.0), 2e-14) ASSERT_TRUE(r.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(total, 2.0 * 8.0 * (.1125 + 1.0 / 3.0), 2e-14) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsInteriorFoldDespiteAll27SamplesAndGaussBeingPositive Hex8Element.RejectsInteriorFoldDespiteAll27SamplesAndGaussBeingPositive; assertion 7개 tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsInteriorFoldDespiteAll27SamplesAndGaussBeingPositive 유지 원문 검사 body 및 assertion 동일. bbc9326a1a8cd88f3825aed2389ec7e1ef842966741646d352f0832789f5d0c2 bbc9326a1a8cd88f3825aed2389ec7e1ef842966741646d352f0832789f5d0c2 "EXPECT_GT(xi * xi - .5 * xi + .0575, 0.0) | EXPECT_LT(.25 * .25 - .5 * .25 + .0575, 0.0) | ASSERT_FALSE(invalid.HasValue()) | EXPECT_NE(invalid.GetStatus().Diagnostics()[0].message.find(""nonpositive""), std::string::npos) | ASSERT_TRUE(valid.HasValue()) | EXPECT_FALSE(valid.Value().EvaluateNonlinear(u).HasValue()) | EXPECT_FALSE(valid.Value().EvaluateLinear(u).HasValue())" "EXPECT_GT(xi * xi - .5 * xi + .0575, 0.0) | EXPECT_LT(.25 * .25 - .5 * .25 + .0575, 0.0) | ASSERT_FALSE(invalid.HasValue()) | EXPECT_NE(invalid.GetStatus().Diagnostics()[0].message.find(""nonpositive""), std::string::npos) | ASSERT_TRUE(valid.HasValue()) | EXPECT_FALSE(valid.Value().EvaluateNonlinear(u).HasValue()) | EXPECT_FALSE(valid.Value().EvaluateLinear(u).HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.UnresolvedZeroInteriorJacobianFailsClosed Hex8Element.UnresolvedZeroInteriorJacobianFailsClosed; assertion 2개 tests/unit/elements/hex8_element_test.cpp Hex8Element.UnresolvedZeroInteriorJacobianFailsClosed 유지 원문 검사 body 및 assertion 동일. 25134743bf7dbd34b8f67e84c1f7410aca7787da7e52867c5219e8fd69b5915a 25134743bf7dbd34b8f67e84c1f7410aca7787da7e52867c5219e8fd69b5915a "ASSERT_FALSE(invalid.HasValue()) | EXPECT_NE(invalid.GetStatus().Diagnostics()[0].message.find(""unresolved""), std::string::npos)" "ASSERT_FALSE(invalid.HasValue()) | EXPECT_NE(invalid.GetStatus().Diagnostics()[0].message.find(""unresolved""), std::string::npos)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.TinyUncertainCurrentAdditionCannotBeAccepted Hex8Element.TinyUncertainCurrentAdditionCannotBeAccepted; assertion 2개 tests/unit/elements/hex8_element_test.cpp Hex8Element.TinyUncertainCurrentAdditionCannotBeAccepted 유지 원문 검사 body 및 assertion 동일. 27e5e73c83e4d58b025bd6e1a66cee4ffbee4247950b398ed98dace4cc6cb471 27e5e73c83e4d58b025bd6e1a66cee4ffbee4247950b398ed98dace4cc6cb471 ASSERT_TRUE(valid.HasValue()) | EXPECT_FALSE(valid.Value().EvaluateNonlinear(u).HasValue()) ASSERT_TRUE(valid.HasValue()) | EXPECT_FALSE(valid.Value().EvaluateNonlinear(u).HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.SixRigidModesAndZeroStateTangent Hex8Element.SixRigidModesAndZeroStateTangent; assertion 6개 tests/unit/elements/hex8_element_test.cpp Hex8Element.SixRigidModesAndZeroStateTangent 유지 원문 검사 body 및 assertion 동일. 981fc257d430c76b022b6abdc8164538b5b2b0ad71090c5ad34aa8687b2600f4 981fc257d430c76b022b6abdc8164538b5b2b0ad71090c5ad34aa8687b2600f4 ASSERT_TRUE(element.HasValue()) | EXPECT_LT(k.Multiply(u).Norm(), 2e-12) | ASSERT_TRUE(trial.HasValue()) | EXPECT_NEAR(trial.Value().tangent(i, j), k(i, j), 2e-12) | EXPECT_DOUBLE_EQ(trial.Value().geometric_tangent(i, j), 0.0) | EXPECT_NEAR(k(i, j), k(j, i), 2e-12) ASSERT_TRUE(element.HasValue()) | EXPECT_LT(k.Multiply(u).Norm(), 2e-12) | ASSERT_TRUE(trial.HasValue()) | EXPECT_NEAR(trial.Value().tangent(i, j), k(i, j), 2e-12) | EXPECT_DOUBLE_EQ(trial.Value().geometric_tangent(i, j), 0.0) | EXPECT_NEAR(k(i, j), k(j, i), 2e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.RowSumLumpedMassHasAll24PositiveDirectionsAndReferenceInvariance Hex8Element.RowSumLumpedMassHasAll24PositiveDirectionsAndReferenceInvariance; assertion 5개 tests/unit/elements/hex8_element_test.cpp Hex8Element.RowSumLumpedMassHasAll24PositiveDirectionsAndReferenceInvariance 유지 원문 검사 body 및 assertion 동일. 83b4b4951ae0ceb3a1ebba1031cb1b93db157eb11ceafe07c0e9a6efaf526056 83b4b4951ae0ceb3a1ebba1031cb1b93db157eb11ceafe07c0e9a6efaf526056 ASSERT_TRUE(element.HasValue()) | EXPECT_NEAR(mv[a], eigenvalue * v[a], 3e-14) | EXPECT_GT(v.Dot(mv), 0.0) | ASSERT_TRUE(element.Value().EvaluateNonlinear(Affine(Brick(), f)).HasValue()) | EXPECT_DOUBLE_EQ(before(i, j), after(i, j)) ASSERT_TRUE(element.HasValue()) | EXPECT_NEAR(mv[a], eigenvalue * v[a], 3e-14) | EXPECT_GT(v.Dot(mv), 0.0) | ASSERT_TRUE(element.Value().EvaluateNonlinear(Affine(Brick(), f)).HasValue()) | EXPECT_DOUBLE_EQ(before(i, j), after(i, j)) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.GeometryMaterialDensityScalingAndCoordinateCovariance Hex8Element.GeometryMaterialDensityScalingAndCoordinateCovariance; assertion 7개 tests/unit/elements/hex8_element_test.cpp Hex8Element.GeometryMaterialDensityScalingAndCoordinateCovariance 유지 원문 검사 body 및 assertion 동일. 4eb1091302e1a3fe888acb6e43f848406b05514f67e8e607ebebb448e2c3ae33 4eb1091302e1a3fe888acb6e43f848406b05514f67e8e607ebebb448e2c3ae33 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(rotated_element.HasValue()) | ASSERT_TRUE(scaled.HasValue()) | EXPECT_NEAR(kr(3 * a + i, 3 * b + j), oracle, 3e-12) | EXPECT_NEAR(mr(3 * a + i, 3 * b + j), m(3 * a + i, 3 * b + j), 3e-14) | EXPECT_NEAR(ks(3 * a + i, 3 * b + j), 7.5 * k(3 * a + i, 3 * b + j), 3e-11) | EXPECT_NEAR(ms(3 * a + i, 3 * b + j), 5.0 * 15.625 * m(3 * a + i, 3 * b + j), 3e-12) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(rotated_element.HasValue()) | ASSERT_TRUE(scaled.HasValue()) | EXPECT_NEAR(kr(3 * a + i, 3 * b + j), oracle, 3e-12) | EXPECT_NEAR(mr(3 * a + i, 3 * b + j), m(3 * a + i, 3 * b + j), 3e-14) | EXPECT_NEAR(ks(3 * a + i, 3 * b + j), 7.5 * k(3 * a + i, 3 * b + j), 3e-11) | EXPECT_NEAR(ms(3 * a + i, 3 * b + j), 5.0 * 15.625 * m(3 * a + i, 3 * b + j), 3e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedAffinePatchHasExactEnergyAndGlobalCauchyGreenTensors Hex8Element.WarpedAffinePatchHasExactEnergyAndGlobalCauchyGreenTensors; assertion 7개 tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedAffinePatchHasExactEnergyAndGlobalCauchyGreenTensors 유지 원문 검사 body 및 assertion 동일. fe44f6f0a2891d1d47828642165b5b6797671cfe463b004bbb2fb282a442fd8d fe44f6f0a2891d1d47828642165b5b6797671cfe463b004bbb2fb282a442fd8d ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | EXPECT_NEAR(trial.Value().strain_energy, volume * (24.0 * trace * trace + 48.0 * contraction), 2e-12) | EXPECT_NEAR(p.strain[c], green[i][j], 5e-16) | EXPECT_NEAR(p.cauchy_stress[c], sigma[i][j], 8e-14) | EXPECT_NEAR(force[i], 0.0, 5e-13) | EXPECT_NEAR(moment[i], 0.0, 2e-12) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | EXPECT_NEAR(trial.Value().strain_energy, volume * (24.0 * trace * trace + 48.0 * contraction), 2e-12) | EXPECT_NEAR(p.strain[c], green[i][j], 5e-16) | EXPECT_NEAR(p.cauchy_stress[c], sigma[i][j], 8e-14) | EXPECT_NEAR(force[i], 0.0, 5e-13) | EXPECT_NEAR(moment[i], 0.0, 2e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.StrainedRigidRotationPreservesEnergyAndCovariantForceTangent Hex8Element.StrainedRigidRotationPreservesEnergyAndCovariantForceTangent; assertion 6개 tests/unit/elements/hex8_element_test.cpp Hex8Element.StrainedRigidRotationPreservesEnergyAndCovariantForceTangent 유지 원문 검사 body 및 assertion 동일. cdc4257cf115d6d2c10dbdfb298f45077d8821f024dcec44056b2a7a71c3589f cdc4257cf115d6d2c10dbdfb298f45077d8821f024dcec44056b2a7a71c3589f ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | EXPECT_NEAR(rotated.Value().strain_energy, baseline.Value().strain_energy, 3e-12) | EXPECT_NEAR(rotated.Value().internal_force[3 * a + i], expected[i], 3e-12) | EXPECT_NEAR(rotated.Value().tangent(3 * a + i, 3 * b + j), expected_k, 7e-12) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | EXPECT_NEAR(rotated.Value().strain_energy, baseline.Value().strain_energy, 3e-12) | EXPECT_NEAR(rotated.Value().internal_force[3 * a + i], expected[i], 3e-12) | EXPECT_NEAR(rotated.Value().tangent(3 * a + i, 3 * b + j), expected_k, 7e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.EnergyForceAndForceTangentDirectionalStepSweep Hex8Element.EnergyForceAndForceTangentDirectionalStepSweep; assertion 11개 tests/unit/elements/hex8_element_test.cpp Hex8Element.EnergyForceAndForceTangentDirectionalStepSweep 유지 원문 검사 body 및 assertion 동일. c1ac1963af7f68ce46427d45877d677e804ed410b87c23a0a35910fb1386ff55 c1ac1963af7f68ce46427d45877d677e804ed410b87c23a0a35910fb1386ff55 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | ASSERT_TRUE(rp.HasValue()) | ASSERT_TRUE(rm.HasValue()) | EXPECT_LT(energy_error[1], .02 * energy_error[0]) | EXPECT_LT(force_error[1], .02 * force_error[0]) | EXPECT_LT(*std::min_element(energy_error.begin(), energy_error.end()), 1e-7) | EXPECT_LT(*std::min_element(force_error.begin(), force_error.end()), 1e-7) | EXPECT_GT(energy_error.back(), *std::min_element(energy_error.begin(), energy_error.end())) | EXPECT_NEAR(trial.Value().tangent(i, j), trial.Value().tangent(j, i), MaxEntry(trial.Value().tangent) * 2e-14) | EXPECT_DOUBLE_EQ(trial.Value().tangent(i, j), trial.Value().material_tangent(i, j) + trial.Value().geometric_tangent(i, j)) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | ASSERT_TRUE(rp.HasValue()) | ASSERT_TRUE(rm.HasValue()) | EXPECT_LT(energy_error[1], .02 * energy_error[0]) | EXPECT_LT(force_error[1], .02 * force_error[0]) | EXPECT_LT(*std::min_element(energy_error.begin(), energy_error.end()), 1e-7) | EXPECT_LT(*std::min_element(force_error.begin(), force_error.end()), 1e-7) | EXPECT_GT(energy_error.back(), *std::min_element(energy_error.begin(), energy_error.end())) | EXPECT_NEAR(trial.Value().tangent(i, j), trial.Value().tangent(j, i), MaxEntry(trial.Value().tangent) * 2e-14) | EXPECT_DOUBLE_EQ(trial.Value().tangent(i, j), trial.Value().material_tangent(i, j) + trial.Value().geometric_tangent(i, j)) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.TranslatedWarpedLinearResponseRetainsEnergyAndTangentVariation Hex8Element.TranslatedWarpedLinearResponseRetainsEnergyAndTangentVariation; assertion 8개 tests/unit/elements/hex8_element_test.cpp Hex8Element.TranslatedWarpedLinearResponseRetainsEnergyAndTangentVariation 유지 원문 검사 body 및 assertion 동일. 3aee6e7ad64dc19c22977520ef31f2117eb4c6fd4f7fdf4c71fdbc351525e89c 3aee6e7ad64dc19c22977520ef31f2117eb4c6fd4f7fdf4c71fdbc351525e89c ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | ASSERT_NE(derivative, 0.0) | ASSERT_GT(tangent_direction.Norm(), 0.0) | ASSERT_TRUE(rp.HasValue()) | ASSERT_TRUE(rm.HasValue()) | EXPECT_LT(*std::min_element(energy_error.begin(), energy_error.end()), 1e-7) | EXPECT_LT(*std::min_element(force_error.begin(), force_error.end()), 1e-7) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(trial.HasValue()) | ASSERT_NE(derivative, 0.0) | ASSERT_GT(tangent_direction.Norm(), 0.0) | ASSERT_TRUE(rp.HasValue()) | ASSERT_TRUE(rm.HasValue()) | EXPECT_LT(*std::min_element(energy_error.begin(), energy_error.end()), 1e-7) | EXPECT_LT(*std::min_element(force_error.begin(), force_error.end()), 1e-7) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.InvalidInputsAndFailedTrialPreservePriorResponseAndReference Hex8Element.InvalidInputsAndFailedTrialPreservePriorResponseAndReference; assertion 23개 tests/unit/elements/hex8_element_test.cpp Hex8Element.InvalidInputsAndFailedTrialPreservePriorResponseAndReference 유지 원문 검사 body 및 assertion 동일. eafc89af7adfd7c0e8325f391adaccb0253f22989cd839d88e804ef1747ba172 eafc89af7adfd7c0e8325f391adaccb0253f22989cd839d88e804ef1747ba172 "EXPECT_FALSE(Make(Brick(), 0.0).HasValue()) | EXPECT_FALSE( Make(Brick(), std::numeric_limits::infinity()).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, std::numeric_limits::quiet_NaN()) .HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, .25, 0.0).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, .25, -1.0).HasValue()) | EXPECT_FALSE( Make(Brick(), 120.0, .25, std::numeric_limits::infinity()) .HasValue()) | EXPECT_FALSE(Make(nonfinite).HasValue()) | ASSERT_TRUE(no_density.HasValue()) | EXPECT_FALSE(no_density.Value().ComputeMass().HasValue()) | ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(accepted.HasValue()) | EXPECT_FALSE(element.Value().EvaluateNonlinear(failed).HasValue()) | EXPECT_FALSE(element.Value().EvaluateLinear(fesa::Vector{23U}).HasValue()) | EXPECT_FALSE(Make(inverted).HasValue()) | ASSERT_TRUE(again.HasValue()) | EXPECT_DOUBLE_EQ(accepted.Value().strain_energy, again.Value().strain_energy) | EXPECT_DOUBLE_EQ(accepted.Value().internal_force[i], again.Value().internal_force[i]) | EXPECT_DOUBLE_EQ(accepted.Value().tangent(i, j), again.Value().tangent(i, j)) | ASSERT_FALSE(failure.HasValue()) | EXPECT_EQ(failure.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_EQ(diagnostic.location.line, 4U) | EXPECT_EQ(diagnostic.keyword, ""C3D8"") | EXPECT_EQ(diagnostic.entity_identity, ""PART-1:42"")" "EXPECT_FALSE(Make(Brick(), 0.0).HasValue()) | EXPECT_FALSE( Make(Brick(), std::numeric_limits::infinity()).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, std::numeric_limits::quiet_NaN()) .HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, .25, 0.0).HasValue()) | EXPECT_FALSE(Make(Brick(), 120.0, .25, -1.0).HasValue()) | EXPECT_FALSE( Make(Brick(), 120.0, .25, std::numeric_limits::infinity()) .HasValue()) | EXPECT_FALSE(Make(nonfinite).HasValue()) | ASSERT_TRUE(no_density.HasValue()) | EXPECT_FALSE(no_density.Value().ComputeMass().HasValue()) | ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(accepted.HasValue()) | EXPECT_FALSE(element.Value().EvaluateNonlinear(failed).HasValue()) | EXPECT_FALSE(element.Value().EvaluateLinear(fesa::Vector{23U}).HasValue()) | EXPECT_FALSE(Make(inverted).HasValue()) | ASSERT_TRUE(again.HasValue()) | EXPECT_DOUBLE_EQ(accepted.Value().strain_energy, again.Value().strain_energy) | EXPECT_DOUBLE_EQ(accepted.Value().internal_force[i], again.Value().internal_force[i]) | EXPECT_DOUBLE_EQ(accepted.Value().tangent(i, j), again.Value().tangent(i, j)) | ASSERT_FALSE(failure.HasValue()) | EXPECT_EQ(failure.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_EQ(diagnostic.location.line, 4U) | EXPECT_EQ(diagnostic.keyword, ""C3D8"") | EXPECT_EQ(diagnostic.entity_identity, ""PART-1:42"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.InvalidLayoutsAreRejectedBeforeNumericalWork Hex8Element.InvalidLayoutsAreRejectedBeforeNumericalWork; assertion 4개 tests/unit/elements/hex8_element_test.cpp Hex8Element.InvalidLayoutsAreRejectedBeforeNumericalWork 유지 원문 검사 body 및 assertion 동일. a7ca0be993c579446617dabcfc9a712b6f62501b3ac95ccceb134dd90997bee1 a7ca0be993c579446617dabcfc9a712b6f62501b3ac95ccceb134dd90997bee1 EXPECT_FALSE( fesa::Hex8Element::Create(7U, duplicate, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, missing, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, wrong_order, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, rotation, Brick(), material).HasValue()) EXPECT_FALSE( fesa::Hex8Element::Create(7U, duplicate, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, missing, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, wrong_order, Brick(), material).HasValue()) | EXPECT_FALSE( fesa::Hex8Element::Create(7U, rotation, Brick(), material).HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.LinearStiffnessHasOnlyTheSixRigidNullDirections Hex8Element.LinearStiffnessHasOnlyTheSixRigidNullDirections; assertion 2개 tests/unit/elements/hex8_element_test.cpp Hex8Element.LinearStiffnessHasOnlyTheSixRigidNullDirections 유지 원문 검사 body 및 assertion 동일. 87f05ea3e4d1a7ddcb6193da61ab7d81812977f0bb3598ad5b32781d868650f2 87f05ea3e4d1a7ddcb6193da61ab7d81812977f0bb3598ad5b32781d868650f2 ASSERT_TRUE(element.HasValue()) | ASSERT_GT(value, 0.0) ASSERT_TRUE(element.HasValue()) | ASSERT_GT(value, 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.NonlinearSmallLoadApproachesLinearResponse Hex8Element.NonlinearSmallLoadApproachesLinearResponse; assertion 6개 tests/unit/elements/hex8_element_test.cpp Hex8Element.NonlinearSmallLoadApproachesLinearResponse 유지 원문 검사 body 및 assertion 동일. 3c2e1d6f5f5b8adf802500e646e7efca6aed2be1a4f2b685d98bc30f7927f326 3c2e1d6f5f5b8adf802500e646e7efca6aed2be1a4f2b685d98bc30f7927f326 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(linear.HasValue()) | EXPECT_NEAR(linear.Value().strain_energy, .5 * u.Dot(k.Multiply(u)), 1e-14) | EXPECT_LT(error[1], .12 * error[0]) | EXPECT_LT(error[2], .12 * error[1]) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(linear.HasValue()) | EXPECT_NEAR(linear.Value().strain_energy, .5 * u.Dot(k.Multiply(u)), 1e-14) | EXPECT_LT(error[1], .12 * error[0]) | EXPECT_LT(error[2], .12 * error[1]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsUnrepresentableShearAndMassInsteadOfReturningZeros Hex8Element.RejectsUnrepresentableShearAndMassInsteadOfReturningZeros; assertion 3개 tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsUnrepresentableShearAndMassInsteadOfReturningZeros 유지 원문 검사 body 및 assertion 동일. 030f54c1c851716efb795775685d456b6b30de54201b82b51707735e2ce8993e 030f54c1c851716efb795775685d456b6b30de54201b82b51707735e2ce8993e EXPECT_FALSE(Make(Brick(), tiny, .25).HasValue()) | ASSERT_TRUE(element.HasValue()) | EXPECT_FALSE(element.Value().ComputeMass().HasValue()) EXPECT_FALSE(Make(Brick(), tiny, .25).HasValue()) | ASSERT_TRUE(element.HasValue()) | EXPECT_FALSE(element.Value().ComputeMass().HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.DirectBulkSurvivesNearNegativePoissonBound Hex8Element.DirectBulkSurvivesNearNegativePoissonBound; assertion 3개 tests/unit/elements/hex8_element_test.cpp Hex8Element.DirectBulkSurvivesNearNegativePoissonBound 유지 원문 검사 body 및 assertion 동일. b409b61a9964e0974b9805bd990ef6c7ff26668ed043b3966161af7cd68927ce b409b61a9964e0974b9805bd990ef6c7ff26668ed043b3966161af7cd68927ce ASSERT_TRUE(element.HasValue()) | EXPECT_GT(1.0 / (3.0 * (1.0 - 2.0 * nu)), 0.0) | EXPECT_TRUE(element.Value().EvaluateLinear(zero).HasValue()) ASSERT_TRUE(element.HasValue()) | EXPECT_GT(1.0 / (3.0 * (1.0 - 2.0 * nu)), 0.0) | EXPECT_TRUE(element.Value().EvaluateLinear(zero).HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.OrdinaryNegativePoissonRatioRetainsPositiveVolumetricEnergy Hex8Element.OrdinaryNegativePoissonRatioRetainsPositiveVolumetricEnergy; assertion 4개 tests/unit/elements/hex8_element_test.cpp Hex8Element.OrdinaryNegativePoissonRatioRetainsPositiveVolumetricEnergy 유지 원문 검사 body 및 assertion 동일. b73dc4b5fd199b08ca51058ccbaf627b1e6a18d8977180164595181c99323fb7 b73dc4b5fd199b08ca51058ccbaf627b1e6a18d8977180164595181c99323fb7 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, 48.0 * .5 * bulk * trace * trace, 2e-14) | EXPECT_NEAR(point.cauchy_stress[i], bulk * trace, 2e-14) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, 48.0 * .5 * bulk * trace * trace, 2e-14) | EXPECT_NEAR(point.cauchy_stress[i], bulk * trace, 2e-14) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.FiniteInputsThatOverflowDerivedArithmeticFailClosed Hex8Element.FiniteInputsThatOverflowDerivedArithmeticFailClosed; assertion 10개 tests/unit/elements/hex8_element_test.cpp Hex8Element.FiniteInputsThatOverflowDerivedArithmeticFailClosed 유지 원문 검사 body 및 assertion 동일. 5e6ac7207369709d94127e8b67d20735dc11818d5ff0e03fe463d16a3c34300f 5e6ac7207369709d94127e8b67d20735dc11818d5ff0e03fe463d16a3c34300f "ASSERT_FALSE(bad_material.HasValue()) | EXPECT_NE(bad_material.GetStatus().Diagnostics()[0].message.find(""finite""), std::string::npos) | ASSERT_FALSE(bad_geometry.HasValue()) | EXPECT_NE(bad_geometry.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos) | ASSERT_TRUE(element.HasValue()) | ASSERT_FALSE(bad_mass.HasValue()) | EXPECT_NE(bad_mass.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos) | ASSERT_FALSE(bad_trial.HasValue()) | EXPECT_NE(bad_trial.GetStatus().Diagnostics()[0].message.find(""trial""), std::string::npos) | EXPECT_NE(bad_trial.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos)" "ASSERT_FALSE(bad_material.HasValue()) | EXPECT_NE(bad_material.GetStatus().Diagnostics()[0].message.find(""finite""), std::string::npos) | ASSERT_FALSE(bad_geometry.HasValue()) | EXPECT_NE(bad_geometry.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos) | ASSERT_TRUE(element.HasValue()) | ASSERT_FALSE(bad_mass.HasValue()) | EXPECT_NE(bad_mass.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos) | ASSERT_FALSE(bad_trial.HasValue()) | EXPECT_NE(bad_trial.GetStatus().Diagnostics()[0].message.find(""trial""), std::string::npos) | EXPECT_NE(bad_trial.GetStatus().Diagnostics()[0].message.find(""nonfinite""), std::string::npos)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedRowSumMassMatchesIndependentNodalIntegralsAndNonuniformEnergy Hex8Element.WarpedRowSumMassMatchesIndependentNodalIntegralsAndNonuniformEnergy; assertion 6개 tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedRowSumMassMatchesIndependentNodalIntegralsAndNonuniformEnergy 유지 원문 검사 body 및 assertion 동일. bf8a73def3fe445aed1d34414e6487babf97967f7a2eee63f30dc54cc56e719b bf8a73def3fe445aed1d34414e6487babf97967f7a2eee63f30dc54cc56e719b ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(actual(3U * a + i, 3U * a + j), i == j ? expected[a] : 0.0, 3e-14) | EXPECT_GT(max_nodal - min_nodal, 1e-4) | EXPECT_NEAR(lumped_energy, independent_energy, 3e-14 * independent_energy) | EXPECT_GT(std::abs(lumped_energy - uniform_energy), 1e-4) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(actual(3U * a + i, 3U * a + j), i == j ? expected[a] : 0.0, 3e-14) | EXPECT_GT(max_nodal - min_nodal, 1e-4) | EXPECT_NEAR(lumped_energy, independent_energy, 3e-14 * independent_energy) | EXPECT_GT(std::abs(lumped_energy - uniform_energy), 1e-4) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedNonaffineQuadratureDifferenceIsQuantifiedAndRefines Hex8Element.WarpedNonaffineQuadratureDifferenceIsQuantifiedAndRefines; assertion 4개 tests/unit/elements/hex8_element_test.cpp Hex8Element.WarpedNonaffineQuadratureDifferenceIsQuantifiedAndRefines 유지 원문 검사 body 및 assertion 동일. 5d17d7efabd51400aebc4c48b3b6ce69588a7ceabc7181514c40a0fbc9b85a80 5d17d7efabd51400aebc4c48b3b6ce69588a7ceabc7181514c40a0fbc9b85a80 ASSERT_TRUE(element.HasValue()) | EXPECT_NEAR(.5 * u.Dot(k.Multiply(u)), q2[0], budget * q2[0]) | EXPECT_GT(stiffness_discrepancy, 1e-8) | EXPECT_LT(std::abs(q5[0] - q7[0]), .05 * std::abs(q3[0] - q7[0])) ASSERT_TRUE(element.HasValue()) | EXPECT_NEAR(.5 * u.Dot(k.Multiply(u)), q2[0], budget * q2[0]) | EXPECT_GT(stiffness_discrepancy, 1e-8) | EXPECT_LT(std::abs(q5[0] - q7[0]), .05 * std::abs(q3[0] - q7[0])) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeNonaffinePolynomialEnergyForceHessianAndActualStrain Hex8Element.MeanVolumeNonaffinePolynomialEnergyForceHessianAndActualStrain; assertion 14개 tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeNonaffinePolynomialEnergyForceHessianAndActualStrain 유지 원문 검사 body 및 assertion 동일. 57b07c678307c09776b4d21ca346b44d0c11e07901b38c8ded396f3d1b7a05e4 57b07c678307c09776b4d21ca346b44d0c11e07901b38c8ded396f3d1b7a05e4 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(r.strain_energy, energy, 2e-14) | EXPECT_NEAR(r.internal_force[6] + r.internal_force[18], force, 2e-13) | EXPECT_NEAR(r.tangent(6, 6) + r.tangent(6, 18) + r.tangent(18, 6) + r.tangent(18, 18), hessian, 2e-12) | EXPECT_NEAR(point.strain[0], exx, 2e-15) | EXPECT_NEAR(point.strain[1], eyy, 2e-15) | EXPECT_NEAR(point.strain[3], exy, 2e-15) | EXPECT_NEAR( point.cauchy_stress[0], nonlinear ? (t * t * sxx + 2 * t * c * px * sxy + c * c * px * px * syy) / t : sxx, 2e-13) | EXPECT_NEAR(point.cauchy_stress[1], nonlinear ? syy / t : syy, 2e-13) | EXPECT_NEAR(point.cauchy_stress[2], nonlinear ? szz / t : szz, 2e-13) | EXPECT_NEAR(point.cauchy_stress[3], nonlinear ? (t * sxy + c * px * syy) / t : sxy, 2e-13) | EXPECT_NEAR(k(0, 0), 41.0 / 18, 2e-14) | EXPECT_NEAR(k(0, 1), 19.0 / 30, 2e-14) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(r.strain_energy, energy, 2e-14) | EXPECT_NEAR(r.internal_force[6] + r.internal_force[18], force, 2e-13) | EXPECT_NEAR(r.tangent(6, 6) + r.tangent(6, 18) + r.tangent(18, 6) + r.tangent(18, 18), hessian, 2e-12) | EXPECT_NEAR(point.strain[0], exx, 2e-15) | EXPECT_NEAR(point.strain[1], eyy, 2e-15) | EXPECT_NEAR(point.strain[3], exy, 2e-15) | EXPECT_NEAR( point.cauchy_stress[0], nonlinear ? (t * t * sxx + 2 * t * c * px * sxy + c * c * px * px * syy) / t : sxx, 2e-13) | EXPECT_NEAR(point.cauchy_stress[1], nonlinear ? syy / t : syy, 2e-13) | EXPECT_NEAR(point.cauchy_stress[2], nonlinear ? szz / t : szz, 2e-13) | EXPECT_NEAR(point.cauchy_stress[3], nonlinear ? (t * sxy + c * px * syy) / t : sxy, 2e-13) | EXPECT_NEAR(k(0, 0), 41.0 / 18, 2e-14) | EXPECT_NEAR(k(0, 1), 19.0 / 30, 2e-14) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedStressUsesReferenceWeightedTrace Hex8Element.MeanVolumeWarpedStressUsesReferenceWeightedTrace; assertion 5개 tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedStressUsesReferenceWeightedTrace 유지 원문 검사 body 및 assertion 동일. 59532de38aa69f4c4457d06696198fcd7c2f3a8fa6ff9c031d5167d0997ff48f 59532de38aa69f4c4457d06696198fcd7c2f3a8fa6ff9c031d5167d0997ff48f ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_GT(std::abs(mean - arithmetic), 1e-8) | EXPECT_NEAR((s[0] + s[1] + s[2]) / 3, 80 * mean, 2e-13) | EXPECT_NEAR(response.Value().strain_energy, WarpedQuadratureEnergies(u, 2)[0], 2e-12) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_GT(std::abs(mean - arithmetic), 1e-8) | EXPECT_NEAR((s[0] + s[1] + s[2]) / 3, 80 * mean, 2e-13) | EXPECT_NEAR(response.Value().strain_energy, WarpedQuadratureEnergies(u, 2)[0], 2e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeDirectBulkSupportsBoundsWithoutLambdaOrThreeBulkGuard Hex8Element.MeanVolumeDirectBulkSupportsBoundsWithoutLambdaOrThreeBulkGuard; assertion 9개 tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeDirectBulkSupportsBoundsWithoutLambdaOrThreeBulkGuard 유지 원문 검사 body 및 assertion 동일. c28569a10dbd624762f2603dcbc1fde256d3cb97dba712040d799994fbf19f2f c28569a10dbd624762f2603dcbc1fde256d3cb97dba712040d799994fbf19f2f EXPECT_TRUE( Make(MeanVolumeUnitBrick(), 12, std::nextafter(-1.0, 0.0)).HasValue()) | EXPECT_TRUE( Make(MeanVolumeUnitBrick(), 1, std::nextafter(.5, 0.0)).HasValue()) | ASSERT_TRUE(huge.HasValue()) | ASSERT_TRUE(std::isfinite(direct_bulk)) | ASSERT_FALSE(std::isfinite(3 * direct_bulk)) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, expected, 1e-13 * expected) | EXPECT_FALSE(Make(MeanVolumeUnitBrick(), 1e308, .499).HasValue()) | EXPECT_FALSE(Make(MeanVolumeUnitBrick(), std::numeric_limits::denorm_min(), -.5) .HasValue()) EXPECT_TRUE( Make(MeanVolumeUnitBrick(), 12, std::nextafter(-1.0, 0.0)).HasValue()) | EXPECT_TRUE( Make(MeanVolumeUnitBrick(), 1, std::nextafter(.5, 0.0)).HasValue()) | ASSERT_TRUE(huge.HasValue()) | ASSERT_TRUE(std::isfinite(direct_bulk)) | ASSERT_FALSE(std::isfinite(3 * direct_bulk)) | ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, expected, 1e-13 * expected) | EXPECT_FALSE(Make(MeanVolumeUnitBrick(), 1e308, .499).HasValue()) | EXPECT_FALSE(Make(MeanVolumeUnitBrick(), std::numeric_limits::denorm_min(), -.5) .HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedIndependentEnergyHasCoupledNodeZeroDerivatives Hex8Element.MeanVolumeWarpedIndependentEnergyHasCoupledNodeZeroDerivatives; assertion 9개 tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedIndependentEnergyHasCoupledNodeZeroDerivatives 유지 원문 검사 body 및 assertion 동일. 3b485161230c69549e449fb7f27b5a942570fa036874622b9d715638e65df1e2 3b485161230c69549e449fb7f27b5a942570fa036874622b9d715638e65df1e2 ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(paired.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, energy, 2e-12) | EXPECT_NEAR(paired.Value().high.strain_energy, energy, 2e-12) | EXPECT_NEAR(direction.Dot(response.Value().internal_force), df, 2e-10) | EXPECT_NEAR(direction.Dot(paired.Value().high.internal_force), df, 2e-10) | EXPECT_NEAR(direction.Dot(response.Value().tangent.Multiply(direction)), ddf, 2e-8) | EXPECT_NEAR(direction.Dot(paired.Value().high.tangent.Multiply(direction)), ddf, 2e-8) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(paired.HasValue()) | EXPECT_NEAR(response.Value().strain_energy, energy, 2e-12) | EXPECT_NEAR(paired.Value().high.strain_energy, energy, 2e-12) | EXPECT_NEAR(direction.Dot(response.Value().internal_force), df, 2e-10) | EXPECT_NEAR(direction.Dot(paired.Value().high.internal_force), df, 2e-10) | EXPECT_NEAR(direction.Dot(response.Value().tangent.Multiply(direction)), ddf, 2e-8) | EXPECT_NEAR(direction.Dot(paired.Value().high.tangent.Multiply(direction)), ddf, 2e-8) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedLowOnlyStateRetainsWeightedCubicEnergy Hex8Element.MeanVolumeWarpedLowOnlyStateRetainsWeightedCubicEnergy; assertion 8개 tests/unit/elements/hex8_element_test.cpp Hex8Element.MeanVolumeWarpedLowOnlyStateRetainsWeightedCubicEnergy 유지 원문 검사 body 및 assertion 동일. b232e31a9ebe5946b4d1192b8712f0debd77a8a716c425571f5e2c83529bf37b b232e31a9ebe5946b4d1192b8712f0debd77a8a716c425571f5e2c83529bf37b ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(high_only.HasValue()) | EXPECT_EQ(high_only.Value().high.strain_energy, 0) | EXPECT_NEAR(linear.Value().high.strain_energy, quadratic * c * c, 1e-12 * c * c) | EXPECT_NEAR(actual_cubic.high, cubic * c * c * c, 1e-11 * c * c * c) | EXPECT_NE(actual_cubic.high, 0) ASSERT_TRUE(element.HasValue()) | ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | ASSERT_TRUE(high_only.HasValue()) | EXPECT_EQ(high_only.Value().high.strain_energy, 0) | EXPECT_NEAR(linear.Value().high.strain_energy, quadratic * c * c, 1e-12 * c * c) | EXPECT_NEAR(actual_cubic.high, cubic * c * c * c, 1e-11 * c * c * c) | EXPECT_NE(actual_cubic.high, 0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsNonfiniteCanonicalJacobianActionBeforeFiniteGradients Hex8Element.RejectsNonfiniteCanonicalJacobianActionBeforeFiniteGradients; assertion 3개 tests/unit/elements/hex8_element_test.cpp Hex8Element.RejectsNonfiniteCanonicalJacobianActionBeforeFiniteGradients 유지 원문 검사 body 및 assertion 동일. 80b5afadd859d166f5d9d8aa945ee6da72ffe74085fe940faab94f467cf827e4 80b5afadd859d166f5d9d8aa945ee6da72ffe74085fe940faab94f467cf827e4 "ASSERT_FALSE(rejected.HasValue()) | ASSERT_EQ(rejected.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].message, ""Reference Jacobian inverse is nonfinite."")" "ASSERT_FALSE(rejected.HasValue()) | ASSERT_EQ(rejected.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].message, ""Reference Jacobian inverse is nonfinite."")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/hex8_element_test.cpp support@1-50 helper/oracle/fixture/include/static assertion 구간: Brick, Make, GradientProduct tests/unit/elements/hex8_element_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 839b075a0d0eda927ed3a1940c15bef4980783019187ede4daa63b2dd3a9a398 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/hex8_element_test.cpp support@228-268 helper/oracle/fixture/include/static assertion 구간: Rotate, Affine, Warped, QuadraticMap, MaxEntry tests/unit/elements/hex8_element_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 50c481031d1e74a0a358dee1dddea4c0acb477e97c84969072b8a1a3b50d27b2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/hex8_element_test.cpp support@813-931 helper/oracle/fixture/include/static assertion 구간: LegendreRule, WarpedLumpedMass3x3, for, Cross, WarpedQuadratureEnergies tests/unit/elements/hex8_element_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f67b10e521588921549e46a4ae49bde140f46022a0aff343b4ce97263808d386 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/hex8_element_test.cpp support@988-994 helper/oracle/fixture/include/static assertion 구간: MeanVolumeUnitBrick tests/unit/elements/hex8_element_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b1b4b6e8408b50361c87580a49c4b608c96d1d0120b7bdaeea6162789efd43d7 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/hex8_element_test.cpp support@1183-1184 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/hex8_element_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c2bd7638f09d52cb034ed574f539304035fc6fab162bf8d5fa20a35d8c7288a1 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/hex8_high_low_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 12개 tests/unit/elements/hex8_high_low_test.cpp file 이관 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. bd210e7159c44b5db38e38d37fc8f030f4f98048b973e9971a07e11f692fbc69 892dc78a07a9f7eba27df4cb71e9443359920da45fa7dc5795505d36edf0bc75 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.LowOnlyAffineStrainSurvivesUniformHighTranslation Hex8HighLow.LowOnlyAffineStrainSurvivesUniformHighTranslation; assertion 4개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.LowOnlyAffineStrainSurvivesUniformHighTranslation 유지 원문 검사 body 및 assertion 동일. 4462f0b7416fafcfad45c7261d11b2ac9efd9b84ecc8174f859764ab23039b7c 4462f0b7416fafcfad45c7261d11b2ac9efd9b84ecc8174f859764ab23039b7c ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().high.internal_force[3 * a], (positive ? 3 : -3) * strain, 1e-13 * strain) | EXPECT_NEAR(response.Value().high.strain_energy, 6 * strain * strain, 1e-13 * strain * strain) | EXPECT_NEAR(row.strain[0], strain, 1e-13 * strain) ASSERT_TRUE(response.HasValue()) | EXPECT_NEAR(response.Value().high.internal_force[3 * a], (positive ? 3 : -3) * strain, 1e-13 * strain) | EXPECT_NEAR(response.Value().high.strain_energy, 6 * strain * strain, 1e-13 * strain * strain) | EXPECT_NEAR(row.strain[0], strain, 1e-13 * strain) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.NonlinearLowGradientProducesSecondOrderForce Hex8HighLow.NonlinearLowGradientProducesSecondOrderForce; assertion 3개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.NonlinearLowGradientProducesSecondOrderForce 유지 원문 검사 body 및 assertion 동일. 979f0ef23c5f1008caa390d90e6009aa9a5d31c011169ea1b43a67f5f15da557 979f0ef23c5f1008caa390d90e6009aa9a5d31c011169ea1b43a67f5f15da557 ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(increment.high, 4.5 * strain * strain, 1e-12 * strain * strain) ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(increment.high, 4.5 * strain * strain, 1e-12 * strain * strain) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.VolumetricAndTransverseTermsRetainLowStrain Hex8HighLow.VolumetricAndTransverseTermsRetainLowStrain; assertion 6개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.VolumetricAndTransverseTermsRetainLowStrain 유지 원문 검사 body 및 assertion 동일. 846ec5c0b418ef7ec32bb21ce63c53f4d186afbf40d8c37be769ff45ab8f108e 846ec5c0b418ef7ec32bb21ce63c53f4d186afbf40d8c37be769ff45ab8f108e ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(linear.Value().high.internal_force[3], 3.6*strain, 1e-13*strain) | EXPECT_NEAR(linear.Value().high.internal_force[7], 1.2*strain, 1e-13*strain) | EXPECT_NEAR(linear.Value().high.strain_energy, 7.2*strain*strain, 1e-13*strain*strain) | EXPECT_NEAR(quadratic.high, 5.4*strain*strain, 1e-12*strain*strain) ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(linear.Value().high.internal_force[3], 3.6*strain, 1e-13*strain) | EXPECT_NEAR(linear.Value().high.internal_force[7], 1.2*strain, 1e-13*strain) | EXPECT_NEAR(linear.Value().high.strain_energy, 7.2*strain*strain, 1e-13*strain*strain) | EXPECT_NEAR(quadratic.high, 5.4*strain*strain, 1e-12*strain*strain) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.RejectsInvalidLowShapeAndOverlappingComponents Hex8HighLow.RejectsInvalidLowShapeAndOverlappingComponents; assertion 2개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.RejectsInvalidLowShapeAndOverlappingComponents 유지 원문 검사 body 및 assertion 동일. 7abccdcb75d007db4ef2421719b99cb7e5330d25e5d05d2da511b098a2428848 7abccdcb75d007db4ef2421719b99cb7e5330d25e5d05d2da511b098a2428848 EXPECT_FALSE(brick.EvaluateLinearHighLow(high, fesa::Vector(23)).HasValue()) | EXPECT_FALSE(brick.EvaluateNonlinearHighLow(high, low).HasValue()) EXPECT_FALSE(brick.EvaluateLinearHighLow(high, fesa::Vector(23)).HasValue()) | EXPECT_FALSE(brick.EvaluateNonlinearHighLow(high, low).HasValue()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.LinearAndNonlinearZeroStateHaveSameFullHessian Hex8HighLow.LinearAndNonlinearZeroStateHaveSameFullHessian; assertion 4개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.LinearAndNonlinearZeroStateHaveSameFullHessian 유지 원문 검사 body 및 assertion 동일. e2079fe27aab893fafc1428c6fd97d975eddd067ca1131589425cc569ece3958 e2079fe27aab893fafc1428c6fd97d975eddd067ca1131589425cc569ece3958 ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_EQ(linear.Value().high.tangent(i, j), nonlinear.Value().high.tangent(i, j)) | EXPECT_EQ(linear.Value().tangent_low(i, j), nonlinear.Value().tangent_low(i, j)) ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_EQ(linear.Value().high.tangent(i, j), nonlinear.Value().high.tangent(i, j)) | EXPECT_EQ(linear.Value().tangent_low(i, j), nonlinear.Value().tangent_low(i, j)) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.CachedLinearHessianIsIndependentOfTrialAndPriorFailure Hex8HighLow.CachedLinearHessianIsIndependentOfTrialAndPriorFailure; assertion 8개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.CachedLinearHessianIsIndependentOfTrialAndPriorFailure 유지 원문 검사 body 및 assertion 동일. 046984e4a0f5d6ab548fdef7ea0980b866ff34cbeb603b918c9b1adb76ae7935 046984e4a0f5d6ab548fdef7ea0980b866ff34cbeb603b918c9b1adb76ae7935 ASSERT_TRUE(reference.HasValue()) | EXPECT_FALSE(brick.EvaluateLinearHighLow(high, fesa::Vector(23)).HasValue()) | ASSERT_TRUE(strained.HasValue()) | EXPECT_EQ(reference.Value().high.tangent(i,j), strained.Value().high.tangent(i,j)) | EXPECT_EQ(reference.Value().tangent_low(i,j), strained.Value().tangent_low(i,j)) | ASSERT_TRUE(nonlinear_zero.HasValue()) | EXPECT_EQ(reference.Value().high.tangent(i,j), nonlinear_zero.Value().high.tangent(i,j)) | EXPECT_EQ(reference.Value().tangent_low(i,j), nonlinear_zero.Value().tangent_low(i,j)) ASSERT_TRUE(reference.HasValue()) | EXPECT_FALSE(brick.EvaluateLinearHighLow(high, fesa::Vector(23)).HasValue()) | ASSERT_TRUE(strained.HasValue()) | EXPECT_EQ(reference.Value().high.tangent(i,j), strained.Value().high.tangent(i,j)) | EXPECT_EQ(reference.Value().tangent_low(i,j), strained.Value().tangent_low(i,j)) | ASSERT_TRUE(nonlinear_zero.HasValue()) | EXPECT_EQ(reference.Value().high.tangent(i,j), nonlinear_zero.Value().high.tangent(i,j)) | EXPECT_EQ(reference.Value().tangent_low(i,j), nonlinear_zero.Value().tangent_low(i,j)) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.CoupledBricksTransmitLowStrainAcrossSharedFace Hex8HighLow.CoupledBricksTransmitLowStrainAcrossSharedFace; assertion 4개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.CoupledBricksTransmitLowStrainAcrossSharedFace 유지 원문 검사 body 및 assertion 동일. 83ae6a75481955497b50ac6ac1eff98c37df884ba2ed66da2557210deefa72a2 83ae6a75481955497b50ac6ac1eff98c37df884ba2ed66da2557210deefa72a2 ASSERT_TRUE(l.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(assembled.high, 0, 1e-13 * strain) | EXPECT_NEAR(l.Value().high.strain_energy + r.Value().high.strain_energy, 12 * strain * strain, 1e-13 * strain * strain) ASSERT_TRUE(l.HasValue()) | ASSERT_TRUE(r.HasValue()) | EXPECT_NEAR(assembled.high, 0, 1e-13 * strain) | EXPECT_NEAR(l.Value().high.strain_energy + r.Value().high.strain_energy, 12 * strain * strain, 1e-13 * strain * strain) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.NodeZeroSignedDirectionMatchesForceAndEnergyDerivatives Hex8HighLow.NodeZeroSignedDirectionMatchesForceAndEnergyDerivatives; assertion 5개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.NodeZeroSignedDirectionMatchesForceAndEnergyDerivatives 유지 원문 검사 body 및 assertion 동일. 8ca0e0b8462f489c123d6d5a32a0ae42c56b897b155459e2e7c55dfa8c030d0d 8ca0e0b8462f489c123d6d5a32a0ae42c56b897b155459e2e7c55dfa8c030d0d ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(positive.HasValue()) | ASSERT_TRUE(negative.HasValue()) | EXPECT_LE(std::abs(error.high), 1e-25) | EXPECT_LE(std::abs(energy_error.high), 32 * step * step + 1e-44) ASSERT_TRUE(baseline.HasValue()) | ASSERT_TRUE(positive.HasValue()) | ASSERT_TRUE(negative.HasValue()) | EXPECT_LE(std::abs(error.high), 1e-25) | EXPECT_LE(std::abs(energy_error.high), 32 * step * step + 1e-44) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryCertificateIncludesLowOnlyCurrentCellWidth Hex8HighLow.GeometryCertificateIncludesLowOnlyCurrentCellWidth; assertion 3개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.GeometryCertificateIncludesLowOnlyCurrentCellWidth 유지 원문 검사 body 및 assertion 동일. a99f71b85735e03d5245e265d4b95f2b624f4b5475c1f1ff15ea665e18c72c4d a99f71b85735e03d5245e265d4b95f2b624f4b5475c1f1ff15ea665e18c72c4d EXPECT_EQ(fesa::hex8_internal::Certify(coordinates, &high, &positive_low), Certificate::kPositive) | EXPECT_EQ(fesa::hex8_internal::Certify(coordinates, &high, &negative_low), Certificate::kNonpositive) | EXPECT_NE(fesa::hex8_internal::Certify(coordinates, &high), Certificate::kPositive) EXPECT_EQ(fesa::hex8_internal::Certify(coordinates, &high, &positive_low), Certificate::kPositive) | EXPECT_EQ(fesa::hex8_internal::Certify(coordinates, &high, &negative_low), Certificate::kNonpositive) | EXPECT_NE(fesa::hex8_internal::Certify(coordinates, &high), Certificate::kPositive) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.SignedZeroMaterialCoefficientHasIdenticalResponse Hex8HighLow.SignedZeroMaterialCoefficientHasIdenticalResponse; assertion 8개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.SignedZeroMaterialCoefficientHasIdenticalResponse 유지 원문 검사 body 및 assertion 동일. 3972742ed5e27b3dd1f33a5c2fb9a603b32972c71c7ecb8dd341b9c76d18d3d3 3972742ed5e27b3dd1f33a5c2fb9a603b32972c71c7ecb8dd341b9c76d18d3d3 ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(n.HasValue()) | EXPECT_EQ(p.Value().high.strain_energy, n.Value().high.strain_energy) | EXPECT_EQ(p.Value().strain_energy_low, n.Value().strain_energy_low) | EXPECT_EQ(p.Value().high.internal_force[i], n.Value().high.internal_force[i]) | EXPECT_EQ(p.Value().internal_force_low[i], n.Value().internal_force_low[i]) | EXPECT_EQ(p.Value().high.tangent(i,j), n.Value().high.tangent(i,j)) | EXPECT_EQ(p.Value().tangent_low(i,j), n.Value().tangent_low(i,j)) ASSERT_TRUE(p.HasValue()) | ASSERT_TRUE(n.HasValue()) | EXPECT_EQ(p.Value().high.strain_energy, n.Value().high.strain_energy) | EXPECT_EQ(p.Value().strain_energy_low, n.Value().strain_energy_low) | EXPECT_EQ(p.Value().high.internal_force[i], n.Value().high.internal_force[i]) | EXPECT_EQ(p.Value().internal_force_low[i], n.Value().internal_force_low[i]) | EXPECT_EQ(p.Value().high.tangent(i,j), n.Value().high.tangent(i,j)) | EXPECT_EQ(p.Value().tangent_low(i,j), n.Value().tangent_low(i,j)) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.FiniteRotationRetainsTinyShearForceCovariance Hex8HighLow.FiniteRotationRetainsTinyShearForceCovariance; assertion 7개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.FiniteRotationRetainsTinyShearForceCovariance 유지 원문 검사 body 및 assertion 동일. 397b230944498c7db14592dc4408d7fbdee0199b43be2c7b4d7e68dda9cb08e9 397b230944498c7db14592dc4408d7fbdee0199b43be2c7b4d7e68dda9cb08e9 ASSERT_TRUE(origin.HasValue()) | ASSERT_TRUE(deformed.HasValue()) | ASSERT_TRUE(turned.HasValue()) | ASSERT_TRUE(turned_deformed.HasValue()) | EXPECT_LE(std::abs(Add(rotated[0], baseline[1]).high), 1e-13*gamma) | EXPECT_LE(std::abs(Subtract(rotated[1], baseline[0]).high), 1e-13*gamma) | EXPECT_LE(std::abs(Subtract(rotated[2], baseline[2]).high), 1e-13*gamma) ASSERT_TRUE(origin.HasValue()) | ASSERT_TRUE(deformed.HasValue()) | ASSERT_TRUE(turned.HasValue()) | ASSERT_TRUE(turned_deformed.HasValue()) | EXPECT_LE(std::abs(Add(rotated[0], baseline[1]).high), 1e-13*gamma) | EXPECT_LE(std::abs(Subtract(rotated[1], baseline[0]).high), 1e-13*gamma) | EXPECT_LE(std::abs(Subtract(rotated[2], baseline[2]).high), 1e-13*gamma) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.MeanVolumeLowOnlyNonuniformTraceRetainsMeanAndCrossPointHessian Hex8HighLow.MeanVolumeLowOnlyNonuniformTraceRetainsMeanAndCrossPointHessian; assertion 11개 tests/unit/elements/hex8_high_low_test.cpp Hex8HighLow.MeanVolumeLowOnlyNonuniformTraceRetainsMeanAndCrossPointHessian 유지 원문 검사 body 및 assertion 동일. 45ace4ab87c97eeeb71c680d4cd90bdc4d0b2438c4335b7539a7207529d171fb 45ace4ab87c97eeeb71c680d4cd90bdc4d0b2438c4335b7539a7207529d171fb ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(high_only.HasValue()) | EXPECT_EQ(high_only.Value().high.strain_energy, 0) | EXPECT_NEAR(response.Value().high.strain_energy, coefficient * c * c, 1e-13 * c * c) | EXPECT_NEAR(response.Value().high.internal_force[6] + response.Value().high.internal_force[18], 2 * coefficient * c, 1e-13 * c) | EXPECT_NEAR((s[0] + s[1] + s[2]) / 3, 4 * c, 1e-13 * c) | EXPECT_NEAR(point.strain[0], c * point.reference_coordinates[1], 1e-13 * c) | EXPECT_NEAR(k(0, 0), 41.0 / 18, 2e-14) | EXPECT_NEAR(k(0, 1), 19.0 / 30, 2e-14) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(cubic_energy.high, (5 * 4.8 / 18 + 8.0 / 6) * c * c * c, 1e-12 * c * c * c) ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(high_only.HasValue()) | EXPECT_EQ(high_only.Value().high.strain_energy, 0) | EXPECT_NEAR(response.Value().high.strain_energy, coefficient * c * c, 1e-13 * c * c) | EXPECT_NEAR(response.Value().high.internal_force[6] + response.Value().high.internal_force[18], 2 * coefficient * c, 1e-13 * c) | EXPECT_NEAR((s[0] + s[1] + s[2]) / 3, 4 * c, 1e-13 * c) | EXPECT_NEAR(point.strain[0], c * point.reference_coordinates[1], 1e-13 * c) | EXPECT_NEAR(k(0, 0), 41.0 / 18, 2e-14) | EXPECT_NEAR(k(0, 1), 19.0 / 30, 2e-14) | ASSERT_TRUE(nonlinear.HasValue()) | EXPECT_NEAR(cubic_energy.high, (5 * 4.8 / 18 + 8.0 / 6) * c * c * c, 1e-12 * c * c * c) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/elements/hex8_high_low_test.cpp support@1-29 helper/oracle/fixture/include/static assertion 구간: UnitBrick tests/unit/elements/hex8_high_low_test.cpp file-support 이관 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. 947e889cccadb763476edd5c2ad4179bcce673943fcff78125da063ca8846bd0 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/elements/hex8_high_low_test.cpp support@334-334 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/hex8_high_low_test.cpp file-support 유지 독립 frozen oracle를 유지한다. AddPair/MultiplyPair 호출은 공통 math_internal owner로 이관한다. 두 bool 모드가 같은 original Add 값을 요구하던 ScalarPacketAdd는 단일 checked 호출로 연결한다. packet·geometry·특수 lane·동시 실행 검사를 복원한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 1fd73892c2678a5b3ad8fd34edd0292394836a3494c540f4ecc005b6e6a269d9 1fd73892c2678a5b3ad8fd34edd0292394836a3494c540f4ecc005b6e6a269d9 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.PreservesWarpedMomentsRowsAndFirstSpatialMoment Mitc4ShellMassContract.PreservesWarpedMomentsRowsAndFirstSpatialMoment; assertion 4개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.PreservesWarpedMomentsRowsAndFirstSpatialMoment 유지 원문 검사 body 및 assertion 동일. 76f7825ab0d079445fad2d14b91e7d6e835a997d5299706cb5cdc7c05a968c14 76f7825ab0d079445fad2d14b91e7d6e835a997d5299706cb5cdc7c05a968c14 ASSERT_TRUE(mass.HasValue()) | EXPECT_LE(std::abs(value.consistent_moments[moment](row, column) - expected[moment][row][column]) / scale, 1e-12) | EXPECT_LE(std::abs(value.nodal_moments[row][moment] - expected_row) / scale, 1e-12) | EXPECT_LE(difference / (element_mass * std::hypot(2.0, 0.3)), 1e-12) ASSERT_TRUE(mass.HasValue()) | EXPECT_LE(std::abs(value.consistent_moments[moment](row, column) - expected[moment][row][column]) / scale, 1e-12) | EXPECT_LE(std::abs(value.nodal_moments[row][moment] - expected_row) / scale, 1e-12) | EXPECT_LE(difference / (element_mass * std::hypot(2.0, 0.3)), 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.RecomputesWarpedMassWithScaledCovariance Mitc4ShellMassContract.RecomputesWarpedMassWithScaledCovariance; assertion 4개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.RecomputesWarpedMassWithScaledCovariance 유지 원문 검사 body 및 assertion 동일. e3e985596112fdd2ba30d9c9f0721d183914e4c7e3e4bb4ae11cd9f32b820991 e3e985596112fdd2ba30d9c9f0721d183914e4c7e3e4bb4ae11cd9f32b820991 ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(transformed.HasValue()) | ASSERT_TRUE(original_mass.HasValue()) | ASSERT_TRUE(transformed_mass.HasValue()) ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(transformed.HasValue()) | ASSERT_TRUE(original_mass.HasValue()) | ASSERT_TRUE(transformed_mass.HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.SatisfiesUniformAndJensenEnergyContracts Mitc4ShellMassContract.SatisfiesUniformAndJensenEnergyContracts; assertion 3개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.SatisfiesUniformAndJensenEnergyContracts 유지 원문 검사 body 및 assertion 동일. 4ca13bda8eeda1a740d91e0eca5b06c177bff1348c4c2aae9fb7cd28c36fa25b 4ca13bda8eeda1a740d91e0eca5b06c177bff1348c4c2aae9fb7cd28c36fa25b ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(Quadratic(mass.Value().consistent_global24, translation), Quadratic(mass.Value().lumped_global24, translation), 1e-12) | EXPECT_GE(Quadratic(mass.Value().lumped_global24, field) + 1e-12, Quadratic(mass.Value().consistent_global24, field)) ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(Quadratic(mass.Value().consistent_global24, translation), Quadratic(mass.Value().lumped_global24, translation), 1e-12) | EXPECT_GE(Quadratic(mass.Value().lumped_global24, field) + 1e-12, Quadratic(mass.Value().consistent_global24, field)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.MapsScalarMomentsIntoBothMassBlocks Mitc4ShellMassContract.MapsScalarMomentsIntoBothMassBlocks; assertion 6개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.MapsScalarMomentsIntoBothMassBlocks 유지 원문 검사 body 및 assertion 동일. c3f3d3fcbbb356610124a670ed3e56e053f742c3150650dc3d0690b8a081e44f c3f3d3fcbbb356610124a670ed3e56e053f742c3150650dc3d0690b8a081e44f ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(mass.Value().consistent_global24(row, column), expected_consistent(row, column), 1e-12) | EXPECT_NEAR(mass.Value().lumped_global24(row, column), expected_lumped(row, column), 1e-12) | EXPECT_LE(FrobeniusNorm(consistent_difference, length) / (FrobeniusNorm(mass.Value().consistent_global24, length) + FrobeniusNorm(expected_consistent, length)), 1e-12) | EXPECT_LE(FrobeniusNorm(lumped_difference, length) / (FrobeniusNorm(mass.Value().lumped_global24, length) + FrobeniusNorm(expected_lumped, length)), 1e-12) | EXPECT_LE(std::abs((lumped_work - consistent_work) - pairwise_work) / (lumped_work + consistent_work), 1e-12) ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(mass.Value().consistent_global24(row, column), expected_consistent(row, column), 1e-12) | EXPECT_NEAR(mass.Value().lumped_global24(row, column), expected_lumped(row, column), 1e-12) | EXPECT_LE(FrobeniusNorm(consistent_difference, length) / (FrobeniusNorm(mass.Value().consistent_global24, length) + FrobeniusNorm(expected_consistent, length)), 1e-12) | EXPECT_LE(FrobeniusNorm(lumped_difference, length) / (FrobeniusNorm(mass.Value().lumped_global24, length) + FrobeniusNorm(expected_lumped, length)), 1e-12) | EXPECT_LE(std::abs((lumped_work - consistent_work) - pairwise_work) / (lumped_work + consistent_work), 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.ReproducesAffineSquareVelocityWork Mitc4ShellMassContract.ReproducesAffineSquareVelocityWork; assertion 4개 tests/unit/elements/mitc4_shell_mass_contract_test.cpp Mitc4ShellMassContract.ReproducesAffineSquareVelocityWork 유지 원문 검사 body 및 assertion 동일. 7f75a86e005eff60d026f8d15ee5cae2fa95e0ee4232fca201dcb8f8f81df18c 7f75a86e005eff60d026f8d15ee5cae2fa95e0ee4232fca201dcb8f8f81df18c ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(consistent_work, 4.0 / 3.0, 1e-12) | EXPECT_NEAR(lumped_work - consistent_work, 8.0 / (3.0 * mesh * mesh), 1e-12) ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(mass.HasValue()) | EXPECT_NEAR(consistent_work, 4.0 / 3.0, 1e-12) | EXPECT_NEAR(lumped_work - consistent_work, 8.0 / (3.0 * mesh * mesh), 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@1-130 helper/oracle/fixture/include/static assertion 구간: FrobeniusNorm, MaximumEdgeLength, Rotate, DirectorCross, Dot, RotateCongruently, ExpectScaledCovariance, Node, Pointers, WarpedShell, Quadratic tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 80222550f9438f2e2e97eef70b77702be0f22f69e5dfd86f3f5f19eea8635684 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@207-208 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 47dd2fa44f91e342b907e45fa1b98a8b620d5590812aea5a8d5b7ceda6534e82 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@244-246 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 82c1f775b61eb1c42b39d952b6856edb28d0334faf8544d19199125c6142efa5 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@263-265 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 311a3ce7805d89cc36a6c5dc4f988aad66e9d65c53bd7fc5dae1c90f7731d0ae 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@399-400 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 86832b878d6de5792a69735ed18cbdf64bf5f90afdd3d773d77424b25242a7f6 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/mitc4_shell_mass_contract_test.cpp support@435-436 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_mass_contract_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/mitc4_shell_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 21개 tests/unit/elements/mitc4_shell_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0099c4e8370d63a61cdf37604008ecc5ff2dc96461b678052febd0a2fa248aa8 0099c4e8370d63a61cdf37604008ecc5ff2dc96461b678052febd0a2fa248aa8 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.ShapeFunctionsSatisfyNodalAndDerivativeIdentities Mitc4ShellKinematics.ShapeFunctionsSatisfyNodalAndDerivativeIdentities; assertion 5개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.ShapeFunctionsSatisfyNodalAndDerivativeIdentities 유지 원문 검사 body 및 assertion 동일. ce0d5d609ea4e2f0467991262a26eecb2e3dfe8f67b77325353db454953dfaf3 ce0d5d609ea4e2f0467991262a26eecb2e3dfe8f67b77325353db454953dfaf3 EXPECT_DOUBLE_EQ(shape.values[node_index], point == node_index ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ(value_sum, 1.0) | EXPECT_DOUBLE_EQ(xi_derivative_sum, 0.0) | EXPECT_DOUBLE_EQ(eta_derivative_sum, 0.0) | EXPECT_EQ(shape.values, (std::array{0.28125, 0.46875, 0.15625, 0.09375})) EXPECT_DOUBLE_EQ(shape.values[node_index], point == node_index ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ(value_sum, 1.0) | EXPECT_DOUBLE_EQ(xi_derivative_sum, 0.0) | EXPECT_DOUBLE_EQ(eta_derivative_sum, 0.0) | EXPECT_EQ(shape.values, (std::array{0.28125, 0.46875, 0.15625, 0.09375})) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.BuildsRightHandedFramesAndSeparatePhysicalDrillingMaps Mitc4ShellKinematics.BuildsRightHandedFramesAndSeparatePhysicalDrillingMaps; assertion 13개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.BuildsRightHandedFramesAndSeparatePhysicalDrillingMaps 유지 원문 검사 body 및 assertion 동일. a48c1e71779c07d794a93e7fb032fe851a7b6250798b500c11394d304eea2c51 a48c1e71779c07d794a93e7fb032fe851a7b6250798b500c11394d304eea2c51 ASSERT_TRUE(candidate.HasValue()) | ASSERT_EQ(physical.Rows(), 20U) | ASSERT_EQ(physical.Columns(), 24U) | ASSERT_EQ(drilling.Rows(), 4U) | ASSERT_EQ(drilling.Columns(), 24U) | EXPECT_DOUBLE_EQ( physical(physical_offset + component, global_offset + component), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 3U, global_offset + 4U), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 4U, global_offset + 5U), 1.0) | EXPECT_DOUBLE_EQ(drilling(node_index, global_offset + 3U), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 3U, global_dof), 0.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 4U, global_dof), 0.0) | EXPECT_DOUBLE_EQ(drilling(node_index, global_dof), 0.0) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), invalid_directors, Section(), Material()) .HasValue()) ASSERT_TRUE(candidate.HasValue()) | ASSERT_EQ(physical.Rows(), 20U) | ASSERT_EQ(physical.Columns(), 24U) | ASSERT_EQ(drilling.Rows(), 4U) | ASSERT_EQ(drilling.Columns(), 24U) | EXPECT_DOUBLE_EQ( physical(physical_offset + component, global_offset + component), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 3U, global_offset + 4U), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 4U, global_offset + 5U), 1.0) | EXPECT_DOUBLE_EQ(drilling(node_index, global_offset + 3U), 1.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 3U, global_dof), 0.0) | EXPECT_DOUBLE_EQ(physical(physical_offset + 4U, global_dof), 0.0) | EXPECT_DOUBLE_EQ(drilling(node_index, global_dof), 0.0) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), invalid_directors, Section(), Material()) .HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.FormsDirectColumnsAndAllCovariantTyingSamples Mitc4ShellKinematics.FormsDirectColumnsAndAllCovariantTyingSamples; assertion 37개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.FormsDirectColumnsAndAllCovariantTyingSamples 유지 원문 검사 body 및 assertion 동일. 96cbc6952413ebb1639c3743d6825a4b80c52b4c450d79ccddd004e64fa816c6 96cbc6952413ebb1639c3743d6825a4b80c52b4c450d79ccddd004e64fa816c6 ASSERT_TRUE(candidate.HasValue()) | ASSERT_EQ(direct.Rows(), 5U) | ASSERT_EQ(direct.Columns(), 20U) | EXPECT_DOUBLE_EQ(direct(0U, 0U), -0.25) | EXPECT_DOUBLE_EQ(direct(0U, 4U), -0.125) | EXPECT_DOUBLE_EQ(direct(1U, 1U), -0.25) | EXPECT_DOUBLE_EQ(direct(1U, 3U), 0.125) | EXPECT_DOUBLE_EQ(direct(2U, 0U), -0.25) | EXPECT_DOUBLE_EQ(direct(2U, 1U), -0.25) | EXPECT_DOUBLE_EQ(direct(2U, 3U), 0.125) | EXPECT_DOUBLE_EQ(direct(2U, 4U), -0.125) | EXPECT_DOUBLE_EQ(direct(3U, 2U), -0.25) | EXPECT_DOUBLE_EQ(direct(3U, 4U), 0.25) | EXPECT_DOUBLE_EQ(direct(4U, 2U), -0.25) | EXPECT_DOUBLE_EQ(direct(4U, 3U), -0.25) | ASSERT_EQ(samples.Rows(), 4U) | ASSERT_EQ(samples.Columns(), 20U) | EXPECT_DOUBLE_EQ(samples(0U, 2U), -0.25) | EXPECT_DOUBLE_EQ(samples(0U, 4U), 0.25) | EXPECT_DOUBLE_EQ(samples(0U, 7U), 0.25) | EXPECT_DOUBLE_EQ(samples(0U, 9U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 12U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 14U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 17U), -0.25) | EXPECT_DOUBLE_EQ(samples(1U, 19U), 0.25) | EXPECT_DOUBLE_EQ(samples(2U, 2U), -0.25) | EXPECT_DOUBLE_EQ(samples(2U, 3U), -0.25) | EXPECT_DOUBLE_EQ(samples(2U, 17U), 0.25) | EXPECT_DOUBLE_EQ(samples(2U, 18U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 7U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 8U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 12U), 0.25) | EXPECT_DOUBLE_EQ(samples(3U, 13U), -0.25) | EXPECT_EQ(weights.xi_zeta, (std::array{0.75, 0.25})) | EXPECT_EQ(weights.eta_zeta, (std::array{0.375, 0.625})) | EXPECT_DOUBLE_EQ(tied(3U, 4U), 2.0 * (0.5 * samples(0U, 4U) + 0.5 * samples(1U, 4U))) | EXPECT_DOUBLE_EQ(tied(4U, 3U), 2.0 * (0.5 * samples(2U, 3U) + 0.5 * samples(3U, 3U))) ASSERT_TRUE(candidate.HasValue()) | ASSERT_EQ(direct.Rows(), 5U) | ASSERT_EQ(direct.Columns(), 20U) | EXPECT_DOUBLE_EQ(direct(0U, 0U), -0.25) | EXPECT_DOUBLE_EQ(direct(0U, 4U), -0.125) | EXPECT_DOUBLE_EQ(direct(1U, 1U), -0.25) | EXPECT_DOUBLE_EQ(direct(1U, 3U), 0.125) | EXPECT_DOUBLE_EQ(direct(2U, 0U), -0.25) | EXPECT_DOUBLE_EQ(direct(2U, 1U), -0.25) | EXPECT_DOUBLE_EQ(direct(2U, 3U), 0.125) | EXPECT_DOUBLE_EQ(direct(2U, 4U), -0.125) | EXPECT_DOUBLE_EQ(direct(3U, 2U), -0.25) | EXPECT_DOUBLE_EQ(direct(3U, 4U), 0.25) | EXPECT_DOUBLE_EQ(direct(4U, 2U), -0.25) | EXPECT_DOUBLE_EQ(direct(4U, 3U), -0.25) | ASSERT_EQ(samples.Rows(), 4U) | ASSERT_EQ(samples.Columns(), 20U) | EXPECT_DOUBLE_EQ(samples(0U, 2U), -0.25) | EXPECT_DOUBLE_EQ(samples(0U, 4U), 0.25) | EXPECT_DOUBLE_EQ(samples(0U, 7U), 0.25) | EXPECT_DOUBLE_EQ(samples(0U, 9U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 12U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 14U), 0.25) | EXPECT_DOUBLE_EQ(samples(1U, 17U), -0.25) | EXPECT_DOUBLE_EQ(samples(1U, 19U), 0.25) | EXPECT_DOUBLE_EQ(samples(2U, 2U), -0.25) | EXPECT_DOUBLE_EQ(samples(2U, 3U), -0.25) | EXPECT_DOUBLE_EQ(samples(2U, 17U), 0.25) | EXPECT_DOUBLE_EQ(samples(2U, 18U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 7U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 8U), -0.25) | EXPECT_DOUBLE_EQ(samples(3U, 12U), 0.25) | EXPECT_DOUBLE_EQ(samples(3U, 13U), -0.25) | EXPECT_EQ(weights.xi_zeta, (std::array{0.75, 0.25})) | EXPECT_EQ(weights.eta_zeta, (std::array{0.375, 0.625})) | EXPECT_DOUBLE_EQ(tied(3U, 4U), 2.0 * (0.5 * samples(0U, 4U) + 0.5 * samples(1U, 4U))) | EXPECT_DOUBLE_EQ(tied(4U, 3U), 2.0 * (0.5 * samples(2U, 3U) + 0.5 * samples(3U, 3U))) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellConstitutive.BuildsExactPositiveDefiniteSectionMatricesAndRescalesUnits Mitc4ShellConstitutive.BuildsExactPositiveDefiniteSectionMatricesAndRescalesUnits; assertion 25개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellConstitutive.BuildsExactPositiveDefiniteSectionMatricesAndRescalesUnits 유지 원문 검사 body 및 assertion 동일. cafb3bc50695fe76a6a088a21953389aedb24938d4af5236ad5e1907069eef70 cafb3bc50695fe76a6a088a21953389aedb24938d4af5236ad5e1907069eef70 ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(cps.Rows(), 3U) | EXPECT_EQ(cps.Columns(), 3U) | EXPECT_EQ(c5.Rows(), 5U) | EXPECT_EQ(c5.Columns(), 5U) | EXPECT_EQ(a.Rows(), 3U) | EXPECT_EQ(d.Rows(), 3U) | EXPECT_EQ(as.Rows(), 2U) | EXPECT_DOUBLE_EQ(cps(0U, 0U), 128.0) | EXPECT_DOUBLE_EQ(cps(0U, 1U), 32.0) | EXPECT_DOUBLE_EQ(cps(2U, 2U), 48.0) | EXPECT_DOUBLE_EQ(c5(3U, 3U), 40.0) | EXPECT_DOUBLE_EQ(c5(4U, 4U), 40.0) | EXPECT_DOUBLE_EQ(a(0U, 0U), 256.0) | EXPECT_NEAR(d(0U, 0U), 256.0 / 3.0, 1.0e-12) | EXPECT_DOUBLE_EQ(as(0U, 0U), 80.0) | EXPECT_TRUE(HasPositiveCholeskyPivots(cps)) | EXPECT_TRUE(HasPositiveCholeskyPivots(c5)) | EXPECT_TRUE(HasPositiveCholeskyPivots(a)) | EXPECT_TRUE(HasPositiveCholeskyPivots(d)) | EXPECT_TRUE(HasPositiveCholeskyPivots(as)) | ASSERT_TRUE(scaled_candidate.HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(0.0), Material()) .HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(), Material(0.0, 0.25)) .HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(), Material(120.0, 0.5)) .HasValue()) ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(cps.Rows(), 3U) | EXPECT_EQ(cps.Columns(), 3U) | EXPECT_EQ(c5.Rows(), 5U) | EXPECT_EQ(c5.Columns(), 5U) | EXPECT_EQ(a.Rows(), 3U) | EXPECT_EQ(d.Rows(), 3U) | EXPECT_EQ(as.Rows(), 2U) | EXPECT_DOUBLE_EQ(cps(0U, 0U), 128.0) | EXPECT_DOUBLE_EQ(cps(0U, 1U), 32.0) | EXPECT_DOUBLE_EQ(cps(2U, 2U), 48.0) | EXPECT_DOUBLE_EQ(c5(3U, 3U), 40.0) | EXPECT_DOUBLE_EQ(c5(4U, 4U), 40.0) | EXPECT_DOUBLE_EQ(a(0U, 0U), 256.0) | EXPECT_NEAR(d(0U, 0U), 256.0 / 3.0, 1.0e-12) | EXPECT_DOUBLE_EQ(as(0U, 0U), 80.0) | EXPECT_TRUE(HasPositiveCholeskyPivots(cps)) | EXPECT_TRUE(HasPositiveCholeskyPivots(c5)) | EXPECT_TRUE(HasPositiveCholeskyPivots(a)) | EXPECT_TRUE(HasPositiveCholeskyPivots(d)) | EXPECT_TRUE(HasPositiveCholeskyPivots(as)) | ASSERT_TRUE(scaled_candidate.HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(0.0), Material()) .HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(), Material(0.0, 0.25)) .HasValue()) | EXPECT_FALSE(fesa::Mitc4Shell::Create(NodePointers(nodes), Directors(), Section(), Material(120.0, 0.5)) .HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.UsesOneFixedTwoByTwoByTwoQuadratureOrder Mitc4ShellKinematics.UsesOneFixedTwoByTwoByTwoQuadratureOrder; assertion 3개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.UsesOneFixedTwoByTwoByTwoQuadratureOrder 유지 원문 검사 body 및 assertion 동일. 65e8535a920578bf82342d17de948fc260aa98d66b9a261545430700d7c0a54b 65e8535a920578bf82342d17de948fc260aa98d66b9a261545430700d7c0a54b ASSERT_EQ(points.size(), 8U) | EXPECT_EQ(points[point].natural_coordinates, expected[point]) | EXPECT_DOUBLE_EQ(points[point].weight, 1.0) ASSERT_EQ(points.size(), 8U) | EXPECT_EQ(points[point].natural_coordinates, expected[point]) | EXPECT_DOUBLE_EQ(points[point].weight, 1.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.FormsFiniteScaledSymmetricPhysicalAndStabilizedStiffness Mitc4ShellKernel.FormsFiniteScaledSymmetricPhysicalAndStabilizedStiffness; assertion 14개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.FormsFiniteScaledSymmetricPhysicalAndStabilizedStiffness 유지 원문 검사 body 및 assertion 동일. e0c10c61702d95893fa0b05caff80fba991b5bc41ac9085dc477e5b1e1a37a07 e0c10c61702d95893fa0b05caff80fba991b5bc41ac9085dc477e5b1e1a37a07 ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_EQ(stiffness.physical_local20.Rows(), 20U) | EXPECT_EQ(stiffness.physical_local20.Columns(), 20U) | EXPECT_EQ(stiffness.physical_global24.Rows(), 24U) | EXPECT_EQ(stiffness.drilling_global24.Rows(), 24U) | EXPECT_EQ(stiffness.stabilized_global24.Rows(), 24U) | EXPECT_TRUE(std::isfinite((*matrix)(row, column))) | EXPECT_LE(ScaledSymmetryError(stiffness.physical_local20, 5U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.physical_global24, 6U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.drilling_global24, 6U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.stabilized_global24, 6U, 2.0), 1.0e-12) | ASSERT_TRUE(repeated_candidate.HasValue()) | EXPECT_DOUBLE_EQ(repeated.drilling_stiffness, stiffness.drilling_stiffness) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_EQ(stiffness.physical_local20.Rows(), 20U) | EXPECT_EQ(stiffness.physical_local20.Columns(), 20U) | EXPECT_EQ(stiffness.physical_global24.Rows(), 24U) | EXPECT_EQ(stiffness.drilling_global24.Rows(), 24U) | EXPECT_EQ(stiffness.stabilized_global24.Rows(), 24U) | EXPECT_TRUE(std::isfinite((*matrix)(row, column))) | EXPECT_LE(ScaledSymmetryError(stiffness.physical_local20, 5U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.physical_global24, 6U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.drilling_global24, 6U, 2.0), 1.0e-12) | EXPECT_LE(ScaledSymmetryError(stiffness.stabilized_global24, 6U, 2.0), 1.0e-12) | ASSERT_TRUE(repeated_candidate.HasValue()) | EXPECT_DOUBLE_EQ(repeated.drilling_stiffness, stiffness.drilling_stiffness) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.PreservesExactStiffnessRecoveryAndPatchAcrossVector3Migration Mitc4ShellKernel.PreservesExactStiffnessRecoveryAndPatchAcrossVector3Migration; assertion 13개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.PreservesExactStiffnessRecoveryAndPatchAcrossVector3Migration 유지 원문 검사 body 및 assertion 동일. dd458622e798b9a301ec132ddda748c8225d2dbc21d2623561828c90551d37ce dd458622e798b9a301ec132ddda748c8225d2dbc21d2623561828c90551d37ce ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_DOUBLE_EQ(frame_e3.X(), 0.0) | EXPECT_DOUBLE_EQ(frame_e3.Y(), 0.0) | EXPECT_DOUBLE_EQ(frame_e3.Z(), 1.0) | ASSERT_TRUE(recovery_candidate.HasValue()) | EXPECT_DOUBLE_EQ(stiffness.physical_local20(0U, 0U), 0x1.d555555555554p+6) | EXPECT_DOUBLE_EQ(stiffness.physical_local20(0U, 4U), 0.0) | EXPECT_DOUBLE_EQ(stiffness.physical_global24(2U, 2U), 0x1.aaaaaaaaaaaadp+5) | EXPECT_DOUBLE_EQ(recovery.strain_energy, 0x1.20a3d70a3d70bp+6) | EXPECT_EQ(recovery.points[0U].generalized_strain, kExpectedStrain) | EXPECT_DOUBLE_EQ(patch[0U], 0x1.9999999999999p-3) | EXPECT_DOUBLE_EQ(patch[component], 0.0) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_DOUBLE_EQ(frame_e3.X(), 0.0) | EXPECT_DOUBLE_EQ(frame_e3.Y(), 0.0) | EXPECT_DOUBLE_EQ(frame_e3.Z(), 1.0) | ASSERT_TRUE(recovery_candidate.HasValue()) | EXPECT_DOUBLE_EQ(stiffness.physical_local20(0U, 0U), 0x1.d555555555554p+6) | EXPECT_DOUBLE_EQ(stiffness.physical_local20(0U, 4U), 0.0) | EXPECT_DOUBLE_EQ(stiffness.physical_global24(2U, 2U), 0x1.aaaaaaaaaaaadp+5) | EXPECT_DOUBLE_EQ(recovery.strain_energy, 0x1.20a3d70a3d70bp+6) | EXPECT_EQ(recovery.points[0U].generalized_strain, kExpectedStrain) | EXPECT_DOUBLE_EQ(patch[0U], 0x1.9999999999999p-3) | EXPECT_DOUBLE_EQ(patch[component], 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.PreservesPhysicalEnergyUnderTwentyToTwentyFourCongruence Mitc4ShellKernel.PreservesPhysicalEnergyUnderTwentyToTwentyFourCongruence; assertion 5개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.PreservesPhysicalEnergyUnderTwentyToTwentyFourCongruence 유지 원문 검사 body 및 assertion 동일. 2811e8ca758b586de936d283c2520a2cea673d1b676771c2bc74d718e98a74a1 2811e8ca758b586de936d283c2520a2cea673d1b676771c2bc74d718e98a74a1 ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_NE(local_energy, 0.0) | ASSERT_NE(global_energy, 0.0) | EXPECT_LE(std::abs(global_energy - local_energy) / (std::abs(global_energy) + std::abs(local_energy)), 1.0e-12) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_NE(local_energy, 0.0) | ASSERT_NE(global_energy, 0.0) | EXPECT_LE(std::abs(global_energy - local_energy) / (std::abs(global_energy) + std::abs(local_energy)), 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.RetainsSixRigidModesAndHasExpectedPhysicalAndStabilizedRank Mitc4ShellKernel.RetainsSixRigidModesAndHasExpectedPhysicalAndStabilizedRank; assertion 9개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKernel.RetainsSixRigidModesAndHasExpectedPhysicalAndStabilizedRank 유지 원문 검사 body 및 assertion 동일. f388cb98b5e4d023a89e149554f8288d9250847c7a5738a0657dcbddf4e5220d f388cb98b5e4d023a89e149554f8288d9250847c7a5738a0657dcbddf4e5220d ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_EQ(NumericalRank(scaled_physical20), 14U) | EXPECT_EQ(NumericalRank(scaled_stabilized24), 18U) | ASSERT_GT(physical_norm, 0.0) | ASSERT_GT(stabilized_norm, 0.0) | ASSERT_GT(modeNorm, 0.0) | EXPECT_LE(scaled_physical24.Multiply(scaledMode).Norm() / (physical_norm * modeNorm), 1.0e-10) | EXPECT_LE(scaled_stabilized24.Multiply(scaledMode).Norm() / (stabilized_norm * modeNorm), 1.0e-10) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_EQ(NumericalRank(scaled_physical20), 14U) | EXPECT_EQ(NumericalRank(scaled_stabilized24), 18U) | ASSERT_GT(physical_norm, 0.0) | ASSERT_GT(stabilized_norm, 0.0) | ASSERT_GT(modeNorm, 0.0) | EXPECT_LE(scaled_physical24.Multiply(scaledMode).Norm() / (physical_norm * modeNorm), 1.0e-10) | EXPECT_LE(scaled_stabilized24.Multiply(scaledMode).Norm() / (stabilized_norm * modeNorm), 1.0e-10) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellPatch.ReproducesIndependentMembraneBendingShearAndTwistFields Mitc4ShellPatch.ReproducesIndependentMembraneBendingShearAndTwistFields; assertion 3개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellPatch.ReproducesIndependentMembraneBendingShearAndTwistFields 유지 원문 검사 body 및 assertion 동일. 85d6d3543ba1e1a40665939da00f88617f4bc27a8cb54ee6ca6f26848d3abe12 85d6d3543ba1e1a40665939da00f88617f4bc27a8cb54ee6ca6f26848d3abe12 ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_GT(QuadraticEnergy(stiffness, field), 0.0) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_GT(QuadraticEnergy(stiffness, field), 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.UsesAllPhysicalRotationDiagonalsAndFixedFactor Mitc4ShellDrilling.UsesAllPhysicalRotationDiagonalsAndFixedFactor; assertion 5개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.UsesAllPhysicalRotationDiagonalsAndFixedFactor 유지 원문 검사 body 및 assertion 동일. 8b0addafb6afb8018440c8784db44a56ead47ff68faa9389836024122e94a95f 8b0addafb6afb8018440c8784db44a56ead47ff68faa9389836024122e94a95f ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_TRUE(std::isfinite(diagonal)) | ASSERT_GE(diagonal, 0.0) | EXPECT_DOUBLE_EQ(stiffness.drilling_stiffness, 1.0e-3 * expected_sum / 8.0) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_TRUE(std::isfinite(diagonal)) | ASSERT_GE(diagonal, 0.0) | EXPECT_DOUBLE_EQ(stiffness.drilling_stiffness, 1.0e-3 * expected_sum / 8.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.IntegratesFlatConsistentAndScalarRowSumLumpedMass Mitc4ShellMass.IntegratesFlatConsistentAndScalarRowSumLumpedMass; assertion 10개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.IntegratesFlatConsistentAndScalarRowSumLumpedMass 유지 원문 검사 body 및 assertion 동일. 13d278e7f55aa0a671221d5a7335510907c58490fb3d02e8defde941b85ec16f 13d278e7f55aa0a671221d5a7335510907c58490fb3d02e8defde941b85ec16f ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(mass.nodal_moments[row][0U], 6.0, 1.0e-12) | EXPECT_NEAR(mass.nodal_moments[row][1U], 0.0, 1.0e-12) | EXPECT_NEAR(mass.nodal_moments[row][2U], 2.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[0U](row, column), pattern[row][column] * (2.0 / 3.0), 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[1U](row, column), 0.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[2U](row, column), pattern[row][column] * (2.0 / 9.0), 1.0e-12) | EXPECT_NEAR( mass.lumped_global24(6U * row + component, 6U * row + component), 6.0, 1.0e-12) | EXPECT_NEAR(mass.lumped_global24(6U * row + 3U + component, 6U * row + 3U + component), component == 2U ? 0.0 : 2.0, 1.0e-12) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(mass.nodal_moments[row][0U], 6.0, 1.0e-12) | EXPECT_NEAR(mass.nodal_moments[row][1U], 0.0, 1.0e-12) | EXPECT_NEAR(mass.nodal_moments[row][2U], 2.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[0U](row, column), pattern[row][column] * (2.0 / 3.0), 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[1U](row, column), 0.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[2U](row, column), pattern[row][column] * (2.0 / 9.0), 1.0e-12) | EXPECT_NEAR( mass.lumped_global24(6U * row + component, 6U * row + component), 6.0, 1.0e-12) | EXPECT_NEAR(mass.lumped_global24(6U * row + 3U + component, 6U * row + 3U + component), component == 2U ? 0.0 : 2.0, 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.RejectsNonpositiveAndNonfiniteDensity Mitc4ShellMass.RejectsNonpositiveAndNonfiniteDensity; assertion 4개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.RejectsNonpositiveAndNonfiniteDensity 유지 원문 검사 body 및 assertion 동일. 85d0b08a8b413046a1dd64d263b9a847bb933dc7411f5f611651c1fe772f8220 85d0b08a8b413046a1dd64d263b9a847bb933dc7411f5f611651c1fe772f8220 "ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_FALSE(mass.HasValue()) | ASSERT_EQ(mass.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(mass.GetStatus().Diagnostics()[0U].code, ""invalid-shell-mass"")" "ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_FALSE(mass.HasValue()) | ASSERT_EQ(mass.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(mass.GetStatus().Diagnostics()[0U].code, ""invalid-shell-mass"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.PreservesFiniteNodalVarianceAcrossDensityScale Mitc4ShellMass.PreservesFiniteNodalVarianceAcrossDensityScale; assertion 6개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.PreservesFiniteNodalVarianceAcrossDensityScale 유지 원문 검사 body 및 assertion 동일. 35f70d35723a1a6a5ca19dbe73e587dc1c35ec4828f98616aa2dab17d4920e3e 35f70d35723a1a6a5ca19dbe73e587dc1c35ec4828f98616aa2dab17d4920e3e ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_TRUE(std::isfinite(moments[0U])) | EXPECT_TRUE(std::isfinite(moments[1U])) | EXPECT_TRUE(std::isfinite(moments[2U])) | EXPECT_GT(moments[2U] - moments[1U] * (moments[1U] / moments[0U]), 0.0) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_TRUE(std::isfinite(moments[0U])) | EXPECT_TRUE(std::isfinite(moments[1U])) | EXPECT_TRUE(std::isfinite(moments[2U])) | EXPECT_GT(moments[2U] - moments[1U] * (moments[1U] / moments[0U]), 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.PreservesIndependentWarpedMomentOracle Mitc4ShellMass.PreservesIndependentWarpedMomentOracle; assertion 8개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.PreservesIndependentWarpedMomentOracle 유지 원문 검사 body 및 assertion 동일. 643cacec125570c0bafe60064f994407b8a1491199f88ce3b0e9af13472d444d 643cacec125570c0bafe60064f994407b8a1491199f88ce3b0e9af13472d444d ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(mass.consistent_moments[0U](0U, 0U), 17609.0 / 28800.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[1U](0U, 0U), 11003.0 / 1440000.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[2U](0U, 0U), 88177.0 / 6912000.0, 1.0e-12) | EXPECT_NEAR(total_mass, 7743.0 / 1600.0, 1.0e-12) | EXPECT_NEAR(total_first_moment, 739.0 / 12000.0, 1.0e-12) | EXPECT_NEAR(total_second_moment, 517.0 / 5120.0, 1.0e-12) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(mass.consistent_moments[0U](0U, 0U), 17609.0 / 28800.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[1U](0U, 0U), 11003.0 / 1440000.0, 1.0e-12) | EXPECT_NEAR(mass.consistent_moments[2U](0U, 0U), 88177.0 / 6912000.0, 1.0e-12) | EXPECT_NEAR(total_mass, 7743.0 / 1600.0, 1.0e-12) | EXPECT_NEAR(total_first_moment, 739.0 / 12000.0, 1.0e-12) | EXPECT_NEAR(total_second_moment, 517.0 / 5120.0, 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.MeetsPartialBoundaryCompleteMatrixTargets Mitc4ShellMass.MeetsPartialBoundaryCompleteMatrixTargets; assertion 7개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.MeetsPartialBoundaryCompleteMatrixTargets 유지 원문 검사 body 및 assertion 동일. 7b4ca55c7d526b275a1ca19f3c65a04f168c1ca514a329671b9fc594f4f468a1 7b4ca55c7d526b275a1ca19f3c65a04f168c1ca514a329671b9fc594f4f468a1 ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(stiffness_candidate.Value().drilling_stiffness, 19.0 / 4800.0, 1.0e-12) | EXPECT_NEAR(complete_stiffness, 10369.0 / 7500.0, 1.0e-12) | EXPECT_NEAR(lumped_mass, 3.0 / 50.0, 1.0e-12) | EXPECT_NEAR(complete_stiffness / lumped_mass, 10369.0 / 450.0, 1.0e-12) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | ASSERT_TRUE(mass_candidate.HasValue()) | EXPECT_NEAR(stiffness_candidate.Value().drilling_stiffness, 19.0 / 4800.0, 1.0e-12) | EXPECT_NEAR(complete_stiffness, 10369.0 / 7500.0, 1.0e-12) | EXPECT_NEAR(lumped_mass, 3.0 / 50.0, 1.0e-12) | EXPECT_NEAR(complete_stiffness / lumped_mass, 10369.0 / 450.0, 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.RecomputesCompleteMassAndStiffnessCovariantly Mitc4ShellMass.RecomputesCompleteMassAndStiffnessCovariantly; assertion 6개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellMass.RecomputesCompleteMassAndStiffnessCovariantly 유지 원문 검사 body 및 assertion 동일. 1235757b19e3bdacbfc2226ca9a3b839417e1f295516a1d4de6259acb4d0be43 1235757b19e3bdacbfc2226ca9a3b839417e1f295516a1d4de6259acb4d0be43 ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(original_stiffness.HasValue()) | ASSERT_TRUE(rotated_stiffness.HasValue()) | ASSERT_TRUE(original_mass.HasValue()) | ASSERT_TRUE(rotated_mass.HasValue()) ASSERT_TRUE(original.HasValue()) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(original_stiffness.HasValue()) | ASSERT_TRUE(rotated_stiffness.HasValue()) | ASSERT_TRUE(original_mass.HasValue()) | ASSERT_TRUE(rotated_mass.HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.FailsNonfiniteReferenceAndStabilizesEachPureDrillCoordinate Mitc4ShellDrilling.FailsNonfiniteReferenceAndStabilizesEachPureDrillCoordinate; assertion 13개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.FailsNonfiniteReferenceAndStabilizesEachPureDrillCoordinate 유지 원문 검사 body 및 assertion 동일. 0d2b529828fad74fc88ca1a545fe19d255f87c53d24275ec741bd114bbebe1ca 0d2b529828fad74fc88ca1a545fe19d255f87c53d24275ec741bd114bbebe1ca "ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_DOUBLE_EQ(stiffness.physical_global24.Multiply(pure_drill).Norm(), 0.0) | EXPECT_DOUBLE_EQ(drill_action[6U * node_index + 5U], stiffness.drilling_stiffness) | EXPECT_GT(QuadraticEnergy(stiffness.drilling_global24, pure_drill), 0.0) | ASSERT_TRUE(extreme_shell.HasValue()) | ASSERT_FALSE(failure.HasValue()) | ASSERT_EQ(failure.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(failure.GetStatus().Diagnostics()[0].code, ""invalid-shell-stiffness"") | ASSERT_FALSE(repeated_failure.HasValue()) | ASSERT_EQ(repeated_failure.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(repeated_failure.GetStatus().Diagnostics()[0].code, failure.GetStatus().Diagnostics()[0].code) | EXPECT_EQ(repeated_failure.GetStatus().Diagnostics()[0].message, failure.GetStatus().Diagnostics()[0].message)" "ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_DOUBLE_EQ(stiffness.physical_global24.Multiply(pure_drill).Norm(), 0.0) | EXPECT_DOUBLE_EQ(drill_action[6U * node_index + 5U], stiffness.drilling_stiffness) | EXPECT_GT(QuadraticEnergy(stiffness.drilling_global24, pure_drill), 0.0) | ASSERT_TRUE(extreme_shell.HasValue()) | ASSERT_FALSE(failure.HasValue()) | ASSERT_EQ(failure.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(failure.GetStatus().Diagnostics()[0].code, ""invalid-shell-stiffness"") | ASSERT_FALSE(repeated_failure.HasValue()) | ASSERT_EQ(repeated_failure.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(repeated_failure.GetStatus().Diagnostics()[0].code, failure.GetStatus().Diagnostics()[0].code) | EXPECT_EQ(repeated_failure.GetStatus().Diagnostics()[0].message, failure.GetStatus().Diagnostics()[0].message)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.ExcludesPureDrillFromPhysicalRecoveryAndEnergy Mitc4ShellDrilling.ExcludesPureDrillFromPhysicalRecoveryAndEnergy; assertion 8개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellDrilling.ExcludesPureDrillFromPhysicalRecoveryAndEnergy 유지 원문 검사 body 및 assertion 동일. 3dad0709f8a7d8746df1e04699e6777b558a71db23f22ac13f5c98ecbd6b084d 3dad0709f8a7d8746df1e04699e6777b558a71db23f22ac13f5c98ecbd6b084d ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_GT(stiffness_candidate.Value() .stabilized_global24.Multiply(pure_drill) .Norm(), 0.0) | ASSERT_TRUE(recovery_candidate.HasValue()) | EXPECT_DOUBLE_EQ(recovery.strain_energy, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(stiffness_candidate.HasValue()) | EXPECT_GT(stiffness_candidate.Value() .stabilized_global24.Multiply(pure_drill) .Norm(), 0.0) | ASSERT_TRUE(recovery_candidate.HasValue()) | EXPECT_DOUBLE_EQ(recovery.strain_energy, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_DOUBLE_EQ(value, 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellPhysicalRecovery.RecoversHandFieldAtFixedLocationsAndSectionPositions Mitc4ShellPhysicalRecovery.RecoversHandFieldAtFixedLocationsAndSectionPositions; assertion 8개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellPhysicalRecovery.RecoversHandFieldAtFixedLocationsAndSectionPositions 유지 원문 검사 body 및 assertion 동일. 2a4132bcc260b96aec7e5c144e1ccf92a65c7dec753c940e378fac3737f08d83 2a4132bcc260b96aec7e5c144e1ccf92a65c7dec753c940e378fac3737f08d83 ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(recovery_candidate.HasValue()) | ASSERT_EQ(recovery.points.size(), expected_coordinates.size()) | EXPECT_EQ(point.natural_coordinates, expected_coordinates[point_index]) | EXPECT_NEAR(point.generalized_strain[component], kGeneralized[component], 1.0e-12) | EXPECT_NEAR(point.section_resultant[component], kExpectedResultant[component], 1.0e-12) | EXPECT_NEAR(point.in_plane_stress[position][component], kExpectedStress[position][component], 1.0e-12) | EXPECT_NEAR(recovery.strain_energy, 72.16, 1.0e-12) ASSERT_TRUE(shell_candidate.HasValue()) | ASSERT_TRUE(recovery_candidate.HasValue()) | ASSERT_EQ(recovery.points.size(), expected_coordinates.size()) | EXPECT_EQ(point.natural_coordinates, expected_coordinates[point_index]) | EXPECT_NEAR(point.generalized_strain[component], kGeneralized[component], 1.0e-12) | EXPECT_NEAR(point.section_resultant[component], kExpectedResultant[component], 1.0e-12) | EXPECT_NEAR(point.in_plane_stress[position][component], kExpectedStress[position][component], 1.0e-12) | EXPECT_NEAR(recovery.strain_energy, 72.16, 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.RetainsReciprocalDeterminantOverflowGateAtTinyScale Mitc4ShellKinematics.RetainsReciprocalDeterminantOverflowGateAtTinyScale; assertion 3개 tests/unit/elements/mitc4_shell_test.cpp Mitc4ShellKinematics.RetainsReciprocalDeterminantOverflowGateAtTinyScale 유지 원문 검사 body 및 assertion 동일. d77bd95ff7630046878cec5f6a7057232c68b58f31e82d465f5565113f3324e2 d77bd95ff7630046878cec5f6a7057232c68b58f31e82d465f5565113f3324e2 "EXPECT_TRUE(fesa::Mitc4Shell::Create( NodePointers(nodes), Directors(), Section(2e-99), Material()).HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].code, ""invalid-shell-jacobian"")" "EXPECT_TRUE(fesa::Mitc4Shell::Create( NodePointers(nodes), Directors(), Section(2e-99), Material()).HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].code, ""invalid-shell-jacobian"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/mitc4_shell_test.cpp support@1-314 helper/oracle/fixture/include/static assertion 구간: Node, NodePointers, Section, Material, Dot, Cross, RotateAboutGlobalZ, Norm, ExpectVectorNear, ExpectOrthonormalRightHanded, ExpectMatrixNear, ExpectSymmetric, HasPositiveCholeskyPivots, if, FrobeniusNorm, ScaledSymmetryError, ScaledStiffness, SymmetricEigenvalues, NumericalRank, for, count_if, SymmetricOperatorNorm, QuadraticEnergy, PhysicalField, ExpectStrain, PhysicalRigidMode, PlanarNodes tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 297d7d85ca88c30c2fcba28e5add8b21550acc876c07a4f72e58bd5671374614 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/mitc4_shell_test.cpp support@345-346 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3871bd00e76dc57ff62fcabeb11b45bf1f6672a56529f21deb75b04370bafdcb 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/mitc4_shell_test.cpp support@400-401 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2b2e2de4330e6f7b2a8bc958c220fa5074cae2a894fdec078de809b1494a88c0 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/mitc4_shell_test.cpp support@455-456 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0e9489db8c044b5eac22c751c63b47dd64307874cd16a718c86fe5d4d8183fd5 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/mitc4_shell_test.cpp support@540-541 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3c4055c21da1e40459430c329495ace7af1b4404b56501366394a6789c7fd255 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/mitc4_shell_test.cpp support@555-556 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d78ec2164cda37dda980863249f1d1b8f01e17f082f71061e46180accb42a7b4 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/mitc4_shell_test.cpp support@656-657 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 297c797dbfa396881a360ce5e6061cad0ac811f3829247f77cbbe5c5d6ef704a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/mitc4_shell_test.cpp support@685-686 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 832b8cc9cff26faa1e25dd5159b323b77839151eb7675edaaf4f6ff39d91a055 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/mitc4_shell_test.cpp support@734-735 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6b0492533ad982e0ff4c2695c4236ab7345f4db760494bf6488680ce4ce90747 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/mitc4_shell_test.cpp support@797-798 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 50f5a0316e8562dadd3155c301e30fc715e3dc4c735874d08f7567003cc894f3 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/mitc4_shell_test.cpp support@890-923 helper/oracle/fixture/include/static assertion 구간: ExpectGlobalZCovariance tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ee879d5be51cb0e71626e93a8224bba6a7ee8b8929d124939771c99853c476ae 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/mitc4_shell_test.cpp support@1027-1028 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 87cbab04a4d00f30b6ca88389a388eaaee48f9eab162d6d6f1a1a33f1d1c4b41 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/mitc4_shell_test.cpp support@1070-1071 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9445081d68e7ef72263ba262a8525bf8acd4c08d0212a48e0f87fa92b0d99c6b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/mitc4_shell_test.cpp support@1108-1109 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 31f30d2b75293b2d01a063d68a9dfdb4e607867386078578966eb04a63d4496a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 17개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. 7274bef28faa7c8a38da9436edf00d3d2356031a9ee82618a8b16226f99d687f 7274bef28faa7c8a38da9436edf00d3d2356031a9ee82618a8b16226f99d687f 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.IntegratesTheRectangleNodalLumpedMassAndNull NonlinearMitc4Inertia.IntegratesTheRectangleNodalLumpedMassAndNull; assertion 5개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.IntegratesTheRectangleNodalLumpedMassAndNull 유지 원문 검사 body 및 assertion 동일. 717e3fc84d47b730a49e4677ba77a96fdeab3929b1e3b870c9fd73495ddf445e 717e3fc84d47b730a49e4677ba77a96fdeab3929b1e3b870c9fd73495ddf445e ASSERT_TRUE(evaluation.HasValue()) | EXPECT_NEAR(mass(6U * row, 6U * column), row == column ? 0.2 : 0.0, 1.0e-12) | EXPECT_NEAR(mass(6U * row + 3U, 6U * column + 3U), row == column ? 0.2 * 0.2 * 0.2 / 12.0 : 0.0, 1.0e-12) | EXPECT_NEAR(mass(6U * row + 5U, 6U * row + 5U), 0.0, 1.0e-12) | EXPECT_LE(mass.Multiply(drilling_null).Norm(), 1.0e-12) ASSERT_TRUE(evaluation.HasValue()) | EXPECT_NEAR(mass(6U * row, 6U * column), row == column ? 0.2 : 0.0, 1.0e-12) | EXPECT_NEAR(mass(6U * row + 3U, 6U * column + 3U), row == column ? 0.2 * 0.2 * 0.2 / 12.0 : 0.0, 1.0e-12) | EXPECT_NEAR(mass(6U * row + 5U, 6U * row + 5U), 0.0, 1.0e-12) | EXPECT_LE(mass.Multiply(drilling_null).Norm(), 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.UsesPhysicalAccelerationAndExactCurrentForce NonlinearMitc4Inertia.UsesPhysicalAccelerationAndExactCurrentForce; assertion 3개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.UsesPhysicalAccelerationAndExactCurrentForce 유지 원문 검사 body 및 assertion 동일. ddce9716997e9842683e77402fbf5b3b865335261d285318138c471950069a35 ddce9716997e9842683e77402fbf5b3b865335261d285318138c471950069a35 ASSERT_TRUE(evaluation.HasValue()) | EXPECT_NEAR(evaluation.Value().force[index], expected[index], 1.0e-11) | EXPECT_NEAR(evaluation.Value().convective_force[index], 0.0, 1.0e-11) ASSERT_TRUE(evaluation.HasValue()) | EXPECT_NEAR(evaluation.Value().force[index], expected[index], 1.0e-11) | EXPECT_NEAR(evaluation.Value().convective_force[index], 0.0, 1.0e-11) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.PreservesTinyAngularAccelerationAlongsideRigidTranslationAcceleration NonlinearMitc4Inertia.PreservesTinyAngularAccelerationAlongsideRigidTranslationAcceleration; assertion 5개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.PreservesTinyAngularAccelerationAlongsideRigidTranslationAcceleration 유지 원문 검사 body 및 assertion 동일. 9b2033a70c6b58db45bfc94101520b88db958b78ab526763fbe07eb9c2971b7f 9b2033a70c6b58db45bfc94101520b88db958b78ab526763fbe07eb9c2971b7f ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_DOUBLE_EQ(actual.Value().convective_force[full], 0.0) | ASSERT_GT(scale, 0.0) | EXPECT_LE(error / scale, 1e-12) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_DOUBLE_EQ(actual.Value().convective_force[full], 0.0) | ASSERT_GT(scale, 0.0) | EXPECT_LE(error / scale, 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.MixedScaleRotationDerivativeAndAngularMomentum NonlinearMitc4Inertia.MixedScaleRotationDerivativeAndAngularMomentum; assertion 6개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.MixedScaleRotationDerivativeAndAngularMomentum 유지 원문 검사 body 및 assertion 동일. 81949ff3504ddccc0cbef056e78d8596ee31b99ff69aae08a4dc6503e09bd230 81949ff3504ddccc0cbef056e78d8596ee31b99ff69aae08a4dc6503e09bd230 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_LE(derivative_error / (nodal_rotary_inertia * epsilon), 1e-12) | EXPECT_LE(rate_error / (nodal_rotary_inertia * epsilon), 1e-12) | ASSERT_TRUE(moving.HasValue()) | EXPECT_LE(momentum_error / (nodal_rotary_inertia * epsilon), 1e-12) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_LE(derivative_error / (nodal_rotary_inertia * epsilon), 1e-12) | EXPECT_LE(rate_error / (nodal_rotary_inertia * epsilon), 1e-12) | ASSERT_TRUE(moving.HasValue()) | EXPECT_LE(momentum_error / (nodal_rotary_inertia * epsilon), 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.FlatRotatedLargeOffsetKeepsCenteredRotationalInertiaExactlyZero NonlinearMitc4Inertia.FlatRotatedLargeOffsetKeepsCenteredRotationalInertiaExactlyZero; assertion 4개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.FlatRotatedLargeOffsetKeepsCenteredRotationalInertiaExactlyZero 유지 원문 검사 body 및 assertion 동일. f5b834d0bbcf878284e79ee64f605b5d50f2671a207a226ab6226be2b1d242c8 f5b834d0bbcf878284e79ee64f605b5d50f2671a207a226ab6226be2b1d242c8 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_DOUBLE_EQ(value.Value().force[6U * node + 3U + component], 0.0) | EXPECT_DOUBLE_EQ(mass_times_acceleration[6U * node + 3U + component], 0.0) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_DOUBLE_EQ(value.Value().force[6U * node + 3U + component], 0.0) | EXPECT_DOUBLE_EQ(mass_times_acceleration[6U * node + 3U + component], 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.WarpedGeometryRetainsNonzeroFirstThicknessMoment NonlinearMitc4Inertia.WarpedGeometryRetainsNonzeroFirstThicknessMoment; assertion 3개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.WarpedGeometryRetainsNonzeroFirstThicknessMoment 유지 원문 검사 body 및 assertion 동일. 89f7e9f4b875516c794ec880dbf48d5a8e55b0402e9a1c3dfa1382b255cacf26 89f7e9f4b875516c794ec880dbf48d5a8e55b0402e9a1c3dfa1382b255cacf26 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_GT(coupling, 0.0) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_GT(coupling, 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.InverseIdentityAndCurrentAnalyticNullAtFiniteRotation DynamicRotation.InverseIdentityAndCurrentAnalyticNullAtFiniteRotation; assertion 10개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.InverseIdentityAndCurrentAnalyticNullAtFiniteRotation 유지 원문 검사 body 및 assertion 동일. a38ec8c66743c96d9852840c0a2a33e0c3a14f330dd00369fcaedf51b341f3ee a38ec8c66743c96d9852840c0a2a33e0c3a14f330dd00369fcaedf51b341f3ee ASSERT_TRUE(value.HasValue()) | EXPECT_GT(mapped[column], 0.0) | EXPECT_NEAR(value.Value().drill_null.Norm(), 1.0, 1e-12) | EXPECT_NEAR(mapped[row], 0.0, 1e-12) | ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | EXPECT_LE(mass.Multiply(n).Norm() / MatrixNorm(mass), 1.0e-12) | EXPECT_LE(std::abs(n.Dot(scaled_force)) / scaled_force.Norm(), 1.0e-10) | EXPECT_GT(mass.Multiply(fixed_drill).Norm() / MatrixNorm(mass), 1.0e-8) ASSERT_TRUE(value.HasValue()) | EXPECT_GT(mapped[column], 0.0) | EXPECT_NEAR(value.Value().drill_null.Norm(), 1.0, 1e-12) | EXPECT_NEAR(mapped[row], 0.0, 1e-12) | ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | EXPECT_LE(mass.Multiply(n).Norm() / MatrixNorm(mass), 1.0e-12) | EXPECT_LE(std::abs(n.Dot(scaled_force)) / scaled_force.Norm(), 1.0e-10) | EXPECT_GT(mass.Multiply(fixed_drill).Norm() / MatrixNorm(mass), 1.0e-8) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.RejectsIllConditionedPhysicalMassWithoutDeletingIt NonlinearMitc4Inertia.RejectsIllConditionedPhysicalMassWithoutDeletingIt; assertion 3개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.RejectsIllConditionedPhysicalMassWithoutDeletingIt 유지 원문 검사 body 및 assertion 동일. 5f0adf729846e876c90ddcd5db8123c9005a2541189d7a72ac1736116d411500 5f0adf729846e876c90ddcd5db8123c9005a2541189d7a72ac1736116d411500 "EXPECT_TRUE(normal.Create().HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].code, ""ill-conditioned-nonlinear-inertia-positive-mass"")" "EXPECT_TRUE(normal.Create().HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].code, ""ill-conditioned-nonlinear-inertia-positive-mass"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.ConvectiveForceDoesNotLoseSmallValuesToAcceleration NonlinearMitc4Inertia.ConvectiveForceDoesNotLoseSmallValuesToAcceleration; assertion 5개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.ConvectiveForceDoesNotLoseSmallValuesToAcceleration 유지 원문 검사 body 및 assertion 동일. 25d5baa1b968f822aa4dd035d4e323310708e8e73f2ceaffcf3f657b99b2b86a 25d5baa1b968f822aa4dd035d4e323310708e8e73f2ceaffcf3f657b99b2b86a ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(ordinary.HasValue()) | ASSERT_TRUE(large.HasValue()) | EXPECT_GT(ordinary.Value().convective_force.Norm(), 0.0) | EXPECT_EQ(ordinary.Value().convective_force[i], large.Value().convective_force[i]) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(ordinary.HasValue()) | ASSERT_TRUE(large.HasValue()) | EXPECT_GT(ordinary.Value().convective_force.Norm(), 0.0) | EXPECT_EQ(ordinary.Value().convective_force[i], large.Value().convective_force[i]) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.PartialAndEffectiveTangentsPassTheScaledFixedSweep NonlinearMitc4Inertia.PartialAndEffectiveTangentsPassTheScaledFixedSweep; assertion 5개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.PartialAndEffectiveTangentsPassTheScaledFixedSweep 유지 원문 검사 body 및 assertion 동일. e5946458fbc3006710a0af48c556f989a6be04fde87c4c61c0e4bd18366c8315 e5946458fbc3006710a0af48c556f989a6be04fde87c4c61c0e4bd18366c8315 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(vp.HasValue()) | ASSERT_TRUE(vm.HasValue()) | EXPECT_TRUE(consecutive) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(vp.HasValue()) | ASSERT_TRUE(vm.HasValue()) | EXPECT_TRUE(consecutive) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.MatchesIndependentWarpedNodalMomentsEnergyAndPower NonlinearMitc4Inertia.MatchesIndependentWarpedNodalMomentsEnergyAndPower; assertion 17개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.MatchesIndependentWarpedNodalMomentsEnergyAndPower 유지 원문 검사 body 및 assertion 동일. 259d4f9247683cf706cedd32eb2bf44ce9e33d0ed8119ef7a57f197466e3d8aa 259d4f9247683cf706cedd32eb2bf44ce9e33d0ed8119ef7a57f197466e3d8aa ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_LE(mass_error / MatrixNorm(expected_mass), 1.0e-12) | EXPECT_LE(symmetry_error / MatrixNorm(expected_mass), 1.0e-12) | EXPECT_LE( std::abs(value.Value().kinetic_energy - oracle.energy) / oracle.energy, 1.0e-12) | EXPECT_LE(std::abs(0.5 * state.v.Dot(value.Value().mass.Multiply(state.v)) - oracle.energy) / oracle.energy, 1.0e-12) | EXPECT_LE(std::abs(state.v.Dot(value.Value().force) - oracle.power) / std::abs(oracle.power), 1.0e-10) | EXPECT_LE(Difference(ApplyD(value.Value().force, fixture.Length()), ApplyD(oracle.force, fixture.Length()), 1.0) .Norm() / ApplyD(oracle.force, fixture.Length()).Norm(), 1.0e-12) | EXPECT_LE((value.Value().momentum - oracle.momentum).Norm() / oracle.momentum.Norm(), 1.0e-12) | EXPECT_LE( (value.Value().angular_momentum - oracle.angular_momentum).Norm() / oracle.angular_momentum.Norm(), 1.0e-12) | EXPECT_LE((value.Value().momentum_rate - oracle.momentum_rate).Norm() / oracle.momentum_rate.Norm(), 1.0e-12) | EXPECT_LE( (value.Value().angular_momentum_rate - oracle.angular_momentum_rate) .Norm() / oracle.angular_momentum_rate.Norm(), 1.0e-12) | ASSERT_TRUE(bi.HasValue()) | ASSERT_TRUE(bj.HasValue()) | EXPECT_LE(std::abs(numerator[k] / denominator[k] - oracle.moments[k][i][j]) / scale, 1.0e-12) | ASSERT_TRUE(translation.HasValue()) | EXPECT_NEAR(translation.Value().kinetic_energy / oracle.total_mass, 0.25, 1.0e-12) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | EXPECT_LE(mass_error / MatrixNorm(expected_mass), 1.0e-12) | EXPECT_LE(symmetry_error / MatrixNorm(expected_mass), 1.0e-12) | EXPECT_LE( std::abs(value.Value().kinetic_energy - oracle.energy) / oracle.energy, 1.0e-12) | EXPECT_LE(std::abs(0.5 * state.v.Dot(value.Value().mass.Multiply(state.v)) - oracle.energy) / oracle.energy, 1.0e-12) | EXPECT_LE(std::abs(state.v.Dot(value.Value().force) - oracle.power) / std::abs(oracle.power), 1.0e-10) | EXPECT_LE(Difference(ApplyD(value.Value().force, fixture.Length()), ApplyD(oracle.force, fixture.Length()), 1.0) .Norm() / ApplyD(oracle.force, fixture.Length()).Norm(), 1.0e-12) | EXPECT_LE((value.Value().momentum - oracle.momentum).Norm() / oracle.momentum.Norm(), 1.0e-12) | EXPECT_LE( (value.Value().angular_momentum - oracle.angular_momentum).Norm() / oracle.angular_momentum.Norm(), 1.0e-12) | EXPECT_LE((value.Value().momentum_rate - oracle.momentum_rate).Norm() / oracle.momentum_rate.Norm(), 1.0e-12) | EXPECT_LE( (value.Value().angular_momentum_rate - oracle.angular_momentum_rate) .Norm() / oracle.angular_momentum_rate.Norm(), 1.0e-12) | ASSERT_TRUE(bi.HasValue()) | ASSERT_TRUE(bj.HasValue()) | EXPECT_LE(std::abs(numerator[k] / denominator[k] - oracle.moments[k][i][j]) / scale, 1.0e-12) | ASSERT_TRUE(translation.HasValue()) | EXPECT_NEAR(translation.Value().kinetic_energy / oracle.total_mass, 0.25, 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.InitialMassMatchesEigenLumpingAndFiniteEnergyObeysJensen NonlinearMitc4Inertia.InitialMassMatchesEigenLumpingAndFiniteEnergyObeysJensen; assertion 8개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.InitialMassMatchesEigenLumpingAndFiniteEnergyObeysJensen 유지 원문 검사 body 및 assertion 동일. c9725cc3d16533a26647720f977a41ee8e1edcbfddf43560b3abf4a638464969 c9725cc3d16533a26647720f977a41ee8e1edcbfddf43560b3abf4a638464969 ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(eigen.HasValue()) | ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(initial.HasValue()) | EXPECT_NEAR(initial.Value().mass(i, j), eigen.Value().lumped_global24(i, j), 1.0e-12) | EXPECT_EQ(initial.Value().mass(i, j), 0.0) | EXPECT_GT(lumped.energy - consistent.energy, 0.0) | EXPECT_NEAR(lumped.total_mass, consistent.total_mass, 1.0e-12) ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(eigen.HasValue()) | ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(initial.HasValue()) | EXPECT_NEAR(initial.Value().mass(i, j), eigen.Value().lumped_global24(i, j), 1.0e-12) | EXPECT_EQ(initial.Value().mass(i, j), 0.0) | EXPECT_GT(lumped.energy - consistent.energy, 0.0) | EXPECT_NEAR(lumped.total_mass, consistent.total_mass, 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.ThirdDerivativesMatchAllPermutationsAndInteriorSweep DynamicRotation.ThirdDerivativesMatchAllPermutationsAndInteriorSweep; assertion 6개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.ThirdDerivativesMatchAllPermutationsAndInteriorSweep 유지 원문 검사 body 및 assertion 동일. fed5b777e0226e78a7a852200777d80a3d9736b13300e6670b9d244bea2fe464 fed5b777e0226e78a7a852200777d80a3d9736b13300e6670b9d244bea2fe464 ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_LE((analytic - oracle).Norm(), 1.0e-12) | EXPECT_LE((analytic - Third(value.Value(), directions[t], directions[p], directions[r])) .Norm(), 1.0e-12) | EXPECT_TRUE(consecutive[r][t]) ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_LE((analytic - oracle).Norm(), 1.0e-12) | EXPECT_LE((analytic - Third(value.Value(), directions[t], directions[p], directions[r])) .Norm(), 1.0e-12) | EXPECT_TRUE(consecutive[r][t]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.NormalizedNullDerivativesIncludeNormalizationCurvature DynamicRotation.NormalizedNullDerivativesIncludeNormalizationCurvature; assertion 9개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.NormalizedNullDerivativesIncludeNormalizationCurvature 유지 원문 검사 body 및 assertion 동일. b1519383145d86730f51475376a73c825a7eb748c5e69bbe9a502bc32069efcd b1519383145d86730f51475376a73c825a7eb748c5e69bbe9a502bc32069efcd ASSERT_TRUE(value.HasValue()) | EXPECT_NEAR(value.Value().drill_null.Norm(), 1.0, 1.0e-12) | EXPECT_NEAR(value.Value().drill_null.Dot(first), 0.0, 1.0e-12) | EXPECT_NEAR( value.Value().drill_null.Dot(value.Value().null_directional_second), -first.Dot(first), 1.0e-12) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_TRUE(consecutive) | EXPECT_FALSE(fesa::EvaluateDynamicRotation({}, {0, 0, 2}, {}, {}).HasValue()) | EXPECT_FALSE( fesa::EvaluateDynamicRotation( {std::numeric_limits::quiet_NaN(), 0, 0}, initial, {}, {}) .HasValue()) ASSERT_TRUE(value.HasValue()) | EXPECT_NEAR(value.Value().drill_null.Norm(), 1.0, 1.0e-12) | EXPECT_NEAR(value.Value().drill_null.Dot(first), 0.0, 1.0e-12) | EXPECT_NEAR( value.Value().drill_null.Dot(value.Value().null_directional_second), -first.Dot(first), 1.0e-12) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_TRUE(consecutive) | EXPECT_FALSE(fesa::EvaluateDynamicRotation({}, {0, 0, 2}, {}, {}).HasValue()) | EXPECT_FALSE( fesa::EvaluateDynamicRotation( {std::numeric_limits::quiet_NaN(), 0, 0}, initial, {}, {}) .HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.UnitAndGlobalFrameChangesPreservePhysicalMetrics NonlinearMitc4Inertia.UnitAndGlobalFrameChangesPreservePhysicalMetrics; assertion 14개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.UnitAndGlobalFrameChangesPreservePhysicalMetrics 유지 원문 검사 body 및 assertion 동일. d1d1d2152f232cee2453d1b80ac93c5759be9c4a35df8128bf14ddec28c2b2c8 d1d1d2152f232cee2453d1b80ac93c5759be9c4a35df8128bf14ddec28c2b2c8 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(converted_inertia.HasValue()) | ASSERT_TRUE(uv.HasValue()) | EXPECT_LE(std::abs(uv.Value().kinetic_energy / energy_scale - value.Value().kinetic_energy) / value.Value().kinetic_energy, 1.0e-12) | EXPECT_LE(error / MatrixNorm(original_scaled), 1.0e-12) | EXPECT_LE(Difference(original_force, converted_force, 1.0).Norm() / original_force.Norm(), 1.0e-10) | ASSERT_TRUE(frame_inertia.HasValue()) | ASSERT_TRUE(fv.HasValue()) | EXPECT_LE(std::abs(fv.Value().kinetic_energy - value.Value().kinetic_energy) / value.Value().kinetic_energy, 1.0e-12) | EXPECT_LE((fv.Value().momentum - rotate(value.Value().momentum)).Norm() / value.Value().momentum.Norm(), 1.0e-12) | EXPECT_LE( (fv.Value().angular_momentum - rotate(value.Value().angular_momentum)) .Norm() / value.Value().angular_momentum.Norm(), 1.0e-12) | EXPECT_LE((actual - expected).Norm() / expected.Norm(), 1.0e-10) | EXPECT_LE(covariance_error / MatrixNorm(value.Value().mass), 1.0e-12) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(converted_inertia.HasValue()) | ASSERT_TRUE(uv.HasValue()) | EXPECT_LE(std::abs(uv.Value().kinetic_energy / energy_scale - value.Value().kinetic_energy) / value.Value().kinetic_energy, 1.0e-12) | EXPECT_LE(error / MatrixNorm(original_scaled), 1.0e-12) | EXPECT_LE(Difference(original_force, converted_force, 1.0).Norm() / original_force.Norm(), 1.0e-10) | ASSERT_TRUE(frame_inertia.HasValue()) | ASSERT_TRUE(fv.HasValue()) | EXPECT_LE(std::abs(fv.Value().kinetic_energy - value.Value().kinetic_energy) / value.Value().kinetic_energy, 1.0e-12) | EXPECT_LE((fv.Value().momentum - rotate(value.Value().momentum)).Norm() / value.Value().momentum.Norm(), 1.0e-12) | EXPECT_LE( (fv.Value().angular_momentum - rotate(value.Value().angular_momentum)) .Norm() / value.Value().angular_momentum.Norm(), 1.0e-12) | EXPECT_LE((actual - expected).Norm() / expected.Norm(), 1.0e-10) | EXPECT_LE(covariance_error / MatrixNorm(value.Value().mass), 1.0e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.MatchesEightyDigitIndependentBlockExponentialAnchors DynamicRotation.MatchesEightyDigitIndependentBlockExponentialAnchors; assertion 4개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp DynamicRotation.MatchesEightyDigitIndependentBlockExponentialAnchors 유지 원문 검사 body 및 assertion 동일. afd5da8bcdde50b87721fb93bff8d47f1886f6b6812e83259d1208ec2b2dfb06 afd5da8bcdde50b87721fb93bff8d47f1886f6b6812e83259d1208ec2b2dfb06 ASSERT_TRUE(value.HasValue()) | EXPECT_LE((Third(value.Value(), e1, e1, e1) - expected[i][0]).Norm(), 1.0e-12) | EXPECT_LE((Third(value.Value(), e1, e2, e3) - expected[i][1]).Norm(), 1.0e-12) | EXPECT_LE( (Third(value.Value(), mixed, mixed, mixed) - expected[i][2]).Norm(), 1.0e-12) ASSERT_TRUE(value.HasValue()) | EXPECT_LE((Third(value.Value(), e1, e1, e1) - expected[i][0]).Norm(), 1.0e-12) | EXPECT_LE((Third(value.Value(), e1, e2, e3) - expected[i][1]).Norm(), 1.0e-12) | EXPECT_LE( (Third(value.Value(), mixed, mixed, mixed) - expected[i][2]).Norm(), 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.IndependentOracleDetectsEachRequiredOmission NonlinearMitc4Inertia.IndependentOracleDetectsEachRequiredOmission; assertion 10개 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp NonlinearMitc4Inertia.IndependentOracleDetectsEachRequiredOmission 유지 원문 검사 body 및 assertion 동일. cd75fd015eb68d73365632968c883ff3e0361d16f81d4c93e4e1f28bb39fba01 cd75fd015eb68d73365632968c883ff3e0361d16f81d4c93e4e1f28bb39fba01 ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_GT(Difference(mutant, fd, 1.0).Norm() / (mutant.Norm() + fd.Norm()), 1.0e-6) | EXPECT_GT(Difference(ApplyD(no_convective, fixture.Length()), ApplyD(oracle.force, fixture.Length()), 1.0) .Norm() / ApplyD(oracle.force, fixture.Length()).Norm(), 1.0e-6) | ASSERT_TRUE(vplus.HasValue()) | ASSERT_TRUE(vminus.HasValue()) | EXPECT_GT(vfd.Norm(), 0.0) | EXPECT_GT(Difference(missing_dv, vfd, 1.0).Norm() / vfd.Norm(), 1.0e-6) ASSERT_TRUE(inertia.HasValue()) | ASSERT_TRUE(value.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_GT(Difference(mutant, fd, 1.0).Norm() / (mutant.Norm() + fd.Norm()), 1.0e-6) | EXPECT_GT(Difference(ApplyD(no_convective, fixture.Length()), ApplyD(oracle.force, fixture.Length()), 1.0) .Norm() / ApplyD(oracle.force, fixture.Length()).Norm(), 1.0e-6) | ASSERT_TRUE(vplus.HasValue()) | ASSERT_TRUE(vminus.HasValue()) | EXPECT_GT(vfd.Norm(), 0.0) | EXPECT_GT(Difference(missing_dv, vfd, 1.0).Norm() / vfd.Norm(), 1.0e-6) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@1-81 helper/oracle/fixture/include/static assertion 구간: Node, Nodes, Pointers, Frames, Inertia, AddRotation, Difference tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. d69ff9a4f48af8ab96bdc107989f8cb690b3bd03e7302f69630eb2aaf558871a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@177-180 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. 494a3ced593041a4d3ea62a53340f75d552373b567d3ec7ca404700ea0c42534 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@251-443 helper/oracle/fixture/include/static assertion 구간: Multiply, BlockExponentialDerivative, if, Second, Third, MatrixNorm, Fixture, Length, Create, Warped, WarpedNonuniformDirectors, RotateFrame, FlatRotatedLargeOffset, State, FiniteState, ApplyD tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. 222b0316695fd6559144c2fdfdaa9c8cac92e01ef32ad6685b7aff0384ebcc78 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@481-492 helper/oracle/fixture/include/static assertion 구간: ScaledMatrix tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. b069eba225770ec661e53431edf8f9c1df71af521445644b835793d185124063 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@647-771 helper/oracle/fixture/include/static assertion 구간: Integral, IntegrateFivePoints tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. af98d35bc14d69e1d57beb2df3c82bd29703cc630af22865fd95463987225795 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_inertia_test.cpp support@1297-1298 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_inertia_test.cpp file-support 유지 제거된 inverse API 대신 J*n의 off-axis=0, 양의 축방향, norm=1 조건으로 유일한 positive unit drill-null을 검사한다. 같은 1e-12 기준이며 원래 inverse-column 정규화·identity와 동등한 invariant이다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 16개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a2053f0d24af51ecdfe345ef14267b8a57a2530e994c46da68a5bb17f7250341 a2053f0d24af51ecdfe345ef14267b8a57a2530e994c46da68a5bb17f7250341 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.EvaluatesResidualTangentAndRecoveryAtOneTrial NonlinearMitc4Residual.EvaluatesResidualTangentAndRecoveryAtOneTrial; assertion 10개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.EvaluatesResidualTangentAndRecoveryAtOneTrial 유지 원문 검사 body 및 assertion 동일. 2bf5788132debdfcd7990b78d66be3ec5eb35b7039badcbff3737f49e5e0502a 2bf5788132debdfcd7990b78d66be3ec5eb35b7039badcbff3737f49e5e0502a ASSERT_TRUE(recovery.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().internal_residual.Size(), 24U) | EXPECT_EQ(result.Value().internal_tangent.Rows(), 24U) | EXPECT_EQ(result.Value().internal_tangent.Columns(), 24U) | EXPECT_DOUBLE_EQ(result.Value().physical_strain_energy, result.Value().recovery.physical_strain_energy) | EXPECT_DOUBLE_EQ(result.Value().recovery.physical_strain_energy, recovery.Value().physical_strain_energy) | EXPECT_DOUBLE_EQ(result.Value().internal_residual[index], result.Value().internal_force[index]) | EXPECT_EQ(result.Value().recovery.gauss_points[point].generalized_strain, recovery.Value().gauss_points[point].generalized_strain) | EXPECT_EQ(result.Value().recovery.gauss_points[point].section_resultant, recovery.Value().gauss_points[point].section_resultant) ASSERT_TRUE(recovery.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().internal_residual.Size(), 24U) | EXPECT_EQ(result.Value().internal_tangent.Rows(), 24U) | EXPECT_EQ(result.Value().internal_tangent.Columns(), 24U) | EXPECT_DOUBLE_EQ(result.Value().physical_strain_energy, result.Value().recovery.physical_strain_energy) | EXPECT_DOUBLE_EQ(result.Value().recovery.physical_strain_energy, recovery.Value().physical_strain_energy) | EXPECT_DOUBLE_EQ(result.Value().internal_residual[index], result.Value().internal_force[index]) | EXPECT_EQ(result.Value().recovery.gauss_points[point].generalized_strain, recovery.Value().gauss_points[point].generalized_strain) | EXPECT_EQ(result.Value().recovery.gauss_points[point].section_resultant, recovery.Value().gauss_points[point].section_resultant) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Tangent.MatchesTheApprovedDirectionalSchedule NonlinearMitc4Tangent.MatchesTheApprovedDirectionalSchedule; assertion 9개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Tangent.MatchesTheApprovedDirectionalSchedule 유지 원문 검사 body 및 assertion 동일. 852d3d6bf5b1eb3a07504509b711d63cf08be10b7b4309a5668469b327b54991 852d3d6bf5b1eb3a07504509b711d63cf08be10b7b4309a5668469b327b54991 ASSERT_TRUE(equilibrium.HasValue()) | ASSERT_GT(ChannelNorm(analytical, true), 0.0) | ASSERT_GT(ChannelNorm(analytical, false), 0.0) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_GE(force_order_count, 2U) | EXPECT_GE(moment_order_count, 2U) | EXPECT_LE(force_errors[3U], 1.0e-6) | EXPECT_LE(moment_errors[3U], 1.0e-6) ASSERT_TRUE(equilibrium.HasValue()) | ASSERT_GT(ChannelNorm(analytical, true), 0.0) | ASSERT_GT(ChannelNorm(analytical, false), 0.0) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_GE(force_order_count, 2U) | EXPECT_GE(moment_order_count, 2U) | EXPECT_LE(force_errors[3U], 1.0e-6) | EXPECT_LE(moment_errors[3U], 1.0e-6) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Tangent.PreservesRigidTranslationNullspaceAndSymmetry NonlinearMitc4Tangent.PreservesRigidTranslationNullspaceAndSymmetry; assertion 4개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Tangent.PreservesRigidTranslationNullspaceAndSymmetry 유지 원문 검사 body 및 assertion 동일. 0f79a384735c9e1976d518ca10d5c463a3d6fd669c1c995425c37c2c94e9f080 0f79a384735c9e1976d518ca10d5c463a3d6fd669c1c995425c37c2c94e9f080 ASSERT_TRUE(equilibrium.HasValue()) | EXPECT_LE(null_action.Norm(), 1.0e-10) | ASSERT_GT(FrobeniusNorm(scaled_tangent), 0.0) | EXPECT_LE(FrobeniusNorm(antisymmetric) / FrobeniusNorm(scaled_tangent), 1.0e-12) ASSERT_TRUE(equilibrium.HasValue()) | EXPECT_LE(null_action.Norm(), 1.0e-10) | ASSERT_GT(FrobeniusNorm(scaled_tangent), 0.0) | EXPECT_LE(FrobeniusNorm(antisymmetric) / FrobeniusNorm(scaled_tangent), 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.DoesNotAcceptExternalLoadShares NonlinearMitc4Residual.DoesNotAcceptExternalLoadShares; assertion 3개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.DoesNotAcceptExternalLoadShares 유지 원문 검사 body 및 assertion 동일. 826f6bda479841d9de0424ce957e015e087b41afa0149ca94cfe07d3699f1107 826f6bda479841d9de0424ce957e015e087b41afa0149ca94cfe07d3699f1107 ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().internal_residual[index], second.Value().internal_residual[index]) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | EXPECT_DOUBLE_EQ(first.Value().internal_residual[index], second.Value().internal_residual[index]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Objectivity.FiniteRigidMotionHasZeroInternalForce NonlinearMitc4Objectivity.FiniteRigidMotionHasZeroInternalForce; assertion 3개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Objectivity.FiniteRigidMotionHasZeroInternalForce 유지 원문 검사 body 및 assertion 동일. 2495a42787caa073516e20ed9797534fb25f3a8a4789d7c71231800206e8ce86 2495a42787caa073516e20ed9797534fb25f3a8a4789d7c71231800206e8ce86 ASSERT_TRUE(result.HasValue()) | EXPECT_LE(result.Value().internal_residual.Norm(), 1.0e-10) | EXPECT_LE(result.Value().physical_strain_energy, 1.0e-12) ASSERT_TRUE(result.HasValue()) | EXPECT_LE(result.Value().internal_residual.Norm(), 1.0e-10) | EXPECT_LE(result.Value().physical_strain_energy, 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Patch.RetainsPhysicalRecoveryIdentities NonlinearMitc4Patch.RetainsPhysicalRecoveryIdentities; assertion 1개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Patch.RetainsPhysicalRecoveryIdentities 유지 원문 검사 body 및 assertion 동일. f1b5a3a3696e0af3f261839b80c1164a0c28944c41ad77b4256a31b55f5906b3 f1b5a3a3696e0af3f261839b80c1164a0c28944c41ad77b4256a31b55f5906b3 ASSERT_TRUE(result.HasValue()) ASSERT_TRUE(result.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.RejectsNonfiniteTrialData NonlinearMitc4Residual.RejectsNonfiniteTrialData; assertion 3개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.RejectsNonfiniteTrialData 유지 원문 검사 body 및 assertion 동일. 3e2e0c59444ee3b19641d2b76ca17ee825160e1821798a88bb12d225f0823f29 3e2e0c59444ee3b19641d2b76ca17ee825160e1821798a88bb12d225f0823f29 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-trial"") | EXPECT_FALSE(overflow_result.HasValue())" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-trial"") | EXPECT_FALSE(overflow_result.HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ZeroTrialOnTranslatedDecimalMeshHasNoArtificialForce NonlinearMitc4Residual.ZeroTrialOnTranslatedDecimalMeshHasNoArtificialForce; assertion 3개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ZeroTrialOnTranslatedDecimalMeshHasNoArtificialForce 유지 원문 검사 body 및 assertion 동일. dbba37dc6b52df765552dc588e502f3d8435f43ff28832f9702bd655c905951e dbba37dc6b52df765552dc588e502f3d8435f43ff28832f9702bd655c905951e ASSERT_TRUE(evaluated.HasValue()) | EXPECT_DOUBLE_EQ(evaluated.Value().internal_force[i], 0.0) | EXPECT_DOUBLE_EQ(evaluated.Value().drilling_energy, 0.0) ASSERT_TRUE(evaluated.HasValue()) | EXPECT_DOUBLE_EQ(evaluated.Value().internal_force[i], 0.0) | EXPECT_DOUBLE_EQ(evaluated.Value().drilling_energy, 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExactDirectionalThirdGradientMatchesTangentSweep NonlinearMitc4Residual.ExactDirectionalThirdGradientMatchesTangentSweep; assertion 0개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExactDirectionalThirdGradientMatchesTangentSweep 유지 원문 검사 body 및 assertion 동일. 6d549b636640f56a6c955107a00503e9d58a2649a56aff87cdb9c2e688678c5c 6d549b636640f56a6c955107a00503e9d58a2649a56aff87cdb9c2e688678c5c 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.SmallRotationPhysicalForceRetainsDrillingNullIdentity NonlinearMitc4Residual.SmallRotationPhysicalForceRetainsDrillingNullIdentity; assertion 7개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.SmallRotationPhysicalForceRetainsDrillingNullIdentity 유지 원문 검사 body 및 assertion 동일. 614e3f70648e94b8a868a6e234984c0fc0c47cb9e02c17b202a3955faea48feb 614e3f70648e94b8a868a6e234984c0fc0c47cb9e02c17b202a3955faea48feb ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | ASSERT_GT(physical_scale, 0.0) | ASSERT_GT(total_scale, 0.0) | EXPECT_LE(std::abs(physical) / physical_scale, 1.0e-10) | EXPECT_LE(std::abs(projected - response.Value().drilling_constraint[node]) / total_scale, 1.0e-10) ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(response.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | ASSERT_GT(physical_scale, 0.0) | ASSERT_GT(total_scale, 0.0) | EXPECT_LE(std::abs(physical) / physical_scale, 1.0e-10) | EXPECT_LE(std::abs(projected - response.Value().drilling_constraint[node]) / total_scale, 1.0e-10) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ThirdGradientIsStableAcrossSmallAngleBranches NonlinearMitc4Residual.ThirdGradientIsStableAcrossSmallAngleBranches; assertion 0개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ThirdGradientIsStableAcrossSmallAngleBranches 유지 원문 검사 body 및 assertion 동일. af1fb78eb8d4496f5767606062cf3f28bcf27e5aed115ee79e830293a3479d40 af1fb78eb8d4496f5767606062cf3f28bcf27e5aed115ee79e830293a3479d40 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExactDrillingConstraintHasIndependentForceGradientAndHessian NonlinearMitc4Residual.ExactDrillingConstraintHasIndependentForceGradientAndHessian; assertion 7개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExactDrillingConstraintHasIndependentForceGradientAndHessian 유지 원문 검사 body 및 assertion 동일. a5e30f5af2df2749898ee64cb0c470bdfcf03e6750df0325a9f2a59855b486f6 a5e30f5af2df2749898ee64cb0c470bdfcf03e6750df0325a9f2a59855b486f6 ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | EXPECT_NEAR(exact.Value().drilling_constraint[node], psi, 1e-11) | EXPECT_NEAR(exact.Value().drilling_constraint_gradient(node, i), gradient, 1e-10) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_TRUE(passed) ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(rotation.HasValue()) | EXPECT_NEAR(exact.Value().drilling_constraint[node], psi, 1e-11) | EXPECT_NEAR(exact.Value().drilling_constraint_gradient(node, i), gradient, 1e-10) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_TRUE(passed) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExposesExactDrillingConstraintThirdDirectionalGradient NonlinearMitc4Residual.ExposesExactDrillingConstraintThirdDirectionalGradient; assertion 5개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExposesExactDrillingConstraintThirdDirectionalGradient 유지 원문 검사 body 및 assertion 동일. 4a38b5b4ff71243f88af5dc3b4c43d5c10f8ae54ed6456715399299ab8653b88 4a38b5b4ff71243f88af5dc3b4c43d5c10f8ae54ed6456715399299ab8653b88 ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | ASSERT_EQ(exact.Value().drilling_constraint_third_directional_gradient[node] .Size(), 24U) | EXPECT_NEAR( exact.Value().drilling_constraint_third_directional_gradient[node] [row], finite_difference, 2.0e-5) ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | ASSERT_EQ(exact.Value().drilling_constraint_third_directional_gradient[node] .Size(), 24U) | EXPECT_NEAR( exact.Value().drilling_constraint_third_directional_gradient[node] [row], finite_difference, 2.0e-5) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExternalDrillingConstraintIncludesForceTimeAndCurvatureTerms NonlinearMitc4Residual.ExternalDrillingConstraintIncludesForceTimeAndCurvatureTerms; assertion 10개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExternalDrillingConstraintIncludesForceTimeAndCurvatureTerms 유지 원문 검사 body 및 assertion 동일. ae7d5f1cfc46795fbb1f8992fddd0ff8a72d6148c99d90735a68e0dd5da0bba1 ae7d5f1cfc46795fbb1f8992fddd0ff8a72d6148c99d90735a68e0dd5da0bba1 ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_NEAR(exact.Value().directional_first, (plus.Value().value - minus.Value().value) / (2.0 * h), 2.0e-8) | EXPECT_NEAR(exact.Value().directional_second, (plus.Value().value - 2.0 * exact.Value().value + minus.Value().value) / (h * h), 3.0e-7) | EXPECT_NEAR(exact.Value().gradient_directional_first[row], (plus.Value().gradient[row] - minus.Value().gradient[row]) / (2.0 * h), 3.0e-8) | EXPECT_NEAR( exact.Value().gradient_directional_second[row], (plus.Value().gradient[row] - 2.0 * exact.Value().gradient[row] + minus.Value().gradient[row]) / (h * h), 4.0e-7) | ASSERT_TRUE(positive.HasValue()) | ASSERT_TRUE(negative.HasValue()) | EXPECT_NEAR(exact.Value().hessian(row, column), (positive.Value().gradient[row] - negative.Value().gradient[row]) / (2.0 * h), 2.0e-7) ASSERT_TRUE(exact.HasValue()) | ASSERT_TRUE(plus.HasValue()) | ASSERT_TRUE(minus.HasValue()) | EXPECT_NEAR(exact.Value().directional_first, (plus.Value().value - minus.Value().value) / (2.0 * h), 2.0e-8) | EXPECT_NEAR(exact.Value().directional_second, (plus.Value().value - 2.0 * exact.Value().value + minus.Value().value) / (h * h), 3.0e-7) | EXPECT_NEAR(exact.Value().gradient_directional_first[row], (plus.Value().gradient[row] - minus.Value().gradient[row]) / (2.0 * h), 3.0e-8) | EXPECT_NEAR( exact.Value().gradient_directional_second[row], (plus.Value().gradient[row] - 2.0 * exact.Value().gradient[row] + minus.Value().gradient[row]) / (h * h), 4.0e-7) | ASSERT_TRUE(positive.HasValue()) | ASSERT_TRUE(negative.HasValue()) | EXPECT_NEAR(exact.Value().hessian(row, column), (positive.Value().gradient[row] - negative.Value().gradient[row]) / (2.0 * h), 2.0e-7) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExternalDrillingConstraintRejectsInvalidRotationAndHasZeroForceValue NonlinearMitc4Residual.ExternalDrillingConstraintRejectsInvalidRotationAndHasZeroForceValue; assertion 9개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.ExternalDrillingConstraintRejectsInvalidRotationAndHasZeroForceValue 유지 원문 검사 body 및 assertion 동일. c6774c3ef132d2277a95b92d7df0c1f0a2c9cae68cd1562a36ec07921aefc433 c6774c3ef132d2277a95b92d7df0c1f0a2c9cae68cd1562a36ec07921aefc433 "ASSERT_TRUE(zero.HasValue()) | EXPECT_DOUBLE_EQ(zero.Value().value, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().directional_first, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().directional_second, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient[row], 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient_directional_first[row], 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient_directional_second[row], 0.0) | EXPECT_FALSE(invalid.HasValue()) | EXPECT_EQ(invalid.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-rotation"")" "ASSERT_TRUE(zero.HasValue()) | EXPECT_DOUBLE_EQ(zero.Value().value, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().directional_first, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().directional_second, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient[row], 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient_directional_first[row], 0.0) | EXPECT_DOUBLE_EQ(zero.Value().gradient_directional_second[row], 0.0) | EXPECT_FALSE(invalid.HasValue()) | EXPECT_EQ(invalid.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-rotation"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.TinyRotationPreservesPhysicalForceAndRecoveryEnergy NonlinearMitc4Residual.TinyRotationPreservesPhysicalForceAndRecoveryEnergy; assertion 11개 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp NonlinearMitc4Residual.TinyRotationPreservesPhysicalForceAndRecoveryEnergy 유지 원문 검사 body 및 assertion 동일. d165f9780c2e6af21e2fd97f7ce8451f18ab885a26d92761617a13cae977696e d165f9780c2e6af21e2fd97f7ce8451f18ab885a26d92761617a13cae977696e ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(zero.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_DOUBLE_EQ(zero.Value().physical_strain_energy, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().physical_force[row], 0.0) | ASSERT_GT(scale, 0.0) | ASSERT_GT(quadratic_energy, 0.0) | EXPECT_LE(error / scale, 1e-12) | EXPECT_GT(actual.Value().physical_strain_energy, 0.0) | EXPECT_LE(std::abs(actual.Value().physical_strain_energy - quadratic_energy) / quadratic_energy, 1e-12) | EXPECT_LE(std::abs(actual.Value().physical_strain_energy - shear_energy) / shear_energy, 1e-12) ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(zero.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_DOUBLE_EQ(zero.Value().physical_strain_energy, 0.0) | EXPECT_DOUBLE_EQ(zero.Value().physical_force[row], 0.0) | ASSERT_GT(scale, 0.0) | ASSERT_GT(quadratic_energy, 0.0) | EXPECT_LE(error / scale, 1e-12) | EXPECT_GT(actual.Value().physical_strain_energy, 0.0) | EXPECT_LE(std::abs(actual.Value().physical_strain_energy - quadratic_energy) / quadratic_energy, 1e-12) | EXPECT_LE(std::abs(actual.Value().physical_strain_energy - shear_energy) / shear_energy, 1e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@1-197 helper/oracle/fixture/include/static assertion 구간: Node, Nodes, NodePointers, Frames, Shell, if, Trial, AddScaled, Direction, ToVector, ReferenceLength, WorkConjugateDirection, WorkConjugate, ChannelNorm, FrobeniusNorm, WorkConjugateTangent, ExpectRelative tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 90ea99ff9b85b927825b8ae83597911a8c75a64fb655d2f0407528119a4fe7aa 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@226-227 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a5600c1fcbcc2b375d90f9a0b51fcb733f74bb959c86447c819b9a8f8c6bced8 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@290-291 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 138ed0391b2a8c8081bcdd75fe8ff2c89800a73301b761308a5607407eac6b85 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@321-322 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 80a26bf8dd830eafbfa37a987c6ca13ed7f75849c83da7f86476be70612b7b5a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@336-337 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 808b628cf835f37ca1165035141cf55c77f1b82ba64e5e88837d89c12aa5edc4 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@362-363 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b43457f2efa97906a6ef783cd74e022646ee67c2ef526f6a96855ce0af4d2471 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@401-402 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f2cfb81414bf1e8f81009769c5476d4bfb83a9e564ab1c3851411dfc077ad757 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@420-480 helper/oracle/fixture/include/static assertion 구간: CheckThirdSweep, if tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d3556f4001a86aab0161a4dc5f94d4903c713cd3a2e71db2c68fc845b7929abd 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp support@837-838 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0436d99db81007fd4713cbcfd2850b351089fc3c05ab34e291a90e1e7621d07d 0436d99db81007fd4713cbcfd2850b351089fc3c05ab34e291a90e1e7621d07d 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.UndeformedStateHasZeroPhysicalRecovery NonlinearMitc4Shell.UndeformedStateHasZeroPhysicalRecovery; assertion 1개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.UndeformedStateHasZeroPhysicalRecovery 유지 원문 검사 body 및 assertion 동일. f3b34af9d811fbfa8302ccb17c75561b3d2674fee61705e5476681bfe4fd4489 f3b34af9d811fbfa8302ccb17c75561b3d2674fee61705e5476681bfe4fd4489 ASSERT_TRUE(recovery.HasValue()) ASSERT_TRUE(recovery.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Recovery.BendingResultantsMatchStressThicknessMoments NonlinearMitc4Recovery.BendingResultantsMatchStressThicknessMoments; assertion 4개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Recovery.BendingResultantsMatchStressThicknessMoments 유지 원문 검사 body 및 assertion 동일. 34fd7f143c5939eb6db783e82cb725a6ffab1e0bd5e788a2215805ba0232fdcb 34fd7f143c5939eb6db783e82cb725a6ffab1e0bd5e788a2215805ba0232fdcb ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(recovery.HasValue()) | ASSERT_GT(std::abs(moment), 0.0) | EXPECT_NEAR(point.section_resultant[3U + component], moment, 1.0e-12 * std::abs(moment)) ASSERT_TRUE(shell.HasValue()) | ASSERT_TRUE(recovery.HasValue()) | ASSERT_GT(std::abs(moment), 0.0) | EXPECT_NEAR(point.section_resultant[3U + component], moment, 1.0e-12 * std::abs(moment)) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.RejectsInvalidNodeAndInitialFrameContracts NonlinearMitc4Shell.RejectsInvalidNodeAndInitialFrameContracts; assertion 6개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.RejectsInvalidNodeAndInitialFrameContracts 유지 원문 검사 body 및 assertion 동일. 09059c92e764720f2295f7dd9557530496e4f458cb2eae0317a64daccaae6ac3 09059c92e764720f2295f7dd9557530496e4f458cb2eae0317a64daccaae6ac3 "ASSERT_FALSE(null_node.HasValue()) | EXPECT_EQ(null_node.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-geometry"") | ASSERT_FALSE(duplicate_frame.HasValue()) | EXPECT_EQ(duplicate_frame.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-frame"") | ASSERT_FALSE(invalid_frame.HasValue()) | EXPECT_EQ(invalid_frame.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-frame"")" "ASSERT_FALSE(null_node.HasValue()) | EXPECT_EQ(null_node.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-geometry"") | ASSERT_FALSE(duplicate_frame.HasValue()) | EXPECT_EQ(duplicate_frame.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-frame"") | ASSERT_FALSE(invalid_frame.HasValue()) | EXPECT_EQ(invalid_frame.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-frame"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.UsesFixedInitialReferenceGeometry NonlinearMitc4Shell.UsesFixedInitialReferenceGeometry; assertion 1개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.UsesFixedInitialReferenceGeometry 유지 원문 검사 body 및 assertion 동일. 54a10626cf3848a02f009f15114e4ee270eddc556033d856cbde1a6232e2dd50 54a10626cf3848a02f009f15114e4ee270eddc556033d856cbde1a6232e2dd50 ASSERT_TRUE(recovery.HasValue()) ASSERT_TRUE(recovery.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.PreservesUnnormalizedInterpolatedDirector NonlinearMitc4Shell.PreservesUnnormalizedInterpolatedDirector; assertion 3개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.PreservesUnnormalizedInterpolatedDirector 유지 원문 검사 body 및 assertion 동일. acae08ee38b9b527574ad3d03d4dc5ded4224d8d4c298c4166d587dfe2d2f1c5 acae08ee38b9b527574ad3d03d4dc5ded4224d8d4c298c4166d587dfe2d2f1c5 ASSERT_TRUE(recovery.HasValue()) | EXPECT_GT(recovery.Value().physical_strain_energy, 0.0) | EXPECT_NEAR(recovery.Value().gauss_points[0U].generalized_strain[0U], expected_membrane, 1.0e-12) ASSERT_TRUE(recovery.HasValue()) | EXPECT_GT(recovery.Value().physical_strain_energy, 0.0) | EXPECT_NEAR(recovery.Value().gauss_points[0U].generalized_strain[0U], expected_membrane, 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.RejectsOpposedOrDegenerateCurrentDirectors NonlinearMitc4Shell.RejectsOpposedOrDegenerateCurrentDirectors; assertion 2개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.RejectsOpposedOrDegenerateCurrentDirectors 유지 원문 검사 body 및 assertion 동일. 022372a03ed1384ea9018c527e60a8bb2e92a34abcabf2a3114b60516a9b39bc 022372a03ed1384ea9018c527e60a8bb2e92a34abcabf2a3114b60516a9b39bc "ASSERT_FALSE(recovery.HasValue()) | EXPECT_EQ(recovery.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-director"")" "ASSERT_FALSE(recovery.HasValue()) | EXPECT_EQ(recovery.GetStatus().Diagnostics()[0U].code, ""invalid-nonlinear-shell-director"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.MatchesLinearMitc4RecoveryInSmallRotationLimit NonlinearMitc4Shell.MatchesLinearMitc4RecoveryInSmallRotationLimit; assertion 4개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.MatchesLinearMitc4RecoveryInSmallRotationLimit 유지 원문 검사 body 및 assertion 동일. fd4b13f2fcc4938b50ae86d5f55795e3a40d899b81407fca14f78e5a9d6becd0 fd4b13f2fcc4938b50ae86d5f55795e3a40d899b81407fca14f78e5a9d6becd0 ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear_recovery.HasValue()) | ASSERT_TRUE(linear_recovery.HasValue()) | EXPECT_NEAR(nonlinear_recovery.Value().gauss_points[point] .generalized_strain[component], linear_recovery.Value().points[point] .generalized_strain[component], 1.0e-11) ASSERT_TRUE(linear.HasValue()) | ASSERT_TRUE(nonlinear_recovery.HasValue()) | ASSERT_TRUE(linear_recovery.HasValue()) | EXPECT_NEAR(nonlinear_recovery.Value().gauss_points[point] .generalized_strain[component], linear_recovery.Value().points[point] .generalized_strain[component], 1.0e-11) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.FiniteRigidMotionIsObjective NonlinearMitc4Shell.FiniteRigidMotionIsObjective; assertion 4개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Shell.FiniteRigidMotionIsObjective 유지 원문 검사 body 및 assertion 동일. d31c4760ff39f940a70cb95e45b595095d334feafcc4f498f930764011944a71 d31c4760ff39f940a70cb95e45b595095d334feafcc4f498f930764011944a71 ASSERT_TRUE(recovery.HasValue()) | EXPECT_NEAR(value, 0.0, 1.0e-12) | EXPECT_NEAR(value, 0.0, 1.0e-12) | EXPECT_NEAR(recovery.Value().physical_strain_energy, 0.0, 1.0e-12) ASSERT_TRUE(recovery.HasValue()) | EXPECT_NEAR(value, 0.0, 1.0e-12) | EXPECT_NEAR(value, 0.0, 1.0e-12) | EXPECT_NEAR(recovery.Value().physical_strain_energy, 0.0, 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Recovery.EmitsOnlyFixedPhysicalGaussAndStressRows NonlinearMitc4Recovery.EmitsOnlyFixedPhysicalGaussAndStressRows; assertion 7개 tests/unit/elements/nonlinear_mitc4_shell_test.cpp NonlinearMitc4Recovery.EmitsOnlyFixedPhysicalGaussAndStressRows 유지 원문 검사 body 및 assertion 동일. 0008b0829c8e00bd25ac54d72bd223db1acd69f836b6804b78b3557549fac911 0008b0829c8e00bd25ac54d72bd223db1acd69f836b6804b78b3557549fac911 ASSERT_TRUE(recovery.HasValue()) | EXPECT_EQ(row.location, locations[point]) | EXPECT_EQ(row.natural_coordinates[0U], point == 0U || point == 3U ? -gauss : gauss) | EXPECT_EQ(row.natural_coordinates[1U], point < 2U ? -gauss : gauss) | EXPECT_EQ(row.stress[stress].position, positions[stress]) | EXPECT_EQ(row.stress[stress].zeta, zeta[stress]) | EXPECT_EQ(row.stress[stress].components.size(), 3U) ASSERT_TRUE(recovery.HasValue()) | EXPECT_EQ(row.location, locations[point]) | EXPECT_EQ(row.natural_coordinates[0U], point == 0U || point == 3U ? -gauss : gauss) | EXPECT_EQ(row.natural_coordinates[1U], point < 2U ? -gauss : gauss) | EXPECT_EQ(row.stress[stress].position, positions[stress]) | EXPECT_EQ(row.stress[stress].zeta, zeta[stress]) | EXPECT_EQ(row.stress[stress].components.size(), 3U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@1-85 helper/oracle/fixture/include/static assertion 구간: Node, Nodes, NodePointers, Frames, Section, Material, ZeroTrial, Multiply, ExpectZeroRecovery, for, Shell tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a6879fd0fa6466d6fb021e12f76588f690a846dd854355d61c5bfd6fbe0de63b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@124-125 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8dee679c89e7fcd7d139da1813c32774ca38d795655c80ce8208b3ab09423c5d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@152-153 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ff3e2239c30471e94bbc18e563e41bb3744f9395c5d81311174b05782fb6ebc8 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@165-166 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 51ced39c2cbb72399c0b49dc9722cc1329c34f357f19be7280ef1e77b2b3e145 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@183-184 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2c8cd1d1980cb0d96addfd4b8037f4d929026a5ac7d0a6ec8856069b5ea0c9d0 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@196-197 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 97be9107d040c13bb40f904c4c01ca1d474fce4260203ac57dfa81b0e1c90824 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@235-236 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9b570c15351976fab371b347ec27443d3155262b9585a574bef6a511922d035c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@264-265 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cd67c16794266a7614069ddb2948a60455ba1fa76721f5c3df9ff598aa83e25f 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/nonlinear_mitc4_shell_test.cpp support@293-294 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/elements/nonlinear_mitc4_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/thermal_shell_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 10개 tests/unit/elements/thermal_shell_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 70b2d6efab8783f723e6abf838fd6c50a1ea25a436480271f0ad9d9234b062db 70b2d6efab8783f723e6abf838fd6c50a1ea25a436480271f0ad9d9234b062db 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/elements/thermal_shell_test.cpp ThermalShell.RationalMatricesSymmetryAndConstantModeUseFixedBudgets ThermalShell.RationalMatricesSymmetryAndConstantModeUseFixedBudgets; assertion 9개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.RationalMatricesSymmetryAndConstantModeUseFixedBudgets 유지 원문 검사 body 및 assertion 동일. b77746063cee453fa1b02d7e825896772f68eda7c436d562a9f120ee00254067 b77746063cee453fa1b02d7e825896772f68eda7c436d562a9f120ee00254067 "ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(kernel.Capacity(), exact.c), ec) | EXPECT_LE(Difference(kernel.Conductivity(), exact.k), ek) | EXPECT_LE(cs, 2 * ec) | EXPECT_LE(ks, 2 * ek) | EXPECT_LE(null, std::sqrt(20.) * ek) | EXPECT_LE(std::abs(total - 2), 20 * ec) | EXPECT_EQ(kernel.SourceId().source_label_text, ""0019"") | EXPECT_EQ(kernel.NodeIndices(), (std::array{{7, 2, 9, 4}}))" "ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(kernel.Capacity(), exact.c), ec) | EXPECT_LE(Difference(kernel.Conductivity(), exact.k), ek) | EXPECT_LE(cs, 2 * ec) | EXPECT_LE(ks, 2 * ek) | EXPECT_LE(null, std::sqrt(20.) * ek) | EXPECT_LE(std::abs(total - 2), 20 * ec) | EXPECT_EQ(kernel.SourceId().source_label_text, ""0019"") | EXPECT_EQ(kernel.NodeIndices(), (std::array{{7, 2, 9, 4}}))" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/thermal_shell_test.cpp ThermalShell.CapacityIsPositiveAndConductionHasExactlyOneNullMode ThermalShell.CapacityIsPositiveAndConductionHasExactlyOneNullMode; assertion 4개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.CapacityIsPositiveAndConductionHasExactlyOneNullMode 유지 원문 검사 body 및 assertion 동일. ebcd38fd5f93e481370605596eae5bfee78bd230ee37b0a15d07f1eeead80087 ebcd38fd5f93e481370605596eae5bfee78bd230ee37b0a15d07f1eeead80087 ASSERT_TRUE(created.HasValue()) | EXPECT_GT(capacity.first, Gamma(4096) * Norm(exact.pc) + backward) | EXPECT_LE(std::abs(conduction.first), Gamma(4096) * Norm(exact.pk) + backward) | EXPECT_GT(positive.first, Gamma(4096) * Norm(exact.pk) + backward + projection_budget) ASSERT_TRUE(created.HasValue()) | EXPECT_GT(capacity.first, Gamma(4096) * Norm(exact.pc) + backward) | EXPECT_LE(std::abs(conduction.first), Gamma(4096) * Norm(exact.pk) + backward) | EXPECT_GT(positive.first, Gamma(4096) * Norm(exact.pk) + backward + projection_budget) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/thermal_shell_test.cpp ThermalShell.Direct54MatchesSeparatedOperatorsOnActualThreeDimensionalPatches ThermalShell.Direct54MatchesSeparatedOperatorsOnActualThreeDimensionalPatches; assertion 3개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.Direct54MatchesSeparatedOperatorsOnActualThreeDimensionalPatches 유지 원문 검사 body 및 assertion 동일. fcd2050a389cecd6349305c4f881f5347bda524a64af04cf7b5e1e6228aea544 fcd2050a389cecd6349305c4f881f5347bda524a64af04cf7b5e1e6228aea544 ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(kernel.Capacity(), direct.c), Norm(kernel.CapacityError()) + Gamma(8192) * Norm(direct.pc)) | EXPECT_LE(Difference(kernel.Conductivity(), direct.k), Norm(kernel.ConductivityError()) + Gamma(8192) * Norm(direct.pk)) ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(kernel.Capacity(), direct.c), Norm(kernel.CapacityError()) + Gamma(8192) * Norm(direct.pc)) | EXPECT_LE(Difference(kernel.Conductivity(), direct.k), Norm(kernel.ConductivityError()) + Gamma(8192) * Norm(direct.pk)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/thermal_shell_test.cpp ThermalShell.ThicknessScalingPreservesBothConductionTermsAndCapacity ThermalShell.ThicknessScalingPreservesBothConductionTermsAndCapacity; assertion 3개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.ThicknessScalingPreservesBothConductionTermsAndCapacity 유지 원문 검사 body 및 assertion 동일. 4af2e5d6dba4e15c7ef44c0f8aefc95988294ee8693ef71d0e3ef0f398507b61 4af2e5d6dba4e15c7ef44c0f8aefc95988294ee8693ef71d0e3ef0f398507b61 ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(created.Value().Capacity(), exact.c), Gamma(4096) * Norm(exact.pc)) | EXPECT_LE(Difference(created.Value().Conductivity(), exact.k), Gamma(4096) * Norm(exact.pk)) ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(created.Value().Capacity(), exact.c), Gamma(4096) * Norm(exact.pc)) | EXPECT_LE(Difference(created.Value().Conductivity(), exact.k), Gamma(4096) * Norm(exact.pk)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/thermal_shell_test.cpp ThermalShell.AffineLinearFluxFramesAndSeparateMidsurfaceTraces ThermalShell.AffineLinearFluxFramesAndSeparateMidsurfaceTraces; assertion 10개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.AffineLinearFluxFramesAndSeparateMidsurfaceTraces 유지 원문 검사 body 및 assertion 동일. 00b41e05c43005233fd41fe3065da06b97e3a43af290bea482c61bdf1875eaaf 00b41e05c43005233fd41fe3065da06b97e3a43af290bea482c61bdf1875eaaf ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(recovery.HasValue()) | EXPECT_LE( (recovery.Value().global_flux[row] - Vector3{-3, 2, -4}).Norm(), Gamma(2048) * (linear_scale.scale[row] + Vector3{3, -2, 4}.Norm())) | EXPECT_NEAR(frame[i].Dot(frame[j]), i == j ? 1. : 0., Gamma(2048)) | EXPECT_NEAR(frame[0].Cross(frame[1]).Dot(frame[2]), 1., Gamma(2048)) | ASSERT_TRUE(traces.HasValue()) | EXPECT_EQ(traces.Value().global_flux[6 * ip + 2].Z(), 0.) | EXPECT_NEAR(traces.Value().global_flux[6 * ip + 3].Z(), -2., Gamma(2048) * 2) | ASSERT_TRUE(constant.HasValue()) | EXPECT_LE(constant.Value().global_flux[row].Norm(), Gamma(2048) * constant_scale.scale[row]) ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(recovery.HasValue()) | EXPECT_LE( (recovery.Value().global_flux[row] - Vector3{-3, 2, -4}).Norm(), Gamma(2048) * (linear_scale.scale[row] + Vector3{3, -2, 4}.Norm())) | EXPECT_NEAR(frame[i].Dot(frame[j]), i == j ? 1. : 0., Gamma(2048)) | EXPECT_NEAR(frame[0].Cross(frame[1]).Dot(frame[2]), 1., Gamma(2048)) | ASSERT_TRUE(traces.HasValue()) | EXPECT_EQ(traces.Value().global_flux[6 * ip + 2].Z(), 0.) | EXPECT_NEAR(traces.Value().global_flux[6 * ip + 3].Z(), -2., Gamma(2048) * 2) | ASSERT_TRUE(constant.HasValue()) | EXPECT_LE(constant.Value().global_flux[row].Norm(), Gamma(2048) * constant_scale.scale[row]) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/thermal_shell_test.cpp ThermalShell.TranslationRotationAndReversedNormalPreservePhysicalFlux ThermalShell.TranslationRotationAndReversedNormalPreservePhysicalFlux; assertion 10개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.TranslationRotationAndReversedNormalPreservePhysicalFlux 유지 원문 검사 body 및 assertion 동일. d3b3148c1533aa48c401f4b4d92418d4c57abdb89b589de242b5394ac13349b0 d3b3148c1533aa48c401f4b4d92418d4c57abdb89b589de242b5394ac13349b0 ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(moved.HasValue()) | ASSERT_TRUE(turned.HasValue()) | ASSERT_TRUE(flipped.HasValue()) | EXPECT_LE( Difference(base.Value().Capacity(), moved.Value().Capacity()), Norm(base.Value().CapacityError()) + Norm(moved.Value().CapacityError())) | EXPECT_LE( Difference(base.Value().Conductivity(), turned.Value().Conductivity()), Norm(base.Value().ConductivityError()) + Norm(turned.Value().ConductivityError())) | ASSERT_TRUE(flux.HasValue()) | ASSERT_TRUE(reverse.HasValue()) | EXPECT_LE((flux.Value().global_flux[row] - rotate({-3, 2, -4})).Norm(), Gamma(2048) * (turn_scale.scale[row] + Vector3{3, -2, 4}.Norm())) | EXPECT_LE( (reverse.Value().global_flux[row] - Vector3{-3, 2, -4}).Norm(), Gamma(2048) * (reverse_scale.scale[row] + Vector3{3, -2, 4}.Norm())) ASSERT_TRUE(base.HasValue()) | ASSERT_TRUE(moved.HasValue()) | ASSERT_TRUE(turned.HasValue()) | ASSERT_TRUE(flipped.HasValue()) | EXPECT_LE( Difference(base.Value().Capacity(), moved.Value().Capacity()), Norm(base.Value().CapacityError()) + Norm(moved.Value().CapacityError())) | EXPECT_LE( Difference(base.Value().Conductivity(), turned.Value().Conductivity()), Norm(base.Value().ConductivityError()) + Norm(turned.Value().ConductivityError())) | ASSERT_TRUE(flux.HasValue()) | ASSERT_TRUE(reverse.HasValue()) | EXPECT_LE((flux.Value().global_flux[row] - rotate({-3, 2, -4})).Norm(), Gamma(2048) * (turn_scale.scale[row] + Vector3{3, -2, 4}.Norm())) | EXPECT_LE( (reverse.Value().global_flux[row] - Vector3{-3, 2, -4}).Norm(), Gamma(2048) * (reverse_scale.scale[row] + Vector3{3, -2, 4}.Norm())) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/thermal_shell_test.cpp ThermalShell.CheckedCreationAndRecoveryRetainSourceAndRejectNonfinite ThermalShell.CheckedCreationAndRecoveryRetainSourceAndRejectNonfinite; assertion 7개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.CheckedCreationAndRecoveryRetainSourceAndRejectNonfinite 유지 원문 검사 body 및 assertion 동일. fa5ae9a4a6c78eb6502fe375b86097724b5484608a38dc580d02729c1662512e fa5ae9a4a6c78eb6502fe375b86097724b5484608a38dc580d02729c1662512e "EXPECT_FALSE(Kernel(kSquare, bad).HasValue()) | EXPECT_FALSE(Kernel(kSquare, 2, bad).HasValue()) | ASSERT_TRUE(created.HasValue()) | ASSERT_FALSE(bad.HasValue()) | EXPECT_EQ(bad.GetStatus().Diagnostics()[0].entity_identity, ""patch:0019"") | EXPECT_EQ(bad.GetStatus().Diagnostics()[0].location.line, 42U) | EXPECT_FALSE(created.Value().Recover(temperature).HasValue())" "EXPECT_FALSE(Kernel(kSquare, bad).HasValue()) | EXPECT_FALSE(Kernel(kSquare, 2, bad).HasValue()) | ASSERT_TRUE(created.HasValue()) | ASSERT_FALSE(bad.HasValue()) | EXPECT_EQ(bad.GetStatus().Diagnostics()[0].entity_identity, ""patch:0019"") | EXPECT_EQ(bad.GetStatus().Diagnostics()[0].location.line, 42U) | EXPECT_FALSE(created.Value().Recover(temperature).HasValue())" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/thermal_shell_test.cpp ThermalShell.GeneralWarpedFluxUsesActualReciprocalTangentsAndTraceOrder ThermalShell.GeneralWarpedFluxUsesActualReciprocalTangentsAndTraceOrder; assertion 4개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.GeneralWarpedFluxUsesActualReciprocalTangentsAndTraceOrder 유지 원문 검사 body 및 assertion 동일. d8ac116acd93e87e33b2b21c1880b4f4b554f07a2d11fcaba6c3031151e9b780 d8ac116acd93e87e33b2b21c1880b4f4b554f07a2d11fcaba6c3031151e9b780 ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_LE((actual.Value().global_flux[row] - expected.value[row]).Norm(), 2 * Gamma(2048) * expected.scale[row]) | EXPECT_GT((actual.Value().frames[0][2] - actual.Value().frames[1][2]).Norm(), 1.) ASSERT_TRUE(created.HasValue()) | ASSERT_TRUE(actual.HasValue()) | EXPECT_LE((actual.Value().global_flux[row] - expected.value[row]).Norm(), 2 * Gamma(2048) * expected.scale[row]) | EXPECT_GT((actual.Value().frames[0][2] - actual.Value().frames[1][2]).Norm(), 1.) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/thermal_shell_test.cpp ThermalShell.PowerOfTwoCoordinateScalingPreservesDimensionedOperators ThermalShell.PowerOfTwoCoordinateScalingPreservesDimensionedOperators; assertion 3개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.PowerOfTwoCoordinateScalingPreservesDimensionedOperators 유지 원문 검사 body 및 assertion 동일. c09333202e2a4f5cf6a42a31c1e5cd786979db0b59663bca37fc8bd4e508762d c09333202e2a4f5cf6a42a31c1e5cd786979db0b59663bca37fc8bd4e508762d ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(created.Value().Capacity(), c), Norm(created.Value().CapacityError()) + Gamma(4096) * Norm(c)) | EXPECT_LE( Difference(created.Value().Conductivity(), k), Norm(created.Value().ConductivityError()) + Gamma(4096) * Norm(k)) ASSERT_TRUE(created.HasValue()) | EXPECT_LE(Difference(created.Value().Capacity(), c), Norm(created.Value().CapacityError()) + Gamma(4096) * Norm(c)) | EXPECT_LE( Difference(created.Value().Conductivity(), k), Norm(created.Value().ConductivityError()) + Gamma(4096) * Norm(k)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/thermal_shell_test.cpp ThermalShell.RejectsUnrepresentablePositivePropertiesWithoutClamping ThermalShell.RejectsUnrepresentablePositivePropertiesWithoutClamping; assertion 2개 tests/unit/elements/thermal_shell_test.cpp ThermalShell.RejectsUnrepresentablePositivePropertiesWithoutClamping 유지 원문 검사 body 및 assertion 동일. ce5c3d9a306fa53f5457ea5db0a9d002d806423381a139cd329f8c6b42bae98b ce5c3d9a306fa53f5457ea5db0a9d002d806423381a139cd329f8c6b42bae98b EXPECT_FALSE(underflow.HasValue()) | EXPECT_FALSE(overflow.HasValue()) EXPECT_FALSE(underflow.HasValue()) | EXPECT_FALSE(overflow.HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/elements/thermal_shell_test.cpp support@1-245 helper/oracle/fixture/include/static assertion 구간: Gamma, Norm, Difference, Kernel, Oracle, Rational, Direct54, FluxOracle, Flux, EigenExtrema, if tests/unit/elements/thermal_shell_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4b36e387f8082d0a918209d0e72ac417a3b4be25b0bcd07da65f3c169413c725 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/fem/dof_manager_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 12개 tests/unit/fem/dof_manager_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bd0972cde135770050c66143519332b17cb62a5c17b81530927fb27ef017c844 bd0972cde135770050c66143519332b17cb62a5c17b81530927fb27ef017c844 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/fem/dof_manager_test.cpp DofManager.BuildsGenericRuntimeLayoutsInDeclaredSourceOrder DofManager.BuildsGenericRuntimeLayoutsInDeclaredSourceOrder; assertion 17개 tests/unit/fem/dof_manager_test.cpp DofManager.BuildsGenericRuntimeLayoutsInDeclaredSourceOrder 유지 원문 검사 body 및 assertion 동일. 41f2338c870fdbb3eff99743a0ef8112756b63092f3525a035a3755eb09882b1 41f2338c870fdbb3eff99743a0ef8112756b63092f3525a035a3755eb09882b1 "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(dofs.ValidateInvariants().IsOk()) | ASSERT_TRUE(first_scatter.HasValue()) | ASSERT_TRUE(second_scatter.HasValue()) | EXPECT_EQ(first_scatter.Value(), (std::vector{14U, 12U, 2U, 0U})) | EXPECT_EQ(second_scatter.Value(), (std::vector{11U, 7U, 9U})) | EXPECT_EQ(RowColumns(pattern, 14U), (std::vector{0U, 2U, 12U, 14U})) | EXPECT_EQ(RowColumns(pattern, 7U), (std::vector{7U, 9U, 11U})) | ASSERT_FALSE(reversed_status.IsOk()) | ASSERT_EQ(reversed_status.Diagnostics().size(), 1U) | EXPECT_EQ(reversed_status.Diagnostics()[0U].code, ""invalid-element-layout-order"") | EXPECT_EQ(dofs.FreeDofs(), expected_free_dofs) | EXPECT_EQ(dofs.ConstrainedDofs(), expected_constrained_dofs) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, expected_row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, expected_columns)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(dofs.ValidateInvariants().IsOk()) | ASSERT_TRUE(first_scatter.HasValue()) | ASSERT_TRUE(second_scatter.HasValue()) | EXPECT_EQ(first_scatter.Value(), (std::vector{14U, 12U, 2U, 0U})) | EXPECT_EQ(second_scatter.Value(), (std::vector{11U, 7U, 9U})) | EXPECT_EQ(RowColumns(pattern, 14U), (std::vector{0U, 2U, 12U, 14U})) | EXPECT_EQ(RowColumns(pattern, 7U), (std::vector{7U, 9U, 11U})) | ASSERT_FALSE(reversed_status.IsOk()) | ASSERT_EQ(reversed_status.Diagnostics().size(), 1U) | EXPECT_EQ(reversed_status.Diagnostics()[0U].code, ""invalid-element-layout-order"") | EXPECT_EQ(dofs.FreeDofs(), expected_free_dofs) | EXPECT_EQ(dofs.ConstrainedDofs(), expected_constrained_dofs) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, expected_row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, expected_columns)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/fem/dof_manager_test.cpp DofManager.RejectsEveryCorruptedOwnerMappingInvariant DofManager.RejectsEveryCorruptedOwnerMappingInvariant; assertion 0개 tests/unit/fem/dof_manager_test.cpp DofManager.RejectsEveryCorruptedOwnerMappingInvariant 유지 원문 검사 body 및 assertion 동일. f3a2d0c1bdbc2bfcc10e6a27711d07586fe8076fb87c957f8448b0edef5ff5f0 f3a2d0c1bdbc2bfcc10e6a27711d07586fe8076fb87c957f8448b0edef5ff5f0 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/fem/dof_manager_test.cpp DofManager.NumbersSixDofsAndFreeEquationsStably DofManager.NumbersSixDofsAndFreeEquationsStably; assertion 13개 tests/unit/fem/dof_manager_test.cpp DofManager.NumbersSixDofsAndFreeEquationsStably 유지 원문 검사 body 및 assertion 동일. 164a3c027dad0f2949360355d4e84d64180d8478dc812815c46df9d2e9de63fa 164a3c027dad0f2949360355d4e84d64180d8478dc812815c46df9d2e9de63fa EXPECT_EQ(dofs.FullDofCount(), 18U) | EXPECT_EQ(dofs.FreeDofCount(), 13U) | EXPECT_EQ(dofs.ConstrainedDofCount(), 5U) | EXPECT_EQ(dofs.FullDof(0U, fesa::DofComponent::kUx), 0U) | EXPECT_EQ(dofs.FullDof(0U, fesa::DofComponent::kUrz), 5U) | EXPECT_EQ(dofs.FullDof(1U, fesa::DofComponent::kUx), 6U) | EXPECT_EQ(dofs.FullDof(2U, fesa::DofComponent::kUrz), 17U) | EXPECT_EQ(dofs.FreeDofs(), (std::vector{3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 12U, 13U, 15U, 16U, 17U})) | EXPECT_EQ(dofs.ConstrainedDofs(), (std::vector{0U, 1U, 2U, 11U, 14U})) | EXPECT_EQ(dofs.FreeEquation(0U), std::nullopt) | EXPECT_EQ(dofs.FreeEquation(3U), std::optional{0U}) | EXPECT_EQ(dofs.FreeEquation(10U), std::optional{7U}) | EXPECT_EQ(dofs.FreeEquation(17U), std::optional{12U}) EXPECT_EQ(dofs.FullDofCount(), 18U) | EXPECT_EQ(dofs.FreeDofCount(), 13U) | EXPECT_EQ(dofs.ConstrainedDofCount(), 5U) | EXPECT_EQ(dofs.FullDof(0U, fesa::DofComponent::kUx), 0U) | EXPECT_EQ(dofs.FullDof(0U, fesa::DofComponent::kUrz), 5U) | EXPECT_EQ(dofs.FullDof(1U, fesa::DofComponent::kUx), 6U) | EXPECT_EQ(dofs.FullDof(2U, fesa::DofComponent::kUrz), 17U) | EXPECT_EQ(dofs.FreeDofs(), (std::vector{3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 12U, 13U, 15U, 16U, 17U})) | EXPECT_EQ(dofs.ConstrainedDofs(), (std::vector{0U, 1U, 2U, 11U, 14U})) | EXPECT_EQ(dofs.FreeEquation(0U), std::nullopt) | EXPECT_EQ(dofs.FreeEquation(3U), std::optional{0U}) | EXPECT_EQ(dofs.FreeEquation(10U), std::optional{7U}) | EXPECT_EQ(dofs.FreeEquation(17U), std::optional{12U}) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/fem/dof_manager_test.cpp DofManager.ExpandsAndValidatesPrescribedValues DofManager.ExpandsAndValidatesPrescribedValues; assertion 16개 tests/unit/fem/dof_manager_test.cpp DofManager.ExpandsAndValidatesPrescribedValues 유지 원문 검사 body 및 assertion 동일. 6cf0e5ec3dec89d94ff24af258558bcf13c72a823748c36a839c4a4d5daf9b1c 6cf0e5ec3dec89d94ff24af258558bcf13c72a823748c36a839c4a4d5daf9b1c "ASSERT_EQ(values.Size(), 5U) | EXPECT_DOUBLE_EQ(values[0], 0.0) | EXPECT_DOUBLE_EQ(values[1], 0.0) | EXPECT_DOUBLE_EQ(values[2], 0.25) | EXPECT_DOUBLE_EQ(values[3], -0.5) | EXPECT_DOUBLE_EQ(values[4], 0.25) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_FALSE(conflict.HasValue()) | EXPECT_EQ(conflict.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(conflict.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""conflicting-boundary-condition"") | EXPECT_EQ(diagnostic.keyword, ""BOUNDARY"") | EXPECT_EQ(diagnostic.entity_identity, ""root"") | EXPECT_EQ(diagnostic.location.file, std::filesystem::path{""models/dof-manager.inp""}) | EXPECT_EQ(diagnostic.location.line, 77U)" "ASSERT_EQ(values.Size(), 5U) | EXPECT_DOUBLE_EQ(values[0], 0.0) | EXPECT_DOUBLE_EQ(values[1], 0.0) | EXPECT_DOUBLE_EQ(values[2], 0.25) | EXPECT_DOUBLE_EQ(values[3], -0.5) | EXPECT_DOUBLE_EQ(values[4], 0.25) | ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_FALSE(conflict.HasValue()) | EXPECT_EQ(conflict.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(conflict.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(diagnostic.code, ""conflicting-boundary-condition"") | EXPECT_EQ(diagnostic.keyword, ""BOUNDARY"") | EXPECT_EQ(diagnostic.entity_identity, ""root"") | EXPECT_EQ(diagnostic.location.file, std::filesystem::path{""models/dof-manager.inp""}) | EXPECT_EQ(diagnostic.location.line, 77U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/fem/dof_manager_test.cpp DofManager.BuildsTwelveDofScatterAndSortedUniquePattern DofManager.BuildsTwelveDofScatterAndSortedUniquePattern; assertion 8개 tests/unit/fem/dof_manager_test.cpp DofManager.BuildsTwelveDofScatterAndSortedUniquePattern 유지 원문 검사 body 및 assertion 동일. 777cf0c0c96c7791e264fff4c6af066a696eb2afd008d54cdbf4ccd1d84f11bb 777cf0c0c96c7791e264fff4c6af066a696eb2afd008d54cdbf4ccd1d84f11bb EXPECT_EQ(dofs.ElementScatter(0U), (std::array{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U})) | EXPECT_EQ(dofs.ElementScatter(1U), (std::array{6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U})) | EXPECT_EQ(pattern.row_offsets, (std::vector{0U, 12U, 24U, 36U, 48U, 60U, 72U, 90U, 108U, 126U, 144U, 162U, 180U, 192U, 204U, 216U, 228U, 240U, 252U})) | EXPECT_EQ(RowColumns(pattern, 0U), first_block) | EXPECT_EQ(RowColumns(pattern, 7U), shared_block) | EXPECT_EQ(RowColumns(pattern, 17U), last_block) | EXPECT_TRUE(std::is_sorted(columns.begin(), columns.end())) | EXPECT_EQ(std::adjacent_find(columns.begin(), columns.end()), columns.end()) EXPECT_EQ(dofs.ElementScatter(0U), (std::array{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U})) | EXPECT_EQ(dofs.ElementScatter(1U), (std::array{6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U})) | EXPECT_EQ(pattern.row_offsets, (std::vector{0U, 12U, 24U, 36U, 48U, 60U, 72U, 90U, 108U, 126U, 144U, 162U, 180U, 192U, 204U, 216U, 228U, 240U, 252U})) | EXPECT_EQ(RowColumns(pattern, 0U), first_block) | EXPECT_EQ(RowColumns(pattern, 7U), shared_block) | EXPECT_EQ(RowColumns(pattern, 17U), last_block) | EXPECT_TRUE(std::is_sorted(columns.begin(), columns.end())) | EXPECT_EQ(std::adjacent_find(columns.begin(), columns.end()), columns.end()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/fem/dof_manager_test.cpp DofManager.BuildsShellScatterInSourceNodeAndComponentOrder DofManager.BuildsShellScatterInSourceNodeAndComponentOrder; assertion 2개 tests/unit/fem/dof_manager_test.cpp DofManager.BuildsShellScatterInSourceNodeAndComponentOrder 유지 원문 검사 body 및 assertion 동일. 8e1b5e8d8a5b5b681055207235c9565bd84ba56615922df7dbe69f84482a7911 8e1b5e8d8a5b5b681055207235c9565bd84ba56615922df7dbe69f84482a7911 EXPECT_EQ(dofs.FullDofCount(), 24U) | EXPECT_EQ(dofs.ShellElementScatter(0U), (std::array{ 12U, 13U, 14U, 15U, 16U, 17U, 0U, 1U, 2U, 3U, 4U, 5U, 18U, 19U, 20U, 21U, 22U, 23U, 6U, 7U, 8U, 9U, 10U, 11U})) EXPECT_EQ(dofs.FullDofCount(), 24U) | EXPECT_EQ(dofs.ShellElementScatter(0U), (std::array{ 12U, 13U, 14U, 15U, 16U, 17U, 0U, 1U, 2U, 3U, 4U, 5U, 18U, 19U, 20U, 21U, 22U, 23U, 6U, 7U, 8U, 9U, 10U, 11U})) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/fem/dof_manager_test.cpp DofManager.IncludesShellConnectivityInSortedUniqueSparsePattern DofManager.IncludesShellConnectivityInSortedUniqueSparsePattern; assertion 8개 tests/unit/fem/dof_manager_test.cpp DofManager.IncludesShellConnectivityInSortedUniqueSparsePattern 유지 원문 검사 body 및 assertion 동일. 92c8de2bfcae8aace6b388803d0a64c9ac18f2d175a866e225089b21c4a623c8 92c8de2bfcae8aace6b388803d0a64c9ac18f2d175a866e225089b21c4a623c8 ASSERT_EQ(pattern.row_offsets.size(), 25U) | ASSERT_EQ(pattern.column_indices.size(), 24U * 24U) | EXPECT_EQ(pattern.row_offsets[row], row * 24U) | EXPECT_EQ(pattern.row_offsets[row + 1U], (row + 1U) * 24U) | ASSERT_EQ(columns.size(), 24U) | EXPECT_EQ(columns[column], column) | EXPECT_TRUE(std::binary_search(columns.begin(), columns.end(), row)) | EXPECT_EQ(std::adjacent_find(columns.begin(), columns.end()), columns.end()) ASSERT_EQ(pattern.row_offsets.size(), 25U) | ASSERT_EQ(pattern.column_indices.size(), 24U * 24U) | EXPECT_EQ(pattern.row_offsets[row], row * 24U) | EXPECT_EQ(pattern.row_offsets[row + 1U], (row + 1U) * 24U) | ASSERT_EQ(columns.size(), 24U) | EXPECT_EQ(columns[column], column) | EXPECT_TRUE(std::binary_search(columns.begin(), columns.end(), row)) | EXPECT_EQ(std::adjacent_find(columns.begin(), columns.end()), columns.end()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/fem/dof_manager_test.cpp DofManager.ReconstructsFullReducedRoundTrip DofManager.ReconstructsFullReducedRoundTrip; assertion 2개 tests/unit/fem/dof_manager_test.cpp DofManager.ReconstructsFullReducedRoundTrip 유지 원문 검사 body 및 assertion 동일. bcaf1e9c9f316b66734a1487522db16345e115f41d6580164af239c16aef76e0 bcaf1e9c9f316b66734a1487522db16345e115f41d6580164af239c16aef76e0 ASSERT_EQ(reconstructed.Size(), full.Size()) | EXPECT_DOUBLE_EQ(reconstructed[index], full[index]) ASSERT_EQ(reconstructed.Size(), full.Size()) | EXPECT_DOUBLE_EQ(reconstructed[index], full[index]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/fem/dof_manager_test.cpp ThermalDofManager.MapsOnlyConnectedNodesAndOverridesModelBoundary ThermalDofManager.MapsOnlyConnectedNodesAndOverridesModelBoundary; assertion 42개 tests/unit/fem/dof_manager_test.cpp ThermalDofManager.MapsOnlyConnectedNodesAndOverridesModelBoundary 유지 원문 검사 body 및 assertion 동일. 14c6b2472e4b37fd66fa0c929e96926cb3dbd44664ac0b9917708049cc8ae79b 14c6b2472e4b37fd66fa0c929e96926cb3dbd44664ac0b9917708049cc8ae79b "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(dofs.Profile(), fesa::DofProfile::kThermal) | EXPECT_EQ(dofs.FullDofCount(), 30U) | EXPECT_THROW(dofs.FullDof(0U, fesa::DofComponent::kUx), std::logic_error) | EXPECT_EQ(dofs.ConstrainedDofs(), (std::vector{0U, 9U})) | ASSERT_EQ(dofs.PrescribedValues().Size(), 2U) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[0U], 3.0) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[1U], 2.0) | EXPECT_EQ(dofs.FullThermalDof(6U, fesa::ThermalDofComponent::kTop), 29U) | EXPECT_THROW(dofs.FullThermalDof(3U, fesa::ThermalDofComponent::kBottom), std::out_of_range) | EXPECT_THROW( dofs.FullThermalDof( 0U, static_cast( (std::numeric_limits::min)())), std::out_of_range) | ASSERT_TRUE(first.HasValue()) | EXPECT_EQ(first.Value(), (std::vector{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U, 18U, 19U})) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(std::vector(second.Value().begin(), second.Value().begin() + 5U), (std::vector{5U, 6U, 7U, 8U, 9U})) | EXPECT_EQ(std::vector(second.Value().end() - 5U, second.Value().end()), (std::vector{10U, 11U, 12U, 13U, 14U})) | EXPECT_FALSE(dofs.ElementScatter(structural_layout).HasValue()) | ASSERT_FALSE(repeated.HasValue()) | EXPECT_EQ(repeated.GetStatus().Diagnostics()[0U].code, ""duplicate-element-dof"") | ASSERT_FALSE(reordered.HasValue()) | ASSERT_FALSE(invalid_component.HasValue()) | EXPECT_EQ(RowColumns(dofs.GetSparsePattern(), 0U), (std::vector{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U, 18U, 19U})) | ASSERT_TRUE(scatter_before.HasValue()) | ASSERT_FALSE(invalid.IsOk()) | EXPECT_EQ(invalid.Diagnostics()[0U].code, ""invalid-thermal-element-layout"") | EXPECT_EQ(dofs.Profile(), profile_before) | EXPECT_EQ(dofs.FullDofCount(), full_count_before) | EXPECT_EQ(dofs.FreeDofCount(), free_count_before) | EXPECT_EQ(dofs.ConstrainedDofCount(), constrained_count_before) | EXPECT_EQ(dofs.FreeDofs(), free_before) | EXPECT_EQ(dofs.ConstrainedDofs(), constrained_before) | ASSERT_EQ(dofs.PrescribedValues().Size(), prescribed_before.Size()) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[index], prescribed_before[index]) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, pattern_before.row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, pattern_before.column_indices) | ASSERT_TRUE(scatter_after.HasValue()) | EXPECT_EQ(scatter_after.Value(), scatter_before.Value()) | ASSERT_FALSE(structural_misuse.IsOk()) | EXPECT_EQ(structural_misuse.Diagnostics()[0U].code, ""invalid-dof-profile"") | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, pattern_before.row_offsets)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(dofs.Profile(), fesa::DofProfile::kThermal) | EXPECT_EQ(dofs.FullDofCount(), 30U) | EXPECT_THROW(dofs.FullDof(0U, fesa::DofComponent::kUx), std::logic_error) | EXPECT_EQ(dofs.ConstrainedDofs(), (std::vector{0U, 9U})) | ASSERT_EQ(dofs.PrescribedValues().Size(), 2U) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[0U], 3.0) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[1U], 2.0) | EXPECT_EQ(dofs.FullThermalDof(6U, fesa::ThermalDofComponent::kTop), 29U) | EXPECT_THROW(dofs.FullThermalDof(3U, fesa::ThermalDofComponent::kBottom), std::out_of_range) | EXPECT_THROW( dofs.FullThermalDof( 0U, static_cast( (std::numeric_limits::min)())), std::out_of_range) | ASSERT_TRUE(first.HasValue()) | EXPECT_EQ(first.Value(), (std::vector{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U, 18U, 19U})) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(std::vector(second.Value().begin(), second.Value().begin() + 5U), (std::vector{5U, 6U, 7U, 8U, 9U})) | EXPECT_EQ(std::vector(second.Value().end() - 5U, second.Value().end()), (std::vector{10U, 11U, 12U, 13U, 14U})) | EXPECT_FALSE(dofs.ElementScatter(structural_layout).HasValue()) | ASSERT_FALSE(repeated.HasValue()) | EXPECT_EQ(repeated.GetStatus().Diagnostics()[0U].code, ""duplicate-element-dof"") | ASSERT_FALSE(reordered.HasValue()) | ASSERT_FALSE(invalid_component.HasValue()) | EXPECT_EQ(RowColumns(dofs.GetSparsePattern(), 0U), (std::vector{0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U, 18U, 19U})) | ASSERT_TRUE(scatter_before.HasValue()) | ASSERT_FALSE(invalid.IsOk()) | EXPECT_EQ(invalid.Diagnostics()[0U].code, ""invalid-thermal-element-layout"") | EXPECT_EQ(dofs.Profile(), profile_before) | EXPECT_EQ(dofs.FullDofCount(), full_count_before) | EXPECT_EQ(dofs.FreeDofCount(), free_count_before) | EXPECT_EQ(dofs.ConstrainedDofCount(), constrained_count_before) | EXPECT_EQ(dofs.FreeDofs(), free_before) | EXPECT_EQ(dofs.ConstrainedDofs(), constrained_before) | ASSERT_EQ(dofs.PrescribedValues().Size(), prescribed_before.Size()) | EXPECT_DOUBLE_EQ(dofs.PrescribedValues()[index], prescribed_before[index]) | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, pattern_before.row_offsets) | EXPECT_EQ(dofs.GetSparsePattern().column_indices, pattern_before.column_indices) | ASSERT_TRUE(scatter_after.HasValue()) | EXPECT_EQ(scatter_after.Value(), scatter_before.Value()) | ASSERT_FALSE(structural_misuse.IsOk()) | EXPECT_EQ(structural_misuse.Diagnostics()[0U].code, ""invalid-dof-profile"") | EXPECT_EQ(dofs.GetSparsePattern().row_offsets, pattern_before.row_offsets)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/fem/dof_manager_test.cpp ThermalDofManager.RejectsChangedThermalLayoutInventory ThermalDofManager.RejectsChangedThermalLayoutInventory; assertion 6개 tests/unit/fem/dof_manager_test.cpp ThermalDofManager.RejectsChangedThermalLayoutInventory 유지 원문 검사 body 및 assertion 동일. 24dfec1451d61871c9de4765e12b026aec9b6b1285976d60b47e34c047330d85 24dfec1451d61871c9de4765e12b026aec9b6b1285976d60b47e34c047330d85 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_identity).IsOk()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_order).IsOk()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_nodes).IsOk()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_identity).IsOk()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_order).IsOk()) | EXPECT_FALSE(dofs.BuildThermal(model.Value(), changed_nodes).IsOk()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/fem/dof_manager_test.cpp ThermalDofManager.KeepsDisconnectedThermalComponentsInSeparateCsrBlocks ThermalDofManager.KeepsDisconnectedThermalComponentsInSeparateCsrBlocks; assertion 6개 tests/unit/fem/dof_manager_test.cpp ThermalDofManager.KeepsDisconnectedThermalComponentsInSeparateCsrBlocks 유지 원문 검사 body 및 assertion 동일. 3c945c7278e08616de4858fb363c62549e22c8e97d0f6742280b2f61f0a218af 3c945c7278e08616de4858fb363c62549e22c8e97d0f6742280b2f61f0a218af ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().FullDofCount(), 40U) | EXPECT_EQ(RowColumns(result.Value().GetSparsePattern(), 0U).size(), 20U) | EXPECT_EQ(RowColumns(result.Value().GetSparsePattern(), 20U).front(), 20U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().FullDofCount(), 40U) | EXPECT_EQ(RowColumns(result.Value().GetSparsePattern(), 0U).size(), 20U) | EXPECT_EQ(RowColumns(result.Value().GetSparsePattern(), 20U).front(), 20U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/fem/dof_manager_test.cpp ThermalDofManager.RejectsThermalLayoutsForStructuralModels ThermalDofManager.RejectsThermalLayoutsForStructuralModels; assertion 6개 tests/unit/fem/dof_manager_test.cpp ThermalDofManager.RejectsThermalLayoutsForStructuralModels 유지 원문 검사 body 및 assertion 동일. 87aec2f1aa1dcfc017a94fb57393f0d486489a38edebfa67898ef75e8b1cd2fc 87aec2f1aa1dcfc017a94fb57393f0d486489a38edebfa67898ef75e8b1cd2fc "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-dof-profile"") | ASSERT_FALSE(thermal_create.HasValue()) | EXPECT_EQ(thermal_create.GetStatus().Diagnostics()[0U].code, ""invalid-dof-profile"")" "ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(model.HasValue()) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics()[0U].code, ""invalid-dof-profile"") | ASSERT_FALSE(thermal_create.HasValue()) | EXPECT_EQ(thermal_create.GetStatus().Diagnostics()[0U].code, ""invalid-dof-profile"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/fem/dof_manager_test.cpp support@1-207 helper/oracle/fixture/include/static assertion 구간: fesa, DofManagerTestAccess, DuplicateOwnership, RemoveFullMapping, ReverseFreeMapping, ReverseConstrainedMapping, CorruptEquationMapping, RemoveSparsePatternEntry, AddSparsePatternEntry, GenericLayoutElement, MakeDefinition, MakeShellDefinition, MakeThermalDefinition, DofFixture, MakeDofFixture, RowColumns, ExpectInvariantFailure tests/unit/fem/dof_manager_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ffdf3f61885836b4d08db6391e44d3993b391b5861abaf01a81f80f6c03e85fb 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/fem/dof_manager_test.cpp support@378-379 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/fem/dof_manager_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. edda67d5ae3e698f84e25f71acc0ab095496b8f704006cd9bd5d64597a7e94e3 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/fem/dof_manager_test.cpp support@390-391 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/fem/dof_manager_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 639575113829ba3af23c869e39aa0c68dfba327851149b3234d6c75f83aaa755 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 15개 tests/unit/io/abaqus/domain_mapper_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cdc14b4c935734140f44849672a8a15b2137233b1a5853a685577d3eb16dc728 cdc14b4c935734140f44849672a8a15b2137233b1a5853a685577d3eb16dc728 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsEverySupportedKeywordAndLegacyDeck InpDomainMapping.MapsEverySupportedKeywordAndLegacyDeck; assertion 54개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsEverySupportedKeywordAndLegacyDeck 유지 원문 검사 body 및 assertion 동일. 8f78580d37874c8e4e673f2ddf25cc61801dbcae17fb3ed4731609edd952f3d3 8f78580d37874c8e4e673f2ddf25cc61801dbcae17fb3ed4731609edd952f3d3 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Nodes()[0].source_id.instance_name, ""Beam-1"") | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""0001"") | EXPECT_EQ(domain.Nodes()[1].source_id.source_label_text, ""0002"") | EXPECT_DOUBLE_EQ(domain.Nodes()[1].coordinates[0], 2.0) | ASSERT_EQ(domain.Elements().Size(), 1U) | EXPECT_EQ(element.Kind(), fesa::ElementDefinitionKind::kEulerBeam3D) | EXPECT_EQ(element.SourceId().source_label_text, ""0007"") | EXPECT_EQ(element.SourceElementType(), ""B33"") | EXPECT_EQ(element.NodeIndices(), (std::vector{0U, 1U})) | EXPECT_EQ(&element, &domain.BeamElements()[0U]) | ASSERT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Materials()[0U].Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(domain.LinearElasticMaterials()[0U].name, ""Steel"") | EXPECT_DOUBLE_EQ(domain.LinearElasticMaterials()[0U].youngs_modulus, 210000.0) | EXPECT_DOUBLE_EQ(domain.LinearElasticMaterials()[0U].poisson_ratio, 0.75) | ASSERT_EQ(domain.Sections().Size(), 1U) | EXPECT_DOUBLE_EQ(section.area, 2.0) | EXPECT_DOUBLE_EQ(section.i11, 3.0) | EXPECT_DOUBLE_EQ(section.i12, 0.0) | EXPECT_DOUBLE_EQ(section.i22, 4.0) | EXPECT_DOUBLE_EQ(section.torsional_constant, 5.0) | EXPECT_EQ(section.first_axis, (std::array{0.0, 1.0, 0.0})) | EXPECT_EQ(section.section_points, (std::vector>{{-0.5, 0.25}, {0.5, -0.25}})) | EXPECT_EQ(domain.BeamElements()[0U].material_index, 0U) | EXPECT_EQ(domain.BeamElements()[0U].section_index, 0U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(step.Name(), ""Step-1"") | EXPECT_DOUBLE_EQ(step.InitialIncrement(), 0.25) | EXPECT_DOUBLE_EQ(step.TimePeriod(), 1.5) | EXPECT_DOUBLE_EQ(step.MinimumIncrement(), 0.01) | EXPECT_DOUBLE_EQ(step.MaximumIncrement(), 1.5) | ASSERT_EQ(step.PrescribedDisplacements().Size(), 2U) | EXPECT_EQ(step.PrescribedDisplacements()[0U].Target().target_name_or_label, ""rootassembly"") | EXPECT_EQ(step.PrescribedDisplacements()[0U].Component(), fesa::DofComponent::kUx) | EXPECT_DOUBLE_EQ(step.PrescribedDisplacements()[0U].PrescribedValue(), 0.125) | EXPECT_EQ(step.PrescribedDisplacements()[1U].Component(), fesa::DofComponent::kUy) | EXPECT_DOUBLE_EQ(step.PrescribedDisplacements()[1U].PrescribedValue(), 0.0) | ASSERT_EQ(step.ConcentratedLoads().Size(), 1U) | EXPECT_EQ(step.ConcentratedLoads()[0U].Target().target_name_or_label, ""RootAssembly"") | EXPECT_DOUBLE_EQ(step.ConcentratedLoads()[0U].GlobalComponents()[5U], -12.5) | EXPECT_EQ(domain.Warnings().size(), 8U) | ASSERT_TRUE(parsed_legacy.HasValue()) | ASSERT_TRUE(legacy.HasValue()) | EXPECT_EQ(legacy.Value().Nodes().size(), 11U) | EXPECT_EQ(legacy.Value().Elements().Size(), 10U) | EXPECT_EQ(legacy.Value().Materials().Size(), 1U) | EXPECT_EQ(legacy.Value().Sections().Size(), 1U) | EXPECT_EQ(legacy.Value().Steps().Size(), 1U) | EXPECT_EQ(legacy.Value().Warnings().size(), 7U) | EXPECT_EQ(ReadExactBytes(legacy_path), bytes_before) | EXPECT_EQ(std::filesystem::last_write_time(legacy_path), timestamp_before)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Nodes()[0].source_id.instance_name, ""Beam-1"") | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""0001"") | EXPECT_EQ(domain.Nodes()[1].source_id.source_label_text, ""0002"") | EXPECT_DOUBLE_EQ(domain.Nodes()[1].coordinates[0], 2.0) | ASSERT_EQ(domain.Elements().Size(), 1U) | EXPECT_EQ(element.Kind(), fesa::ElementDefinitionKind::kEulerBeam3D) | EXPECT_EQ(element.SourceId().source_label_text, ""0007"") | EXPECT_EQ(element.SourceElementType(), ""B33"") | EXPECT_EQ(element.NodeIndices(), (std::vector{0U, 1U})) | EXPECT_EQ(&element, &domain.BeamElements()[0U]) | ASSERT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Materials()[0U].Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(domain.LinearElasticMaterials()[0U].name, ""Steel"") | EXPECT_DOUBLE_EQ(domain.LinearElasticMaterials()[0U].youngs_modulus, 210000.0) | EXPECT_DOUBLE_EQ(domain.LinearElasticMaterials()[0U].poisson_ratio, 0.75) | ASSERT_EQ(domain.Sections().Size(), 1U) | EXPECT_DOUBLE_EQ(section.area, 2.0) | EXPECT_DOUBLE_EQ(section.i11, 3.0) | EXPECT_DOUBLE_EQ(section.i12, 0.0) | EXPECT_DOUBLE_EQ(section.i22, 4.0) | EXPECT_DOUBLE_EQ(section.torsional_constant, 5.0) | EXPECT_EQ(section.first_axis, (std::array{0.0, 1.0, 0.0})) | EXPECT_EQ(section.section_points, (std::vector>{{-0.5, 0.25}, {0.5, -0.25}})) | EXPECT_EQ(domain.BeamElements()[0U].material_index, 0U) | EXPECT_EQ(domain.BeamElements()[0U].section_index, 0U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(step.Name(), ""Step-1"") | EXPECT_DOUBLE_EQ(step.InitialIncrement(), 0.25) | EXPECT_DOUBLE_EQ(step.TimePeriod(), 1.5) | EXPECT_DOUBLE_EQ(step.MinimumIncrement(), 0.01) | EXPECT_DOUBLE_EQ(step.MaximumIncrement(), 1.5) | ASSERT_EQ(step.PrescribedDisplacements().Size(), 2U) | EXPECT_EQ(step.PrescribedDisplacements()[0U].Target().target_name_or_label, ""rootassembly"") | EXPECT_EQ(step.PrescribedDisplacements()[0U].Component(), fesa::DofComponent::kUx) | EXPECT_DOUBLE_EQ(step.PrescribedDisplacements()[0U].PrescribedValue(), 0.125) | EXPECT_EQ(step.PrescribedDisplacements()[1U].Component(), fesa::DofComponent::kUy) | EXPECT_DOUBLE_EQ(step.PrescribedDisplacements()[1U].PrescribedValue(), 0.0) | ASSERT_EQ(step.ConcentratedLoads().Size(), 1U) | EXPECT_EQ(step.ConcentratedLoads()[0U].Target().target_name_or_label, ""RootAssembly"") | EXPECT_DOUBLE_EQ(step.ConcentratedLoads()[0U].GlobalComponents()[5U], -12.5) | EXPECT_EQ(domain.Warnings().size(), 8U) | ASSERT_TRUE(parsed_legacy.HasValue()) | ASSERT_TRUE(legacy.HasValue()) | EXPECT_EQ(legacy.Value().Nodes().size(), 11U) | EXPECT_EQ(legacy.Value().Elements().Size(), 10U) | EXPECT_EQ(legacy.Value().Materials().Size(), 1U) | EXPECT_EQ(legacy.Value().Sections().Size(), 1U) | EXPECT_EQ(legacy.Value().Steps().Size(), 1U) | EXPECT_EQ(legacy.Value().Warnings().size(), 7U) | EXPECT_EQ(ReadExactBytes(legacy_path), bytes_before) | EXPECT_EQ(std::filesystem::last_write_time(legacy_path), timestamp_before)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.ExpandsSetsAndMultipleIdentityInstancesDeterministically InpDomainMapping.ExpandsSetsAndMultipleIdentityInstancesDeterministically; assertion 44개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.ExpandsSetsAndMultipleIdentityInstancesDeterministically 유지 원문 검사 body 및 assertion 동일. bf2734852f2ee6378dde74ca60a0a11d717385260626eff82987b59932ab65a4 bf2734852f2ee6378dde74ca60a0a11d717385260626eff82987b59932ab65a4 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 4U) | EXPECT_EQ(domain.Nodes()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes()[1].source_id.instance_name, ""First"") | EXPECT_EQ(domain.Nodes()[1].source_id.source_label, 20) | EXPECT_EQ(domain.Nodes()[2].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.Nodes()[2].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes()[3].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.Nodes()[3].source_id.source_label, 20) | ASSERT_EQ(domain.BeamElements().Size(), 2U) | EXPECT_EQ(domain.BeamElements()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.BeamElements()[0].node_indices, (std::array{0U, 1U})) | EXPECT_EQ(domain.BeamElements()[1].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.BeamElements()[1].node_indices, (std::array{2U, 3U})) | ASSERT_EQ(domain.NodeSets().size(), 3U) | EXPECT_EQ(domain.NodeSets()[0].name, ""Ends"") | EXPECT_EQ(domain.NodeSets()[0].instance_name, std::optional{""First""}) | EXPECT_EQ(domain.NodeSets()[0].node_indices, (std::vector{0U, 1U})) | EXPECT_EQ(domain.NodeSets()[1].instance_name, std::optional{""Second""}) | EXPECT_EQ(domain.NodeSets()[1].node_indices, (std::vector{2U, 3U})) | EXPECT_EQ(domain.NodeSets()[2].name, ""OnlySecond"") | EXPECT_EQ(domain.NodeSets()[2].node_indices, (std::vector{3U})) | ASSERT_EQ(domain.ElementSets().size(), 3U) | EXPECT_EQ(domain.ElementSets()[0].instance_name, std::optional{""First""}) | EXPECT_EQ(domain.ElementSets()[0].element_indices, (std::vector{0U})) | EXPECT_EQ(domain.ElementSets()[1].instance_name, std::optional{""Second""}) | EXPECT_EQ(domain.ElementSets()[1].element_indices, (std::vector{1U})) | EXPECT_EQ(domain.ElementSets()[2].name, ""OnlySecondBeam"") | EXPECT_EQ(domain.ElementSets()[2].element_indices, (std::vector{1U})) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0] .PrescribedDisplacements()[0U] .Target() .target_name_or_label, ""OnlySecond"") | EXPECT_EQ( domain.Steps()[0].ConcentratedLoads()[0U].Target().target_name_or_label, ""OnlySecond"") | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(direct.Value() .Steps()[0] .PrescribedDisplacements()[0U] .Target() .target_name_or_label, ""1"") | EXPECT_EQ(direct.Value() .Steps()[0] .ConcentratedLoads()[0U] .Target() .target_name_or_label, ""2"") | ASSERT_TRUE(above_thresholds.HasValue()) | ASSERT_TRUE(large_finite.HasValue()) | ASSERT_EQ(large_domain.Nodes().size(), 2U) | EXPECT_TRUE(large_delta.IsFinite()) | EXPECT_TRUE(std::isfinite(large_delta.Norm())) | EXPECT_DOUBLE_EQ(large_delta.Y(), 1.0e297) | EXPECT_TRUE(large_guide.IsFinite()) | EXPECT_TRUE(std::isfinite(large_guide.Norm()))" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 4U) | EXPECT_EQ(domain.Nodes()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes()[1].source_id.instance_name, ""First"") | EXPECT_EQ(domain.Nodes()[1].source_id.source_label, 20) | EXPECT_EQ(domain.Nodes()[2].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.Nodes()[2].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes()[3].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.Nodes()[3].source_id.source_label, 20) | ASSERT_EQ(domain.BeamElements().Size(), 2U) | EXPECT_EQ(domain.BeamElements()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.BeamElements()[0].node_indices, (std::array{0U, 1U})) | EXPECT_EQ(domain.BeamElements()[1].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.BeamElements()[1].node_indices, (std::array{2U, 3U})) | ASSERT_EQ(domain.NodeSets().size(), 3U) | EXPECT_EQ(domain.NodeSets()[0].name, ""Ends"") | EXPECT_EQ(domain.NodeSets()[0].instance_name, std::optional{""First""}) | EXPECT_EQ(domain.NodeSets()[0].node_indices, (std::vector{0U, 1U})) | EXPECT_EQ(domain.NodeSets()[1].instance_name, std::optional{""Second""}) | EXPECT_EQ(domain.NodeSets()[1].node_indices, (std::vector{2U, 3U})) | EXPECT_EQ(domain.NodeSets()[2].name, ""OnlySecond"") | EXPECT_EQ(domain.NodeSets()[2].node_indices, (std::vector{3U})) | ASSERT_EQ(domain.ElementSets().size(), 3U) | EXPECT_EQ(domain.ElementSets()[0].instance_name, std::optional{""First""}) | EXPECT_EQ(domain.ElementSets()[0].element_indices, (std::vector{0U})) | EXPECT_EQ(domain.ElementSets()[1].instance_name, std::optional{""Second""}) | EXPECT_EQ(domain.ElementSets()[1].element_indices, (std::vector{1U})) | EXPECT_EQ(domain.ElementSets()[2].name, ""OnlySecondBeam"") | EXPECT_EQ(domain.ElementSets()[2].element_indices, (std::vector{1U})) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0] .PrescribedDisplacements()[0U] .Target() .target_name_or_label, ""OnlySecond"") | EXPECT_EQ( domain.Steps()[0].ConcentratedLoads()[0U].Target().target_name_or_label, ""OnlySecond"") | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(direct.Value() .Steps()[0] .PrescribedDisplacements()[0U] .Target() .target_name_or_label, ""1"") | EXPECT_EQ(direct.Value() .Steps()[0] .ConcentratedLoads()[0U] .Target() .target_name_or_label, ""2"") | ASSERT_TRUE(above_thresholds.HasValue()) | ASSERT_TRUE(large_finite.HasValue()) | ASSERT_EQ(large_domain.Nodes().size(), 2U) | EXPECT_TRUE(large_delta.IsFinite()) | EXPECT_TRUE(std::isfinite(large_delta.Norm())) | EXPECT_DOUBLE_EQ(large_delta.Y(), 1.0e297) | EXPECT_TRUE(large_guide.IsFinite()) | EXPECT_TRUE(std::isfinite(large_guide.Norm()))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.KeepsNodeAndElementSetNamesInSeparateNamespaces InpDomainMapping.KeepsNodeAndElementSetNamesInSeparateNamespaces; assertion 12개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.KeepsNodeAndElementSetNamesInSeparateNamespaces 유지 원문 검사 body 및 assertion 동일. 2aba9a9e28b849050f1881692d962a2144d083d109388698a14e43a9c5c8b3fa 2aba9a9e28b849050f1881692d962a2144d083d109388698a14e43a9c5c8b3fa "ASSERT_TRUE(shared_name.HasValue()) | EXPECT_TRUE(std::any_of( domain.NodeSets().begin(), domain.NodeSets().end(), [](const fesa::NodeSet& set) { return set.name == ""ShellS4""; })) | EXPECT_TRUE(std::any_of( domain.ElementSets().begin(), domain.ElementSets().end(), [](const fesa::ElementSet& set) { return set.name == ""ShellS4""; })) | ASSERT_FALSE(duplicate_node_set.HasValue()) | EXPECT_NE(FindDiagnostic(duplicate_node_set.GetStatus(), ""duplicate-entity""), nullptr) | ASSERT_FALSE(duplicate_element_set.HasValue()) | EXPECT_NE( FindDiagnostic(duplicate_element_set.GetStatus(), ""duplicate-entity""), nullptr) | ASSERT_TRUE(assembly_shared_name.HasValue()) | EXPECT_EQ(root_node_set_count, 1) | ASSERT_NE(root_node_set, assembly_domain.NodeSets().end()) | EXPECT_EQ(root_node_set->node_indices, (std::vector{0U})) | EXPECT_EQ(std::count_if( assembly_domain.ElementSets().begin(), assembly_domain.ElementSets().end(), [](const fesa::ElementSet& set) { return set.name == ""Root""; }), 1)" "ASSERT_TRUE(shared_name.HasValue()) | EXPECT_TRUE(std::any_of( domain.NodeSets().begin(), domain.NodeSets().end(), [](const fesa::NodeSet& set) { return set.name == ""ShellS4""; })) | EXPECT_TRUE(std::any_of( domain.ElementSets().begin(), domain.ElementSets().end(), [](const fesa::ElementSet& set) { return set.name == ""ShellS4""; })) | ASSERT_FALSE(duplicate_node_set.HasValue()) | EXPECT_NE(FindDiagnostic(duplicate_node_set.GetStatus(), ""duplicate-entity""), nullptr) | ASSERT_FALSE(duplicate_element_set.HasValue()) | EXPECT_NE( FindDiagnostic(duplicate_element_set.GetStatus(), ""duplicate-entity""), nullptr) | ASSERT_TRUE(assembly_shared_name.HasValue()) | EXPECT_EQ(root_node_set_count, 1) | ASSERT_NE(root_node_set, assembly_domain.NodeSets().end()) | EXPECT_EQ(root_node_set->node_indices, (std::vector{0U})) | EXPECT_EQ(std::count_if( assembly_domain.ElementSets().begin(), assembly_domain.ElementSets().end(), [](const fesa::ElementSet& set) { return set.name == ""Root""; }), 1)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.NoOpAllowlistWarnsWithoutSemanticEffect InpDomainMapping.NoOpAllowlistWarnsWithoutSemanticEffect; assertion 23개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.NoOpAllowlistWarnsWithoutSemanticEffect 유지 원문 검사 body 및 assertion 동일. 9556663b9437fa4d24f82ae5e96bbab4bc6f0cb6dc06ec796f94eafbe3bcb829 9556663b9437fa4d24f82ae5e96bbab4bc6f0cb6dc06ec796f94eafbe3bcb829 "ASSERT_TRUE(plain.HasValue()) | ASSERT_TRUE(with_no_ops.HasValue()) | EXPECT_TRUE(plain.Value().Warnings().empty()) | ASSERT_EQ(with_no_ops.Value().Warnings().size(), 8U) | EXPECT_EQ(with_no_ops.Value().Warnings()[0].code, ""ignored-input-keyword"") | EXPECT_EQ(with_no_ops.Value().Warnings()[0].keyword, ""PREPRINT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[1].keyword, ""TRANSVERSE SHEAR STIFFNESS"") | EXPECT_EQ(with_no_ops.Value().Warnings()[2].keyword, ""RESTART"") | EXPECT_EQ(with_no_ops.Value().Warnings()[3].keyword, ""OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[4].keyword, ""NODE OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[5].keyword, ""ELEMENT OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[6].keyword, ""CONTACT OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[7].keyword, ""OUTPUT"") | EXPECT_EQ(warning.severity, fesa::Severity::kWarning) | EXPECT_EQ(with_no_ops.Value().Nodes().size(), plain.Value().Nodes().size()) | EXPECT_EQ(with_no_ops.Value().Elements().Size(), plain.Value().Elements().Size()) | EXPECT_EQ(with_no_ops.Value().Materials().Size(), plain.Value().Materials().Size()) | EXPECT_EQ(with_no_ops.Value().Sections().Size(), plain.Value().Sections().Size()) | EXPECT_EQ(with_no_ops.Value().NodeSets().size(), plain.Value().NodeSets().size()) | EXPECT_EQ(with_no_ops.Value().ElementSets().size(), plain.Value().ElementSets().size()) | EXPECT_EQ(with_no_ops.Value().Steps().Size(), plain.Value().Steps().Size()) | EXPECT_EQ(with_no_ops.Value().Steps()[0].BoundaryConditions().size(), plain.Value().Steps()[0].BoundaryConditions().size()) | EXPECT_EQ(with_no_ops.Value().Steps()[0].Loads().size(), plain.Value().Steps()[0].Loads().size())" "ASSERT_TRUE(plain.HasValue()) | ASSERT_TRUE(with_no_ops.HasValue()) | EXPECT_TRUE(plain.Value().Warnings().empty()) | ASSERT_EQ(with_no_ops.Value().Warnings().size(), 8U) | EXPECT_EQ(with_no_ops.Value().Warnings()[0].code, ""ignored-input-keyword"") | EXPECT_EQ(with_no_ops.Value().Warnings()[0].keyword, ""PREPRINT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[1].keyword, ""TRANSVERSE SHEAR STIFFNESS"") | EXPECT_EQ(with_no_ops.Value().Warnings()[2].keyword, ""RESTART"") | EXPECT_EQ(with_no_ops.Value().Warnings()[3].keyword, ""OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[4].keyword, ""NODE OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[5].keyword, ""ELEMENT OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[6].keyword, ""CONTACT OUTPUT"") | EXPECT_EQ(with_no_ops.Value().Warnings()[7].keyword, ""OUTPUT"") | EXPECT_EQ(warning.severity, fesa::Severity::kWarning) | EXPECT_EQ(with_no_ops.Value().Nodes().size(), plain.Value().Nodes().size()) | EXPECT_EQ(with_no_ops.Value().Elements().Size(), plain.Value().Elements().Size()) | EXPECT_EQ(with_no_ops.Value().Materials().Size(), plain.Value().Materials().Size()) | EXPECT_EQ(with_no_ops.Value().Sections().Size(), plain.Value().Sections().Size()) | EXPECT_EQ(with_no_ops.Value().NodeSets().size(), plain.Value().NodeSets().size()) | EXPECT_EQ(with_no_ops.Value().ElementSets().size(), plain.Value().ElementSets().size()) | EXPECT_EQ(with_no_ops.Value().Steps().Size(), plain.Value().Steps().Size()) | EXPECT_EQ(with_no_ops.Value().Steps()[0].BoundaryConditions().size(), plain.Value().Steps()[0].BoundaryConditions().size()) | EXPECT_EQ(with_no_ops.Value().Steps()[0].Loads().size(), plain.Value().Steps()[0].Loads().size())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsNonlinearStaticShellProcedureAndRawControls InpDomainMapping.MapsNonlinearStaticShellProcedureAndRawControls; assertion 12개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsNonlinearStaticShellProcedureAndRawControls 유지 원문 검사 body 및 assertion 동일. 2e73d6a87d1ffc3aec44a5df50e01816e4fdf726356ea95f337dbf60a1e4d902 2e73d6a87d1ffc3aec44a5df50e01816e4fdf726356ea95f337dbf60a1e4d902 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(step.ProcedureKind(), fesa::StaticProcedureKind::kNonlinearFullNewton) | EXPECT_TRUE(step.IsNonlinearStatic()) | EXPECT_DOUBLE_EQ(step.InitialIncrement(), 0.1) | EXPECT_DOUBLE_EQ(step.TimePeriod(), 1.0) | EXPECT_DOUBLE_EQ(step.MinimumIncrement(), 0.001) | EXPECT_DOUBLE_EQ(step.MaximumIncrement(), 0.1) | EXPECT_TRUE(domain.BeamElements().Empty()) | ASSERT_EQ(domain.ShellElements().Size(), 4U) | EXPECT_EQ(domain.ShellElements()[0U].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[1U].source_type, fesa::ShellSourceElementType::kS4r) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(step.ProcedureKind(), fesa::StaticProcedureKind::kNonlinearFullNewton) | EXPECT_TRUE(step.IsNonlinearStatic()) | EXPECT_DOUBLE_EQ(step.InitialIncrement(), 0.1) | EXPECT_DOUBLE_EQ(step.TimePeriod(), 1.0) | EXPECT_DOUBLE_EQ(step.MinimumIncrement(), 0.001) | EXPECT_DOUBLE_EQ(step.MaximumIncrement(), 0.1) | EXPECT_TRUE(domain.BeamElements().Empty()) | ASSERT_EQ(domain.ShellElements().Size(), 4U) | EXPECT_EQ(domain.ShellElements()[0U].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[1U].source_type, fesa::ShellSourceElementType::kS4r) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.KeepsExplicitAndImplicitLinearStaticProcedures InpDomainMapping.KeepsExplicitAndImplicitLinearStaticProcedures; assertion 4개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.KeepsExplicitAndImplicitLinearStaticProcedures 유지 원문 검사 body 및 assertion 동일. 645611caad1634687946216c661df3ce027c77b5ea68d779fac476741753a12b 645611caad1634687946216c661df3ce027c77b5ea68d779fac476741753a12b ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Steps().Size(), 1U) | EXPECT_EQ(result.Value().Steps()[0U].ProcedureKind(), fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(result.Value().Steps()[0U].IsNonlinearStatic()) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().Steps().Size(), 1U) | EXPECT_EQ(result.Value().Steps()[0U].ProcedureKind(), fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(result.Value().Steps()[0U].IsNonlinearStatic()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidNonlinearStaticControlValues InpDomainMapping.RejectsInvalidNonlinearStaticControlValues; assertion 3개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidNonlinearStaticControlValues 유지 원문 검사 body 및 assertion 동일. 4833f2bb3b01123f8994ec47b375d524c9247177bb8f2e8318fbde641ce2fd45 4833f2bb3b01123f8994ec47b375d524c9247177bb8f2e8318fbde641ce2fd45 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), ""invalid-nonlinear-static-data""), nullptr)" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), ""invalid-nonlinear-static-data""), nullptr)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsUnsupportedNonlinearProceduresAndMixedModels InpDomainMapping.RejectsUnsupportedNonlinearProceduresAndMixedModels; assertion 6개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsUnsupportedNonlinearProceduresAndMixedModels 유지 원문 검사 body 및 assertion 동일. ecf6c6c09f3477f2db467ff9106e3b19c1553237de80831fdd99cc22dca3e390 ecf6c6c09f3477f2db467ff9106e3b19c1553237de80831fdd99cc22dca3e390 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.first == ""dynamic"" ? ""invalid-dynamic-data"" : ""unsupported-analysis-procedure""), nullptr) | ASSERT_FALSE(mixed_result.HasValue()) | EXPECT_EQ(mixed_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(mixed_result.GetStatus(), ""unsupported-mixed-element-model""), nullptr)" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.first == ""dynamic"" ? ""invalid-dynamic-data"" : ""unsupported-analysis-procedure""), nullptr) | ASSERT_FALSE(mixed_result.HasValue()) | EXPECT_EQ(mixed_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(mixed_result.GetStatus(), ""unsupported-mixed-element-model""), nullptr)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.AcceptsOnlyNonlinearPreselectOutputNoOps InpDomainMapping.AcceptsOnlyNonlinearPreselectOutputNoOps; assertion 11개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.AcceptsOnlyNonlinearPreselectOutputNoOps 유지 원문 검사 body 및 assertion 동일. 0bb0af8b7d98b402f61fa466169286371cf638754a75cfdcd433f5066d8c1fee 0bb0af8b7d98b402f61fa466169286371cf638754a75cfdcd433f5066d8c1fee "ASSERT_TRUE(plain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().Nodes().size(), plain.Value().Nodes().size()) | EXPECT_EQ(result.Value().Steps().Size(), plain.Value().Steps().Size()) | EXPECT_EQ(result.Value().Steps()[0U].BoundaryConditions().size(), plain.Value().Steps()[0U].BoundaryConditions().size()) | EXPECT_EQ(result.Value().Steps()[0U].Loads().size(), plain.Value().Steps()[0U].Loads().size()) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(result.Value().Warnings()[0U].keyword, ""OUTPUT"") | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), ""invalid-keyword-parameter""), nullptr)" "ASSERT_TRUE(plain.HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().Nodes().size(), plain.Value().Nodes().size()) | EXPECT_EQ(result.Value().Steps().Size(), plain.Value().Steps().Size()) | EXPECT_EQ(result.Value().Steps()[0U].BoundaryConditions().size(), plain.Value().Steps()[0U].BoundaryConditions().size()) | EXPECT_EQ(result.Value().Steps()[0U].Loads().size(), plain.Value().Steps()[0U].Loads().size()) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(result.Value().Warnings()[0U].keyword, ""OUTPUT"") | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), ""invalid-keyword-parameter""), nullptr)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsS4AndS4rThroughOneMitc4Identity InpDomainMapping.MapsS4AndS4rThroughOneMitc4Identity; assertion 40개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.MapsS4AndS4rThroughOneMitc4Identity 유지 원문 검사 body 및 assertion 동일. 73516cc1de335e84ad43308d44db8ab9748911b9df15b569a3db4a78b3694a71 73516cc1de335e84ad43308d44db8ab9748911b9df15b569a3db4a78b3694a71 "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(domain.BeamElements().Empty()) | ASSERT_EQ(domain.Elements().Size(), 4U) | EXPECT_EQ(domain.Elements()[0U].Kind(), fesa::ElementDefinitionKind::kMitc4Shell) | EXPECT_EQ(domain.Elements()[0U].SourceElementType(), ""S4"") | EXPECT_EQ(domain.Elements()[1U].SourceElementType(), ""S4R"") | EXPECT_EQ(&domain.Elements()[0U], &domain.ShellElements()[0U]) | ASSERT_EQ(domain.ShellElements().Size(), 4U) | EXPECT_EQ(domain.ShellElements()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label_text, ""0010"") | EXPECT_EQ(domain.ShellElements()[0].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[0].node_indices, (std::array{0U, 1U, 2U, 3U})) | EXPECT_EQ(domain.ShellElements()[0].section_index, 0U) | EXPECT_EQ(domain.ShellElements()[0].material_index, 0U) | EXPECT_EQ(domain.ShellElements()[1].source_id.instance_name, ""First"") | EXPECT_EQ(domain.ShellElements()[1].source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_EQ(domain.ShellElements()[1].node_indices, (std::array{1U, 4U, 5U, 2U})) | EXPECT_EQ(domain.ShellElements()[1].section_index, 1U) | EXPECT_EQ(domain.ShellElements()[1].material_index, 1U) | EXPECT_EQ(domain.ShellElements()[2].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.ShellElements()[2].node_indices, (std::array{6U, 7U, 8U, 9U})) | EXPECT_EQ(domain.ShellElements()[3].source_id.instance_name, ""Second"") | EXPECT_EQ(fesa::kMitc4InternalFormulation, std::string_view{""FESA-MITC4""}) | ASSERT_EQ(domain.ShellSections().Size(), 2U) | EXPECT_EQ(domain.ShellSections()[0].name, ""ShellS4"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[0].thickness, 0.1) | EXPECT_EQ(domain.ShellSections()[0].material_index, 0U) | EXPECT_EQ(domain.ShellSections()[1].name, ""ShellS4R"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[1].thickness, 0.2) | EXPECT_EQ(domain.ShellSections()[1].material_index, 1U) | ASSERT_EQ(domain.ShellNodeInitialFrames().size(), domain.Nodes().size()) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].node_index, 0U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].director, (std::array{0.0, 0.0, 1.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_a, (std::array{1.0, 0.0, 0.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_b, (std::array{0.0, 1.0, 0.0})) | ASSERT_EQ(domain.Steps().Size(), 1U) | ASSERT_EQ(domain.Steps()[0].PrescribedDisplacements().Size(), 6U) | EXPECT_EQ(domain.Steps()[0].PrescribedDisplacements()[5U].Component(), fesa::DofComponent::kUrz) | ASSERT_EQ(domain.Steps()[0].ConcentratedLoads().Size(), 1U) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[5U], 1.0)" "ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(domain.BeamElements().Empty()) | ASSERT_EQ(domain.Elements().Size(), 4U) | EXPECT_EQ(domain.Elements()[0U].Kind(), fesa::ElementDefinitionKind::kMitc4Shell) | EXPECT_EQ(domain.Elements()[0U].SourceElementType(), ""S4"") | EXPECT_EQ(domain.Elements()[1U].SourceElementType(), ""S4R"") | EXPECT_EQ(&domain.Elements()[0U], &domain.ShellElements()[0U]) | ASSERT_EQ(domain.ShellElements().Size(), 4U) | EXPECT_EQ(domain.ShellElements()[0].source_id.instance_name, ""First"") | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label_text, ""0010"") | EXPECT_EQ(domain.ShellElements()[0].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[0].node_indices, (std::array{0U, 1U, 2U, 3U})) | EXPECT_EQ(domain.ShellElements()[0].section_index, 0U) | EXPECT_EQ(domain.ShellElements()[0].material_index, 0U) | EXPECT_EQ(domain.ShellElements()[1].source_id.instance_name, ""First"") | EXPECT_EQ(domain.ShellElements()[1].source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_EQ(domain.ShellElements()[1].node_indices, (std::array{1U, 4U, 5U, 2U})) | EXPECT_EQ(domain.ShellElements()[1].section_index, 1U) | EXPECT_EQ(domain.ShellElements()[1].material_index, 1U) | EXPECT_EQ(domain.ShellElements()[2].source_id.instance_name, ""Second"") | EXPECT_EQ(domain.ShellElements()[2].node_indices, (std::array{6U, 7U, 8U, 9U})) | EXPECT_EQ(domain.ShellElements()[3].source_id.instance_name, ""Second"") | EXPECT_EQ(fesa::kMitc4InternalFormulation, std::string_view{""FESA-MITC4""}) | ASSERT_EQ(domain.ShellSections().Size(), 2U) | EXPECT_EQ(domain.ShellSections()[0].name, ""ShellS4"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[0].thickness, 0.1) | EXPECT_EQ(domain.ShellSections()[0].material_index, 0U) | EXPECT_EQ(domain.ShellSections()[1].name, ""ShellS4R"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[1].thickness, 0.2) | EXPECT_EQ(domain.ShellSections()[1].material_index, 1U) | ASSERT_EQ(domain.ShellNodeInitialFrames().size(), domain.Nodes().size()) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].node_index, 0U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].director, (std::array{0.0, 0.0, 1.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_a, (std::array{1.0, 0.0, 0.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_b, (std::array{0.0, 1.0, 0.0})) | ASSERT_EQ(domain.Steps().Size(), 1U) | ASSERT_EQ(domain.Steps()[0].PrescribedDisplacements().Size(), 6U) | EXPECT_EQ(domain.Steps()[0].PrescribedDisplacements()[5U].Component(), fesa::DofComponent::kUrz) | ASSERT_EQ(domain.Steps()[0].ConcentratedLoads().Size(), 1U) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[5U], 1.0)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidShellAssignmentsAndProperties InpDomainMapping.RejectsInvalidShellAssignmentsAndProperties; assertion 3개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidShellAssignmentsAndProperties 유지 원문 검사 body 및 assertion 동일. 785c82079cd94789aa85628e9ec1e3529ac1ca34099e3eb76d1e740bc3de5cb8 785c82079cd94789aa85628e9ec1e3529ac1ca34099e3eb76d1e740bc3de5cb8 ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), test_case.category) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr) ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), test_case.category) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidShellConnectivityOptionsAndMixedModels InpDomainMapping.RejectsInvalidShellConnectivityOptionsAndMixedModels; assertion 3개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsInvalidShellConnectivityOptionsAndMixedModels 유지 원문 검사 body 및 assertion 동일. 1156d85feb44cb57821111e3498517c200f57a2a20825d5ee20c89de67879b15 1156d85feb44cb57821111e3498517c200f57a2a20825d5ee20c89de67879b15 ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr) ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.PreservesProcedureLoadAndOutputRequestBoundariesForShells InpDomainMapping.PreservesProcedureLoadAndOutputRequestBoundariesForShells; assertion 8개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.PreservesProcedureLoadAndOutputRequestBoundariesForShells 유지 원문 검사 body 및 assertion 동일. 7dad7b84e339df37b9157bcf3dbb1d1899586060ffd077353911cde6901f8aae 7dad7b84e339df37b9157bcf3dbb1d1899586060ffd077353911cde6901f8aae "ASSERT_TRUE(valid.HasValue()) | ASSERT_EQ(valid.Value().Warnings().size(), 3U) | EXPECT_EQ(valid.Value().Warnings()[0].keyword, ""OUTPUT"") | EXPECT_EQ(valid.Value().Warnings()[1].keyword, ""NODE OUTPUT"") | EXPECT_EQ(valid.Value().Warnings()[2].keyword, ""ELEMENT OUTPUT"") | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr)" "ASSERT_TRUE(valid.HasValue()) | ASSERT_EQ(valid.Value().Warnings().size(), 3U) | EXPECT_EQ(valid.Value().Warnings()[0].keyword, ""OUTPUT"") | EXPECT_EQ(valid.Value().Warnings()[1].keyword, ""NODE OUTPUT"") | EXPECT_EQ(valid.Value().Warnings()[2].keyword, ""ELEMENT OUTPUT"") | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.expected_code), nullptr)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsUnsupportedAndInvalidPortfolio InpDomainMapping.RejectsUnsupportedAndInvalidPortfolio; assertion 14개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsUnsupportedAndInvalidPortfolio 유지 원문 검사 body 및 assertion 동일. 33dae7daee6b5f3283f0dc0c01c58157947c30d91394f6804227b17e827a84ad 33dae7daee6b5f3283f0dc0c01c58157947c30d91394f6804227b17e827a84ad "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), test_case.category) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->severity, fesa::Severity::kError) | EXPECT_FALSE(diagnostic->location.file.empty()) | EXPECT_GT(diagnostic->location.line, 0U) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->severity, fesa::Severity::kError) | EXPECT_EQ(diagnostic->keyword, test_case.expected_keyword) | EXPECT_EQ(diagnostic->entity_identity, ""1"") | EXPECT_EQ(diagnostic->location.line, test_case.expected_line) | EXPECT_EQ(diagnostic->location.file.filename().string(), ""fesa-domain-mapper-same-token-"" + test_case.name + "".inp"")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), test_case.category) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->severity, fesa::Severity::kError) | EXPECT_FALSE(diagnostic->location.file.empty()) | EXPECT_GT(diagnostic->location.line, 0U) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->severity, fesa::Severity::kError) | EXPECT_EQ(diagnostic->keyword, test_case.expected_keyword) | EXPECT_EQ(diagnostic->entity_identity, ""1"") | EXPECT_EQ(diagnostic->location.line, test_case.expected_line) | EXPECT_EQ(diagnostic->location.file.filename().string(), ""fesa-domain-mapper-same-token-"" + test_case.name + "".inp"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsDloadWithoutDistributedLoadObject InpDomainMapping.RejectsDloadWithoutDistributedLoadObject; assertion 4개 tests/unit/io/abaqus/domain_mapper_test.cpp InpDomainMapping.RejectsDloadWithoutDistributedLoadObject 유지 원문 검사 body 및 assertion 동일. e3e84f2ef580a2306947632bf01bb5fbe250460b5c86095164b54fb00f2ebea9 e3e84f2ef580a2306947632bf01bb5fbe250460b5c86095164b54fb00f2ebea9 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->keyword, ""DLOAD"")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_NE(diagnostic, nullptr) | EXPECT_EQ(diagnostic->keyword, ""DLOAD"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp support@1-253 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if, MapText, ReadExactBytes, RepositoryRoot, FindDiagnostic, find_if, ReplaceOnce, MinimalDeck, ShellDeck, NonlinearShellDeck, SupportedInventoryDeck tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d4a3cb30beb5a5732a40fb39fe5981aa1156d1ea97812454c30bf93fbbff733e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp support@578-579 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a17d35bc26ea1a9c371b82c2b0318318ea0f138663e240361e4f36b6b36e28a3 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp support@601-602 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d3465cabe35b62c482d5bfbc700278989749bc95ced8528c179fabf2e46b1e9d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp support@618-619 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2dda137dd997f072d5e1721f3fef902ee6eba433d87b0cc65c0ec3bcc92449aa 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp support@643-644 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9d6708ab0855db443bd63e7f30d47944821695395efba5b5687f458ad88232ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp support@680-681 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 48cc0be2d1c45cc611d13733472689fca4e37d761ae0374cc74fa3e4f1e83bac 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp support@717-719 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5fd581bec64057435da242b600880b7876a63ab7f90c83629f761adb523253b9 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp support@781-782 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f887854314ac3472576dbefddf88818cb395844ceb68f8e943b64a304cae6a92 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp support@824-825 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fad76b68876263d3277eb79c04e1ae0ce1719f94a92fdd3b1765729c0e1790b0 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/domain_mapper_test.cpp support@863-864 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/domain_mapper_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3b8e0519340ad1aa555a27d246833b7379abb093fe25d9f4bc115c04a15f18f1 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/domain_mapping_components_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/io/abaqus/domain_mapping_components_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a515704fe97d521d11a2b7c95e41e0f7ec6557f3ee7e4dd5017a8c9757358f9a a515704fe97d521d11a2b7c95e41e0f7ec6557f3ee7e4dd5017a8c9757358f9a 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001BuildsStableCandidatesBeforeAtomicDomainCommit DomainMappingComponents.CModule001BuildsStableCandidatesBeforeAtomicDomainCommit; assertion 32개 tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001BuildsStableCandidatesBeforeAtomicDomainCommit 유지 원문 검사 body 및 assertion 동일. 5d6ea9aacc764e212a94ecc20d15d795679922368c9c6404c6375192ba222df7 5d6ea9aacc764e212a94ecc20d15d795679922368c9c6404c6375192ba222df7 "ASSERT_TRUE(topology_mapper.Map(context).IsOk()) | EXPECT_EQ(summary.part_count, 1U) | EXPECT_EQ(summary.node_count, 2U) | EXPECT_EQ(summary.element_count, 1U) | EXPECT_EQ(summary.instance_count, 1U) | EXPECT_EQ(summary.node_set_count, 3U) | EXPECT_EQ(summary.element_set_count, 1U) | EXPECT_EQ(summary.material_count, 1U) | EXPECT_EQ(summary.beam_section_count, 1U) | EXPECT_EQ(summary.shell_section_count, 0U) | EXPECT_EQ(summary.model_boundary_count, 1U) | EXPECT_EQ(summary.step_boundary_count, 1U) | EXPECT_EQ(summary.step_load_count, 1U) | EXPECT_TRUE(summary.has_static_step) | ASSERT_TRUE(material_property_mapper.Map(context).IsOk()) | ASSERT_TRUE(topology_mapper.Finalize(context).IsOk()) | ASSERT_TRUE(step_definition_mapper.Map(context).IsOk()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Elements().Size(), 1U) | EXPECT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Properties().Size(), 1U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0].ProcedureKind(), StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(domain.Steps()[0].IsNonlinearStatic()) | EXPECT_EQ(domain.Steps()[0].BoundaryConditions().size(), 7U) | EXPECT_EQ(domain.Steps()[0].Loads().size(), 1U) | ASSERT_EQ(domain.Warnings().size(), 3U) | EXPECT_EQ(domain.Warnings()[0].keyword, ""PREPRINT"") | EXPECT_EQ( domain.Warnings()[0].message, ""The allowlisted Abaqus keyword is ignored without semantic effect."") | EXPECT_EQ(domain.Warnings()[1].keyword, ""OUTPUT"") | EXPECT_EQ(domain.Warnings()[2].keyword, ""NODE OUTPUT"")" "ASSERT_TRUE(topology_mapper.Map(context).IsOk()) | EXPECT_EQ(summary.part_count, 1U) | EXPECT_EQ(summary.node_count, 2U) | EXPECT_EQ(summary.element_count, 1U) | EXPECT_EQ(summary.instance_count, 1U) | EXPECT_EQ(summary.node_set_count, 3U) | EXPECT_EQ(summary.element_set_count, 1U) | EXPECT_EQ(summary.material_count, 1U) | EXPECT_EQ(summary.beam_section_count, 1U) | EXPECT_EQ(summary.shell_section_count, 0U) | EXPECT_EQ(summary.model_boundary_count, 1U) | EXPECT_EQ(summary.step_boundary_count, 1U) | EXPECT_EQ(summary.step_load_count, 1U) | EXPECT_TRUE(summary.has_static_step) | ASSERT_TRUE(material_property_mapper.Map(context).IsOk()) | ASSERT_TRUE(topology_mapper.Finalize(context).IsOk()) | ASSERT_TRUE(step_definition_mapper.Map(context).IsOk()) | ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Elements().Size(), 1U) | EXPECT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Properties().Size(), 1U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0].ProcedureKind(), StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(domain.Steps()[0].IsNonlinearStatic()) | EXPECT_EQ(domain.Steps()[0].BoundaryConditions().size(), 7U) | EXPECT_EQ(domain.Steps()[0].Loads().size(), 1U) | ASSERT_EQ(domain.Warnings().size(), 3U) | EXPECT_EQ(domain.Warnings()[0].keyword, ""PREPRINT"") | EXPECT_EQ( domain.Warnings()[0].message, ""The allowlisted Abaqus keyword is ignored without semantic effect."") | EXPECT_EQ(domain.Warnings()[1].keyword, ""OUTPUT"") | EXPECT_EQ(domain.Warnings()[2].keyword, ""NODE OUTPUT"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001PreservesExactFirstFailureThroughFacade DomainMappingComponents.CModule001PreservesExactFirstFailureThroughFacade; assertion 12개 tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001PreservesExactFirstFailureThroughFacade 유지 원문 검사 body 및 assertion 동일. 77d7cab182b4b08c392cd8698050105755faa3d1fbfef4c56fdd4d02bca34624 77d7cab182b4b08c392cd8698050105755faa3d1fbfef4c56fdd4d02bca34624 "ASSERT_FALSE(component_status.IsOk()) | ASSERT_EQ(component_status.Diagnostics().size(), 1U) | EXPECT_EQ(component_status.Category(), FailureCategory::kInput) | EXPECT_EQ(component_diagnostic.severity, Severity::kError) | EXPECT_EQ(component_diagnostic.code, ""unsupported-keyword"") | EXPECT_EQ(component_diagnostic.location.line, 1U) | EXPECT_EQ(component_diagnostic.keyword, ""NODE"") | EXPECT_TRUE(component_diagnostic.entity_identity.empty()) | EXPECT_EQ(component_diagnostic.message, ""The keyword is outside the approved Abaqus subset."") | ASSERT_FALSE(facade_result.HasValue()) | ASSERT_EQ(facade_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(facade_result.GetStatus().Category(), component_status.Category())" "ASSERT_FALSE(component_status.IsOk()) | ASSERT_EQ(component_status.Diagnostics().size(), 1U) | EXPECT_EQ(component_status.Category(), FailureCategory::kInput) | EXPECT_EQ(component_diagnostic.severity, Severity::kError) | EXPECT_EQ(component_diagnostic.code, ""unsupported-keyword"") | EXPECT_EQ(component_diagnostic.location.line, 1U) | EXPECT_EQ(component_diagnostic.keyword, ""NODE"") | EXPECT_TRUE(component_diagnostic.entity_identity.empty()) | EXPECT_EQ(component_diagnostic.message, ""The keyword is outside the approved Abaqus subset."") | ASSERT_FALSE(facade_result.HasValue()) | ASSERT_EQ(facade_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(facade_result.GetStatus().Category(), component_status.Category())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001RejectsInvalidMaterialAtOwningComponent DomainMappingComponents.CModule001RejectsInvalidMaterialAtOwningComponent; assertion 9개 tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001RejectsInvalidMaterialAtOwningComponent 유지 원문 검사 body 및 assertion 동일. ace412f6dba5699c19fff85961b58458545b93fc1e7be9ec005053d32d7acf22 ace412f6dba5699c19fff85961b58458545b93fc1e7be9ec005053d32d7acf22 "ASSERT_TRUE(TopologyMapper{}.Map(context).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Category(), FailureCategory::kModel) | EXPECT_EQ(diagnostic.code, ""invalid-beam-property"") | EXPECT_EQ(diagnostic.location.line, 26U) | EXPECT_EQ(diagnostic.keyword, ""ELASTIC"") | EXPECT_EQ(diagnostic.entity_identity, ""Steel"") | EXPECT_EQ(diagnostic.message, ""E and the derived G=E/(2*(1+nu)) must be positive."")" "ASSERT_TRUE(TopologyMapper{}.Map(context).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Category(), FailureCategory::kModel) | EXPECT_EQ(diagnostic.code, ""invalid-beam-property"") | EXPECT_EQ(diagnostic.location.line, 26U) | EXPECT_EQ(diagnostic.keyword, ""ELASTIC"") | EXPECT_EQ(diagnostic.entity_identity, ""Steel"") | EXPECT_EQ(diagnostic.message, ""E and the derived G=E/(2*(1+nu)) must be positive."")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001RejectsUnresolvedLoadAtOwningComponent DomainMappingComponents.CModule001RejectsUnresolvedLoadAtOwningComponent; assertion 11개 tests/unit/io/abaqus/domain_mapping_components_test.cpp DomainMappingComponents.CModule001RejectsUnresolvedLoadAtOwningComponent 유지 원문 검사 body 및 assertion 동일. 22839ffd4c1c68b4f200226079345550d9e13e7c212d27881edf14d3bea5ae3a 22839ffd4c1c68b4f200226079345550d9e13e7c212d27881edf14d3bea5ae3a "ASSERT_TRUE(topology_mapper.Map(context).IsOk()) | ASSERT_TRUE(MaterialPropertyMapper{}.Map(context).IsOk()) | ASSERT_TRUE(topology_mapper.Finalize(context).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Category(), FailureCategory::kInput) | EXPECT_EQ(diagnostic.code, ""unresolved-reference"") | EXPECT_EQ(diagnostic.location.line, 35U) | EXPECT_EQ(diagnostic.keyword, ""CLOAD"") | EXPECT_EQ(diagnostic.entity_identity, ""Missing"") | EXPECT_EQ(diagnostic.message, ""The boundary or load target must resolve unambiguously to one "" ""node or one node set."")" "ASSERT_TRUE(topology_mapper.Map(context).IsOk()) | ASSERT_TRUE(MaterialPropertyMapper{}.Map(context).IsOk()) | ASSERT_TRUE(topology_mapper.Finalize(context).IsOk()) | ASSERT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Category(), FailureCategory::kInput) | EXPECT_EQ(diagnostic.code, ""unresolved-reference"") | EXPECT_EQ(diagnostic.location.line, 35U) | EXPECT_EQ(diagnostic.keyword, ""CLOAD"") | EXPECT_EQ(diagnostic.entity_identity, ""Missing"") | EXPECT_EQ(diagnostic.message, ""The boundary or load target must resolve unambiguously to one "" ""node or one node set."")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/domain_mapping_components_test.cpp support@1-116 helper/oracle/fixture/include/static assertion 구간: fesa, TemporaryComponentInput, if, ParseComponentInput, ValidComponentDeck, ReplaceOnce, ExpectSameDiagnostic tests/unit/io/abaqus/domain_mapping_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eafbafda80ba9658302f8c6c61d966863cd6dcaf43f376b99f8eafae256f165b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/domain_mapping_components_test.cpp support@240-242 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/io/abaqus/domain_mapping_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8aeadfd7d5a45c48cf01367ce365d0afada064b00686836fc0fc603596c9df16 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/eigen_domain_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/io/abaqus/eigen_domain_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 092b4127f43e6ba27485ad4043ba8b2d80b310299cdf66858fbc239342faa746 092b4127f43e6ba27485ad4043ba8b2d80b310299cdf66858fbc239342faa746 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.PreservesFrequencyDensityAndSourceStepIdentity EigenDomainMapping.PreservesFrequencyDensityAndSourceStepIdentity; assertion 16개 tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.PreservesFrequencyDensityAndSourceStepIdentity 유지 원문 검사 body 및 assertion 동일. 0e1fbd3de3417171d6a1a291aeafd0b174bc5cd44701267198cf8826ca5bf074 0e1fbd3de3417171d6a1a291aeafd0b174bc5cd44701267198cf8826ca5bf074 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Densities().size(), 1U) | EXPECT_EQ(domain.Densities()[0].material_index, fesa::EntityIndex{0U}) | EXPECT_DOUBLE_EQ(domain.Densities()[0].rho, 2700.0) | ASSERT_NE(domain.Frequency(), nullptr) | EXPECT_EQ(domain.Frequency()->source_step_name_raw, ""Step-2"") | EXPECT_EQ(domain.Frequency()->source_step_name_canonical, ""STEP-2"") | EXPECT_EQ(domain.Frequency()->requested_mode_count, 10) | EXPECT_TRUE(domain.Frequency()->perturbation_explicit) | EXPECT_TRUE(domain.Frequency()->sim_explicit) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_TRUE(domain.Steps()[0U].IsFrequency()) | EXPECT_EQ(domain.Steps()[0U].Frequency(), domain.Frequency()) | EXPECT_EQ(domain.Steps()[0U].Name(), ""Step-2"") | ASSERT_EQ(domain.Steps()[0U].BoundaryConditions().size(), 6U) | EXPECT_TRUE(domain.Steps()[0U].Loads().empty())" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Densities().size(), 1U) | EXPECT_EQ(domain.Densities()[0].material_index, fesa::EntityIndex{0U}) | EXPECT_DOUBLE_EQ(domain.Densities()[0].rho, 2700.0) | ASSERT_NE(domain.Frequency(), nullptr) | EXPECT_EQ(domain.Frequency()->source_step_name_raw, ""Step-2"") | EXPECT_EQ(domain.Frequency()->source_step_name_canonical, ""STEP-2"") | EXPECT_EQ(domain.Frequency()->requested_mode_count, 10) | EXPECT_TRUE(domain.Frequency()->perturbation_explicit) | EXPECT_TRUE(domain.Frequency()->sim_explicit) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_TRUE(domain.Steps()[0U].IsFrequency()) | EXPECT_EQ(domain.Steps()[0U].Frequency(), domain.Frequency()) | EXPECT_EQ(domain.Steps()[0U].Name(), ""Step-2"") | ASSERT_EQ(domain.Steps()[0U].BoundaryConditions().size(), 6U) | EXPECT_TRUE(domain.Steps()[0U].Loads().empty())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsInvalidDensityAndFrequencySlots EigenDomainMapping.RejectsInvalidDensityAndFrequencySlots; assertion 4개 tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsInvalidDensityAndFrequencySlots 유지 원문 검사 body 및 assertion 동일. 92b68d2ac096a03a02bfacd600af2432bfd869eedeeeeb2f06aa6d4d156e4797 92b68d2ac096a03a02bfacd600af2432bfd869eedeeeeb2f06aa6d4d156e4797 "ASSERT_FALSE(density.HasValue()) | EXPECT_NE(FindDiagnostic(density.GetStatus(), ""invalid-density-data""), nullptr) | ASSERT_FALSE(slots.HasValue()) | EXPECT_NE(FindDiagnostic(slots.GetStatus(), ""invalid-frequency-data""), nullptr)" "ASSERT_FALSE(density.HasValue()) | EXPECT_NE(FindDiagnostic(density.GetStatus(), ""invalid-density-data""), nullptr) | ASSERT_FALSE(slots.HasValue()) | EXPECT_NE(FindDiagnostic(slots.GetStatus(), ""invalid-frequency-data""), nullptr)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsMissingActiveDensityAndNonzeroBoundary EigenDomainMapping.RejectsMissingActiveDensityAndNonzeroBoundary; assertion 6개 tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsMissingActiveDensityAndNonzeroBoundary 유지 원문 검사 body 및 assertion 동일. 0b9cfbdd813264e533fb5963dcf276adbd874f0777af515e8fb4aac85015b873 0b9cfbdd813264e533fb5963dcf276adbd874f0777af515e8fb4aac85015b873 "ASSERT_NE(density_location, std::string::npos) | ASSERT_FALSE(missing.HasValue()) | EXPECT_NE(FindDiagnostic(missing.GetStatus(), ""missing-material-density""), nullptr) | ASSERT_NE(location, std::string::npos) | ASSERT_FALSE(boundary.HasValue()) | EXPECT_NE(FindDiagnostic(boundary.GetStatus(), ""unsupported-eigen-boundary""), nullptr)" "ASSERT_NE(density_location, std::string::npos) | ASSERT_FALSE(missing.HasValue()) | EXPECT_NE(FindDiagnostic(missing.GetStatus(), ""missing-material-density""), nullptr) | ASSERT_NE(location, std::string::npos) | ASSERT_FALSE(boundary.HasValue()) | EXPECT_NE(FindDiagnostic(boundary.GetStatus(), ""unsupported-eigen-boundary""), nullptr)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsMixedProceduresInvalidOutputAndSurface EigenDomainMapping.RejectsMixedProceduresInvalidOutputAndSurface; assertion 5개 tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsMixedProceduresInvalidOutputAndSurface 유지 원문 검사 body 및 assertion 동일. 435331124510d6cb20b7a86e468786ff0faa434d408e82d0534542553d875f92 435331124510d6cb20b7a86e468786ff0faa434d408e82d0534542553d875f92 "ASSERT_FALSE(mixed_result.HasValue()) | EXPECT_NE(FindDiagnostic(mixed_result.GetStatus(), ""unsupported-analysis-procedure""), nullptr) | ASSERT_FALSE(wrong_output.HasValue()) | EXPECT_NE(FindDiagnostic(wrong_output.GetStatus(), ""unsupported-keyword""), nullptr) | ASSERT_FALSE(surface_result.HasValue())" "ASSERT_FALSE(mixed_result.HasValue()) | EXPECT_NE(FindDiagnostic(mixed_result.GetStatus(), ""unsupported-analysis-procedure""), nullptr) | ASSERT_FALSE(wrong_output.HasValue()) | EXPECT_NE(FindDiagnostic(wrong_output.GetStatus(), ""unsupported-keyword""), nullptr) | ASSERT_FALSE(surface_result.HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsInvalidPreprintAndAcceptsStrictNoOp EigenDomainMapping.RejectsInvalidPreprintAndAcceptsStrictNoOp; assertion 7개 tests/unit/io/abaqus/eigen_domain_test.cpp EigenDomainMapping.RejectsInvalidPreprintAndAcceptsStrictNoOp 유지 원문 검사 body 및 assertion 동일. 8c7a14159391fe657f7760127eb8ab1901d5a25a41c138256a5d83cce9c427ee 8c7a14159391fe657f7760127eb8ab1901d5a25a41c138256a5d83cce9c427ee "ASSERT_TRUE(accepted.HasValue()) | ASSERT_NE(warning, accepted.Value().Warnings().end()) | EXPECT_EQ(warning->message, ""mandatory-eigen-output-unchanged"") | ASSERT_FALSE(rejected.HasValue()) | EXPECT_NE(FindDiagnostic(rejected.GetStatus(), ""unsupported-keyword""), nullptr) | ASSERT_FALSE(missing_parameters.HasValue()) | EXPECT_NE( FindDiagnostic(missing_parameters.GetStatus(), ""unsupported-keyword""), nullptr)" "ASSERT_TRUE(accepted.HasValue()) | ASSERT_NE(warning, accepted.Value().Warnings().end()) | EXPECT_EQ(warning->message, ""mandatory-eigen-output-unchanged"") | ASSERT_FALSE(rejected.HasValue()) | EXPECT_NE(FindDiagnostic(rejected.GetStatus(), ""unsupported-keyword""), nullptr) | ASSERT_FALSE(missing_parameters.HasValue()) | EXPECT_NE( FindDiagnostic(missing_parameters.GetStatus(), ""unsupported-keyword""), nullptr)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/eigen_domain_test.cpp support@1-98 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if, MapText, EigenDeck, FindDiagnostic, for tests/unit/io/abaqus/eigen_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6c0ec5ff9d6242012df3aba6a1f123cd5503d7d8e747d530582db2a7f767719c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/eigen_domain_test.cpp support@206-207 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/eigen_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 20개 tests/unit/io/abaqus/hex8_semantics_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0804a9ef5cb15fdee5c06d4f3ba05b626ebcae6952360bb769271d457bc9530c 0804a9ef5cb15fdee5c06d4f3ba05b626ebcae6952360bb769271d457bc9530c 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.MapsEightSourceNodesAndExactlyThreePhysicalDofs Hex8Semantics.MapsEightSourceNodesAndExactlyThreePhysicalDofs; assertion 9개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.MapsEightSourceNodesAndExactlyThreePhysicalDofs 유지 원문 검사 body 및 assertion 동일. c75e22a597ed7445ed43c51b03fb254b6373984026f78f773a97d32687cb7272 c75e22a597ed7445ed43c51b03fb254b6373984026f78f773a97d32687cb7272 "ASSERT_TRUE(domain.HasValue()) | ASSERT_EQ(domain.Value().Elements().Size(), 1U) | EXPECT_EQ(domain.Value().Elements()[0].SourceElementType(), ""C3D8"") | EXPECT_EQ(domain.Value().Elements()[0].SourceId().source_label, 99) | EXPECT_EQ(domain.Value().Elements()[0].NodeIndices().size(), 8U) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().ConstrainedDofCount(), 3U)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_EQ(domain.Value().Elements().Size(), 1U) | EXPECT_EQ(domain.Value().Elements()[0].SourceElementType(), ""C3D8"") | EXPECT_EQ(domain.Value().Elements()[0].SourceId().source_label, 99) | EXPECT_EQ(domain.Value().Elements()[0].NodeIndices().size(), 8U) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().ConstrainedDofCount(), 3U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.InactiveZeroRotationsWarnAndDoNotCreateConstraints Hex8Semantics.InactiveZeroRotationsWarnAndDoNotCreateConstraints; assertion 6개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.InactiveZeroRotationsWarnAndDoNotCreateConstraints 유지 원문 검사 body 및 assertion 동일. 4e9c9d68352626fe0b450e289080ee34f84a54c33b71e1520c4b57a389fe61cb 4e9c9d68352626fe0b450e289080ee34f84a54c33b71e1520c4b57a389fe61cb "ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().Steps()[0].BoundaryConditions().size(), 3U) | ASSERT_FALSE(domain.Value().Warnings().empty()) | EXPECT_EQ(domain.Value().Warnings().back().keyword, ""BOUNDARY"") | EXPECT_EQ(domain.Value().Warnings().back().entity_identity, ""10"") | EXPECT_GT(domain.Value().Warnings().back().location.line, 0U)" "ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().Steps()[0].BoundaryConditions().size(), 3U) | ASSERT_FALSE(domain.Value().Warnings().empty()) | EXPECT_EQ(domain.Value().Warnings().back().keyword, ""BOUNDARY"") | EXPECT_EQ(domain.Value().Warnings().back().entity_identity, ""10"") | EXPECT_GT(domain.Value().Warnings().back().location.line, 0U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsNonzeroRotationsAndAllRotationalLoads Hex8Semantics.RejectsNonzeroRotationsAndAllRotationalLoads; assertion 2개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsNonzeroRotationsAndAllRotationalLoads 유지 원문 검사 body 및 assertion 동일. a6d35c2ca679aa7f1b383ead3d9f703d1fa2c74effec04ea46aa3d85e197d622 a6d35c2ca679aa7f1b383ead3d9f703d1fa2c74effec04ea46aa3d85e197d622 "EXPECT_FALSE(Map(Deck(""*Static\n1,1,1,1\n"", ""10,4,4,1\n"")).HasValue()) | EXPECT_FALSE( Map(Deck(""*Static\n1,1,1,1\n"", ""10,1,3\n*Cload\n20,4,0\n"")).HasValue())" "EXPECT_FALSE(Map(Deck(""*Static\n1,1,1,1\n"", ""10,4,4,1\n"")).HasValue()) | EXPECT_FALSE( Map(Deck(""*Static\n1,1,1,1\n"", ""10,1,3\n*Cload\n20,4,0\n"")).HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RotationNoOpPreservesPhysicalMapAndLoads Hex8Semantics.RotationNoOpPreservesPhysicalMapAndLoads; assertion 17개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RotationNoOpPreservesPhysicalMapAndLoads 유지 원문 검사 body 및 assertion 동일. 3df0931a844f2efcc21ddebf1505036c8f9a55af7163f978f456efad1136cbdc 3df0931a844f2efcc21ddebf1505036c8f9a55af7163f978f456efad1136cbdc ASSERT_TRUE(physical.HasValue()) | ASSERT_TRUE(extra.HasValue()) | ASSERT_TRUE(pd.HasValue()) | ASSERT_TRUE(ed.HasValue()) | EXPECT_EQ(pd.Value().FreeDofs(), ed.Value().FreeDofs()) | EXPECT_EQ(pd.Value().ConstrainedDofs(), ed.Value().ConstrainedDofs()) | EXPECT_EQ(pd.Value().GetSparsePattern().column_indices, ed.Value().GetSparsePattern().column_indices) | EXPECT_EQ(ed.Value().Profile(), fesa::DofProfile::kSolidStructural) | EXPECT_EQ(ed.Value().ComponentsPerNode(), 3U) | EXPECT_THROW(ed.Value().FullDof(0, fesa::DofComponent::kUrx), std::out_of_range) | ASSERT_TRUE(scatter.HasValue()) | EXPECT_EQ(scatter.Value().size(), 24U) | EXPECT_EQ(scatter.Value().front(), 0U) | EXPECT_EQ(scatter.Value().back(), 23U) | ASSERT_TRUE(pf.HasValue()) | ASSERT_TRUE(ef.HasValue()) | EXPECT_EQ(pf.Value()[i], ef.Value()[i]) ASSERT_TRUE(physical.HasValue()) | ASSERT_TRUE(extra.HasValue()) | ASSERT_TRUE(pd.HasValue()) | ASSERT_TRUE(ed.HasValue()) | EXPECT_EQ(pd.Value().FreeDofs(), ed.Value().FreeDofs()) | EXPECT_EQ(pd.Value().ConstrainedDofs(), ed.Value().ConstrainedDofs()) | EXPECT_EQ(pd.Value().GetSparsePattern().column_indices, ed.Value().GetSparsePattern().column_indices) | EXPECT_EQ(ed.Value().Profile(), fesa::DofProfile::kSolidStructural) | EXPECT_EQ(ed.Value().ComponentsPerNode(), 3U) | EXPECT_THROW(ed.Value().FullDof(0, fesa::DofComponent::kUrx), std::out_of_range) | ASSERT_TRUE(scatter.HasValue()) | EXPECT_EQ(scatter.Value().size(), 24U) | EXPECT_EQ(scatter.Value().front(), 0U) | EXPECT_EQ(scatter.Value().back(), 23U) | ASSERT_TRUE(pf.HasValue()) | ASSERT_TRUE(ef.HasValue()) | EXPECT_EQ(pf.Value()[i], ef.Value()[i]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsTinyRotationBadTargetsOptionsAndDofRanges Hex8Semantics.RejectsTinyRotationBadTargetsOptionsAndDofRanges; assertion 7개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsTinyRotationBadTargetsOptionsAndDofRanges 유지 원문 검사 body 및 assertion 동일. fbaffb1fa7018c85cecd369894293b24dc2a62bf82f918cbd99dbb3c17a70589 fbaffb1fa7018c85cecd369894293b24dc2a62bf82f918cbd99dbb3c17a70589 "EXPECT_FALSE(Map(Deck(""*Static\n1,1,1,1\n"", row)).HasValue()) | EXPECT_FALSE( Map(Replace(Deck(), ""*Boundary"", ""*Boundary,"" + option)).HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().Steps()[0].BoundaryConditions().empty()) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(result.Value().Warnings()[0].code, ""inactive-solid-rotation-boundary"") | EXPECT_EQ(result.Value().Warnings()[0].severity, fesa::Severity::kWarning)" "EXPECT_FALSE(Map(Deck(""*Static\n1,1,1,1\n"", row)).HasValue()) | EXPECT_FALSE( Map(Replace(Deck(), ""*Boundary"", ""*Boundary,"" + option)).HasValue()) | ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(result.Value().Steps()[0].BoundaryConditions().empty()) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(result.Value().Warnings()[0].code, ""inactive-solid-rotation-boundary"") | EXPECT_EQ(result.Value().Warnings()[0].severity, fesa::Severity::kWarning)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AllowsEmptyFreeAndNoBoundaryModels Hex8Semantics.AllowsEmptyFreeAndNoBoundaryModels; assertion 4개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AllowsEmptyFreeAndNoBoundaryModels 유지 원문 검사 body 및 assertion 동일. b57d0718c1ed58f9fc97136333cada362aeee8c776148cd4cd14bf251fdbb27b b57d0718c1ed58f9fc97136333cada362aeee8c776148cd4cd14bf251fdbb27b ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().FreeDofCount(), boundaries.empty() ? 24U : 0U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().FreeDofCount(), boundaries.empty() ? 24U : 0U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RetainsStaticDensityTargetsAndDirectSchedule Hex8Semantics.RetainsStaticDensityTargetsAndDirectSchedule; assertion 13개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RetainsStaticDensityTargetsAndDirectSchedule 유지 원문 검사 body 및 assertion 동일. ecc27dfd2d6e7370b729c72942f53b8a8cd0bf76a40ce684aeaeb88e64fa2c40 ecc27dfd2d6e7370b729c72942f53b8a8cd0bf76a40ce684aeaeb88e64fa2c40 "ASSERT_TRUE(domain.HasValue()) | EXPECT_TRUE(domain.Value().IsSolid()) | ASSERT_EQ(domain.Value().SolidSections().Size(), 1U) | EXPECT_EQ(domain.Value().SolidSections()[0].MaterialIndex(), 0U) | EXPECT_EQ(domain.Value().Densities()[0].rho, 2.0) | EXPECT_EQ(step.Name(), ""Solid"") | EXPECT_TRUE(step.IsDirectStatic()) | EXPECT_EQ(step.IncrementCount(), 10U) | EXPECT_EQ(step.MaximumIncrements(), 100U) | EXPECT_EQ(dofs.Value().PrescribedValues()[0], .25) | EXPECT_FALSE(Map(Deck(""*Static,direct\n"" + values)).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""1000,.3"", ""1000,.5"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""1000,.3"", ""1000,-1"")).HasValue())" "ASSERT_TRUE(domain.HasValue()) | EXPECT_TRUE(domain.Value().IsSolid()) | ASSERT_EQ(domain.Value().SolidSections().Size(), 1U) | EXPECT_EQ(domain.Value().SolidSections()[0].MaterialIndex(), 0U) | EXPECT_EQ(domain.Value().Densities()[0].rho, 2.0) | EXPECT_EQ(step.Name(), ""Solid"") | EXPECT_TRUE(step.IsDirectStatic()) | EXPECT_EQ(step.IncrementCount(), 10U) | EXPECT_EQ(step.MaximumIncrements(), 100U) | EXPECT_EQ(dofs.Value().PrescribedValues()[0], .25) | EXPECT_FALSE(Map(Deck(""*Static,direct\n"" + values)).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""1000,.3"", ""1000,.5"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""1000,.3"", ""1000,-1"")).HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.SamplesIndependentAmplitudeLoadsAtActualEndpoints Hex8Semantics.SamplesIndependentAmplitudeLoadsAtActualEndpoints; assertion 19개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.SamplesIndependentAmplitudeLoadsAtActualEndpoints 유지 원문 검사 body 및 assertion 동일. 450037b22e5b3e170d8813cdd95b4c635723a769f07f6513e8c7d59e8fef843d 450037b22e5b3e170d8813cdd95b4c635723a769f07f6513e8c7d59e8fef843d "ASSERT_TRUE(domain.HasValue()) | ASSERT_EQ(domain.Value().Amplitudes().size(), 2U) | EXPECT_EQ(amplitude.name_raw, ""A"") | EXPECT_EQ(amplitude.Evaluate(0), 0) | EXPECT_EQ(amplitude.Evaluate(.05), .5) | EXPECT_EQ(amplitude.Evaluate(.1), 1) | EXPECT_EQ(amplitude.Evaluate(20), 1) | EXPECT_FALSE(domain.Value().Dynamic()->nlgeom) | EXPECT_EQ(domain.Value().Dynamic()->increment_count, 100U) | EXPECT_EQ(loads[0].AmplitudeIndex(), std::optional{0U}) | EXPECT_EQ(loads[1].AmplitudeIndex(), std::optional{1U}) | EXPECT_EQ(loads[0].AmplitudeName(), ""a"") | EXPECT_GT(loads[0].AmplitudeLocation().line, 0U) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(load.HasValue()) | EXPECT_DOUBLE_EQ(load.Value()[3], amplitude.Evaluate(time) * 10 + domain.Value().Amplitudes()[1].Evaluate(time) * 3 + 5) | EXPECT_FALSE(Map(Replace(text, ""10,1,6"", ""10,1,3,1e-100"")).HasValue()) | EXPECT_FALSE( Map(Replace(text, ""amplitude=a"", ""amplitude=missing"")).HasValue()) | EXPECT_TRUE( Map(Replace(text, ""name=Solid,inc=100"", ""name=Solid,nlgeom=YES,inc=100"")) .HasValue())" "ASSERT_TRUE(domain.HasValue()) | ASSERT_EQ(domain.Value().Amplitudes().size(), 2U) | EXPECT_EQ(amplitude.name_raw, ""A"") | EXPECT_EQ(amplitude.Evaluate(0), 0) | EXPECT_EQ(amplitude.Evaluate(.05), .5) | EXPECT_EQ(amplitude.Evaluate(.1), 1) | EXPECT_EQ(amplitude.Evaluate(20), 1) | EXPECT_FALSE(domain.Value().Dynamic()->nlgeom) | EXPECT_EQ(domain.Value().Dynamic()->increment_count, 100U) | EXPECT_EQ(loads[0].AmplitudeIndex(), std::optional{0U}) | EXPECT_EQ(loads[1].AmplitudeIndex(), std::optional{1U}) | EXPECT_EQ(loads[0].AmplitudeName(), ""a"") | EXPECT_GT(loads[0].AmplitudeLocation().line, 0U) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(load.HasValue()) | EXPECT_DOUBLE_EQ(load.Value()[3], amplitude.Evaluate(time) * 10 + domain.Value().Amplitudes()[1].Evaluate(time) * 3 + 5) | EXPECT_FALSE(Map(Replace(text, ""10,1,6"", ""10,1,3,1e-100"")).HasValue()) | EXPECT_FALSE( Map(Replace(text, ""amplitude=a"", ""amplitude=missing"")).HasValue()) | EXPECT_TRUE( Map(Replace(text, ""name=Solid,inc=100"", ""name=Solid,nlgeom=YES,inc=100"")) .HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsAmplitudeOptionsDataAndCrossFamilyUse Hex8Semantics.RejectsAmplitudeOptionsDataAndCrossFamilyUse; assertion 3개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsAmplitudeOptionsDataAndCrossFamilyUse 유지 원문 검사 body 및 assertion 동일. dce2dd9b2fcfbf0c0ec5bf2a49db87a35c8c50379978a06ba8b90b04f3e5dc7f dce2dd9b2fcfbf0c0ec5bf2a49db87a35c8c50379978a06ba8b90b04f3e5dc7f "EXPECT_FALSE( Map(Deck(""*Dynamic,direct\n.1,1\n"", ""10,1,3\n"", prefix + amplitude)) .HasValue()) | EXPECT_FALSE( Map(Deck(""*Static\n1,1,1,1\n"", ""10,1,3\n"", ""*Amplitude,name=A\n0,0\n"")) .HasValue()) | EXPECT_FALSE(Map(Deck(""*Dynamic,direct\n.1,1\n"", ""10,1,3\n"")).HasValue())" "EXPECT_FALSE( Map(Deck(""*Dynamic,direct\n.1,1\n"", ""10,1,3\n"", prefix + amplitude)) .HasValue()) | EXPECT_FALSE( Map(Deck(""*Static\n1,1,1,1\n"", ""10,1,3\n"", ""*Amplitude,name=A\n0,0\n"")) .HasValue()) | EXPECT_FALSE(Map(Deck(""*Dynamic,direct\n.1,1\n"", ""10,1,3\n"")).HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsAliasesConnectivityThicknessAndMixedModels Hex8Semantics.RejectsAliasesConnectivityThicknessAndMixedModels; assertion 5개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsAliasesConnectivityThicknessAndMixedModels 유지 원문 검사 body 및 assertion 동일. 74400cf0bcfb69af45f006c08c3c5f44a7f71d5f51c25e90b147b08e2a304858 74400cf0bcfb69af45f006c08c3c5f44a7f71d5f51c25e90b147b08e2a304858 "EXPECT_FALSE(Map(Replace(Deck(), ""type=C3D8"", ""type="" + type)).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,70"")) .HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,999"")) .HasValue()) | EXPECT_FALSE( Map(Replace(Deck(), ""material=M\n,"", ""material=M\n2"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""*Solid Section"", ""*Element,type=S4\n100,10,20,30,40\n*Solid Section"")) .HasValue())" "EXPECT_FALSE(Map(Replace(Deck(), ""type=C3D8"", ""type="" + type)).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,70"")) .HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,999"")) .HasValue()) | EXPECT_FALSE( Map(Replace(Deck(), ""material=M\n,"", ""material=M\n2"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""*Solid Section"", ""*Element,type=S4\n100,10,20,30,40\n*Solid Section"")) .HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.PreservesShellSixComponentProfile Hex8Semantics.PreservesShellSixComponentProfile; assertion 6개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.PreservesShellSixComponentProfile 유지 원문 검사 body 및 assertion 동일. 6253e1af06f92b7af50ff60f0745d70fe50db2b76b537570fe466dd15675d26b 6253e1af06f92b7af50ff60f0745d70fe50db2b76b537570fe466dd15675d26b ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().Profile(), fesa::DofProfile::kStructural) | EXPECT_EQ(dofs.Value().ComponentsPerNode(), 6U) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().FullDof(1, fesa::DofComponent::kUrx), 9U) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().Profile(), fesa::DofProfile::kStructural) | EXPECT_EQ(dofs.Value().ComponentsPerNode(), 6U) | EXPECT_EQ(dofs.Value().FullDofCount(), 24U) | EXPECT_EQ(dofs.Value().FullDof(1, fesa::DofComponent::kUrx), 9U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.MapsAllFiveUnmodifiedRequiredSourceDecks Hex8Semantics.MapsAllFiveUnmodifiedRequiredSourceDecks; assertion 8개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.MapsAllFiveUnmodifiedRequiredSourceDecks 유지 원문 검사 body 및 assertion 동일. 27a85d7e4d9d00d5a84c4d3e28b2fd837ee20a9b812730de2b0b120f79639c4f 27a85d7e4d9d00d5a84c4d3e28b2fd837ee20a9b812730de2b0b120f79639c4f "ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().SolidElements().Size(), 300U) | EXPECT_EQ(domain.Value().Nodes().size(), 442U) | EXPECT_EQ(std::count_if(domain.Value().Warnings().begin(), domain.Value().Warnings().end(), [](const auto& warning) { return warning.code == ""inactive-solid-rotation-boundary""; }), 3) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 1326U) | EXPECT_EQ(dofs.Value().ConstrainedDofCount(), 51U)" "ASSERT_TRUE(syntax.HasValue()) | ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().SolidElements().Size(), 300U) | EXPECT_EQ(domain.Value().Nodes().size(), 442U) | EXPECT_EQ(std::count_if(domain.Value().Warnings().begin(), domain.Value().Warnings().end(), [](const auto& warning) { return warning.code == ""inactive-solid-rotation-boundary""; }), 3) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().FullDofCount(), 1326U) | EXPECT_EQ(dofs.Value().ConstrainedDofCount(), 51U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AssemblesFullSymmetricSolidMatricesInStableSourceOrder Hex8Semantics.AssemblesFullSymmetricSolidMatricesInStableSourceOrder; assertion 11개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AssemblesFullSymmetricSolidMatricesInStableSourceOrder 유지 원문 검사 body 및 assertion 동일. cff1fc540c97c7325eb371cd49595d7c44b5235f01cb4f0340c8fe2515e8c437 cff1fc540c97c7325eb371cd49595d7c44b5235f01cb4f0340c8fe2515e8c437 ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(parallel.HasValue()) | EXPECT_EQ(serial.Value().Rows(), 24U) | EXPECT_EQ(serial.Value().Columns(), 24U) | EXPECT_EQ(serial.Value().Values().size(), 576U) | EXPECT_EQ(value, 1.0) | EXPECT_EQ(serial.Value().RowOffsets(), parallel.Value().RowOffsets()) | EXPECT_EQ(serial.Value().ColumnIndices(), parallel.Value().ColumnIndices()) | EXPECT_EQ(serial.Value().Values(), parallel.Value().Values()) ASSERT_TRUE(domain.HasValue()) | ASSERT_TRUE(dofs.Build(model.Value(), elements).IsOk()) | ASSERT_TRUE(serial.HasValue()) | ASSERT_TRUE(parallel.HasValue()) | EXPECT_EQ(serial.Value().Rows(), 24U) | EXPECT_EQ(serial.Value().Columns(), 24U) | EXPECT_EQ(serial.Value().Values().size(), 576U) | EXPECT_EQ(value, 1.0) | EXPECT_EQ(serial.Value().RowOffsets(), parallel.Value().RowOffsets()) | EXPECT_EQ(serial.Value().ColumnIndices(), parallel.Value().ColumnIndices()) | EXPECT_EQ(serial.Value().Values(), parallel.Value().Values()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.ValidatesOutputNoOpsAndRejectsUnapprovedDynamicChildren Hex8Semantics.ValidatesOutputNoOpsAndRejectsUnapprovedDynamicChildren; assertion 5개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.ValidatesOutputNoOpsAndRejectsUnapprovedDynamicChildren 유지 원문 검사 body 및 assertion 동일. 5d0196abf7c53f0e92306554db8a1f9270f76db9aa614254d9d3a5f3e2d1a43e 5d0196abf7c53f0e92306554db8a1f9270f76db9aa614254d9d3a5f3e2d1a43e "EXPECT_TRUE( Map(Replace(Deck(), ""*End Step"", output + ""*End Step"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""*End Step"", ""*Output,field,variable=OTHER\n*End Step"")) .HasValue()) | EXPECT_FALSE( Map(Replace( Deck(), ""*End Step"", ""*Output,field\n*Element Output,position=NODES\nS\n*End Step"")) .HasValue()) | EXPECT_FALSE( Map(Replace( dynamic, ""*End Step"", ""*Output,field,variable=PRESELECT\n*Node Output\nU\n*End Step"")) .HasValue()) | EXPECT_FALSE(Map(Replace(dynamic, ""*End Step"", ""*Restart,write,frequency=1\n*End Step"")) .HasValue())" "EXPECT_TRUE( Map(Replace(Deck(), ""*End Step"", output + ""*End Step"")).HasValue()) | EXPECT_FALSE(Map(Replace(Deck(), ""*End Step"", ""*Output,field,variable=OTHER\n*End Step"")) .HasValue()) | EXPECT_FALSE( Map(Replace( Deck(), ""*End Step"", ""*Output,field\n*Element Output,position=NODES\nS\n*End Step"")) .HasValue()) | EXPECT_FALSE( Map(Replace( dynamic, ""*End Step"", ""*Output,field,variable=PRESELECT\n*Node Output\nU\n*End Step"")) .HasValue()) | EXPECT_FALSE(Map(Replace(dynamic, ""*End Step"", ""*Restart,write,frequency=1\n*End Step"")) .HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsInvalidProgrammaticSolidCandidates Hex8Semantics.RejectsInvalidProgrammaticSolidCandidates; assertion 6개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsInvalidProgrammaticSolidCandidates 유지 원문 검사 body 및 assertion 동일. 1065eea90059ac9e3e2b606d997c439efabbf2837254a53e0622a7b4ec81655f 1065eea90059ac9e3e2b606d997c439efabbf2837254a53e0622a7b4ec81655f EXPECT_TRUE(fesa::Domain::Create(SolidDefinition()).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(repeated)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(material)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(section)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(rotational)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(unused)).HasValue()) EXPECT_TRUE(fesa::Domain::Create(SolidDefinition()).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(repeated)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(material)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(section)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(rotational)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(unused)).HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsSecondProcedureBeforeReadingItsOptionsOrData Hex8Semantics.RejectsSecondProcedureBeforeReadingItsOptionsOrData; assertion 8개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsSecondProcedureBeforeReadingItsOptionsOrData 유지 원문 검사 body 및 assertion 동일. 42d53fd47e4e29b2122ec0929fda515bd8a35ae386135240b8e3c19a168ac537 42d53fd47e4e29b2122ec0929fda515bd8a35ae386135240b8e3c19a168ac537 "ASSERT_TRUE(Map(Deck(first, """", ""*Density\n2\n"")).HasValue()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""unsupported-analysis-procedure"") | ASSERT_FALSE(malformed.HasValue()) | ASSERT_FALSE(malformed.GetStatus().Diagnostics().empty()) | EXPECT_EQ(malformed.GetStatus().Diagnostics()[0].code, ""unsupported-analysis-procedure"") | EXPECT_EQ(malformed.GetStatus().Diagnostics()[0].keyword, ""STATIC"")" "ASSERT_TRUE(Map(Deck(first, """", ""*Density\n2\n"")).HasValue()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""unsupported-analysis-procedure"") | ASSERT_FALSE(malformed.HasValue()) | ASSERT_FALSE(malformed.GetStatus().Diagnostics().empty()) | EXPECT_EQ(malformed.GetStatus().Diagnostics()[0].code, ""unsupported-analysis-procedure"") | EXPECT_EQ(malformed.GetStatus().Diagnostics()[0].keyword, ""STATIC"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AllowsOnlyApprovedStaticRestartNoOp Hex8Semantics.AllowsOnlyApprovedStaticRestartNoOp; assertion 6개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.AllowsOnlyApprovedStaticRestartNoOp 유지 원문 검사 body 및 assertion 동일. 3a188909917d0d9026bab32708aace83386bda1c68423f466e1c6f849dfeea74 3a188909917d0d9026bab32708aace83386bda1c68423f466e1c6f849dfeea74 "ASSERT_TRUE(approved.HasValue()) | ASSERT_EQ(approved.Value().Warnings().size(), 1U) | EXPECT_EQ(approved.Value().Warnings()[0].keyword, ""RESTART"") | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""RESTART"")" "ASSERT_TRUE(approved.HasValue()) | ASSERT_EQ(approved.Value().Warnings().size(), 1U) | EXPECT_EQ(approved.Value().Warnings()[0].keyword, ""RESTART"") | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""RESTART"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.PreservesShuffledSourceLabelsAndRejectsDuplicateIdentities Hex8Semantics.PreservesShuffledSourceLabelsAndRejectsDuplicateIdentities; assertion 15개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.PreservesShuffledSourceLabelsAndRejectsDuplicateIdentities 유지 원문 검사 body 및 assertion 동일. 1e26934f523f95c12da4ba31131a30f25c52519a32368c6a7369490b4907882a 1e26934f523f95c12da4ba31131a30f25c52519a32368c6a7369490b4907882a "ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().Nodes()[0].source_id.source_label, 80) | EXPECT_EQ(domain.Value().Nodes()[4].source_id.source_label, 10) | EXPECT_EQ(domain.Value().Elements()[0].NodeIndices(), (std::vector{4, 1, 6, 3, 7, 2, 5, 0})) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().ConstrainedDofs(), (std::vector{12, 13, 14})) | EXPECT_FALSE(Map(Replace(deck, ""20,1,0,0"", ""80,1,0,0"")).HasValue()) | EXPECT_FALSE( Map(Replace(deck, ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,80\n99,10,20,30,40,50,60,70,80"")) .HasValue()) | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(direct.Value().Nodes()[0].source_id.source_label, 80) | EXPECT_EQ(direct.Value().Nodes()[7].source_id.source_label, 10) | EXPECT_EQ(direct.Value().SolidElements()[0].node_indices, (std::array{7, 1, 2, 3, 4, 5, 6, 0})) | EXPECT_FALSE(fesa::Domain::Create(std::move(nodes)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(elements)).HasValue())" "ASSERT_TRUE(domain.HasValue()) | EXPECT_EQ(domain.Value().Nodes()[0].source_id.source_label, 80) | EXPECT_EQ(domain.Value().Nodes()[4].source_id.source_label, 10) | EXPECT_EQ(domain.Value().Elements()[0].NodeIndices(), (std::vector{4, 1, 6, 3, 7, 2, 5, 0})) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().ConstrainedDofs(), (std::vector{12, 13, 14})) | EXPECT_FALSE(Map(Replace(deck, ""20,1,0,0"", ""80,1,0,0"")).HasValue()) | EXPECT_FALSE( Map(Replace(deck, ""99,10,20,30,40,50,60,70,80"", ""99,10,20,30,40,50,60,70,80\n99,10,20,30,40,50,60,70,80"")) .HasValue()) | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(direct.Value().Nodes()[0].source_id.source_label, 80) | EXPECT_EQ(direct.Value().Nodes()[7].source_id.source_label, 10) | EXPECT_EQ(direct.Value().SolidElements()[0].node_indices, (std::array{7, 1, 2, 3, 4, 5, 6, 0})) | EXPECT_FALSE(fesa::Domain::Create(std::move(nodes)).HasValue()) | EXPECT_FALSE(fesa::Domain::Create(std::move(elements)).HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsUnknownSolidAssignmentTargets Hex8Semantics.RejectsUnknownSolidAssignmentTargets; assertion 3개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsUnknownSolidAssignmentTargets 유지 원문 검사 body 및 assertion 동일. 777502085d8347fa372148d730813468e8385f01894e6f1e32c0b7fb4831b84c 777502085d8347fa372148d730813468e8385f01894e6f1e32c0b7fb4831b84c "ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""unresolved-solid-section"")" "ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""unresolved-solid-section"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsInvalidSolidDynamicSchedulesAndIncrementLimits Hex8Semantics.RejectsInvalidSolidDynamicSchedulesAndIncrementLimits; assertion 3개 tests/unit/io/abaqus/hex8_semantics_test.cpp Hex8Semantics.RejectsInvalidSolidDynamicSchedulesAndIncrementLimits 유지 원문 검사 body 및 assertion 동일. fffbdbf00d02cff95f113d0f9a573ce71a4eb6e0c4b2f829f0fe45dd1d915e4a fffbdbf00d02cff95f113d0f9a573ce71a4eb6e0c4b2f829f0fe45dd1d915e4a "ASSERT_TRUE(Map(valid).HasValue()) | EXPECT_FALSE(Map(Replace(valid, "".1,1\n"", schedule + ""\n"")).HasValue()) | EXPECT_FALSE(Map(Replace(valid, ""inc=100"", ""inc="" + limit)).HasValue())" "ASSERT_TRUE(Map(valid).HasValue()) | EXPECT_FALSE(Map(Replace(valid, "".1,1\n"", schedule + ""\n"")).HasValue()) | EXPECT_FALSE(Map(Replace(valid, ""inc=100"", ""inc="" + limit)).HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp support@1-45 helper/oracle/fixture/include/static assertion 구간: Deck, Map tests/unit/io/abaqus/hex8_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e25babf55d99011a53bf3707b7fa77dfd36ca9a650cd07f5ce287e7dfb184913 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp support@80-88 helper/oracle/fixture/include/static assertion 구간: Replace tests/unit/io/abaqus/hex8_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7712e67d7827babcfabd756496ca005cd2568399e78f7778748ae28ba5b8a649 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp support@309-345 helper/oracle/fixture/include/static assertion 구간: ConstantMatrixElement tests/unit/io/abaqus/hex8_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 25983d2e2d6c1749e19367eb109a0403c60bc3f0e79888448ea10c34e965976a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp support@400-430 helper/oracle/fixture/include/static assertion 구간: SolidDefinition tests/unit/io/abaqus/hex8_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8ef84c9fb537fb04031fa128b47e30de8105170c97ef73cb6b05fe993f3a20ff 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/hex8_semantics_test.cpp support@555-555 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/hex8_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/hht_dynamic_domain_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/io/abaqus/hht_dynamic_domain_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e5a7cec78d6b44cfd120f3883d44964842e52ab1781c6a9c678b93c1768a893b e5a7cec78d6b44cfd120f3883d44964842e52ab1781c6a9c678b93c1768a893b 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.MapsDirectScheduleDensityAndSourceOrder HhtDynamicDomainMapping.MapsDirectScheduleDensityAndSourceOrder; assertion 22개 tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.MapsDirectScheduleDensityAndSourceOrder 유지 원문 검사 body 및 assertion 동일. 2fda780cc6cec49273e038031cef69a2064f0c4d1155f63e36511d518662a11f 2fda780cc6cec49273e038031cef69a2064f0c4d1155f63e36511d518662a11f "ASSERT_TRUE(result.HasValue()) | ASSERT_NE(domain.Dynamic(), nullptr) | EXPECT_EQ(dynamic.source_step_name_raw, ""Dynamic-Load"") | EXPECT_EQ(dynamic.source_step_name_canonical, ""DYNAMIC-LOAD"") | EXPECT_DOUBLE_EQ(dynamic.initial_increment, 0.1) | EXPECT_DOUBLE_EQ(dynamic.time_period, 10.0) | EXPECT_EQ(dynamic.increment_count, 100U) | EXPECT_EQ(dynamic.maximum_increments, 1000U) | EXPECT_DOUBLE_EQ(dynamic.alpha, -0.05) | EXPECT_DOUBLE_EQ(dynamic.beta, 0.275625) | EXPECT_DOUBLE_EQ(dynamic.gamma, 0.55) | ASSERT_EQ(dynamic.boundaries.size(), 1U) | ASSERT_EQ(dynamic.loads.size(), 1U) | EXPECT_EQ(dynamic.loads[0U].dof, 1) | ASSERT_EQ(domain.Densities().size(), 1U) | EXPECT_DOUBLE_EQ(domain.Densities()[0U].rho, 2700.0) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_TRUE(domain.Steps()[0U].IsDynamic()) | EXPECT_FALSE(domain.Steps()[0U].IsNonlinearStatic()) | EXPECT_EQ(domain.Steps()[0U].Dynamic(), domain.Dynamic()) | ASSERT_EQ(domain.Warnings().size(), 4U) | EXPECT_EQ(warning.code, ""ignored-output-request"")" "ASSERT_TRUE(result.HasValue()) | ASSERT_NE(domain.Dynamic(), nullptr) | EXPECT_EQ(dynamic.source_step_name_raw, ""Dynamic-Load"") | EXPECT_EQ(dynamic.source_step_name_canonical, ""DYNAMIC-LOAD"") | EXPECT_DOUBLE_EQ(dynamic.initial_increment, 0.1) | EXPECT_DOUBLE_EQ(dynamic.time_period, 10.0) | EXPECT_EQ(dynamic.increment_count, 100U) | EXPECT_EQ(dynamic.maximum_increments, 1000U) | EXPECT_DOUBLE_EQ(dynamic.alpha, -0.05) | EXPECT_DOUBLE_EQ(dynamic.beta, 0.275625) | EXPECT_DOUBLE_EQ(dynamic.gamma, 0.55) | ASSERT_EQ(dynamic.boundaries.size(), 1U) | ASSERT_EQ(dynamic.loads.size(), 1U) | EXPECT_EQ(dynamic.loads[0U].dof, 1) | ASSERT_EQ(domain.Densities().size(), 1U) | EXPECT_DOUBLE_EQ(domain.Densities()[0U].rho, 2700.0) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_TRUE(domain.Steps()[0U].IsDynamic()) | EXPECT_FALSE(domain.Steps()[0U].IsNonlinearStatic()) | EXPECT_EQ(domain.Steps()[0U].Dynamic(), domain.Dynamic()) | ASSERT_EQ(domain.Warnings().size(), 4U) | EXPECT_EQ(warning.code, ""ignored-output-request"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.MapsOriginalReferenceDeckWithoutMutation HhtDynamicDomainMapping.MapsOriginalReferenceDeckWithoutMutation; assertion 6개 tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.MapsOriginalReferenceDeckWithoutMutation 유지 원문 검사 body 및 assertion 동일. 8d0c382e2a5992cda6af2865bf5941c2dc847f1591b1625a9532dc881eee65a1 8d0c382e2a5992cda6af2865bf5941c2dc847f1591b1625a9532dc881eee65a1 ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_NE(result.Value().Dynamic(), nullptr) | EXPECT_EQ(result.Value().Dynamic()->increment_count, 100U) | EXPECT_EQ(result.Value().Dynamic()->maximum_increments, 1000U) | EXPECT_EQ(result.Value().Dynamic()->loads.size(), 3U) ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_NE(result.Value().Dynamic(), nullptr) | EXPECT_EQ(result.Value().Dynamic()->increment_count, 100U) | EXPECT_EQ(result.Value().Dynamic()->maximum_increments, 1000U) | EXPECT_EQ(result.Value().Dynamic()->loads.size(), 3U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.RejectsMalformedScheduleAndUnsupportedControls HhtDynamicDomainMapping.RejectsMalformedScheduleAndUnsupportedControls; assertion 2개 tests/unit/io/abaqus/hht_dynamic_domain_test.cpp HhtDynamicDomainMapping.RejectsMalformedScheduleAndUnsupportedControls 유지 원문 검사 body 및 assertion 동일. cb6b162159cef6b490fac3ec2e8af7fb2f8c4e72d672d14d6e515cd0fdb22b03 cb6b162159cef6b490fac3ec2e8af7fb2f8c4e72d672d14d6e515cd0fdb22b03 ASSERT_FALSE(result.HasValue()) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.diagnostic), nullptr) ASSERT_FALSE(result.HasValue()) | ASSERT_NE(FindDiagnostic(result.GetStatus(), test_case.diagnostic), nullptr) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/hht_dynamic_domain_test.cpp support@1-117 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if, MapText, FindDiagnostic, for, DynamicDeck, ReplaceOnce, RepositoryRoot tests/unit/io/abaqus/hht_dynamic_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 80674acfe820ddb866f7dab56ffa6515964956c116548bf4746d1064ece4a28c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/hht_dynamic_domain_test.cpp support@205-206 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/hht_dynamic_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/input_reader_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/io/abaqus/input_reader_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 30c6b51c5910fb07f94969370ced1e063bcbf212266e228e3c09ef5a4575ad96 30c6b51c5910fb07f94969370ced1e063bcbf212266e228e3c09ef5a4575ad96 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.RejectsMalformedOrOrphanData InpSyntax.RejectsMalformedOrOrphanData; assertion 14개 tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.RejectsMalformedOrOrphanData 유지 원문 검사 body 및 assertion 동일. ffaa0b04054bbe68b1a87482bbca2cf543c8cd34ea6f4e30fdca2d246bd7db08 ffaa0b04054bbe68b1a87482bbca2cf543c8cd34ea6f4e30fdca2d246bd7db08 "ASSERT_FALSE(unreadable.HasValue()) | EXPECT_EQ(unreadable.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(unreadable.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(unreadable.GetStatus().Diagnostics()[0].code, ""input-file-unreadable"") | ASSERT_FALSE(malformed_result.HasValue()) | EXPECT_EQ(malformed_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(malformed_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(malformed_result.GetStatus().Diagnostics()[0].code, ""malformed-keyword"") | EXPECT_EQ(malformed_result.GetStatus().Diagnostics()[0].location.line, 1U) | ASSERT_FALSE(orphan_result.HasValue()) | EXPECT_EQ(orphan_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(orphan_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(orphan_result.GetStatus().Diagnostics()[0].code, ""orphan-data-line"") | EXPECT_EQ(orphan_result.GetStatus().Diagnostics()[0].location.line, 3U)" "ASSERT_FALSE(unreadable.HasValue()) | EXPECT_EQ(unreadable.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(unreadable.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(unreadable.GetStatus().Diagnostics()[0].code, ""input-file-unreadable"") | ASSERT_FALSE(malformed_result.HasValue()) | EXPECT_EQ(malformed_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(malformed_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(malformed_result.GetStatus().Diagnostics()[0].code, ""malformed-keyword"") | EXPECT_EQ(malformed_result.GetStatus().Diagnostics()[0].location.line, 1U) | ASSERT_FALSE(orphan_result.HasValue()) | EXPECT_EQ(orphan_result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(orphan_result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(orphan_result.GetStatus().Diagnostics()[0].code, ""orphan-data-line"") | EXPECT_EQ(orphan_result.GetStatus().Diagnostics()[0].location.line, 3U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.ReadsLegacyCantileverWithoutMutation InpSyntax.ReadsLegacyCantileverWithoutMutation; assertion 15개 tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.ReadsLegacyCantileverWithoutMutation 유지 원문 검사 body 및 assertion 동일. f41d9011fdd529843fb8de0b5dd5f54bdadc4501908af1a3ccef423593ce0a04 f41d9011fdd529843fb8de0b5dd5f54bdadc4501908af1a3ccef423593ce0a04 "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_content_identity, ""fnv1a64:04543464cc970405"") | EXPECT_EQ(result.Value().source_path, std::filesystem::absolute(input_path).lexically_normal()) | ASSERT_EQ(result.Value().blocks.size(), 30U) | EXPECT_EQ(result.Value().blocks.front().canonical_name, ""HEADING"") | EXPECT_EQ(result.Value().blocks.front().location.line, 1U) | EXPECT_EQ(result.Value().blocks.back().canonical_name, ""END STEP"") | ASSERT_NE(element, result.Value().blocks.end()) | ASSERT_EQ(element->parameters.size(), 1U) | EXPECT_EQ(element->parameters[0].name, ""TYPE"") | ASSERT_TRUE(element->parameters[0].value.has_value()) | EXPECT_EQ(*element->parameters[0].value, ""B33"") | EXPECT_EQ(element->data.size(), 10U) | EXPECT_EQ(ReadExactBytes(input_path), bytes_before) | EXPECT_EQ(std::filesystem::last_write_time(input_path), timestamp_before)" "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_content_identity, ""fnv1a64:04543464cc970405"") | EXPECT_EQ(result.Value().source_path, std::filesystem::absolute(input_path).lexically_normal()) | ASSERT_EQ(result.Value().blocks.size(), 30U) | EXPECT_EQ(result.Value().blocks.front().canonical_name, ""HEADING"") | EXPECT_EQ(result.Value().blocks.front().location.line, 1U) | EXPECT_EQ(result.Value().blocks.back().canonical_name, ""END STEP"") | ASSERT_NE(element, result.Value().blocks.end()) | ASSERT_EQ(element->parameters.size(), 1U) | EXPECT_EQ(element->parameters[0].name, ""TYPE"") | ASSERT_TRUE(element->parameters[0].value.has_value()) | EXPECT_EQ(*element->parameters[0].value, ""B33"") | EXPECT_EQ(element->data.size(), 10U) | EXPECT_EQ(ReadExactBytes(input_path), bytes_before) | EXPECT_EQ(std::filesystem::last_write_time(input_path), timestamp_before)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.AcceptsAsciiKeywordContinuationAndPreservesPhysicalSourceLines InpSyntax.AcceptsAsciiKeywordContinuationAndPreservesPhysicalSourceLines; assertion 14개 tests/unit/io/abaqus/input_reader_test.cpp InpSyntax.AcceptsAsciiKeywordContinuationAndPreservesPhysicalSourceLines 유지 원문 검사 body 및 assertion 동일. ce727a336d945591a1cc0ad97dee25ebfc241f2be137f3198e86eb7df2578ccf ce727a336d945591a1cc0ad97dee25ebfc241f2be137f3198e86eb7df2578ccf "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""SURFACE"") | EXPECT_EQ(block.original_line, ""*SuRfAcE, TYPE=ELEMENT,"") | EXPECT_EQ(block.physical_lines, (std::vector{""*SuRfAcE, TYPE=ELEMENT,"", "" NAME=Pressure_Surface""})) | ASSERT_EQ(block.parameters.size(), 2U) | EXPECT_EQ(block.parameters[0].name, ""TYPE"") | ASSERT_TRUE(block.parameters[0].value.has_value()) | EXPECT_EQ(*block.parameters[0].value, ""ELEMENT"") | EXPECT_EQ(block.parameters[1].name, ""NAME"") | ASSERT_TRUE(block.parameters[1].value.has_value()) | EXPECT_EQ(*block.parameters[1].value, ""Pressure_Surface"") | ASSERT_EQ(block.data.size(), 1U) | EXPECT_EQ(block.data[0].location.line, 3U)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""SURFACE"") | EXPECT_EQ(block.original_line, ""*SuRfAcE, TYPE=ELEMENT,"") | EXPECT_EQ(block.physical_lines, (std::vector{""*SuRfAcE, TYPE=ELEMENT,"", "" NAME=Pressure_Surface""})) | ASSERT_EQ(block.parameters.size(), 2U) | EXPECT_EQ(block.parameters[0].name, ""TYPE"") | ASSERT_TRUE(block.parameters[0].value.has_value()) | EXPECT_EQ(*block.parameters[0].value, ""ELEMENT"") | EXPECT_EQ(block.parameters[1].name, ""NAME"") | ASSERT_TRUE(block.parameters[1].value.has_value()) | EXPECT_EQ(*block.parameters[1].value, ""Pressure_Surface"") | ASSERT_EQ(block.data.size(), 1U) | EXPECT_EQ(block.data[0].location.line, 3U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/input_reader_test.cpp support@1-55 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if, ReadExactBytes, RepositoryRoot tests/unit/io/abaqus/input_reader_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 09e22f6727e979f0117b382a1b8ac77c50f4103adebca5eb58b315c7b0636451 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/input_syntax_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/io/abaqus/input_syntax_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6a0ecd5814f476c566f96a1e64d8e1b2757a0dfd70f17d3543519b1d6226a7b7 6a0ecd5814f476c566f96a1e64d8e1b2757a0dfd70f17d3543519b1d6226a7b7 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/input_syntax_test.cpp InpSyntax.CanonicalizesKeywordAndParameterNamesOnly InpSyntax.CanonicalizesKeywordAndParameterNamesOnly; assertion 14개 tests/unit/io/abaqus/input_syntax_test.cpp InpSyntax.CanonicalizesKeywordAndParameterNamesOnly 유지 원문 검사 body 및 assertion 동일. fa957b70a91ffba87d4e77baf9592ef3c6e8475adc7bf40ff3678c1929954f3b fa957b70a91ffba87d4e77baf9592ef3c6e8475adc7bf40ff3678c1929954f3b "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""ELEMENT"") | EXPECT_EQ(block.original_line, original_line) | EXPECT_EQ(block.location.line, 1U) | ASSERT_EQ(block.parameters.size(), 3U) | EXPECT_EQ(block.parameters[0].name, ""TYPE"") | ASSERT_TRUE(block.parameters[0].value.has_value()) | EXPECT_EQ(*block.parameters[0].value, ""b33"") | EXPECT_EQ(block.parameters[1].name, ""GENERATE"") | EXPECT_FALSE(block.parameters[1].value.has_value()) | EXPECT_EQ(block.parameters[2].name, ""ELSET"") | ASSERT_TRUE(block.parameters[2].value.has_value()) | EXPECT_EQ(*block.parameters[2].value, ""Beam_Set"")" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""ELEMENT"") | EXPECT_EQ(block.original_line, original_line) | EXPECT_EQ(block.location.line, 1U) | ASSERT_EQ(block.parameters.size(), 3U) | EXPECT_EQ(block.parameters[0].name, ""TYPE"") | ASSERT_TRUE(block.parameters[0].value.has_value()) | EXPECT_EQ(*block.parameters[0].value, ""b33"") | EXPECT_EQ(block.parameters[1].name, ""GENERATE"") | EXPECT_FALSE(block.parameters[1].value.has_value()) | EXPECT_EQ(block.parameters[2].name, ""ELSET"") | ASSERT_TRUE(block.parameters[2].value.has_value()) | EXPECT_EQ(*block.parameters[2].value, ""Beam_Set"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/input_syntax_test.cpp InpSyntax.PreservesDataAndSourceLocations InpSyntax.PreservesDataAndSourceLocations; assertion 12개 tests/unit/io/abaqus/input_syntax_test.cpp InpSyntax.PreservesDataAndSourceLocations 유지 원문 검사 body 및 assertion 동일. a1132a3f6c99199423c9f513fe5541b7c91e511e68e9f3d935d5bca9ba159733 a1132a3f6c99199423c9f513fe5541b7c91e511e68e9f3d935d5bca9ba159733 "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_path, std::filesystem::absolute(input.Path()).lexically_normal()) | EXPECT_EQ(result.Value().source_content_identity, ""fnv1a64:c120b6ed2445be46"") | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""NODE"") | EXPECT_EQ(block.original_line, ""*NoDe"") | EXPECT_EQ(block.location.file, result.Value().source_path) | EXPECT_EQ(block.location.line, 3U) | ASSERT_EQ(block.data.size(), 1U) | EXPECT_EQ(block.data[0].fields, (std::vector{""0007"", ""Label_A"", """", """"})) | EXPECT_EQ(block.data[0].location.file, result.Value().source_path) | EXPECT_EQ(block.data[0].location.line, 4U)" "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().source_path, std::filesystem::absolute(input.Path()).lexically_normal()) | EXPECT_EQ(result.Value().source_content_identity, ""fnv1a64:c120b6ed2445be46"") | ASSERT_EQ(result.Value().blocks.size(), 1U) | EXPECT_EQ(block.canonical_name, ""NODE"") | EXPECT_EQ(block.original_line, ""*NoDe"") | EXPECT_EQ(block.location.file, result.Value().source_path) | EXPECT_EQ(block.location.line, 3U) | ASSERT_EQ(block.data.size(), 1U) | EXPECT_EQ(block.data[0].fields, (std::vector{""0007"", ""Label_A"", """", """"})) | EXPECT_EQ(block.data[0].location.file, result.Value().source_path) | EXPECT_EQ(block.data[0].location.line, 4U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/input_syntax_test.cpp support@1-37 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if tests/unit/io/abaqus/input_syntax_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5cd816979355e9dfa2384470d2d676ffac1a89dc2f4e6ccd91d0998e1d374b2d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 18개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f28acc507f7b42094ff105589aa020384ae0c3b6c6b4c67edb7d4e36f7928af6 f28acc507f7b42094ff105589aa020384ae0c3b6c6b4c67edb7d4e36f7928af6 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsDirectInstanceFacetsForS4AndS4rCaseInsensitively ShellSurfacePressureInput.MapsDirectInstanceFacetsForS4AndS4rCaseInsensitively; assertion 11개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsDirectInstanceFacetsForS4AndS4rCaseInsensitively 유지 원문 검사 body 및 assertion 동일. 946490ad5c50c1cb8ba083ec3c6d6c42322e4575cbaffc7c063a4aceb1f4d586 946490ad5c50c1cb8ba083ec3c6d6c42322e4575cbaffc7c063a4aceb1f4d586 "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(surface.surface_name_raw, ""Direct-Surface"") | EXPECT_EQ(surface.surface_name_canonical, ""DIRECT-SURFACE"") | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(surface.facets[0].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[0].source_element_label, 10) | EXPECT_EQ(surface.facets[0].source_element_label_raw, ""0010"") | EXPECT_EQ(surface.facets[0].source_element_type, ""S4"") | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSpos) | EXPECT_EQ(surface.facets[1].source_element_type, ""S4R"") | EXPECT_EQ(surface.facets[1].side, fesa::ShellSurfaceSide::kSneg)" "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(surface.surface_name_raw, ""Direct-Surface"") | EXPECT_EQ(surface.surface_name_canonical, ""DIRECT-SURFACE"") | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(surface.facets[0].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[0].source_element_label, 10) | EXPECT_EQ(surface.facets[0].source_element_label_raw, ""0010"") | EXPECT_EQ(surface.facets[0].source_element_type, ""S4"") | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSpos) | EXPECT_EQ(surface.facets[1].source_element_type, ""S4R"") | EXPECT_EQ(surface.facets[1].side, fesa::ShellSurfaceSide::kSneg)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsExplicitInstanceElsetAndResultNeutralInternalParameter ShellSurfacePressureInput.MapsExplicitInstanceElsetAndResultNeutralInternalParameter; assertion 7개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsExplicitInstanceElsetAndResultNeutralInternalParameter 유지 원문 검사 body 및 assertion 동일. d6e14ec8263f733baba442390ee6f6a6f4b722f1f0edb1f7ba795e587f6c858c d6e14ec8263f733baba442390ee6f6a6f4b722f1f0edb1f7ba795e587f6c858c "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(facet.member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(facet.elset_name_raw, ""flat-members"") | EXPECT_EQ(facet.elset_name_canonical, ""FLAT-MEMBERS"") | EXPECT_EQ(facet.instance_name_raw, ""Instance-A"") | EXPECT_EQ(facet.side, fesa::ShellSurfaceSide::kSpos)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(facet.member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(facet.elset_name_raw, ""flat-members"") | EXPECT_EQ(facet.elset_name_canonical, ""FLAT-MEMBERS"") | EXPECT_EQ(facet.instance_name_raw, ""Instance-A"") | EXPECT_EQ(facet.side, fesa::ShellSurfaceSide::kSpos)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsMixedDirectAndElsetMembersAcrossTwoExplicitInstancesWithStableDataMemberAndElsetOrder ShellSurfacePressureInput.MapsMixedDirectAndElsetMembersAcrossTwoExplicitInstancesWithStableDataMemberAndElsetOrder; assertion 21개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.MapsMixedDirectAndElsetMembersAcrossTwoExplicitInstancesWithStableDataMemberAndElsetOrder 유지 원문 검사 body 및 assertion 동일. 8d33f673c3b416be94c015ec597fcf82637e32a1423ffa50887b3cec07778a4f 8d33f673c3b416be94c015ec597fcf82637e32a1423ffa50887b3cec07778a4f "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 4U) | EXPECT_EQ(surface.facets[0].instance_name_raw, ""Instance-B"") | EXPECT_EQ(surface.facets[0].source_element_label, 10) | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSneg) | EXPECT_EQ(surface.facets[0].first_member_ordinal, 2U) | EXPECT_EQ(surface.facets[1].instance_name_raw, ""Instance-B"") | EXPECT_EQ(surface.facets[1].source_element_label, 20) | EXPECT_EQ(surface.facets[1].member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(surface.facets[1].first_member_ordinal, 1U) | EXPECT_EQ(surface.facets[2].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[2].source_element_label, 10) | EXPECT_EQ(surface.facets[2].member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(surface.facets[2].first_member_ordinal, 3U) | EXPECT_EQ(surface.facets[3].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[3].source_element_label, 20) | EXPECT_EQ(surface.facets[3].member_kind, fesa::SurfaceMemberKind::kDirect) | EXPECT_EQ(surface.facets[3].first_member_ordinal, 0U) | EXPECT_EQ(facet.part_name_raw, ""Shell-Part"") | EXPECT_EQ(facet.part_name_canonical, ""SHELL-PART"") | EXPECT_EQ(facet.instance_name_canonical, facet.instance_name_raw == ""Instance-A"" ? ""INSTANCE-A"" : ""INSTANCE-B"")" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 4U) | EXPECT_EQ(surface.facets[0].instance_name_raw, ""Instance-B"") | EXPECT_EQ(surface.facets[0].source_element_label, 10) | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSneg) | EXPECT_EQ(surface.facets[0].first_member_ordinal, 2U) | EXPECT_EQ(surface.facets[1].instance_name_raw, ""Instance-B"") | EXPECT_EQ(surface.facets[1].source_element_label, 20) | EXPECT_EQ(surface.facets[1].member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(surface.facets[1].first_member_ordinal, 1U) | EXPECT_EQ(surface.facets[2].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[2].source_element_label, 10) | EXPECT_EQ(surface.facets[2].member_kind, fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(surface.facets[2].first_member_ordinal, 3U) | EXPECT_EQ(surface.facets[3].instance_name_raw, ""Instance-A"") | EXPECT_EQ(surface.facets[3].source_element_label, 20) | EXPECT_EQ(surface.facets[3].member_kind, fesa::SurfaceMemberKind::kDirect) | EXPECT_EQ(surface.facets[3].first_member_ordinal, 0U) | EXPECT_EQ(facet.part_name_raw, ""Shell-Part"") | EXPECT_EQ(facet.part_name_canonical, ""SHELL-PART"") | EXPECT_EQ(facet.instance_name_canonical, facet.instance_name_raw == ""Instance-A"" ? ""INSTANCE-A"" : ""INSTANCE-B"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.PreservesSposSnegMagnitudeTextLocationsAndSourceOrder ShellSurfacePressureInput.PreservesSposSnegMagnitudeTextLocationsAndSourceOrder; assertion 21개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.PreservesSposSnegMagnitudeTextLocationsAndSourceOrder 유지 원문 검사 body 및 assertion 동일. 9c08d13e4d85213392e2e9a91bfd3c2da00f84da36f7a8748cf0356575d40a89 9c08d13e4d85213392e2e9a91bfd3c2da00f84da36f7a8748cf0356575d40a89 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(surface.facets[0].facet_ordinal, 0U) | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSpos) | EXPECT_EQ(surface.facets[1].facet_ordinal, 1U) | EXPECT_EQ(surface.facets[1].side, fesa::ShellSurfaceSide::kSneg) | ASSERT_EQ(step.SurfacePressureLoads().size(), 2U) | EXPECT_EQ(first.step_name_raw, ""Pressure-Step"") | EXPECT_EQ(first.step_name_canonical, ""PRESSURE-STEP"") | EXPECT_EQ(first.surface_name_raw, ""pressure-surface"") | EXPECT_EQ(first.surface_name_canonical, ""PRESSURE-SURFACE"") | EXPECT_EQ(first.load_type, ""P"") | EXPECT_DOUBLE_EQ(first.magnitude, 0.0) | EXPECT_EQ(first.magnitude_raw, ""-0.0"") | EXPECT_EQ(first.data_ordinal, 0U) | EXPECT_EQ(first.load_ordinal, 0U) | EXPECT_LT(first.keyword_location.line, first.data_location.line) | EXPECT_EQ(second.magnitude_raw, ""+2.50e+03"") | EXPECT_DOUBLE_EQ(second.magnitude, 2500.0) | EXPECT_EQ(second.data_ordinal, 1U) | EXPECT_EQ(second.load_ordinal, 1U)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surface.facets.size(), 2U) | EXPECT_EQ(surface.facets[0].facet_ordinal, 0U) | EXPECT_EQ(surface.facets[0].side, fesa::ShellSurfaceSide::kSpos) | EXPECT_EQ(surface.facets[1].facet_ordinal, 1U) | EXPECT_EQ(surface.facets[1].side, fesa::ShellSurfaceSide::kSneg) | ASSERT_EQ(step.SurfacePressureLoads().size(), 2U) | EXPECT_EQ(first.step_name_raw, ""Pressure-Step"") | EXPECT_EQ(first.step_name_canonical, ""PRESSURE-STEP"") | EXPECT_EQ(first.surface_name_raw, ""pressure-surface"") | EXPECT_EQ(first.surface_name_canonical, ""PRESSURE-SURFACE"") | EXPECT_EQ(first.load_type, ""P"") | EXPECT_DOUBLE_EQ(first.magnitude, 0.0) | EXPECT_EQ(first.magnitude_raw, ""-0.0"") | EXPECT_EQ(first.data_ordinal, 0U) | EXPECT_EQ(first.load_ordinal, 0U) | EXPECT_LT(first.keyword_location.line, first.data_location.line) | EXPECT_EQ(second.magnitude_raw, ""+2.50e+03"") | EXPECT_DOUBLE_EQ(second.magnitude, 2500.0) | EXPECT_EQ(second.data_ordinal, 1U) | EXPECT_EQ(second.load_ordinal, 1U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.OwnsCanonicalFacetsAndStepOwnedAdditivePressureRecords ShellSurfacePressureDomain.OwnsCanonicalFacetsAndStepOwnedAdditivePressureRecords; assertion 3개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.OwnsCanonicalFacetsAndStepOwnedAdditivePressureRecords 유지 원문 검사 body 및 assertion 동일. 42e89d7898679456d451df49a6eec0e9e98cc775ba616c469f3ad6c9839f3a6b 42e89d7898679456d451df49a6eec0e9e98cc775ba616c469f3ad6c9839f3a6b ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.ElementSurfaces()[0].facets[0].source_element_label, 10) | EXPECT_DOUBLE_EQ(domain.Steps()[0U].SurfacePressureLoads()[0].magnitude, 1.0) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.ElementSurfaces()[0].facets[0].source_element_label, 10) | EXPECT_DOUBLE_EQ(domain.Steps()[0U].SurfacePressureLoads()[0].magnitude, 1.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.AnalysisModelBorrowsActivePressureWithoutCopyingDomain ShellSurfacePressureDomain.AnalysisModelBorrowsActivePressureWithoutCopyingDomain; assertion 4개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.AnalysisModelBorrowsActivePressureWithoutCopyingDomain 유지 원문 검사 body 및 assertion 동일. 83c413cc8fb859ea110ee4895701e8637ebd25d495ccc13f88c4d67032a8394e 83c413cc8fb859ea110ee4895701e8637ebd25d495ccc13f88c4d67032a8394e ASSERT_TRUE(mapped.HasValue()) | ASSERT_TRUE(model.HasValue()) | EXPECT_EQ(&model.Value().ActiveSurfacePressureLoads(), &mapped.Value().Steps()[0U].SurfacePressureLoads()) | EXPECT_EQ(model.Value().ActiveSurfacePressureLoads().size(), 1U) ASSERT_TRUE(mapped.HasValue()) | ASSERT_TRUE(model.HasValue()) | EXPECT_EQ(&model.Value().ActiveSurfacePressureLoads(), &mapped.Value().Steps()[0U].SurfacePressureLoads()) | EXPECT_EQ(model.Value().ActiveSurfacePressureLoads().size(), 1U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.AcceptsWhitespaceSignedZeroAndFiniteScientificNotation ShellSurfacePressureInput.AcceptsWhitespaceSignedZeroAndFiniteScientificNotation; assertion 6개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.AcceptsWhitespaceSignedZeroAndFiniteScientificNotation 유지 원문 검사 body 및 assertion 동일. 87b289b662f1e0f3698f77b333ddd4ccbf28081d4ecfdb62b8baedc1c663909b 87b289b662f1e0f3698f77b333ddd4ccbf28081d4ecfdb62b8baedc1c663909b "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0].magnitude_raw, ""+0"") | EXPECT_DOUBLE_EQ(loads[0].magnitude, 0.0) | EXPECT_EQ(loads[1].magnitude_raw, ""-1.25E-3"") | EXPECT_DOUBLE_EQ(loads[1].magnitude, -0.00125)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0].magnitude_raw, ""+0"") | EXPECT_DOUBLE_EQ(loads[0].magnitude, 0.0) | EXPECT_EQ(loads[1].magnitude_raw, ""-1.25E-3"") | EXPECT_DOUBLE_EQ(loads[1].magnitude, -0.00125)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsNonAsciiOverlengthOrIllegalContinuationAtStableLocation ShellSurfacePressureInput.RejectsNonAsciiOverlengthOrIllegalContinuationAtStableLocation; assertion 10개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsNonAsciiOverlengthOrIllegalContinuationAtStableLocation 유지 원문 검사 body 및 assertion 동일. 1ce5f567f199255b591700b92f8ecc0c9f9484c5315310cc34228f91d1b5f7e3 1ce5f567f199255b591700b92f8ecc0c9f9484c5315310cc34228f91d1b5f7e3 "ASSERT_FALSE(non_ascii.HasValue()) | ASSERT_EQ(non_ascii.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(non_ascii.GetStatus().Diagnostics().front().code, ""invalid-input-character"") | EXPECT_EQ(non_ascii.GetStatus().Diagnostics().front().location.line, 2U) | ASSERT_FALSE(overlength.HasValue()) | EXPECT_EQ(overlength.GetStatus().Diagnostics().front().code, ""input-line-too-long"") | EXPECT_EQ(overlength.GetStatus().Diagnostics().front().location.line, 1U) | ASSERT_FALSE(continuation.HasValue()) | EXPECT_EQ(continuation.GetStatus().Diagnostics().front().code, ""malformed-keyword"") | EXPECT_EQ(continuation.GetStatus().Diagnostics().front().location.line, 2U)" "ASSERT_FALSE(non_ascii.HasValue()) | ASSERT_EQ(non_ascii.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(non_ascii.GetStatus().Diagnostics().front().code, ""invalid-input-character"") | EXPECT_EQ(non_ascii.GetStatus().Diagnostics().front().location.line, 2U) | ASSERT_FALSE(overlength.HasValue()) | EXPECT_EQ(overlength.GetStatus().Diagnostics().front().code, ""input-line-too-long"") | EXPECT_EQ(overlength.GetStatus().Diagnostics().front().location.line, 1U) | ASSERT_FALSE(continuation.HasValue()) | EXPECT_EQ(continuation.GetStatus().Diagnostics().front().code, ""malformed-keyword"") | EXPECT_EQ(continuation.GetStatus().Diagnostics().front().location.line, 2U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsUnsupportedSurfaceParametersTypesSidesAndTargetKinds ShellSurfacePressureInput.RejectsUnsupportedSurfaceParametersTypesSidesAndTargetKinds; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsUnsupportedSurfaceParametersTypesSidesAndTargetKinds 유지 원문 검사 body 및 assertion 동일. 68c16419be0faeb3e5c631b0e2c4d1e86e40ed448590aec8a56567e36f406ea7 68c16419be0faeb3e5c631b0e2c4d1e86e40ed448590aec8a56567e36f406ea7 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsDsloadParametersLabelsDistributionsAndCardinality ShellSurfacePressureInput.RejectsDsloadParametersLabelsDistributionsAndCardinality; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsDsloadParametersLabelsDistributionsAndCardinality 유지 원문 검사 body 및 assertion 동일. ce9916ba710c77e4eb855936e4e9b09baaa2f5362abb02621d469075a5c06faa ce9916ba710c77e4eb855936e4e9b09baaa2f5362abb02621d469075a5c06faa 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsEmptyMissingAmbiguousAndCrossScopeSurfaceTargets ShellSurfacePressureInput.RejectsEmptyMissingAmbiguousAndCrossScopeSurfaceTargets; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsEmptyMissingAmbiguousAndCrossScopeSurfaceTargets 유지 원문 검사 body 및 assertion 동일. b989869b46405f081a67b42c2ac227713272b84c67b79337276cef65ce359cf4 b989869b46405f081a67b42c2ac227713272b84c67b79337276cef65ce359cf4 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsImplicitInstanceNestedCyclicAndMalformedElsets ShellSurfacePressureInput.RejectsImplicitInstanceNestedCyclicAndMalformedElsets; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsImplicitInstanceNestedCyclicAndMalformedElsets 유지 원문 검사 body 및 assertion 동일. 569ad93130ac52b9b57b42010b2150591c9f0125fb21d8c2469cc515e6917db5 569ad93130ac52b9b57b42010b2150591c9f0125fb21d8c2469cc515e6917db5 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.NormalizesExactSameSideDuplicatesWithOneStableWarning ShellSurfacePressureInput.NormalizesExactSameSideDuplicatesWithOneStableWarning; assertion 8개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.NormalizesExactSameSideDuplicatesWithOneStableWarning 유지 원문 검사 body 및 assertion 동일. 6236b7eb61a4fd35e83e7ae25ddc5570a7cebd6db3eb16bf99f95c45470a5c72 6236b7eb61a4fd35e83e7ae25ddc5570a7cebd6db3eb16bf99f95c45470a5c72 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(OnlySurface(result.Value()).facets.size(), 1U) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(warning.severity, fesa::Severity::kWarning) | EXPECT_EQ(warning.code, ""duplicate-surface-member-normalized"") | EXPECT_EQ(warning.location.line, 29U) | EXPECT_EQ(warning.keyword, ""SURFACE"") | EXPECT_EQ(warning.entity_identity, ""Pressure-Surface"")" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(OnlySurface(result.Value()).facets.size(), 1U) | ASSERT_EQ(result.Value().Warnings().size(), 1U) | EXPECT_EQ(warning.severity, fesa::Severity::kWarning) | EXPECT_EQ(warning.code, ""duplicate-surface-member-normalized"") | EXPECT_EQ(warning.location.line, 29U) | EXPECT_EQ(warning.keyword, ""SURFACE"") | EXPECT_EQ(warning.entity_identity, ""Pressure-Surface"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsConflictingSidesForOneElement ShellSurfacePressureInput.RejectsConflictingSidesForOneElement; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsConflictingSidesForOneElement 유지 원문 검사 body 및 assertion 동일. 315b661ced70d8d24863f470071109e53670f8da16a0b9bd3b967f8323ba5bea 315b661ced70d8d24863f470071109e53670f8da16a0b9bd3b967f8323ba5bea 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsNonfiniteDExponentAndLocaleDependentMagnitudes ShellSurfacePressureInput.RejectsNonfiniteDExponentAndLocaleDependentMagnitudes; assertion 0개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.RejectsNonfiniteDExponentAndLocaleDependentMagnitudes 유지 원문 검사 body 및 assertion 동일. c59f0842555c4f634f8e5b90784578f9266a27d716f16648d27acb9709bee548 c59f0842555c4f634f8e5b90784578f9266a27d716f16648d27acb9709bee548 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.PreservesAdditiveRepeatedPressureRowsWithoutDeduplication ShellSurfacePressureInput.PreservesAdditiveRepeatedPressureRowsWithoutDeduplication; assertion 7개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.PreservesAdditiveRepeatedPressureRowsWithoutDeduplication 유지 원문 검사 body 및 assertion 동일. bf188f0db4fa94c007143db4457732b390ea10be44a09c4ac30e0498c4d7e2cf bf188f0db4fa94c007143db4457732b390ea10be44a09c4ac30e0498c4d7e2cf ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0].load_ordinal, 0U) | EXPECT_EQ(loads[1].load_ordinal, 1U) | EXPECT_EQ(loads[0].data_ordinal, 0U) | EXPECT_EQ(loads[1].data_ordinal, 1U) | EXPECT_DOUBLE_EQ(loads[0].magnitude, loads[1].magnitude) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0].load_ordinal, 0U) | EXPECT_EQ(loads[1].load_ordinal, 1U) | EXPECT_EQ(loads[0].data_ordinal, 0U) | EXPECT_EQ(loads[1].data_ordinal, 1U) | EXPECT_DOUBLE_EQ(loads[0].magnitude, loads[1].magnitude) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.MappingFailureCommitsNoPartialSemanticCandidate ShellSurfacePressureDomain.MappingFailureCommitsNoPartialSemanticCandidate; assertion 2개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureDomain.MappingFailureCommitsNoPartialSemanticCandidate 유지 원문 검사 body 및 assertion 동일. 003fd75844ef98765cfaa6d972a17143273fdfee97b19ba5f6e778352bd86bf6 003fd75844ef98765cfaa6d972a17143273fdfee97b19ba5f6e778352bd86bf6 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics().front().code, ""conflicting-surface-membership"")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics().front().code, ""conflicting-surface-membership"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.EmitsDiagnosticsInStableSourceOrderAcrossRepeatedRuns ShellSurfacePressureInput.EmitsDiagnosticsInStableSourceOrderAcrossRepeatedRuns; assertion 11개 tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp ShellSurfacePressureInput.EmitsDiagnosticsInStableSourceOrderAcrossRepeatedRuns 유지 원문 검사 body 및 assertion 동일. 7544df73d8202a307316ba7ec6a6f786d8eb7c4b585beceb4280997ebf5c5c8f 7544df73d8202a307316ba7ec6a6f786d8eb7c4b585beceb4280997ebf5c5c8f ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_EQ(first.Value().Warnings().size(), 1U) | ASSERT_EQ(second.Value().Warnings().size(), 1U) | EXPECT_EQ(left.severity, right.severity) | EXPECT_EQ(left.code, right.code) | EXPECT_EQ(left.location.file, right.location.file) | EXPECT_EQ(left.location.line, right.location.line) | EXPECT_EQ(left.keyword, right.keyword) | EXPECT_EQ(left.entity_identity, right.entity_identity) | EXPECT_EQ(left.message, right.message) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) | ASSERT_EQ(first.Value().Warnings().size(), 1U) | ASSERT_EQ(second.Value().Warnings().size(), 1U) | EXPECT_EQ(left.severity, right.severity) | EXPECT_EQ(left.code, right.code) | EXPECT_EQ(left.location.file, right.location.file) | EXPECT_EQ(left.location.line, right.location.line) | EXPECT_EQ(left.keyword, right.keyword) | EXPECT_EQ(left.entity_identity, right.entity_identity) | EXPECT_EQ(left.message, right.message) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp support@1-126 helper/oracle/fixture/include/static assertion 구간: TemporaryInputFile, if, MapText, ReadText, ReplaceOnce, ExpectSingleFailure, ShellDeck, OnlySurface tests/unit/io/abaqus/shell_surface_pressure_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d01dd887a99bccd610d4db4c59f83a92cdc73f44a8d962cd5349c44d36562723 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 32개 tests/unit/io/abaqus/thermal_domain_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. efd4b1c00fa1db1fa4fe9ccd369c34f9bea4cc2665b5c00972792a0fd66d9483 efd4b1c00fa1db1fa4fe9ccd369c34f9bea4cc2665b5c00972792a0fd66d9483 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MapsDs4MaterialsTargetsAndAdditiveFluxes ThermalDomainMapping.MapsDs4MaterialsTargetsAndAdditiveFluxes; assertion 12개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MapsDs4MaterialsTargetsAndAdditiveFluxes 유지 원문 검사 body 및 assertion 동일. af2d22c04e46f6dd711a20088fbc473854263068c67a74e8f27049e4026c2a22 af2d22c04e46f6dd711a20088fbc473854263068c67a74e8f27049e4026c2a22 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalElements().Size(), 1U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 1U) | EXPECT_DOUBLE_EQ(domain.ThermalMaterials()[0U].Conductivity(), 54.0) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(domain.ThermalStep()->name, ""Heat"") | EXPECT_EQ(domain.ThermalStep()->maximum_increments, 100U) | EXPECT_EQ(domain.ThermalModelBoundaries().size(), 2U) | EXPECT_EQ(domain.ThermalStep()->Boundaries().size(), 2U) | ASSERT_EQ(domain.ThermalStep()->Loads().size(), 4U) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Loads()[0U].power, -2.0) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Loads()[3U].power, -3.0)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalElements().Size(), 1U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 1U) | EXPECT_DOUBLE_EQ(domain.ThermalMaterials()[0U].Conductivity(), 54.0) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(domain.ThermalStep()->name, ""Heat"") | EXPECT_EQ(domain.ThermalStep()->maximum_increments, 100U) | EXPECT_EQ(domain.ThermalModelBoundaries().size(), 2U) | EXPECT_EQ(domain.ThermalStep()->Boundaries().size(), 2U) | ASSERT_EQ(domain.ThermalStep()->Loads().size(), 4U) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Loads()[0U].power, -2.0) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Loads()[3U].power, -3.0)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsInteriorAndConflictingThermalBoundaries ThermalDomainMapping.RejectsInteriorAndConflictingThermalBoundaries; assertion 4개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsInteriorAndConflictingThermalBoundaries 유지 원문 검사 body 및 assertion 동일. 7ec98df39941a00678cd5ef92a12a7f68a90cda117bae9baef2a0684c5f96b7d 7ec98df39941a00678cd5ef92a12a7f68a90cda117bae9baef2a0684c5f96b7d "ASSERT_FALSE(invalid_dof.HasValue()) | EXPECT_EQ(invalid_dof.GetStatus().Diagnostics()[0U].code, ""invalid-dof"") | ASSERT_FALSE(invalid_conflict.HasValue()) | EXPECT_EQ(invalid_conflict.GetStatus().Diagnostics()[0U].code, ""conflicting-boundary-condition"")" "ASSERT_FALSE(invalid_dof.HasValue()) | EXPECT_EQ(invalid_dof.GetStatus().Diagnostics()[0U].code, ""invalid-dof"") | ASSERT_FALSE(invalid_conflict.HasValue()) | EXPECT_EQ(invalid_conflict.GetStatus().Diagnostics()[0U].code, ""conflicting-boundary-condition"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.AcceptsSectionPointSpellingsAndRejectsUnsupportedForms ThermalDomainMapping.AcceptsSectionPointSpellingsAndRejectsUnsupportedForms; assertion 1개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.AcceptsSectionPointSpellingsAndRejectsUnsupportedForms 유지 원문 검사 body 및 assertion 동일. 0246d651e3e2c547182aa0793b1ede7ebad37bb947330710f83c05bc1899a641 0246d651e3e2c547182aa0793b1ede7ebad37bb947330710f83c05bc1899a641 EXPECT_EQ(MapText(deck).HasValue(), test_case.second) EXPECT_EQ(MapText(deck).HasValue(), test_case.second) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsThermalMaterialAndControlForms ThermalDomainMapping.RejectsThermalMaterialAndControlForms; assertion 2개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsThermalMaterialAndControlForms 유지 원문 검사 body 및 assertion 동일. aa52baa4e9489c8924eccd069573c18e9d91f3432343b409fd2e822e1c24177b aa52baa4e9489c8924eccd069573c18e9d91f3432343b409fd2e822e1c24177b ASSERT_NE(position, std::string::npos) | EXPECT_FALSE(MapText(deck).HasValue()) ASSERT_NE(position, std::string::npos) | EXPECT_FALSE(MapText(deck).HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsThermalNoOpAndProcedureViolations ThermalDomainMapping.RejectsThermalNoOpAndProcedureViolations; assertion 2개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsThermalNoOpAndProcedureViolations 유지 원문 검사 body 및 assertion 동일. 40e1583ca082fe70743b2bc1583336dfe4284fe520aa4d00ddaf5a2297c8df91 40e1583ca082fe70743b2bc1583336dfe4284fe520aa4d00ddaf5a2297c8df91 ASSERT_NE(position, std::string::npos) | EXPECT_FALSE(MapText(deck).HasValue()) ASSERT_NE(position, std::string::npos) | EXPECT_FALSE(MapText(deck).HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.AppliesSameDofStepOverrideAndDefaultValues ThermalDomainMapping.AppliesSameDofStepOverrideAndDefaultValues; assertion 5개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.AppliesSameDofStepOverrideAndDefaultValues 유지 원문 검사 body 및 assertion 동일. 5277085c94aa63d3671618cea4d01e147843cb61b11bcdd8ea01ced3610db2e3 5277085c94aa63d3671618cea4d01e147843cb61b11bcdd8ea01ced3610db2e3 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().ThermalModelBoundaries().size(), 2U) | ASSERT_EQ(result.Value().ThermalStep()->Boundaries().size(), 2U) | EXPECT_DOUBLE_EQ(result.Value().ThermalModelBoundaries()[0U].value, 0.0) | EXPECT_DOUBLE_EQ(result.Value().ThermalStep()->Boundaries()[0U].value, 30.0) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().ThermalModelBoundaries().size(), 2U) | ASSERT_EQ(result.Value().ThermalStep()->Boundaries().size(), 2U) | EXPECT_DOUBLE_EQ(result.Value().ThermalModelBoundaries()[0U].value, 0.0) | EXPECT_DOUBLE_EQ(result.Value().ThermalStep()->Boundaries()[0U].value, 30.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MapsApprovedShellThermalReference ThermalDomainMapping.MapsApprovedShellThermalReference; assertion 43개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MapsApprovedShellThermalReference 유지 원문 검사 body 및 assertion 동일. 55cab422db4e1520d96658c9b35707efad8d2f61960a1a9c91f2696e239f596f 55cab422db4e1520d96658c9b35707efad8d2f61960a1a9c91f2696e239f596f "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 729U) | ASSERT_EQ(domain.ThermalElements().Size(), 676U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 1U) | ASSERT_EQ(domain.ThermalSections().size(), 1U) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(step.name, ""Step-1"") | EXPECT_EQ(step.maximum_increments, 100000U) | EXPECT_EQ(step.nominal_increment, 1.) | EXPECT_EQ(step.time_period, 100.) | ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 100U) | EXPECT_EQ(grid.Value().Time(37U), 37.) | EXPECT_EQ(domain.ThermalMaterials()[0].Name(), ""Material-1"") | EXPECT_EQ(domain.ThermalMaterials()[0].Conductivity(), 54.) | EXPECT_EQ(domain.ThermalMaterials()[0].Density(), 7850.) | EXPECT_EQ(domain.ThermalMaterials()[0].SpecificHeat(), 460.) | EXPECT_EQ(domain.ThermalSections()[0].name, ""Set-1"") | EXPECT_EQ(domain.ThermalSections()[0].thickness, .5) | EXPECT_EQ(domain.ThermalSections()[0].location.file, path) | EXPECT_EQ(domain.ThermalSections()[0].location.line, 1421U) | EXPECT_EQ(domain.Nodes()[i].source_id.instance_name, ""Part-1-1"") | EXPECT_EQ(domain.Nodes()[i].source_id.source_label, static_cast(i + 1U)) | EXPECT_EQ(domain.ThermalElements()[i].SourceId().instance_name, ""Part-1-1"") | EXPECT_EQ(domain.ThermalElements()[i].SourceId().source_label, static_cast(i + 1U)) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), expected_boundary_labels.size()) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), step.Boundaries().size()) | EXPECT_EQ(model_bc.node_index, step_bc.node_index) | EXPECT_EQ(domain.Nodes()[model_bc.node_index].source_id.source_label, expected_boundary_labels[i]) | EXPECT_EQ(model_bc.dof, 11) | EXPECT_EQ(step_bc.dof, 11) | EXPECT_EQ(model_bc.value, 0.) | EXPECT_EQ(step_bc.value, 1000.) | EXPECT_EQ(model_bc.location.file, path) | EXPECT_LT(model_bc.location.line, step_bc.location.line) | ASSERT_EQ(domain.ElementSurfaces().size(), 1U) | ASSERT_EQ(domain.ElementSurfaces()[0].facets.size(), 169U) | EXPECT_EQ(domain.ElementSurfaces()[0].facets.front().source_element_label, 170) | EXPECT_EQ(domain.ElementSurfaces()[0].facets.back().source_element_label, 338) | EXPECT_EQ(domain.ElementSurfaces()[0].facets[0].source_element_type, ""DS4"") | ASSERT_EQ(domain.Warnings().size(), 6U) | EXPECT_EQ(std::count_if(domain.Warnings().begin(), domain.Warnings().end(), [&](const auto& warning) { return warning.location.file == path && warning.location.line == block.location.line && warning.keyword == block.canonical_name; }), 1)" "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 729U) | ASSERT_EQ(domain.ThermalElements().Size(), 676U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 1U) | ASSERT_EQ(domain.ThermalSections().size(), 1U) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(step.name, ""Step-1"") | EXPECT_EQ(step.maximum_increments, 100000U) | EXPECT_EQ(step.nominal_increment, 1.) | EXPECT_EQ(step.time_period, 100.) | ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), 100U) | EXPECT_EQ(grid.Value().Time(37U), 37.) | EXPECT_EQ(domain.ThermalMaterials()[0].Name(), ""Material-1"") | EXPECT_EQ(domain.ThermalMaterials()[0].Conductivity(), 54.) | EXPECT_EQ(domain.ThermalMaterials()[0].Density(), 7850.) | EXPECT_EQ(domain.ThermalMaterials()[0].SpecificHeat(), 460.) | EXPECT_EQ(domain.ThermalSections()[0].name, ""Set-1"") | EXPECT_EQ(domain.ThermalSections()[0].thickness, .5) | EXPECT_EQ(domain.ThermalSections()[0].location.file, path) | EXPECT_EQ(domain.ThermalSections()[0].location.line, 1421U) | EXPECT_EQ(domain.Nodes()[i].source_id.instance_name, ""Part-1-1"") | EXPECT_EQ(domain.Nodes()[i].source_id.source_label, static_cast(i + 1U)) | EXPECT_EQ(domain.ThermalElements()[i].SourceId().instance_name, ""Part-1-1"") | EXPECT_EQ(domain.ThermalElements()[i].SourceId().source_label, static_cast(i + 1U)) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), expected_boundary_labels.size()) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), step.Boundaries().size()) | EXPECT_EQ(model_bc.node_index, step_bc.node_index) | EXPECT_EQ(domain.Nodes()[model_bc.node_index].source_id.source_label, expected_boundary_labels[i]) | EXPECT_EQ(model_bc.dof, 11) | EXPECT_EQ(step_bc.dof, 11) | EXPECT_EQ(model_bc.value, 0.) | EXPECT_EQ(step_bc.value, 1000.) | EXPECT_EQ(model_bc.location.file, path) | EXPECT_LT(model_bc.location.line, step_bc.location.line) | ASSERT_EQ(domain.ElementSurfaces().size(), 1U) | ASSERT_EQ(domain.ElementSurfaces()[0].facets.size(), 169U) | EXPECT_EQ(domain.ElementSurfaces()[0].facets.front().source_element_label, 170) | EXPECT_EQ(domain.ElementSurfaces()[0].facets.back().source_element_label, 338) | EXPECT_EQ(domain.ElementSurfaces()[0].facets[0].source_element_type, ""DS4"") | ASSERT_EQ(domain.Warnings().size(), 6U) | EXPECT_EQ(std::count_if(domain.Warnings().begin(), domain.Warnings().end(), [&](const auto& warning) { return warning.location.file == path && warning.location.line == block.location.line && warning.keyword == block.canonical_name; }), 1)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.StrictOutputAndRestartNoOps ThermalDomainMapping.StrictOutputAndRestartNoOps; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.StrictOutputAndRestartNoOps 유지 원문 검사 body 및 assertion 동일. 51e37954cc1bd09a41977f48f6977a1889e509d285ae1bde007e30b5345078ef 51e37954cc1bd09a41977f48f6977a1889e509d285ae1bde007e30b5345078ef 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.EveryAcceptedNoOpHasExactlyOneSourceWarning ThermalDomainMapping.EveryAcceptedNoOpHasExactlyOneSourceWarning; assertion 5개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.EveryAcceptedNoOpHasExactlyOneSourceWarning 유지 원문 검사 body 및 assertion 동일. f320f56a6a51fb244decaea008d505f0b1b7d96d0ed1c36dc537572256e87b74 f320f56a6a51fb244decaea008d505f0b1b7d96d0ed1c36dc537572256e87b74 ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(warnings.size(), blocks.size()) | EXPECT_EQ(std::count_if(warnings.begin(), warnings.end(), [&](const auto& w) { return w.severity == fesa::Severity::kWarning && w.keyword == block.second && w.location.file == input.Path() && w.location.line == line; }), 1) | EXPECT_DOUBLE_EQ( result.Value().ThermalInitialConditions()[0].station_values[0], 20.) ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(warnings.size(), blocks.size()) | EXPECT_EQ(std::count_if(warnings.begin(), warnings.end(), [&](const auto& w) { return w.severity == fesa::Severity::kWarning && w.keyword == block.second && w.location.file == input.Path() && w.location.line == line; }), 1) | EXPECT_DOUBLE_EQ( result.Value().ThermalInitialConditions()[0].station_values[0], 20.) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.SurfaceFacetsAreResolvedAndPreserved ThermalDomainMapping.SurfaceFacetsAreResolvedAndPreserved; assertion 11개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.SurfaceFacetsAreResolvedAndPreserved 유지 원문 검사 body 및 assertion 동일. 1e33822a025e5c4a4e36a221f6e21dd2e83b6223c22d01f0f2bf0e2e4a150638 1e33822a025e5c4a4e36a221f6e21dd2e83b6223c22d01f0f2bf0e2e4a150638 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surfaces.size(), 2U) | ASSERT_EQ(surfaces[i].facets.size(), 1U) | EXPECT_EQ(facet.element_index, 0U) | EXPECT_EQ(facet.source_element_label, 1) | EXPECT_EQ(facet.instance_name_raw, ""I"") | EXPECT_EQ(facet.part_name_raw, ""P"") | EXPECT_EQ(facet.source_element_type, ""DS4"") | EXPECT_EQ(facet.side, side == ""SPOS"" ? fesa::ShellSurfaceSide::kSpos : fesa::ShellSurfaceSide::kSneg) | EXPECT_EQ(facet.member_kind, i == 0U ? fesa::SurfaceMemberKind::kDirect : fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(facet.first_member_location.line, LineOf(deck, (i == 0U ? ""I.1, "" : ""Faces, "") + side))" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(surfaces.size(), 2U) | ASSERT_EQ(surfaces[i].facets.size(), 1U) | EXPECT_EQ(facet.element_index, 0U) | EXPECT_EQ(facet.source_element_label, 1) | EXPECT_EQ(facet.instance_name_raw, ""I"") | EXPECT_EQ(facet.part_name_raw, ""P"") | EXPECT_EQ(facet.source_element_type, ""DS4"") | EXPECT_EQ(facet.side, side == ""SPOS"" ? fesa::ShellSurfaceSide::kSpos : fesa::ShellSurfaceSide::kSneg) | EXPECT_EQ(facet.member_kind, i == 0U ? fesa::SurfaceMemberKind::kDirect : fesa::SurfaceMemberKind::kElset) | EXPECT_EQ(facet.first_member_location.line, LineOf(deck, (i == 0U ? ""I.1, "" : ""Faces, "") + side))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsUnresolvedOrInvalidSurfaces ThermalDomainMapping.RejectsUnresolvedOrInvalidSurfaces; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsUnresolvedOrInvalidSurfaces 유지 원문 검사 body 및 assertion 동일. 678d79744318544126a5fab47e194fbb985efe58934d0728ef55b20156e7d91f 678d79744318544126a5fab47e194fbb985efe58934d0728ef55b20156e7d91f 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.PreprintAndPhysicalConstantsAreStrictAndSourceAware ThermalDomainMapping.PreprintAndPhysicalConstantsAreStrictAndSourceAware; assertion 3개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.PreprintAndPhysicalConstantsAreStrictAndSourceAware 유지 원문 검사 body 및 assertion 동일. 3b12f2919d0a6fdfa013a4ac38dbdce85622c99ad095e6f1f4c74ccef9eec6d2 3b12f2919d0a6fdfa013a4ac38dbdce85622c99ad095e6f1f4c74ccef9eec6d2 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""PHYSICAL CONSTANTS"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, 1U)" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""PHYSICAL CONSTANTS"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, 1U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsChildOutputUnknownAndWrongNoOpScopes ThermalDomainMapping.RejectsChildOutputUnknownAndWrongNoOpScopes; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsChildOutputUnknownAndWrongNoOpScopes 유지 원문 검사 body 및 assertion 동일. 6b5c15e74febb98d3db79f8aef581dd44e658c4aa04714443914a23d5cba6117 6b5c15e74febb98d3db79f8aef581dd44e658c4aa04714443914a23d5cba6117 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MaterialConstantsAndSectionLinksAreStrict ThermalDomainMapping.MaterialConstantsAndSectionLinksAreStrict; assertion 1개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.MaterialConstantsAndSectionLinksAreStrict 유지 원문 검사 body 및 assertion 동일. f4ccfe76b71133eea01edf7824c2b21d6e5d49bdad620c5d3f7bcc205c7d532f f4ccfe76b71133eea01edf7824c2b21d6e5d49bdad620c5d3f7bcc205c7d532f ASSERT_TRUE(result.HasValue()) ASSERT_TRUE(result.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InitialTemperatureDefaultsAndOverlaps ThermalDomainMapping.InitialTemperatureDefaultsAndOverlaps; assertion 4개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InitialTemperatureDefaultsAndOverlaps 유지 원문 검사 body 및 assertion 동일. cff5684ec434d19c1c53df0be1764dad47e45d50bd4df30c490fb263894fbd0c cff5684ec434d19c1c53df0be1764dad47e45d50bd4df30c490fb263894fbd0c ASSERT_TRUE(unspecified.HasValue()) | EXPECT_TRUE(unspecified.Value().ThermalInitialConditions().empty()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(temperature, 20.) ASSERT_TRUE(unspecified.HasValue()) | EXPECT_TRUE(unspecified.Value().ThermalInitialConditions().empty()) | ASSERT_TRUE(result.HasValue()) | EXPECT_DOUBLE_EQ(temperature, 20.) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InactiveTargetsFailWithOriginalKeywordAndIdentity ThermalDomainMapping.InactiveTargetsFailWithOriginalKeywordAndIdentity; assertion 8개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InactiveTargetsFailWithOriginalKeywordAndIdentity 유지 원문 검사 body 및 assertion 동일. 83f7f07fbb31e1317402934ace845532b895851b979987760d55f5d4cd771562 83f7f07fbb31e1317402934ace845532b895851b979987760d55f5d4cd771562 "ASSERT_TRUE(accepted.HasValue()) | EXPECT_EQ(accepted.Value().Nodes().size(), 5U) | ASSERT_TRUE(view.HasValue()) | EXPECT_EQ(view.Value().ActiveThermalNodes().size(), 4U) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(diagnostic.entity_identity, ""99"") | EXPECT_EQ(diagnostic.location.line, LineOf(deck, replacement.second)) | EXPECT_NE(diagnostic.keyword, ""THERMAL"")" "ASSERT_TRUE(accepted.HasValue()) | EXPECT_EQ(accepted.Value().Nodes().size(), 5U) | ASSERT_TRUE(view.HasValue()) | EXPECT_EQ(view.Value().ActiveThermalNodes().size(), 4U) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(diagnostic.entity_identity, ""99"") | EXPECT_EQ(diagnostic.location.line, LineOf(deck, replacement.second)) | EXPECT_NE(diagnostic.keyword, ""THERMAL"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ModelBoundaryInheritanceAndStepOverrideReachDofManager ThermalDomainMapping.ModelBoundaryInheritanceAndStepOverrideReachDofManager; assertion 9개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ModelBoundaryInheritanceAndStepOverrideReachDofManager 유지 원문 검사 body 및 assertion 동일. f7561b77de2a4c22260774a6681cea57b317458be3d0c6d27ebe1722d41297c0 f7561b77de2a4c22260774a6681cea57b317458be3d0c6d27ebe1722d41297c0 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), 4U) | ASSERT_EQ(domain.ThermalStep()->Boundaries().size(), 3U) | EXPECT_DOUBLE_EQ(domain.ThermalModelBoundaries()[0].value, 7.) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Boundaries()[0].value, -30.) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().ConstrainedDofs(), expected_dofs) | EXPECT_DOUBLE_EQ(dofs.Value().PrescribedValues()[i], expected_values[i]) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalModelBoundaries().size(), 4U) | ASSERT_EQ(domain.ThermalStep()->Boundaries().size(), 3U) | EXPECT_DOUBLE_EQ(domain.ThermalModelBoundaries()[0].value, 7.) | EXPECT_DOUBLE_EQ(domain.ThermalStep()->Boundaries()[0].value, -30.) | ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | EXPECT_EQ(dofs.Value().ConstrainedDofs(), expected_dofs) | EXPECT_DOUBLE_EQ(dofs.Value().PrescribedValues()[i], expected_values[i]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.BoundariesRejectConflictsAndUnsupportedRowsAtBothLevels ThermalDomainMapping.BoundariesRejectConflictsAndUnsupportedRowsAtBothLevels; assertion 1개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.BoundariesRejectConflictsAndUnsupportedRowsAtBothLevels 유지 원문 검사 body 및 assertion 동일. a8f827d53efc01de6f80689eaf293ddb96b5915e6b4ab8bcc73c1c1035a09da3 a8f827d53efc01de6f80689eaf293ddb96b5915e6b4ab8bcc73c1c1035a09da3 EXPECT_TRUE( MapText(Replace(ThermalDeck(), original, original + equal)).HasValue()) EXPECT_TRUE( MapText(Replace(ThermalDeck(), original, original + equal)).HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.SignedFluxRetainsRowOrderDuplicatesAndConstrainedTargets ThermalDomainMapping.SignedFluxRetainsRowOrderDuplicatesAndConstrainedTargets; assertion 8개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.SignedFluxRetainsRowOrderDuplicatesAndConstrainedTargets 유지 원문 검사 body 및 assertion 동일. 67fcb68684488e6a52db58d6d9d5968ea92bbe01cc27a8d2a942a3f41444bec9 67fcb68684488e6a52db58d6d9d5968ea92bbe01cc27a8d2a942a3f41444bec9 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 5U) | EXPECT_EQ(loads[i].node_index, nodes[i]) | EXPECT_EQ(loads[i].dof, dofs[i]) | EXPECT_DOUBLE_EQ(loads[i].power, powers[i]) | EXPECT_EQ(loads[i].source_order, i) | EXPECT_EQ(loads[1].location.line, loads[2].location.line) | EXPECT_LT(loads[3].location.line, loads[4].location.line) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 5U) | EXPECT_EQ(loads[i].node_index, nodes[i]) | EXPECT_EQ(loads[i].dof, dofs[i]) | EXPECT_DOUBLE_EQ(loads[i].power, powers[i]) | EXPECT_EQ(loads[i].source_order, i) | EXPECT_EQ(loads[1].location.line, loads[2].location.line) | EXPECT_LT(loads[3].location.line, loads[4].location.line) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.FluxRejectsOptionsRowsAndWrongScopes ThermalDomainMapping.FluxRejectsOptionsRowsAndWrongScopes; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.FluxRejectsOptionsRowsAndWrongScopes 유지 원문 검사 body 및 assertion 동일. 81d3c024c63600240315286bb6e27e326334e1e331df08d355ae3a621a691140 81d3c024c63600240315286bb6e27e326334e1e331df08d355ae3a621a691140 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.TimeControlsUseSharedGridIncludingInputCellBoundaries ThermalDomainMapping.TimeControlsUseSharedGridIncludingInputCellBoundaries; assertion 12개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.TimeControlsUseSharedGridIncludingInputCellBoundaries 유지 원문 검사 body 및 assertion 동일. ef1ee468ae9c492f40c424c0c3deb777f280c6bb9adc1c2fff05a8f58203abb9 ef1ee468ae9c492f40c424c0c3deb777f280c6bb9adc1c2fff05a8f58203abb9 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(step.nominal_increment, item.increment) | EXPECT_EQ(step.time_period, item.period) | ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), item.count) | EXPECT_DOUBLE_EQ(grid.Value().Time(item.count), item.period) | EXPECT_EQ(grid.Value().Delta(item.count), item.last) | ASSERT_TRUE(upper.HasValue()) | EXPECT_EQ(upper.Value().ThermalStep()->maximum_increments, 4294967295U) | ASSERT_TRUE(defaults.HasValue()) | EXPECT_EQ(defaults.Value().ThermalStep()->maximum_increments, 100U) | EXPECT_TRUE(MapText(deck).HasValue()) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(step.nominal_increment, item.increment) | EXPECT_EQ(step.time_period, item.period) | ASSERT_TRUE(grid.HasValue()) | EXPECT_EQ(grid.Value().Count(), item.count) | EXPECT_DOUBLE_EQ(grid.Value().Time(item.count), item.period) | EXPECT_EQ(grid.Value().Delta(item.count), item.last) | ASSERT_TRUE(upper.HasValue()) | EXPECT_EQ(upper.Value().ThermalStep()->maximum_increments, 4294967295U) | ASSERT_TRUE(defaults.HasValue()) | EXPECT_EQ(defaults.Value().ThermalStep()->maximum_increments, 100U) | EXPECT_TRUE(MapText(deck).HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsInvalidTimeAndMixedProceduresInEitherOrder ThermalDomainMapping.RejectsInvalidTimeAndMixedProceduresInEitherOrder; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsInvalidTimeAndMixedProceduresInEitherOrder 유지 원문 검사 body 및 assertion 동일. 5b1320ef7da28a420e69f4a16c2ee726c95f57abeeb08cb2f1b5442cead6914c 5b1320ef7da28a420e69f4a16c2ee726c95f57abeeb08cb2f1b5442cead6914c 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ThermalMaterialAndSourceProvenanceArePreserved ThermalDomainMapping.ThermalMaterialAndSourceProvenanceArePreserved; assertion 20개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ThermalMaterialAndSourceProvenanceArePreserved 유지 원문 검사 body 및 assertion 동일. a83d5e4753e50f897bd60b99b3825dd7ac3d14d1af14ed384a814d45662478b6 a83d5e4753e50f897bd60b99b3825dd7ac3d14d1af14ed384a814d45662478b6 "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalMaterials().Size(), 2U) | ASSERT_EQ(domain.ThermalSections().size(), 1U) | EXPECT_EQ(section.material_index, 1U) | EXPECT_EQ(section.name, ""E"") | EXPECT_EQ(section.source_id.source_label_text, ""E"") | EXPECT_EQ(section.location.file, input.Path()) | EXPECT_EQ(section.location.line, LineOf(deck, ""*Shell Section"")) | EXPECT_DOUBLE_EQ(section.thickness, .5) | EXPECT_EQ(material.Name(), ""M"") | EXPECT_DOUBLE_EQ(material.Conductivity(), 54.) | EXPECT_DOUBLE_EQ(material.Density(), 7850.) | EXPECT_DOUBLE_EQ(material.SpecificHeat(), 460.) | EXPECT_EQ(material.Location().line, LineOf(deck, ""*Material, name=M"")) | EXPECT_EQ(domain.ThermalElements()[0].SourceId().instance_name, ""I"") | EXPECT_EQ(domain.ThermalElements()[0].SourceId().source_label, 1) | EXPECT_EQ(domain.ThermalStep()->name, ""Heat"") | EXPECT_EQ(domain.ThermalStep()->location.file, input.Path()) | EXPECT_EQ(domain.ThermalStep()->location.line, LineOf(deck, ""*Step""))" "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ThermalMaterials().Size(), 2U) | ASSERT_EQ(domain.ThermalSections().size(), 1U) | EXPECT_EQ(section.material_index, 1U) | EXPECT_EQ(section.name, ""E"") | EXPECT_EQ(section.source_id.source_label_text, ""E"") | EXPECT_EQ(section.location.file, input.Path()) | EXPECT_EQ(section.location.line, LineOf(deck, ""*Shell Section"")) | EXPECT_DOUBLE_EQ(section.thickness, .5) | EXPECT_EQ(material.Name(), ""M"") | EXPECT_DOUBLE_EQ(material.Conductivity(), 54.) | EXPECT_DOUBLE_EQ(material.Density(), 7850.) | EXPECT_DOUBLE_EQ(material.SpecificHeat(), 460.) | EXPECT_EQ(material.Location().line, LineOf(deck, ""*Material, name=M"")) | EXPECT_EQ(domain.ThermalElements()[0].SourceId().instance_name, ""I"") | EXPECT_EQ(domain.ThermalElements()[0].SourceId().source_label, 1) | EXPECT_EQ(domain.ThermalStep()->name, ""Heat"") | EXPECT_EQ(domain.ThermalStep()->location.file, input.Path()) | EXPECT_EQ(domain.ThermalStep()->location.line, LineOf(deck, ""*Step""))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.FiniteThermalScalarsPreserveSubnormalAndSignedValues ThermalDomainMapping.FiniteThermalScalarsPreserveSubnormalAndSignedValues; assertion 9개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.FiniteThermalScalarsPreserveSubnormalAndSignedValues 유지 원문 검사 body 및 assertion 동일. 3a8d71661b54b80493cecf844c9354c0030c40b2616bd05a29aa13346381261d 3a8d71661b54b80493cecf844c9354c0030c40b2616bd05a29aa13346381261d ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.ThermalMaterials()[0].Conductivity(), tiny) | EXPECT_EQ(domain.ThermalMaterials()[0].Density(), tiny) | EXPECT_EQ(domain.ThermalMaterials()[0].SpecificHeat(), tiny) | EXPECT_EQ(domain.ThermalSections()[0].thickness, tiny) | EXPECT_EQ(domain.ThermalInitialConditions()[0].station_values[4], -tiny) | EXPECT_EQ(domain.ThermalStep()->Boundaries()[0].value, -tiny) | EXPECT_EQ(domain.ThermalStep()->Loads()[0].power, -tiny) | ASSERT_TRUE(result.HasValue()) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.ThermalMaterials()[0].Conductivity(), tiny) | EXPECT_EQ(domain.ThermalMaterials()[0].Density(), tiny) | EXPECT_EQ(domain.ThermalMaterials()[0].SpecificHeat(), tiny) | EXPECT_EQ(domain.ThermalSections()[0].thickness, tiny) | EXPECT_EQ(domain.ThermalInitialConditions()[0].station_values[4], -tiny) | EXPECT_EQ(domain.ThermalStep()->Boundaries()[0].value, -tiny) | EXPECT_EQ(domain.ThermalStep()->Loads()[0].power, -tiny) | ASSERT_TRUE(result.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ThermalSetAndSurfaceDuplicatesExpandOnce ThermalDomainMapping.ThermalSetAndSurfaceDuplicatesExpandOnce; assertion 5개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.ThermalSetAndSurfaceDuplicatesExpandOnce 유지 원문 검사 body 및 assertion 동일. 70f6a3c60352f7322e1271a4458f03823deec7ac49e85cd7ff385d20de9f3c30 70f6a3c60352f7322e1271a4458f03823deec7ac49e85cd7ff385d20de9f3c30 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().ThermalElements().Size(), 1U) | ASSERT_EQ(result.Value().ElementSurfaces().size(), 1U) | EXPECT_EQ(result.Value().ElementSurfaces()[0].facets.size(), 1U) | EXPECT_EQ(result.Value().Warnings().size(), 1U) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().ThermalElements().Size(), 1U) | ASSERT_EQ(result.Value().ElementSurfaces().size(), 1U) | EXPECT_EQ(result.Value().ElementSurfaces()[0].facets.size(), 1U) | EXPECT_EQ(result.Value().Warnings().size(), 1U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.DeferredFailuresRetainExactInputLocationAndIdentity ThermalDomainMapping.DeferredFailuresRetainExactInputLocationAndIdentity; assertion 9개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.DeferredFailuresRetainExactInputLocationAndIdentity 유지 원문 검사 body 및 assertion 동일. 01f444fd4378662acd9566174387017dd3939056ee5ec7901884183c67c6900a 01f444fd4378662acd9566174387017dd3939056ee5ec7901884183c67c6900a "ASSERT_TRUE(parsed.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(diagnostic.location.file, input.Path()) | EXPECT_EQ(diagnostic.location.line, LineOf(deck, ""1., 100."")) | EXPECT_EQ(diagnostic.keyword, ""HEAT TRANSFER"") | EXPECT_EQ(diagnostic.entity_identity, ""Heat"") | ASSERT_FALSE(missing_contact.HasValue()) | EXPECT_EQ(missing_contact.GetStatus().Diagnostics()[0].location.line, 1U) | EXPECT_EQ(missing_contact.GetStatus().Diagnostics()[0].keyword, ""PREPRINT"")" "ASSERT_TRUE(parsed.HasValue()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(diagnostic.location.file, input.Path()) | EXPECT_EQ(diagnostic.location.line, LineOf(deck, ""1., 100."")) | EXPECT_EQ(diagnostic.keyword, ""HEAT TRANSFER"") | EXPECT_EQ(diagnostic.entity_identity, ""Heat"") | ASSERT_FALSE(missing_contact.HasValue()) | EXPECT_EQ(missing_contact.GetStatus().Diagnostics()[0].location.line, 1U) | EXPECT_EQ(missing_contact.GetStatus().Diagnostics()[0].keyword, ""PREPRINT"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsMixedElementsAndWrongThermalMaterialScopes ThermalDomainMapping.RejectsMixedElementsAndWrongThermalMaterialScopes; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsMixedElementsAndWrongThermalMaterialScopes 유지 원문 검사 body 및 assertion 동일. ff984f852aeb3c53c270694ea7e4eaa2015891728d1e0a86260abf39206b5c92 ff984f852aeb3c53c270694ea7e4eaa2015891728d1e0a86260abf39206b5c92 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetResolvesSectionCaseInsensitively ThermalDomainMapping.InlineElementSetResolvesSectionCaseInsensitively; assertion 12개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetResolvesSectionCaseInsensitively 유지 원문 검사 body 및 assertion 동일. 11a43f66380de877c7ff381c789e0b363e357811dff150b5bd5e0b5d0fa75644 11a43f66380de877c7ff381c789e0b363e357811dff150b5bd5e0b5d0fa75644 "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ElementSets().size(), 1U) | EXPECT_EQ(set.name, ""inlineShells"") | EXPECT_EQ(set.instance_name, ""I"") | EXPECT_EQ(set.element_indices, std::vector{0U}) | EXPECT_EQ(set.location.file, input.Path()) | EXPECT_EQ(set.location.line, LineOf(deck, ""*Element"")) | ASSERT_EQ(domain.ThermalElements().Size(), 1U) | EXPECT_EQ(domain.ThermalElements()[0].ThermalSectionIndex(), 0U) | EXPECT_EQ(domain.ThermalSections()[0].name, ""INLINESHELLS"") | EXPECT_EQ(domain.ThermalSections()[0].location.line, LineOf(deck, ""*Shell Section""))" "ASSERT_TRUE(parsed.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ElementSets().size(), 1U) | EXPECT_EQ(set.name, ""inlineShells"") | EXPECT_EQ(set.instance_name, ""I"") | EXPECT_EQ(set.element_indices, std::vector{0U}) | EXPECT_EQ(set.location.file, input.Path()) | EXPECT_EQ(set.location.line, LineOf(deck, ""*Element"")) | ASSERT_EQ(domain.ThermalElements().Size(), 1U) | EXPECT_EQ(domain.ThermalElements()[0].ThermalSectionIndex(), 0U) | EXPECT_EQ(domain.ThermalSections()[0].name, ""INLINESHELLS"") | EXPECT_EQ(domain.ThermalSections()[0].location.line, LineOf(deck, ""*Shell Section""))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetPreservesElementRowOrder ThermalDomainMapping.InlineElementSetPreservesElementRowOrder; assertion 8개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetPreservesElementRowOrder 유지 원문 검사 body 및 assertion 동일. 3f5d500fe86f7405086319ff4905bc60894fb8d080af74f6df1f3c7a3b4aa299 3f5d500fe86f7405086319ff4905bc60894fb8d080af74f6df1f3c7a3b4aa299 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ElementSets().size(), 1U) | ASSERT_EQ(domain.ElementSets()[0].element_indices.size(), 2U) | EXPECT_EQ(domain.ElementSets()[0].element_indices, (std::vector{0U, 1U})) | EXPECT_EQ(domain.ThermalElements()[0].SourceId().source_label, 7) | EXPECT_EQ(domain.ThermalElements()[1].SourceId().source_label, 3) | EXPECT_EQ(domain.ThermalElements()[0].ThermalSectionIndex(), 0U) | EXPECT_EQ(domain.ThermalElements()[1].ThermalSectionIndex(), 0U) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ElementSets().size(), 1U) | ASSERT_EQ(domain.ElementSets()[0].element_indices.size(), 2U) | EXPECT_EQ(domain.ElementSets()[0].element_indices, (std::vector{0U, 1U})) | EXPECT_EQ(domain.ThermalElements()[0].SourceId().source_label, 7) | EXPECT_EQ(domain.ThermalElements()[1].SourceId().source_label, 3) | EXPECT_EQ(domain.ThermalElements()[0].ThermalSectionIndex(), 0U) | EXPECT_EQ(domain.ThermalElements()[1].ThermalSectionIndex(), 0U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetRejectsInvalidAndDuplicateDefinitions ThermalDomainMapping.InlineElementSetRejectsInvalidAndDuplicateDefinitions; assertion 3개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.InlineElementSetRejectsInvalidAndDuplicateDefinitions 유지 원문 검사 body 및 assertion 동일. 2b667a74ce81cfa3de66ebbe8049794f9416f01506fae6df68dc3d3e97ea91d1 2b667a74ce81cfa3de66ebbe8049794f9416f01506fae6df68dc3d3e97ea91d1 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""ELEMENT"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, LineOf(deck, ""*Element""))" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""ELEMENT"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, LineOf(deck, ""*Element""))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsBeamSectionAndBeamOnlyChildrenAtTheirSource ThermalDomainMapping.RejectsBeamSectionAndBeamOnlyChildrenAtTheirSource; assertion 3개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsBeamSectionAndBeamOnlyChildrenAtTheirSource 유지 원문 검사 body 및 assertion 동일. d2f88d94560f7a9f695eebc3563b633cb0e076be17328f2fbc56c6793fb58c22 d2f88d94560f7a9f695eebc3563b633cb0e076be17328f2fbc56c6793fb58c22 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""BEAM GENERAL SECTION"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, LineOf(deck, ""*Beam General Section""))" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].keyword, ""BEAM GENERAL SECTION"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, LineOf(deck, ""*Beam General Section""))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsMalformedDs4ConnectivityAndElementOptions ThermalDomainMapping.RejectsMalformedDs4ConnectivityAndElementOptions; assertion 0개 tests/unit/io/abaqus/thermal_domain_test.cpp ThermalDomainMapping.RejectsMalformedDs4ConnectivityAndElementOptions 유지 원문 검사 body 및 assertion 동일. efab1ebde5819473f0bd8e7adcbdc08d2be96827dca23ef798d1a485c709d008 efab1ebde5819473f0bd8e7adcbdc08d2be96827dca23ef798d1a485c709d008 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp support@1-146 helper/oracle/fixture/include/static assertion 구간: TemporaryInput, MapText, ThermalDeck, Replace, LineOf, ExpectRejected, Number tests/unit/io/abaqus/thermal_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9791c2574febe33443dffbd2e64441a7c8c962fccb165f678b39cc7d550b2a3e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/abaqus/thermal_domain_test.cpp support@1049-1050 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/abaqus/thermal_domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 55a2e65c40382b393210d36625666ce014008eaf3cbfbe9610a6dfaf0f840d11 55a2e65c40382b393210d36625666ce014008eaf3cbfbe9610a6dfaf0f840d11 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.RejectsDefaultStateBeforeCreatingOutput DynamicHdf5ResultsWriter.RejectsDefaultStateBeforeCreatingOutput; assertion 5개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.RejectsDefaultStateBeforeCreatingOutput 유지 원문 검사 body 및 assertion 동일. 2b67a7e7a070056ecb65aa9297b70593d65c453c4475315d2cff3fe0018e5846 2b67a7e7a070056ecb65aa9297b70593d65c453c4475315d2cff3fe0018e5846 "ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-output-schema"") | EXPECT_FALSE(std::filesystem::exists(output.Path()))" "ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(status.IsOk()) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""dynamic-output-schema"") | EXPECT_FALSE(std::filesystem::exists(output.Path()))" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.SeparatesReducedFilterCombinationFromLegacyDriver DynamicHdf5ResultsWriter.SeparatesReducedFilterCombinationFromLegacyDriver; assertion 8개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.SeparatesReducedFilterCombinationFromLegacyDriver 유지 원문 검사 body 및 assertion 동일. 6e1f7161506bb30dec1b6476fb08a144bf4ad5451198473973be60597f2e2740 6e1f7161506bb30dec1b6476fb08a144bf4ad5451198473973be60597f2e2740 "ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE(writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(ReadAttribute(metadata.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 2U) | EXPECT_EQ(ReadString(metadata.Get(), ""time_integration_formulation""), ""reduced-coordinate-HHT-with-physical-rate-reconstruction"") | EXPECT_EQ(ReadAttribute(auxiliary.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 2U) | EXPECT_EQ(ReadString(auxiliary.Get(), ""quantity_semantics""), ""full-chart-HHT-filter-combination-not-predictor-driver"") | EXPECT_EQ(ReadString(physical.Get(), ""quantity_semantics""), ""physical-endpoint-chart-acceleration"")" "ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE(writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(ReadAttribute(metadata.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 2U) | EXPECT_EQ(ReadString(metadata.Get(), ""time_integration_formulation""), ""reduced-coordinate-HHT-with-physical-rate-reconstruction"") | EXPECT_EQ(ReadAttribute(auxiliary.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 2U) | EXPECT_EQ(ReadString(auxiliary.Get(), ""quantity_semantics""), ""full-chart-HHT-filter-combination-not-predictor-driver"") | EXPECT_EQ(ReadString(physical.Get(), ""quantity_semantics""), ""physical-endpoint-chart-acceleration"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.WritesCompletePhysicalClampedHistoryAndSchema DynamicHdf5ResultsWriter.WritesCompletePhysicalClampedHistoryAndSchema; assertion 42개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.WritesCompletePhysicalClampedHistoryAndSchema 유지 원문 검사 body 및 assertion 동일. 15b4e67c491410f17a9b661b200e35a71e79de2db81b9007d037a8d82986bb60 15b4e67c491410f17a9b661b200e35a71e79de2db81b9007d037a8d82986bb60 "ASSERT_TRUE(status.IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(ReadString(metadata.Get(), ""feature_id""), ""hht-implicit-dynamics"") | EXPECT_EQ(ReadString(metadata.Get(), ""analysis_procedure""), ""hht-implicit-dynamics"") | EXPECT_EQ(ReadString(metadata.Get(), ""source_step_name""), ""Transient Load"") | EXPECT_EQ(ReadString(metadata.Get(), ""mass_formulation""), ""nodal-lumped-kinetic"") | EXPECT_EQ(ReadString(metadata.Get(), ""acceleration_convention""), ""physical-endpoint-and-auxiliary-separated"") | EXPECT_EQ(ReadString(metadata.Get(), ""initial_state""), ""zero-q-v-step-load-0+"") | EXPECT_EQ(ReadString(metadata.Get(), ""unit_system_label""), ""consistent-input-units"") | EXPECT_EQ(ReadAttribute(metadata.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 1U) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""alpha"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), -0.05) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""beta"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), 0.275625) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""gamma"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), 0.55) | ASSERT_GE(H5Dread(density.Get(), density_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &density_row), 0) | EXPECT_EQ(density_row.id, 0U) | EXPECT_DOUBLE_EQ(density_row.rho, 2.0) | EXPECT_GT(H5Tequal(mask_type.Get(), H5T_STD_U8LE), 0) | ASSERT_GE(H5Dread(mask.Get(), H5T_NATIVE_UINT8, H5S_ALL, H5S_ALL, H5P_DEFAULT, constraints.data()), 0) | EXPECT_EQ(value, 1U) | EXPECT_EQ(ReadDoubles(file.Get(), ""/model/prescribed_displacement"", {4U, 6U}), std::vector(24U, 0.0)) | EXPECT_EQ(H5Lexists(file.Get(), ""/model/prescribed_displacement_start"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/model/prescribed_displacement_target"", H5P_DEFAULT), 0) | EXPECT_EQ(ReadString(dataset.Get(), ""component_names""), expected.components) | EXPECT_FALSE( ReadString(dataset.Get(), ""component_unit_dimensions"").empty()) | EXPECT_FALSE(ReadString(dataset.Get(), ""coordinate_system"").empty()) | EXPECT_FALSE(ReadString(dataset.Get(), ""location"").empty()) | EXPECT_EQ(ReadString(dataset.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadString(dataset.Get(), ""source_step_name""), ""Transient Load"") | EXPECT_EQ(ReadAttribute(dataset.Get(), ""frame_index"", H5T_STD_U64LE, H5T_NATIVE_UINT64), index) | EXPECT_EQ(ReadAttribute(dataset.Get(), ""increment_index"", H5T_STD_U64LE, H5T_NATIVE_UINT64), index) | EXPECT_EQ(ReadAttribute(dataset.Get(), ""is_initial"", H5T_STD_U8LE, H5T_NATIVE_UINT8), index == 0U ? 1U : 0U) | EXPECT_DOUBLE_EQ(ReadAttribute(dataset.Get(), ""time"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), static_cast(index) * 0.25) | EXPECT_EQ(H5Aexists(dataset.Get(), ""load_factor""), 0) | EXPECT_DOUBLE_EQ( values[entry], entry % 9U == 0U || entry % 9U == 4U || entry % 9U == 8U ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ(values[entry], entry % 3U == 2U ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ( values[entry], force ? (leaf == ""nodal/generalized_external_force"" ? 4.0 : -4.0) : 0.0) | EXPECT_EQ(ReadString(stress.Get(), ""source_element_type_dataset""), ""/model/elements.source_element_type"") | EXPECT_EQ(ReadString(stress.Get(), ""midsurface_location_dataset""), ""/model/shell/midsurface_locations"") | EXPECT_EQ(ReadString(stress.Get(), ""section_position_dataset""), ""/model/shell/section_positions"") | EXPECT_EQ(ReadString(stress.Get(), ""local_frame_dataset""), ""/steps/Step-1/frames/2/element/shell/local_frame"") | EXPECT_GE(H5Tget_member_index(diagnostic_type.Get(), ""source_file""), 0) | EXPECT_GE(H5Tget_member_index(diagnostic_type.Get(), ""source_line""), 0)" "ASSERT_TRUE(status.IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(ReadString(metadata.Get(), ""feature_id""), ""hht-implicit-dynamics"") | EXPECT_EQ(ReadString(metadata.Get(), ""analysis_procedure""), ""hht-implicit-dynamics"") | EXPECT_EQ(ReadString(metadata.Get(), ""source_step_name""), ""Transient Load"") | EXPECT_EQ(ReadString(metadata.Get(), ""mass_formulation""), ""nodal-lumped-kinetic"") | EXPECT_EQ(ReadString(metadata.Get(), ""acceleration_convention""), ""physical-endpoint-and-auxiliary-separated"") | EXPECT_EQ(ReadString(metadata.Get(), ""initial_state""), ""zero-q-v-step-load-0+"") | EXPECT_EQ(ReadString(metadata.Get(), ""unit_system_label""), ""consistent-input-units"") | EXPECT_EQ(ReadAttribute(metadata.Get(), ""schema_version"", H5T_STD_U64LE, H5T_NATIVE_UINT64), 1U) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""alpha"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), -0.05) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""beta"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), 0.275625) | EXPECT_DOUBLE_EQ(ReadAttribute(metadata.Get(), ""gamma"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), 0.55) | ASSERT_GE(H5Dread(density.Get(), density_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &density_row), 0) | EXPECT_EQ(density_row.id, 0U) | EXPECT_DOUBLE_EQ(density_row.rho, 2.0) | EXPECT_GT(H5Tequal(mask_type.Get(), H5T_STD_U8LE), 0) | ASSERT_GE(H5Dread(mask.Get(), H5T_NATIVE_UINT8, H5S_ALL, H5S_ALL, H5P_DEFAULT, constraints.data()), 0) | EXPECT_EQ(value, 1U) | EXPECT_EQ(ReadDoubles(file.Get(), ""/model/prescribed_displacement"", {4U, 6U}), std::vector(24U, 0.0)) | EXPECT_EQ(H5Lexists(file.Get(), ""/model/prescribed_displacement_start"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/model/prescribed_displacement_target"", H5P_DEFAULT), 0) | EXPECT_EQ(ReadString(dataset.Get(), ""component_names""), expected.components) | EXPECT_FALSE( ReadString(dataset.Get(), ""component_unit_dimensions"").empty()) | EXPECT_FALSE(ReadString(dataset.Get(), ""coordinate_system"").empty()) | EXPECT_FALSE(ReadString(dataset.Get(), ""location"").empty()) | EXPECT_EQ(ReadString(dataset.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadString(dataset.Get(), ""source_step_name""), ""Transient Load"") | EXPECT_EQ(ReadAttribute(dataset.Get(), ""frame_index"", H5T_STD_U64LE, H5T_NATIVE_UINT64), index) | EXPECT_EQ(ReadAttribute(dataset.Get(), ""increment_index"", H5T_STD_U64LE, H5T_NATIVE_UINT64), index) | EXPECT_EQ(ReadAttribute(dataset.Get(), ""is_initial"", H5T_STD_U8LE, H5T_NATIVE_UINT8), index == 0U ? 1U : 0U) | EXPECT_DOUBLE_EQ(ReadAttribute(dataset.Get(), ""time"", H5T_IEEE_F64LE, H5T_NATIVE_DOUBLE), static_cast(index) * 0.25) | EXPECT_EQ(H5Aexists(dataset.Get(), ""load_factor""), 0) | EXPECT_DOUBLE_EQ( values[entry], entry % 9U == 0U || entry % 9U == 4U || entry % 9U == 8U ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ(values[entry], entry % 3U == 2U ? 1.0 : 0.0) | EXPECT_DOUBLE_EQ( values[entry], force ? (leaf == ""nodal/generalized_external_force"" ? 4.0 : -4.0) : 0.0) | EXPECT_EQ(ReadString(stress.Get(), ""source_element_type_dataset""), ""/model/elements.source_element_type"") | EXPECT_EQ(ReadString(stress.Get(), ""midsurface_location_dataset""), ""/model/shell/midsurface_locations"") | EXPECT_EQ(ReadString(stress.Get(), ""section_position_dataset""), ""/model/shell/section_positions"") | EXPECT_EQ(ReadString(stress.Get(), ""local_frame_dataset""), ""/steps/Step-1/frames/2/element/shell/local_frame"") | EXPECT_GE(H5Tget_member_index(diagnostic_type.Get(), ""source_file""), 0) | EXPECT_GE(H5Tget_member_index(diagnostic_type.Get(), ""source_line""), 0)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.PreservesSeparateSuppliedEndpointAndAuxiliaryEvidence DynamicHdf5ResultsWriter.PreservesSeparateSuppliedEndpointAndAuxiliaryEvidence; assertion 9개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.PreservesSeparateSuppliedEndpointAndAuxiliaryEvidence 유지 원문 검사 body 및 assertion 동일. 0e68645100a4807b87bd6d9a6dba22f0cdbdb588a65f032dfe2eac6c0c11487d 0e68645100a4807b87bd6d9a6dba22f0cdbdb588a65f032dfe2eac6c0c11487d "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/acceleration"", {4U, 6U})[0U], 2.0) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/algorithmic_acceleration"", {4U, 6U})[0U], 3.0) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/generalized_inertia_force"", {4U, 6U})[0U], 5.0) | EXPECT_EQ(ReadDoubles(file.Get(), root + ""global/energy"", {5U}), (std::vector{6.0, 7.0, 8.0, 9.0, 12.0})) | EXPECT_EQ(ReadString(acceleration.Get(), ""rotation_representation""), ""total-rotation-vector-chart"") | EXPECT_EQ(ReadString(acceleration.Get(), ""quantity_semantics""), ""physical-endpoint-chart-acceleration"")" "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/acceleration"", {4U, 6U})[0U], 2.0) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/algorithmic_acceleration"", {4U, 6U})[0U], 3.0) | EXPECT_DOUBLE_EQ( ReadDoubles(file.Get(), root + ""nodal/generalized_inertia_force"", {4U, 6U})[0U], 5.0) | EXPECT_EQ(ReadDoubles(file.Get(), root + ""global/energy"", {5U}), (std::vector{6.0, 7.0, 8.0, 9.0, 12.0})) | EXPECT_EQ(ReadString(acceleration.Get(), ""rotation_representation""), ""total-rotation-vector-chart"") | EXPECT_EQ(ReadString(acceleration.Get(), ""quantity_semantics""), ""physical-endpoint-chart-acceleration"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.ConvertsPartialConstraintMomentToSpatialReaction DynamicHdf5ResultsWriter.ConvertsPartialConstraintMomentToSpatialReaction; assertion 9개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.ConvertsPartialConstraintMomentToSpatialReaction 유지 원문 검사 body 및 assertion 동일. f825bce2933be89196cd7c0291501abd4ead25e31d9986f7762c497e92748702 f825bce2933be89196cd7c0291501abd4ead25e31d9986f7762c497e92748702 ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_DOUBLE_EQ(generalized[3U], 5.0) | EXPECT_DOUBLE_EQ(generalized[4U], 0.0) | EXPECT_DOUBLE_EQ(generalized[5U], 0.0) | EXPECT_NEAR(spatial[3U], 5.0 * (1.0 - coefficient * 0.13), 1.0e-14) | EXPECT_NEAR(spatial[4U], 0.75, 1.0e-14) | EXPECT_NEAR(spatial[5U], -0.5, 1.0e-14) ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | ASSERT_TRUE(fixture.state.CommitAcceptedFrame(frame).IsOk()) | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_DOUBLE_EQ(generalized[3U], 5.0) | EXPECT_DOUBLE_EQ(generalized[4U], 0.0) | EXPECT_DOUBLE_EQ(generalized[5U], 0.0) | EXPECT_NEAR(spatial[3U], 5.0 * (1.0 - coefficient * 0.13), 1.0e-14) | EXPECT_NEAR(spatial[4U], 0.75, 1.0e-14) | EXPECT_NEAR(spatial[5U], -0.5, 1.0e-14) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.IncompleteOrMismatchedHistoryPreservesExistingFile DynamicHdf5ResultsWriter.IncompleteOrMismatchedHistoryPreservesExistingFile; assertion 9개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.IncompleteOrMismatchedHistoryPreservesExistingFile 유지 원문 검사 body 및 assertion 동일. ad2c45f94851936a7e87cfed7a14d272db0b75733b9f719eb64af3ce2b90d231 ad2c45f94851936a7e87cfed7a14d272db0b75733b9f719eb64af3ce2b90d231 "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), ""previous-result"") | ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, index)) .IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *other.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), ""previous-result"") | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), valid_bytes)" "ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, 0U)).IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), ""previous-result"") | ASSERT_TRUE( fixture.state.CommitAcceptedFrame(MakeFrame(*fixture.domain, index)) .IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *other.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), ""previous-result"") | ASSERT_TRUE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_FALSE( writer.Write(output.Path(), *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(ReadBytes(output.Path()), valid_bytes)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.FailedAtomicReplacementPreservesPreviousBytes DynamicHdf5ResultsWriter.FailedAtomicReplacementPreservesPreviousBytes; assertion 6개 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp DynamicHdf5ResultsWriter.FailedAtomicReplacementPreservesPreviousBytes 유지 원문 검사 body 및 assertion 동일. d850c859b3d1569738581059ef0ee47cc054602b036a96ec36581c643c103909 d850c859b3d1569738581059ef0ee47cc054602b036a96ec36581c643c103909 "ASSERT_NE(locked, INVALID_HANDLE_VALUE) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(CloseHandle(locked)) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""hdf5-finalization-failure"") | EXPECT_EQ(ReadBytes(output.Path()), ""locked-previous-result"")" "ASSERT_NE(locked, INVALID_HANDLE_VALUE) | EXPECT_FALSE(status.IsOk()) | EXPECT_TRUE(CloseHandle(locked)) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""hdf5-finalization-failure"") | EXPECT_EQ(ReadBytes(output.Path()), ""locked-previous-result"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp support@1-254 helper/oracle/fixture/include/static assertion 구간: MakeDefinition, if, Fixture, MakeFixture, MakeFrame, TempFile, Path, CommitHistory, ReadBytes, ReadString, ReadAttribute, ReadDoubles, ExpectCompound tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 703c272cdd720ce3a45edcd79bbc0fc04178d27f236c2b72c3fea95c54ceaf1e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp support@671-672 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/dynamic_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 1개 tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 249f07429c5bb0dd50db784f6be559e15db7c705baa3db44e0591c9c7914d9e3 249f07429c5bb0dd50db784f6be559e15db7c705baa3db44e0591c9c7914d9e3 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp EigenHdf5ResultsWriter.WritesModalSchemaAndRejectsTamperedState EigenHdf5ResultsWriter.WritesModalSchemaAndRejectsTamperedState; assertion 27개 tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp EigenHdf5ResultsWriter.WritesModalSchemaAndRejectsTamperedState 유지 원문 검사 body 및 assertion 동일. 8ff5899d7d3dd0584e34a8b619ece2228a6520e3fee41e10e038d73c57656e93 8ff5899d7d3dd0584e34a8b619ece2228a6520e3fee41e10e038d73c57656e93 "ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(execution.HasValue()) | ASSERT_TRUE(writer.Write(path, domain, state, {}).IsOk()) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/modes"", H5P_DEFAULT), 0) | ASSERT_GE(controls, 0) | ASSERT_GE(H5Dread(controls, H5T_NATIVE_INT64, H5S_ALL, H5S_ALL, H5P_DEFAULT, stored_controls.data()), 0) | EXPECT_EQ(stored_controls[5U], 0) | EXPECT_GE(H5Dclose(controls), 0) | EXPECT_GE(H5Fclose(file), 0) | EXPECT_FALSE(writer.Write(path, domain, candidate, {}).IsOk()) | EXPECT_TRUE(retained == original) | ASSERT_NE(lock, INVALID_HANDLE_VALUE) | EXPECT_NE(CloseHandle(lock), 0) | ASSERT_FALSE(locked_write.IsOk()) | ASSERT_FALSE(locked_write.Diagnostics().empty()) | EXPECT_EQ(locked_write.Diagnostics()[0].code, ""hdf5-finalization-failure"") | EXPECT_EQ(after_failure, original) | ASSERT_TRUE( fesa::hdf5_internal::SelfCheckEigenFile(path, domain, state, {}).IsOk()) | ASSERT_GE(corrupt_file, 0) | ASSERT_GE(nodes, 0) | ASSERT_GE(H5Tinsert(id_type, ""internal_node_id"", 0U, H5T_NATIVE_UINT64), 0) | ASSERT_GE(H5Dwrite(nodes, id_type, H5S_ALL, H5S_ALL, H5P_DEFAULT, duplicate_ids.data()), 0) | EXPECT_GE(H5Tclose(id_type), 0) | EXPECT_GE(H5Dclose(nodes), 0) | EXPECT_GE(H5Fclose(corrupt_file), 0) | EXPECT_FALSE( fesa::hdf5_internal::SelfCheckEigenFile(path, domain, state, {}).IsOk())" "ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(execution.HasValue()) | ASSERT_TRUE(writer.Write(path, domain, state, {}).IsOk()) | ASSERT_GE(file, 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/eigen/modes"", H5P_DEFAULT), 0) | ASSERT_GE(controls, 0) | ASSERT_GE(H5Dread(controls, H5T_NATIVE_INT64, H5S_ALL, H5S_ALL, H5P_DEFAULT, stored_controls.data()), 0) | EXPECT_EQ(stored_controls[5U], 0) | EXPECT_GE(H5Dclose(controls), 0) | EXPECT_GE(H5Fclose(file), 0) | EXPECT_FALSE(writer.Write(path, domain, candidate, {}).IsOk()) | EXPECT_TRUE(retained == original) | ASSERT_NE(lock, INVALID_HANDLE_VALUE) | EXPECT_NE(CloseHandle(lock), 0) | ASSERT_FALSE(locked_write.IsOk()) | ASSERT_FALSE(locked_write.Diagnostics().empty()) | EXPECT_EQ(locked_write.Diagnostics()[0].code, ""hdf5-finalization-failure"") | EXPECT_EQ(after_failure, original) | ASSERT_TRUE( fesa::hdf5_internal::SelfCheckEigenFile(path, domain, state, {}).IsOk()) | ASSERT_GE(corrupt_file, 0) | ASSERT_GE(nodes, 0) | ASSERT_GE(H5Tinsert(id_type, ""internal_node_id"", 0U, H5T_NATIVE_UINT64), 0) | ASSERT_GE(H5Dwrite(nodes, id_type, H5S_ALL, H5S_ALL, H5P_DEFAULT, duplicate_ids.data()), 0) | EXPECT_GE(H5Tclose(id_type), 0) | EXPECT_GE(H5Dclose(nodes), 0) | EXPECT_GE(H5Fclose(corrupt_file), 0) | EXPECT_FALSE( fesa::hdf5_internal::SelfCheckEigenFile(path, domain, state, {}).IsOk())" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp support@1-66 helper/oracle/fixture/include/static assertion 구간: Definition tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b3554f56791ac66395cfa9a19281f09965b9ad9dbf29a3e9976828778334b35b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp support@154-155 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/eigen_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 10개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. dd680025af1f1e85cfd08e97d2dad7db8c857238d3b73cb23d824690670f58c3 dd680025af1f1e85cfd08e97d2dad7db8c857238d3b73cb23d824690670f58c3 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactSchemaShapesAttributesAndIdentity Hdf5ResultsWriter.WritesExactSchemaShapesAttributesAndIdentity; assertion 60개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactSchemaShapesAttributesAndIdentity 유지 원문 검사 body 및 assertion 동일. 8da4eeff5bd49a698da035e0516b426d30471db8c183ee6c78329f2a02879880 8da4eeff5bd49a698da035e0516b426d30471db8c183ee6c78329f2a02879880 "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | EXPECT_GT(H5Lexists(file.Get(), path, H5P_DEFAULT), 0) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""linear-static-3d-euler-beam"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""solver_version""), std::string{fesa::SolverVersion()}) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""source_input_identity""), ""path="" + normalized_source + "";content_identity=fnv1a64:0123456789abcdef"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""unit_system_label""), ""user-consistent-unspecified"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""coordinate_convention""), ""global-cartesian; beam-local=(t,n1,t-cross-n1)"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""element_formulation""), ""B33-3D-Euler-Bernoulli"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""frame_index""), 0U) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/nodes""), std::vector({2U})) | EXPECT_EQ(ReadStringAttribute(nodes_dataset.Get(), ""coordinate_system""), ""global-cartesian"") | EXPECT_EQ(ReadStringAttribute(nodes_dataset.Get(), ""units_label""), ""length"") | ASSERT_EQ(nodes.size(), 2U) | EXPECT_EQ(nodes[0U].internal_node_id, 0U) | EXPECT_STREQ(nodes[0U].instance_name, u8""Beam-\u03b1"") | EXPECT_STREQ(nodes[0U].source_label, ""101"") | EXPECT_DOUBLE_EQ(nodes[1U].coordinates[0U], 3.0) | EXPECT_DOUBLE_EQ(nodes[1U].coordinates[1U], 4.0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/elements""), std::vector({1U})) | EXPECT_EQ(ReadStringAttribute(elements_dataset.Get(), ""formulation""), ""B33-3D-Euler-Bernoulli"") | ASSERT_EQ(displacement.size(), 12U) | EXPECT_DOUBLE_EQ(displacement.front(), 0.25) | EXPECT_DOUBLE_EQ(displacement.back(), 11.25) | ASSERT_EQ(reaction.size(), 12U) | EXPECT_DOUBLE_EQ(reaction.front(), 100.0) | EXPECT_DOUBLE_EQ(reaction.back(), 111.0) | ASSERT_EQ(end_force.size(), 12U) | EXPECT_DOUBLE_EQ(end_force.front(), 1.0) | EXPECT_DOUBLE_EQ(end_force.back(), 12.0) | ASSERT_EQ(section_resultant.size(), 8U) | EXPECT_DOUBLE_EQ(section_resultant.front(), 11.0) | EXPECT_DOUBLE_EQ(section_resultant.back(), 18.0) | ASSERT_EQ(generalized_strain.size(), 8U) | EXPECT_DOUBLE_EQ(generalized_strain.front(), 0.01) | EXPECT_DOUBLE_EQ(generalized_strain.back(), 0.08) | ASSERT_EQ(generalized_resultant.size(), 8U) | EXPECT_DOUBLE_EQ(generalized_resultant.front(), 21.0) | EXPECT_DOUBLE_EQ(generalized_resultant.back(), 28.0) | EXPECT_EQ(DatasetDimensions(file.Get(), stress_path), std::vector({4U})) | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""component_names""), ""S11"") | EXPECT_EQ( ReadStringAttribute(stress_dataset.Get(), ""component_unit_dimensions""), ""force/length^2"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""coordinate_system""), ""beam-local"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""location""), ""section-point"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadUint64Attribute(stress_dataset.Get(), ""frame_index""), 0U) | ASSERT_EQ(stress_rows.size(), 4U) | EXPECT_EQ(stress_rows[0U].internal_element_id, 0U) | EXPECT_EQ(stress_rows[0U].gauss_point_index, 1U) | EXPECT_EQ(stress_rows[0U].section_point_index, 1U) | EXPECT_DOUBLE_EQ(stress_rows[0U].x1, -0.1) | EXPECT_DOUBLE_EQ(stress_rows[0U].x2, 0.2) | EXPECT_STREQ(stress_rows[0U].source, ""input"") | EXPECT_DOUBLE_EQ(stress_rows[3U].s11, 34.0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({0U})) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/0/element/transverse_shear_stress"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0)" "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0) | EXPECT_GT(H5Lexists(file.Get(), path, H5P_DEFAULT), 0) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""linear-static-3d-euler-beam"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""solver_version""), std::string{fesa::SolverVersion()}) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""source_input_identity""), ""path="" + normalized_source + "";content_identity=fnv1a64:0123456789abcdef"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""unit_system_label""), ""user-consistent-unspecified"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""coordinate_convention""), ""global-cartesian; beam-local=(t,n1,t-cross-n1)"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""element_formulation""), ""B33-3D-Euler-Bernoulli"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""frame_index""), 0U) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/nodes""), std::vector({2U})) | EXPECT_EQ(ReadStringAttribute(nodes_dataset.Get(), ""coordinate_system""), ""global-cartesian"") | EXPECT_EQ(ReadStringAttribute(nodes_dataset.Get(), ""units_label""), ""length"") | ASSERT_EQ(nodes.size(), 2U) | EXPECT_EQ(nodes[0U].internal_node_id, 0U) | EXPECT_STREQ(nodes[0U].instance_name, u8""Beam-\u03b1"") | EXPECT_STREQ(nodes[0U].source_label, ""101"") | EXPECT_DOUBLE_EQ(nodes[1U].coordinates[0U], 3.0) | EXPECT_DOUBLE_EQ(nodes[1U].coordinates[1U], 4.0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/elements""), std::vector({1U})) | EXPECT_EQ(ReadStringAttribute(elements_dataset.Get(), ""formulation""), ""B33-3D-Euler-Bernoulli"") | ASSERT_EQ(displacement.size(), 12U) | EXPECT_DOUBLE_EQ(displacement.front(), 0.25) | EXPECT_DOUBLE_EQ(displacement.back(), 11.25) | ASSERT_EQ(reaction.size(), 12U) | EXPECT_DOUBLE_EQ(reaction.front(), 100.0) | EXPECT_DOUBLE_EQ(reaction.back(), 111.0) | ASSERT_EQ(end_force.size(), 12U) | EXPECT_DOUBLE_EQ(end_force.front(), 1.0) | EXPECT_DOUBLE_EQ(end_force.back(), 12.0) | ASSERT_EQ(section_resultant.size(), 8U) | EXPECT_DOUBLE_EQ(section_resultant.front(), 11.0) | EXPECT_DOUBLE_EQ(section_resultant.back(), 18.0) | ASSERT_EQ(generalized_strain.size(), 8U) | EXPECT_DOUBLE_EQ(generalized_strain.front(), 0.01) | EXPECT_DOUBLE_EQ(generalized_strain.back(), 0.08) | ASSERT_EQ(generalized_resultant.size(), 8U) | EXPECT_DOUBLE_EQ(generalized_resultant.front(), 21.0) | EXPECT_DOUBLE_EQ(generalized_resultant.back(), 28.0) | EXPECT_EQ(DatasetDimensions(file.Get(), stress_path), std::vector({4U})) | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""component_names""), ""S11"") | EXPECT_EQ( ReadStringAttribute(stress_dataset.Get(), ""component_unit_dimensions""), ""force/length^2"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""coordinate_system""), ""beam-local"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""location""), ""section-point"") | EXPECT_EQ(ReadStringAttribute(stress_dataset.Get(), ""step_name""), ""Step-1"") | EXPECT_EQ(ReadUint64Attribute(stress_dataset.Get(), ""frame_index""), 0U) | ASSERT_EQ(stress_rows.size(), 4U) | EXPECT_EQ(stress_rows[0U].internal_element_id, 0U) | EXPECT_EQ(stress_rows[0U].gauss_point_index, 1U) | EXPECT_EQ(stress_rows[0U].section_point_index, 1U) | EXPECT_DOUBLE_EQ(stress_rows[0U].x1, -0.1) | EXPECT_DOUBLE_EQ(stress_rows[0U].x2, 0.2) | EXPECT_STREQ(stress_rows[0U].source, ""input"") | EXPECT_DOUBLE_EQ(stress_rows[3U].s11, 34.0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({0U})) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/0/element/transverse_shear_stress"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/0/surface_pressure"", H5P_DEFAULT), 0)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesMandatoryOutputsDespiteOutputRequests Hdf5ResultsWriter.WritesMandatoryOutputsDespiteOutputRequests; assertion 3개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesMandatoryOutputsDespiteOutputRequests 유지 원문 검사 body 및 assertion 동일. cd64b9e679f90b6dc4e5be4798c43fa4c11a4fb720cb281b1fe45e0207702f39 cd64b9e679f90b6dc4e5be4798c43fa4c11a4fb720cb281b1fe45e0207702f39 "ASSERT_TRUE( writer.Write(output, *fixture.domain, *fixture.state, {ignored_request}) .IsOk()) | EXPECT_GT(H5Lexists(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({1U}))" "ASSERT_TRUE( writer.Write(output, *fixture.domain, *fixture.state, {ignored_request}) .IsOk()) | EXPECT_GT(H5Lexists(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({1U}))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesWarningsAndDefaultCentroid Hdf5ResultsWriter.WritesWarningsAndDefaultCentroid; assertion 18개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesWarningsAndDefaultCentroid 유지 원문 검사 body 및 assertion 동일. cab1bac6c24b113ae4bf36c8870f5e9ed01bccb51403e05830a7287e63b2acbd cab1bac6c24b113ae4bf36c8870f5e9ed01bccb51403e05830a7287e63b2acbd "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, diagnostics) .IsOk()) | ASSERT_EQ(stress_rows.size(), 2U) | EXPECT_EQ(stress_rows[index].internal_element_id, 0U) | EXPECT_EQ(stress_rows[index].gauss_point_index, index + 1U) | EXPECT_EQ(stress_rows[index].section_point_index, 0U) | EXPECT_DOUBLE_EQ(stress_rows[index].x1, 0.0) | EXPECT_DOUBLE_EQ(stress_rows[index].x2, 0.0) | EXPECT_STREQ(stress_rows[index].source, ""fesa-default"") | ASSERT_EQ(rows.size(), 2U) | EXPECT_STREQ(rows[0U].severity, ""warning"") | EXPECT_STREQ(rows[0U].code, ""ignored-keyword"") | EXPECT_STREQ(rows[0U].file, std::filesystem::absolute(fixture.domain->SourcePath()) .lexically_normal() .generic_u8string() .c_str()) | EXPECT_EQ(rows[0U].line, 20U) | EXPECT_STREQ(rows[0U].keyword, ""*PREPRINT"") | EXPECT_STREQ(rows[0U].entity_identity, """") | EXPECT_STREQ(rows[0U].message, ""Ignored generator control."") | EXPECT_STREQ(rows[1U].code, ""ignored-output-request"") | EXPECT_EQ(rows[1U].line, 80U)" "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, diagnostics) .IsOk()) | ASSERT_EQ(stress_rows.size(), 2U) | EXPECT_EQ(stress_rows[index].internal_element_id, 0U) | EXPECT_EQ(stress_rows[index].gauss_point_index, index + 1U) | EXPECT_EQ(stress_rows[index].section_point_index, 0U) | EXPECT_DOUBLE_EQ(stress_rows[index].x1, 0.0) | EXPECT_DOUBLE_EQ(stress_rows[index].x2, 0.0) | EXPECT_STREQ(stress_rows[index].source, ""fesa-default"") | ASSERT_EQ(rows.size(), 2U) | EXPECT_STREQ(rows[0U].severity, ""warning"") | EXPECT_STREQ(rows[0U].code, ""ignored-keyword"") | EXPECT_STREQ(rows[0U].file, std::filesystem::absolute(fixture.domain->SourcePath()) .lexically_normal() .generic_u8string() .c_str()) | EXPECT_EQ(rows[0U].line, 20U) | EXPECT_STREQ(rows[0U].keyword, ""*PREPRINT"") | EXPECT_STREQ(rows[0U].entity_identity, """") | EXPECT_STREQ(rows[0U].message, ""Ignored generator control."") | EXPECT_STREQ(rows[1U].code, ""ignored-output-request"") | EXPECT_EQ(rows[1U].line, 80U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.FailureLeavesNoPartialAndPreservesExistingFinal Hdf5ResultsWriter.FailureLeavesNoPartialAndPreservesExistingFinal; assertion 5개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.FailureLeavesNoPartialAndPreservesExistingFinal 유지 원문 검사 body 및 assertion 동일. 5ca48e4c84abdb788e3184610cced5edc5d94b89ed3b8a71a615cb730cf33714 5ca48e4c84abdb788e3184610cced5edc5d94b89ed3b8a71a615cb730cf33714 EXPECT_FALSE(std::filesystem::exists(invalid_output)) | EXPECT_EQ(EntryCount(directory.Path()), 0U) | ASSERT_NE(lock.Get(), INVALID_HANDLE_VALUE) | EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_EQ(EntryCount(directory.Path()), 1U) EXPECT_FALSE(std::filesystem::exists(invalid_output)) | EXPECT_EQ(EntryCount(directory.Path()), 0U) | ASSERT_NE(lock.Get(), INVALID_HANDLE_VALUE) | EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_EQ(EntryCount(directory.Path()), 1U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.SuccessfullyReplacesExistingFinal Hdf5ResultsWriter.SuccessfullyReplacesExistingFinal; assertion 5개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.SuccessfullyReplacesExistingFinal 유지 원문 검사 body 및 assertion 동일. c2f57aee2946c919919c83b75b15b17dc5ddf8adc7d3ea8d634b0f2274fa53b8 c2f57aee2946c919919c83b75b15b17dc5ddf8adc7d3ea8d634b0f2274fa53b8 "ASSERT_TRUE(writer.Write(final, *fixture.domain, *fixture.state, {}).IsOk()) | EXPECT_GT(H5Fis_hdf5(final.string().c_str()), 0) | EXPECT_EQ(EntryCount(directory.Path()), 1U) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U)" "ASSERT_TRUE(writer.Write(final, *fixture.domain, *fixture.state, {}).IsOk()) | EXPECT_GT(H5Fis_hdf5(final.string().c_str()), 0) | EXPECT_EQ(EntryCount(directory.Path()), 1U) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactShellMetadataAndModelIdentity Hdf5ResultsWriter.WritesExactShellMetadataAndModelIdentity; assertion 30개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactShellMetadataAndModelIdentity 유지 원문 검사 body 및 assertion 동일. 6b486491444d4a79d8e2201511ac2a539fc98503320507074eef5e67e7aee5d6 6b486491444d4a79d8e2201511ac2a539fc98503320507074eef5e67e7aee5d6 "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""linear-static-mitc4-shell"") | EXPECT_EQ( ReadStringAttribute(metadata.Get(), ""coordinate_convention""), ""global-cartesian; shell-local=(e1,e2,e3); positive-thickness=+zeta"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""internal_formulation""), ""FESA-MITC4"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""integration_rule""), ""2x2x2-gauss; mitc4-edge-midpoint-shear"") | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/elements""), std::vector({1U})) | EXPECT_EQ(ReadStringAttribute(elements.Get(), ""formulation""), ""FESA-MITC4"") | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/shell/nodal_director""), std::vector({4U, 3U})) | EXPECT_EQ(ReadDoubleDataset(file.Get(), ""/model/shell/nodal_director""), expected_directors) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/shell/nodal_frame""), std::vector({4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/nodal_constraint_mask""), std::vector({4U, 6U})) | ASSERT_EQ(mask.size(), 24U) | EXPECT_EQ(mask[0U], 1U) | EXPECT_EQ(mask[1U], 1U) | EXPECT_EQ(mask[2U], 1U) | EXPECT_EQ(mask[3U], 1U) | EXPECT_EQ(mask[4U], 0U) | EXPECT_EQ(mask[5U], 0U) | ASSERT_EQ(prescribed.size(), 24U) | EXPECT_DOUBLE_EQ(prescribed[0U], 0.0) | EXPECT_DOUBLE_EQ(prescribed[3U], 0.125) | EXPECT_DOUBLE_EQ(prescribed[4U], 0.0) | EXPECT_EQ(ReadDoubleDataset(file.Get(), ""/model/shell/section_positions""), std::vector({-1.0, 0.0, 1.0})) | ASSERT_EQ(locations.size(), 8U) | EXPECT_DOUBLE_EQ(locations[0U], -gauss) | EXPECT_DOUBLE_EQ(locations[1U], -gauss) | EXPECT_DOUBLE_EQ(locations[6U], -gauss) | EXPECT_DOUBLE_EQ(locations[7U], gauss)" "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 0U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""linear-static-mitc4-shell"") | EXPECT_EQ( ReadStringAttribute(metadata.Get(), ""coordinate_convention""), ""global-cartesian; shell-local=(e1,e2,e3); positive-thickness=+zeta"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""internal_formulation""), ""FESA-MITC4"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""integration_rule""), ""2x2x2-gauss; mitc4-edge-midpoint-shear"") | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/elements""), std::vector({1U})) | EXPECT_EQ(ReadStringAttribute(elements.Get(), ""formulation""), ""FESA-MITC4"") | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/shell/nodal_director""), std::vector({4U, 3U})) | EXPECT_EQ(ReadDoubleDataset(file.Get(), ""/model/shell/nodal_director""), expected_directors) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/shell/nodal_frame""), std::vector({4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/model/nodal_constraint_mask""), std::vector({4U, 6U})) | ASSERT_EQ(mask.size(), 24U) | EXPECT_EQ(mask[0U], 1U) | EXPECT_EQ(mask[1U], 1U) | EXPECT_EQ(mask[2U], 1U) | EXPECT_EQ(mask[3U], 1U) | EXPECT_EQ(mask[4U], 0U) | EXPECT_EQ(mask[5U], 0U) | ASSERT_EQ(prescribed.size(), 24U) | EXPECT_DOUBLE_EQ(prescribed[0U], 0.0) | EXPECT_DOUBLE_EQ(prescribed[3U], 0.125) | EXPECT_DOUBLE_EQ(prescribed[4U], 0.0) | EXPECT_EQ(ReadDoubleDataset(file.Get(), ""/model/shell/section_positions""), std::vector({-1.0, 0.0, 1.0})) | ASSERT_EQ(locations.size(), 8U) | EXPECT_DOUBLE_EQ(locations[0U], -gauss) | EXPECT_DOUBLE_EQ(locations[1U], -gauss) | EXPECT_DOUBLE_EQ(locations[6U], -gauss) | EXPECT_DOUBLE_EQ(locations[7U], gauss)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactMandatoryShellResultInventory Hdf5ResultsWriter.WritesExactMandatoryShellResultInventory; assertion 9개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesExactMandatoryShellResultInventory 유지 원문 검사 body 및 assertion 동일. 110d9a70913902d4021933f838872fc49b23964f0923e76a82ff9ca38d147adc 110d9a70913902d4021933f838872fc49b23964f0923e76a82ff9ca38d147adc "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_EQ(strain.size(), 32U) | EXPECT_DOUBLE_EQ(strain.front(), 101.0) | EXPECT_DOUBLE_EQ(strain.back(), 408.0) | ASSERT_EQ(stress.size(), 36U) | EXPECT_DOUBLE_EQ(stress.front(), 121.0) | EXPECT_DOUBLE_EQ(stress.back(), 429.0) | EXPECT_EQ(ReadStringAttribute(metrics.Get(), ""metric_definition_ids""), ""free-residual-l2-over-max-free-force-l2,force-balance-l2-over-"" ""max-force-sum,moment-balance-l2-over-max-moment-sum"") | EXPECT_EQ(ReadStringAttribute(metrics.Get(), ""acceptance_thresholds""), ""1e-10,1e-10,1e-10"")" "ASSERT_TRUE(writer.Write(output, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_EQ(strain.size(), 32U) | EXPECT_DOUBLE_EQ(strain.front(), 101.0) | EXPECT_DOUBLE_EQ(strain.back(), 408.0) | ASSERT_EQ(stress.size(), 36U) | EXPECT_DOUBLE_EQ(stress.front(), 121.0) | EXPECT_DOUBLE_EQ(stress.back(), 429.0) | EXPECT_EQ(ReadStringAttribute(metrics.Get(), ""metric_definition_ids""), ""free-residual-l2-over-max-free-force-l2,force-balance-l2-over-"" ""max-force-sum,moment-balance-l2-over-max-moment-sum"") | EXPECT_EQ(ReadStringAttribute(metrics.Get(), ""acceptance_thresholds""), ""1e-10,1e-10,1e-10"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesShellInventoryDespiteRequestsAndOmitsForbiddenPaths Hdf5ResultsWriter.WritesShellInventoryDespiteRequestsAndOmitsForbiddenPaths; assertion 4개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.WritesShellInventoryDespiteRequestsAndOmitsForbiddenPaths 유지 원문 검사 body 및 assertion 동일. 472f6fc3007fa9ce8532895a218e178e8b6861022881554d0f7b38f6e3eb1d28 472f6fc3007fa9ce8532895a218e178e8b6861022881554d0f7b38f6e3eb1d28 "ASSERT_TRUE( writer.Write(output, *fixture.domain, *fixture.state, {ignored_request}) .IsOk()) | EXPECT_GT(H5Lexists(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), forbidden, H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({1U}))" "ASSERT_TRUE( writer.Write(output, *fixture.domain, *fixture.state, {ignored_request}) .IsOk()) | EXPECT_GT(H5Lexists(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), forbidden, H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/diagnostics""), std::vector({1U}))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.InvalidShellInventoryPreservesExistingFinal Hdf5ResultsWriter.InvalidShellInventoryPreservesExistingFinal; assertion 2개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.InvalidShellInventoryPreservesExistingFinal 유지 원문 검사 body 및 assertion 동일. 28be997b839d00367e036aef28d86d7b31d42f1f6d3b9af82fce26c23380ba3c 28be997b839d00367e036aef28d86d7b31d42f1f6d3b9af82fce26c23380ba3c EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_EQ(EntryCount(directory.Path()), 1U) EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_EQ(EntryCount(directory.Path()), 1U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.Vector3ShellSerializationRejectsNonfiniteWithoutReplacingFinal Hdf5ResultsWriter.Vector3ShellSerializationRejectsNonfiniteWithoutReplacingFinal; assertion 6개 tests/unit/io/hdf5/hdf5_results_writer_test.cpp Hdf5ResultsWriter.Vector3ShellSerializationRejectsNonfiniteWithoutReplacingFinal 유지 원문 검사 body 및 assertion 동일. 3c25204bcd546b3fd1ee10dd44c2e215a6dc878502873b1fe0612cc1c92d82e0 3c25204bcd546b3fd1ee10dd44c2e215a6dc878502873b1fe0612cc1c92d82e0 ASSERT_TRUE(writer.Write(final, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_EQ(directors.size(), 12U) | EXPECT_TRUE(director.IsFinite()) | EXPECT_EQ(director, (fesa::Vector3{0.0, 0.0, 1.0})) | EXPECT_EQ(ReadBytes(final), valid_bytes) | EXPECT_EQ(EntryCount(directory.Path()), 1U) ASSERT_TRUE(writer.Write(final, *fixture.domain, *fixture.state, {}).IsOk()) | ASSERT_EQ(directors.size(), 12U) | EXPECT_TRUE(director.IsFinite()) | EXPECT_EQ(director, (fesa::Vector3{0.0, 0.0, 1.0})) | EXPECT_EQ(ReadBytes(final), valid_bytes) | EXPECT_EQ(EntryCount(directory.Path()), 1U) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1-823 helper/oracle/fixture/include/static assertion 구간: Hdf5Handle, if, WinHandle, TempDirectory, WriterFixture, MakeDefinition, MakeFixture, MakeShellDefinition, MakeShellFixture, OpenFile, OpenDataset, DatasetDimensions, ReadDoubleDataset, for, ReadUint8Dataset, ReadStringAttribute, ReadUint64Attribute, ExpectPortableCompoundMember, ExpectCompoundMembers, ExpectCompoundMemberNames, ExpectNumericDataset, MakeUtf8StringType, NodeReadRow, ReadNodeRows, ReclaimNodeRows, ElementReadRow, ReadElementRows, StressReadRow, ReadStressRows, ReclaimStressRows, DiagnosticReadRow, ReadDiagnosticRows, ReclaimDiagnosticRows, ReadBytes, WriteBytes, EntryCount, ExpectOutputFailure tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 4ab1135fc0949c1ef197678be93dda782dc8e2d8655cc928fd55eee0d8961e42 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1120-1121 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7d75f7fce7301b112d258ec1b3434016cbb00dc5186e10757a3d53485db1e852 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1203-1204 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6a28c340e155ab8c275c3eb5afa3522b3c3b655448af487e689907f00da8b75a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1262-1263 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. de735dd985d5499ad7c73f83d71275d6f5a840dbae2b1672b0e2e4008f0d7560 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1301-1302 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e9bcb4f06a58b6240ab792f21d2791ef2d5cd6ed3540f5cbe243c87f41e10575 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/hdf5_results_writer_test.cpp support@1318-1319 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 778e854c4f2ce284558db14ad3b1ce65607a94482da05114089a6c8e96644227 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/hdf5_writer_components_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 3개 tests/unit/io/hdf5/hdf5_writer_components_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cedde4c3b4576ff6568b8dabefbc0ad56bc54ef4d3adbf2c8eb74ad7f7f711e4 cedde4c3b4576ff6568b8dabefbc0ad56bc54ef4d3adbf2c8eb74ad7f7f711e4 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.BuildsStableBackendNeutralBeamDatasetPlans Hdf5WriterComponents.BuildsStableBackendNeutralBeamDatasetPlans; assertion 8개 tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.BuildsStableBackendNeutralBeamDatasetPlans 유지 원문 검사 body 및 assertion 동일. 81b2f1f76a5dcf5bb467f6f4d53431f4e73401023067e1508e3550739a7becc4 81b2f1f76a5dcf5bb467f6f4d53431f4e73401023067e1508e3550739a7becc4 "ASSERT_TRUE(plan_result.HasValue()) | ASSERT_EQ(datasets.size(), 6U) | EXPECT_EQ(datasets[0U].path, ""/steps/Step-1/frames/0/nodal/displacement"") | EXPECT_EQ(datasets[0U].dimensions, std::vector({2U, 6U})) | EXPECT_EQ(datasets[2U].path, ""/steps/Step-1/frames/0/element/end_force_local"") | EXPECT_EQ(datasets[2U].dimensions, std::vector({1U, 2U, 6U})) | EXPECT_EQ(datasets[5U].path, ""/steps/Step-1/frames/0/element/generalized_resultant"") | EXPECT_TRUE(fesa::hdf5_internal::ValidateFiniteInventory(datasets).IsOk())" "ASSERT_TRUE(plan_result.HasValue()) | ASSERT_EQ(datasets.size(), 6U) | EXPECT_EQ(datasets[0U].path, ""/steps/Step-1/frames/0/nodal/displacement"") | EXPECT_EQ(datasets[0U].dimensions, std::vector({2U, 6U})) | EXPECT_EQ(datasets[2U].path, ""/steps/Step-1/frames/0/element/end_force_local"") | EXPECT_EQ(datasets[2U].dimensions, std::vector({1U, 2U, 6U})) | EXPECT_EQ(datasets[5U].path, ""/steps/Step-1/frames/0/element/generalized_resultant"") | EXPECT_TRUE(fesa::hdf5_internal::ValidateFiniteInventory(datasets).IsOk())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.RejectsNonfiniteDatasetPlanInventory Hdf5WriterComponents.RejectsNonfiniteDatasetPlanInventory; assertion 0개 tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.RejectsNonfiniteDatasetPlanInventory 유지 원문 검사 body 및 assertion 동일. 7ffe025ea38838a0b732cf1b6438b5f1ea52e2fa0831d04f9efb98060cb02795 7ffe025ea38838a0b732cf1b6438b5f1ea52e2fa0831d04f9efb98060cb02795 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.SelfCheckFailurePreservesExistingFinalThroughAtomicSeam Hdf5WriterComponents.SelfCheckFailurePreservesExistingFinalThroughAtomicSeam; assertion 4개 tests/unit/io/hdf5/hdf5_writer_components_test.cpp Hdf5WriterComponents.SelfCheckFailurePreservesExistingFinalThroughAtomicSeam 유지 원문 검사 body 및 assertion 동일. dfa562386df73584a0987a54a9b5f63293a8ffdc34ac4ffd53924c589ca578e3 dfa562386df73584a0987a54a9b5f63293a8ffdc34ac4ffd53924c589ca578e3 ASSERT_TRUE(std::filesystem::create_directory(directory)) | ASSERT_TRUE(plan_result.HasValue()) | EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_FALSE(std::filesystem::exists(candidate)) ASSERT_TRUE(std::filesystem::create_directory(directory)) | ASSERT_TRUE(plan_result.HasValue()) | EXPECT_EQ(ReadBytes(final), sentinel) | EXPECT_FALSE(std::filesystem::exists(candidate)) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/hdf5/hdf5_writer_components_test.cpp support@1-125 helper/oracle/fixture/include/static assertion 구간: WriterFixture, MakeDefinition, MakeFixture, if, ReadBytes, WriteBytes, ExpectOutputFailure tests/unit/io/hdf5/hdf5_writer_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d4c12780f611b8d0f3e096c57425f504de734e1f1fe5f4bb74eee73fce444d6d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ea65dd1a637d3517aba6239dd53b411bf465a04769ae57ffc2ca970247080a4a ea65dd1a637d3517aba6239dd53b411bf465a04769ae57ffc2ca970247080a4a 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.WritesSchemaV1ModelAndCommittedAcceptedFramesOnly NonlinearHdf5ResultsWriter.WritesSchemaV1ModelAndCommittedAcceptedFramesOnly; assertion 34개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.WritesSchemaV1ModelAndCommittedAcceptedFramesOnly 유지 원문 검사 body 및 assertion 동일. 6e39a263af0c568c71a1825d1df1ab7caad034e32be32750eff35627846a02e8 6e39a263af0c568c71a1825d1df1ab7caad034e32be32750eff35627846a02e8 "ASSERT_TRUE(status.IsOk()) | ASSERT_GE(file.Get(), 0) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 1U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""nonlinear-static-newton-raphson"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""analysis_procedure""), ""nonlinear-static-full-newton"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""internal_formulation""), ""FESA-MITC4-total-lagrangian"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""integration_rule""), ""2x2x2-gauss; mitc4-edge-midpoint-shear"") | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""factor_zero_is_frame""), 0U) | EXPECT_DOUBLE_EQ(ReadDoubleAttribute(metadata.Get(), ""factor_zero_load_factor""), 0.0) | EXPECT_GT(H5Lexists(file.Get(), path, H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/steps/Step-1/accepted_frames""), std::vector({2U})) | ASSERT_EQ(frames.size(), 2U) | EXPECT_EQ(frames[0U].frame_index, 0U) | EXPECT_EQ(frames[0U].increment_index, 1U) | EXPECT_DOUBLE_EQ(frames[0U].load_factor, 0.5) | EXPECT_EQ(frames[0U].is_factor_one, 0U) | EXPECT_EQ(frames[1U].frame_index, 1U) | EXPECT_EQ(frames[1U].increment_index, 2U) | EXPECT_DOUBLE_EQ(frames[1U].load_factor, 1.0) | EXPECT_EQ(frames[1U].is_factor_one, 1U) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/2"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/trial_history"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file.Get(), (root + suffix).c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/nodal/displacement""), std::vector({4U, 6U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/nodal/triad""), std::vector({4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/element/shell/local_frame""), std::vector({1U, 4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/element/shell/stress""), std::vector({1U, 4U, 3U, 3U})) | ASSERT_EQ(displacement.size(), 24U) | EXPECT_DOUBLE_EQ(displacement[0U], 1.0) | EXPECT_DOUBLE_EQ(displacement[1U], -1.0) | EXPECT_DOUBLE_EQ(displacement[2U], 0.5) | EXPECT_DOUBLE_EQ(displacement[5U], 0.1)" "ASSERT_TRUE(status.IsOk()) | ASSERT_GE(file.Get(), 0) | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 1U) | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""feature_id""), ""nonlinear-static-newton-raphson"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""analysis_procedure""), ""nonlinear-static-full-newton"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""internal_formulation""), ""FESA-MITC4-total-lagrangian"") | EXPECT_EQ(ReadStringAttribute(metadata.Get(), ""integration_rule""), ""2x2x2-gauss; mitc4-edge-midpoint-shear"") | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""factor_zero_is_frame""), 0U) | EXPECT_DOUBLE_EQ(ReadDoubleAttribute(metadata.Get(), ""factor_zero_load_factor""), 0.0) | EXPECT_GT(H5Lexists(file.Get(), path, H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/steps/Step-1/accepted_frames""), std::vector({2U})) | ASSERT_EQ(frames.size(), 2U) | EXPECT_EQ(frames[0U].frame_index, 0U) | EXPECT_EQ(frames[0U].increment_index, 1U) | EXPECT_DOUBLE_EQ(frames[0U].load_factor, 0.5) | EXPECT_EQ(frames[0U].is_factor_one, 0U) | EXPECT_EQ(frames[1U].frame_index, 1U) | EXPECT_EQ(frames[1U].increment_index, 2U) | EXPECT_DOUBLE_EQ(frames[1U].load_factor, 1.0) | EXPECT_EQ(frames[1U].is_factor_one, 1U) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames/2"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/trial_history"", H5P_DEFAULT), 0) | EXPECT_EQ(H5Lexists(file.Get(), ""/surface_pressure"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file.Get(), (root + suffix).c_str(), H5P_DEFAULT), 0) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/nodal/displacement""), std::vector({4U, 6U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/nodal/triad""), std::vector({4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/element/shell/local_frame""), std::vector({1U, 4U, 3U, 3U})) | EXPECT_EQ(DatasetDimensions(file.Get(), root + ""/element/shell/stress""), std::vector({1U, 4U, 3U, 3U})) | ASSERT_EQ(displacement.size(), 24U) | EXPECT_DOUBLE_EQ(displacement[0U], 1.0) | EXPECT_DOUBLE_EQ(displacement[1U], -1.0) | EXPECT_DOUBLE_EQ(displacement[2U], 0.5) | EXPECT_DOUBLE_EQ(displacement[5U], 0.1)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.ProjectsRotationalReactionToSpatialMoment NonlinearHdf5ResultsWriter.ProjectsRotationalReactionToSpatialMoment; assertion 6개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.ProjectsRotationalReactionToSpatialMoment 유지 원문 검사 body 및 assertion 동일. 1c90a2968f7f21a035b54b532d62081f4554455b2b91eae22cf861ca9fea1f9f 1c90a2968f7f21a035b54b532d62081f4554455b2b91eae22cf861ca9fea1f9f ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, {}).IsOk()) | ASSERT_EQ(reaction.size(), 24U) | EXPECT_NEAR(reaction[3U], (1.0 - quadratic * theta * theta) * 40.0 - 0.5 * theta * 50.0, 1.0e-12) | EXPECT_NEAR(reaction[4U], 0.5 * theta * 40.0 + (1.0 - quadratic * theta * theta) * 50.0, 1.0e-12) | EXPECT_NEAR(reaction[5U], 60.0, 1.0e-12) | EXPECT_GT(quadratic, 0.0) ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, {}).IsOk()) | ASSERT_EQ(reaction.size(), 24U) | EXPECT_NEAR(reaction[3U], (1.0 - quadratic * theta * theta) * 40.0 - 0.5 * theta * 50.0, 1.0e-12) | EXPECT_NEAR(reaction[4U], 0.5 * theta * 40.0 + (1.0 - quadratic * theta * theta) * 50.0, 1.0e-12) | EXPECT_NEAR(reaction[5U], 60.0, 1.0e-12) | EXPECT_GT(quadratic, 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.WritesSchemaV1GlobalBalanceErrorLocation NonlinearHdf5ResultsWriter.WritesSchemaV1GlobalBalanceErrorLocation; assertion 6개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.WritesSchemaV1GlobalBalanceErrorLocation 유지 원문 검사 body 및 assertion 동일. a001400599ab1442b5c7632e39ec02422a0e5cf4a4420a822d640291fc3bdbd9 a001400599ab1442b5c7632e39ec02422a0e5cf4a4420a822d640291fc3bdbd9 "ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/steps/Step-1/frames/1/global/equilibrium""), std::vector({6U})) | EXPECT_EQ(ReadStringAttribute(equilibrium.Get(), ""component_names""), ""FORCE_1,FORCE_2,FORCE_3,MOMENT_1,MOMENT_2,MOMENT_3"") | EXPECT_EQ(ReadStringAttribute(equilibrium.Get(), ""location""), ""global-balance-error"") | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 1U)" "ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, {}).IsOk()) | EXPECT_EQ(DatasetDimensions(file.Get(), ""/steps/Step-1/frames/1/global/equilibrium""), std::vector({6U})) | EXPECT_EQ(ReadStringAttribute(equilibrium.Get(), ""component_names""), ""FORCE_1,FORCE_2,FORCE_3,MOMENT_1,MOMENT_2,MOMENT_3"") | EXPECT_EQ(ReadStringAttribute(equilibrium.Get(), ""location""), ""global-balance-error"") | ASSERT_GE(metadata.Get(), 0) | EXPECT_EQ(ReadUint64Attribute(metadata.Get(), ""schema_version""), 1U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.StoresSortedDiagnosticsThroughBackendNeutralBoundary NonlinearHdf5ResultsWriter.StoresSortedDiagnosticsThroughBackendNeutralBoundary; assertion 6개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.StoresSortedDiagnosticsThroughBackendNeutralBoundary 유지 원문 검사 body 및 assertion 동일. 33864ae859f75ea2126a078c47ba665e8bb37b0dd807025395fa77b74be284bf 33864ae859f75ea2126a078c47ba665e8bb37b0dd807025395fa77b74be284bf "ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, diagnostics) .IsOk()) | ASSERT_EQ(rows.size(), 2U) | EXPECT_STREQ(rows[0U].code, ""earlier"") | EXPECT_EQ(rows[0U].line, 10U) | EXPECT_STREQ(rows[1U].code, ""later"") | EXPECT_EQ(rows[1U].line, 20U)" "ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, diagnostics) .IsOk()) | ASSERT_EQ(rows.size(), 2U) | EXPECT_STREQ(rows[0U].code, ""earlier"") | EXPECT_EQ(rows[0U].line, 10U) | EXPECT_STREQ(rows[1U].code, ""later"") | EXPECT_EQ(rows[1U].line, 20U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.CandidateFinalizationFailurePreservesPriorFinal NonlinearHdf5ResultsWriter.CandidateFinalizationFailurePreservesPriorFinal; assertion 6개 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp NonlinearHdf5ResultsWriter.CandidateFinalizationFailurePreservesPriorFinal 유지 원문 검사 body 및 assertion 동일. eb1576644b3e7a2bf28dd63899e0cccf1bd2a8568b4ab593940c67d510aa21c2 eb1576644b3e7a2bf28dd63899e0cccf1bd2a8568b4ab593940c67d510aa21c2 "ASSERT_NE(lock.Get(), INVALID_HANDLE_VALUE) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""hdf5-finalization-failure"") | EXPECT_EQ(ReadBytes(output), sentinel)" "ASSERT_NE(lock.Get(), INVALID_HANDLE_VALUE) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""hdf5-finalization-failure"") | EXPECT_EQ(ReadBytes(output), sentinel)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp support@1-429 helper/oracle/fixture/include/static assertion 구간: TempDirectory, if, WinHandle, Fixture, AcceptedFrameRow, DiagnosticRow, MakeDefinition, MakeBaseline, MakeShellRow, MakeShellRows, MakeFrame, MakeFixture, OpenFile, OpenDataset, DatasetDimensions, ReadStringAttribute, ReadUint64Attribute, ReadDoubleAttribute, ReadDoubleDataset, for, AcceptedFrameMemoryType, ReadAcceptedFrames, DiagnosticMemoryType, ReadDiagnostics, ReclaimDiagnostics, ReadBytes, WriteBytes tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6c65598390ba6c2d70dbd49ab2e1b14b76803f926878fd1e6495864508bbc051 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp support@509-510 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8f00d12532be48bbd8d5776bf02cee4d6a243f6225365268e06f4dc268138fa4 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp support@537-538 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e08a00bd74875e33bb07f7be527593f2d4349951e703f865eb04b1e9499e2bbd 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp support@562-563 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a6d0aa9192bf7f01ce6aab9505a2149836668f2461c70984035f857a43eb68e6 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp support@596-597 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cc12e7c3af34a0df4e68a34067bc8e98d4da457614c478a52170cc0c9151b3b6 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 14개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0e288ede59628ee0256258206f78ba4830a13b65c68d9a42125b767bf15fed78 0e288ede59628ee0256258206f78ba4830a13b65c68d9a42125b767bf15fed78 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.AllFiveActualApiOutcomesHaveIndependentOfficialSchema SolidHdf5ResultsWriter.AllFiveActualApiOutcomesHaveIndependentOfficialSchema; assertion 21개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.AllFiveActualApiOutcomesHaveIndependentOfficialSchema 유지 원문 검사 body 및 assertion 동일. ae7d81086077cec63255ebbb050d057332d3d2303be88998f8ff571d28237340 ae7d81086077cec63255ebbb050d057332d3d2303be88998f8ff571d28237340 "ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(Attr(metadata.Get(), ""analysis_procedure""), solid_output_test::Procedure(p)) | EXPECT_EQ(Attr(metadata.Get(), ""feature_id""), ""hex8-structural-analysis"") | EXPECT_EQ(Attr(metadata.Get(), ""source_step_name""), ""RawSolid"") | EXPECT_EQ(Attr(metadata.Get(), ""element_formulation""), ""FESA-Hex8"") | EXPECT_EQ(Attr(metadata.Get(), ""integration_rule""), ""gauss-2x2x2"") | EXPECT_EQ(Attr(metadata.Get(), ""mass_formulation""), ""lumped-reference"") | EXPECT_EQ(Attr(metadata.Get(), ""component_order""), ""node-major; UX,UY,UZ"") | EXPECT_GT(H5Tequal(masktype.Get(), H5T_STD_U8LE), 0) | EXPECT_EQ(Attr(mask.Get(), ""component_names""), ""UX,UY,UZ"") | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames"", H5P_DEFAULT), 0) | EXPECT_EQ(Attr(dataset.Get(), ""component_names""), std::get<1>(quantity)) | EXPECT_EQ(Attr(dataset.Get(), ""unit_dimensions""), std::get<2>(quantity)) | EXPECT_EQ(Attr(dataset.Get(), ""location""), ""global"") | EXPECT_EQ(Attr(dataset.Get(), ""coordinate_system""), ""global-cartesian"") | EXPECT_EQ(H5Aexists(dataset.Get(), ""frame_index""), 0) | EXPECT_EQ(H5Aexists(dataset.Get(), ""step_name""), 0) | ASSERT_EQ(state.eigenpair_checks[0].solver_column, 0u) | EXPECT_EQ( H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0) | EXPECT_LE( H5Lexists(file.Get(), (root + ""/nodal/displacement_low"").c_str(), H5P_DEFAULT), 0)" "ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE(file.Get(), 0) | EXPECT_EQ(Attr(metadata.Get(), ""analysis_procedure""), solid_output_test::Procedure(p)) | EXPECT_EQ(Attr(metadata.Get(), ""feature_id""), ""hex8-structural-analysis"") | EXPECT_EQ(Attr(metadata.Get(), ""source_step_name""), ""RawSolid"") | EXPECT_EQ(Attr(metadata.Get(), ""element_formulation""), ""FESA-Hex8"") | EXPECT_EQ(Attr(metadata.Get(), ""integration_rule""), ""gauss-2x2x2"") | EXPECT_EQ(Attr(metadata.Get(), ""mass_formulation""), ""lumped-reference"") | EXPECT_EQ(Attr(metadata.Get(), ""component_order""), ""node-major; UX,UY,UZ"") | EXPECT_GT(H5Tequal(masktype.Get(), H5T_STD_U8LE), 0) | EXPECT_EQ(Attr(mask.Get(), ""component_names""), ""UX,UY,UZ"") | EXPECT_EQ(H5Lexists(file.Get(), ""/steps/Step-1/frames"", H5P_DEFAULT), 0) | EXPECT_EQ(Attr(dataset.Get(), ""component_names""), std::get<1>(quantity)) | EXPECT_EQ(Attr(dataset.Get(), ""unit_dimensions""), std::get<2>(quantity)) | EXPECT_EQ(Attr(dataset.Get(), ""location""), ""global"") | EXPECT_EQ(Attr(dataset.Get(), ""coordinate_system""), ""global-cartesian"") | EXPECT_EQ(H5Aexists(dataset.Get(), ""frame_index""), 0) | EXPECT_EQ(H5Aexists(dataset.Get(), ""step_name""), 0) | ASSERT_EQ(state.eigenpair_checks[0].solver_column, 0u) | EXPECT_EQ( H5Lexists(file.Get(), ""/steps/Step-1/accepted_frames"", H5P_DEFAULT), 0) | EXPECT_LE( H5Lexists(file.Get(), (root + ""/nodal/displacement_low"").c_str(), H5P_DEFAULT), 0)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.EveryProcedurePreservesPreviousFinalAcrossLifecycleFailures SolidHdf5ResultsWriter.EveryProcedurePreservesPreviousFinalAcrossLifecycleFailures; assertion 3개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.EveryProcedurePreservesPreviousFinalAcrossLifecycleFailures 유지 원문 검사 body 및 assertion 동일. 54758e848f8b701836e7fb82b83cfd0959b5e4f36e413871563d59a6389f21ef 54758e848f8b701836e7fb82b83cfd0959b5e4f36e413871563d59a6389f21ef "EXPECT_FALSE(status.IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | EXPECT_EQ(entry.path().filename().string().find(""candidate""), std::string::npos)" "EXPECT_FALSE(status.IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | EXPECT_EQ(entry.path().filename().string().find(""candidate""), std::string::npos)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.MalformedWholePairsAndIdentityFailBeforeCandidateCreation SolidHdf5ResultsWriter.MalformedWholePairsAndIdentityFailBeforeCandidateCreation; assertion 5개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.MalformedWholePairsAndIdentityFailBeforeCandidateCreation 유지 원문 검사 body 및 assertion 동일. 3d420563bb51f0e354d37714b86fc487aa097ba8f142014c043488d8c4bf78d6 3d420563bb51f0e354d37714b86fc487aa097ba8f142014c043488d8c4bf78d6 EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | ASSERT_EQ(std::fesetround(FE_DOWNWARD), 0) | EXPECT_FALSE(status.IsOk()) | EXPECT_EQ(Bytes(files.output), previous) EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | ASSERT_EQ(std::fesetround(FE_DOWNWARD), 0) | EXPECT_FALSE(status.IsOk()) | EXPECT_EQ(Bytes(files.output), previous) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ModalColumnsRemainZeroBasedAndRejectInvalidInventory SolidHdf5ResultsWriter.ModalColumnsRemainZeroBasedAndRejectInvalidInventory; assertion 4개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ModalColumnsRemainZeroBasedAndRejectInvalidInventory 유지 원문 검사 body 및 assertion 동일. 58160b675d06a1d926ce01fbdcd204944fd73fa1246838cb4245069a58346ec5 58160b675d06a1d926ce01fbdcd204944fd73fa1246838cb4245069a58346ec5 ASSERT_EQ(state.eigenpair_checks[0].solver_column, 0u) | EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) ASSERT_EQ(state.eigenpair_checks[0].solver_column, 0u) | EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) | EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ReadbackRejectsMalformedTypesShapesValuesAndSourceIds SolidHdf5ResultsWriter.ReadbackRejectsMalformedTypesShapesValuesAndSourceIds; assertion 2개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ReadbackRejectsMalformedTypesShapesValuesAndSourceIds 유지 원문 검사 body 및 assertion 동일. 98f12927edcaf6e819ce0efdc429254416e9c0b6d37361830ab53bb7d6c1b9bb 98f12927edcaf6e819ce0efdc429254416e9c0b6d37361830ab53bb7d6c1b9bb EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ReadbackMatchesActualAcceptedValuesAndFullPairObservables SolidHdf5ResultsWriter.ReadbackMatchesActualAcceptedValuesAndFullPairObservables; assertion 6개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ReadbackMatchesActualAcceptedValuesAndFullPairObservables 유지 원문 검사 body 및 assertion 동일. 9489cb16f1d352cdb05ead2678289c28d3757ca8717121b5d49f4e4763c16427 9489cb16f1d352cdb05ead2678289c28d3757ca8717121b5d49f4e4763c16427 "ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE(dataset.Get(), 0) | ASSERT_GE(H5Dread(dataset.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, values.data()), 0) | EXPECT_EQ(values, expected) | EXPECT_EQ(Attr(metadata.Get(), ""source_input_identity""), SourceInputIdentity(actual.input.domain)) | EXPECT_TRUE(nonzero_low)" "ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE(dataset.Get(), 0) | ASSERT_GE(H5Dread(dataset.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, values.data()), 0) | EXPECT_EQ(values, expected) | EXPECT_EQ(Attr(metadata.Get(), ""source_input_identity""), SourceInputIdentity(actual.input.domain)) | EXPECT_TRUE(nonzero_low)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.FailureRecordsAreLoggedAndLogFailureTakesPrecedence SolidPreparedAnalysis.FailureRecordsAreLoggedAndLogFailureTakesPrecedence; assertion 9개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.FailureRecordsAreLoggedAndLogFailureTakesPrecedence 유지 원문 검사 body 및 assertion 동일. 86020491b9f15bef285a8c66ff73296c53f87c05bf88bde9e31ceae039b16613 86020491b9f15bef285a8c66ff73296c53f87c05bf88bde9e31ceae039b16613 "ASSERT_TRUE(input.HasValue()) | ASSERT_TRUE(log.Open(files.log).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), closed ? FailureCategory::kOutput : FailureCategory::kSolver) | ASSERT_TRUE(log.Close().IsOk()) | EXPECT_NE(text.find(""injected-tangent-failure""), std::string::npos) | EXPECT_EQ(text.find(""rotation""), std::string::npos) | EXPECT_NE(text.find(""stage=""), std::string::npos)" "ASSERT_TRUE(input.HasValue()) | ASSERT_TRUE(log.Open(files.log).IsOk()) | ASSERT_TRUE(log.Close().IsOk()) | ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), closed ? FailureCategory::kOutput : FailureCategory::kSolver) | ASSERT_TRUE(log.Close().IsOk()) | EXPECT_NE(text.find(""injected-tangent-failure""), std::string::npos) | EXPECT_EQ(text.find(""rotation""), std::string::npos) | EXPECT_NE(text.find(""stage=""), std::string::npos)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.MissingSolidAdapterFailsWithoutLegacyDispatch SolidPreparedAnalysis.MissingSolidAdapterFailsWithoutLegacyDispatch; assertion 6개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.MissingSolidAdapterFailsWithoutLegacyDispatch 유지 원문 검사 body 및 assertion 동일. 49053fc528ba887b5f048281c18c912aa09ae411cabbb474074bbc2f15ab91c8 49053fc528ba887b5f048281c18c912aa09ae411cabbb474074bbc2f15ab91c8 "ASSERT_TRUE(input.HasValue()) | ASSERT_TRUE(log.Open(files.log).IsOk()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""missing-solid-executor"") | EXPECT_TRUE(log.Close().IsOk())" "ASSERT_TRUE(input.HasValue()) | ASSERT_TRUE(log.Open(files.log).IsOk()) | ASSERT_FALSE(result.HasValue()) | ASSERT_FALSE(result.GetStatus().Diagnostics().empty()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""missing-solid-executor"") | EXPECT_TRUE(log.Close().IsOk())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.UnsupportedEnvironmentAfterCallbackCannotPublish SolidHdf5ResultsWriter.UnsupportedEnvironmentAfterCallbackCannotPublish; assertion 2개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.UnsupportedEnvironmentAfterCallbackCannotPublish 유지 원문 검사 body 및 assertion 동일. e451c9a755119b6d30517cfadffc36c7fefd922c053ce1aac059d333adc5e7f5 e451c9a755119b6d30517cfadffc36c7fefd922c053ce1aac059d333adc5e7f5 EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.MissingWriterPreservesFinalForEveryTypedOutcome SolidPreparedAnalysis.MissingWriterPreservesFinalForEveryTypedOutcome; assertion 5개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidPreparedAnalysis.MissingWriterPreservesFinalForEveryTypedOutcome 유지 원문 검사 body 및 assertion 동일. 7fe8c186182faf22af563656dd32beca34da0788bfe309672f51cb685820abf2 7fe8c186182faf22af563656dd32beca34da0788bfe309672f51cb685820abf2 "ASSERT_TRUE(paths.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_EQ(status.Diagnostics()[0].code, ""missing-solid-writer"") | EXPECT_EQ(Bytes(files.output), previous)" "ASSERT_TRUE(paths.HasValue()) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_EQ(status.Diagnostics()[0].code, ""missing-solid-writer"") | EXPECT_EQ(Bytes(files.output), previous)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidNewtonIterationLog.InvalidScalarEvidencePermanentlyFailsLogLifecycle SolidNewtonIterationLog.InvalidScalarEvidencePermanentlyFailsLogLifecycle; assertion 3개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidNewtonIterationLog.InvalidScalarEvidencePermanentlyFailsLogLifecycle 유지 원문 검사 body 및 assertion 동일. 98a859ab027cf906fe55ec13bd07e191939707a511ef7786e84dbd3040963b47 98a859ab027cf906fe55ec13bd07e191939707a511ef7786e84dbd3040963b47 ASSERT_TRUE(log.Open(files.log).IsOk()) | EXPECT_FALSE(log.Write(record).IsOk()) | EXPECT_FALSE(log.Close().IsOk()) ASSERT_TRUE(log.Open(files.log).IsOk()) | EXPECT_FALSE(log.Write(record).IsOk()) | EXPECT_FALSE(log.Close().IsOk()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.AbsentStaticDensityIsAnExplicitPlaceholder SolidHdf5ResultsWriter.AbsentStaticDensityIsAnExplicitPlaceholder; assertion 5개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.AbsentStaticDensityIsAnExplicitPlaceholder 유지 원문 검사 body 및 assertion 동일. eb6860aba8052654eaa827dfd208c58761976beb7d042b8529d9544036d904fe eb6860aba8052654eaa827dfd208c58761976beb7d042b8529d9544036d904fe ASSERT_NE(position, std::string::npos) | ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE( H5Dread(dataset.Get(), type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &row), 0) | EXPECT_EQ(row.present, 0) | EXPECT_EQ(row.rho, 0) ASSERT_NE(position, std::string::npos) | ASSERT_TRUE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics) .IsOk()) | ASSERT_GE( H5Dread(dataset.Get(), type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &row), 0) | EXPECT_EQ(row.present, 0) | EXPECT_EQ(row.rho, 0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ModalPhysicalTableAttributeCorruptionPreservesFinal SolidHdf5ResultsWriter.ModalPhysicalTableAttributeCorruptionPreservesFinal; assertion 2개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.ModalPhysicalTableAttributeCorruptionPreservesFinal 유지 원문 검사 body 및 assertion 동일. 5ab99b0ef2a17dd81d8b67396fa3ad3fcaafcc82c55b1a90ba8ebc161b3c057a 5ab99b0ef2a17dd81d8b67396fa3ad3fcaafcc82c55b1a90ba8ebc161b3c057a EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) EXPECT_FALSE(WriteSolidFile(files.output, actual.input.domain, View(actual), actual.input.diagnostics, hooks) .IsOk()) | EXPECT_EQ(Bytes(files.output), previous) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.UnselectedBackendPairsCannotPublishInvalidSpectrumOrDimension SolidHdf5ResultsWriter.UnselectedBackendPairsCannotPublishInvalidSpectrumOrDimension; assertion 9개 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp SolidHdf5ResultsWriter.UnselectedBackendPairsCannotPublishInvalidSpectrumOrDimension 유지 원문 검사 body 및 assertion 동일. 1ebcf9e3ecd6d2f12eefd8b99060546b7a12f4b64c9542a7d7550aa384b095f7 1ebcf9e3ecd6d2f12eefd8b99060546b7a12f4b64c9542a7d7550aa384b095f7 "ASSERT_NE(position, std::string::npos) | ASSERT_EQ(state.modes.size(), 1u) | ASSERT_EQ(state.free_dof_count, 3u) | ASSERT_GT(state.eigenpair_checks.size(), state.modes.size()) | ASSERT_LE(state.eigenpair_checks.size(), state.free_dof_count) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_NE(message.find(failure == 0 ? ""Significant negative"" : failure == 1 ? ""not sorted"" : ""inventory""), std::string::npos) | EXPECT_EQ(Bytes(files.output), previous)" "ASSERT_NE(position, std::string::npos) | ASSERT_EQ(state.modes.size(), 1u) | ASSERT_EQ(state.free_dof_count, 3u) | ASSERT_GT(state.eigenpair_checks.size(), state.modes.size()) | ASSERT_LE(state.eigenpair_checks.size(), state.free_dof_count) | ASSERT_FALSE(status.IsOk()) | ASSERT_FALSE(status.Diagnostics().empty()) | EXPECT_NE(message.find(failure == 0 ? ""Significant negative"" : failure == 1 ? ""not sorted"" : ""inventory""), std::string::npos) | EXPECT_EQ(Bytes(files.output), previous)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp support@1-201 helper/oracle/fixture/include/static assertion 구간: fesa, Actual, Execute, View, Bytes, Existing, Attr, if, T, NumberAttr, DatasetContract tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 30faf6dcced8c34ede79a8a792a5a29b740098278d5aeb4cb11c773b900aa404 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp support@621-635 helper/oracle/fixture/include/static assertion 구간: FailedTangent tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ad8ea87f0e4a9587417928c0cf809d07c3041883e55d95ad345315ff70ebd9a2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp support@874-874 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/solid_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/solid_output_test_fixture.h file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 0개 tests/unit/io/hdf5/solid_output_test_fixture.h file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f55daaac80ffbb33f56431eb37931b48dc0202107b74e298254f9fcd2a2e5977 f55daaac80ffbb33f56431eb37931b48dc0202107b74e298254f9fcd2a2e5977 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/solid_output_test_fixture.h support@1-58 helper/oracle/fixture/include/static assertion 구간: solid_output_test, Deck, Files, Procedure tests/unit/io/hdf5/solid_output_test_fixture.h file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 9e7195cd7096815c237160ff0315fabca314fe8068ef1ea88751543cac732307 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 13개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 576b253a222e41e7b8bd6643a47706eec1ed333eaf5a09c2206b89ef1bb06895 576b253a222e41e7b8bd6643a47706eec1ed333eaf5a09c2206b89ef1bb06895 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.WritesRawInitialAndCompletedZeroReactionHistory ThermalHdf5ResultsWriter.WritesRawInitialAndCompletedZeroReactionHistory; assertion 8개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.WritesRawInitialAndCompletedZeroReactionHistory 유지 원문 검사 body 및 assertion 동일. 038005b1d8bbe2f803b404dbb53962ec9300408b40327a0b0e90f5e4a3a7f679 038005b1d8bbe2f803b404dbb53962ec9300408b40327a0b0e90f5e4a3a7f679 "ASSERT_TRUE(result.IsOk()) | ASSERT_GE(file, 0) | EXPECT_GT( H5Lexists(file, ""/steps/Step-1/frames/0/nodal/temperature"", H5P_DEFAULT), 0) | EXPECT_LE(H5Lexists(file, ""/steps/Step-1/frames/0/nodal/reaction_heat_rate"", H5P_DEFAULT), 0) | EXPECT_LE( H5Lexists(file, ""/steps/Step-1/frames/0/element/heat_flux"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/frames/3/nodal/reaction_heat_rate"", H5P_DEFAULT), 0) | EXPECT_GT( H5Lexists(file, ""/steps/Step-1/frames/3/element/heat_flux"", H5P_DEFAULT), 0) | EXPECT_GT(H5Fclose(file), -1)" "ASSERT_TRUE(result.IsOk()) | ASSERT_GE(file, 0) | EXPECT_GT( H5Lexists(file, ""/steps/Step-1/frames/0/nodal/temperature"", H5P_DEFAULT), 0) | EXPECT_LE(H5Lexists(file, ""/steps/Step-1/frames/0/nodal/reaction_heat_rate"", H5P_DEFAULT), 0) | EXPECT_LE( H5Lexists(file, ""/steps/Step-1/frames/0/element/heat_flux"", H5P_DEFAULT), 0) | EXPECT_GT(H5Lexists(file, ""/steps/Step-1/frames/3/nodal/reaction_heat_rate"", H5P_DEFAULT), 0) | EXPECT_GT( H5Lexists(file, ""/steps/Step-1/frames/3/element/heat_flux"", H5P_DEFAULT), 0) | EXPECT_GT(H5Fclose(file), -1)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.SectionMaterialUsesGlobalMaterialIdentity ThermalHdf5ResultsWriter.SectionMaterialUsesGlobalMaterialIdentity; assertion 11개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.SectionMaterialUsesGlobalMaterialIdentity 유지 원문 검사 body 및 assertion 동일. 96c91419cb1cd6966a695185c69a1c372da0516eb31c6a71f9db7f987dd767b9 96c91419cb1cd6966a695185c69a1c372da0516eb31c6a71f9db7f987dd767b9 "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(H5Tinsert(t.Get(), ""material_internal_id"", 0, H5T_NATIVE_UINT64), 0) | ASSERT_GE(H5Dread(d.Get(), t.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &id), 0) | EXPECT_EQ(id, 1U) | ASSERT_GE(H5Tset_size(utf8.Get(), H5T_VARIABLE), 0) | ASSERT_GE(H5Tset_cset(utf8.Get(), H5T_CSET_UTF8), 0) | ASSERT_GE(H5Tinsert(source_type.Get(), ""source_file"", 0, utf8.Get()), 0) | ASSERT_GE(H5Dread(d.Get(), source_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &source), 0) | ASSERT_NE(source, nullptr) | EXPECT_EQ(std::string{source}, std::filesystem::absolute(""thermal-writer.inp"") .lexically_normal() .generic_u8string()) | EXPECT_GE(H5free_memory(source), 0)" "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(H5Tinsert(t.Get(), ""material_internal_id"", 0, H5T_NATIVE_UINT64), 0) | ASSERT_GE(H5Dread(d.Get(), t.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &id), 0) | EXPECT_EQ(id, 1U) | ASSERT_GE(H5Tset_size(utf8.Get(), H5T_VARIABLE), 0) | ASSERT_GE(H5Tset_cset(utf8.Get(), H5T_CSET_UTF8), 0) | ASSERT_GE(H5Tinsert(source_type.Get(), ""source_file"", 0, utf8.Get()), 0) | ASSERT_GE(H5Dread(d.Get(), source_type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &source), 0) | ASSERT_NE(source, nullptr) | EXPECT_EQ(std::string{source}, std::filesystem::absolute(""thermal-writer.inp"") .lexically_normal() .generic_u8string()) | EXPECT_GE(H5free_memory(source), 0)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsMissingMandatoryAttributesAndChangedValues ThermalHdf5ResultsWriter.RejectsMissingMandatoryAttributesAndChangedValues; assertion 8개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsMissingMandatoryAttributesAndChangedValues 유지 원문 검사 body 및 assertion 동일. 09fc93e87be7ffcef801a28fb026ccffcb2e9fef878c8141eba118171fdf4915 09fc93e87be7ffcef801a28fb026ccffcb2e9fef878c8141eba118171fdf4915 "EXPECT_GE(H5Adelete(m, ""source_input_identity""), 0) | EXPECT_GE(H5Adelete(d, ""units_label""), 0) | EXPECT_GE(H5Dwrite(d, H5T_NATIVE_UINT64, H5S_ALL, H5S_ALL, H5P_DEFAULT, ids), 0) | EXPECT_GE(H5Dwrite(d, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, v), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(f, 0) | ASSERT_GE(H5Fclose(f), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk())" "EXPECT_GE(H5Adelete(m, ""source_input_identity""), 0) | EXPECT_GE(H5Adelete(d, ""units_label""), 0) | EXPECT_GE(H5Dwrite(d, H5T_NATIVE_UINT64, H5S_ALL, H5S_ALL, H5P_DEFAULT, ids), 0) | EXPECT_GE(H5Dwrite(d, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, v), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(f, 0) | ASSERT_GE(H5Fclose(f), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk())" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryRequiredAttributeIsCheckedBeforePublication ThermalHdf5ResultsWriter.EveryRequiredAttributeIsCheckedBeforePublication; assertion 7개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryRequiredAttributeIsCheckedBeforePublication 유지 원문 검사 body 및 assertion 동일. e8670b807a13f32a42fc3bdf7c7ba29a13005b801faafdb48830765ba95cd051 e8670b807a13f32a42fc3bdf7c7ba29a13005b801faafdb48830765ba95cd051 ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(file, 0) | ASSERT_GE(object, 0) | ASSERT_GE(H5Adelete(object, attribute.second.c_str()), 0) | ASSERT_GE(H5Oclose(object), 0) | ASSERT_GE(H5Fclose(file), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk()) ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(file, 0) | ASSERT_GE(object, 0) | ASSERT_GE(H5Adelete(object, attribute.second.c_str()), 0) | ASSERT_GE(H5Oclose(object), 0) | ASSERT_GE(H5Fclose(file), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryCompoundFieldAndEveryDatasetIsMandatory ThermalHdf5ResultsWriter.EveryCompoundFieldAndEveryDatasetIsMandatory; assertion 6개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryCompoundFieldAndEveryDatasetIsMandatory 유지 원문 검사 body 및 assertion 동일. 2714b07516265d2c61e37c02651ac605c52a2e430bf95d6a59a176e923b72fbe 2714b07516265d2c61e37c02651ac605c52a2e430bf95d6a59a176e923b72fbe "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""Missing compound field""), std::string::npos) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | ASSERT_GE(H5Ldelete(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, diagnostics) .IsOk())" "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""Missing compound field""), std::string::npos) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | ASSERT_GE(H5Ldelete(file.Get(), path.c_str(), H5P_DEFAULT), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, diagnostics) .IsOk())" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.ReorderedPackedAdditiveCompoundsAndFixedUtf8AreAccepted ThermalHdf5ResultsWriter.ReorderedPackedAdditiveCompoundsAndFixedUtf8AreAccepted; assertion 4개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.ReorderedPackedAdditiveCompoundsAndFixedUtf8AreAccepted 유지 원문 검사 body 및 assertion 동일. eb907cbc4c5980b7b1d09251862c47f1c54fd4b68029219bbc6ee5341c15707e eb907cbc4c5980b7b1d09251862c47f1c54fd4b68029219bbc6ee5341c15707e ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | ASSERT_GE(H5Tset_size(fixed.Get(), 16), 0) | ASSERT_GE(H5Tset_cset(fixed.Get(), H5T_CSET_UTF8), 0) | EXPECT_TRUE(checked.IsOk()) ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | ASSERT_GE(H5Tset_size(fixed.Get(), 16), 0) | ASSERT_GE(H5Tset_cset(fixed.Get(), H5T_CSET_UTF8), 0) | EXPECT_TRUE(checked.IsOk()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsWrongTypesArrayExtentsNonscalarAndNonUtf8Attributes ThermalHdf5ResultsWriter.RejectsWrongTypesArrayExtentsNonscalarAndNonUtf8Attributes; assertion 7개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsWrongTypesArrayExtentsNonscalarAndNonUtf8Attributes 유지 원문 검사 body 및 assertion 동일. deb7ac11d4f8259f50d5d43317c188e2c36960898610bebc7a492eb8c58e4866 deb7ac11d4f8259f50d5d43317c188e2c36960898610bebc7a492eb8c58e4866 "ASSERT_GE(H5Adelete(g.Get(), ""is_initial""), 0) | ASSERT_GE(H5Awrite(a.Get(), H5T_NATIVE_UINT8, data), 0) | ASSERT_GE(H5Adelete(g.Get(), ""time_period""), 0) | ASSERT_GE(H5Awrite(a.Get(), H5T_NATIVE_DOUBLE, data), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""type/extent""), std::string::npos)" "ASSERT_GE(H5Adelete(g.Get(), ""is_initial""), 0) | ASSERT_GE(H5Awrite(a.Get(), H5T_NATIVE_UINT8, data), 0) | ASSERT_GE(H5Adelete(g.Get(), ""time_period""), 0) | ASSERT_GE(H5Awrite(a.Get(), H5T_NATIVE_DOUBLE, data), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""type/extent""), std::string::npos)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsWrongValuesFrameInventoriesNonfiniteAndDiagnostics ThermalHdf5ResultsWriter.RejectsWrongValuesFrameInventoriesNonfiniteAndDiagnostics; assertion 6개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RejectsWrongValuesFrameInventoriesNonfiniteAndDiagnostics 유지 원문 검사 body 및 assertion 동일. 32dc727108be7e7b965f1451c0142d9ebcb4671317da04f841ad33b9b57b2bcb 32dc727108be7e7b965f1451c0142d9ebcb4671317da04f841ad33b9b57b2bcb "ASSERT_GE(g.Get(), 0) | ASSERT_GE(H5Ldelete(f, ""/steps/Step-1/frames/2"", H5P_DEFAULT), 0) | ASSERT_GE( H5Lcreate_soft(""/missing"", f, ""/steps/Step-1/frames/0/element"", H5P_DEFAULT, H5P_DEFAULT), 0) | ASSERT_GE(H5Dwrite(d.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, values), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, diagnostics) .IsOk())" "ASSERT_GE(g.Get(), 0) | ASSERT_GE(H5Ldelete(f, ""/steps/Step-1/frames/2"", H5P_DEFAULT), 0) | ASSERT_GE( H5Lcreate_soft(""/missing"", f, ""/steps/Step-1/frames/0/element"", H5P_DEFAULT, H5P_DEFAULT), 0) | ASSERT_GE(H5Dwrite(d.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, values), 0) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, diagnostics) .IsOk()) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, diagnostics) .IsOk())" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RotatedFramesAndEndpointCloseScheduleRoundTripIndependently ThermalHdf5ResultsWriter.RotatedFramesAndEndpointCloseScheduleRoundTripIndependently; assertion 12개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.RotatedFramesAndEndpointCloseScheduleRoundTripIndependently 유지 원문 검사 body 및 assertion 동일. 9b867d4ee386eecc3e31c6233f961cdd619a2c0736f7a11b7705cadeca1c0ccd 9b867d4ee386eecc3e31c6233f961cdd619a2c0736f7a11b7705cadeca1c0ccd ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(H5Dread(d.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, frames.data()), 0) | EXPECT_DOUBLE_EQ(frames[i], expected[i % 9]) | ASSERT_GE(H5Aread(a.Get(), H5T_NATIVE_DOUBLE, &actual), 0) | EXPECT_EQ(actual, .3) | EXPECT_NE(actual, .9 - .6) | ASSERT_GE(H5Dread(initial.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, t), 0) | EXPECT_EQ(t[i], i < 5 ? -2 : 0) | ASSERT_GE( H5Dread(flux.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, q), 0) | EXPECT_EQ(q[3 * sample], static_cast(sample)) | EXPECT_EQ(q[3 * sample + 1], -static_cast(sample) - 3) | EXPECT_EQ(q[3 * sample + 2], 9) ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(H5Dread(d.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, frames.data()), 0) | EXPECT_DOUBLE_EQ(frames[i], expected[i % 9]) | ASSERT_GE(H5Aread(a.Get(), H5T_NATIVE_DOUBLE, &actual), 0) | EXPECT_EQ(actual, .3) | EXPECT_NE(actual, .9 - .6) | ASSERT_GE(H5Dread(initial.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, t), 0) | EXPECT_EQ(t[i], i < 5 ? -2 : 0) | ASSERT_GE( H5Dread(flux.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, q), 0) | EXPECT_EQ(q[3 * sample], static_cast(sample)) | EXPECT_EQ(q[3 * sample + 1], -static_cast(sample) - 3) | EXPECT_EQ(q[3 * sample + 2], 9) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryFailedLifecycleBoundaryPreservesOldFinalAndCleansCandidate ThermalHdf5ResultsWriter.EveryFailedLifecycleBoundaryPreservesOldFinalAndCleansCandidate; assertion 8개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryFailedLifecycleBoundaryPreservesOldFinalAndCleansCandidate 유지 원문 검사 body 및 assertion 동일. 411e24e5bc006ee97ce6e6c3e648e3fd63cf72585b2fef2347a8cab364de86ba 411e24e5bc006ee97ce6e6c3e648e3fd63cf72585b2fef2347a8cab364de86ba "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(d.Get(), 0) | ASSERT_GE(H5Adelete(m.Get(), ""schema_version""), 0) | EXPECT_TRUE(std::filesystem::remove(candidate)) | EXPECT_FALSE(fesa::hdf5_internal::WriteThermalFile(out.Path(), *x.domain, x.state, {}, failures[i]) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) | EXPECT_EQ(entry.path(), out.Path()) | EXPECT_EQ(files, 1U)" "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(d.Get(), 0) | ASSERT_GE(H5Adelete(m.Get(), ""schema_version""), 0) | EXPECT_TRUE(std::filesystem::remove(candidate)) | EXPECT_FALSE(fesa::hdf5_internal::WriteThermalFile(out.Path(), *x.domain, x.state, {}, failures[i]) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) | EXPECT_EQ(entry.path(), out.Path()) | EXPECT_EQ(files, 1U)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.DomainMismatchAndIncompleteHistoryCannotReplaceFinal ThermalHdf5ResultsWriter.DomainMismatchAndIncompleteHistoryCannotReplaceFinal; assertion 8개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.DomainMismatchAndIncompleteHistoryCannotReplaceFinal 유지 원문 검사 body 및 assertion 동일. 737aebeffb93534d9acc0a723361a72396790b4f57424f2410fa23ce0807f0cf 737aebeffb93534d9acc0a723361a72396790b4f57424f2410fa23ce0807f0cf ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_TRUE(different.HasValue()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), different.Value(), x.state, {}) .IsOk()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *partial.domain, partial.state, {}) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) | ASSERT_TRUE(changed_g.HasValue()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), changed_g.Value(), prescribed.state, {}) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_TRUE(different.HasValue()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), different.Value(), x.state, {}) .IsOk()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *partial.domain, partial.state, {}) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) | ASSERT_TRUE(changed_g.HasValue()) | EXPECT_FALSE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), changed_g.Value(), prescribed.state, {}) .IsOk()) | EXPECT_EQ(Bytes(out.Path()), previous) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryPrimitiveDatasetChecksShapeTypeAndValue ThermalHdf5ResultsWriter.EveryPrimitiveDatasetChecksShapeTypeAndValue; assertion 7개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.EveryPrimitiveDatasetChecksShapeTypeAndValue 유지 원문 검사 body 및 assertion 동일. 94f20f584c491bbde83edeabb6d369a9358a4227a25e8a17f615b9aa2ff6e045 94f20f584c491bbde83edeabb6d369a9358a4227a25e8a17f615b9aa2ff6e045 "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""extent""), std::string::npos) | EXPECT_NE(Message(checked).find(""primitive type""), std::string::npos) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""extent""), std::string::npos)" "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""extent""), std::string::npos) | EXPECT_NE(Message(checked).find(""primitive type""), std::string::npos) | ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | EXPECT_FALSE(checked.IsOk()) | EXPECT_NE(Message(checked).find(""extent""), std::string::npos)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.InitialRecoveryCannotBeFilledWithCompletedZeros ThermalHdf5ResultsWriter.InitialRecoveryCannotBeFilledWithCompletedZeros; assertion 5개 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp ThermalHdf5ResultsWriter.InitialRecoveryCannotBeFilledWithCompletedZeros 유지 원문 검사 body 및 assertion 동일. 0f30c83325b2edbf6f637c4324d4c8b85cf15189fb03798a5c2fa52eac8ae6ea 0f30c83325b2edbf6f637c4324d4c8b85cf15189fb03798a5c2fa52eac8ae6ea "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(g.Get(), 0) | ASSERT_GE(H5Ocopy(f.Get(), ""/steps/Step-1/frames/1/element/heat_flux"", f.Get(), ""/steps/Step-1/frames/0/element/heat_flux"", H5P_DEFAULT, H5P_DEFAULT), 0) | ASSERT_GE( H5Ocopy(f.Get(), ""/steps/Step-1/frames/1/nodal/reaction_heat_rate"", f.Get(), ""/steps/Step-1/frames/0/nodal/reaction_heat_rate"", H5P_DEFAULT, H5P_DEFAULT), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk())" "ASSERT_TRUE(fesa::ThermalHdf5ResultsWriter{} .Write(out.Path(), *x.domain, x.state, {}) .IsOk()) | ASSERT_GE(g.Get(), 0) | ASSERT_GE(H5Ocopy(f.Get(), ""/steps/Step-1/frames/1/element/heat_flux"", f.Get(), ""/steps/Step-1/frames/0/element/heat_flux"", H5P_DEFAULT, H5P_DEFAULT), 0) | ASSERT_GE( H5Ocopy(f.Get(), ""/steps/Step-1/frames/1/nodal/reaction_heat_rate"", f.Get(), ""/steps/Step-1/frames/0/nodal/reaction_heat_rate"", H5P_DEFAULT, H5P_DEFAULT), 0) | EXPECT_FALSE(fesa::hdf5_internal::SelfCheckThermalFile( out.Path(), *x.domain, x.state, {}) .IsOk())" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp support@1-313 helper/oracle/fixture/include/static assertion 구간: Definition, Fixture, Make, Temp, Path, Message, Bytes, Diagnostics, CollectAttribute, CopyAttributes, for, RewriteCompound, if, T, WriteColumn, StringAttribute, ReplacePrimitive, ChangePrimitive tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f3c40b4b5f52a1a45372592be54b1b910b2f1d1d1f25c305049ab22e15768cd6 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp support@810-815 helper/oracle/fixture/include/static assertion 구간: FailedClose tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 192b1bf23c67a96f66846de9e9b50e917d5a4347cd052fa681b3a34b2f05b181 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp support@993-993 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/io/hdf5/thermal_hdf5_results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/loads/load_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/loads/load_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. ce8c7aa7d0372bf0cd2f1627ed19cc2b1c603240d03517e959169eb746f8dd64 ce8c7aa7d0372bf0cd2f1627ed19cc2b1c603240d03517e959169eb746f8dd64 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/loads/load_test.cpp Load.ConcentratedNodalLoadEmitsStableFullDofContributions Load.ConcentratedNodalLoadEmitsStableFullDofContributions; assertion 7개 tests/unit/loads/load_test.cpp Load.ConcentratedNodalLoadEmitsStableFullDofContributions 유지 원문 검사 body 및 assertion 동일. 2ccf11bb0f56a9bf2a474ee028662ee0d6d8c21e6c25c2fc9c3e3e24dc116eb3 2ccf11bb0f56a9bf2a474ee028662ee0d6d8c21e6c25c2fc9c3e3e24dc116eb3 ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().size(), 12U) | EXPECT_EQ(contribution.source_order, 7U) | EXPECT_EQ(contribution.full_dof_index, node * components.size() + component) | EXPECT_DOUBLE_EQ(contribution.value, components[component]) ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) | ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().size(), 12U) | EXPECT_EQ(contribution.source_order, 7U) | EXPECT_EQ(contribution.full_dof_index, node * components.size() + component) | EXPECT_DOUBLE_EQ(contribution.value, components[component]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/loads/load_test.cpp Load.ConcentratedNodalLoadRejectsInvalidInputWithoutContributions Load.ConcentratedNodalLoadRejectsInvalidInputWithoutContributions; assertion 2개 tests/unit/loads/load_test.cpp Load.ConcentratedNodalLoadRejectsInvalidInputWithoutContributions 유지 원문 검사 body 및 assertion 동일. c3c7d3455b3f5352f0c13fbf53c73ff736c3a35d764cd20f952f5e34466609fa c3c7d3455b3f5352f0c13fbf53c73ff736c3a35d764cd20f952f5e34466609fa ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) ASSERT_TRUE(model.HasValue()) | ASSERT_TRUE(dofs.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/loads/load_test.cpp support@1-49 helper/oracle/fixture/include/static assertion 구간: MakeDomain, if, ExpectFailureCode tests/unit/loads/load_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e237ce80f9cbe95cd5979cd1db9a7989577e0dc5510ac16003d902aa2eafb08a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/loads/shell_surface_pressure_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 11개 tests/unit/loads/shell_surface_pressure_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 094f2106b557380c45c24cf92d2f4b860ece37d53faea45b704bfd456be26945 094f2106b557380c45c24cf92d2f4b860ece37d53faea45b704bfd456be26945 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.PartitionsUnityAndIntegratesPlanarResultantAndMoment ShellSurfacePressureKernel.PartitionsUnityAndIntegratesPlanarResultantAndMoment; assertion 0개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.PartitionsUnityAndIntegratesPlanarResultantAndMoment 유지 원문 검사 body 및 assertion 동일. f6a885c1167ddcbc8e2baf4601ea82653d59f4f3b981f6d395081374e93b7413 f6a885c1167ddcbc8e2baf4601ea82653d59f4f3b981f6d395081374e93b7413 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.ReversesExactlyForSposSnegAndNegativeMagnitude ShellSurfacePressureKernel.ReversesExactlyForSposSnegAndNegativeMagnitude; assertion 4개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.ReversesExactlyForSposSnegAndNegativeMagnitude 유지 원문 검사 body 및 assertion 동일. 87fe2f501765003b1a98bf624ccfb5d2d6678dfd6d3e073601f2e3d643229c13 87fe2f501765003b1a98bf624ccfb5d2d6678dfd6d3e073601f2e3d643229c13 EXPECT_DOUBLE_EQ(sneg.force[index], -spos.force[index]) | EXPECT_DOUBLE_EQ(negative.force[index], -spos.force[index]) | EXPECT_DOUBLE_EQ(sneg.external_tangent[index], -spos.external_tangent[index]) | EXPECT_DOUBLE_EQ(negative.external_tangent[index], -spos.external_tangent[index]) EXPECT_DOUBLE_EQ(sneg.force[index], -spos.force[index]) | EXPECT_DOUBLE_EQ(negative.force[index], -spos.force[index]) | EXPECT_DOUBLE_EQ(sneg.external_tangent[index], -spos.external_tangent[index]) | EXPECT_DOUBLE_EQ(negative.external_tangent[index], -spos.external_tangent[index]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.UsesReferenceGeometryWithExactZeroLinearTangent ShellSurfacePressureKernel.UsesReferenceGeometryWithExactZeroLinearTangent; assertion 2개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.UsesReferenceGeometryWithExactZeroLinearTangent 유지 원문 검사 body 및 assertion 동일. 6df3b7fe71338797c8f6097a473832beafa3089671066636ca75e8bca3b987f7 6df3b7fe71338797c8f6097a473832beafa3089671066636ca75e8bca3b987f7 EXPECT_EQ(with_displacement.force, without_displacement.force) | EXPECT_EQ(value, 0.0) EXPECT_EQ(with_displacement.force, without_displacement.force) | EXPECT_EQ(value, 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.UsesCurrentAreaAndNormalForFollowerForce ShellSurfacePressureKernel.UsesCurrentAreaAndNormalForFollowerForce; assertion 0개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.UsesCurrentAreaAndNormalForFollowerForce 유지 원문 검사 body 및 assertion 동일. 742615c05c1bc269305f36ae87a6697fe65fd72435d10c586b6014847cd341ba 742615c05c1bc269305f36ae87a6697fe65fd72435d10c586b6014847cd341ba 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.HasExactZeroRotationalForceRowsAndTangentBlocks ShellSurfacePressureKernel.HasExactZeroRotationalForceRowsAndTangentBlocks; assertion 2개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.HasExactZeroRotationalForceRowsAndTangentBlocks 유지 원문 검사 body 및 assertion 동일. 8d1c94d3b2b280fcd624c066f984ebf716dce5a75b9eb50cbdfa7db3bf81b3f7 8d1c94d3b2b280fcd624c066f984ebf716dce5a75b9eb50cbdfa7db3bf81b3f7 EXPECT_EQ(contribution.force[row], 0.0) | EXPECT_EQ(contribution.external_tangent[row * kDofCount + column], 0.0) EXPECT_EQ(contribution.force[row], 0.0) | EXPECT_EQ(contribution.external_tangent[row * kDofCount + column], 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.IsTranslationAndRigidRotationObjective ShellSurfacePressureKernel.IsTranslationAndRigidRotationObjective; assertion 1개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.IsTranslationAndRigidRotationObjective 유지 원문 검사 body 및 assertion 동일. 05b4e1eacac15e74c7f5645bfbccd96c0ab08dca4dd74eb6fcbee49c16daaaa5 05b4e1eacac15e74c7f5645bfbccd96c0ab08dca4dd74eb6fcbee49c16daaaa5 EXPECT_NEAR(actual, expected, 1.0e-12) EXPECT_NEAR(actual, expected, 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.IsCovariantUnderCyclicNodeRelabeling ShellSurfacePressureKernel.IsCovariantUnderCyclicNodeRelabeling; assertion 2개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.IsCovariantUnderCyclicNodeRelabeling 유지 원문 검사 body 및 assertion 동일. ca803fdcc621df980fbb68f74a2f58637161c96934d111e03221c7145bb576ba ca803fdcc621df980fbb68f74a2f58637161c96934d111e03221c7145bb576ba EXPECT_NEAR(relabeled.force[row], original.force[original_row], 1.0e-12) | EXPECT_NEAR(relabeled.external_tangent[row * kDofCount + column], original.external_tangent[original_row * kDofCount + original_column], 1.0e-12) EXPECT_NEAR(relabeled.force[row], original.force[original_row], 1.0e-12) | EXPECT_NEAR(relabeled.external_tangent[row * kDofCount + column], original.external_tangent[original_row * kDofCount + original_column], 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.MatchesCenteredFiniteDifferenceForForceAndResidualSigns ShellSurfacePressureKernel.MatchesCenteredFiniteDifferenceForForceAndResidualSigns; assertion 2개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.MatchesCenteredFiniteDifferenceForForceAndResidualSigns 유지 원문 검사 body 및 assertion 동일. dd09d801d862e32fa0409aacff9a835233c61c4f4c7061387b26285589ddf9a0 dd09d801d862e32fa0409aacff9a835233c61c4f4c7061387b26285589ddf9a0 ASSERT_GT(direction_scale, 0.0) | ASSERT_GT(scale, 0.0) ASSERT_GT(direction_scale, 0.0) | ASSERT_GT(scale, 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.PreservesGenerallyNonsymmetricFollowerTangent ShellSurfacePressureKernel.PreservesGenerallyNonsymmetricFollowerTangent; assertion 3개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.PreservesGenerallyNonsymmetricFollowerTangent 유지 원문 검사 body 및 assertion 동일. 6ac36ad2369fd30335c8d818991d31c435ccfd968051fff43160f486090f9ffe 6ac36ad2369fd30335c8d818991d31c435ccfd968051fff43160f486090f9ffe EXPECT_NE(xz, 0.0) | EXPECT_NE(zx, 0.0) | EXPECT_DOUBLE_EQ(xz, -zx) EXPECT_NE(xz, 0.0) | EXPECT_NE(zx, 0.0) | EXPECT_DOUBLE_EQ(xz, -zx) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.RejectsNonfiniteCollapsedFoldedAndInvertedGeometryAtEveryRequiredPoint ShellSurfacePressureKernel.RejectsNonfiniteCollapsedFoldedAndInvertedGeometryAtEveryRequiredPoint; assertion 0개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.RejectsNonfiniteCollapsedFoldedAndInvertedGeometryAtEveryRequiredPoint 유지 원문 검사 body 및 assertion 동일. 24d345beb376e5620bf884b8ea0190d3c9e308e0e7b90bece6e143929fd3abdd 24d345beb376e5620bf884b8ea0190d3c9e308e0e7b90bece6e143929fd3abdd 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.ValidatesGeometryEvenForZeroPressureOrFactor ShellSurfacePressureKernel.ValidatesGeometryEvenForZeroPressureOrFactor; assertion 0개 tests/unit/loads/shell_surface_pressure_test.cpp ShellSurfacePressureKernel.ValidatesGeometryEvenForZeroPressureOrFactor 유지 원문 검사 body 및 assertion 동일. 09b7acaf930fe99ec2cef7ccfa01ef7928b9a54333feb71791e9a13c0d35de37 09b7acaf930fe99ec2cef7ccfa01ef7928b9a54333feb71791e9a13c0d35de37 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/loads/shell_surface_pressure_test.cpp support@1-215 helper/oracle/fixture/include/static assertion 구간: PlanarInput, DistortedCurrentInput, EvaluateOrThrow, if, ForceAt, SumForce, MomentAboutOrigin, Norm, for, ExpectVectorRelative, ExpectArraysRelative, TangentAction, ChordLength, Rotate, ProperRotation, RotateInput, ExpectFailure tests/unit/loads/shell_surface_pressure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 78431ddeb801a8e24b974e8f45471a809df750f50df392e341b26471f651c80f 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/loads/shell_surface_pressure_test.cpp support@512-513 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/loads/shell_surface_pressure_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/materials/material_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/materials/material_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0e4f0a0beafc60dfc9ed3a016a544ed2b93a305867f8b820dc6817ebe58d8b7d 0e4f0a0beafc60dfc9ed3a016a544ed2b93a305867f8b820dc6817ebe58d8b7d 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/materials/material_test.cpp Material.OwnsIsotropicElasticityThroughVirtualBase Material.OwnsIsotropicElasticityThroughVirtualBase; assertion 9개 tests/unit/materials/material_test.cpp Material.OwnsIsotropicElasticityThroughVirtualBase 유지 원문 검사 body 및 assertion 동일. 4a8b6d7c9c0bad72f99959a9fb02d195686bbb2b555313912866b19b3601c0d9 4a8b6d7c9c0bad72f99959a9fb02d195686bbb2b555313912866b19b3601c0d9 "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(material->Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(material->SourceId().source_label, 7) | EXPECT_EQ(material->SourceId().source_label_text, ""Steel"") | EXPECT_EQ(isotropic.Name(), ""Steel"") | EXPECT_DOUBLE_EQ(isotropic.YoungsModulus(), 210.0e9) | EXPECT_DOUBLE_EQ(isotropic.PoissonsRatio(), 0.3) | EXPECT_EQ(isotropic.Location().file, ""models/material.inp"") | EXPECT_EQ(isotropic.Location().line, 30U)" "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(material->Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(material->SourceId().source_label, 7) | EXPECT_EQ(material->SourceId().source_label_text, ""Steel"") | EXPECT_EQ(isotropic.Name(), ""Steel"") | EXPECT_DOUBLE_EQ(isotropic.YoungsModulus(), 210.0e9) | EXPECT_DOUBLE_EQ(isotropic.PoissonsRatio(), 0.3) | EXPECT_EQ(isotropic.Location().file, ""models/material.inp"") | EXPECT_EQ(isotropic.Location().line, 30U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/materials/material_test.cpp Material.RejectsInvalidCurrentElasticFields Material.RejectsInvalidCurrentElasticFields; assertion 5개 tests/unit/materials/material_test.cpp Material.RejectsInvalidCurrentElasticFields 유지 원문 검사 body 및 assertion 동일. b9022c41bd0e641beaa68206c8fc19d2396a5b41ccf8e8bfe1bbd9911b9dde81 b9022c41bd0e641beaa68206c8fc19d2396a5b41ccf8e8bfe1bbd9911b9dde81 ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].severity, fesa::Severity::kError) | EXPECT_TRUE(beam_compatible.HasValue()) ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].severity, fesa::Severity::kError) | EXPECT_TRUE(beam_compatible.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/materials/material_test.cpp support@1-18 helper/oracle/fixture/include/static assertion 구간: MaterialSourceId, MaterialLocation tests/unit/materials/material_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0bc44f8ab121b123fdba22e1b3d50215ac0446ace019d14397d3e8a69ff0ae3b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/math/dense_blas_internal_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 14개 tests/unit/math/dense_blas_internal_test.cpp file 이관 raw primitive·TLS 복원 검사를 복원하고 Refactor factor/jet 검사를 유지한다. Cholesky lower·inverse 값은 DenseFactor::Lower와 SolveLower(identity)로 검사한다. 실패한 out-parameter 보존은 이전 owned factor/result 보존으로 검사한다. 옛 mutable reason enum·throw 구조는 typed Result의 shape/nonfinite/pivot 실패와 성공 후 재사용으로 이관한다. 92b3b3a482f320eb9e0206baf3190e6c96f110b5c3e63a27cfc038cb6dc5bf5e 358c0fa2dac6cebb5ddc2cdac29661c7d82a8b99da881ce069275b4daf4aba3a 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/dense_blas_internal_test.cpp DenseFactor.LuSolvesRectangularRhsOnBothSidesAndTransposes DenseFactor.LuSolvesRectangularRhsOnBothSidesAndTransposes; assertion 3개 tests/unit/math/dense_blas_internal_test.cpp DenseFactor.LuSolvesRectangularRhsOnBothSidesAndTransposes 유지 원문 검사 body 및 assertion 동일. 8ee576cfac5011bf3db4491f2722297eb334e52e620a6da187fa10a0725032c3 8ee576cfac5011bf3db4491f2722297eb334e52e620a6da187fa10a0725032c3 ASSERT_TRUE(factor.HasValue()) | EXPECT_DOUBLE_EQ(factor.Value().Determinant(), -4.0) | ASSERT_TRUE(solved.HasValue()) ASSERT_TRUE(factor.HasValue()) | EXPECT_DOUBLE_EQ(factor.Value().Determinant(), -4.0) | ASSERT_TRUE(solved.HasValue()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/dense_blas_internal_test.cpp DenseFactor.CholeskySolvesAndWhiteningRetainsScaleAndOrientation DenseFactor.CholeskySolvesAndWhiteningRetainsScaleAndOrientation; assertion 11개 tests/unit/math/dense_blas_internal_test.cpp DenseFactor.CholeskySolvesAndWhiteningRetainsScaleAndOrientation 유지 원문 검사 body 및 assertion 동일. c4763e27ab0b305c36731c7445ad6b9e38aa464d71e56a07e9997f7038904f89 c4763e27ab0b305c36731c7445ad6b9e38aa464d71e56a07e9997f7038904f89 ASSERT_TRUE(factor.HasValue()) | EXPECT_DOUBLE_EQ(factor.Value().Determinant(), 16.0) | ASSERT_TRUE(lower.HasValue()) | EXPECT_DOUBLE_EQ(lower.Value()(0, 0), 2.0) | EXPECT_DOUBLE_EQ(lower.Value()(0, 1), 0.0) | EXPECT_DOUBLE_EQ(lower.Value()(1, 0), 1.0) | EXPECT_DOUBLE_EQ(lower.Value()(1, 1), 2.0) | ASSERT_TRUE(solved.HasValue()) | ASSERT_TRUE(triangular.HasValue()) | ASSERT_TRUE(w.HasValue()) | EXPECT_DOUBLE_EQ(gram, i == j ? 1.0 : 0.0) ASSERT_TRUE(factor.HasValue()) | EXPECT_DOUBLE_EQ(factor.Value().Determinant(), 16.0) | ASSERT_TRUE(lower.HasValue()) | EXPECT_DOUBLE_EQ(lower.Value()(0, 0), 2.0) | EXPECT_DOUBLE_EQ(lower.Value()(0, 1), 0.0) | EXPECT_DOUBLE_EQ(lower.Value()(1, 0), 1.0) | EXPECT_DOUBLE_EQ(lower.Value()(1, 1), 2.0) | ASSERT_TRUE(solved.HasValue()) | ASSERT_TRUE(triangular.HasValue()) | ASSERT_TRUE(w.HasValue()) | EXPECT_DOUBLE_EQ(gram, i == j ? 1.0 : 0.0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/dense_blas_internal_test.cpp DenseFactor.OwnsSnapshotAndFailedCandidatesPreserveReusableFactor DenseFactor.OwnsSnapshotAndFailedCandidatesPreserveReusableFactor; assertion 20개 tests/unit/math/dense_blas_internal_test.cpp DenseFactor.OwnsSnapshotAndFailedCandidatesPreserveReusableFactor 유지 원문 검사 body 및 assertion 동일. 885e2764eedb21b7dcfdb8b6f4abc01784b7ccd5ddf4d6ba8c5372ce07be1769 885e2764eedb21b7dcfdb8b6f4abc01784b7ccd5ddf4d6ba8c5372ce07be1769 ASSERT_TRUE(factor.HasValue()) | ASSERT_TRUE(changed.HasValue()) | ASSERT_TRUE(old_solution.HasValue()) | EXPECT_DOUBLE_EQ(old_solution.Value()(0, 0), 4) | EXPECT_DOUBLE_EQ(changed.Value().Solve(rhs).Value()(0, 0), 1) | EXPECT_FALSE(DenseFactor::Lu(Matrix{2U, 2U}).HasValue()) | EXPECT_FALSE(DenseFactor::Cholesky(Matrix{2U, 2U}).HasValue()) | EXPECT_FALSE(DenseFactor::Cholesky(a).HasValue()) | EXPECT_FALSE(DenseFactor::Lu(Matrix{2U, 3U}).HasValue()) | EXPECT_FALSE(DenseFactor::Lu(a).HasValue()) | EXPECT_FALSE(DenseFactor::Cholesky(a).HasValue()) | EXPECT_FALSE(factor.Value().Solve(Matrix{3U, 1U}).HasValue()) | EXPECT_FALSE(factor.Value().SolveRight(Matrix{1U, 3U}).HasValue()) | EXPECT_FALSE(factor.Value().SolveLower(rhs).HasValue()) | EXPECT_FALSE(factor.Value().Solve(rhs).HasValue()) | EXPECT_DOUBLE_EQ(old_solution.Value()(0, 0), 4) | EXPECT_DOUBLE_EQ(factor.Value().Solve(rhs).Value()(0, 0), 4) | ASSERT_TRUE(tiny_factor.HasValue()) | EXPECT_FALSE(tiny_factor.Value() .Solve(Matrix{1U, 1U, (std::numeric_limits::max)()}) .HasValue()) | EXPECT_DOUBLE_EQ(tiny_factor.Value().Solve(tiny).Value()(0, 0), 1) ASSERT_TRUE(factor.HasValue()) | ASSERT_TRUE(changed.HasValue()) | ASSERT_TRUE(old_solution.HasValue()) | EXPECT_DOUBLE_EQ(old_solution.Value()(0, 0), 4) | EXPECT_DOUBLE_EQ(changed.Value().Solve(rhs).Value()(0, 0), 1) | EXPECT_FALSE(DenseFactor::Lu(Matrix{2U, 2U}).HasValue()) | EXPECT_FALSE(DenseFactor::Cholesky(Matrix{2U, 2U}).HasValue()) | EXPECT_FALSE(DenseFactor::Cholesky(a).HasValue()) | EXPECT_FALSE(DenseFactor::Lu(Matrix{2U, 3U}).HasValue()) | EXPECT_FALSE(DenseFactor::Lu(a).HasValue()) | EXPECT_FALSE(DenseFactor::Cholesky(a).HasValue()) | EXPECT_FALSE(factor.Value().Solve(Matrix{3U, 1U}).HasValue()) | EXPECT_FALSE(factor.Value().SolveRight(Matrix{1U, 3U}).HasValue()) | EXPECT_FALSE(factor.Value().SolveLower(rhs).HasValue()) | EXPECT_FALSE(factor.Value().Solve(rhs).HasValue()) | EXPECT_DOUBLE_EQ(old_solution.Value()(0, 0), 4) | EXPECT_DOUBLE_EQ(factor.Value().Solve(rhs).Value()(0, 0), 4) | ASSERT_TRUE(tiny_factor.HasValue()) | EXPECT_FALSE(tiny_factor.Value() .Solve(Matrix{1U, 1U, (std::numeric_limits::max)()}) .HasValue()) | EXPECT_DOUBLE_EQ(tiny_factor.Value().Solve(tiny).Value()(0, 0), 1) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/dense_blas_internal_test.cpp DenseFactor.EmptyAndInfinityConditionBoundaryAreExplicit DenseFactor.EmptyAndInfinityConditionBoundaryAreExplicit; assertion 12개 tests/unit/math/dense_blas_internal_test.cpp DenseFactor.EmptyAndInfinityConditionBoundaryAreExplicit 유지 원문 검사 body 및 assertion 동일. ea146f605bef37ea46d6a0c268b5d6c5524ba1f62f893140896acf4e489498f0 ea146f605bef37ea46d6a0c268b5d6c5524ba1f62f893140896acf4e489498f0 ASSERT_TRUE(empty.HasValue()) | ASSERT_TRUE(left.HasValue()) | EXPECT_EQ(left.Value().Columns(), 3U) | ASSERT_TRUE(right.HasValue()) | EXPECT_EQ(right.Value().Rows(), 4U) | EXPECT_FALSE(empty.Value().ReciprocalConditionInfinity().HasValue()) | ASSERT_TRUE(factor.HasValue()) | ASSERT_TRUE(rcond.HasValue()) | EXPECT_DOUBLE_EQ(rcond.Value(), diagonal) | EXPECT_EQ(rcond.Value() >= 0x1p-32, diagonal >= 0x1p-32) | EXPECT_EQ(factor.Value().Solve(Matrix{2U, 0U}).Value().Columns(), 0U) | EXPECT_EQ(factor.Value().SolveRight(Matrix{0U, 2U}).Value().Rows(), 0U) ASSERT_TRUE(empty.HasValue()) | ASSERT_TRUE(left.HasValue()) | EXPECT_EQ(left.Value().Columns(), 3U) | ASSERT_TRUE(right.HasValue()) | EXPECT_EQ(right.Value().Rows(), 4U) | EXPECT_FALSE(empty.Value().ReciprocalConditionInfinity().HasValue()) | ASSERT_TRUE(factor.HasValue()) | ASSERT_TRUE(rcond.HasValue()) | EXPECT_DOUBLE_EQ(rcond.Value(), diagonal) | EXPECT_EQ(rcond.Value() >= 0x1p-32, diagonal >= 0x1p-32) | EXPECT_EQ(factor.Value().Solve(Matrix{2U, 0U}).Value().Columns(), 0U) | EXPECT_EQ(factor.Value().SolveRight(Matrix{0U, 2U}).Value().Rows(), 0U) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/dense_blas_internal_test.cpp DenseFactor.GeneralDimensionAndNonDiagonalConditionUseFullCoefficient DenseFactor.GeneralDimensionAndNonDiagonalConditionUseFullCoefficient; assertion 6개 tests/unit/math/dense_blas_internal_test.cpp DenseFactor.GeneralDimensionAndNonDiagonalConditionUseFullCoefficient 유지 원문 검사 body 및 assertion 동일. dbd223f1cc316c3320525fee225834b093270d83b8f9ea98560c7ad11364726e dbd223f1cc316c3320525fee225834b093270d83b8f9ea98560c7ad11364726e ASSERT_TRUE(factor.HasValue()) | ASSERT_TRUE(solved.HasValue()) | ASSERT_TRUE(lu.HasValue()) | EXPECT_DOUBLE_EQ(lu.Value().ReciprocalConditionInfinity().Value(), 1.0 / 3.0) | EXPECT_FALSE(lu.Value().Lower().HasValue()) | EXPECT_FALSE(DenseFactor::Lu(overflow).HasValue()) ASSERT_TRUE(factor.HasValue()) | ASSERT_TRUE(solved.HasValue()) | ASSERT_TRUE(lu.HasValue()) | EXPECT_DOUBLE_EQ(lu.Value().ReciprocalConditionInfinity().Value(), 1.0 / 3.0) | EXPECT_FALSE(lu.Value().Lower().HasValue()) | EXPECT_FALSE(DenseFactor::Lu(overflow).HasValue()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CDup003ConvertsZeroNormalAndOverflowLengths DenseBlasInternal.CDup003ConvertsZeroNormalAndOverflowLengths; assertion 6개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CDup003ConvertsZeroNormalAndOverflowLengths 유지 원문 검사 body 및 assertion 동일. 7310c1121f67249879da772e16e1f0aed31290565d542780b71704dbe397cf82 7310c1121f67249879da772e16e1f0aed31290565d542780b71704dbe397cf82 ASSERT_TRUE(zero.HasValue()) | EXPECT_EQ(zero.Value(), 0) | ASSERT_TRUE(normal.HasValue()) | EXPECT_EQ(normal.Value(), 3) | EXPECT_FALSE(rejected.HasValue()) | EXPECT_FALSE(rejected.GetStatus().IsOk()) ASSERT_TRUE(zero.HasValue()) | EXPECT_EQ(zero.Value(), 0) | ASSERT_TRUE(normal.HasValue()) | EXPECT_EQ(normal.Value(), 3) | EXPECT_FALSE(rejected.HasValue()) | EXPECT_FALSE(rejected.GetStatus().IsOk()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CDup003CopiesZeroAndNonzeroContiguousValues DenseBlasInternal.CDup003CopiesZeroAndNonzeroContiguousValues; assertion 2개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.CDup003CopiesZeroAndNonzeroContiguousValues 유지 원문 검사 body 및 assertion 동일. 6174848905a7f5e3b5af5b336c22d8d4ce3e9872c557e543d783f5b8e2970e36 6174848905a7f5e3b5af5b336c22d8d4ce3e9872c557e543d783f5b8e2970e36 EXPECT_NO_THROW(CopyValues(nullptr, 0U, nullptr)) | EXPECT_EQ(destination, source) EXPECT_NO_THROW(CopyValues(nullptr, 0U, nullptr)) | EXPECT_EQ(destination, source) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.TransposeLeftMatchesIndependentRectangularProduct DenseBlasInternal.TransposeLeftMatchesIndependentRectangularProduct; assertion 6개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.TransposeLeftMatchesIndependentRectangularProduct 유지 원문 검사 body 및 assertion 동일. 2f128333a889ea4bd05bf8dba9fd53164ac5cfa096b4c16a4ebb8d68e134bc01 2f128333a889ea4bd05bf8dba9fd53164ac5cfa096b4c16a4ebb8d68e134bc01 ASSERT_EQ(product.Rows(), 2U) | ASSERT_EQ(product.Columns(), 4U) | EXPECT_DOUBLE_EQ(product(row, column), expected) | EXPECT_DOUBLE_EQ(gram(0U, 0U), 35.0) | EXPECT_DOUBLE_EQ(gram(0U, 1U), 44.0) | EXPECT_DOUBLE_EQ(gram(1U, 1U), 56.0) ASSERT_EQ(product.Rows(), 2U) | ASSERT_EQ(product.Columns(), 4U) | EXPECT_DOUBLE_EQ(product(row, column), expected) | EXPECT_DOUBLE_EQ(gram(0U, 0U), 35.0) | EXPECT_DOUBLE_EQ(gram(0U, 1U), 44.0) | EXPECT_DOUBLE_EQ(gram(1U, 1U), 56.0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.TransposeLeftRetainsEmptyAndFailureContracts DenseBlasInternal.TransposeLeftRetainsEmptyAndFailureContracts; assertion 7개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.TransposeLeftRetainsEmptyAndFailureContracts 유지 원문 검사 body 및 assertion 동일. b0f121f2d20673a3ca8fb37991c77f5f1282119ad4bfdb2f8ebbf8a62f11b727 b0f121f2d20673a3ca8fb37991c77f5f1282119ad4bfdb2f8ebbf8a62f11b727 ASSERT_EQ(zeros.Rows(), 2U) | ASSERT_EQ(zeros.Columns(), 3U) | EXPECT_DOUBLE_EQ(zeros(1U, 2U), 0.0) | EXPECT_EQ(empty.Rows(), 0U) | EXPECT_EQ(empty.Columns(), 0U) | EXPECT_THROW(static_cast(MultiplyTransposeLeft(Matrix{1U, 2U}, Matrix{2U, 1U})), std::invalid_argument) | EXPECT_THROW(static_cast(MultiplyTransposeLeft( Matrix{1U, 0U}, Matrix{1U, 1U, (std::numeric_limits::quiet_NaN)()})), std::invalid_argument) ASSERT_EQ(zeros.Rows(), 2U) | ASSERT_EQ(zeros.Columns(), 3U) | EXPECT_DOUBLE_EQ(zeros(1U, 2U), 0.0) | EXPECT_EQ(empty.Rows(), 0U) | EXPECT_EQ(empty.Columns(), 0U) | EXPECT_THROW(static_cast(MultiplyTransposeLeft(Matrix{1U, 2U}, Matrix{2U, 1U})), std::invalid_argument) | EXPECT_THROW(static_cast(MultiplyTransposeLeft( Matrix{1U, 0U}, Matrix{1U, 1U, (std::numeric_limits::quiet_NaN)()})), std::invalid_argument) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.RawProductsPreserveDestinationOnNonfiniteInput DenseBlasInternal.RawProductsPreserveDestinationOnNonfiniteInput; assertion 7개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.RawProductsPreserveDestinationOnNonfiniteInput 유지 원문 검사 body 및 assertion 동일. 4a41cf9c6954d5a62bab71682bbc7bb7418678a454a00182c543ae3094d74d62 4a41cf9c6954d5a62bab71682bbc7bb7418678a454a00182c543ae3094d74d62 ASSERT_TRUE(MultiplyTransposeRight(left, 2U, right, 3U, 2U, destination.data())) | EXPECT_EQ(destination, (std::array{-7.0, 23.0, 11.0, -39.0, 11.0, 67.0})) | EXPECT_FALSE(MultiplyTransposeRight(invalid, 1U, right, 3U, 2U, destination.data())) | EXPECT_FALSE(OuterProduct(left, 2U, invalid, 2U, destination.data())) | EXPECT_DOUBLE_EQ(value, 42.0) | ASSERT_TRUE(OuterProduct(left, 2U, right, 3U, destination.data())) | EXPECT_EQ(destination, (std::array{5.0, -6.0, 7.0, 10.0, -12.0, 14.0})) ASSERT_TRUE(MultiplyTransposeRight(left, 2U, right, 3U, 2U, destination.data())) | EXPECT_EQ(destination, (std::array{-7.0, 23.0, 11.0, -39.0, 11.0, 67.0})) | EXPECT_FALSE(MultiplyTransposeRight(invalid, 1U, right, 3U, 2U, destination.data())) | EXPECT_FALSE(OuterProduct(left, 2U, invalid, 2U, destination.data())) | EXPECT_DOUBLE_EQ(value, 42.0) | ASSERT_TRUE(OuterProduct(left, 2U, right, 3U, destination.data())) | EXPECT_EQ(destination, (std::array{5.0, -6.0, 7.0, 10.0, -12.0, 14.0})) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.RawProductZeroDimensionsAndOverflowAreExplicit DenseBlasInternal.RawProductZeroDimensionsAndOverflowAreExplicit; assertion 8개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.RawProductZeroDimensionsAndOverflowAreExplicit 유지 원문 검사 body 및 assertion 동일. 984e62302170c08919b0063009bba2b65a90ada4fb11785eb01836c63d202836 984e62302170c08919b0063009bba2b65a90ada4fb11785eb01836c63d202836 EXPECT_TRUE(OuterProduct(nullptr, 0U, nullptr, 3U, nullptr)) | EXPECT_TRUE(MultiplyTransposeRight(nullptr, 2U, nullptr, 0U, 3U, nullptr)) | ASSERT_TRUE(MultiplyTransposeRight(nullptr, 2U, nullptr, 3U, 0U, zeros.data())) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_THROW(MultiplyTransposeRight(nullptr, 1U, nullptr, 1U, 1U, nullptr), std::invalid_argument) | EXPECT_THROW(MultiplyTransposeRight(nullptr, overflow, nullptr, 0U, 0U, nullptr), std::length_error) | EXPECT_THROW(CopyValues(&unchanged, overflow, &unchanged), std::length_error) | EXPECT_DOUBLE_EQ(unchanged, 42.0) EXPECT_TRUE(OuterProduct(nullptr, 0U, nullptr, 3U, nullptr)) | EXPECT_TRUE(MultiplyTransposeRight(nullptr, 2U, nullptr, 0U, 3U, nullptr)) | ASSERT_TRUE(MultiplyTransposeRight(nullptr, 2U, nullptr, 3U, 0U, zeros.data())) | EXPECT_DOUBLE_EQ(value, 0.0) | EXPECT_THROW(MultiplyTransposeRight(nullptr, 1U, nullptr, 1U, 1U, nullptr), std::invalid_argument) | EXPECT_THROW(MultiplyTransposeRight(nullptr, overflow, nullptr, 0U, 0U, nullptr), std::length_error) | EXPECT_THROW(CopyValues(&unchanged, overflow, &unchanged), std::length_error) | EXPECT_DOUBLE_EQ(unchanged, 42.0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.ContiguousPrimitivesCheckEmptyAndOverflowBeforeUse DenseBlasInternal.ContiguousPrimitivesCheckEmptyAndOverflowBeforeUse; assertion 9개 tests/unit/math/dense_blas_internal_test.cpp DenseBlasInternal.ContiguousPrimitivesCheckEmptyAndOverflowBeforeUse 유지 원문 검사 body 및 assertion 동일. 2ed41da5963f5cd8c8f1883a7bf7e6400ec02830e89b87c96d2272d5040a25dc 2ed41da5963f5cd8c8f1883a7bf7e6400ec02830e89b87c96d2272d5040a25dc EXPECT_DOUBLE_EQ(DotValues(nullptr, 0U, nullptr), 0.0) | EXPECT_DOUBLE_EQ(NormValues(nullptr, 0U), 0.0) | EXPECT_NO_THROW(ScaleValues(2.0, nullptr, 0U)) | EXPECT_NO_THROW(AxpyValues(2.0, nullptr, 0U, nullptr)) | EXPECT_THROW(DotValues(nullptr, overflow, nullptr), std::length_error) | EXPECT_THROW(NormValues(nullptr, overflow), std::length_error) | EXPECT_THROW(ScaleValues(2.0, &unchanged, overflow), std::length_error) | EXPECT_THROW(AxpyValues(2.0, nullptr, overflow, &unchanged), std::length_error) | EXPECT_DOUBLE_EQ(unchanged, 42.0) EXPECT_DOUBLE_EQ(DotValues(nullptr, 0U, nullptr), 0.0) | EXPECT_DOUBLE_EQ(NormValues(nullptr, 0U), 0.0) | EXPECT_NO_THROW(ScaleValues(2.0, nullptr, 0U)) | EXPECT_NO_THROW(AxpyValues(2.0, nullptr, 0U, nullptr)) | EXPECT_THROW(DotValues(nullptr, overflow, nullptr), std::length_error) | EXPECT_THROW(NormValues(nullptr, overflow), std::length_error) | EXPECT_THROW(ScaleValues(2.0, &unchanged, overflow), std::length_error) | EXPECT_THROW(AxpyValues(2.0, nullptr, overflow, &unchanged), std::length_error) | EXPECT_DOUBLE_EQ(unchanged, 42.0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/dense_blas_internal_test.cpp JetLinearSolve.RecoversMixedCubicCoefficientsWithOnePrimalFactor JetLinearSolve.RecoversMixedCubicCoefficientsWithOnePrimalFactor; assertion 3개 tests/unit/math/dense_blas_internal_test.cpp JetLinearSolve.RecoversMixedCubicCoefficientsWithOnePrimalFactor 유지 원문 검사 body 및 assertion 동일. a4023af7275d952ed8a1919ec83d546e161d40a68ab5306657ccf97b5b8c9b18 a4023af7275d952ed8a1919ec83d546e161d40a68ab5306657ccf97b5b8c9b18 ASSERT_TRUE(factor.HasValue()) | ASSERT_TRUE(SolveJetAction(a, rhs, factor.Value(), {1,2,3,4}, PolynomialConstant, PolynomialRead, PolynomialWrite, solved)) | EXPECT_NEAR(solved[row].c[i][j], expected[row].c[i][j], 2e-14) ASSERT_TRUE(factor.HasValue()) | ASSERT_TRUE(SolveJetAction(a, rhs, factor.Value(), {1,2,3,4}, PolynomialConstant, PolynomialRead, PolynomialWrite, solved)) | EXPECT_NEAR(solved[row].c[i][j], expected[row].c[i][j], 2e-14) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/dense_blas_internal_test.cpp JetLinearSolve.FailedChannelSolvePreservesCandidateAndInputs JetLinearSolve.FailedChannelSolvePreservesCandidateAndInputs; assertion 5개 tests/unit/math/dense_blas_internal_test.cpp JetLinearSolve.FailedChannelSolvePreservesCandidateAndInputs 유지 원문 검사 body 및 assertion 동일. 30ae0ad962f0faf0e9eef5fa39985aeff2df2aaed4869a43378baf0769b30388 30ae0ad962f0faf0e9eef5fa39985aeff2df2aaed4869a43378baf0769b30388 ASSERT_TRUE(factor.HasValue()) | EXPECT_FALSE(SolveJetAction(a, rhs, factor.Value(), {1,2,3,4}, PolynomialConstant, PolynomialRead, PolynomialWrite, solved)) | EXPECT_EQ(solved[0].c[0][0], 17) | EXPECT_EQ(a[1][1].c[0][0], 1) | EXPECT_EQ(rhs[1].c[1][0], std::numeric_limits::infinity()) ASSERT_TRUE(factor.HasValue()) | EXPECT_FALSE(SolveJetAction(a, rhs, factor.Value(), {1,2,3,4}, PolynomialConstant, PolynomialRead, PolynomialWrite, solved)) | EXPECT_EQ(solved[0].c[0][0], 17) | EXPECT_EQ(a[1][1].c[0][0], 1) | EXPECT_EQ(rhs[1].c[1][0], std::numeric_limits::infinity()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/dense_blas_internal_test.cpp support@1-38 helper/oracle/fixture/include/static assertion 구간: fesa, FactorRhs, ExpectFactorSolution tests/unit/math/dense_blas_internal_test.cpp file-support 이관 raw primitive·TLS 복원 검사를 복원하고 Refactor factor/jet 검사를 유지한다. Cholesky lower·inverse 값은 DenseFactor::Lower와 SolveLower(identity)로 검사한다. 실패한 out-parameter 보존은 이전 owned factor/result 보존으로 검사한다. 옛 mutable reason enum·throw 구조는 typed Result의 shape/nonfinite/pivot 실패와 성공 후 재사용으로 이관한다. 8f13d3e6bf671a0c1d0a2130c4d1fb92818b0639a0f3a8f17ebd5a701e126838 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/dense_blas_internal_test.cpp support@329-366 helper/oracle/fixture/include/static assertion 구간: fesa, Polynomial, PolynomialConstant, PolynomialRead, PolynomialWrite tests/unit/math/dense_blas_internal_test.cpp file-support 유지 raw primitive·TLS 복원 검사를 복원하고 Refactor factor/jet 검사를 유지한다. Cholesky lower·inverse 값은 DenseFactor::Lower와 SolveLower(identity)로 검사한다. 실패한 out-parameter 보존은 이전 owned factor/result 보존으로 검사한다. 옛 mutable reason enum·throw 구조는 typed Result의 shape/nonfinite/pivot 실패와 성공 후 재사용으로 이관한다. 6d6e95a56f8e52a8509a0cd10d7a3ff86f0a0c886ebbb746be7b3b212792dfc4 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/dense_blas_internal_test.cpp support@427-428 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/dense_blas_internal_test.cpp file-support 유지 raw primitive·TLS 복원 검사를 복원하고 Refactor factor/jet 검사를 유지한다. Cholesky lower·inverse 값은 DenseFactor::Lower와 SolveLower(identity)로 검사한다. 실패한 out-parameter 보존은 이전 owned factor/result 보존으로 검사한다. 옛 mutable reason enum·throw 구조는 typed Result의 shape/nonfinite/pivot 실패와 성공 후 재사용으로 이관한다. 0c7b9a2d7d4c2814fe4dfea8e7034b85ea93318c441c7b770362b4e9a9dadcb5 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/high_low_arithmetic_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 7개 tests/unit/math/high_low_arithmetic_test.cpp file 이관 Dev frozen oracle helper 원문을 유지한다. 모든 exponent·finite 분류·raw-bit 검사를 복원하고 Refactor packet dispatch 검사를 함께 남긴다. 9a7cff8145fef7279b78dae9839d85d69d4b85de012ff89c943efc9e3aa02e6f 6e7fafa845bdd0c3a648b846f2ed54bf2fd07d5ec492a7c84b164c93f6e6ecc4 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RetainsSubUlpAdditionsAndSignedCancellation HighLowArithmetic.RetainsSubUlpAdditionsAndSignedCancellation; assertion 15개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RetainsSubUlpAdditionsAndSignedCancellation 유지 원문 검사 body 및 assertion 동일. f2a492c6eb8068167a3979f743c32cbc73dfe847846d892e715ed7bfbc9e05ec f2a492c6eb8068167a3979f743c32cbc73dfe847846d892e715ed7bfbc9e05ec ASSERT_TRUE(ArithmeticEnvironmentSupported()) | EXPECT_FALSE(IsNormalized(HighLow{-0.0, -0.0})) | EXPECT_TRUE(IsNormalized(HighLow{-0.0})) | EXPECT_FALSE(std::signbit(HighLow{-0.0}.high)) | EXPECT_FALSE(std::signbit(Negate(HighLow{}).high)) | EXPECT_FALSE(std::signbit(Negate(HighLow{}).low)) | EXPECT_EQ(positive.high, 1) | EXPECT_EQ(positive.low, tiny) | EXPECT_EQ(Rounded(positive), 1) | EXPECT_EQ(difference.high, tiny) | EXPECT_EQ(difference.low, 0) | EXPECT_EQ(Compare(positive, HighLow{1}), 1) | EXPECT_EQ(Compare(HighLow{1, -tiny}, HighLow{1}), -1) | EXPECT_EQ(Compare(Add(positive, Negate(positive)), HighLow{}), 0) | EXPECT_EQ(Abs(HighLow{-1, -tiny}).low, tiny) ASSERT_TRUE(ArithmeticEnvironmentSupported()) | EXPECT_FALSE(IsNormalized(HighLow{-0.0, -0.0})) | EXPECT_TRUE(IsNormalized(HighLow{-0.0})) | EXPECT_FALSE(std::signbit(HighLow{-0.0}.high)) | EXPECT_FALSE(std::signbit(Negate(HighLow{}).high)) | EXPECT_FALSE(std::signbit(Negate(HighLow{}).low)) | EXPECT_EQ(positive.high, 1) | EXPECT_EQ(positive.low, tiny) | EXPECT_EQ(Rounded(positive), 1) | EXPECT_EQ(difference.high, tiny) | EXPECT_EQ(difference.low, 0) | EXPECT_EQ(Compare(positive, HighLow{1}), 1) | EXPECT_EQ(Compare(HighLow{1, -tiny}, HighLow{1}), -1) | EXPECT_EQ(Compare(Add(positive, Negate(positive)), HighLow{}), 0) | EXPECT_EQ(Abs(HighLow{-1, -tiny}).low, tiny) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.AllProductTermsAndDivisionResidualReachState HighLowArithmetic.AllProductTermsAndDivisionResidualReachState; assertion 6개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.AllProductTermsAndDivisionResidualReachState 유지 원문 검사 body 및 assertion 동일. 5d464b75e43ed56254ebd034fe40e7d2683352bbe913cd6eaf816614bd3582dd 5d464b75e43ed56254ebd034fe40e7d2683352bbe913cd6eaf816614bd3582dd EXPECT_EQ(product.high, 1) | EXPECT_EQ(product.low, -std::ldexp(1.0, -120)) | ASSERT_TRUE(IsNormalized(quotient)) | EXPECT_LE(std::abs(defect.high), std::ldexp(1.0, -104)) | EXPECT_EQ(cancellation.high, tiny / 2) | EXPECT_EQ(cancellation.low, 0) EXPECT_EQ(product.high, 1) | EXPECT_EQ(product.low, -std::ldexp(1.0, -120)) | ASSERT_TRUE(IsNormalized(quotient)) | EXPECT_LE(std::abs(defect.high), std::ldexp(1.0, -104)) | EXPECT_EQ(cancellation.high, tiny / 2) | EXPECT_EQ(cancellation.low, 0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.NormalizesTiesAndCrossesPowerOfTwoBoundary HighLowArithmetic.NormalizesTiesAndCrossesPowerOfTwoBoundary; assertion 6개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.NormalizesTiesAndCrossesPowerOfTwoBoundary 유지 원문 검사 body 및 assertion 동일. 4bbb8298c7a24ac9be9d05d58a013ed1d2e3ae9602815e911f9596f567694549 4bbb8298c7a24ac9be9d05d58a013ed1d2e3ae9602815e911f9596f567694549 EXPECT_TRUE(IsNormalized(HighLow{1, half_ulp})) | EXPECT_FALSE(IsNormalized(HighLow{std::nextafter(1.0, 2.0), -half_ulp})) | EXPECT_EQ(result.high, std::nextafter(1.0, 2.0)) | EXPECT_EQ(result.low, 0) | EXPECT_EQ(Add(minimum, minimum).high, 2 * minimum.high) | EXPECT_EQ(Multiply(minimum, HighLow{1}).high, minimum.high) EXPECT_TRUE(IsNormalized(HighLow{1, half_ulp})) | EXPECT_FALSE(IsNormalized(HighLow{std::nextafter(1.0, 2.0), -half_ulp})) | EXPECT_EQ(result.high, std::nextafter(1.0, 2.0)) | EXPECT_EQ(result.low, 0) | EXPECT_EQ(Add(minimum, minimum).high, 2 * minimum.high) | EXPECT_EQ(Multiply(minimum, HighLow{1}).high, minimum.high) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RejectsUnsupportedDyadicTailAndNonfiniteResults HighLowArithmetic.RejectsUnsupportedDyadicTailAndNonfiniteResults; assertion 8개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RejectsUnsupportedDyadicTailAndNonfiniteResults 유지 원문 검사 body 및 assertion 동일. e13007c60ef0ca2d8c8755035337fb55cecb64bcf7483cb7695ab98c1d5cfaa1 e13007c60ef0ca2d8c8755035337fb55cecb64bcf7483cb7695ab98c1d5cfaa1 EXPECT_FALSE(IsFinite(Multiply(minimum, HighLow{0.5}))) | EXPECT_FALSE(IsFinite(Multiply(HighLow{std::ldexp(1.0, -1022)}, HighLow{std::nextafter(0.5, 1.0)}))) | EXPECT_FALSE(IsFinite(Divide(minimum, HighLow{2}))) | EXPECT_FALSE(IsFinite(Divide(HighLow{1}, HighLow{}))) | EXPECT_FALSE(IsFinite(Add(HighLow{std::numeric_limits::max()}, HighLow{std::numeric_limits::max()}))) | EXPECT_EQ(Compare(InvalidHighLow(), HighLow{}), 2) | EXPECT_FALSE(IsNormalized(HighLow{1, 1})) | EXPECT_TRUE(std::isnan(Rounded(HighLow{1, 1}))) EXPECT_FALSE(IsFinite(Multiply(minimum, HighLow{0.5}))) | EXPECT_FALSE(IsFinite(Multiply(HighLow{std::ldexp(1.0, -1022)}, HighLow{std::nextafter(0.5, 1.0)}))) | EXPECT_FALSE(IsFinite(Divide(minimum, HighLow{2}))) | EXPECT_FALSE(IsFinite(Divide(HighLow{1}, HighLow{}))) | EXPECT_FALSE(IsFinite(Add(HighLow{std::numeric_limits::max()}, HighLow{std::numeric_limits::max()}))) | EXPECT_EQ(Compare(InvalidHighLow(), HighLow{}), 2) | EXPECT_FALSE(IsNormalized(HighLow{1, 1})) | EXPECT_TRUE(std::isnan(Rounded(HighLow{1, 1}))) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.ExactDyadicOracleBoundsDiscardedTailAndRefinement HighLowArithmetic.ExactDyadicOracleBoundsDiscardedTailAndRefinement; assertion 13개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.ExactDyadicOracleBoundsDiscardedTailAndRefinement 유지 원문 검사 body 및 assertion 동일. 231d3d1a2023a915af0befbf01924f42b59b43b192520841785ac05d571e9452 231d3d1a2023a915af0befbf01924f42b59b43b192520841785ac05d571e9452 EXPECT_EQ(sum.high, std::ldexp(0x1.0000000000001p+0, scale)) | EXPECT_EQ(sum.low, -std::ldexp(1.0, scale-54)) | EXPECT_EQ(square.high, std::ldexp(1.0, 2*scale)) | EXPECT_EQ(square.low, std::ldexp(1.0, 2*scale-53)) | EXPECT_EQ(third.high, 0x1.5555555555555p-2) | EXPECT_EQ(third.low, 0x1.5555555555555p-56) | EXPECT_EQ(third_residual.high, -std::ldexp(1.0, -108)) | EXPECT_EQ(third_residual.low, 0) | EXPECT_EQ(refined.high, 0x1.999999999999ap-1) | EXPECT_EQ(refined.low, -0x1.8e147ae147ae1p-55) | EXPECT_EQ(boundary.high, 0x1.0000000000002p-970) | EXPECT_EQ(boundary.low, std::numeric_limits::denorm_min()) | EXPECT_FALSE(IsFinite(TwoProduct(std::nextafter(1.0, 2.0), std::nextafter(std::numeric_limits::min(), 1.0)))) EXPECT_EQ(sum.high, std::ldexp(0x1.0000000000001p+0, scale)) | EXPECT_EQ(sum.low, -std::ldexp(1.0, scale-54)) | EXPECT_EQ(square.high, std::ldexp(1.0, 2*scale)) | EXPECT_EQ(square.low, std::ldexp(1.0, 2*scale-53)) | EXPECT_EQ(third.high, 0x1.5555555555555p-2) | EXPECT_EQ(third.low, 0x1.5555555555555p-56) | EXPECT_EQ(third_residual.high, -std::ldexp(1.0, -108)) | EXPECT_EQ(third_residual.low, 0) | EXPECT_EQ(refined.high, 0x1.999999999999ap-1) | EXPECT_EQ(refined.low, -0x1.8e147ae147ae1p-55) | EXPECT_EQ(boundary.high, 0x1.0000000000002p-970) | EXPECT_EQ(boundary.low, std::numeric_limits::denorm_min()) | EXPECT_FALSE(IsFinite(TwoProduct(std::nextafter(1.0, 2.0), std::nextafter(std::numeric_limits::min(), 1.0)))) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RejectsChangedRoundingAndFlushToZeroEnvironment HighLowArithmetic.RejectsChangedRoundingAndFlushToZeroEnvironment; assertion 6개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.RejectsChangedRoundingAndFlushToZeroEnvironment 유지 원문 검사 body 및 assertion 동일. 356cfeef68419bd3c33a3abd04e7d67b2bc2ea0a1b4c4bb8e0888fda56c6bc48 356cfeef68419bd3c33a3abd04e7d67b2bc2ea0a1b4c4bb8e0888fda56c6bc48 ASSERT_TRUE(ArithmeticEnvironmentSupported()) | ASSERT_EQ(std::fesetround(FE_DOWNWARD), 0) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) | ASSERT_EQ(std::fesetround(FE_TONEAREST), 0) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) ASSERT_TRUE(ArithmeticEnvironmentSupported()) | ASSERT_EQ(std::fesetround(FE_DOWNWARD), 0) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) | ASSERT_EQ(std::fesetround(FE_TONEAREST), 0) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) | EXPECT_FALSE(ArithmeticEnvironmentSupported()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.PacketDispatchRetainsComponentsAndInstructionGates HighLowArithmetic.PacketDispatchRetainsComponentsAndInstructionGates; assertion 14개 tests/unit/math/high_low_arithmetic_test.cpp HighLowArithmetic.PacketDispatchRetainsComponentsAndInstructionGates 유지 원문 검사 body 및 assertion 동일. cb8d79fd8eafc1efca1f29e6f4532ceed3288186124b2f3398242beda1c04a41 cb8d79fd8eafc1efca1f29e6f4532ceed3288186124b2f3398242beda1c04a41 EXPECT_TRUE(SupportsMaterialPacketInstructions(leaf1, 6, leaf7)) | EXPECT_FALSE(SupportsMaterialPacketInstructions(leaf1 & ~(1U << bit),6,leaf7)) | EXPECT_FALSE(SupportsMaterialPacketInstructions(leaf1,6,leaf7 & ~(1U << bit))) | EXPECT_FALSE(SupportsMaterialPacketInstructions(leaf1,2,leaf7)) | EXPECT_FALSE(SupportsMaterialPacketInstructions(leaf1,4,leaf7)) | EXPECT_TRUE(std::isnan(actual.values[lane].high)) | EXPECT_DOUBLE_EQ(actual.values[lane].high, expected.values[lane].high) | EXPECT_DOUBLE_EQ(actual.values[lane].low, expected.values[lane].low) | EXPECT_EQ(std::signbit(actual.values[lane].low), std::signbit(expected.values[lane].low)) | EXPECT_GT(finite_pairs, 0U) | EXPECT_GT(retained_low_pairs, 0U) | EXPECT_GT(invalid_pairs, 0U) | EXPECT_EQ(SelectMaterialPacketEvaluator(), EvaluateMaterialPacketScalar) | EXPECT_EQ(SelectMaterialPacketEvaluator(), selected) EXPECT_TRUE(SupportsMaterialPacketInstructions(leaf1, 6, leaf7)) | EXPECT_FALSE(SupportsMaterialPacketInstructions(leaf1 & ~(1U << bit),6,leaf7)) | EXPECT_FALSE(SupportsMaterialPacketInstructions(leaf1,6,leaf7 & ~(1U << bit))) | EXPECT_FALSE(SupportsMaterialPacketInstructions(leaf1,2,leaf7)) | EXPECT_FALSE(SupportsMaterialPacketInstructions(leaf1,4,leaf7)) | EXPECT_TRUE(std::isnan(actual.values[lane].high)) | EXPECT_DOUBLE_EQ(actual.values[lane].high, expected.values[lane].high) | EXPECT_DOUBLE_EQ(actual.values[lane].low, expected.values[lane].low) | EXPECT_EQ(std::signbit(actual.values[lane].low), std::signbit(expected.values[lane].low)) | EXPECT_GT(finite_pairs, 0U) | EXPECT_GT(retained_low_pairs, 0U) | EXPECT_GT(invalid_pairs, 0U) | EXPECT_EQ(SelectMaterialPacketEvaluator(), EvaluateMaterialPacketScalar) | EXPECT_EQ(SelectMaterialPacketEvaluator(), selected) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/high_low_arithmetic_test.cpp support@1-11 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/high_low_arithmetic_test.cpp file-support 이관 Dev frozen oracle helper 원문을 유지한다. 모든 exponent·finite 분류·raw-bit 검사를 복원하고 Refactor packet dispatch 검사를 함께 남긴다. 87384a6fff2c8b0685ad5d32ad03255990ae389c329b23ccc57040fae22cc877 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/high_low_arithmetic_test.cpp support@129-131 helper/oracle/fixture/include/static assertion 구간: namespace tests/unit/math/high_low_arithmetic_test.cpp file-support 이관 Dev frozen oracle helper 원문을 유지한다. 모든 exponent·finite 분류·raw-bit 검사를 복원하고 Refactor packet dispatch 검사를 함께 남긴다. 3f7f376cbb4f7652496e0731de24fd5ba882bbbc64b6fdb2700f236135db934e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/high_low_arithmetic_test.cpp support@206-206 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/math/high_low_arithmetic_test.cpp file-support 유지 Dev frozen oracle helper 원문을 유지한다. 모든 exponent·finite 분류·raw-bit 검사를 복원하고 Refactor packet dispatch 검사를 함께 남긴다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/matrix_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/math/matrix_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2c6513a08239b1a3280aba9945c43da4f1dc34c3dd8e2c6b31232436e9481854 e871743665669396e2ff3df6599a7020e1e9009ba325c1341493f4f940da9744 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/matrix_test.cpp DenseMath.RowMajorMatrixMatchesKnownGemvGemm DenseMath.RowMajorMatrixMatchesKnownGemvGemm; assertion 39개 tests/unit/math/matrix_test.cpp DenseMath.RowMajorMatrixMatchesKnownGemvGemm 유지 원문 검사 body 및 assertion 동일. 80766b5923a34f53328f9a728d5714d0e8fc8448721f558a25f8cc297cae5317 80766b5923a34f53328f9a728d5714d0e8fc8448721f558a25f8cc297cae5317 EXPECT_THROW(static_cast(Matrix{wraparound_rows, 2}), std::length_error) | EXPECT_EQ(zero_row_product.Size(), 0U) | ASSERT_EQ(zero_column_product.Size(), 2U) | EXPECT_DOUBLE_EQ(zero_column_product[0], 0.0) | EXPECT_DOUBLE_EQ(zero_column_product[1], 0.0) | EXPECT_EQ(zero_inner_product.Rows(), 2U) | EXPECT_EQ(zero_inner_product.Columns(), 3U) | EXPECT_DOUBLE_EQ(zero_inner_product(row, column), 0.0) | EXPECT_EQ(&left(0, 0) + 1, &left(0, 1)) | EXPECT_EQ(&left(0, 0) + 2, &left(0, 2)) | EXPECT_EQ(&left(0, 0) + 3, &left(1, 0)) | EXPECT_DOUBLE_EQ(const_left(1, 2), 6.0) | EXPECT_DOUBLE_EQ(left(0, 0), 1.0) | EXPECT_DOUBLE_EQ(left(1, 2), 6.0) | EXPECT_EQ(copied.Rows(), 0U) | EXPECT_EQ(copied.Columns(), 0U) | EXPECT_EQ(moved.Rows(), 2U) | EXPECT_EQ(moved.Columns(), 3U) | EXPECT_DOUBLE_EQ(moved(0, 0), 42.0) | EXPECT_NO_THROW(static_cast(copied.Multiply(Vector{0}))) | EXPECT_EQ(copy_assigned.Rows(), 0U) | EXPECT_EQ(copy_assigned.Columns(), 0U) | EXPECT_EQ(move_assigned.Rows(), 2U) | EXPECT_EQ(move_assigned.Columns(), 3U) | EXPECT_DOUBLE_EQ(move_assigned(1, 2), -7.0) | ASSERT_EQ(matrix_vector_product.Size(), 2U) | EXPECT_DOUBLE_EQ(matrix_vector_product[0], 50.0) | EXPECT_DOUBLE_EQ(matrix_vector_product[1], 122.0) | ASSERT_EQ(matrix_product.Rows(), 2U) | ASSERT_EQ(matrix_product.Columns(), 2U) | EXPECT_DOUBLE_EQ(matrix_product(0, 0), 58.0) | EXPECT_DOUBLE_EQ(matrix_product(0, 1), 64.0) | EXPECT_DOUBLE_EQ(matrix_product(1, 0), 139.0) | EXPECT_DOUBLE_EQ(matrix_product(1, 1), 154.0) | EXPECT_THROW(static_cast(left(2, 0)), std::out_of_range) | EXPECT_THROW(static_cast(left(0, 3)), std::out_of_range) | EXPECT_THROW(static_cast(const_left(2, 0)), std::out_of_range) | EXPECT_THROW(static_cast(left.Multiply(Vector{2})), std::invalid_argument) | EXPECT_THROW(static_cast(left.Multiply(Matrix{4, 1})), std::invalid_argument) EXPECT_THROW(static_cast(Matrix{wraparound_rows, 2}), std::length_error) | EXPECT_EQ(zero_row_product.Size(), 0U) | ASSERT_EQ(zero_column_product.Size(), 2U) | EXPECT_DOUBLE_EQ(zero_column_product[0], 0.0) | EXPECT_DOUBLE_EQ(zero_column_product[1], 0.0) | EXPECT_EQ(zero_inner_product.Rows(), 2U) | EXPECT_EQ(zero_inner_product.Columns(), 3U) | EXPECT_DOUBLE_EQ(zero_inner_product(row, column), 0.0) | EXPECT_EQ(&left(0, 0) + 1, &left(0, 1)) | EXPECT_EQ(&left(0, 0) + 2, &left(0, 2)) | EXPECT_EQ(&left(0, 0) + 3, &left(1, 0)) | EXPECT_DOUBLE_EQ(const_left(1, 2), 6.0) | EXPECT_DOUBLE_EQ(left(0, 0), 1.0) | EXPECT_DOUBLE_EQ(left(1, 2), 6.0) | EXPECT_EQ(copied.Rows(), 0U) | EXPECT_EQ(copied.Columns(), 0U) | EXPECT_EQ(moved.Rows(), 2U) | EXPECT_EQ(moved.Columns(), 3U) | EXPECT_DOUBLE_EQ(moved(0, 0), 42.0) | EXPECT_NO_THROW(static_cast(copied.Multiply(Vector{0}))) | EXPECT_EQ(copy_assigned.Rows(), 0U) | EXPECT_EQ(copy_assigned.Columns(), 0U) | EXPECT_EQ(move_assigned.Rows(), 2U) | EXPECT_EQ(move_assigned.Columns(), 3U) | EXPECT_DOUBLE_EQ(move_assigned(1, 2), -7.0) | ASSERT_EQ(matrix_vector_product.Size(), 2U) | EXPECT_DOUBLE_EQ(matrix_vector_product[0], 50.0) | EXPECT_DOUBLE_EQ(matrix_vector_product[1], 122.0) | ASSERT_EQ(matrix_product.Rows(), 2U) | ASSERT_EQ(matrix_product.Columns(), 2U) | EXPECT_DOUBLE_EQ(matrix_product(0, 0), 58.0) | EXPECT_DOUBLE_EQ(matrix_product(0, 1), 64.0) | EXPECT_DOUBLE_EQ(matrix_product(1, 0), 139.0) | EXPECT_DOUBLE_EQ(matrix_product(1, 1), 154.0) | EXPECT_THROW(static_cast(left(2, 0)), std::out_of_range) | EXPECT_THROW(static_cast(left(0, 3)), std::out_of_range) | EXPECT_THROW(static_cast(const_left(2, 0)), std::out_of_range) | EXPECT_THROW(static_cast(left.Multiply(Vector{2})), std::invalid_argument) | EXPECT_THROW(static_cast(left.Multiply(Matrix{4, 1})), std::invalid_argument) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/matrix_test.cpp DenseMath.MatrixContiguousScaleAndRobustNorm DenseMath.MatrixContiguousScaleAndRobustNorm; assertion 8개 tests/unit/math/matrix_test.cpp DenseMath.MatrixContiguousScaleAndRobustNorm 유지 원문 검사 body 및 assertion 동일. b432feff567c13942d7764fbf2866bdf46cd320be7f71254eea8b20782a18492 b432feff567c13942d7764fbf2866bdf46cd320be7f71254eea8b20782a18492 EXPECT_EQ(immutable.Data() + 3, &immutable(1U, 0U)) | EXPECT_NEAR(matrix.Norm(), std::sqrt(91.0), 2.0e-15) | EXPECT_DOUBLE_EQ(matrix.Data()[i], -2.0 * entries[i]) | EXPECT_DOUBLE_EQ(immutable(1U, 2U), 12.0) | EXPECT_NEAR(huge.Norm() / 1.0e308, std::sqrt(2.0), 4.0e-16) | EXPECT_NEAR(tiny.Norm() / 1.0e-300, std::sqrt(2.0), 4.0e-16) | EXPECT_DOUBLE_EQ(empty.Norm(), 0.0) | EXPECT_NO_THROW(empty.Scale(3.0)) EXPECT_EQ(immutable.Data() + 3, &immutable(1U, 0U)) | EXPECT_NEAR(matrix.Norm(), std::sqrt(91.0), 2.0e-15) | EXPECT_DOUBLE_EQ(matrix.Data()[i], -2.0 * entries[i]) | EXPECT_DOUBLE_EQ(immutable(1U, 2U), 12.0) | EXPECT_NEAR(huge.Norm() / 1.0e308, std::sqrt(2.0), 4.0e-16) | EXPECT_NEAR(tiny.Norm() / 1.0e-300, std::sqrt(2.0), 4.0e-16) | EXPECT_DOUBLE_EQ(empty.Norm(), 0.0) | EXPECT_NO_THROW(empty.Scale(3.0)) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/matrix_test.cpp DenseMath.MatrixProductKeepsShapeAndFiniteValidationOrder DenseMath.MatrixProductKeepsShapeAndFiniteValidationOrder; assertion 6개 tests/unit/math/matrix_test.cpp DenseMath.MatrixProductKeepsShapeAndFiniteValidationOrder 유지 원문 검사 body 및 assertion 동일. 6a7fa3f0dadbb47c435375f9fbc9bccf297241d83387c4c17e195840106b3799 6a7fa3f0dadbb47c435375f9fbc9bccf297241d83387c4c17e195840106b3799 "EXPECT_STREQ(failure.what(), ""Matrix-vector multiplication has incompatible dimensions."") | EXPECT_THROW(static_cast(matrix.Multiply(Vector{2U})), std::invalid_argument) | EXPECT_THROW(static_cast(matrix.Multiply(Matrix{2U, 0U})), std::invalid_argument) | EXPECT_THROW(static_cast(Matrix{0U, 2U}.Multiply(Vector{2U, nan})), std::invalid_argument) | EXPECT_DOUBLE_EQ(square(0U, 0U), 18.0) | EXPECT_DOUBLE_EQ(finite(0U, 0U), 3.0)" "EXPECT_STREQ(failure.what(), ""Matrix-vector multiplication has incompatible dimensions."") | EXPECT_THROW(static_cast(matrix.Multiply(Vector{2U})), std::invalid_argument) | EXPECT_THROW(static_cast(matrix.Multiply(Matrix{2U, 0U})), std::invalid_argument) | EXPECT_THROW(static_cast(Matrix{0U, 2U}.Multiply(Vector{2U, nan})), std::invalid_argument) | EXPECT_DOUBLE_EQ(square(0U, 0U), 18.0) | EXPECT_DOUBLE_EQ(finite(0U, 0U), 3.0)" 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/matrix_test.cpp DenseMath.MatrixSelfAssignmentPreservesShapeAndStorage DenseMath.MatrixSelfAssignmentPreservesShapeAndStorage; assertion 5개 tests/unit/math/matrix_test.cpp DenseMath.MatrixSelfAssignmentPreservesShapeAndStorage 유지 원문 검사 body 및 assertion 동일. 9aab3255ebd10378558667f8795f35a8af6b9f8142933866d3012457bdb9afab 9aab3255ebd10378558667f8795f35a8af6b9f8142933866d3012457bdb9afab EXPECT_EQ(matrix.Rows(), 2U) | EXPECT_EQ(matrix.Columns(), 1U) | EXPECT_DOUBLE_EQ(matrix(1U, 0U), 7.0) | EXPECT_EQ(matrix.Rows(), 2U) | EXPECT_DOUBLE_EQ(matrix(1U, 0U), 7.0) EXPECT_EQ(matrix.Rows(), 2U) | EXPECT_EQ(matrix.Columns(), 1U) | EXPECT_DOUBLE_EQ(matrix(1U, 0U), 7.0) | EXPECT_EQ(matrix.Rows(), 2U) | EXPECT_DOUBLE_EQ(matrix(1U, 0U), 7.0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/matrix_test.cpp support@1-12 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/matrix_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 85adcb7d83136d0f31a1cb98ca6c83135504641a803971b78e9d9a0ecb0723f7 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/matrix_test.cpp support@168-170 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/matrix_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/sparse_matrix_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/math/sparse_matrix_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2d60a8b6821d8cf61c56f088cf73ad4324638979db7776a27f68113740e14ad7 ce2d95faaa89e5b4887d791745eee4b97e882482fa91e04b787dceaa268d663b 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/sparse_matrix_test.cpp SparseAssembly.ValidatesKnownCsrAndMultiply SparseAssembly.ValidatesKnownCsrAndMultiply; assertion 13개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.ValidatesKnownCsrAndMultiply 유지 원문 검사 body 및 assertion 동일. 306be72faf3dbbf425d660063d3847f0d06a43498caa60943e847cc485a5d9c8 306be72faf3dbbf425d660063d3847f0d06a43498caa60943e847cc485a5d9c8 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(matrix.Rows(), 4U) | EXPECT_EQ(matrix.Columns(), 4U) | EXPECT_EQ(matrix.RowOffsets(), pattern.row_offsets) | EXPECT_EQ(matrix.ColumnIndices(), pattern.column_indices) | EXPECT_EQ(matrix.Values(), (std::vector{1.0, 2.0, 3.0, 4.0, 5.0})) | EXPECT_TRUE(matrix.Validate().IsOk()) | ASSERT_EQ(product.Size(), 4U) | EXPECT_DOUBLE_EQ(product[0U], 7.0) | EXPECT_DOUBLE_EQ(product[1U], 0.0) | EXPECT_DOUBLE_EQ(product[2U], 22.0) | EXPECT_DOUBLE_EQ(product[3U], 20.0) | EXPECT_THROW(static_cast(matrix.Multiply(Vector{3U})), std::invalid_argument) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(matrix.Rows(), 4U) | EXPECT_EQ(matrix.Columns(), 4U) | EXPECT_EQ(matrix.RowOffsets(), pattern.row_offsets) | EXPECT_EQ(matrix.ColumnIndices(), pattern.column_indices) | EXPECT_EQ(matrix.Values(), (std::vector{1.0, 2.0, 3.0, 4.0, 5.0})) | EXPECT_TRUE(matrix.Validate().IsOk()) | ASSERT_EQ(product.Size(), 4U) | EXPECT_DOUBLE_EQ(product[0U], 7.0) | EXPECT_DOUBLE_EQ(product[1U], 0.0) | EXPECT_DOUBLE_EQ(product[2U], 22.0) | EXPECT_DOUBLE_EQ(product[3U], 20.0) | EXPECT_THROW(static_cast(matrix.Multiply(Vector{3U})), std::invalid_argument) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/sparse_matrix_test.cpp SparseAssembly.ReducesDuplicatesInFixedTupleOrder SparseAssembly.ReducesDuplicatesInFixedTupleOrder; assertion 7개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.ReducesDuplicatesInFixedTupleOrder 유지 원문 검사 body 및 assertion 동일. 58ef40306d7a2794d3714329bae3ac32fcb28e31493f45d24c5817813cc07a36 58ef40306d7a2794d3714329bae3ac32fcb28e31493f45d24c5817813cc07a36 ASSERT_TRUE(first.HasValue()) | ASSERT_EQ(first.Value().Values().size(), 1U) | EXPECT_DOUBLE_EQ(first.Value().Values()[0U], 1.0) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(second.Value().RowOffsets(), first.Value().RowOffsets()) | EXPECT_EQ(second.Value().ColumnIndices(), first.Value().ColumnIndices()) | EXPECT_EQ(second.Value().Values(), first.Value().Values()) ASSERT_TRUE(first.HasValue()) | ASSERT_EQ(first.Value().Values().size(), 1U) | EXPECT_DOUBLE_EQ(first.Value().Values()[0U], 1.0) | ASSERT_TRUE(second.HasValue()) | EXPECT_EQ(second.Value().RowOffsets(), first.Value().RowOffsets()) | EXPECT_EQ(second.Value().ColumnIndices(), first.Value().ColumnIndices()) | EXPECT_EQ(second.Value().Values(), first.Value().Values()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/sparse_matrix_test.cpp SparseAssembly.RejectsInvalidIndexPatternAndShape SparseAssembly.RejectsInvalidIndexPatternAndShape; assertion 4개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.RejectsInvalidIndexPatternAndShape 유지 원문 검사 body 및 assertion 동일. 20889c0e8ab98ed0bbfbe684fcf8309c542a55123a6d5f0d7cd97d60cd25d104 20889c0e8ab98ed0bbfbe684fcf8309c542a55123a6d5f0d7cd97d60cd25d104 EXPECT_FALSE(result.HasValue()) | EXPECT_FALSE(result.GetStatus().IsOk()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(result.GetStatus().Diagnostics().empty()) EXPECT_FALSE(result.HasValue()) | EXPECT_FALSE(result.GetStatus().IsOk()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(result.GetStatus().Diagnostics().empty()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/sparse_matrix_test.cpp SparseAssembly.PreservesExpectedStructuralZeros SparseAssembly.PreservesExpectedStructuralZeros; assertion 5개 tests/unit/math/sparse_matrix_test.cpp SparseAssembly.PreservesExpectedStructuralZeros 유지 원문 검사 body 및 assertion 동일. 8a7bf76b61f4852be9d64fe9358d648f2c8be768942738a0785c52ed047ffd27 8a7bf76b61f4852be9d64fe9358d648f2c8be768942738a0785c52ed047ffd27 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().RowOffsets(), pattern.row_offsets) | EXPECT_EQ(result.Value().ColumnIndices(), pattern.column_indices) | EXPECT_EQ(result.Value().Values(), (std::vector{2.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(std::count(result.Value().Values().begin(), result.Value().Values().end(), 0.0), 4) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().RowOffsets(), pattern.row_offsets) | EXPECT_EQ(result.Value().ColumnIndices(), pattern.column_indices) | EXPECT_EQ(result.Value().Values(), (std::vector{2.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(std::count(result.Value().Values().begin(), result.Value().Values().end(), 0.0), 4) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/sparse_matrix_test.cpp support@1-24 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/math/sparse_matrix_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 23c3df79753c201d7b02a8de310b9d238cdef8208af1e40f475ff3d65ccc99b2 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/sparse_matrix_test.cpp support@133-134 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/math/sparse_matrix_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/vector3_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/math/vector3_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 442331d7ccb19a8f989c48d0f71fdfb0f0a6473adf7af53e7a4b477f45b965a4 442331d7ccb19a8f989c48d0f71fdfb0f0a6473adf7af53e7a4b477f45b965a4 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/vector3_test.cpp Vector3.StoresComponentsWithExactArithmetic Vector3.StoresComponentsWithExactArithmetic; assertion 18개 tests/unit/math/vector3_test.cpp Vector3.StoresComponentsWithExactArithmetic 유지 원문 검사 body 및 assertion 동일. 9a048f9faafa466a70e10b035ee0fe67423b83781ad22e7d0f69c50168b6a353 9a048f9faafa466a70e10b035ee0fe67423b83781ad22e7d0f69c50168b6a353 EXPECT_DOUBLE_EQ(lhs.X(), 1.0) | EXPECT_DOUBLE_EQ(lhs.Y(), -2.0) | EXPECT_DOUBLE_EQ(lhs.Z(), 3.0) | EXPECT_DOUBLE_EQ(lhs[0], 1.0) | EXPECT_DOUBLE_EQ(lhs[1], -2.0) | EXPECT_DOUBLE_EQ(lhs[2], 3.0) | EXPECT_DOUBLE_EQ(sum[0], -3.0) | EXPECT_DOUBLE_EQ(sum[1], 3.0) | EXPECT_DOUBLE_EQ(sum[2], 9.0) | EXPECT_DOUBLE_EQ(difference[0], 5.0) | EXPECT_DOUBLE_EQ(difference[1], -7.0) | EXPECT_DOUBLE_EQ(difference[2], -3.0) | EXPECT_DOUBLE_EQ(scaled[0], -2.0) | EXPECT_DOUBLE_EQ(scaled[1], 4.0) | EXPECT_DOUBLE_EQ(scaled[2], -6.0) | EXPECT_DOUBLE_EQ(divided[0], -0.5) | EXPECT_DOUBLE_EQ(divided[1], 1.0) | EXPECT_DOUBLE_EQ(divided[2], -1.5) EXPECT_DOUBLE_EQ(lhs.X(), 1.0) | EXPECT_DOUBLE_EQ(lhs.Y(), -2.0) | EXPECT_DOUBLE_EQ(lhs.Z(), 3.0) | EXPECT_DOUBLE_EQ(lhs[0], 1.0) | EXPECT_DOUBLE_EQ(lhs[1], -2.0) | EXPECT_DOUBLE_EQ(lhs[2], 3.0) | EXPECT_DOUBLE_EQ(sum[0], -3.0) | EXPECT_DOUBLE_EQ(sum[1], 3.0) | EXPECT_DOUBLE_EQ(sum[2], 9.0) | EXPECT_DOUBLE_EQ(difference[0], 5.0) | EXPECT_DOUBLE_EQ(difference[1], -7.0) | EXPECT_DOUBLE_EQ(difference[2], -3.0) | EXPECT_DOUBLE_EQ(scaled[0], -2.0) | EXPECT_DOUBLE_EQ(scaled[1], 4.0) | EXPECT_DOUBLE_EQ(scaled[2], -6.0) | EXPECT_DOUBLE_EQ(divided[0], -0.5) | EXPECT_DOUBLE_EQ(divided[1], 1.0) | EXPECT_DOUBLE_EQ(divided[2], -1.5) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/vector3_test.cpp Vector3.ConvertsArrayAndPreservesScalarLeftEvaluationOrder Vector3.ConvertsArrayAndPreservesScalarLeftEvaluationOrder; assertion 6개 tests/unit/math/vector3_test.cpp Vector3.ConvertsArrayAndPreservesScalarLeftEvaluationOrder 유지 원문 검사 body 및 assertion 동일. 1f659f46fd78ea02d6456c20cf865a637d8d3e4f2ac5d5fe89ba27741a28c058 1f659f46fd78ea02d6456c20cf865a637d8d3e4f2ac5d5fe89ba27741a28c058 EXPECT_TRUE(value == Vector3(1.25, -2.5, 5.0)) | EXPECT_FALSE(value == Vector3(1.25, -2.5, 4.0)) | EXPECT_EQ(value.Components(), kComponents) | EXPECT_DOUBLE_EQ(scaled.X(), -2.5) | EXPECT_DOUBLE_EQ(scaled.Y(), 5.0) | EXPECT_DOUBLE_EQ(scaled.Z(), -10.0) EXPECT_TRUE(value == Vector3(1.25, -2.5, 5.0)) | EXPECT_FALSE(value == Vector3(1.25, -2.5, 4.0)) | EXPECT_EQ(value.Components(), kComponents) | EXPECT_DOUBLE_EQ(scaled.X(), -2.5) | EXPECT_DOUBLE_EQ(scaled.Y(), 5.0) | EXPECT_DOUBLE_EQ(scaled.Z(), -10.0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/vector3_test.cpp Vector3.ComputesDotProduct Vector3.ComputesDotProduct; assertion 1개 tests/unit/math/vector3_test.cpp Vector3.ComputesDotProduct 유지 원문 검사 body 및 assertion 동일. 6347f32d63b18e488dfb6a66c9bd3efc2c84beb950b8746efb888bbb580722d7 6347f32d63b18e488dfb6a66c9bd3efc2c84beb950b8746efb888bbb580722d7 EXPECT_DOUBLE_EQ(lhs.Dot(rhs), 12.0) EXPECT_DOUBLE_EQ(lhs.Dot(rhs), 12.0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/vector3_test.cpp Vector3.UsesRightHandedCrossProductOrientation Vector3.UsesRightHandedCrossProductOrientation; assertion 6개 tests/unit/math/vector3_test.cpp Vector3.UsesRightHandedCrossProductOrientation 유지 원문 검사 body 및 assertion 동일. f179b78f12bc066ce442f293298397b5fcc9fe03fce8fbd348f33c5fcd13a24a f179b78f12bc066ce442f293298397b5fcc9fe03fce8fbd348f33c5fcd13a24a EXPECT_DOUBLE_EQ(positive_z.X(), 0.0) | EXPECT_DOUBLE_EQ(positive_z.Y(), 0.0) | EXPECT_DOUBLE_EQ(positive_z.Z(), 1.0) | EXPECT_DOUBLE_EQ(negative_z.X(), 0.0) | EXPECT_DOUBLE_EQ(negative_z.Y(), 0.0) | EXPECT_DOUBLE_EQ(negative_z.Z(), -1.0) EXPECT_DOUBLE_EQ(positive_z.X(), 0.0) | EXPECT_DOUBLE_EQ(positive_z.Y(), 0.0) | EXPECT_DOUBLE_EQ(positive_z.Z(), 1.0) | EXPECT_DOUBLE_EQ(negative_z.X(), 0.0) | EXPECT_DOUBLE_EQ(negative_z.Y(), 0.0) | EXPECT_DOUBLE_EQ(negative_z.Z(), -1.0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/vector3_test.cpp Vector3.ComputesEuclideanNorm Vector3.ComputesEuclideanNorm; assertion 2개 tests/unit/math/vector3_test.cpp Vector3.ComputesEuclideanNorm 유지 원문 검사 body 및 assertion 동일. 2a865b62e7bd8940e5c9db652503bcd28230dfd4abb9f74a4a91282f0d917499 2a865b62e7bd8940e5c9db652503bcd28230dfd4abb9f74a4a91282f0d917499 EXPECT_DOUBLE_EQ(Vector3(2.0, -3.0, 6.0).Norm(), 7.0) | EXPECT_DOUBLE_EQ(Vector3(1.0e308, 1.0e308, 0.0).Norm(), expected) EXPECT_DOUBLE_EQ(Vector3(2.0, -3.0, 6.0).Norm(), 7.0) | EXPECT_DOUBLE_EQ(Vector3(1.0e308, 1.0e308, 0.0).Norm(), expected) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/vector3_test.cpp Vector3.NormalizesNonzeroVectors Vector3.NormalizesNonzeroVectors; assertion 4개 tests/unit/math/vector3_test.cpp Vector3.NormalizesNonzeroVectors 유지 원문 검사 body 및 assertion 동일. 6aeabf80f8c56ed0db4cfff4658f47caa3550cc1c042a295dd95dce791e6f329 6aeabf80f8c56ed0db4cfff4658f47caa3550cc1c042a295dd95dce791e6f329 ASSERT_TRUE(normalized.has_value()) | EXPECT_DOUBLE_EQ(normalized->X(), 0.6) | EXPECT_DOUBLE_EQ(normalized->Y(), 0.0) | EXPECT_DOUBLE_EQ(normalized->Z(), 0.8) ASSERT_TRUE(normalized.has_value()) | EXPECT_DOUBLE_EQ(normalized->X(), 0.6) | EXPECT_DOUBLE_EQ(normalized->Y(), 0.0) | EXPECT_DOUBLE_EQ(normalized->Z(), 0.8) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/vector3_test.cpp Vector3.ReportsFiniteComponents Vector3.ReportsFiniteComponents; assertion 3개 tests/unit/math/vector3_test.cpp Vector3.ReportsFiniteComponents 유지 원문 검사 body 및 assertion 동일. 5ff94e5120d1add8e2e3242698c75c0444e4c7d25ea530eb8adca0d48757cd96 5ff94e5120d1add8e2e3242698c75c0444e4c7d25ea530eb8adca0d48757cd96 EXPECT_TRUE(Vector3(1.0, -2.0, 3.0).IsFinite()) | EXPECT_FALSE(Vector3(infinity, 0.0, 0.0).IsFinite()) | EXPECT_FALSE(Vector3(0.0, not_a_number, 0.0).IsFinite()) EXPECT_TRUE(Vector3(1.0, -2.0, 3.0).IsFinite()) | EXPECT_FALSE(Vector3(infinity, 0.0, 0.0).IsFinite()) | EXPECT_FALSE(Vector3(0.0, not_a_number, 0.0).IsFinite()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/vector3_test.cpp Vector3.RejectsZeroAndNonfiniteNormalization Vector3.RejectsZeroAndNonfiniteNormalization; assertion 3개 tests/unit/math/vector3_test.cpp Vector3.RejectsZeroAndNonfiniteNormalization 유지 원문 검사 body 및 assertion 동일. cf0551716b1fac7a6af4c3690316df8e7059b681ba04d6a3dbf376c44c8ab8bb cf0551716b1fac7a6af4c3690316df8e7059b681ba04d6a3dbf376c44c8ab8bb EXPECT_FALSE(Vector3().Normalized().has_value()) | EXPECT_FALSE(Vector3(infinity, 0.0, 0.0).Normalized().has_value()) | EXPECT_FALSE(Vector3(0.0, not_a_number, 0.0).Normalized().has_value()) EXPECT_FALSE(Vector3().Normalized().has_value()) | EXPECT_FALSE(Vector3(infinity, 0.0, 0.0).Normalized().has_value()) | EXPECT_FALSE(Vector3(0.0, not_a_number, 0.0).Normalized().has_value()) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/vector3_test.cpp Vector3.RightHandedFrameMatchesIndependentCoordinateTransform Vector3.RightHandedFrameMatchesIndependentCoordinateTransform; assertion 5개 tests/unit/math/vector3_test.cpp Vector3.RightHandedFrameMatchesIndependentCoordinateTransform 유지 원문 검사 body 및 assertion 동일. 101b35cfb655b7e66cdabe52c9dce6ba826f420bde08461b676c96f9d1ff3686 101b35cfb655b7e66cdabe52c9dce6ba826f420bde08461b676c96f9d1ff3686 EXPECT_DOUBLE_EQ(x_axis.Dot(global), -3.0) | EXPECT_DOUBLE_EQ(y_axis.Dot(global), 4.0) | EXPECT_DOUBLE_EQ(z_axis.Dot(global), 2.0) | EXPECT_TRUE(recovered == global) | EXPECT_DOUBLE_EQ(x_axis.Dot(y_axis.Cross(z_axis)), 1.0) EXPECT_DOUBLE_EQ(x_axis.Dot(global), -3.0) | EXPECT_DOUBLE_EQ(y_axis.Dot(global), 4.0) | EXPECT_DOUBLE_EQ(z_axis.Dot(global), 2.0) | EXPECT_TRUE(recovered == global) | EXPECT_DOUBLE_EQ(x_axis.Dot(y_axis.Cross(z_axis)), 1.0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/vector3_test.cpp support@1-12 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/vector3_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 6a62e51f185970f04141b3a9d4bb5cda154999b19e74598b53adc1365e34f422 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/vector3_test.cpp support@128-130 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/vector3_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/vector_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/math/vector_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. d1f3266cdc2f7f4c586e7512fe090580a641b270ebe8b0525660fa4e737c788c d1f3266cdc2f7f4c586e7512fe090580a641b270ebe8b0525660fa4e737c788c 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/vector_test.cpp DenseMath.VectorOwnsAndChecksContiguousStorage DenseMath.VectorOwnsAndChecksContiguousStorage; assertion 31개 tests/unit/math/vector_test.cpp DenseMath.VectorOwnsAndChecksContiguousStorage 유지 원문 검사 body 및 assertion 동일. 4633911f5df21402045699292987f7ed2cec457b562c80c628cfaaea6c7d73ca 4633911f5df21402045699292987f7ed2cec457b562c80c628cfaaea6c7d73ca EXPECT_EQ(empty.Size(), 0U) | EXPECT_DOUBLE_EQ(empty.Norm(), 0.0) | EXPECT_NO_THROW(empty.Scale(3.0)) | EXPECT_NO_THROW(empty.Axpy(-2.0, Vector{0})) | EXPECT_THROW(static_cast(empty[0]), std::out_of_range) | EXPECT_EQ(original.Data() + 1, &original[1]) | EXPECT_EQ(original.Data() + 2, &original[2]) | EXPECT_EQ(const_original.Data() + 2, &const_original[2]) | EXPECT_NE(copied.Data(), original.Data()) | EXPECT_DOUBLE_EQ(original[0], 1.0) | EXPECT_NE(copy_assigned.Data(), original.Data()) | EXPECT_DOUBLE_EQ(original[1], -2.0) | EXPECT_EQ(copied.Size(), 0U) | EXPECT_EQ(moved.Size(), 3U) | EXPECT_DOUBLE_EQ(moved[0], 99.0) | EXPECT_NO_THROW(copied.Scale(4.0)) | EXPECT_EQ(copy_assigned.Size(), 0U) | EXPECT_EQ(move_assigned.Size(), 3U) | EXPECT_DOUBLE_EQ(move_assigned[1], 17.0) | EXPECT_DOUBLE_EQ(original.Dot(rhs), -24.0) | EXPECT_NEAR(original.Norm(), std::sqrt(14.0), 1.0e-15) | EXPECT_DOUBLE_EQ(scaled[0], -0.5) | EXPECT_DOUBLE_EQ(scaled[1], 1.0) | EXPECT_DOUBLE_EQ(scaled[2], -1.5) | EXPECT_DOUBLE_EQ(accumulated[0], 9.0) | EXPECT_DOUBLE_EQ(accumulated[1], 0.0) | EXPECT_DOUBLE_EQ(accumulated[2], 4.0) | EXPECT_THROW(static_cast(original[3]), std::out_of_range) | EXPECT_THROW(static_cast(const_original[3]), std::out_of_range) | EXPECT_THROW(static_cast(original.Dot(Vector{2})), std::invalid_argument) | EXPECT_THROW(original.Axpy(1.0, Vector{2}), std::invalid_argument) EXPECT_EQ(empty.Size(), 0U) | EXPECT_DOUBLE_EQ(empty.Norm(), 0.0) | EXPECT_NO_THROW(empty.Scale(3.0)) | EXPECT_NO_THROW(empty.Axpy(-2.0, Vector{0})) | EXPECT_THROW(static_cast(empty[0]), std::out_of_range) | EXPECT_EQ(original.Data() + 1, &original[1]) | EXPECT_EQ(original.Data() + 2, &original[2]) | EXPECT_EQ(const_original.Data() + 2, &const_original[2]) | EXPECT_NE(copied.Data(), original.Data()) | EXPECT_DOUBLE_EQ(original[0], 1.0) | EXPECT_NE(copy_assigned.Data(), original.Data()) | EXPECT_DOUBLE_EQ(original[1], -2.0) | EXPECT_EQ(copied.Size(), 0U) | EXPECT_EQ(moved.Size(), 3U) | EXPECT_DOUBLE_EQ(moved[0], 99.0) | EXPECT_NO_THROW(copied.Scale(4.0)) | EXPECT_EQ(copy_assigned.Size(), 0U) | EXPECT_EQ(move_assigned.Size(), 3U) | EXPECT_DOUBLE_EQ(move_assigned[1], 17.0) | EXPECT_DOUBLE_EQ(original.Dot(rhs), -24.0) | EXPECT_NEAR(original.Norm(), std::sqrt(14.0), 1.0e-15) | EXPECT_DOUBLE_EQ(scaled[0], -0.5) | EXPECT_DOUBLE_EQ(scaled[1], 1.0) | EXPECT_DOUBLE_EQ(scaled[2], -1.5) | EXPECT_DOUBLE_EQ(accumulated[0], 9.0) | EXPECT_DOUBLE_EQ(accumulated[1], 0.0) | EXPECT_DOUBLE_EQ(accumulated[2], 4.0) | EXPECT_THROW(static_cast(original[3]), std::out_of_range) | EXPECT_THROW(static_cast(const_original[3]), std::out_of_range) | EXPECT_THROW(static_cast(original.Dot(Vector{2})), std::invalid_argument) | EXPECT_THROW(original.Axpy(1.0, Vector{2}), std::invalid_argument) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/vector_test.cpp DenseMath.VectorRobustNormSelfAliasAndNonfinitePropagation DenseMath.VectorRobustNormSelfAliasAndNonfinitePropagation; assertion 11개 tests/unit/math/vector_test.cpp DenseMath.VectorRobustNormSelfAliasAndNonfinitePropagation 유지 원문 검사 body 및 assertion 동일. 3fa0567d761cc2f34b42ad4d56d197c3c0c3381a063b029dc18c99788a537a37 3fa0567d761cc2f34b42ad4d56d197c3c0c3381a063b029dc18c99788a537a37 EXPECT_NEAR(large.Norm() / 1.0e308, std::sqrt(2.0), 4.0e-16) | EXPECT_NEAR(tiny.Norm() / 1.0e-300, std::sqrt(2.0), 4.0e-16) | EXPECT_DOUBLE_EQ(values[0], -2.0) | EXPECT_DOUBLE_EQ(values[1], 3.0) | EXPECT_DOUBLE_EQ(values.Dot(values), 13.0) | EXPECT_TRUE(std::isnan(nonfinite.Dot(Vector{1U, 1.0}))) | EXPECT_TRUE(std::isnan(nonfinite.Norm())) | EXPECT_NO_THROW(nonfinite.Scale(2.0)) | EXPECT_NO_THROW(nonfinite.Axpy(1.0, Vector{1U, 1.0})) | EXPECT_TRUE(std::isnan(nonfinite[0])) | EXPECT_DOUBLE_EQ(Vector{0U}.Dot(Vector{0U}), 0.0) EXPECT_NEAR(large.Norm() / 1.0e308, std::sqrt(2.0), 4.0e-16) | EXPECT_NEAR(tiny.Norm() / 1.0e-300, std::sqrt(2.0), 4.0e-16) | EXPECT_DOUBLE_EQ(values[0], -2.0) | EXPECT_DOUBLE_EQ(values[1], 3.0) | EXPECT_DOUBLE_EQ(values.Dot(values), 13.0) | EXPECT_TRUE(std::isnan(nonfinite.Dot(Vector{1U, 1.0}))) | EXPECT_TRUE(std::isnan(nonfinite.Norm())) | EXPECT_NO_THROW(nonfinite.Scale(2.0)) | EXPECT_NO_THROW(nonfinite.Axpy(1.0, Vector{1U, 1.0})) | EXPECT_TRUE(std::isnan(nonfinite[0])) | EXPECT_DOUBLE_EQ(Vector{0U}.Dot(Vector{0U}), 0.0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/vector_test.cpp support@1-12 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/vector_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. dd78aab9abb37ed986923048995a97daafd7eecb62218be73308b5921c5931c8 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/math/vector_test.cpp support@112-114 helper/oracle/fixture/include/static assertion 구간: fesa tests/unit/math/vector_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5e932549438c99fffd1c10c083dc6578d1fc1468e40b446f2d026d6de4c4061d 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/model/domain_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/model/domain_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fc0dd95c444cac746db6083b88376bc8365ccd7d26790dd0dd6d51c3f41d6f77 fc0dd95c444cac746db6083b88376bc8365ccd7d26790dd0dd6d51c3f41d6f77 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/model/domain_test.cpp ElementDefinition.DomainOwnsMixedDefinitionsInStableBaseOrder ElementDefinition.DomainOwnsMixedDefinitionsInStableBaseOrder; assertion 26개 tests/unit/model/domain_test.cpp ElementDefinition.DomainOwnsMixedDefinitionsInStableBaseOrder 유지 원문 검사 body 및 assertion 동일. f00cd134923f2e7389d5f87d43f04e6608137532bb437bdcc0affa9cae01e560 f00cd134923f2e7389d5f87d43f04e6608137532bb437bdcc0affa9cae01e560 "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Elements().Size(), 2U) | EXPECT_EQ(beam.Kind(), fesa::ElementDefinitionKind::kEulerBeam3D) | EXPECT_EQ(beam.SourceId().source_label_text, ""0007"") | EXPECT_EQ(beam.SourceElementType(), ""B33"") | EXPECT_EQ(beam.NodeIndices(), (std::vector{0U, 1U})) | EXPECT_EQ(beam.MaterialIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(beam.PropertyIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(shell.Kind(), fesa::ElementDefinitionKind::kMitc4Shell) | EXPECT_EQ(shell.SourceId().source_label_text, ""0009"") | EXPECT_EQ(shell.SourceElementType(), ""S4R"") | EXPECT_EQ(shell.NodeIndices(), (std::vector{2U, 3U, 4U, 5U})) | EXPECT_EQ(shell.MaterialIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(shell.PropertyIndex(), fesa::EntityIndex{1U}) | ASSERT_EQ(domain.BeamElements().Size(), 1U) | ASSERT_EQ(domain.ShellElements().Size(), 1U) | EXPECT_EQ(&domain.BeamElements()[0U], &beam) | EXPECT_EQ(&domain.ShellElements()[0U], &shell) | ASSERT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Materials()[0U].Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(&domain.LinearElasticMaterials()[0U], &domain.Materials()[0U]) | ASSERT_EQ(domain.Properties().Size(), 2U) | EXPECT_EQ(domain.Properties()[0U].Kind(), fesa::ElementPropertyKind::kGeneralBeamSection) | EXPECT_EQ(domain.Properties()[1U].Kind(), fesa::ElementPropertyKind::kShellSection) | EXPECT_EQ(&domain.Sections()[0U], &domain.Properties()[0U]) | EXPECT_EQ(&domain.ShellSections()[0U], &domain.Properties()[1U])" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Elements().Size(), 2U) | EXPECT_EQ(beam.Kind(), fesa::ElementDefinitionKind::kEulerBeam3D) | EXPECT_EQ(beam.SourceId().source_label_text, ""0007"") | EXPECT_EQ(beam.SourceElementType(), ""B33"") | EXPECT_EQ(beam.NodeIndices(), (std::vector{0U, 1U})) | EXPECT_EQ(beam.MaterialIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(beam.PropertyIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(shell.Kind(), fesa::ElementDefinitionKind::kMitc4Shell) | EXPECT_EQ(shell.SourceId().source_label_text, ""0009"") | EXPECT_EQ(shell.SourceElementType(), ""S4R"") | EXPECT_EQ(shell.NodeIndices(), (std::vector{2U, 3U, 4U, 5U})) | EXPECT_EQ(shell.MaterialIndex(), fesa::EntityIndex{0U}) | EXPECT_EQ(shell.PropertyIndex(), fesa::EntityIndex{1U}) | ASSERT_EQ(domain.BeamElements().Size(), 1U) | ASSERT_EQ(domain.ShellElements().Size(), 1U) | EXPECT_EQ(&domain.BeamElements()[0U], &beam) | EXPECT_EQ(&domain.ShellElements()[0U], &shell) | ASSERT_EQ(domain.Materials().Size(), 1U) | EXPECT_EQ(domain.Materials()[0U].Kind(), fesa::MaterialKind::kIsotropicLinearElastic) | EXPECT_EQ(&domain.LinearElasticMaterials()[0U], &domain.Materials()[0U]) | ASSERT_EQ(domain.Properties().Size(), 2U) | EXPECT_EQ(domain.Properties()[0U].Kind(), fesa::ElementPropertyKind::kGeneralBeamSection) | EXPECT_EQ(domain.Properties()[1U].Kind(), fesa::ElementPropertyKind::kShellSection) | EXPECT_EQ(&domain.Sections()[0U], &domain.Properties()[0U]) | EXPECT_EQ(&domain.ShellSections()[0U], &domain.Properties()[1U])" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/domain_test.cpp DomainModel.ImmutableOwnershipPreservesStableOrder DomainModel.ImmutableOwnershipPreservesStableOrder; assertion 33개 tests/unit/model/domain_test.cpp DomainModel.ImmutableOwnershipPreservesStableOrder 유지 원문 검사 body 및 assertion 동일. c6f7163bdaff86cf5fff21c3d9f5a0f5770dbdecd62f5af2fa64376558bc75b3 c6f7163bdaff86cf5fff21c3d9f5a0f5770dbdecd62f5af2fa64376558bc75b3 "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.SourcePath(), std::filesystem::path{""models/owned.inp""}) | EXPECT_EQ(domain.SourceContentIdentity(), ""fnv1a64:fedcba9876543210"") | ASSERT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 20) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""0020"") | EXPECT_DOUBLE_EQ(domain.Nodes()[0].coordinates[0], 2.0) | EXPECT_EQ(domain.Nodes()[1].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes().data(), first_node_address) | ASSERT_EQ(domain.BeamElements().Size(), 1U) | EXPECT_EQ(domain.BeamElements()[0].node_indices[0], 1U) | EXPECT_EQ(domain.BeamElements()[0].node_indices[1], 0U) | ASSERT_EQ(domain.Materials().Size(), 1U) | ASSERT_EQ(domain.Sections().Size(), 1U) | EXPECT_DOUBLE_EQ(domain.Sections()[0].section_points[0][0], -0.1) | ASSERT_EQ(domain.NodeSets().size(), 1U) | EXPECT_EQ(domain.NodeSets()[0].node_indices[0], 0U) | ASSERT_EQ(domain.ElementSets().size(), 1U) | EXPECT_EQ(domain.ElementSets()[0].element_indices[0], 0U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0].Name(), ""Step-1"") | EXPECT_DOUBLE_EQ(domain.Steps()[0].InitialIncrement(), 0.1) | EXPECT_DOUBLE_EQ(domain.Steps()[0].TimePeriod(), 1.0) | EXPECT_DOUBLE_EQ(domain.Steps()[0].MinimumIncrement(), 1.0e-5) | EXPECT_DOUBLE_EQ(domain.Steps()[0].MaximumIncrement(), 1.0) | EXPECT_EQ(domain.Steps()[0].ProcedureKind(), fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(domain.Steps()[0].IsNonlinearStatic()) | ASSERT_EQ(domain.Steps()[0].BoundaryConditions().size(), 6U) | ASSERT_EQ(domain.Steps()[0].Loads().size(), 1U) | ASSERT_EQ(domain.Steps()[0].ConcentratedLoads().Size(), 1U) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[2U], -1000.0) | ASSERT_EQ(domain.Warnings().size(), 1U) | EXPECT_EQ(domain.Warnings()[0].code, ""ignored-output-request"")" "ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(domain.SourcePath(), std::filesystem::path{""models/owned.inp""}) | EXPECT_EQ(domain.SourceContentIdentity(), ""fnv1a64:fedcba9876543210"") | ASSERT_EQ(domain.Nodes().size(), 2U) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 20) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""0020"") | EXPECT_DOUBLE_EQ(domain.Nodes()[0].coordinates[0], 2.0) | EXPECT_EQ(domain.Nodes()[1].source_id.source_label, 10) | EXPECT_EQ(domain.Nodes().data(), first_node_address) | ASSERT_EQ(domain.BeamElements().Size(), 1U) | EXPECT_EQ(domain.BeamElements()[0].node_indices[0], 1U) | EXPECT_EQ(domain.BeamElements()[0].node_indices[1], 0U) | ASSERT_EQ(domain.Materials().Size(), 1U) | ASSERT_EQ(domain.Sections().Size(), 1U) | EXPECT_DOUBLE_EQ(domain.Sections()[0].section_points[0][0], -0.1) | ASSERT_EQ(domain.NodeSets().size(), 1U) | EXPECT_EQ(domain.NodeSets()[0].node_indices[0], 0U) | ASSERT_EQ(domain.ElementSets().size(), 1U) | EXPECT_EQ(domain.ElementSets()[0].element_indices[0], 0U) | ASSERT_EQ(domain.Steps().Size(), 1U) | EXPECT_EQ(domain.Steps()[0].Name(), ""Step-1"") | EXPECT_DOUBLE_EQ(domain.Steps()[0].InitialIncrement(), 0.1) | EXPECT_DOUBLE_EQ(domain.Steps()[0].TimePeriod(), 1.0) | EXPECT_DOUBLE_EQ(domain.Steps()[0].MinimumIncrement(), 1.0e-5) | EXPECT_DOUBLE_EQ(domain.Steps()[0].MaximumIncrement(), 1.0) | EXPECT_EQ(domain.Steps()[0].ProcedureKind(), fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(domain.Steps()[0].IsNonlinearStatic()) | ASSERT_EQ(domain.Steps()[0].BoundaryConditions().size(), 6U) | ASSERT_EQ(domain.Steps()[0].Loads().size(), 1U) | ASSERT_EQ(domain.Steps()[0].ConcentratedLoads().Size(), 1U) | EXPECT_DOUBLE_EQ( domain.Steps()[0].ConcentratedLoads()[0U].GlobalComponents()[2U], -1000.0) | ASSERT_EQ(domain.Warnings().size(), 1U) | EXPECT_EQ(domain.Warnings()[0].code, ""ignored-output-request"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/domain_test.cpp DomainModel.MultipleIdentityInstancesDoNotMerge DomainModel.MultipleIdentityInstancesDoNotMerge; assertion 14개 tests/unit/model/domain_test.cpp DomainModel.MultipleIdentityInstancesDoNotMerge 유지 원문 검사 body 및 assertion 동일. af47d90dfe03fde953119eb419e7f2dc83bbc9da3cab2a7a9a4bc70935e11dbb af47d90dfe03fde953119eb419e7f2dc83bbc9da3cab2a7a9a4bc70935e11dbb "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 4U) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[2].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""1"") | EXPECT_EQ(domain.Nodes()[2].source_id.source_label_text, ""1"") | EXPECT_NE(domain.Nodes()[0].source_id.instance_name, domain.Nodes()[2].source_id.instance_name) | ASSERT_EQ(domain.BeamElements().Size(), 2U) | EXPECT_EQ(domain.BeamElements()[0].source_id.source_label, 1) | EXPECT_EQ(domain.BeamElements()[1].source_id.source_label, 1) | EXPECT_EQ(domain.BeamElements()[0].source_id.instance_name, ""Instance-A"") | EXPECT_EQ(domain.BeamElements()[1].source_id.instance_name, ""Instance-B"") | EXPECT_EQ(domain.BeamElements()[0].node_indices[0], 0U) | EXPECT_EQ(domain.BeamElements()[1].node_indices[0], 2U)" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.Nodes().size(), 4U) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[2].source_id.source_label, 1) | EXPECT_EQ(domain.Nodes()[0].source_id.source_label_text, ""1"") | EXPECT_EQ(domain.Nodes()[2].source_id.source_label_text, ""1"") | EXPECT_NE(domain.Nodes()[0].source_id.instance_name, domain.Nodes()[2].source_id.instance_name) | ASSERT_EQ(domain.BeamElements().Size(), 2U) | EXPECT_EQ(domain.BeamElements()[0].source_id.source_label, 1) | EXPECT_EQ(domain.BeamElements()[1].source_id.source_label, 1) | EXPECT_EQ(domain.BeamElements()[0].source_id.instance_name, ""Instance-A"") | EXPECT_EQ(domain.BeamElements()[1].source_id.instance_name, ""Instance-B"") | EXPECT_EQ(domain.BeamElements()[0].node_indices[0], 0U) | EXPECT_EQ(domain.BeamElements()[1].node_indices[0], 2U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/domain_test.cpp DomainModel.ShellOwnershipPreservesResolvedAssignmentsAndOptionalFrames DomainModel.ShellOwnershipPreservesResolvedAssignmentsAndOptionalFrames; assertion 22개 tests/unit/model/domain_test.cpp DomainModel.ShellOwnershipPreservesResolvedAssignmentsAndOptionalFrames 유지 원문 검사 body 및 assertion 동일. 4809f2a671c479fb442749d6d34966a00045cb2fd1d23f849a78fde2982fb76a 4809f2a671c479fb442749d6d34966a00045cb2fd1d23f849a78fde2982fb76a "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ShellElements().Size(), 2U) | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label, 20) | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label_text, ""0020"") | EXPECT_EQ(domain.ShellElements()[1].source_id.source_label, 10) | EXPECT_EQ(domain.ShellElements()[0].source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_EQ(domain.ShellElements()[1].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[0].node_indices[3], 7U) | EXPECT_EQ(domain.ShellElements()[0].material_index, 0U) | EXPECT_EQ(domain.ShellElements()[0].section_index, 0U) | ASSERT_EQ(domain.ShellSections().Size(), 2U) | EXPECT_EQ(domain.ShellSections()[0].name, ""Section-B"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[0].thickness, 0.02) | EXPECT_EQ(domain.ShellSections()[0].material_index, 0U) | EXPECT_EQ(domain.ShellSections()[1].name, ""Section-A"") | ASSERT_EQ(domain.ShellNodeInitialFrames().size(), 2U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].node_index, 4U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].director, (std::array{0.0, 0.0, 1.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_a, (std::array{1.0, 0.0, 0.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_b, (std::array{0.0, 1.0, 0.0})) | ASSERT_TRUE(no_frames_result.HasValue()) | EXPECT_TRUE(no_frames_result.Value().ShellNodeInitialFrames().empty())" "ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(domain.ShellElements().Size(), 2U) | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label, 20) | EXPECT_EQ(domain.ShellElements()[0].source_id.source_label_text, ""0020"") | EXPECT_EQ(domain.ShellElements()[1].source_id.source_label, 10) | EXPECT_EQ(domain.ShellElements()[0].source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_EQ(domain.ShellElements()[1].source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(domain.ShellElements()[0].node_indices[3], 7U) | EXPECT_EQ(domain.ShellElements()[0].material_index, 0U) | EXPECT_EQ(domain.ShellElements()[0].section_index, 0U) | ASSERT_EQ(domain.ShellSections().Size(), 2U) | EXPECT_EQ(domain.ShellSections()[0].name, ""Section-B"") | EXPECT_DOUBLE_EQ(domain.ShellSections()[0].thickness, 0.02) | EXPECT_EQ(domain.ShellSections()[0].material_index, 0U) | EXPECT_EQ(domain.ShellSections()[1].name, ""Section-A"") | ASSERT_EQ(domain.ShellNodeInitialFrames().size(), 2U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].node_index, 4U) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].director, (std::array{0.0, 0.0, 1.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_a, (std::array{1.0, 0.0, 0.0})) | EXPECT_EQ(domain.ShellNodeInitialFrames()[0].tangent_b, (std::array{0.0, 1.0, 0.0})) | ASSERT_TRUE(no_frames_result.HasValue()) | EXPECT_TRUE(no_frames_result.Value().ShellNodeInitialFrames().empty())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/domain_test.cpp support@1-70 helper/oracle/fixture/include/static assertion 구간: MakeOwnedDefinition tests/unit/model/domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7f7d1304d91efcd8a4c1dd7ba01764f329b43c89d1282657290910bb34a13014 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/model/domain_test.cpp support@294-295 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/domain_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eb5700ab2d23b38315cc91249e1dafb93f72ad934048c13f25c663dc769e2529 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/model/model_types_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/model/model_types_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8e73c0944e4a0592a63c397fe368b2568b35f9b176af5cb8a5f7eb409dd4556c 8e73c0944e4a0592a63c397fe368b2568b35f9b176af5cb8a5f7eb409dd4556c 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/model/model_types_test.cpp DomainModel.SourceAndInternalIdentityRemainDistinct DomainModel.SourceAndInternalIdentityRemainDistinct; assertion 18개 tests/unit/model/model_types_test.cpp DomainModel.SourceAndInternalIdentityRemainDistinct 유지 원문 검사 body 및 assertion 동일. 1a34a5d22cd39f263dbb8fd33c71d7018509fd118804b50f3f683e33c3b8614f 1a34a5d22cd39f263dbb8fd33c71d7018509fd118804b50f3f683e33c3b8614f "EXPECT_EQ( std::make_tuple(first_identity.instance_name, first_identity.source_label, first_identity.source_label_text), std::make_tuple(equal_identity.instance_name, equal_identity.source_label, equal_identity.source_label_text)) | EXPECT_LT( std::make_tuple(first_identity.instance_name, first_identity.source_label, first_identity.source_label_text), std::make_tuple(later_identity.instance_name, later_identity.source_label, later_identity.source_label_text)) | ASSERT_EQ(definition.nodes.size(), 1U) | EXPECT_EQ(definition.nodes[0].source_id.source_label_text, ""0007"") | EXPECT_EQ(definition.nodes[0].location.line, 11U) | ASSERT_EQ(definition.instances.size(), 1U) | EXPECT_EQ(definition.instances[0].part_name, ""BeamPart"") | EXPECT_EQ(definition.instances[0].node_mappings[0].source_label, 7) | EXPECT_EQ(definition.instances[0].node_mappings[0].internal_index, 5U) | EXPECT_EQ(definition.instances[0].element_mappings[0].internal_index, 4U) | EXPECT_EQ(definition.steps[0].initial_increment, 0.1) | EXPECT_EQ(definition.steps[0].time_period, 1.0) | EXPECT_EQ(definition.steps[0].minimum_increment, 1.0e-5) | EXPECT_EQ(definition.steps[0].maximum_increment, 1.0) | EXPECT_EQ(definition.steps[0].procedure_kind, fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(definition.steps[0].nlgeom) | ASSERT_EQ(definition.warnings.size(), 1U) | EXPECT_EQ(definition.warnings[0].location.line, 75U)" "EXPECT_EQ( std::make_tuple(first_identity.instance_name, first_identity.source_label, first_identity.source_label_text), std::make_tuple(equal_identity.instance_name, equal_identity.source_label, equal_identity.source_label_text)) | EXPECT_LT( std::make_tuple(first_identity.instance_name, first_identity.source_label, first_identity.source_label_text), std::make_tuple(later_identity.instance_name, later_identity.source_label, later_identity.source_label_text)) | ASSERT_EQ(definition.nodes.size(), 1U) | EXPECT_EQ(definition.nodes[0].source_id.source_label_text, ""0007"") | EXPECT_EQ(definition.nodes[0].location.line, 11U) | ASSERT_EQ(definition.instances.size(), 1U) | EXPECT_EQ(definition.instances[0].part_name, ""BeamPart"") | EXPECT_EQ(definition.instances[0].node_mappings[0].source_label, 7) | EXPECT_EQ(definition.instances[0].node_mappings[0].internal_index, 5U) | EXPECT_EQ(definition.instances[0].element_mappings[0].internal_index, 4U) | EXPECT_EQ(definition.steps[0].initial_increment, 0.1) | EXPECT_EQ(definition.steps[0].time_period, 1.0) | EXPECT_EQ(definition.steps[0].minimum_increment, 1.0e-5) | EXPECT_EQ(definition.steps[0].maximum_increment, 1.0) | EXPECT_EQ(definition.steps[0].procedure_kind, fesa::StaticProcedureKind::kLinearSmallDisplacement) | EXPECT_FALSE(definition.steps[0].nlgeom) | ASSERT_EQ(definition.warnings.size(), 1U) | EXPECT_EQ(definition.warnings[0].location.line, 75U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/model_types_test.cpp DomainModel.Mitc4ShellRecordsPreserveSourceAndInternalIdentity DomainModel.Mitc4ShellRecordsPreserveSourceAndInternalIdentity; assertion 10개 tests/unit/model/model_types_test.cpp DomainModel.Mitc4ShellRecordsPreserveSourceAndInternalIdentity 유지 원문 검사 body 및 assertion 동일. 3792a5dbf6bafaea0771dd6167e4dad3d5b97f16d4af9fea1beaad7163bd0757 3792a5dbf6bafaea0771dd6167e4dad3d5b97f16d4af9fea1beaad7163bd0757 "EXPECT_EQ(s4_element.source_id.instance_name, ""Shell-Instance"") | EXPECT_EQ(s4_element.source_id.source_label, 41) | EXPECT_EQ(s4_element.source_id.source_label_text, ""0041"") | EXPECT_EQ(s4_element.source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(s4r_element.source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_NE(s4_element.source_type, s4r_element.source_type) | EXPECT_EQ(fesa::kMitc4InternalFormulation, std::string_view{""FESA-MITC4""}) | EXPECT_EQ(s4_element.node_indices, (std::array{3U, 5U, 8U, 13U})) | EXPECT_EQ(s4_element.material_index, 2U) | EXPECT_EQ(s4_element.section_index, 7U)" "EXPECT_EQ(s4_element.source_id.instance_name, ""Shell-Instance"") | EXPECT_EQ(s4_element.source_id.source_label, 41) | EXPECT_EQ(s4_element.source_id.source_label_text, ""0041"") | EXPECT_EQ(s4_element.source_type, fesa::ShellSourceElementType::kS4) | EXPECT_EQ(s4r_element.source_type, fesa::ShellSourceElementType::kS4r) | EXPECT_NE(s4_element.source_type, s4r_element.source_type) | EXPECT_EQ(fesa::kMitc4InternalFormulation, std::string_view{""FESA-MITC4""}) | EXPECT_EQ(s4_element.node_indices, (std::array{3U, 5U, 8U, 13U})) | EXPECT_EQ(s4_element.material_index, 2U) | EXPECT_EQ(s4_element.section_index, 7U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/model_types_test.cpp support@1-32 helper/oracle/fixture/include/static assertion 구간: T, HasEquationId, HasEquationIds tests/unit/model/model_types_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bd6932bd12576c905f4c5d95d7902dba5b9be6626cdbee2a8299ecb10b7238c7 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/model/model_types_test.cpp support@133-134 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/model_types_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7dc636d3db680b7c9af260eae733472a8fbad5992eea8384efe301c7ff01862c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/model/shell_geometry_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/model/shell_geometry_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3abea01e7cb6543d3f25106cfa97ad5f94c9166a91bf90fbd390a700401d6d9f 3abea01e7cb6543d3f25106cfa97ad5f94c9166a91bf90fbd390a700401d6d9f 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.BuildsDeterministicFramesForPlanarRotatedAndWarpedElements Mitc4Geometry.BuildsDeterministicFramesForPlanarRotatedAndWarpedElements; assertion 7개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.BuildsDeterministicFramesForPlanarRotatedAndWarpedElements 유지 원문 검사 body 및 assertion 동일. 89a2ec45af8b97d1f42896e1d0107362659e83a893cf60d7d679786c36f20afe 89a2ec45af8b97d1f42896e1d0107362659e83a893cf60d7d679786c36f20afe ASSERT_TRUE(planar.HasValue()) | ASSERT_EQ(planar.Value().element_data.size(), 1U) | EXPECT_NEAR(planar.Value().element_data[0].surface_area_weight, 1.0, 1.0e-12) | ASSERT_EQ(planar.Value().nodal_frames.size(), 4U) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(warped.HasValue()) | EXPECT_GT(warped.Value().element_data[0].surface_area_weight, 2.0) ASSERT_TRUE(planar.HasValue()) | ASSERT_EQ(planar.Value().element_data.size(), 1U) | EXPECT_NEAR(planar.Value().element_data[0].surface_area_weight, 1.0, 1.0e-12) | ASSERT_EQ(planar.Value().nodal_frames.size(), 4U) | ASSERT_TRUE(rotated.HasValue()) | ASSERT_TRUE(warped.HasValue()) | EXPECT_GT(warped.Value().element_data[0].surface_area_weight, 2.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.PreservesExactWarpedResultsAcrossVector3Migration Mitc4Geometry.PreservesExactWarpedResultsAcrossVector3Migration; assertion 14개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.PreservesExactWarpedResultsAcrossVector3Migration 유지 원문 검사 body 및 assertion 동일. c2020cdfcdb7453af2d1504928200ed4e401c22a150f8e0d0b043ef7f27bbdc6 c2020cdfcdb7453af2d1504928200ed4e401c22a150f8e0d0b043ef7f27bbdc6 ASSERT_TRUE(warped.HasValue()) | EXPECT_DOUBLE_EQ(normal.X(), -0x1.97105218e28c2p-5) | EXPECT_DOUBLE_EQ(normal.Y(), -0x1.97105218e28c2p-4) | EXPECT_DOUBLE_EQ(normal.Z(), 0x1.fcd4669f1b2f2p-1) | EXPECT_DOUBLE_EQ(element.surface_area_weight, 0x1.021ebe8f40622p+1) | EXPECT_DOUBLE_EQ(director.X(), -0x1.97105218e28c2p-5) | EXPECT_DOUBLE_EQ(director.Y(), -0x1.97105218e28c2p-4) | EXPECT_DOUBLE_EQ(director.Z(), 0x1.fcd4669f1b2f2p-1) | EXPECT_DOUBLE_EQ(tangent_a.X(), 0x1.ff5e152c2d2abp-1) | EXPECT_DOUBLE_EQ(tangent_a.Y(), -0x1.4408ec773d925p-8) | EXPECT_DOUBLE_EQ(tangent_a.Z(), 0x1.950b27950cf6dp-5) | EXPECT_DOUBLE_EQ(tangent_b.X(), 0.0) | EXPECT_DOUBLE_EQ(tangent_b.Y(), 0x1.fd7583bc82e28p-1) | EXPECT_DOUBLE_EQ(tangent_b.Z(), 0x1.9791363068b53p-4) ASSERT_TRUE(warped.HasValue()) | EXPECT_DOUBLE_EQ(normal.X(), -0x1.97105218e28c2p-5) | EXPECT_DOUBLE_EQ(normal.Y(), -0x1.97105218e28c2p-4) | EXPECT_DOUBLE_EQ(normal.Z(), 0x1.fcd4669f1b2f2p-1) | EXPECT_DOUBLE_EQ(element.surface_area_weight, 0x1.021ebe8f40622p+1) | EXPECT_DOUBLE_EQ(director.X(), -0x1.97105218e28c2p-5) | EXPECT_DOUBLE_EQ(director.Y(), -0x1.97105218e28c2p-4) | EXPECT_DOUBLE_EQ(director.Z(), 0x1.fcd4669f1b2f2p-1) | EXPECT_DOUBLE_EQ(tangent_a.X(), 0x1.ff5e152c2d2abp-1) | EXPECT_DOUBLE_EQ(tangent_a.Y(), -0x1.4408ec773d925p-8) | EXPECT_DOUBLE_EQ(tangent_a.Z(), 0x1.950b27950cf6dp-5) | EXPECT_DOUBLE_EQ(tangent_b.X(), 0.0) | EXPECT_DOUBLE_EQ(tangent_b.Y(), 0x1.fd7583bc82e28p-1) | EXPECT_DOUBLE_EQ(tangent_b.Z(), 0x1.9791363068b53p-4) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.AreaWeightsSharedDirectorsInStableSourceIdentityOrder Mitc4Geometry.AreaWeightsSharedDirectorsInStableSourceIdentityOrder; assertion 2개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.AreaWeightsSharedDirectorsInStableSourceIdentityOrder 유지 원문 검사 body 및 assertion 동일. c24fcef294b948a5b0cdbd9fa0822d7d6f18aa2e106569c357417a0f396e89fa c24fcef294b948a5b0cdbd9fa0822d7d6f18aa2e106569c357417a0f396e89fa ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) ASSERT_TRUE(first.HasValue()) | ASSERT_TRUE(second.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.RejectsInvalidSurfaceJacobianAndIncidentOrientationCases Mitc4Geometry.RejectsInvalidSurfaceJacobianAndIncidentOrientationCases; assertion 0개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.RejectsInvalidSurfaceJacobianAndIncidentOrientationCases 유지 원문 검사 body 및 assertion 동일. 78afdfd80554bc5d9c2e688f0a7ee1213acaa0be1ba804306d6973825b1447e0 78afdfd80554bc5d9c2e688f0a7ee1213acaa0be1ba804306d6973825b1447e0 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.ExposesTheCompleteRequiredValidationPointInventory Mitc4Geometry.ExposesTheCompleteRequiredValidationPointInventory; assertion 12개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.ExposesTheCompleteRequiredValidationPointInventory 유지 원문 검사 body 및 assertion 동일. 0de2e1387e20a29baff982dcaf0fba7b261415b3a5a39c9c635e20f1529aff05 0de2e1387e20a29baff982dcaf0fba7b261415b3a5a39c9c635e20f1529aff05 ASSERT_EQ(points.size(), 17U) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kCenter; }), 1) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kStiffness; }), 8) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kTying; }), 4) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kRecovery; }), 4) | EXPECT_EQ(points.front().natural_coordinates, (Vector3{0.0, 0.0, 0.0})) | EXPECT_EQ(points[1].natural_coordinates, (Vector3{-gauss, -gauss, -gauss})) | EXPECT_EQ(points[8].natural_coordinates, (Vector3{-gauss, gauss, gauss})) | EXPECT_EQ(points[9].natural_coordinates, (Vector3{0.0, -1.0, 0.0})) | EXPECT_EQ(points[12].natural_coordinates, (Vector3{1.0, 0.0, 0.0})) | EXPECT_EQ(points[13].natural_coordinates, (Vector3{-gauss, -gauss, 0.0})) | EXPECT_EQ(points[16].natural_coordinates, (Vector3{-gauss, gauss, 0.0})) ASSERT_EQ(points.size(), 17U) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kCenter; }), 1) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kStiffness; }), 8) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kTying; }), 4) | EXPECT_EQ(std::count_if(points.begin(), points.end(), [](const auto& point) { return point.kind == fesa::ShellGeometryPointKind::kRecovery; }), 4) | EXPECT_EQ(points.front().natural_coordinates, (Vector3{0.0, 0.0, 0.0})) | EXPECT_EQ(points[1].natural_coordinates, (Vector3{-gauss, -gauss, -gauss})) | EXPECT_EQ(points[8].natural_coordinates, (Vector3{-gauss, gauss, gauss})) | EXPECT_EQ(points[9].natural_coordinates, (Vector3{0.0, -1.0, 0.0})) | EXPECT_EQ(points[12].natural_coordinates, (Vector3{1.0, 0.0, 0.0})) | EXPECT_EQ(points[13].natural_coordinates, (Vector3{-gauss, -gauss, 0.0})) | EXPECT_EQ(points[16].natural_coordinates, (Vector3{-gauss, gauss, 0.0})) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.RetainsReciprocalDeterminantOverflowGateAtTinyScale Mitc4Geometry.RetainsReciprocalDeterminantOverflowGateAtTinyScale; assertion 1개 tests/unit/model/shell_geometry_test.cpp Mitc4Geometry.RetainsReciprocalDeterminantOverflowGateAtTinyScale 유지 원문 검사 body 및 assertion 동일. 36cb5ccf5f9110d50f87a34fe24a938659214c715959824e1003d4093e98bcf4 36cb5ccf5f9110d50f87a34fe24a938659214c715959824e1003d4093e98bcf4 EXPECT_TRUE(fesa::PreprocessShellGeometry( nodes, {Element(10U, {0U, 1U, 2U, 3U})}, Sections(2e-99)).HasValue()) EXPECT_TRUE(fesa::PreprocessShellGeometry( nodes, {Element(10U, {0U, 1U, 2U, 3U})}, Sections(2e-99)).HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/shell_geometry_test.cpp support@1-91 helper/oracle/fixture/include/static assertion 구간: Node, Element, Sections, Dot, Cross, Norm, ExpectVectorNear, ExpectRightHandedFrame, FrameFor, find_if, ExpectFailureCode tests/unit/model/shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7fecde30f91624d167ea26a62c28b4f280b502b07cb5999ed2668cb5db8dcdc8 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/model/shell_geometry_test.cpp support@166-167 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2511c5276f8f705a4d47ef40ba5103972050738b68fd8a2714f3fd319f718b5c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/model/shell_geometry_test.cpp support@193-194 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 3cb49d9660c0150c0645878e98e94da458f371a63d9cf921dafed78d62b6a4a0 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/model/shell_geometry_test.cpp support@247-248 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 05e26e807ccadaa099d4dc20c9590ec3fa57343328b240c1ed2d4dc9086c1321 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/model/source_target_resolver_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/model/source_target_resolver_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5868bd88560af25dea83f385748c40d274712c9dc28a344fca03f3cab760f8d1 5868bd88560af25dea83f385748c40d274712c9dc28a344fca03f3cab760f8d1 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.SeparatesNamespacesAndInstancesAndExpandsInDeclarationOrder SourceTargetResolver.SeparatesNamespacesAndInstancesAndExpandsInDeclarationOrder; assertion 10개 tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.SeparatesNamespacesAndInstancesAndExpandsInDeclarationOrder 유지 원문 검사 body 및 assertion 동일. 371f5279d1b122a9821fe2fa2e841a01f0c7f317f4824c7f1a10eb65bda481be 371f5279d1b122a9821fe2fa2e841a01f0c7f317f4824c7f1a10eb65bda481be "ASSERT_TRUE(nodes.HasValue()) | EXPECT_EQ(Indices(nodes.Value()), (std::vector{0U, 1U})) | EXPECT_EQ(nodes.Value()[0U].source_id.instance_name, ""Beam-1"") | EXPECT_EQ(nodes.Value()[0U].source_id.source_label_text, ""0010"") | ASSERT_TRUE(elements.HasValue()) | EXPECT_EQ(Indices(elements.Value()), (std::vector{4U})) | ASSERT_TRUE(second_instance.HasValue()) | EXPECT_EQ(Indices(second_instance.Value()), (std::vector{2U})) | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(Indices(direct.Value()), (std::vector{0U}))" "ASSERT_TRUE(nodes.HasValue()) | EXPECT_EQ(Indices(nodes.Value()), (std::vector{0U, 1U})) | EXPECT_EQ(nodes.Value()[0U].source_id.instance_name, ""Beam-1"") | EXPECT_EQ(nodes.Value()[0U].source_id.source_label_text, ""0010"") | ASSERT_TRUE(elements.HasValue()) | EXPECT_EQ(Indices(elements.Value()), (std::vector{4U})) | ASSERT_TRUE(second_instance.HasValue()) | EXPECT_EQ(Indices(second_instance.Value()), (std::vector{2U})) | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(Indices(direct.Value()), (std::vector{0U}))" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.RejectsMissingAmbiguousAndNonpositiveTargets SourceTargetResolver.RejectsMissingAmbiguousAndNonpositiveTargets; assertion 0개 tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.RejectsMissingAmbiguousAndNonpositiveTargets 유지 원문 검사 body 및 assertion 동일. 7a11d0e9feb5f2c40349b3fc51279e275ea27d6030de1e9489786952e1444aef 7a11d0e9feb5f2c40349b3fc51279e275ea27d6030de1e9489786952e1444aef 해당 없음 해당 없음 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.ReportsDuplicateMembershipsInDeterministicDeclarationOrder SourceTargetResolver.ReportsDuplicateMembershipsInDeterministicDeclarationOrder; assertion 7개 tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.ReportsDuplicateMembershipsInDeterministicDeclarationOrder 유지 원문 검사 body 및 assertion 동일. 8f72fa1e1fbb347fed00f0ae99086e57086d43ac80984243f2c5ee20bb141c29 8f72fa1e1fbb347fed00f0ae99086e57086d43ac80984243f2c5ee20bb141c29 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 2U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""duplicate-source-target"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].message, ""Duplicate resolved source target 20."") | EXPECT_EQ(result.GetStatus().Diagnostics()[1U].code, ""duplicate-source-target"") | EXPECT_EQ(result.GetStatus().Diagnostics()[1U].message, ""Duplicate resolved source target 10."")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 2U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""duplicate-source-target"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].message, ""Duplicate resolved source target 20."") | EXPECT_EQ(result.GetStatus().Diagnostics()[1U].code, ""duplicate-source-target"") | EXPECT_EQ(result.GetStatus().Diagnostics()[1U].message, ""Duplicate resolved source target 10."")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.OwnsNodeCandidateIndexBeforeDomainCommit SourceTargetResolver.OwnsNodeCandidateIndexBeforeDomainCommit; assertion 10개 tests/unit/model/source_target_resolver_test.cpp SourceTargetResolver.OwnsNodeCandidateIndexBeforeDomainCommit 유지 원문 검사 body 및 assertion 동일. 9d4031c4c481dd1976681735a372eca73ebff8a010443fe0a0097a098182c864 9d4031c4c481dd1976681735a372eca73ebff8a010443fe0a0097a098182c864 "ASSERT_TRUE(ends.HasValue()) | EXPECT_EQ(Indices(ends.Value()), (std::vector{1U, 0U})) | EXPECT_EQ(ends.Value()[0U].source_id.source_label_text, ""0010"") | EXPECT_EQ(ends.Value()[1U].source_id.source_label_text, ""0020"") | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(Indices(direct.Value()), (std::vector{2U})) | ASSERT_FALSE(repeated.HasValue()) | ASSERT_EQ(repeated.GetStatus().Diagnostics().size(), 2U) | EXPECT_EQ(repeated.GetStatus().Diagnostics()[0U].message, ""Duplicate resolved source target 0020."") | EXPECT_EQ(repeated.GetStatus().Diagnostics()[1U].message, ""Duplicate resolved source target 0010."")" "ASSERT_TRUE(ends.HasValue()) | EXPECT_EQ(Indices(ends.Value()), (std::vector{1U, 0U})) | EXPECT_EQ(ends.Value()[0U].source_id.source_label_text, ""0010"") | EXPECT_EQ(ends.Value()[1U].source_id.source_label_text, ""0020"") | ASSERT_TRUE(direct.HasValue()) | EXPECT_EQ(Indices(direct.Value()), (std::vector{2U})) | ASSERT_FALSE(repeated.HasValue()) | ASSERT_EQ(repeated.GetStatus().Diagnostics().size(), 2U) | EXPECT_EQ(repeated.GetStatus().Diagnostics()[0U].message, ""Duplicate resolved source target 0020."") | EXPECT_EQ(repeated.GetStatus().Diagnostics()[1U].message, ""Duplicate resolved source target 0010."")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/source_target_resolver_test.cpp support@1-52 helper/oracle/fixture/include/static assertion 구간: Entry, Indices, for, ExpectFailure tests/unit/model/source_target_resolver_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. cea5c6ff21dff6057da6621ea47cd0fcb5ec20f1f524551e8bae951791033aa8 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/model/thermal_semantics_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/model/thermal_semantics_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e35fdae0a9d314a157526b4ebd72ff54eef3f8123b3646fd8f5f3c50b39bbaea e35fdae0a9d314a157526b4ebd72ff54eef3f8123b3646fd8f5f3c50b39bbaea 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/model/thermal_semantics_test.cpp ThermalDomain.StructuralDefinitionHasNoThermalStep ThermalDomain.StructuralDefinitionHasNoThermalStep; assertion 2개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.StructuralDefinitionHasNoThermalStep 유지 원문 검사 body 및 assertion 동일. 5109e39fa2bd304e84323c45a63bff6d6948c4f8e385006533847d897edbb852 5109e39fa2bd304e84323c45a63bff6d6948c4f8e385006533847d897edbb852 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().ThermalStep(), nullptr) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().ThermalStep(), nullptr) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/thermal_semantics_test.cpp IsotropicThermalMaterial.RequiresFinitePositivePropertiesAndIdentity IsotropicThermalMaterial.RequiresFinitePositivePropertiesAndIdentity; assertion 9개 tests/unit/model/thermal_semantics_test.cpp IsotropicThermalMaterial.RequiresFinitePositivePropertiesAndIdentity 유지 원문 검사 body 및 assertion 동일. 3eec96a6aa43b48716c7ef05b78fc8e81f08777ca547164a676e7ba5b64987ee 3eec96a6aa43b48716c7ef05b78fc8e81f08777ca547164a676e7ba5b64987ee "ASSERT_TRUE(valid.HasValue()) | EXPECT_EQ(valid.Value().Kind(), fesa::MaterialKind::kIsotropicThermal) | EXPECT_DOUBLE_EQ(valid.Value().Conductivity(), 45.0) | EXPECT_DOUBLE_EQ(valid.Value().Density(), 7800.0) | EXPECT_DOUBLE_EQ(valid.Value().SpecificHeat(), 500.0) | ASSERT_FALSE(invalid.HasValue()) | EXPECT_EQ(invalid.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(fesa::IsotropicThermalMaterial::Create({"""", 7, ""Thermal-Steel""}, ""Thermal-Steel"", 45.0, 0.0, 500.0, Location()) .HasValue()) | EXPECT_FALSE(fesa::IsotropicThermalMaterial::Create( {"""", 7, ""Thermal-Steel""}, ""Thermal-Steel"", 45.0, 7800.0, std::numeric_limits::quiet_NaN(), Location()) .HasValue())" "ASSERT_TRUE(valid.HasValue()) | EXPECT_EQ(valid.Value().Kind(), fesa::MaterialKind::kIsotropicThermal) | EXPECT_DOUBLE_EQ(valid.Value().Conductivity(), 45.0) | EXPECT_DOUBLE_EQ(valid.Value().Density(), 7800.0) | EXPECT_DOUBLE_EQ(valid.Value().SpecificHeat(), 500.0) | ASSERT_FALSE(invalid.HasValue()) | EXPECT_EQ(invalid.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(fesa::IsotropicThermalMaterial::Create({"""", 7, ""Thermal-Steel""}, ""Thermal-Steel"", 45.0, 0.0, 500.0, Location()) .HasValue()) | EXPECT_FALSE(fesa::IsotropicThermalMaterial::Create( {"""", 7, ""Thermal-Steel""}, ""Thermal-Steel"", 45.0, 7800.0, std::numeric_limits::quiet_NaN(), Location()) .HasValue())" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/thermal_semantics_test.cpp ThermalDomain.OwnsFiveStationDefinitionsWithoutEquationState ThermalDomain.OwnsFiveStationDefinitionsWithoutEquationState; assertion 11개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.OwnsFiveStationDefinitionsWithoutEquationState 유지 원문 검사 body 및 assertion 동일. e6d226842e76067fc438dfd669bd073c05be7a9be7895ab909ad06d4ab8a0e72 e6d226842e76067fc438dfd669bd073c05be7a9be7895ab909ad06d4ab8a0e72 ASSERT_TRUE(result.HasValue()) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(domain.ThermalElements().Size(), 1U) | EXPECT_EQ(domain.ThermalElements()[0U].Kind(), fesa::ElementDefinitionKind::kDs4Thermal) | EXPECT_EQ(domain.ThermalElements()[0U].PropertyIndex(), fesa::Ds4ThermalDefinition::kNoPropertyIndex) | EXPECT_EQ(domain.ThermalElements()[0U].NodeIndices(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(domain.ThermalInitialConditions()[0U].station_values, (std::array{12.5, 12.5, 12.5, 12.5, 12.5})) | EXPECT_EQ(domain.ThermalStep()->Boundaries()[0U].value, 20.0) | EXPECT_EQ(domain.ThermalStep()->Loads()[0U].source_order, 0U) | EXPECT_EQ(static_cast(fesa::ThermalDofComponent::kBottom), 11) | EXPECT_EQ(static_cast(fesa::ThermalDofComponent::kTop), 15) ASSERT_TRUE(result.HasValue()) | ASSERT_NE(domain.ThermalStep(), nullptr) | EXPECT_EQ(domain.ThermalElements().Size(), 1U) | EXPECT_EQ(domain.ThermalElements()[0U].Kind(), fesa::ElementDefinitionKind::kDs4Thermal) | EXPECT_EQ(domain.ThermalElements()[0U].PropertyIndex(), fesa::Ds4ThermalDefinition::kNoPropertyIndex) | EXPECT_EQ(domain.ThermalElements()[0U].NodeIndices(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(domain.ThermalInitialConditions()[0U].station_values, (std::array{12.5, 12.5, 12.5, 12.5, 12.5})) | EXPECT_EQ(domain.ThermalStep()->Boundaries()[0U].value, 20.0) | EXPECT_EQ(domain.ThermalStep()->Loads()[0U].source_order, 0U) | EXPECT_EQ(static_cast(fesa::ThermalDofComponent::kBottom), 11) | EXPECT_EQ(static_cast(fesa::ThermalDofComponent::kTop), 15) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/thermal_semantics_test.cpp ThermalDomain.RejectsInactiveTargetsConflictsAndMixedElements ThermalDomain.RejectsInactiveTargetsConflictsAndMixedElements; assertion 8개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.RejectsInactiveTargetsConflictsAndMixedElements 유지 원문 검사 body 및 assertion 동일. 69b1b68b51176ef0a39d57b5c5899bc6c935fc3e6a82850b7634f13895ae26d6 69b1b68b51176ef0a39d57b5c5899bc6c935fc3e6a82850b7634f13895ae26d6 ASSERT_FALSE(inactive.HasValue()) | EXPECT_EQ(inactive.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(conflicting.HasValue()) | EXPECT_EQ(conflicting.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(mixed.HasValue()) | EXPECT_EQ(mixed.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(invalid_thickness.HasValue()) | EXPECT_EQ(invalid_thickness.GetStatus().Category(), fesa::FailureCategory::kModel) ASSERT_FALSE(inactive.HasValue()) | EXPECT_EQ(inactive.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(conflicting.HasValue()) | EXPECT_EQ(conflicting.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(mixed.HasValue()) | EXPECT_EQ(mixed.GetStatus().Category(), fesa::FailureCategory::kModel) | ASSERT_FALSE(invalid_thickness.HasValue()) | EXPECT_EQ(invalid_thickness.GetStatus().Category(), fesa::FailureCategory::kModel) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/thermal_semantics_test.cpp ThermalDomain.AllowsEqualInitialTargetsAndStepBoundaryOverride ThermalDomain.AllowsEqualInitialTargetsAndStepBoundaryOverride; assertion 4개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.AllowsEqualInitialTargetsAndStepBoundaryOverride 유지 원문 검사 body 및 assertion 동일. 7d2f88248ba8df15e130f352f1bcbce0886e513bfd575bcdf66862383f86ce12 7d2f88248ba8df15e130f352f1bcbce0886e513bfd575bcdf66862383f86ce12 EXPECT_TRUE(equal_initial.HasValue()) | ASSERT_FALSE(conflicting_initial.HasValue()) | EXPECT_EQ(conflicting_initial.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_TRUE(overriding_step.HasValue()) EXPECT_TRUE(equal_initial.HasValue()) | ASSERT_FALSE(conflicting_initial.HasValue()) | EXPECT_EQ(conflicting_initial.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_TRUE(overriding_step.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/thermal_semantics_test.cpp ThermalDomain.RejectsInteriorThermalDofsAndInactiveFluxTargets ThermalDomain.RejectsInteriorThermalDofsAndInactiveFluxTargets; assertion 4개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.RejectsInteriorThermalDofsAndInactiveFluxTargets 유지 원문 검사 body 및 assertion 동일. 1e9cbd5b4303fc6d2706eda68d786d4bec26fe554c7043554f04b8588b7455f3 1e9cbd5b4303fc6d2706eda68d786d4bec26fe554c7043554f04b8588b7455f3 EXPECT_FALSE(boundary.HasValue()) | EXPECT_FALSE(flux.HasValue()) | EXPECT_FALSE(inactive_flux.HasValue()) | EXPECT_FALSE(inactive_boundary.HasValue()) EXPECT_FALSE(boundary.HasValue()) | EXPECT_FALSE(flux.HasValue()) | EXPECT_FALSE(inactive_flux.HasValue()) | EXPECT_FALSE(inactive_boundary.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/thermal_semantics_test.cpp ThermalDomain.PreservesAdditiveFluxSourceOrder ThermalDomain.PreservesAdditiveFluxSourceOrder; assertion 6개 tests/unit/model/thermal_semantics_test.cpp ThermalDomain.PreservesAdditiveFluxSourceOrder 유지 원문 검사 body 및 assertion 동일. dd1914d0d09fc94c82e24118f005fc7d1ff4b5c31ceb318021508b6239a26a79 dd1914d0d09fc94c82e24118f005fc7d1ff4b5c31ceb318021508b6239a26a79 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0U].source_order, 0U) | EXPECT_EQ(loads[1U].source_order, 1U) | EXPECT_DOUBLE_EQ(loads[0U].power, -5.0) | EXPECT_DOUBLE_EQ(loads[1U].power, 3.0) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(loads.size(), 2U) | EXPECT_EQ(loads[0U].source_order, 0U) | EXPECT_EQ(loads[1U].source_order, 1U) | EXPECT_DOUBLE_EQ(loads[0U].power, -5.0) | EXPECT_DOUBLE_EQ(loads[1U].power, 3.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/thermal_semantics_test.cpp ThermalAnalysisModel.KeepsThermalSectionMaterialIndicesSeparateFromDomainMaterials ThermalAnalysisModel.KeepsThermalSectionMaterialIndicesSeparateFromDomainMaterials; assertion 12개 tests/unit/model/thermal_semantics_test.cpp ThermalAnalysisModel.KeepsThermalSectionMaterialIndicesSeparateFromDomainMaterials 유지 원문 검사 body 및 assertion 동일. 550c29842bdef0f9518150f2f263f6c2302ce2d0c108607913f3833bfbd9ace2 550c29842bdef0f9518150f2f263f6c2302ce2d0c108607913f3833bfbd9ace2 ASSERT_TRUE(domain_result.HasValue()) | ASSERT_EQ(domain.Materials().Size(), 3U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 2U) | EXPECT_EQ(domain.ThermalSections()[0U].material_index, 1U) | EXPECT_EQ(domain.ThermalSections()[1U].material_index, 0U) | EXPECT_EQ(domain.ThermalElements()[0U].MaterialIndex(), 2U) | EXPECT_EQ(domain.ThermalElements()[1U].MaterialIndex(), 1U) | EXPECT_EQ(domain.ThermalElements()[0U].PropertyIndex(), fesa::Ds4ThermalDefinition::kNoPropertyIndex) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(model_result.Value().ActiveThermalMaterials(), (std::vector{0U, 1U})) | EXPECT_EQ(model_result.Value().ActiveThermalSections(), (std::vector{0U, 1U})) | EXPECT_TRUE(model_result.Value().ActiveProperties().empty()) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_EQ(domain.Materials().Size(), 3U) | ASSERT_EQ(domain.ThermalMaterials().Size(), 2U) | EXPECT_EQ(domain.ThermalSections()[0U].material_index, 1U) | EXPECT_EQ(domain.ThermalSections()[1U].material_index, 0U) | EXPECT_EQ(domain.ThermalElements()[0U].MaterialIndex(), 2U) | EXPECT_EQ(domain.ThermalElements()[1U].MaterialIndex(), 1U) | EXPECT_EQ(domain.ThermalElements()[0U].PropertyIndex(), fesa::Ds4ThermalDefinition::kNoPropertyIndex) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_EQ(model_result.Value().ActiveThermalMaterials(), (std::vector{0U, 1U})) | EXPECT_EQ(model_result.Value().ActiveThermalSections(), (std::vector{0U, 1U})) | EXPECT_TRUE(model_result.Value().ActiveProperties().empty()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/thermal_semantics_test.cpp ThermalAnalysisModel.ViewsConnectedDs4EntitiesWithoutOwningDomain ThermalAnalysisModel.ViewsConnectedDs4EntitiesWithoutOwningDomain; assertion 17개 tests/unit/model/thermal_semantics_test.cpp ThermalAnalysisModel.ViewsConnectedDs4EntitiesWithoutOwningDomain 유지 원문 검사 body 및 assertion 동일. 509fa86c25fb97bf5c46d2eb7dfe513ac53a0fbceef40979b47ed0a740fbac7c 509fa86c25fb97bf5c46d2eb7dfe513ac53a0fbceef40979b47ed0a740fbac7c ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_TRUE(model.IsThermal()) | EXPECT_EQ(model.ThermalStep(), domain.ThermalStep()) | EXPECT_THROW(model.Step(), std::logic_error) | EXPECT_EQ(model.ActiveThermalElements(), (std::vector{0U})) | EXPECT_EQ(model.ActiveThermalNodes(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(model.ActiveThermalMaterials(), (std::vector{0U})) | EXPECT_EQ(model.ActiveThermalSections(), (std::vector{0U})) | EXPECT_TRUE(model.ActiveProperties().empty()) | EXPECT_EQ(domain.ThermalSections()[0U].material_index, 0U) | EXPECT_EQ(domain.ThermalElements()[0U].MaterialIndex(), 0U) | EXPECT_EQ(&model.GetDomain(), &domain) | ASSERT_TRUE(moved_model.HasValue()) | EXPECT_EQ(&moved_model.Value().GetDomain(), &moved_domain) | EXPECT_DOUBLE_EQ(moved_domain.ThermalMaterials()[0U].Conductivity(), 45.0) | EXPECT_EQ(moved_domain.ThermalElements()[0U].SourceId().source_label, 8) ASSERT_TRUE(domain_result.HasValue()) | ASSERT_TRUE(model_result.HasValue()) | EXPECT_TRUE(model.IsThermal()) | EXPECT_EQ(model.ThermalStep(), domain.ThermalStep()) | EXPECT_THROW(model.Step(), std::logic_error) | EXPECT_EQ(model.ActiveThermalElements(), (std::vector{0U})) | EXPECT_EQ(model.ActiveThermalNodes(), (std::vector{0U, 1U, 2U, 3U})) | EXPECT_EQ(model.ActiveThermalMaterials(), (std::vector{0U})) | EXPECT_EQ(model.ActiveThermalSections(), (std::vector{0U})) | EXPECT_TRUE(model.ActiveProperties().empty()) | EXPECT_EQ(domain.ThermalSections()[0U].material_index, 0U) | EXPECT_EQ(domain.ThermalElements()[0U].MaterialIndex(), 0U) | EXPECT_EQ(&model.GetDomain(), &domain) | ASSERT_TRUE(moved_model.HasValue()) | EXPECT_EQ(&moved_model.Value().GetDomain(), &moved_domain) | EXPECT_DOUBLE_EQ(moved_domain.ThermalMaterials()[0U].Conductivity(), 45.0) | EXPECT_EQ(moved_domain.ThermalElements()[0U].SourceId().source_label, 8) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/model/thermal_semantics_test.cpp support@1-50 helper/oracle/fixture/include/static assertion 구간: Location, ValidDefinition tests/unit/model/thermal_semantics_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 34019d56ebed3f1fa39477e5c1846c9610f380a4cec751b860088f6e6ce221ba 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/model/thermal_shell_geometry_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 11개 tests/unit/model/thermal_shell_geometry_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 2011bdeb9d673496a31e6ee31317452fb401fbfefb928cd97d085c99406dd033 2011bdeb9d673496a31e6ee31317452fb401fbfefb928cd97d085c99406dd033 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.CertifiesAffineDistortedSaddleAndSlenderPatches ThermalShellGeometry.CertifiesAffineDistortedSaddleAndSlenderPatches; assertion 5개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.CertifiesAffineDistortedSaddleAndSlenderPatches 유지 원문 검사 body 및 assertion 동일. 48147bb1a29cb0d24551a12e8a96d748c81fa670f440912e1d99901118128f8c 48147bb1a29cb0d24551a12e8a96d748c81fa670f440912e1d99901118128f8c EXPECT_TRUE(Kernel(kSquare).HasValue()) | EXPECT_TRUE( Kernel({{{0, 0, 0}, {2, 0, 0}, {3, 1, 0}, {1, 1, 0}}}).HasValue()) | EXPECT_TRUE( Kernel({{{0, 0, 0}, {2, 0, 0}, {1.5, 1, 0}, {0, 1, 0}}}).HasValue()) | EXPECT_TRUE(Kernel({{{0, 0, 0}, {1, 0, 0}, {1, std::ldexp(1., -40), 0}, {0, std::ldexp(1., -40), 0}}}) .HasValue()) | EXPECT_TRUE( Kernel({{{-1, -1, a}, {1, -1, -a}, {1, 1, a}, {-1, 1, -a}}}).HasValue()) EXPECT_TRUE(Kernel(kSquare).HasValue()) | EXPECT_TRUE( Kernel({{{0, 0, 0}, {2, 0, 0}, {3, 1, 0}, {1, 1, 0}}}).HasValue()) | EXPECT_TRUE( Kernel({{{0, 0, 0}, {2, 0, 0}, {1.5, 1, 0}, {0, 1, 0}}}).HasValue()) | EXPECT_TRUE(Kernel({{{0, 0, 0}, {1, 0, 0}, {1, std::ldexp(1., -40), 0}, {0, std::ldexp(1., -40), 0}}}) .HasValue()) | EXPECT_TRUE( Kernel({{{-1, -1, a}, {1, -1, -a}, {1, 1, a}, {-1, 1, -a}}}).HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.PowerOfTwoScalingTranslationAndRotation ThermalShellGeometry.PowerOfTwoScalingTranslationAndRotation; assertion 3개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.PowerOfTwoScalingTranslationAndRotation 유지 원문 검사 body 및 assertion 동일. 5a22e1006b798b2d4a9544a4ee6af30a969558a0bafaba3dfc98634d36b62ff8 5a22e1006b798b2d4a9544a4ee6af30a969558a0bafaba3dfc98634d36b62ff8 EXPECT_TRUE(Kernel(patch).HasValue()) | EXPECT_TRUE(Kernel(translated).HasValue()) | EXPECT_TRUE(Kernel(rotated).HasValue()) EXPECT_TRUE(Kernel(patch).HasValue()) | EXPECT_TRUE(Kernel(translated).HasValue()) | EXPECT_TRUE(Kernel(rotated).HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsWholePatchSingularityDespiteNonzeroGaussPoints ThermalShellGeometry.RejectsWholePatchSingularityDespiteNonzeroGaussPoints; assertion 4개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsWholePatchSingularityDespiteNonzeroGaussPoints 유지 원문 검사 body 및 assertion 동일. d4f657f21765c36aeb85cb4ef44f7eb0da408aaa215d6264aa01ae008fe24134 d4f657f21765c36aeb85cb4ef44f7eb0da408aaa215d6264aa01ae008fe24134 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].entity_identity, ""part:0027"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, 17U) | EXPECT_GT(std::abs(q - .25), 0.)" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].entity_identity, ""part:0027"") | EXPECT_EQ(result.GetStatus().Diagnostics()[0].location.line, 17U) | EXPECT_GT(std::abs(q - .25), 0.)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsInvalidAndDoesNotRepairUncertainGeometry ThermalShellGeometry.RejectsInvalidAndDoesNotRepairUncertainGeometry; assertion 6개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsInvalidAndDoesNotRepairUncertainGeometry 유지 원문 검사 body 및 assertion 동일. 8507137261c0e52029ab56b39af1e9434cf478fcf9870c9d474c8f61ffb75f0e 8507137261c0e52029ab56b39af1e9434cf478fcf9870c9d474c8f61ffb75f0e "EXPECT_FALSE( Kernel({{{0, 0, 0}, {1, 1, 0}, {1, 0, 0}, {0, 1, 0}}}).HasValue()) | EXPECT_FALSE( Kernel({{{0, 0, 0}, {1, 0, 0}, {2, 0, 0}, {3, 0, 0}}}).HasValue()) | EXPECT_FALSE(Kernel(repeated).HasValue()) | EXPECT_FALSE(Kernel(patch).HasValue()) | EXPECT_FALSE(duplicate.HasValue()) | EXPECT_EQ(uncertain.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-geometry"")" "EXPECT_FALSE( Kernel({{{0, 0, 0}, {1, 1, 0}, {1, 0, 0}, {0, 1, 0}}}).HasValue()) | EXPECT_FALSE( Kernel({{{0, 0, 0}, {1, 0, 0}, {2, 0, 0}, {3, 0, 0}}}).HasValue()) | EXPECT_FALSE(Kernel(repeated).HasValue()) | EXPECT_FALSE(Kernel(patch).HasValue()) | EXPECT_FALSE(duplicate.HasValue()) | EXPECT_EQ(uncertain.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-geometry"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainEnforcesOppositeEdgesAndOneVertexLink ThermalShellGeometry.DomainEnforcesOppositeEdgesAndOneVertexLink; assertion 5개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainEnforcesOppositeEdgesAndOneVertexLink 유지 원문 검사 body 및 assertion 동일. 960d6f8e2311e574bde5319cf21f80fd621f40068ceba6271b3341a91f01e523 960d6f8e2311e574bde5319cf21f80fd621f40068ceba6271b3341a91f01e523 EXPECT_TRUE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{1, 4, 5, 2}}}))) | EXPECT_FALSE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{2, 5, 4, 1}}}))) | EXPECT_FALSE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{0, 1, 2, 3}}}))) | EXPECT_FALSE(Accepted(Mesh({{0, 0, 0}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0}, {-1, -1, 0}, {0, -1, 0}, {-1, 0, 0}}, {{{0, 1, 2, 3}}, {{0, 6, 4, 5}}}))) | EXPECT_FALSE( Accepted(Mesh({{0, 0, 0}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0}, {2, 0, 0}, {2, 1, 0}, {1, 0, 1}, {1, 1, 1}}, {{{0, 1, 2, 3}}, {{1, 4, 5, 2}}, {{1, 6, 7, 2}}}))) EXPECT_TRUE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{1, 4, 5, 2}}}))) | EXPECT_FALSE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{2, 5, 4, 1}}}))) | EXPECT_FALSE(Accepted(Mesh(nodes, {{{0, 1, 2, 3}}, {{0, 1, 2, 3}}}))) | EXPECT_FALSE(Accepted(Mesh({{0, 0, 0}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0}, {-1, -1, 0}, {0, -1, 0}, {-1, 0, 0}}, {{{0, 1, 2, 3}}, {{0, 6, 4, 5}}}))) | EXPECT_FALSE( Accepted(Mesh({{0, 0, 0}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0}, {2, 0, 0}, {2, 1, 0}, {1, 0, 1}, {1, 1, 1}}, {{{0, 1, 2, 3}}, {{1, 4, 5, 2}}, {{1, 6, 7, 2}}}))) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainAllowsFoldAndDisconnectedCoordinateContact ThermalShellGeometry.DomainAllowsFoldAndDisconnectedCoordinateContact; assertion 3개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainAllowsFoldAndDisconnectedCoordinateContact 유지 원문 검사 body 및 assertion 동일. 5249d8d88ee57a712425ba038be3bac4ade7db9c481b522d83c2caade689a80f 5249d8d88ee57a712425ba038be3bac4ade7db9c481b522d83c2caade689a80f EXPECT_TRUE(Accepted(std::move(folded))) | EXPECT_TRUE(Accepted(disconnected)) | EXPECT_TRUE(Accepted(disconnected)) EXPECT_TRUE(Accepted(std::move(folded))) | EXPECT_TRUE(Accepted(disconnected)) | EXPECT_TRUE(Accepted(disconnected)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainRejectsSourceSharingPartialEdgeWithoutGlobalScan ThermalShellGeometry.DomainRejectsSourceSharingPartialEdgeWithoutGlobalScan; assertion 3개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.DomainRejectsSourceSharingPartialEdgeWithoutGlobalScan 유지 원문 검사 body 및 assertion 동일. 0c84d4620600808611f9c67496c87bba5ea2baddc6714c78facfcac24d1d4cfb 0c84d4620600808611f9c67496c87bba5ea2baddc6714c78facfcac24d1d4cfb "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-connection"") | EXPECT_FALSE(Accepted(invalid))" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-connection"") | EXPECT_FALSE(Accepted(invalid))" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.SearchesSeparatingDirectionsBeyondCenterAndCorners ThermalShellGeometry.SearchesSeparatingDirectionsBeyondCenterAndCorners; assertion 2개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.SearchesSeparatingDirectionsBeyondCenterAndCorners 유지 원문 검사 body 및 assertion 동일. e9e9cca17d49ca10988a52883efca96de60507cb1cf1af5a467e096037879591 e9e9cca17d49ca10988a52883efca96de60507cb1cf1af5a467e096037879591 EXPECT_TRUE( Kernel({{{3, -9, -3}, {1, 3, -3}, {-1, 3, 3}, {-3, 3, 3}}}).HasValue()) | EXPECT_TRUE( Kernel({{{-1, 4, -4}, {-1, -2, 2}, {3, 2, 4}, {-1, -4, -2}}}).HasValue()) EXPECT_TRUE( Kernel({{{3, -9, -3}, {1, 3, -3}, {-1, 3, 3}, {-3, 3, 3}}}).HasValue()) | EXPECT_TRUE( Kernel({{{-1, 4, -4}, {-1, -2, 2}, {3, 2, 4}, {-1, -4, -2}}}).HasValue()) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsAliasedSourceIdentityAndAcceptsClosedVertexLink ThermalShellGeometry.RejectsAliasedSourceIdentityAndAcceptsClosedVertexLink; assertion 2개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalShellGeometry.RejectsAliasedSourceIdentityAndAcceptsClosedVertexLink 유지 원문 검사 body 및 assertion 동일. 5fc28937a2442f6232fecc5edfa705ee8777c0a5e5a5395d16875e9e7613ea60 5fc28937a2442f6232fecc5edfa705ee8777c0a5e5a5395d16875e9e7613ea60 EXPECT_FALSE(Accepted(aliases)) | EXPECT_TRUE(Accepted( Mesh({{-1, -1, 0}, {0, -1, 0}, {1, -1, 0}, {-1, 0, 0}, {0, 0, 0}, {1, 0, 0}, {-1, 1, 0}, {0, 1, 0}, {1, 1, 0}}, {{{0, 1, 4, 3}}, {{1, 2, 5, 4}}, {{3, 4, 7, 6}}, {{4, 5, 8, 7}}}))) EXPECT_FALSE(Accepted(aliases)) | EXPECT_TRUE(Accepted( Mesh({{-1, -1, 0}, {0, -1, 0}, {1, -1, 0}, {-1, 0, 0}, {0, 0, 0}, {1, 0, 0}, {-1, 1, 0}, {0, 1, 0}, {1, 1, 0}}, {{{0, 1, 4, 3}}, {{1, 2, 5, 4}}, {{3, 4, 7, 6}}, {{4, 5, 8, 7}}}))) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalGeometryAction.EnclosesIndependentDyadicTangentialConstraints ThermalGeometryAction.EnclosesIndependentDyadicTangentialConstraints; assertion 4개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalGeometryAction.EnclosesIndependentDyadicTangentialConstraints 유지 원문 검사 body 및 assertion 동일. 5db2ebc49bd654247d3660c7e89544f1609d6dd7bdbabe45cb56fede676e90c3 5db2ebc49bd654247d3660c7e89544f1609d6dd7bdbabe45cb56fede676e90c3 ASSERT_TRUE(evaluated.HasValue()) | EXPECT_DOUBLE_EQ(evaluated.Value().gradient[i][j],oracle[j]) | EXPECT_LE(interval.lower,oracle[j]) | EXPECT_GE(interval.upper,oracle[j]) ASSERT_TRUE(evaluated.HasValue()) | EXPECT_DOUBLE_EQ(evaluated.Value().gradient[i][j],oracle[j]) | EXPECT_LE(interval.lower,oracle[j]) | EXPECT_GE(interval.upper,oracle[j]) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/model/thermal_shell_geometry_test.cpp ThermalGeometryAction.PreservesWholePatchAndScaledFiniteRejections ThermalGeometryAction.PreservesWholePatchAndScaledFiniteRejections; assertion 8개 tests/unit/model/thermal_shell_geometry_test.cpp ThermalGeometryAction.PreservesWholePatchAndScaledFiniteRejections 유지 원문 검사 body 및 assertion 동일. acd1faa4c8b61cf0b3d4048793883560afd74d5bbd7296d069f05e8d66084ca6 acd1faa4c8b61cf0b3d4048793883560afd74d5bbd7296d069f05e8d66084ca6 "ASSERT_TRUE(geometry.HasValue()) | EXPECT_TRUE(EvaluateSurface(geometry.Value(),xi,eta, Interval{Down(xi),Up(xi)},Interval{Down(eta),Up(eta)},{},{}).HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-geometry"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].entity_identity,""part:0027"") | ASSERT_FALSE(scaled.HasValue()) | EXPECT_EQ(scaled.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-metric"") | EXPECT_EQ(scaled.GetStatus().Diagnostics()[0].message, ""Metric inverse enclosure is not finite or excludes no zero divisor."")" "ASSERT_TRUE(geometry.HasValue()) | EXPECT_TRUE(EvaluateSurface(geometry.Value(),xi,eta, Interval{Down(xi),Up(xi)},Interval{Down(eta),Up(eta)},{},{}).HasValue()) | ASSERT_FALSE(rejected.HasValue()) | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-geometry"") | EXPECT_EQ(rejected.GetStatus().Diagnostics()[0].entity_identity,""part:0027"") | ASSERT_FALSE(scaled.HasValue()) | EXPECT_EQ(scaled.GetStatus().Diagnostics()[0].code, ""uncertain-thermal-shell-metric"") | EXPECT_EQ(scaled.GetStatus().Diagnostics()[0].message, ""Metric inverse enclosure is not finite or excludes no zero divisor."")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/model/thermal_shell_geometry_test.cpp support@1-49 helper/oracle/fixture/include/static assertion 구간: Kernel, Mesh, Accepted tests/unit/model/thermal_shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 0820f520a641142881a56e7077bafb01de08e918672b8c044c696f5d739ae5fe 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/model/thermal_shell_geometry_test.cpp support@214-215 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/thermal_shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. f4f8121dd2388b30f27a1454c1f3bd3ed0db6b42a9f01bb0e4cc53e5a048e339 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/model/thermal_shell_geometry_test.cpp support@278-278 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/model/thermal_shell_geometry_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c7bfe2f3de133d78a2bc8bb1c4a08450563986ee8254facee698e1dcc57e8162 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/properties/element_property_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/properties/element_property_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 37fe800c84baee1240c919337d93fdaf0b06540901fcf27c1de88b3cab07b049 37fe800c84baee1240c919337d93fdaf0b06540901fcf27c1de88b3cab07b049 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/properties/element_property_test.cpp ElementProperty.OwnsGeneralBeamSectionThroughVirtualBase ElementProperty.OwnsGeneralBeamSectionThroughVirtualBase; assertion 13개 tests/unit/properties/element_property_test.cpp ElementProperty.OwnsGeneralBeamSectionThroughVirtualBase 유지 원문 검사 body 및 assertion 동일. a82ebec7392b40890b5e5f520cf3384a81f765e1e258cd5c1062052283df0479 a82ebec7392b40890b5e5f520cf3384a81f765e1e258cd5c1062052283df0479 "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(property->Kind(), fesa::ElementPropertyKind::kGeneralBeamSection) | EXPECT_EQ(property->SourceId().source_label, 4) | EXPECT_EQ(property->SourceId().source_label_text, ""BeamSection"") | EXPECT_EQ(section.Name(), ""BeamSection"") | EXPECT_DOUBLE_EQ(section.Area(), 0.02) | EXPECT_DOUBLE_EQ(section.I11(), 1.0e-5) | EXPECT_DOUBLE_EQ(section.I12(), 0.0) | EXPECT_DOUBLE_EQ(section.I22(), 2.0e-5) | EXPECT_DOUBLE_EQ(section.TorsionalConstant(), 5.0e-6) | EXPECT_EQ(section.FirstAxis(), (std::array{0.0, 1.0, 0.0})) | EXPECT_EQ(section.SectionPoints(), (std::vector>{{-0.1, 0.0}, {0.1, 0.0}})) | EXPECT_EQ(section.Location().line, 40U)" "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(property->Kind(), fesa::ElementPropertyKind::kGeneralBeamSection) | EXPECT_EQ(property->SourceId().source_label, 4) | EXPECT_EQ(property->SourceId().source_label_text, ""BeamSection"") | EXPECT_EQ(section.Name(), ""BeamSection"") | EXPECT_DOUBLE_EQ(section.Area(), 0.02) | EXPECT_DOUBLE_EQ(section.I11(), 1.0e-5) | EXPECT_DOUBLE_EQ(section.I12(), 0.0) | EXPECT_DOUBLE_EQ(section.I22(), 2.0e-5) | EXPECT_DOUBLE_EQ(section.TorsionalConstant(), 5.0e-6) | EXPECT_EQ(section.FirstAxis(), (std::array{0.0, 1.0, 0.0})) | EXPECT_EQ(section.SectionPoints(), (std::vector>{{-0.1, 0.0}, {0.1, 0.0}})) | EXPECT_EQ(section.Location().line, 40U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/properties/element_property_test.cpp ElementProperty.OwnsShellSectionThroughVirtualBase ElementProperty.OwnsShellSectionThroughVirtualBase; assertion 7개 tests/unit/properties/element_property_test.cpp ElementProperty.OwnsShellSectionThroughVirtualBase 유지 원문 검사 body 및 assertion 동일. f875a0e085b3368db099095f0bbce5ff999ecaaefc8f542b5f048a2cb965a65d f875a0e085b3368db099095f0bbce5ff999ecaaefc8f542b5f048a2cb965a65d "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(property->Kind(), fesa::ElementPropertyKind::kShellSection) | EXPECT_EQ(property->SourceId().source_label, 8) | EXPECT_EQ(section.Name(), ""ShellSection"") | EXPECT_DOUBLE_EQ(section.Thickness(), 0.01) | EXPECT_EQ(section.MaterialIndex(), fesa::EntityIndex{3}) | EXPECT_EQ(section.Location().file, ""models/property.inp"")" "ASSERT_TRUE(candidate.HasValue()) | EXPECT_EQ(property->Kind(), fesa::ElementPropertyKind::kShellSection) | EXPECT_EQ(property->SourceId().source_label, 8) | EXPECT_EQ(section.Name(), ""ShellSection"") | EXPECT_DOUBLE_EQ(section.Thickness(), 0.01) | EXPECT_EQ(section.MaterialIndex(), fesa::EntityIndex{3}) | EXPECT_EQ(section.Location().file, ""models/property.inp"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/properties/element_property_test.cpp ElementProperty.PreservesEmptyOptionalSectionPointInventory ElementProperty.PreservesEmptyOptionalSectionPointInventory; assertion 2개 tests/unit/properties/element_property_test.cpp ElementProperty.PreservesEmptyOptionalSectionPointInventory 유지 원문 검사 body 및 assertion 동일. eb36af0169c99936f509a091e38bf8c4e4c7d8fb663887478c6b4453ce21a252 eb36af0169c99936f509a091e38bf8c4e4c7d8fb663887478c6b4453ce21a252 ASSERT_TRUE(section.HasValue()) | EXPECT_TRUE(section.Value().SectionPoints().empty()) ASSERT_TRUE(section.HasValue()) | EXPECT_TRUE(section.Value().SectionPoints().empty()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/properties/element_property_test.cpp ElementProperty.RejectsInvalidCurrentSectionFields ElementProperty.RejectsInvalidCurrentSectionFields; assertion 6개 tests/unit/properties/element_property_test.cpp ElementProperty.RejectsInvalidCurrentSectionFields 유지 원문 검사 body 및 assertion 동일. 0e388bbbd8142343bb098f7b6df8b4dc8079f90e5c73447c09e43c4dbce0f610 0e388bbbd8142343bb098f7b6df8b4dc8079f90e5c73447c09e43c4dbce0f610 ASSERT_FALSE(invalid_beam.HasValue()) | EXPECT_EQ(invalid_beam.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(coupled_beam.HasValue()) | EXPECT_FALSE(nonfinite_point.HasValue()) | ASSERT_FALSE(invalid_shell.HasValue()) | EXPECT_EQ(invalid_shell.GetStatus().Category(), fesa::FailureCategory::kModel) ASSERT_FALSE(invalid_beam.HasValue()) | EXPECT_EQ(invalid_beam.GetStatus().Category(), fesa::FailureCategory::kModel) | EXPECT_FALSE(coupled_beam.HasValue()) | EXPECT_FALSE(nonfinite_point.HasValue()) | ASSERT_FALSE(invalid_shell.HasValue()) | EXPECT_EQ(invalid_shell.GetStatus().Category(), fesa::FailureCategory::kModel) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/properties/element_property_test.cpp support@1-19 helper/oracle/fixture/include/static assertion 구간: PropertyLocation tests/unit/properties/element_property_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 433c8d2313668bc7e4780f44dca84936eae188a3c75110af9182756aa419efad 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_records_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 4개 tests/unit/results/result_records_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. bb72829dd1c5a3b89f5fcca9ae669acf8bc90697a26a5aa0c4ad0cddd14ac83e bb72829dd1c5a3b89f5fcca9ae669acf8bc90697a26a5aa0c4ad0cddd14ac83e 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_records_test.cpp AnalysisState.PreservesStepFrameAndStableRowOrder AnalysisState.PreservesStepFrameAndStableRowOrder; assertion 25개 tests/unit/results/result_records_test.cpp AnalysisState.PreservesStepFrameAndStableRowOrder 유지 원문 검사 body 및 assertion 동일. 869b5c0c01c92f41cc3dd8a80fa5fe57725d2ce8581d61c8dcf3ac36ed0d8d8f 869b5c0c01c92f41cc3dd8a80fa5fe57725d2ce8581d61c8dcf3ac36ed0d8d8f "EXPECT_EQ(const_state.Identity().step_name, ""Step-1"") | EXPECT_EQ(const_state.Identity().frame_index, 0U) | ASSERT_EQ(const_state.EndpointResults().size(), 2U) | EXPECT_EQ(const_state.EndpointResults().data(), endpoint_storage) | EXPECT_EQ(const_state.EndpointResults()[0].element, 2U) | EXPECT_EQ(const_state.EndpointResults()[0].endpoint, -1) | EXPECT_EQ(const_state.EndpointResults()[0].node.instance_name, ""Beam-1"") | EXPECT_EQ(const_state.EndpointResults()[0].node.source_label, 10) | EXPECT_EQ(const_state.EndpointResults()[0].node.source_label_text, ""010"") | EXPECT_EQ(const_state.EndpointResults()[0].end_action, (std::array{1.0, 2.0, 3.0, 4.0, 5.0, 6.0})) | EXPECT_EQ(const_state.EndpointResults()[1].section_resultant, (std::array{17.0, 18.0, 19.0, 20.0})) | ASSERT_EQ(const_state.GaussResults().size(), 2U) | EXPECT_EQ(const_state.GaussResults().data(), gauss_storage) | EXPECT_EQ(const_state.GaussResults()[0].gauss_point, 1) | EXPECT_EQ(const_state.GaussResults()[1].gauss_point, 2) | EXPECT_EQ(const_state.GaussResults()[0].generalized_strain, (std::array{0.1, 0.2, 0.3, 0.4})) | EXPECT_EQ(const_state.GaussResults()[1].generalized_resultant, (std::array{1.5, 1.6, 1.7, 1.8})) | ASSERT_EQ(const_state.StressResults().size(), 2U) | EXPECT_EQ(const_state.StressResults().data(), stress_storage) | EXPECT_EQ(const_state.StressResults()[0].section_point, 1U) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].x1, -0.25) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].x2, 0.5) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].s11, 12.5) | EXPECT_EQ(const_state.StressResults()[0].source, ""input"") | EXPECT_EQ(const_state.StressResults()[1].section_point, 2U)" "EXPECT_EQ(const_state.Identity().step_name, ""Step-1"") | EXPECT_EQ(const_state.Identity().frame_index, 0U) | ASSERT_EQ(const_state.EndpointResults().size(), 2U) | EXPECT_EQ(const_state.EndpointResults().data(), endpoint_storage) | EXPECT_EQ(const_state.EndpointResults()[0].element, 2U) | EXPECT_EQ(const_state.EndpointResults()[0].endpoint, -1) | EXPECT_EQ(const_state.EndpointResults()[0].node.instance_name, ""Beam-1"") | EXPECT_EQ(const_state.EndpointResults()[0].node.source_label, 10) | EXPECT_EQ(const_state.EndpointResults()[0].node.source_label_text, ""010"") | EXPECT_EQ(const_state.EndpointResults()[0].end_action, (std::array{1.0, 2.0, 3.0, 4.0, 5.0, 6.0})) | EXPECT_EQ(const_state.EndpointResults()[1].section_resultant, (std::array{17.0, 18.0, 19.0, 20.0})) | ASSERT_EQ(const_state.GaussResults().size(), 2U) | EXPECT_EQ(const_state.GaussResults().data(), gauss_storage) | EXPECT_EQ(const_state.GaussResults()[0].gauss_point, 1) | EXPECT_EQ(const_state.GaussResults()[1].gauss_point, 2) | EXPECT_EQ(const_state.GaussResults()[0].generalized_strain, (std::array{0.1, 0.2, 0.3, 0.4})) | EXPECT_EQ(const_state.GaussResults()[1].generalized_resultant, (std::array{1.5, 1.6, 1.7, 1.8})) | ASSERT_EQ(const_state.StressResults().size(), 2U) | EXPECT_EQ(const_state.StressResults().data(), stress_storage) | EXPECT_EQ(const_state.StressResults()[0].section_point, 1U) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].x1, -0.25) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].x2, 0.5) | EXPECT_DOUBLE_EQ(const_state.StressResults()[0].s11, 12.5) | EXPECT_EQ(const_state.StressResults()[0].source, ""input"") | EXPECT_EQ(const_state.StressResults()[1].section_point, 2U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_records_test.cpp AnalysisState.OwnsExactShellRowsInStableElementAndLocationOrder AnalysisState.OwnsExactShellRowsInStableElementAndLocationOrder; assertion 13개 tests/unit/results/result_records_test.cpp AnalysisState.OwnsExactShellRowsInStableElementAndLocationOrder 유지 원문 검사 body 및 assertion 동일. a0f71e39ab3e0d800b26636fca67c30c58ad846b26a9684454a311322065c4f1 a0f71e39ab3e0d800b26636fca67c30c58ad846b26a9684454a311322065c4f1 ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(const_state.ShellResults().size(), 8U) | EXPECT_EQ(const_state.ShellResults()[0].element, 3U) | EXPECT_EQ(const_state.ShellResults()[0].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(const_state.ShellResults()[3].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(const_state.ShellResults()[4].element, 7U) | EXPECT_EQ(const_state.ShellResults()[4].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ( const_state.ShellResults()[0].natural_coordinates, (std::array{-1.0 / std::sqrt(3.0), -1.0 / std::sqrt(3.0)})) | EXPECT_EQ(const_state.ShellResults()[2].generalized_strain, (std::array{321.0, 322.0, 323.0, 324.0, 325.0, 326.0, 327.0, 328.0})) | EXPECT_EQ(const_state.ShellResults()[7].section_resultant, (std::array{741.0, 742.0, 743.0, 744.0, 745.0, 746.0, 747.0, 748.0})) | EXPECT_EQ(const_state.ShellResults()[7].stress[0].position, fesa::ShellSectionPosition::kBottom) | EXPECT_DOUBLE_EQ(const_state.ShellResults()[7].stress[0].zeta, -1.0) | EXPECT_EQ(const_state.ShellResults()[7].stress[2].components, (std::array{757.0, 758.0, 759.0})) ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(const_state.ShellResults().size(), 8U) | EXPECT_EQ(const_state.ShellResults()[0].element, 3U) | EXPECT_EQ(const_state.ShellResults()[0].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(const_state.ShellResults()[3].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(const_state.ShellResults()[4].element, 7U) | EXPECT_EQ(const_state.ShellResults()[4].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ( const_state.ShellResults()[0].natural_coordinates, (std::array{-1.0 / std::sqrt(3.0), -1.0 / std::sqrt(3.0)})) | EXPECT_EQ(const_state.ShellResults()[2].generalized_strain, (std::array{321.0, 322.0, 323.0, 324.0, 325.0, 326.0, 327.0, 328.0})) | EXPECT_EQ(const_state.ShellResults()[7].section_resultant, (std::array{741.0, 742.0, 743.0, 744.0, 745.0, 746.0, 747.0, 748.0})) | EXPECT_EQ(const_state.ShellResults()[7].stress[0].position, fesa::ShellSectionPosition::kBottom) | EXPECT_DOUBLE_EQ(const_state.ShellResults()[7].stress[0].zeta, -1.0) | EXPECT_EQ(const_state.ShellResults()[7].stress[2].components, (std::array{757.0, 758.0, 759.0})) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_records_test.cpp AnalysisState.CommitsFiniteShellGlobalEvidence AnalysisState.CommitsFiniteShellGlobalEvidence; assertion 4개 tests/unit/results/result_records_test.cpp AnalysisState.CommitsFiniteShellGlobalEvidence 유지 원문 검사 body 및 assertion 동일. 62ed08387eb7eff71c91920c4bebabfbed05791ab18a4fe8cbbf463396f7be15 62ed08387eb7eff71c91920c4bebabfbed05791ab18a4fe8cbbf463396f7be15 ASSERT_TRUE(status.IsOk()) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), 35.5) | EXPECT_EQ(state.Equilibrium(), (std::array{1.0, -2.0, 3.0, -4.0, 5.0, -6.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{1.0e-11, 2.0e-11, 3.0e-11})) ASSERT_TRUE(status.IsOk()) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), 35.5) | EXPECT_EQ(state.Equilibrium(), (std::array{1.0, -2.0, 3.0, -4.0, 5.0, -6.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{1.0e-11, 2.0e-11, 3.0e-11})) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_records_test.cpp AnalysisState.InvalidShellCandidatesLeavePriorStateUnchanged AnalysisState.InvalidShellCandidatesLeavePriorStateUnchanged; assertion 1개 tests/unit/results/result_records_test.cpp AnalysisState.InvalidShellCandidatesLeavePriorStateUnchanged 유지 원문 검사 body 및 assertion 동일. 707b9669e1d0cb266cfbba53e13210c339cea51e651d10b1b57991ece003a113 707b9669e1d0cb266cfbba53e13210c339cea51e651d10b1b57991ece003a113 ASSERT_TRUE(state.CommitShellResults(expected_elements, committed).IsOk()) ASSERT_TRUE(state.CommitShellResults(expected_elements, committed).IsOk()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_records_test.cpp support@1-128 helper/oracle/fixture/include/static assertion 구간: MakeEmptyDofs, MakeShellRow, MakeShellCandidate, for, ExpectShellStateEquals, ExpectShellCandidateRejectedWithoutMutation tests/unit/results/result_records_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. c3b1b99dba6177733aa2470d3dda8537c58aef89a290a4f6b3959dcd158bbbc0 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_records_test.cpp support@195-196 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_records_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 99cfd7cc1cbfee5f6699e5f92a5190f79a531c7be18944fe4cda2e9e2579c67c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_records_test.cpp support@231-232 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_records_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 8e9919be7709179a6da34b5355c75a2a62ae000d17bf61c217fc31533b110324 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_records_test.cpp support@248-249 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_records_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5553b473143aa6f5d1e0b9c4ab38b9d66e43c689916066d068f42b2635b92413 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_recovery_components_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/results/result_recovery_components_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 558db157e75e1cfb16f157c2ea2f181be03075ec5447d369c24eb0bc17047476 e5f882061497e99d8210a474c7f662c17de029fc7542ae8b4c7334a2be162c6d 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.GlobalEquilibriumUsesFullResidualAndGlobalOriginMoment ResultRecoveryComponents.GlobalEquilibriumUsesFullResidualAndGlobalOriginMoment; assertion 8개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.GlobalEquilibriumUsesFullResidualAndGlobalOriginMoment 유지 원문 검사 body 및 assertion 동일. 4b1d44d2f31879ee4c18e1f4cb5cdedafa0cb332e8c635b697fbcc02bef96a81 4b1d44d2f31879ee4c18e1f4cb5cdedafa0cb332e8c635b697fbcc02bef96a81 ASSERT_TRUE(centered_global.HasValue()) | ASSERT_TRUE(translated_global.HasValue()) | EXPECT_NEAR(centered_global.Value().residual[0U], -1.0e-9, 1.0e-14) | EXPECT_DOUBLE_EQ(centered_global.Value().reaction[0U], centered_global.Value().residual[0U]) | ASSERT_TRUE(centered_status.IsOk()) | ASSERT_TRUE(translated_status.IsOk()) | EXPECT_NEAR(translated_candidate.shell.equilibrium[component], centered_force[component], 1.0e-12) | EXPECT_NEAR(translated_candidate.shell.equilibrium[3U + component] - centered_candidate.shell.equilibrium[3U + component], translated_moment_delta[component], 5.0e-12) ASSERT_TRUE(centered_global.HasValue()) | ASSERT_TRUE(translated_global.HasValue()) | EXPECT_NEAR(centered_global.Value().residual[0U], -1.0e-9, 1.0e-14) | EXPECT_DOUBLE_EQ(centered_global.Value().reaction[0U], centered_global.Value().residual[0U]) | ASSERT_TRUE(centered_status.IsOk()) | ASSERT_TRUE(translated_status.IsOk()) | EXPECT_NEAR(translated_candidate.shell.equilibrium[component], centered_force[component], 1.0e-12) | EXPECT_NEAR(translated_candidate.shell.equilibrium[3U + component] - centered_candidate.shell.equilibrium[3U + component], translated_moment_delta[component], 5.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.BeamResultRecoveryKeepsEndpointGaussAndStressIdentities ResultRecoveryComponents.BeamResultRecoveryKeepsEndpointGaussAndStressIdentities; assertion 18개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.BeamResultRecoveryKeepsEndpointGaussAndStressIdentities 유지 원문 검사 body 및 assertion 동일. 08f945a80aa1b49a9352f010897f1f0843eae7e8567334daf13602824dc12039 08f945a80aa1b49a9352f010897f1f0843eae7e8567334daf13602824dc12039 ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(candidate.endpoint_rows.size(), 2U) | ASSERT_EQ(candidate.gauss_rows.size(), 2U) | ASSERT_EQ(candidate.stress_rows.size(), 2U) | EXPECT_TRUE(candidate.has_beam_results) | EXPECT_EQ(candidate.endpoint_rows[0U].endpoint, 0) | EXPECT_EQ(candidate.endpoint_rows[1U].endpoint, 1) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[0U].end_action[0U], -2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[0U].section_resultant[0U], 2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[1U].end_action[0U], 2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[1U].section_resultant[0U], 2.0) | EXPECT_EQ(candidate.gauss_rows[0U].gauss_point, 1) | EXPECT_EQ(candidate.gauss_rows[1U].gauss_point, 2) | EXPECT_EQ(candidate.stress_rows[0U].section_point, 0U) | EXPECT_EQ(candidate.stress_rows[1U].section_point, 1U) | EXPECT_TRUE(rejected.endpoint_rows.empty()) | EXPECT_TRUE(rejected.gauss_rows.empty()) | EXPECT_TRUE(rejected.stress_rows.empty()) ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(candidate.endpoint_rows.size(), 2U) | ASSERT_EQ(candidate.gauss_rows.size(), 2U) | ASSERT_EQ(candidate.stress_rows.size(), 2U) | EXPECT_TRUE(candidate.has_beam_results) | EXPECT_EQ(candidate.endpoint_rows[0U].endpoint, 0) | EXPECT_EQ(candidate.endpoint_rows[1U].endpoint, 1) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[0U].end_action[0U], -2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[0U].section_resultant[0U], 2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[1U].end_action[0U], 2.0) | EXPECT_DOUBLE_EQ(candidate.endpoint_rows[1U].section_resultant[0U], 2.0) | EXPECT_EQ(candidate.gauss_rows[0U].gauss_point, 1) | EXPECT_EQ(candidate.gauss_rows[1U].gauss_point, 2) | EXPECT_EQ(candidate.stress_rows[0U].section_point, 0U) | EXPECT_EQ(candidate.stress_rows[1U].section_point, 1U) | EXPECT_TRUE(rejected.endpoint_rows.empty()) | EXPECT_TRUE(rejected.gauss_rows.empty()) | EXPECT_TRUE(rejected.stress_rows.empty()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.BeamResultRecoveryRejectsMalformedB33IdentityBeforeAppending ResultRecoveryComponents.BeamResultRecoveryRejectsMalformedB33IdentityBeforeAppending; assertion 4개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.BeamResultRecoveryRejectsMalformedB33IdentityBeforeAppending 유지 원문 검사 body 및 assertion 동일. 3f5b0c41e2ce77b59609c26e60409445ddd24bd89e0bf55f7f9c30736fdd5f35 3f5b0c41e2ce77b59609c26e60409445ddd24bd89e0bf55f7f9c30736fdd5f35 EXPECT_TRUE(candidate.endpoint_rows.empty()) | EXPECT_TRUE(candidate.gauss_rows.empty()) | EXPECT_TRUE(candidate.stress_rows.empty()) | EXPECT_FALSE(candidate.has_beam_results) EXPECT_TRUE(candidate.endpoint_rows.empty()) | EXPECT_TRUE(candidate.gauss_rows.empty()) | EXPECT_TRUE(candidate.stress_rows.empty()) | EXPECT_FALSE(candidate.has_beam_results) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.ShellResultRecoveryKeepsGpStressOrderAndPhysicalEnergy ResultRecoveryComponents.ShellResultRecoveryKeepsGpStressOrderAndPhysicalEnergy; assertion 13개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.ShellResultRecoveryKeepsGpStressOrderAndPhysicalEnergy 유지 원문 검사 body 및 assertion 동일. 6c9a8476d2005420d8bd58a3f3a3558cfadbd6c158bd213b0047e821bdd2d991 6c9a8476d2005420d8bd58a3f3a3558cfadbd6c158bd213b0047e821bdd2d991 ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(candidate.has_shell_results) | EXPECT_EQ(candidate.expected_shell_elements, (std::vector{element})) | ASSERT_EQ(candidate.shell.rows.size(), 4U) | EXPECT_EQ(candidate.shell.rows[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(candidate.shell.rows[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(candidate.shell.rows[0U].stress[0U].position, fesa::ShellSectionPosition::kBottom) | EXPECT_EQ(candidate.shell.rows[0U].stress[1U].position, fesa::ShellSectionPosition::kMiddle) | EXPECT_EQ(candidate.shell.rows[0U].stress[2U].position, fesa::ShellSectionPosition::kTop) | EXPECT_DOUBLE_EQ(candidate.shell.physical_strain_energy, 12.5) | EXPECT_TRUE(rejected.shell.rows.empty()) | EXPECT_TRUE(rejected.expected_shell_elements.empty()) | EXPECT_DOUBLE_EQ(rejected.shell.physical_strain_energy, 0.0) ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(candidate.has_shell_results) | EXPECT_EQ(candidate.expected_shell_elements, (std::vector{element})) | ASSERT_EQ(candidate.shell.rows.size(), 4U) | EXPECT_EQ(candidate.shell.rows[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(candidate.shell.rows[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_EQ(candidate.shell.rows[0U].stress[0U].position, fesa::ShellSectionPosition::kBottom) | EXPECT_EQ(candidate.shell.rows[0U].stress[1U].position, fesa::ShellSectionPosition::kMiddle) | EXPECT_EQ(candidate.shell.rows[0U].stress[2U].position, fesa::ShellSectionPosition::kTop) | EXPECT_DOUBLE_EQ(candidate.shell.physical_strain_energy, 12.5) | EXPECT_TRUE(rejected.shell.rows.empty()) | EXPECT_TRUE(rejected.expected_shell_elements.empty()) | EXPECT_DOUBLE_EQ(rejected.shell.physical_strain_energy, 0.0) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.CommitRecoveryCandidateRollsBackLaterInvalidShellBundle ResultRecoveryComponents.CommitRecoveryCandidateRollsBackLaterInvalidShellBundle; assertion 9개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.CommitRecoveryCandidateRollsBackLaterInvalidShellBundle 유지 원문 검사 body 및 assertion 동일. 55b6230e61eb0fc7cb6bdd7be3ad9832e2f1ec16cc1a95bf67ed1266f52d1cfe 55b6230e61eb0fc7cb6bdd7be3ad9832e2f1ec16cc1a95bf67ed1266f52d1cfe ASSERT_TRUE(state.CommitShellResults({0U}, std::move(prior_shell)).IsOk()) | ASSERT_EQ(state.EndpointResults().size(), prior.EndpointResults().size()) | EXPECT_EQ(state.EndpointResults()[0U].end_action, prior.EndpointResults()[0U].end_action) | ASSERT_EQ(state.ShellResults().size(), prior.ShellResults().size()) | EXPECT_EQ(state.ShellResults()[0U].location, prior.ShellResults()[0U].location) | EXPECT_EQ(state.ShellResults()[0U].section_resultant, prior.ShellResults()[0U].section_resultant) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior.PhysicalStrainEnergy()) | EXPECT_EQ(state.Equilibrium(), prior.Equilibrium()) | EXPECT_EQ(state.VerificationMetrics(), prior.VerificationMetrics()) ASSERT_TRUE(state.CommitShellResults({0U}, std::move(prior_shell)).IsOk()) | ASSERT_EQ(state.EndpointResults().size(), prior.EndpointResults().size()) | EXPECT_EQ(state.EndpointResults()[0U].end_action, prior.EndpointResults()[0U].end_action) | ASSERT_EQ(state.ShellResults().size(), prior.ShellResults().size()) | EXPECT_EQ(state.ShellResults()[0U].location, prior.ShellResults()[0U].location) | EXPECT_EQ(state.ShellResults()[0U].section_resultant, prior.ShellResults()[0U].section_resultant) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior.PhysicalStrainEnergy()) | EXPECT_EQ(state.Equilibrium(), prior.Equilibrium()) | EXPECT_EQ(state.VerificationMetrics(), prior.VerificationMetrics()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.CommitRecoveryCandidateRejectsNonfiniteVectorAndPreservesWholeState ResultRecoveryComponents.CommitRecoveryCandidateRejectsNonfiniteVectorAndPreservesWholeState; assertion 1개 tests/unit/results/result_recovery_components_test.cpp ResultRecoveryComponents.CommitRecoveryCandidateRejectsNonfiniteVectorAndPreservesWholeState 유지 원문 검사 body 및 assertion 동일. 7fbd3ba0038bb7588dd981c89f1ebdb358900d942bf246d26295b1417082cf38 7fbd3ba0038bb7588dd981c89f1ebdb358900d942bf246d26295b1417082cf38 ASSERT_TRUE(state.CommitShellResults({0U}, std::move(prior_shell)).IsOk()) ASSERT_TRUE(state.CommitShellResults({0U}, std::move(prior_shell)).IsOk()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_components_test.cpp support@1-287 helper/oracle/fixture/include/static assertion 구간: ShellFixture, MakeSourceId, MakeBeamRows, MakeShellRows, MakeShellDefinition, MakeShellFixture, if, MakeShellPhysicalState, ExpectStatusCode, ExpectVectorEqual, ExpectAnalysisStateEqual tests/unit/results/result_recovery_components_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5c11d9bc4abf9701433cc401daa10ba8c47b67215a1ae623e36a81515e48de37 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_recovery_components_test.cpp support@355-356 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84e6d9367513adf07b62324adc589f360532892eb863dd167e0cf83cdda8477b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_recovery_components_test.cpp support@394-395 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84e6d9367513adf07b62324adc589f360532892eb863dd167e0cf83cdda8477b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_recovery_components_test.cpp support@452-453 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84e6d9367513adf07b62324adc589f360532892eb863dd167e0cf83cdda8477b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_recovery_components_test.cpp support@488-489 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84e6d9367513adf07b62324adc589f360532892eb863dd167e0cf83cdda8477b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_recovery_components_test.cpp support@553-554 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_components_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 84e6d9367513adf07b62324adc589f360532892eb863dd167e0cf83cdda8477b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_recovery_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 17개 tests/unit/results/result_recovery_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 7b9358cc8459e3ec9c7fd6384982951ff5520dca7ee1b41eb671976c79c254e6 7b9358cc8459e3ec9c7fd6384982951ff5520dca7ee1b41eb671976c79c254e6 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.AggregatesFakeBeamBundlesInStableRuntimeOrder ResultRecovery.AggregatesFakeBeamBundlesInStableRuntimeOrder; assertion 25개 tests/unit/results/result_recovery_test.cpp ResultRecovery.AggregatesFakeBeamBundlesInStableRuntimeOrder 유지 원문 검사 body 및 assertion 동일. 61908298d8e691deb7066229f9dd58426ca57647ebabc07023e1a31ac0cda782 61908298d8e691deb7066229f9dd58426ca57647ebabc07023e1a31ac0cda782 ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(first.ObservedDisplacement().Size(), 12U) | EXPECT_DOUBLE_EQ(first.ObservedDisplacement()[0U], 0.1) | EXPECT_DOUBLE_EQ(first.ObservedDisplacement()[6U], 0.3) | ASSERT_EQ(second.ObservedDisplacement().Size(), 12U) | EXPECT_DOUBLE_EQ(second.ObservedDisplacement()[0U], 0.3) | EXPECT_DOUBLE_EQ(second.ObservedDisplacement()[6U], 0.0) | ASSERT_EQ(state.EndpointResults().size(), 4U) | ASSERT_EQ(state.GaussResults().size(), 4U) | ASSERT_EQ(state.StressResults().size(), 4U) | EXPECT_EQ(negative_endpoint.element, element) | EXPECT_EQ(negative_endpoint.endpoint, 0) | EXPECT_DOUBLE_EQ(negative_endpoint.end_action[0U], -value) | EXPECT_DOUBLE_EQ(negative_endpoint.section_resultant[0U], value) | EXPECT_EQ(positive_endpoint.element, element) | EXPECT_EQ(positive_endpoint.endpoint, 1) | EXPECT_DOUBLE_EQ(positive_endpoint.end_action[0U], value) | EXPECT_DOUBLE_EQ(positive_endpoint.section_resultant[0U], value) | EXPECT_EQ(state.GaussResults()[2U * element].element, element) | EXPECT_EQ(state.GaussResults()[2U * element].gauss_point, 1) | EXPECT_EQ(state.GaussResults()[2U * element + 1U].element, element) | EXPECT_EQ(state.GaussResults()[2U * element + 1U].gauss_point, 2) | EXPECT_EQ(state.StressResults()[2U * element].element, element) | EXPECT_EQ(state.StressResults()[2U * element + 1U].element, element) | EXPECT_TRUE(state.ShellResults().empty()) ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(first.ObservedDisplacement().Size(), 12U) | EXPECT_DOUBLE_EQ(first.ObservedDisplacement()[0U], 0.1) | EXPECT_DOUBLE_EQ(first.ObservedDisplacement()[6U], 0.3) | ASSERT_EQ(second.ObservedDisplacement().Size(), 12U) | EXPECT_DOUBLE_EQ(second.ObservedDisplacement()[0U], 0.3) | EXPECT_DOUBLE_EQ(second.ObservedDisplacement()[6U], 0.0) | ASSERT_EQ(state.EndpointResults().size(), 4U) | ASSERT_EQ(state.GaussResults().size(), 4U) | ASSERT_EQ(state.StressResults().size(), 4U) | EXPECT_EQ(negative_endpoint.element, element) | EXPECT_EQ(negative_endpoint.endpoint, 0) | EXPECT_DOUBLE_EQ(negative_endpoint.end_action[0U], -value) | EXPECT_DOUBLE_EQ(negative_endpoint.section_resultant[0U], value) | EXPECT_EQ(positive_endpoint.element, element) | EXPECT_EQ(positive_endpoint.endpoint, 1) | EXPECT_DOUBLE_EQ(positive_endpoint.end_action[0U], value) | EXPECT_DOUBLE_EQ(positive_endpoint.section_resultant[0U], value) | EXPECT_EQ(state.GaussResults()[2U * element].element, element) | EXPECT_EQ(state.GaussResults()[2U * element].gauss_point, 1) | EXPECT_EQ(state.GaussResults()[2U * element + 1U].element, element) | EXPECT_EQ(state.GaussResults()[2U * element + 1U].gauss_point, 2) | EXPECT_EQ(state.StressResults()[2U * element].element, element) | EXPECT_EQ(state.StressResults()[2U * element + 1U].element, element) | EXPECT_TRUE(state.ShellResults().empty()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.AggregatesFakeShellBundleAndPhysicalEnergy ResultRecovery.AggregatesFakeShellBundleAndPhysicalEnergy; assertion 10개 tests/unit/results/result_recovery_test.cpp ResultRecovery.AggregatesFakeShellBundleAndPhysicalEnergy 유지 원문 검사 body 및 assertion 동일. 6010abc24720e7277736bbd3f31bc425d908c7545447ce70f5d5c1dc45880d8e 6010abc24720e7277736bbd3f31bc425d908c7545447ce70f5d5c1dc45880d8e ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(state.EndpointResults().empty()) | EXPECT_TRUE(state.GaussResults().empty()) | EXPECT_TRUE(state.StressResults().empty()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_EQ(state.ShellResults()[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(state.ShellResults()[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_DOUBLE_EQ(state.ShellResults()[0U].generalized_strain[0U], 1.0) | EXPECT_DOUBLE_EQ(state.ShellResults()[3U].section_resultant[0U], 40.0) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), physical_energy) ASSERT_TRUE(status.IsOk()) | EXPECT_TRUE(state.EndpointResults().empty()) | EXPECT_TRUE(state.GaussResults().empty()) | EXPECT_TRUE(state.StressResults().empty()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_EQ(state.ShellResults()[0U].location, fesa::ShellMidsurfaceLocation::kGp1) | EXPECT_EQ(state.ShellResults()[3U].location, fesa::ShellMidsurfaceLocation::kGp4) | EXPECT_DOUBLE_EQ(state.ShellResults()[0U].generalized_strain[0U], 1.0) | EXPECT_DOUBLE_EQ(state.ShellResults()[3U].section_resultant[0U], 40.0) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), physical_energy) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.FailingFakeBundleRollsBackTheWholeState ResultRecovery.FailingFakeBundleRollsBackTheWholeState; assertion 15개 tests/unit/results/result_recovery_test.cpp ResultRecovery.FailingFakeBundleRollsBackTheWholeState 유지 원문 검사 body 및 assertion 동일. 39c57c8c046735efba89779244e8a951423224037d0d5e5798550b3a057aaa61 39c57c8c046735efba89779244e8a951423224037d0d5e5798550b3a057aaa61 ASSERT_TRUE( state.CommitShellResults({0U}, std::move(stale_shell_candidate)).IsOk()) | EXPECT_EQ(state.Identity().step_name, prior.Identity().step_name) | EXPECT_EQ(state.Identity().frame_index, prior.Identity().frame_index) | ASSERT_EQ(state.EndpointResults().size(), prior.EndpointResults().size()) | EXPECT_EQ(state.EndpointResults()[0U].element, prior.EndpointResults()[0U].element) | EXPECT_EQ(state.EndpointResults()[0U].end_action, prior.EndpointResults()[0U].end_action) | ASSERT_EQ(state.GaussResults().size(), prior.GaussResults().size()) | EXPECT_EQ(state.GaussResults()[0U].generalized_resultant, prior.GaussResults()[0U].generalized_resultant) | ASSERT_EQ(state.StressResults().size(), prior.StressResults().size()) | EXPECT_DOUBLE_EQ(state.StressResults()[0U].s11, prior.StressResults()[0U].s11) | ASSERT_EQ(state.ShellResults().size(), prior.ShellResults().size()) | EXPECT_EQ(state.ShellResults()[0U].generalized_strain, prior.ShellResults()[0U].generalized_strain) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior.PhysicalStrainEnergy()) | EXPECT_EQ(state.Equilibrium(), prior.Equilibrium()) | EXPECT_EQ(state.VerificationMetrics(), prior.VerificationMetrics()) ASSERT_TRUE( state.CommitShellResults({0U}, std::move(stale_shell_candidate)).IsOk()) | EXPECT_EQ(state.Identity().step_name, prior.Identity().step_name) | EXPECT_EQ(state.Identity().frame_index, prior.Identity().frame_index) | ASSERT_EQ(state.EndpointResults().size(), prior.EndpointResults().size()) | EXPECT_EQ(state.EndpointResults()[0U].element, prior.EndpointResults()[0U].element) | EXPECT_EQ(state.EndpointResults()[0U].end_action, prior.EndpointResults()[0U].end_action) | ASSERT_EQ(state.GaussResults().size(), prior.GaussResults().size()) | EXPECT_EQ(state.GaussResults()[0U].generalized_resultant, prior.GaussResults()[0U].generalized_resultant) | ASSERT_EQ(state.StressResults().size(), prior.StressResults().size()) | EXPECT_DOUBLE_EQ(state.StressResults()[0U].s11, prior.StressResults()[0U].s11) | ASSERT_EQ(state.ShellResults().size(), prior.ShellResults().size()) | EXPECT_EQ(state.ShellResults()[0U].generalized_strain, prior.ShellResults()[0U].generalized_strain) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior.PhysicalStrainEnergy()) | EXPECT_EQ(state.Equilibrium(), prior.Equilibrium()) | EXPECT_EQ(state.VerificationMetrics(), prior.VerificationMetrics()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.ComputesResidualReactionForNonzeroPrescription ResultRecovery.ComputesResidualReactionForNonzeroPrescription; assertion 12개 tests/unit/results/result_recovery_test.cpp ResultRecovery.ComputesResidualReactionForNonzeroPrescription 유지 원문 검사 body 및 assertion 동일. 08216ddb5db36bbc534126bdf775ee7846b18b311b89da188e0e53b71af49608 08216ddb5db36bbc534126bdf775ee7846b18b311b89da188e0e53b71af49608 ASSERT_TRUE(state.CommitShellResults({}, stale_shell_evidence).IsOk()) | ASSERT_TRUE(status.IsOk()) | EXPECT_DOUBLE_EQ(state.InternalForce()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[6U], 20.0) | EXPECT_DOUBLE_EQ(state.Residual()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.Residual()[6U], 0.0) | EXPECT_DOUBLE_EQ(state.Reaction()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.Reaction()[full_dof], 0.0) | EXPECT_TRUE(state.ShellResults().empty()) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), 0.0) | EXPECT_EQ(state.Equilibrium(), (std::array{0.0, 0.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{0.0, 0.0, 0.0})) ASSERT_TRUE(state.CommitShellResults({}, stale_shell_evidence).IsOk()) | ASSERT_TRUE(status.IsOk()) | EXPECT_DOUBLE_EQ(state.InternalForce()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[6U], 20.0) | EXPECT_DOUBLE_EQ(state.Residual()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.Residual()[6U], 0.0) | EXPECT_DOUBLE_EQ(state.Reaction()[0U], -20.0) | EXPECT_DOUBLE_EQ(state.Reaction()[full_dof], 0.0) | EXPECT_TRUE(state.ShellResults().empty()) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), 0.0) | EXPECT_EQ(state.Equilibrium(), (std::array{0.0, 0.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{0.0, 0.0, 0.0})) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.EnforcesNormalizedFreeResidual ResultRecovery.EnforcesNormalizedFreeResidual; assertion 9개 tests/unit/results/result_recovery_test.cpp ResultRecovery.EnforcesNormalizedFreeResidual 유지 원문 검사 body 및 assertion 동일. 1e96704cc4b176ba73193a9853cc81c56fd130dd92540b88fbc71bef07655032 1e96704cc4b176ba73193a9853cc81c56fd130dd92540b88fbc71bef07655032 EXPECT_DOUBLE_EQ(failed.InternalForce()[0U], 91.0) | EXPECT_DOUBLE_EQ(failed.Residual()[0U], 92.0) | EXPECT_DOUBLE_EQ(failed.Reaction()[0U], 93.0) | EXPECT_DOUBLE_EQ(failed.Reaction()[6U], 94.0) | EXPECT_EQ(failed.EndpointResults().size(), 1U) | ASSERT_TRUE(threshold_status.IsOk()) | EXPECT_NE(threshold_pass.Residual()[6U], 0.0) | EXPECT_DOUBLE_EQ(threshold_pass.Reaction()[6U], threshold_pass.Residual()[6U]) | EXPECT_TRUE( fesa::ResultRecovery::Recover(*zero_fixture.model, *zero_fixture.dofs, *zero_fixture.stiffness, zero_equilibrium) .IsOk()) EXPECT_DOUBLE_EQ(failed.InternalForce()[0U], 91.0) | EXPECT_DOUBLE_EQ(failed.Residual()[0U], 92.0) | EXPECT_DOUBLE_EQ(failed.Reaction()[0U], 93.0) | EXPECT_DOUBLE_EQ(failed.Reaction()[6U], 94.0) | EXPECT_EQ(failed.EndpointResults().size(), 1U) | ASSERT_TRUE(threshold_status.IsOk()) | EXPECT_NE(threshold_pass.Residual()[6U], 0.0) | EXPECT_DOUBLE_EQ(threshold_pass.Reaction()[6U], threshold_pass.Residual()[6U]) | EXPECT_TRUE( fesa::ResultRecovery::Recover(*zero_fixture.model, *zero_fixture.dofs, *zero_fixture.stiffness, zero_equilibrium) .IsOk()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.KeepsEndActionSectionAndGaussResultsDistinct ResultRecovery.KeepsEndActionSectionAndGaussResultsDistinct; assertion 10개 tests/unit/results/result_recovery_test.cpp ResultRecovery.KeepsEndActionSectionAndGaussResultsDistinct 유지 원문 검사 body 및 assertion 동일. 8202381a9f03eaa3d8d5a513ff7109d219c64045aa63639c3d67d6a1a1990838 8202381a9f03eaa3d8d5a513ff7109d219c64045aa63639c3d67d6a1a1990838 ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.EndpointResults().size(), 2U) | ASSERT_EQ(state.GaussResults().size(), 2U) | EXPECT_EQ(state.EndpointResults()[0U].endpoint, 0) | EXPECT_EQ(state.EndpointResults()[1U].endpoint, 1) | EXPECT_EQ(state.GaussResults()[0U].gauss_point, 1) | EXPECT_EQ(state.GaussResults()[1U].gauss_point, 2) | EXPECT_DOUBLE_EQ(state.EndpointResults()[0U].end_action[0U], -state.EndpointResults()[0U].section_resultant[0U]) | EXPECT_DOUBLE_EQ(state.EndpointResults()[1U].end_action[0U], state.EndpointResults()[1U].section_resultant[0U]) | EXPECT_DOUBLE_EQ(state.GaussResults()[0U].generalized_resultant[0U], state.EndpointResults()[0U].section_resultant[0U]) ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.EndpointResults().size(), 2U) | ASSERT_EQ(state.GaussResults().size(), 2U) | EXPECT_EQ(state.EndpointResults()[0U].endpoint, 0) | EXPECT_EQ(state.EndpointResults()[1U].endpoint, 1) | EXPECT_EQ(state.GaussResults()[0U].gauss_point, 1) | EXPECT_EQ(state.GaussResults()[1U].gauss_point, 2) | EXPECT_DOUBLE_EQ(state.EndpointResults()[0U].end_action[0U], -state.EndpointResults()[0U].section_resultant[0U]) | EXPECT_DOUBLE_EQ(state.EndpointResults()[1U].end_action[0U], state.EndpointResults()[1U].section_resultant[0U]) | EXPECT_DOUBLE_EQ(state.GaussResults()[0U].generalized_resultant[0U], state.EndpointResults()[0U].section_resultant[0U]) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.MatchesAxialTorsionAndTwoPlaneEndSigns ResultRecovery.MatchesAxialTorsionAndTwoPlaneEndSigns; assertion 1개 tests/unit/results/result_recovery_test.cpp ResultRecovery.MatchesAxialTorsionAndTwoPlaneEndSigns 유지 원문 검사 body 및 assertion 동일. 180b227a99c3cf6f4fc40c9dafa7a98cafcc456ef146b083300d66db8187a98e 180b227a99c3cf6f4fc40c9dafa7a98cafcc456ef146b083300d66db8187a98e ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.OrdersStressPointsAndDefaultCentroid ResultRecovery.OrdersStressPointsAndDefaultCentroid; assertion 14개 tests/unit/results/result_recovery_test.cpp ResultRecovery.OrdersStressPointsAndDefaultCentroid 유지 원문 검사 body 및 assertion 동일. 27b9a3f6418687d3b2b4d657ae2c41df972cefae91ec474d642f4f8664dea77b 27b9a3f6418687d3b2b4d657ae2c41df972cefae91ec474d642f4f8664dea77b "ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.StressResults().size(), 4U) | EXPECT_EQ(row.element, 0U) | EXPECT_EQ(row.gauss_point, static_cast(gauss + 1U)) | EXPECT_EQ(row.section_point, point + 1U) | EXPECT_DOUBLE_EQ(row.x1, section_points[point][0U]) | EXPECT_DOUBLE_EQ(row.x2, section_points[point][1U]) | EXPECT_EQ(row.source, ""input"") | ASSERT_TRUE(fesa::ResultRecovery::Recover( *default_fixture.model, *default_fixture.dofs, *default_fixture.stiffness, default_state) .IsOk()) | ASSERT_EQ(default_state.StressResults().size(), 2U) | EXPECT_EQ(row.section_point, 0U) | EXPECT_DOUBLE_EQ(row.x1, 0.0) | EXPECT_DOUBLE_EQ(row.x2, 0.0) | EXPECT_EQ(row.source, ""fesa-default"")" "ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.StressResults().size(), 4U) | EXPECT_EQ(row.element, 0U) | EXPECT_EQ(row.gauss_point, static_cast(gauss + 1U)) | EXPECT_EQ(row.section_point, point + 1U) | EXPECT_DOUBLE_EQ(row.x1, section_points[point][0U]) | EXPECT_DOUBLE_EQ(row.x2, section_points[point][1U]) | EXPECT_EQ(row.source, ""input"") | ASSERT_TRUE(fesa::ResultRecovery::Recover( *default_fixture.model, *default_fixture.dofs, *default_fixture.stiffness, default_state) .IsOk()) | ASSERT_EQ(default_state.StressResults().size(), 2U) | EXPECT_EQ(row.section_point, 0U) | EXPECT_DOUBLE_EQ(row.x1, 0.0) | EXPECT_DOUBLE_EQ(row.x2, 0.0) | EXPECT_EQ(row.source, ""fesa-default"")" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.RequiresInteriorEndpointConsistencyWithoutAveraging ResultRecovery.RequiresInteriorEndpointConsistencyWithoutAveraging; assertion 10개 tests/unit/results/result_recovery_test.cpp ResultRecovery.RequiresInteriorEndpointConsistencyWithoutAveraging 유지 원문 검사 body 및 assertion 동일. aa4603901819c039277bbba8fe36bfcecb9264320ae115f7e9e2d4e6d873a1b1 aa4603901819c039277bbba8fe36bfcecb9264320ae115f7e9e2d4e6d873a1b1 ASSERT_TRUE(normalized.HasValue()) | ASSERT_EQ(normalized.Value().size(), 3U) | EXPECT_EQ(normalized.Value()[1U].representative_element, 0U) | EXPECT_DOUBLE_EQ(normalized.Value()[1U].section_resultant[0U], 5.0) | ASSERT_FALSE(mismatch.HasValue()) | ASSERT_FALSE(nonfinite.HasValue()) | ASSERT_FALSE(invalid_tolerance.HasValue()) | ASSERT_FALSE(loaded.HasValue()) | ASSERT_FALSE(reversed.HasValue()) | ASSERT_FALSE(jumped.HasValue()) ASSERT_TRUE(normalized.HasValue()) | ASSERT_EQ(normalized.Value().size(), 3U) | EXPECT_EQ(normalized.Value()[1U].representative_element, 0U) | EXPECT_DOUBLE_EQ(normalized.Value()[1U].section_resultant[0U], 5.0) | ASSERT_FALSE(mismatch.HasValue()) | ASSERT_FALSE(nonfinite.HasValue()) | ASSERT_FALSE(invalid_tolerance.HasValue()) | ASSERT_FALSE(loaded.HasValue()) | ASSERT_FALSE(reversed.HasValue()) | ASSERT_FALSE(jumped.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.RecoversShellRowsInStableElementAndGpOrder ResultRecovery.RecoversShellRowsInStableElementAndGpOrder; assertion 8개 tests/unit/results/result_recovery_test.cpp ResultRecovery.RecoversShellRowsInStableElementAndGpOrder 유지 원문 검사 body 및 assertion 동일. 9b8de6c23bd1314478b477a76540282c66318f375a6ea2d344cdf3521ba57569 9b8de6c23bd1314478b477a76540282c66318f375a6ea2d344cdf3521ba57569 ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(state.ShellResults().size(), 8U) | EXPECT_EQ(row.element, element) | EXPECT_EQ(row.location, locations[point]) | EXPECT_EQ(row.natural_coordinates, coordinates[point]) | EXPECT_EQ(row.local_frame, expected_frame) | EXPECT_NEAR(row.generalized_strain[component], expected_strain[component], 1.0e-12) | EXPECT_NEAR(row.section_resultant[component], expected_resultant[component], 1.0e-12) ASSERT_TRUE(status.IsOk()) | ASSERT_EQ(state.ShellResults().size(), 8U) | EXPECT_EQ(row.element, element) | EXPECT_EQ(row.location, locations[point]) | EXPECT_EQ(row.natural_coordinates, coordinates[point]) | EXPECT_EQ(row.local_frame, expected_frame) | EXPECT_NEAR(row.generalized_strain[component], expected_strain[component], 1.0e-12) | EXPECT_NEAR(row.section_resultant[component], expected_resultant[component], 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.RecoversDirectBottomMiddleTopShellStress ResultRecovery.RecoversDirectBottomMiddleTopShellStress; assertion 5개 tests/unit/results/result_recovery_test.cpp ResultRecovery.RecoversDirectBottomMiddleTopShellStress 유지 원문 검사 body 및 assertion 동일. b3e0100d6b0502831741ebd4ba7e572f405e0fa496e7a864df24df615e6a681a b3e0100d6b0502831741ebd4ba7e572f405e0fa496e7a864df24df615e6a681a ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_EQ(row.stress[position].position, positions[position]) | EXPECT_DOUBLE_EQ(row.stress[position].zeta, zeta[position]) | EXPECT_NEAR(row.stress[position].components[component], expected_stress[position][component], 1.0e-12) ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_EQ(row.stress[position].position, positions[position]) | EXPECT_DOUBLE_EQ(row.stress[position].zeta, zeta[position]) | EXPECT_NEAR(row.stress[position].components[component], expected_stress[position][component], 1.0e-12) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.SumsOnlyPhysicalShellEnergyInSourceOrder ResultRecovery.SumsOnlyPhysicalShellEnergyInSourceOrder; assertion 3개 tests/unit/results/result_recovery_test.cpp ResultRecovery.SumsOnlyPhysicalShellEnergyInSourceOrder 유지 원문 검사 body 및 assertion 동일. 00b5b24a4976ce98df0b3e5204d6c3e1295111aa571f737aa02b5c59d7b9c4d8 00b5b24a4976ce98df0b3e5204d6c3e1295111aa571f737aa02b5c59d7b9c4d8 ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | EXPECT_NEAR(state.PhysicalStrainEnergy(), 72.16, 1.0e-12) | EXPECT_GT(stabilized_energy, state.PhysicalStrainEnergy()) ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | EXPECT_NEAR(state.PhysicalStrainEnergy(), 72.16, 1.0e-12) | EXPECT_GT(stabilized_energy, state.PhysicalStrainEnergy()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.KeepsFullResidualAndComputesGlobalShellEquilibrium ResultRecovery.KeepsFullResidualAndComputesGlobalShellEquilibrium; assertion 11개 tests/unit/results/result_recovery_test.cpp ResultRecovery.KeepsFullResidualAndComputesGlobalShellEquilibrium 유지 원문 검사 body 및 assertion 동일. 26ba2a3d96f0e02c4b251de544b76a99d82d3346023d01b17cf80133ca3c067e 26ba2a3d96f0e02c4b251de544b76a99d82d3346023d01b17cf80133ca3c067e ASSERT_TRUE(full_load.HasValue()) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_DOUBLE_EQ(state.InternalForce()[full_dof], 0.0) | EXPECT_DOUBLE_EQ(state.Residual()[full_dof], -state.ExternalForce()[full_dof]) | EXPECT_DOUBLE_EQ(state.Reaction()[full_dof], state.Residual()[full_dof]) | EXPECT_EQ(state.Equilibrium(), (std::array{0.0, 0.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{0.0, 0.0, 0.0})) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*free_fixture.model, *free_fixture.dofs, *free_fixture.stiffness, perturbed) .IsOk()) | EXPECT_GT(metric, 0.0) | EXPECT_LE(metric, 1.0e-10) ASSERT_TRUE(full_load.HasValue()) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 4U) | EXPECT_DOUBLE_EQ(state.InternalForce()[full_dof], 0.0) | EXPECT_DOUBLE_EQ(state.Residual()[full_dof], -state.ExternalForce()[full_dof]) | EXPECT_DOUBLE_EQ(state.Reaction()[full_dof], state.Residual()[full_dof]) | EXPECT_EQ(state.Equilibrium(), (std::array{0.0, 0.0, 0.0, 0.0, 0.0, 0.0})) | EXPECT_EQ(state.VerificationMetrics(), (std::array{0.0, 0.0, 0.0})) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*free_fixture.model, *free_fixture.dofs, *free_fixture.stiffness, perturbed) .IsOk()) | EXPECT_GT(metric, 0.0) | EXPECT_LE(metric, 1.0e-10) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.UsesGlobalOriginForShellMomentBalance ResultRecovery.UsesGlobalOriginForShellMomentBalance; assertion 5개 tests/unit/results/result_recovery_test.cpp ResultRecovery.UsesGlobalOriginForShellMomentBalance 유지 원문 검사 body 및 assertion 동일. 91bda66039ec2ad9dd1d554d2fec6de249e3b4327105a883b94dc64877e091b5 91bda66039ec2ad9dd1d554d2fec6de249e3b4327105a883b94dc64877e091b5 ASSERT_TRUE(fesa::ResultRecovery::Recover( *centered_fixture.model, *centered_fixture.dofs, *centered_fixture.stiffness, centered) .IsOk()) | ASSERT_TRUE(fesa::ResultRecovery::Recover( *translated_fixture.model, *translated_fixture.dofs, *translated_fixture.stiffness, translated) .IsOk()) | EXPECT_NEAR(translated.Equilibrium()[component], centered_force[component], 1.0e-12) | EXPECT_NEAR(translated.Equilibrium()[3U + component] - centered.Equilibrium()[3U + component], translated_moment_delta[component], 5.0e-12) | EXPECT_GT(std::abs(translated_moment_delta[2U]), 1.0e-9) ASSERT_TRUE(fesa::ResultRecovery::Recover( *centered_fixture.model, *centered_fixture.dofs, *centered_fixture.stiffness, centered) .IsOk()) | ASSERT_TRUE(fesa::ResultRecovery::Recover( *translated_fixture.model, *translated_fixture.dofs, *translated_fixture.stiffness, translated) .IsOk()) | EXPECT_NEAR(translated.Equilibrium()[component], centered_force[component], 1.0e-12) | EXPECT_NEAR(translated.Equilibrium()[3U + component] - centered.Equilibrium()[3U + component], translated_moment_delta[component], 5.0e-12) | EXPECT_GT(std::abs(translated_moment_delta[2U]), 1.0e-9) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.UsesScaleAwareShellMetricsAndRejectsExcess ResultRecovery.UsesScaleAwareShellMetricsAndRejectsExcess; assertion 6개 tests/unit/results/result_recovery_test.cpp ResultRecovery.UsesScaleAwareShellMetricsAndRejectsExcess 유지 원문 검사 body 및 assertion 동일. 1a8b5c99778239402aa2e0e22d9f40513451781fbc64d04853b30ab367af26a9 1a8b5c99778239402aa2e0e22d9f40513451781fbc64d04853b30ab367af26a9 ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, subunit) .IsOk()) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, large) .IsOk()) | EXPECT_GT(subunit.VerificationMetrics()[metric], 0.0) | EXPECT_GT(large.VerificationMetrics()[metric], 0.0) | EXPECT_NEAR(subunit.VerificationMetrics()[metric], large.VerificationMetrics()[metric], 1.0e-13) | ASSERT_TRUE(unbalanced_stiffness.HasValue()) ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, subunit) .IsOk()) | ASSERT_TRUE(fesa::ResultRecovery::Recover(*fixture.model, *fixture.dofs, *fixture.stiffness, large) .IsOk()) | EXPECT_GT(subunit.VerificationMetrics()[metric], 0.0) | EXPECT_GT(large.VerificationMetrics()[metric], 0.0) | EXPECT_NEAR(subunit.VerificationMetrics()[metric], large.VerificationMetrics()[metric], 1.0e-13) | ASSERT_TRUE(unbalanced_stiffness.HasValue()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.InvalidLaterShellLeavesEntirePriorStateUnchanged ResultRecovery.InvalidLaterShellLeavesEntirePriorStateUnchanged; assertion 15개 tests/unit/results/result_recovery_test.cpp ResultRecovery.InvalidLaterShellLeavesEntirePriorStateUnchanged 유지 원문 검사 body 및 assertion 동일. cdc079f64476222e15342ee83a53f02ad11ba110191fcc7b334c22cccd03aaba cdc079f64476222e15342ee83a53f02ad11ba110191fcc7b334c22cccd03aaba ASSERT_TRUE(fesa::ResultRecovery::Recover(*valid_fixture.model, *valid_fixture.dofs, *valid_fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 8U) | ASSERT_TRUE(zero_stiffness.HasValue()) | EXPECT_DOUBLE_EQ(state.InternalForce()[0U], 91.0) | EXPECT_DOUBLE_EQ(state.Residual()[0U], 92.0) | EXPECT_DOUBLE_EQ(state.Reaction()[0U], 93.0) | EXPECT_EQ(state.EndpointResults().size(), 1U) | ASSERT_EQ(state.ShellResults().size(), 8U) | EXPECT_EQ(state.ShellResults().front().element, prior_first_row.element) | EXPECT_EQ(state.ShellResults().front().location, prior_first_row.location) | EXPECT_EQ(state.ShellResults().front().generalized_strain, prior_first_row.generalized_strain) | EXPECT_EQ(state.ShellResults().front().section_resultant, prior_first_row.section_resultant) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior_energy) | EXPECT_EQ(state.Equilibrium(), prior_equilibrium) | EXPECT_EQ(state.VerificationMetrics(), prior_metrics) ASSERT_TRUE(fesa::ResultRecovery::Recover(*valid_fixture.model, *valid_fixture.dofs, *valid_fixture.stiffness, state) .IsOk()) | ASSERT_EQ(state.ShellResults().size(), 8U) | ASSERT_TRUE(zero_stiffness.HasValue()) | EXPECT_DOUBLE_EQ(state.InternalForce()[0U], 91.0) | EXPECT_DOUBLE_EQ(state.Residual()[0U], 92.0) | EXPECT_DOUBLE_EQ(state.Reaction()[0U], 93.0) | EXPECT_EQ(state.EndpointResults().size(), 1U) | ASSERT_EQ(state.ShellResults().size(), 8U) | EXPECT_EQ(state.ShellResults().front().element, prior_first_row.element) | EXPECT_EQ(state.ShellResults().front().location, prior_first_row.location) | EXPECT_EQ(state.ShellResults().front().generalized_strain, prior_first_row.generalized_strain) | EXPECT_EQ(state.ShellResults().front().section_resultant, prior_first_row.section_resultant) | EXPECT_DOUBLE_EQ(state.PhysicalStrainEnergy(), prior_energy) | EXPECT_EQ(state.Equilibrium(), prior_equilibrium) | EXPECT_EQ(state.VerificationMetrics(), prior_metrics) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_test.cpp ResultRecovery.RealSolidPayloadFailsClosedAndPreservesLegacyState ResultRecovery.RealSolidPayloadFailsClosedAndPreservesLegacyState; assertion 9개 tests/unit/results/result_recovery_test.cpp ResultRecovery.RealSolidPayloadFailsClosedAndPreservesLegacyState 유지 원문 검사 body 및 assertion 동일. b141c6cecbdb1ae52c1c6d824f368ca38f6d56aef54f660dac80dd383e2dd22d b141c6cecbdb1ae52c1c6d824f368ca38f6d56aef54f660dac80dd383e2dd22d "ASSERT_TRUE(solid.HasValue()) | ASSERT_TRUE(recovered.HasValue()) | ASSERT_EQ(std::get(recovered.Value().payload) .rows.size(), 8U) | EXPECT_DOUBLE_EQ(state.Displacement()[0], 37.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[0], 19.0) | ASSERT_EQ(state.EndpointResults().size(), 2U) | EXPECT_DOUBLE_EQ(state.EndpointResults()[0].section_resultant[0], 11.0) | EXPECT_EQ(state.Identity().step_name, ""prior-step"") | EXPECT_EQ(state.Identity().frame_index, 9U)" "ASSERT_TRUE(solid.HasValue()) | ASSERT_TRUE(recovered.HasValue()) | ASSERT_EQ(std::get(recovered.Value().payload) .rows.size(), 8U) | EXPECT_DOUBLE_EQ(state.Displacement()[0], 37.0) | EXPECT_DOUBLE_EQ(state.InternalForce()[0], 19.0) | ASSERT_EQ(state.EndpointResults().size(), 2U) | EXPECT_DOUBLE_EQ(state.EndpointResults()[0].section_resultant[0], 11.0) | EXPECT_EQ(state.Identity().step_name, ""prior-step"") | EXPECT_EQ(state.Identity().frame_index, 9U)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/result_recovery_test.cpp support@1-486 helper/oracle/fixture/include/static assertion 구간: RecoveryFixture, ShellRecoveryFixture, FakeRecoveryElement, if, FullNodeComponents, MakeRuntimeLayout, MakeFakeBeamBundle, MakeFakeShellBundle, ExpectVectorEqual, MakeShellFixture, MakeShellPhysicalState, MakeAxialEquilibriumState, for, MakePatchState, ExpectStatusCode, ExpectScaledNear, MakeStationRows tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eb7cc3528f2f1b6ff89196b0aa6af7976ed75a3e979be52ea96ad2bdc358192a 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_recovery_test.cpp support@536-537 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 212a78df598b1f4fe28beea4828a6b61a489b64fdcab0d4dac8e166621522216 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_recovery_test.cpp support@567-568 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 212a78df598b1f4fe28beea4828a6b61a489b64fdcab0d4dac8e166621522216 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_recovery_test.cpp support@873-874 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. be9695a1dfd710a92ce4bd7a28b2ff4722998e936a18a40b7ad3b0924d6db21b 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_recovery_test.cpp support@922-923 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 5b2f4ea71173df2f4c511be4321417651647b1f1d79e724c3bd99c3dc2ab8106 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_recovery_test.cpp support@950-951 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 77d8fb9f45d9b90eb930d818340de8b1fd2f4478fc8093bfbdeb0303184ca57f 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_recovery_test.cpp support@970-971 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 685f08a7676bc65e1f3c60ee0bba4f30043ab66b05381db014971b3a9376382e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_recovery_test.cpp support@1014-1015 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. edf7cabe953adfaded5d4481da649c54147c680bae27dfe27563b87d850789f0 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_recovery_test.cpp support@1058-1059 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 685f08a7676bc65e1f3c60ee0bba4f30043ab66b05381db014971b3a9376382e 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/result_recovery_test.cpp support@1108-1109 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/results/result_recovery_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. fa11ba7d5f866feb0c6e224aba5f382047c5f0c223ccedf90498730c1edf3fe8 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/results_writer_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 2개 tests/unit/results/results_writer_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. afa4f1287a951645a1e9bd2c4cc5cb8603615670944362cf89f3780befd82dee afa4f1287a951645a1e9bd2c4cc5cb8603615670944362cf89f3780befd82dee 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/results/results_writer_test.cpp PreparedResultsWriter.RoutesValueOutcomesAndPreservesWriterFailure PreparedResultsWriter.RoutesValueOutcomesAndPreservesWriterFailure; assertion 23개 tests/unit/results/results_writer_test.cpp PreparedResultsWriter.RoutesValueOutcomesAndPreservesWriterFailure 유지 원문 검사 body 및 assertion 동일. dc1caacf100a0b5668cc768a1f63a959e0b005e04c2b3a66d5dd0e103e355fa8 dc1caacf100a0b5668cc768a1f63a959e0b005e04c2b3a66d5dd0e103e355fa8 "ASSERT_TRUE(domain.HasValue()) | ASSERT_EQ(outcomes.size(), families.size()) | ASSERT_EQ(calls.families.size(), index + 1U) | EXPECT_EQ(calls.families.back(), families[index]) | EXPECT_EQ(calls.paths.back(), &output) | EXPECT_EQ(calls.domains.back(), &domain.Value()) | EXPECT_EQ(calls.diagnostics.back(), &diagnostics) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""candidate-close-failure"") | EXPECT_EQ(status.Diagnostics()[0U].location.file, ""source.inp"") | EXPECT_EQ(status.Diagnostics()[0U].location.line, 7U) | EXPECT_EQ(status.Diagnostics()[0U].keyword, ""WRITER"") | EXPECT_EQ(status.Diagnostics()[0U].entity_identity, ""0007"") | EXPECT_EQ(status.Diagnostics()[0U].message, ""Preserved writer failure."") | EXPECT_EQ(linear.received, &std::get(outcomes[0U]).state) | EXPECT_EQ(nonlinear.received, &std::get(outcomes[1U]).state) | EXPECT_EQ(eigen.received, &std::get(outcomes[2U])) | EXPECT_EQ(dynamic.received, &std::get(outcomes[3U]).state) | EXPECT_EQ(thermal.received, nullptr) | EXPECT_EQ(solid.static_state, &std::get(outcomes[4U]).state) | EXPECT_EQ(solid.frequency_state, &std::get(outcomes[5U])) | EXPECT_EQ(solid.dynamic_state, &std::get(outcomes[6U]).state)" "ASSERT_TRUE(domain.HasValue()) | ASSERT_EQ(outcomes.size(), families.size()) | ASSERT_EQ(calls.families.size(), index + 1U) | EXPECT_EQ(calls.families.back(), families[index]) | EXPECT_EQ(calls.paths.back(), &output) | EXPECT_EQ(calls.domains.back(), &domain.Value()) | EXPECT_EQ(calls.diagnostics.back(), &diagnostics) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, ""candidate-close-failure"") | EXPECT_EQ(status.Diagnostics()[0U].location.file, ""source.inp"") | EXPECT_EQ(status.Diagnostics()[0U].location.line, 7U) | EXPECT_EQ(status.Diagnostics()[0U].keyword, ""WRITER"") | EXPECT_EQ(status.Diagnostics()[0U].entity_identity, ""0007"") | EXPECT_EQ(status.Diagnostics()[0U].message, ""Preserved writer failure."") | EXPECT_EQ(linear.received, &std::get(outcomes[0U]).state) | EXPECT_EQ(nonlinear.received, &std::get(outcomes[1U]).state) | EXPECT_EQ(eigen.received, &std::get(outcomes[2U])) | EXPECT_EQ(dynamic.received, &std::get(outcomes[3U]).state) | EXPECT_EQ(thermal.received, nullptr) | EXPECT_EQ(solid.static_state, &std::get(outcomes[4U]).state) | EXPECT_EQ(solid.frequency_state, &std::get(outcomes[5U])) | EXPECT_EQ(solid.dynamic_state, &std::get(outcomes[6U]).state)" 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/results_writer_test.cpp PreparedResultsWriter.MissingOptionalAdapterInvokesNoOtherWriter PreparedResultsWriter.MissingOptionalAdapterInvokesNoOtherWriter; assertion 7개 tests/unit/results/results_writer_test.cpp PreparedResultsWriter.MissingOptionalAdapterInvokesNoOtherWriter 유지 원문 검사 body 및 assertion 동일. b58ff6083f8ee297078a9bfbb93213d9d3cae595f93137da6141e772c5b5f537 b58ff6083f8ee297078a9bfbb93213d9d3cae595f93137da6141e772c5b5f537 ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, codes[index - 3U]) | EXPECT_EQ(status.Diagnostics()[0U].keyword, keywords[index - 3U]) | EXPECT_TRUE(calls.families.empty()) ASSERT_TRUE(domain.HasValue()) | EXPECT_FALSE(status.IsOk()) | EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput) | ASSERT_EQ(status.Diagnostics().size(), 1U) | EXPECT_EQ(status.Diagnostics()[0U].code, codes[index - 3U]) | EXPECT_EQ(status.Diagnostics()[0U].keyword, keywords[index - 3U]) | EXPECT_TRUE(calls.families.empty()) 유지-대체동등성미입증 R-STATIC test-cleanup-review.md#r-static +Refactor tests/unit/results/results_writer_test.cpp support@1-133 helper/oracle/fixture/include/static assertion 구간: namespace, WriterCalls, Record, Writer, State, RecordingWriter, RecordingSolidWriter, EmptyOutcomes tests/unit/results/results_writer_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. e1cd9f67666ffb3a9e533fc56adbe649df4861080460e9cd8208f22c8891a4fb 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 34개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. eaebae0e4350e20ce66e07f762b7d2c867a06db4ad89afaac90c92bfc1d4ca61 eaebae0e4350e20ce66e07f762b7d2c867a06db4ad89afaac90c92bfc1d4ca61 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.SolvesN1AndRetainsBackendEvidence MklFeastEigenSolver.SolvesN1AndRetainsBackendEvidence; assertion 19개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.SolvesN1AndRetainsBackendEvidence 유지 원문 검사 body 및 assertion 동일. a5e6952b5e691cd318758a58e51cc8c0cadbf6992466d2919582d812f7efc0fa a5e6952b5e691cd318758a58e51cc8c0cadbf6992466d2919582d812f7efc0fa "EXPECT_EQ(result.Value().requested_modes, 1U) | ASSERT_EQ(result.Value().eigenvalues.size(), 1U) | EXPECT_NEAR(result.Value().eigenvalues[0U], 4.0, 1.0e-10) | EXPECT_DOUBLE_EQ(result.Value().operator_scale, 4.0) | EXPECT_EQ(result.Value().eigenvectors.Rows(), 1U) | EXPECT_EQ(result.Value().eigenvectors.Columns(), 1U) | EXPECT_EQ(result.Value().thread_count, 1U) | ASSERT_EQ(result.Value().base_fpm.size(), 128U) | EXPECT_EQ(result.Value().base_fpm[5U], 0) | ASSERT_FALSE(result.Value().backend_calls.empty()) | EXPECT_EQ(result.Value().backend_calls.front().purpose, ""total-enclosure"") | EXPECT_EQ(result.Value().backend_calls.back().kind, ""solve"") | EXPECT_TRUE(result.Value().backend_calls.back().count_available) | EXPECT_EQ(result.Value().backend_calls.back().count, result.Value().eigenvalues.size()) | EXPECT_TRUE(result.Value().backend_calls.back().loop_available) | EXPECT_TRUE(result.Value().backend_calls.back().epsout_available) | EXPECT_EQ(result.Value().backend_calls.back().outcome, ""accepted"") | EXPECT_EQ(result.Value().backend_calls.back().decision_reason, ""accepted"") | EXPECT_FALSE(result.Value().upper_search_termination.empty())" "EXPECT_EQ(result.Value().requested_modes, 1U) | ASSERT_EQ(result.Value().eigenvalues.size(), 1U) | EXPECT_NEAR(result.Value().eigenvalues[0U], 4.0, 1.0e-10) | EXPECT_DOUBLE_EQ(result.Value().operator_scale, 4.0) | EXPECT_EQ(result.Value().eigenvectors.Rows(), 1U) | EXPECT_EQ(result.Value().eigenvectors.Columns(), 1U) | EXPECT_EQ(result.Value().thread_count, 1U) | ASSERT_EQ(result.Value().base_fpm.size(), 128U) | EXPECT_EQ(result.Value().base_fpm[5U], 0) | ASSERT_FALSE(result.Value().backend_calls.empty()) | EXPECT_EQ(result.Value().backend_calls.front().purpose, ""total-enclosure"") | EXPECT_EQ(result.Value().backend_calls.back().kind, ""solve"") | EXPECT_TRUE(result.Value().backend_calls.back().count_available) | EXPECT_EQ(result.Value().backend_calls.back().count, result.Value().eigenvalues.size()) | EXPECT_TRUE(result.Value().backend_calls.back().loop_available) | EXPECT_TRUE(result.Value().backend_calls.back().epsout_available) | EXPECT_EQ(result.Value().backend_calls.back().outcome, ""accepted"") | EXPECT_EQ(result.Value().backend_calls.back().decision_reason, ""accepted"") | EXPECT_FALSE(result.Value().upper_search_termination.empty())" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.SolvesAllZeroWithExplicitPhysicalScale MklFeastEigenSolver.SolvesAllZeroWithExplicitPhysicalScale; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.SolvesAllZeroWithExplicitPhysicalScale 유지 원문 검사 body 및 assertion 동일. 9132a899409f4f8bb3a08c9f5c18c3f0ff1a4857bf1f98571340163e4553f691 9132a899409f4f8bb3a08c9f5c18c3f0ff1a4857bf1f98571340163e4553f691 ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_DOUBLE_EQ(result.Value().operator_scale, 7.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[0U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[1U], 0.0) ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_DOUBLE_EQ(result.Value().operator_scale, 7.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[0U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[1U], 0.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesRepeatedMultiplicityAndStableOrder MklFeastEigenSolver.PreservesRepeatedMultiplicityAndStableOrder; assertion 8개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesRepeatedMultiplicityAndStableOrder 유지 원문 검사 body 및 assertion 동일. 569416623ee5b90db9c898f92f589b8eb7bda065baaf7f777feb8245b14f19a8 569416623ee5b90db9c898f92f589b8eb7bda065baaf7f777feb8245b14f19a8 ASSERT_EQ(first.Value().eigenvalues.size(), 3U) | EXPECT_NEAR(first.Value().eigenvalues[0U], 2.0, 1.0e-10) | EXPECT_NEAR(first.Value().eigenvalues[1U], 2.0, 1.0e-10) | EXPECT_NEAR(first.Value().eigenvalues[2U], 5.0, 1.0e-10) | EXPECT_EQ(first.Value().column_ids, second.Value().column_ids) | EXPECT_EQ(first.Value().column_ids, third.Value().column_ids) | EXPECT_EQ(first.Value().eigenvalues, second.Value().eigenvalues) | EXPECT_EQ(first.Value().eigenvalues, third.Value().eigenvalues) ASSERT_EQ(first.Value().eigenvalues.size(), 3U) | EXPECT_NEAR(first.Value().eigenvalues[0U], 2.0, 1.0e-10) | EXPECT_NEAR(first.Value().eigenvalues[1U], 2.0, 1.0e-10) | EXPECT_NEAR(first.Value().eigenvalues[2U], 5.0, 1.0e-10) | EXPECT_EQ(first.Value().column_ids, second.Value().column_ids) | EXPECT_EQ(first.Value().column_ids, third.Value().column_ids) | EXPECT_EQ(first.Value().eigenvalues, second.Value().eigenvalues) | EXPECT_EQ(first.Value().eigenvalues, third.Value().eigenvalues) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.UsesGuardedPrefixWithoutDroppingRepeatedCluster MklFeastEigenSolver.UsesGuardedPrefixWithoutDroppingRepeatedCluster; assertion 6개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.UsesGuardedPrefixWithoutDroppingRepeatedCluster 유지 원문 검사 body 및 assertion 동일. 56315bd7fccef615e71cc32988f93ec30232ca90502bf20c0402180d597c0685 56315bd7fccef615e71cc32988f93ec30232ca90502bf20c0402180d597c0685 "EXPECT_GE(one_mode.Value().eigenvalues.size(), 40U) | EXPECT_GE(forty_first.Value().eigenvalues.size(), 41U) | EXPECT_NEAR(one_mode.Value().eigenvalues[index], 1.0, 1.0e-10) | EXPECT_NEAR(forty_first.Value().eigenvalues[40U], 2.0, 1.0e-10) | EXPECT_EQ(one_mode.Value().backend_calls.back().kind, ""solve"") | EXPECT_EQ(forty_first.Value().backend_calls.back().kind, ""solve"")" "EXPECT_GE(one_mode.Value().eigenvalues.size(), 40U) | EXPECT_GE(forty_first.Value().eigenvalues.size(), 41U) | EXPECT_NEAR(one_mode.Value().eigenvalues[index], 1.0, 1.0e-10) | EXPECT_NEAR(forty_first.Value().eigenvalues[40U], 2.0, 1.0e-10) | EXPECT_EQ(one_mode.Value().backend_calls.back().kind, ""solve"") | EXPECT_EQ(forty_first.Value().backend_calls.back().kind, ""solve"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsSignificantNegativeSpectrum MklFeastEigenSolver.RejectsSignificantNegativeSpectrum; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsSignificantNegativeSpectrum 유지 원문 검사 body 및 assertion 동일. 0c5373e53f768aa91e99580e4d48e737a8b3ed32c98f141d8c4d2faa02a523d6 0c5373e53f768aa91e99580e4d48e737a8b3ed32c98f141d8c4d2faa02a523d6 "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""negative-eigenvalue-spectrum"")" "ASSERT_FALSE(result.HasValue()) | EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kSolver) | ASSERT_EQ(result.GetStatus().Diagnostics().size(), 1U) | EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, ""negative-eigenvalue-spectrum"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.KeepsCloseDistinctModesSeparated MklFeastEigenSolver.KeepsCloseDistinctModesSeparated; assertion 5개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.KeepsCloseDistinctModesSeparated 유지 원문 검사 body 및 assertion 동일. 14aacceeae53faa7a062beccd27707e37541fd4a20e7ccd64ad38f6bbacf57f0 14aacceeae53faa7a062beccd27707e37541fd4a20e7ccd64ad38f6bbacf57f0 ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(result.Value().eigenvalues[0U], 1.0, 1.0e-10) | EXPECT_NEAR(result.Value().eigenvalues[1U], 1.001, 1.0e-10) | EXPECT_NEAR(std::abs(result.Value().eigenvectors(0U, 0U)), 1.0, 1.0e-10) | EXPECT_NEAR(std::abs(result.Value().eigenvectors(1U, 1U)), 1.0, 1.0e-10) ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(result.Value().eigenvalues[0U], 1.0, 1.0e-10) | EXPECT_NEAR(result.Value().eigenvalues[1U], 1.001, 1.0e-10) | EXPECT_NEAR(std::abs(result.Value().eigenvectors(0U, 0U)), 1.0, 1.0e-10) | EXPECT_NEAR(std::abs(result.Value().eigenvectors(1U, 1U)), 1.0, 1.0e-10) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RestoresCallingThreadLocalSetting MklFeastEigenSolver.RestoresCallingThreadLocalSetting; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RestoresCallingThreadLocalSetting 유지 원문 검사 body 및 assertion 동일. 83ad3e485cd51a75937fe2c31aa9ca90a33b7dddd67acdfeea5e2c8b21a3bb7f 83ad3e485cd51a75937fe2c31aa9ca90a33b7dddd67acdfeea5e2c8b21a3bb7f EXPECT_EQ(restored, 2) EXPECT_EQ(restored, 2) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsInvalidRequestAndZeroScale MklFeastEigenSolver.RejectsInvalidRequestAndZeroScale; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsInvalidRequestAndZeroScale 유지 원문 검사 body 및 assertion 동일. 8689fda7e7994805ac76572196bc34cf736664e5b643b71233cacc3e6a29d13b 8689fda7e7994805ac76572196bc34cf736664e5b643b71233cacc3e6a29d13b "ASSERT_FALSE(zero_request.HasValue()) | EXPECT_EQ(zero_request.GetStatus().Diagnostics()[0U].code, ""feast-invalid-dimension"") | ASSERT_FALSE(invalid_scale.HasValue()) | EXPECT_EQ(invalid_scale.GetStatus().Diagnostics()[0U].code, ""feast-invalid-zero-scale"")" "ASSERT_FALSE(zero_request.HasValue()) | EXPECT_EQ(zero_request.GetStatus().Diagnostics()[0U].code, ""feast-invalid-dimension"") | ASSERT_FALSE(invalid_scale.HasValue()) | EXPECT_EQ(invalid_scale.GetStatus().Diagnostics()[0U].code, ""feast-invalid-zero-scale"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesLowestPrefixForZeroAndPositiveSpectra MklFeastEigenSolver.PreservesLowestPrefixForZeroAndPositiveSpectra; assertion 3개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesLowestPrefixForZeroAndPositiveSpectra 유지 원문 검사 body 및 assertion 동일. aa89c5b6a3123bea8bd03219a4334166bf4f607ff70abfab02cb536b18768f5d aa89c5b6a3123bea8bd03219a4334166bf4f607ff70abfab02cb536b18768f5d ASSERT_TRUE(result.HasValue()) | ASSERT_GE(result.Value().eigenvalues.size(), requested) | EXPECT_NEAR(result.Value().eigenvalues[i], spectrum[i], 1e-10) ASSERT_TRUE(result.HasValue()) | ASSERT_GE(result.Value().eigenvalues.size(), requested) | EXPECT_NEAR(result.Value().eigenvalues[i], spectrum[i], 1e-10) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.ResolvesCloseDistinctSpectrumAfterGivensCongruence MklFeastEigenSolver.ResolvesCloseDistinctSpectrumAfterGivensCongruence; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.ResolvesCloseDistinctSpectrumAfterGivensCongruence 유지 원문 검사 body 및 assertion 동일. b173141930f9c7d787cee4d5715c4f4fcf346e6fe947e9e8b1fa60784764641d b173141930f9c7d787cee4d5715c4f4fcf346e6fe947e9e8b1fa60784764641d ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().eigenvalues.size(), 4U) | EXPECT_NEAR(result.Value().eigenvalues[i], spectrum[i], 1e-12) | EXPECT_GT(result.Value().eigenvalues[1U] - result.Value().eigenvalues[0U], 1e-9) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().eigenvalues.size(), 4U) | EXPECT_NEAR(result.Value().eigenvalues[i], spectrum[i], 1e-12) | EXPECT_GT(result.Value().eigenvalues[1U] - result.Value().eigenvalues[0U], 1e-9) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsFatalCountStatusWithoutRetry MklFeastEigenSolver.RejectsFatalCountStatusWithoutRetry; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsFatalCountStatusWithoutRetry 유지 원문 검사 body 및 assertion 동일. 23ef85953cd9408cae46249383f429500ae4234067387d6c8d0a3aa9eb5b96bf 23ef85953cd9408cae46249383f429500ae4234067387d6c8d0a3aa9eb5b96bf EXPECT_EQ(hook_calls, 1U) EXPECT_EQ(hook_calls, 1U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.BoundsCountCallsAndUpperSearchReservations MklFeastEigenSolver.BoundsCountCallsAndUpperSearchReservations; assertion 6개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.BoundsCountCallsAndUpperSearchReservations 유지 원문 검사 body 및 assertion 동일. 2e3d9cc28ce1c4d1909d0afc2950f88e8be5ba66d8f4344829561fe06601e8ca 2e3d9cc28ce1c4d1909d0afc2950f88e8be5ba66d8f4344829561fe06601e8ca EXPECT_TRUE(fesa::internal::CanCallFeast(511U)) | EXPECT_FALSE(fesa::internal::CanCallFeast(512U)) | EXPECT_FALSE(fesa::internal::CanCallFeast(kMaximum)) | EXPECT_TRUE(fesa::internal::CanStartUpperCandidate(363U)) | EXPECT_FALSE(fesa::internal::CanStartUpperCandidate(364U)) | EXPECT_FALSE(fesa::internal::CanStartUpperCandidate(kMaximum)) EXPECT_TRUE(fesa::internal::CanCallFeast(511U)) | EXPECT_FALSE(fesa::internal::CanCallFeast(512U)) | EXPECT_FALSE(fesa::internal::CanCallFeast(kMaximum)) | EXPECT_TRUE(fesa::internal::CanStartUpperCandidate(363U)) | EXPECT_FALSE(fesa::internal::CanStartUpperCandidate(364U)) | EXPECT_FALSE(fesa::internal::CanStartUpperCandidate(kMaximum)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.BoundsPrivateWorkspaceProductsBeforeAllocation MklFeastEigenSolver.BoundsPrivateWorkspaceProductsBeforeAllocation; assertion 7개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.BoundsPrivateWorkspaceProductsBeforeAllocation 유지 원문 검사 body 및 assertion 동일. 69110366294c0c4a271e8295fa2352576136369334a1db1c9346511d5496e742 69110366294c0c4a271e8295fa2352576136369334a1db1c9346511d5496e742 EXPECT_TRUE(fesa::internal::ProductFits(0U, kMaximum)) | EXPECT_TRUE(fesa::internal::ProductFits(1U, kMaximum)) | EXPECT_FALSE(fesa::internal::ProductFits(kMaximum, 2U)) | EXPECT_TRUE(fesa::internal::FitsDoubleStorage(0U)) | EXPECT_TRUE(fesa::internal::FitsDoubleStorage(storage_limit)) | EXPECT_FALSE(fesa::internal::FitsDoubleStorage(kMaximum)) | EXPECT_FALSE(fesa::internal::FitsDoubleStorage(storage_limit + 1U)) EXPECT_TRUE(fesa::internal::ProductFits(0U, kMaximum)) | EXPECT_TRUE(fesa::internal::ProductFits(1U, kMaximum)) | EXPECT_FALSE(fesa::internal::ProductFits(kMaximum, 2U)) | EXPECT_TRUE(fesa::internal::FitsDoubleStorage(0U)) | EXPECT_TRUE(fesa::internal::FitsDoubleStorage(storage_limit)) | EXPECT_FALSE(fesa::internal::FitsDoubleStorage(kMaximum)) | EXPECT_FALSE(fesa::internal::FitsDoubleStorage(storage_limit + 1U)) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.TranslatesCountWorkspaceAllocationFailure MklFeastEigenSolver.TranslatesCountWorkspaceAllocationFailure; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.TranslatesCountWorkspaceAllocationFailure 유지 원문 검사 body 및 assertion 동일. 6653c1ccf3f12cf12023f4ed701c5a2dc2eac565ab6e4ab2da403e6f3a9dae65 6653c1ccf3f12cf12023f4ed701c5a2dc2eac565ab6e4ab2da403e6f3a9dae65 해당 없음 해당 없음 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.TranslatesSolveWorkspaceAllocationFailure MklFeastEigenSolver.TranslatesSolveWorkspaceAllocationFailure; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.TranslatesSolveWorkspaceAllocationFailure 유지 원문 검사 body 및 assertion 동일. e6817b904d15200de1dc8c70b40668142140bdc4adb47c239509b16c4f911842 e6817b904d15200de1dc8c70b40668142140bdc4adb47c239509b16c4f911842 해당 없음 해당 없음 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.StopsInitialInfoOneAfterThreeCountCalls MklFeastEigenSolver.StopsInitialInfoOneAfterThreeCountCalls; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.StopsInitialInfoOneAfterThreeCountCalls 유지 원문 검사 body 및 assertion 동일. 10672f977ec5bdc9692c2dfabec9acb4435e639b18d49cc197a2ccea7b53ff97 10672f977ec5bdc9692c2dfabec9acb4435e639b18d49cc197a2ccea7b53ff97 EXPECT_EQ(count_calls, 3U) EXPECT_EQ(count_calls, 3U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsFinalCountHistoryMismatch MklFeastEigenSolver.RejectsFinalCountHistoryMismatch; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsFinalCountHistoryMismatch 유지 원문 검사 body 및 assertion 동일. caea386d5db1999417f7d1140ee543ea3a5cd1398399815033afd2f1b45ebcd6 caea386d5db1999417f7d1140ee543ea3a5cd1398399815033afd2f1b45ebcd6 해당 없음 해당 없음 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsDecreasingCountAcrossDistinctUpperGuards MklFeastEigenSolver.RejectsDecreasingCountAcrossDistinctUpperGuards; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsDecreasingCountAcrossDistinctUpperGuards 유지 원문 검사 body 및 assertion 동일. 1c401c1682daa62d7105287575a7eac825c905e53825c3ea124477f3a823be7b 1c401c1682daa62d7105287575a7eac825c905e53825c3ea124477f3a823be7b 해당 없음 해당 없음 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesRawNegativeBoundaryAndRejectsBelowIt MklFeastEigenSolver.PreservesRawNegativeBoundaryAndRejectsBelowIt; assertion 5개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.PreservesRawNegativeBoundaryAndRejectsBelowIt 유지 원문 검사 body 및 assertion 동일. b6c6927ededce6c56a882de187bb35bbfa8c258b533098f90c7e54e6f0d5a324 b6c6927ededce6c56a882de187bb35bbfa8c258b533098f90c7e54e6f0d5a324 ASSERT_EQ(outputs.eigenvalues.size(), 3U) | ASSERT_EQ(result.Value().eigenvalues.size(), 3U) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[0U], negative) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[1U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[2U], 1.0) ASSERT_EQ(outputs.eigenvalues.size(), 3U) | ASSERT_EQ(result.Value().eigenvalues.size(), 3U) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[0U], negative) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[1U], 0.0) | EXPECT_DOUBLE_EQ(result.Value().eigenvalues[2U], 1.0) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.DoesNotRepeatUnchangedSolveAfterReturnedMismatch MklFeastEigenSolver.DoesNotRepeatUnchangedSolveAfterReturnedMismatch; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.DoesNotRepeatUnchangedSolveAfterReturnedMismatch 유지 원문 검사 body 및 assertion 동일. bdfe92002dfd17522f8dd7038fd290fbe28018d76ea65976ca086695a056b013 bdfe92002dfd17522f8dd7038fd290fbe28018d76ea65976ca086695a056b013 EXPECT_EQ(solve_calls, 1U) EXPECT_EQ(solve_calls, 1U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RetriesSolveInfoTwoOnlyWithLargerInterval MklFeastEigenSolver.RetriesSolveInfoTwoOnlyWithLargerInterval; assertion 2개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RetriesSolveInfoTwoOnlyWithLargerInterval 유지 원문 검사 body 및 assertion 동일. bdab428a83baf0a5524548d01ca60a6c4b4383aad9358a756131de3b356e0d5a bdab428a83baf0a5524548d01ca60a6c4b4383aad9358a756131de3b356e0d5a ASSERT_EQ(solve_uppers.size(), 2U) | EXPECT_LT(solve_uppers[0U], solve_uppers[1U]) ASSERT_EQ(solve_uppers.size(), 2U) | EXPECT_LT(solve_uppers[0U], solve_uppers[1U]) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsNonfiniteSolveOutputWithoutRetry MklFeastEigenSolver.RejectsNonfiniteSolveOutputWithoutRetry; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsNonfiniteSolveOutputWithoutRetry 유지 원문 검사 body 및 assertion 동일. 53d5c4a3981593c4552579e14bee4aaf3fd5e74c49b9fc74df3191bd3be660ad 53d5c4a3981593c4552579e14bee4aaf3fd5e74c49b9fc74df3191bd3be660ad EXPECT_EQ(solve_calls, 1U) EXPECT_EQ(solve_calls, 1U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsResidualFailureWithoutSolveRetry MklFeastEigenSolver.RejectsResidualFailureWithoutSolveRetry; assertion 2개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsResidualFailureWithoutSolveRetry 유지 원문 검사 body 및 assertion 동일. 5a606ee1a05bafe19f30255199a3379d849a730c837ae9e2d5b53c4a26c4aa91 5a606ee1a05bafe19f30255199a3379d849a730c837ae9e2d5b53c4a26c4aa91 "EXPECT_NE(result.GetStatus().Diagnostics().front().message.find( ""Independent whitened residual exceeds""), std::string::npos) | EXPECT_EQ(solve_calls, 1U)" "EXPECT_NE(result.GetStatus().Diagnostics().front().message.find( ""Independent whitened residual exceeds""), std::string::npos) | EXPECT_EQ(solve_calls, 1U)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsNonfiniteVectorAndEpsoutWithoutRetry MklFeastEigenSolver.RejectsNonfiniteVectorAndEpsoutWithoutRetry; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsNonfiniteVectorAndEpsoutWithoutRetry 유지 원문 검사 body 및 assertion 동일. 12662d8693c0d8389fc39fd1558d7d26688e89a1d30ccb5cd7ace90035fe7f3f 12662d8693c0d8389fc39fd1558d7d26688e89a1d30ccb5cd7ace90035fe7f3f EXPECT_EQ(solve_calls, 1U) EXPECT_EQ(solve_calls, 1U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsGramFailureWithoutSolveRetry MklFeastEigenSolver.RejectsGramFailureWithoutSolveRetry; assertion 2개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.RejectsGramFailureWithoutSolveRetry 유지 원문 검사 body 및 assertion 동일. 8e1f6270e69957b1ff42bd0c5c39722bbf98eb6392b7c4dea913ace4f900787a 8e1f6270e69957b1ff42bd0c5c39722bbf98eb6392b7c4dea913ace4f900787a ASSERT_EQ(outputs.vectors.size(), 4U) | EXPECT_EQ(solve_calls, 1U) ASSERT_EQ(outputs.vectors.size(), 4U) | EXPECT_EQ(solve_calls, 1U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.UsesCertifiedEnclosureAfterOptionalInfoOne MklFeastEigenSolver.UsesCertifiedEnclosureAfterOptionalInfoOne; assertion 3개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastEigenSolver.UsesCertifiedEnclosureAfterOptionalInfoOne 유지 원문 검사 body 및 assertion 동일. 9cf4debc6123a3d0b3c8e8be2d275202c80cc9698fdc2583b3d3038995a98c3a 9cf4debc6123a3d0b3c8e8be2d275202c80cc9698fdc2583b3d3038995a98c3a "EXPECT_EQ(result.Value().upper_search_termination, ""optional-status"") | ASSERT_GE(result.Value().backend_calls.size(), 2U) | EXPECT_EQ(result.Value().backend_calls[1U].outcome, ""optional-abandoned"")" "EXPECT_EQ(result.Value().upper_search_termination, ""optional-status"") | ASSERT_GE(result.Value().backend_calls.size(), 2U) | EXPECT_EQ(result.Value().backend_calls[1U].outcome, ""optional-abandoned"")" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.GenuineNonDiagonalMassPencil MklFeastGeneralized.GenuineNonDiagonalMassPencil; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.GenuineNonDiagonalMassPencil 유지 원문 검사 body 및 assertion 동일. 72baededa1bfdef264afcc9f4314a0886488e2c44bfe259c7ca37bfdb7de2118 72baededa1bfdef264afcc9f4314a0886488e2c44bfe259c7ca37bfdb7de2118 ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(result.Value().eigenvalues[0], 8.0 / 3.0, 1e-11) | EXPECT_NEAR(result.Value().eigenvalues[1], 4.0, 1e-11) ASSERT_TRUE(result.HasValue()) | ASSERT_EQ(result.Value().eigenvalues.size(), 2U) | EXPECT_NEAR(result.Value().eigenvalues[0], 8.0 / 3.0, 1e-11) | EXPECT_NEAR(result.Value().eigenvalues[1], 4.0, 1e-11) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.RejectsIndefiniteMassAndInvalidBound MklFeastGeneralized.RejectsIndefiniteMassAndInvalidBound; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.RejectsIndefiniteMassAndInvalidBound 유지 원문 검사 body 및 assertion 동일. 5e8a9f7f9837fd0d117abee37fc9630d32c9c751a38c6163015a164f6b405ac3 5e8a9f7f9837fd0d117abee37fc9630d32c9c751a38c6163015a164f6b405ac3 해당 없음 해당 없음 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.ValidatesPairsBeyondRequestedPrefix MklFeastGeneralized.ValidatesPairsBeyondRequestedPrefix; assertion 2개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.ValidatesPairsBeyondRequestedPrefix 유지 원문 검사 body 및 assertion 동일. 7f4b3d16aa4060b46421f1418006fddc70e34df70fd0d5e6186a7ca38a9e0841 7f4b3d16aa4060b46421f1418006fddc70e34df70fd0d5e6186a7ca38a9e0841 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().eigenvalues.size(), 3U) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(result.Value().eigenvalues.size(), 3U) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.RejectsCorruptUnselectedDirectionAndFatalCount MklFeastGeneralized.RejectsCorruptUnselectedDirectionAndFatalCount; assertion 1개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.RejectsCorruptUnselectedDirectionAndFatalCount 유지 원문 검사 body 및 assertion 동일. eefa09383f9cc94be8f9bf448ec69929396275705094abb5fa2355aeb2251473 eefa09383f9cc94be8f9bf448ec69929396275705094abb5fa2355aeb2251473 "EXPECT_NE( result.GetStatus().Diagnostics()[0].message.find(""Backend calls=""), std::string::npos)" "EXPECT_NE( result.GetStatus().Diagnostics()[0].message.find(""Backend calls=""), std::string::npos)" 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.LowestPrefixPreservesRepeatedBoundary MklFeastGeneralized.LowestPrefixPreservesRepeatedBoundary; assertion 3개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.LowestPrefixPreservesRepeatedBoundary 유지 원문 검사 body 및 assertion 동일. 2019942540740122b91b048dbd378523a47a784cfe5f3b959078ebad7131af05 2019942540740122b91b048dbd378523a47a784cfe5f3b959078ebad7131af05 ASSERT_TRUE(result.HasValue()) | ASSERT_GE(result.Value().eigenvalues.size(), 5U) | EXPECT_NEAR(result.Value().eigenvalues[i], 1.0, 1e-11) ASSERT_TRUE(result.HasValue()) | ASSERT_GE(result.Value().eigenvalues.size(), 5U) | EXPECT_NEAR(result.Value().eigenvalues[i], 1.0, 1e-11) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.AllocationAndCountMismatchFailClosed MklFeastGeneralized.AllocationAndCountMismatchFailClosed; assertion 0개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.AllocationAndCountMismatchFailClosed 유지 원문 검사 body 및 assertion 동일. 1271827bfda37b6a706c22d62f642e48bdc6e3435a5bde4f99371889c0656158 1271827bfda37b6a706c22d62f642e48bdc6e3435a5bde4f99371889c0656158 해당 없음 해당 없음 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.GeneralizedRetryRetainsCertifiedCountTrace MklFeastGeneralized.GeneralizedRetryRetainsCertifiedCountTrace; assertion 4개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.GeneralizedRetryRetainsCertifiedCountTrace 유지 원문 검사 body 및 assertion 동일. 658084530e78efa037f951551979e1681c86fa168014db6a798207bfee031bcf 658084530e78efa037f951551979e1681c86fa168014db6a798207bfee031bcf ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(injected) | EXPECT_NEAR(result.Value().eigenvalues[0], 1.0, 1e-11) | EXPECT_TRUE(retried) ASSERT_TRUE(result.HasValue()) | EXPECT_TRUE(injected) | EXPECT_NEAR(result.Value().eigenvalues[0], 1.0, 1e-11) | EXPECT_TRUE(retried) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.LowerPrefixCountsProveNoOmittedModesAndRejectNegative MklFeastGeneralized.LowerPrefixCountsProveNoOmittedModesAndRejectNegative; assertion 8개 tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp MklFeastGeneralized.LowerPrefixCountsProveNoOmittedModesAndRejectNegative 유지 원문 검사 body 및 assertion 동일. 8b1ef84c46097b604c26548141d8285b664a47537ed1df79c068f5623f7018f3 8b1ef84c46097b604c26548141d8285b664a47537ed1df79c068f5623f7018f3 ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(call.info, 0) | EXPECT_TRUE(call.count_available) | EXPECT_EQ(call.count, 0U) | EXPECT_LT(call.upper, 0.0) | EXPECT_LT(call.lower, call.upper) | EXPECT_EQ(guards, 3U) | EXPECT_NEAR(result.Value().eigenvalues[0], 0.0, 1e-12) ASSERT_TRUE(result.HasValue()) | EXPECT_EQ(call.info, 0) | EXPECT_TRUE(call.count_available) | EXPECT_EQ(call.count, 0U) | EXPECT_LT(call.upper, 0.0) | EXPECT_LT(call.lower, call.upper) | EXPECT_EQ(guards, 3U) | EXPECT_NEAR(result.Value().eigenvalues[0], 0.0, 1e-12) 유지-비정적유예 R-DEFER test-cleanup-review.md#r-defer +Refactor tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp support@1-115 helper/oracle/fixture/include/static assertion 구간: MakeDenseCsr, ExpectUnitGram, RequireSuccess, ExpectFailureCode, ExpectSameBackendCalls, ExpectSameProjector, ExpectThreadSettingRestored tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 91b74d929d69e24c9a0382a7498e011486ba87f933cd35ca4a433e1ceadb2a0c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-파일/helper보존 R-SUPPORT test-cleanup-review.md#r-support +Refactor tests/unit/solvers/linear/linear_solver_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 9개 tests/unit/solvers/linear/linear_solver_test.cpp file 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. a5aa18ef7c3aedac56b92f87740e0fa5b59acdb8ccd714ae16cc54b732ddcee0 a5aa18ef7c3aedac56b92f87740e0fa5b59acdb8ccd714ae16cc54b732ddcee0 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/linear_solver_test.cpp MklPardisoSolver.RejectsInvalidCsrStateAndDimensions MklPardisoSolver.RejectsInvalidCsrStateAndDimensions; assertion 20개 tests/unit/solvers/linear/linear_solver_test.cpp MklPardisoSolver.RejectsInvalidCsrStateAndDimensions 유지 원문 검사 body 및 assertion 동일. 026abcfd859f19c844cf0c0ebd698138e53fb66f1846dae2c7bf8e387db960f1 026abcfd859f19c844cf0c0ebd698138e53fb66f1846dae2c7bf8e387db960f1 "EXPECT_EQ(before_factorize.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(untouched[0U], 17.0) | EXPECT_DOUBLE_EQ(untouched[1U], -4.0) | ASSERT_TRUE(solver.Factorize(empty).IsOk()) | EXPECT_TRUE(solver.Solve(fesa::Vector{0U}, empty_solution).IsOk()) | EXPECT_EQ(empty_solution.Size(), 0U) | ASSERT_TRUE(solver.Factorize(spd).IsOk()) | ASSERT_TRUE(solver.Solve(fesa::Vector{2U, 1.0}, solution).IsOk()) | EXPECT_NEAR(solution[0U], 2.0 / 11.0, 1.0e-14) | EXPECT_NEAR(solution[1U], 3.0 / 11.0, 1.0e-14) | EXPECT_DOUBLE_EQ(solution[0U], solved_first) | EXPECT_DOUBLE_EQ(solution[1U], solved_second) | EXPECT_DOUBLE_EQ(wrong_solution[0U], 41.0) | EXPECT_EQ(rectangular_status.Diagnostics().front().code, ""solver-matrix-not-square"") | EXPECT_FALSE(invalid_csr.HasValue()) | EXPECT_EQ(nonsymmetric_status.Diagnostics().front().code, ""solver-matrix-not-symmetric"") | ASSERT_FALSE(scaled_nonsymmetric_status.IsOk()) | EXPECT_EQ(scaled_nonsymmetric_status.Diagnostics().front().code, ""solver-matrix-not-symmetric"") | ASSERT_TRUE(no_diagonal.HasValue()) | EXPECT_EQ(no_diagonal_status.Diagnostics().front().code, ""solver-missing-diagonal"")" "EXPECT_EQ(before_factorize.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(untouched[0U], 17.0) | EXPECT_DOUBLE_EQ(untouched[1U], -4.0) | ASSERT_TRUE(solver.Factorize(empty).IsOk()) | EXPECT_TRUE(solver.Solve(fesa::Vector{0U}, empty_solution).IsOk()) | EXPECT_EQ(empty_solution.Size(), 0U) | ASSERT_TRUE(solver.Factorize(spd).IsOk()) | ASSERT_TRUE(solver.Solve(fesa::Vector{2U, 1.0}, solution).IsOk()) | EXPECT_NEAR(solution[0U], 2.0 / 11.0, 1.0e-14) | EXPECT_NEAR(solution[1U], 3.0 / 11.0, 1.0e-14) | EXPECT_DOUBLE_EQ(solution[0U], solved_first) | EXPECT_DOUBLE_EQ(solution[1U], solved_second) | EXPECT_DOUBLE_EQ(wrong_solution[0U], 41.0) | EXPECT_EQ(rectangular_status.Diagnostics().front().code, ""solver-matrix-not-square"") | EXPECT_FALSE(invalid_csr.HasValue()) | EXPECT_EQ(nonsymmetric_status.Diagnostics().front().code, ""solver-matrix-not-symmetric"") | ASSERT_FALSE(scaled_nonsymmetric_status.IsOk()) | EXPECT_EQ(scaled_nonsymmetric_status.Diagnostics().front().code, ""solver-matrix-not-symmetric"") | ASSERT_TRUE(no_diagonal.HasValue()) | EXPECT_EQ(no_diagonal_status.Diagnostics().front().code, ""solver-missing-diagonal"")" 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/linear_solver_test.cpp EigenSolverContract.DispatchesBothPencilsAndDestroysThroughBase EigenSolverContract.DispatchesBothPencilsAndDestroysThroughBase; assertion 6개 tests/unit/solvers/linear/linear_solver_test.cpp EigenSolverContract.DispatchesBothPencilsAndDestroysThroughBase 유지 원문 검사 body 및 assertion 동일. 5d2764884b4c48c90b274024e9194123702a2f752ab7662af1fd9b3f154c7c4c 5d2764884b4c48c90b274024e9194123702a2f752ab7662af1fd9b3f154c7c4c EXPECT_FALSE(contract.Solve(empty, 3U, 7.0).HasValue()) | EXPECT_FALSE(contract.SolveGeneralized(empty, empty, 4U, 2.0, 11.0) .HasValue()) | EXPECT_EQ(observations->standard_calls, 1) | EXPECT_EQ(observations->generalized_calls, 1) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed) EXPECT_FALSE(contract.Solve(empty, 3U, 7.0).HasValue()) | EXPECT_FALSE(contract.SolveGeneralized(empty, empty, 4U, 2.0, 11.0) .HasValue()) | EXPECT_EQ(observations->standard_calls, 1) | EXPECT_EQ(observations->generalized_calls, 1) | EXPECT_FALSE(destroyed) | EXPECT_TRUE(destroyed) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.RetainsDistinctStoragePoliciesAndFreshPhaseOrder PardisoSession.RetainsDistinctStoragePoliciesAndFreshPhaseOrder; assertion 21개 tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.RetainsDistinctStoragePoliciesAndFreshPhaseOrder 유지 원문 검사 body 및 assertion 동일. 0ac2763eb1e27f837ff6d32babfcccfbff042230d13c9855a6a56767b6ebccf0 0ac2763eb1e27f837ff6d32babfcccfbff042230d13c9855a6a56767b6ebccf0 EXPECT_EQ(call.equation_count, 2) | EXPECT_EQ(call.row_offsets[2], 3) | EXPECT_EQ(call.column_indices[0], 0) | EXPECT_EQ(call.column_indices[1], 1) | EXPECT_EQ(call.column_indices[2], 1) | EXPECT_EQ(call.matrix_type, 11) | EXPECT_EQ(call.row_offsets[2], 4) | EXPECT_DOUBLE_EQ(call.values[2], 0.0) | ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(fesa::Vector{2U, 1.0}, solution).IsOk()) | EXPECT_NEAR(solution[0], 2.0 / 11.0, 1e-14) | ASSERT_TRUE(solver.Solve(fesa::Vector{2U, 2.0}, solution).IsOk()) | EXPECT_NEAR(solution[1], 6.0 / 11.0, 1e-14) | ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | EXPECT_EQ(phases, (std::vector{11, 22, 33, 33, -1, 11, 22, -1})) | ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(fesa::Vector{2U, 6.0}, correction).IsOk()) | EXPECT_NEAR(correction[0], 2.0, 1e-14) | EXPECT_NEAR(correction[1], 2.0, 1e-14) | ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | EXPECT_EQ(phases, (std::vector{11, 22, 33, -1, 11, 22, -1})) EXPECT_EQ(call.equation_count, 2) | EXPECT_EQ(call.row_offsets[2], 3) | EXPECT_EQ(call.column_indices[0], 0) | EXPECT_EQ(call.column_indices[1], 1) | EXPECT_EQ(call.column_indices[2], 1) | EXPECT_EQ(call.matrix_type, 11) | EXPECT_EQ(call.row_offsets[2], 4) | EXPECT_DOUBLE_EQ(call.values[2], 0.0) | ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(fesa::Vector{2U, 1.0}, solution).IsOk()) | EXPECT_NEAR(solution[0], 2.0 / 11.0, 1e-14) | ASSERT_TRUE(solver.Solve(fesa::Vector{2U, 2.0}, solution).IsOk()) | EXPECT_NEAR(solution[1], 6.0 / 11.0, 1e-14) | ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | EXPECT_EQ(phases, (std::vector{11, 22, 33, 33, -1, 11, 22, -1})) | ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(fesa::Vector{2U, 6.0}, correction).IsOk()) | EXPECT_NEAR(correction[0], 2.0, 1e-14) | EXPECT_NEAR(correction[1], 2.0, 1e-14) | ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | EXPECT_EQ(phases, (std::vector{11, 22, 33, -1, 11, 22, -1})) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.FailedSolvePreservesOutputAndRetainedFactorization PardisoSession.FailedSolvePreservesOutputAndRetainedFactorization; assertion 9개 tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.FailedSolvePreservesOutputAndRetainedFactorization 유지 원문 검사 body 및 assertion 동일. d37fa6bfe33b1eabef4e408595013d01839f01a015d6446cb16e5c59f260ee38 d37fa6bfe33b1eabef4e408595013d01839f01a015d6446cb16e5c59f260ee38 "ASSERT_TRUE(solver.Factorize(MakeDenseCsr(1U, 1U, {2.0})).IsOk()) | ASSERT_FALSE(failed.IsOk()) | EXPECT_EQ(failed.Diagnostics().front().code, ""pardiso-solve-failed"") | EXPECT_DOUBLE_EQ(solution[0], 17.0) | ASSERT_FALSE(nonfinite.IsOk()) | EXPECT_EQ(nonfinite.Diagnostics().front().code, ""nonfinite-solver-solution"") | EXPECT_DOUBLE_EQ(solution[0], 17.0) | ASSERT_TRUE(solver.Solve(fesa::Vector{1U, 6.0}, solution).IsOk()) | EXPECT_DOUBLE_EQ(solution[0], 3.0)" "ASSERT_TRUE(solver.Factorize(MakeDenseCsr(1U, 1U, {2.0})).IsOk()) | ASSERT_FALSE(failed.IsOk()) | EXPECT_EQ(failed.Diagnostics().front().code, ""pardiso-solve-failed"") | EXPECT_DOUBLE_EQ(solution[0], 17.0) | ASSERT_FALSE(nonfinite.IsOk()) | EXPECT_EQ(nonfinite.Diagnostics().front().code, ""nonfinite-solver-solution"") | EXPECT_DOUBLE_EQ(solution[0], 17.0) | ASSERT_TRUE(solver.Solve(fesa::Vector{1U, 6.0}, solution).IsOk()) | EXPECT_DOUBLE_EQ(solution[0], 3.0)" 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.ReleaseFailurePrecedesNewValidationAndInvalidatesState PardisoSession.ReleaseFailurePrecedesNewValidationAndInvalidatesState; assertion 7개 tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.ReleaseFailurePrecedesNewValidationAndInvalidatesState 유지 원문 검사 body 및 assertion 동일. 65bcca48a4bc8eade3056e8134a5b7707ac993b018a0ac4bb87bc4fbb1ef1aa9 65bcca48a4bc8eade3056e8134a5b7707ac993b018a0ac4bb87bc4fbb1ef1aa9 "ASSERT_TRUE(solver.Factorize(MakeDenseCsr(1U, 1U, {2.0})).IsOk()) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""pardiso-release-failed"") | ASSERT_FALSE(unavailable.IsOk()) | EXPECT_EQ(unavailable.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(output[0], 19.0) | EXPECT_EQ(releases, 1)" "ASSERT_TRUE(solver.Factorize(MakeDenseCsr(1U, 1U, {2.0})).IsOk()) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""pardiso-release-failed"") | ASSERT_FALSE(unavailable.IsOk()) | EXPECT_EQ(unavailable.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(output[0], 19.0) | EXPECT_EQ(releases, 1)" 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.FactorizationFailuresAndExceptionsReleaseExactlyOnce PardisoSession.FactorizationFailuresAndExceptionsReleaseExactlyOnce; assertion 8개 tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.FactorizationFailuresAndExceptionsReleaseExactlyOnce 유지 원문 검사 body 및 assertion 동일. 86cdb4d887b0a38874787ffaaff4020fba82fa97ae6b09c6e170bffcb0b19c6b 86cdb4d887b0a38874787ffaaff4020fba82fa97ae6b09c6e170bffcb0b19c6b "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""pardiso-integer-overflow"") | EXPECT_FALSE(solver.Solve(fesa::Vector{1U, 1.0}, output).IsOk()) | EXPECT_DOUBLE_EQ(output[0], 29.0) | EXPECT_EQ(phases, failing_phase == 11 ? (std::vector{11, -1}) : (std::vector{11, 22, -1})) | EXPECT_THROW(solver.FactorizeFresh(matrix), std::runtime_error) | EXPECT_EQ(phases, (std::vector{11, -1})) | EXPECT_EQ(phases, (std::vector{11, -1}))" "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""pardiso-integer-overflow"") | EXPECT_FALSE(solver.Solve(fesa::Vector{1U, 1.0}, output).IsOk()) | EXPECT_DOUBLE_EQ(output[0], 29.0) | EXPECT_EQ(phases, failing_phase == 11 ? (std::vector{11, -1}) : (std::vector{11, 22, -1})) | EXPECT_THROW(solver.FactorizeFresh(matrix), std::runtime_error) | EXPECT_EQ(phases, (std::vector{11, -1})) | EXPECT_EQ(phases, (std::vector{11, -1}))" 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.FailedTangentSolveRetainsStateButFailedFreshInvalidatesIt PardisoSession.FailedTangentSolveRetainsStateButFailedFreshInvalidatesIt; assertion 14개 tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.FailedTangentSolveRetainsStateButFailedFreshInvalidatesIt 유지 원문 검사 body 및 assertion 동일. c9ebef4503d7e7c96bae841dc2739dccc431699a65b4842c8366977b3eb3675c c9ebef4503d7e7c96bae841dc2739dccc431699a65b4842c8366977b3eb3675c "ASSERT_TRUE(solver.FactorizeFresh( MakeDenseCsr(2U, 2U, {2.0, 1.0, 0.0, 3.0})).IsOk()) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""pardiso-solve-failed"") | EXPECT_DOUBLE_EQ(correction[0], 31.0) | EXPECT_DOUBLE_EQ(correction[1], 31.0) | ASSERT_TRUE(solver.SolveCorrection(fesa::Vector{2U, 6.0}, correction).IsOk()) | EXPECT_NEAR(correction[0], 2.0, 1e-14) | EXPECT_NEAR(correction[1], 2.0, 1e-14) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""solver-matrix-not-square"") | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_NEAR(correction[0], 2.0, 1e-14) | EXPECT_NEAR(correction[1], 2.0, 1e-14)" "ASSERT_TRUE(solver.FactorizeFresh( MakeDenseCsr(2U, 2U, {2.0, 1.0, 0.0, 3.0})).IsOk()) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""pardiso-solve-failed"") | EXPECT_DOUBLE_EQ(correction[0], 31.0) | EXPECT_DOUBLE_EQ(correction[1], 31.0) | ASSERT_TRUE(solver.SolveCorrection(fesa::Vector{2U, 6.0}, correction).IsOk()) | EXPECT_NEAR(correction[0], 2.0, 1e-14) | EXPECT_NEAR(correction[1], 2.0, 1e-14) | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""solver-matrix-not-square"") | ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_NEAR(correction[0], 2.0, 1e-14) | EXPECT_NEAR(correction[1], 2.0, 1e-14)" 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.EmptyLifecycleNeverInvokesBackend PardisoSession.EmptyLifecycleNeverInvokesBackend; assertion 7개 tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.EmptyLifecycleNeverInvokesBackend 유지 원문 검사 body 및 assertion 동일. c689a24fcc5fe8bcd502deaa8e11343b665059523de896d1b58190f59ddb44e3 c689a24fcc5fe8bcd502deaa8e11343b665059523de896d1b58190f59ddb44e3 ASSERT_TRUE(solver.Factorize(empty).IsOk()) | ASSERT_TRUE(solver.Solve(fesa::Vector{0U}, solution).IsOk()) | ASSERT_TRUE(solver.Factorize(empty).IsOk()) | ASSERT_TRUE(tangent.FactorizeFresh(empty).IsOk()) | ASSERT_TRUE(tangent.SolveCorrection(fesa::Vector{0U}, solution).IsOk()) | ASSERT_TRUE(tangent.FactorizeFresh(empty).IsOk()) | EXPECT_EQ(calls, 0) ASSERT_TRUE(solver.Factorize(empty).IsOk()) | ASSERT_TRUE(solver.Solve(fesa::Vector{0U}, solution).IsOk()) | ASSERT_TRUE(solver.Factorize(empty).IsOk()) | ASSERT_TRUE(tangent.FactorizeFresh(empty).IsOk()) | ASSERT_TRUE(tangent.SolveCorrection(fesa::Vector{0U}, solution).IsOk()) | ASSERT_TRUE(tangent.FactorizeFresh(empty).IsOk()) | EXPECT_EQ(calls, 0) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.RestoresDefaultThreadPolicyAndPreservesCallerOverride PardisoSession.RestoresDefaultThreadPolicyAndPreservesCallerOverride; assertion 5개 tests/unit/solvers/linear/linear_solver_test.cpp PardisoSession.RestoresDefaultThreadPolicyAndPreservesCallerOverride 유지 원문 검사 body 및 assertion 동일. afe5e61f02fd49e178975e1320c2c6bd5b385e8d3d351c1e2d8ddf8da54be01a afe5e61f02fd49e178975e1320c2c6bd5b385e8d3d351c1e2d8ddf8da54be01a EXPECT_EQ(mkl_get_max_threads(), caller_threads == 0 ? 1 : 2) | EXPECT_FALSE(solver.Factorize(matrix).IsOk()) | EXPECT_EQ(mkl_set_num_threads_local(caller_threads), caller_threads) | EXPECT_EQ(release_calls, 1) | EXPECT_EQ(mkl_set_num_threads_local(caller_threads), caller_threads) EXPECT_EQ(mkl_get_max_threads(), caller_threads == 0 ? 1 : 2) | EXPECT_FALSE(solver.Factorize(matrix).IsOk()) | EXPECT_EQ(mkl_set_num_threads_local(caller_threads), caller_threads) | EXPECT_EQ(release_calls, 1) | EXPECT_EQ(mkl_set_num_threads_local(caller_threads), caller_threads) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/linear_solver_test.cpp support@1-56 helper/oracle/fixture/include/static assertion 구간: MakeDenseCsr, ExpectSolverFailure tests/unit/solvers/linear/linear_solver_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 78a8b579a04f3c3dc7c959d45f7ef9271489b3e7638a0b34de24c3ff8421e23c 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/linear_solver_test.cpp support@137-178 helper/oracle/fixture/include/static assertion 구간: RecordingEigenSolver tests/unit/solvers/linear/linear_solver_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b31e1a103b5d1e9f151dbb822bc2e9fda76b81520a3577098db488c967841767 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 6개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 27c0608a66a44ffba73d2d081a5689bece07002b272a0cc5443ce4457e35a8ae b278df4853fd35b4a609df18ba48bf7d27eeba7a88d58b7ff00d759f5461ccff 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.SolvesKnownSpdWithNormalizedResidual MklPardisoSolver.SolvesKnownSpdWithNormalizedResidual; assertion 4개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.SolvesKnownSpdWithNormalizedResidual 유지 원문 검사 body 및 assertion 동일. 0dd88a78ef239ae0d316f9fc4ecbfe7e6baba99a61eda7cc8f42e6616c09915c 0dd88a78ef239ae0d316f9fc4ecbfe7e6baba99a61eda7cc8f42e6616c09915c ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs, solution).IsOk()) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs, solution).IsOk()) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ReusesOneFactorizationForRepeatedRhs MklPardisoSolver.ReusesOneFactorizationForRepeatedRhs; assertion 7개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ReusesOneFactorizationForRepeatedRhs 유지 원문 검사 body 및 assertion 동일. 0d5dd1f6b920c6201997eef647077b4039020a9adaa93483733c395ce55ecaed 0d5dd1f6b920c6201997eef647077b4039020a9adaa93483733c395ce55ecaed ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs_first, first).IsOk()) | ASSERT_TRUE(solver.Solve(rhs_second, second).IsOk()) | EXPECT_LE(RelativeError(first, expected_first), 1.0e-9) | EXPECT_LE(RelativeError(second, expected_second), 1.0e-9) | EXPECT_LE(NormalizedResidual(matrix, first, rhs_first), 1.0e-10) | EXPECT_LE(NormalizedResidual(matrix, second, rhs_second), 1.0e-10) ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs_first, first).IsOk()) | ASSERT_TRUE(solver.Solve(rhs_second, second).IsOk()) | EXPECT_LE(RelativeError(first, expected_first), 1.0e-9) | EXPECT_LE(RelativeError(second, expected_second), 1.0e-9) | EXPECT_LE(NormalizedResidual(matrix, first, rhs_first), 1.0e-10) | EXPECT_LE(NormalizedResidual(matrix, second, rhs_second), 1.0e-10) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.StillRejectsNonsymmetricPublicCsr MklPardisoSolver.StillRejectsNonsymmetricPublicCsr; assertion 1개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.StillRejectsNonsymmetricPublicCsr 유지 원문 검사 body 및 assertion 동일. 2d3aeaa63b4de4a45b8b553f51fe2223bb64e4c36e107c154ea333382d3ef052 2d3aeaa63b4de4a45b8b553f51fe2223bb64e4c36e107c154ea333382d3ef052 "EXPECT_EQ(status.Diagnostics()[0U].code, ""solver-matrix-not-symmetric"")" "EXPECT_EQ(status.Diagnostics()[0U].code, ""solver-matrix-not-symmetric"")" 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.RefactorizesWithoutLeakingState MklPardisoSolver.RefactorizesWithoutLeakingState; assertion 7개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.RefactorizesWithoutLeakingState 유지 원문 검사 body 및 assertion 동일. 72be7b9a87610a6d9dcb1324dc15b4d400c837e097dee540c00dd3e510921f35 72be7b9a87610a6d9dcb1324dc15b4d400c837e097dee540c00dd3e510921f35 ASSERT_TRUE(solver.Factorize(first_matrix).IsOk()) | ASSERT_TRUE( solver.Solve(first_matrix.Multiply(first_expected), first_solution) .IsOk()) | EXPECT_LE(RelativeError(first_solution, first_expected), 1.0e-9) | ASSERT_TRUE(solver.Factorize(second_matrix).IsOk()) | ASSERT_TRUE(solver.Solve(second_rhs, second_solution).IsOk()) | EXPECT_LE(RelativeError(second_solution, second_expected), 1.0e-9) | EXPECT_LE(NormalizedResidual(second_matrix, second_solution, second_rhs), 1.0e-10) ASSERT_TRUE(solver.Factorize(first_matrix).IsOk()) | ASSERT_TRUE( solver.Solve(first_matrix.Multiply(first_expected), first_solution) .IsOk()) | EXPECT_LE(RelativeError(first_solution, first_expected), 1.0e-9) | ASSERT_TRUE(solver.Factorize(second_matrix).IsOk()) | ASSERT_TRUE(solver.Solve(second_rhs, second_solution).IsOk()) | EXPECT_LE(RelativeError(second_solution, second_expected), 1.0e-9) | EXPECT_LE(NormalizedResidual(second_matrix, second_solution, second_rhs), 1.0e-10) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ClassifiesSingularIndefiniteAndNonfiniteFailures MklPardisoSolver.ClassifiesSingularIndefiniteAndNonfiniteFailures; assertion 10개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ClassifiesSingularIndefiniteAndNonfiniteFailures 유지 원문 검사 body 및 assertion 동일. 007dec8a37d6956c242634b01f7e6f8f496f0e02082a94437a15dd3caaf89673 007dec8a37d6956c242634b01f7e6f8f496f0e02082a94437a15dd3caaf89673 "EXPECT_TRUE(singular_status.Diagnostics()[0U].code == ""pardiso-zero-or-negative-pivot"" || singular_status.Diagnostics()[0U].code == ""pardiso-singular-diagonal"") | EXPECT_NE( singular_status.Diagnostics()[0U].entity_identity.find(""phase=22,error=""), std::string::npos) | EXPECT_TRUE(indefinite_status.Diagnostics()[0U].code == ""pardiso-zero-or-negative-pivot"" || indefinite_status.Diagnostics()[0U].code == ""pardiso-singular-diagonal"") | EXPECT_NE(indefinite_status.Diagnostics()[0U].entity_identity.find( ""phase=22,error=""), std::string::npos) | ASSERT_TRUE(solver.Factorize(spd).IsOk()) | EXPECT_EQ(rhs_status.Diagnostics()[0U].code, ""nonfinite-solver-rhs"") | EXPECT_DOUBLE_EQ(solution[0U], 23.0) | EXPECT_DOUBLE_EQ(solution[1U], -9.0) | EXPECT_FALSE(nonfinite_matrix.HasValue()) | EXPECT_EQ(nonfinite_matrix.GetStatus().Diagnostics()[0U].code, ""nonfinite-sparse-value"")" "EXPECT_TRUE(singular_status.Diagnostics()[0U].code == ""pardiso-zero-or-negative-pivot"" || singular_status.Diagnostics()[0U].code == ""pardiso-singular-diagonal"") | EXPECT_NE( singular_status.Diagnostics()[0U].entity_identity.find(""phase=22,error=""), std::string::npos) | EXPECT_TRUE(indefinite_status.Diagnostics()[0U].code == ""pardiso-zero-or-negative-pivot"" || indefinite_status.Diagnostics()[0U].code == ""pardiso-singular-diagonal"") | EXPECT_NE(indefinite_status.Diagnostics()[0U].entity_identity.find( ""phase=22,error=""), std::string::npos) | ASSERT_TRUE(solver.Factorize(spd).IsOk()) | EXPECT_EQ(rhs_status.Diagnostics()[0U].code, ""nonfinite-solver-rhs"") | EXPECT_DOUBLE_EQ(solution[0U], 23.0) | EXPECT_DOUBLE_EQ(solution[1U], -9.0) | EXPECT_FALSE(nonfinite_matrix.HasValue()) | EXPECT_EQ(nonfinite_matrix.GetStatus().Diagnostics()[0U].code, ""nonfinite-sparse-value"")" 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ConditioningSweepPassesResolvedCasesAndFailsUnresolvedCasesExplicitly MklPardisoSolver.ConditioningSweepPassesResolvedCasesAndFailsUnresolvedCasesExplicitly; assertion 10개 tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp MklPardisoSolver.ConditioningSweepPassesResolvedCasesAndFailsUnresolvedCasesExplicitly 유지 원문 검사 body 및 assertion 동일. 2e4b58fe2ef908b1c53f3dd40639f2423afb8429d5bdc7fdb80675b3efeceee2 2e4b58fe2ef908b1c53f3dd40639f2423afb8429d5bdc7fdb80675b3efeceee2 ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs, solution).IsOk()) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) | ASSERT_TRUE(resolved_solver.Factorize(resolved_matrix).IsOk()) | ASSERT_TRUE(resolved_solver.Solve(resolved_rhs, resolved_solution).IsOk()) | EXPECT_LE( NormalizedResidual(resolved_matrix, resolved_solution, resolved_rhs), 1.0e-10) | EXPECT_LE(RelativeError(resolved_solution, resolved_expected), 1.0e-9) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) ASSERT_TRUE(solver.Factorize(matrix).IsOk()) | ASSERT_TRUE(solver.Solve(rhs, solution).IsOk()) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) | ASSERT_TRUE(resolved_solver.Factorize(resolved_matrix).IsOk()) | ASSERT_TRUE(resolved_solver.Solve(resolved_rhs, resolved_solution).IsOk()) | EXPECT_LE( NormalizedResidual(resolved_matrix, resolved_solution, resolved_rhs), 1.0e-10) | EXPECT_LE(RelativeError(resolved_solution, resolved_expected), 1.0e-9) | EXPECT_LE(NormalizedResidual(matrix, solution, rhs), 1.0e-10) | EXPECT_LE(RelativeError(solution, expected), 1.0e-9) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp support@1-89 helper/oracle/fixture/include/static assertion 구간: MakeDenseCsr, MakeVector, for, NormalizedResidual, if, RelativeError, ExpectStructuredSolverFailure tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. be39de09554cc190405a0bd1595f71c1c153921de7478644704b3d5caab279ca 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/tangent_solver_test.cpp file 전체 파일 및 모든 helper 구간; 명명된 검사/helper 5개 tests/unit/solvers/linear/tangent_solver_test.cpp file 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. b6c7c50cbf6f3b4472f9058ed517905a66a3dea42255867c451d0c308aba7507 c457f80368b1e01bab7e7d177c0bda8283d0590e7150e064c270f86c9a95e858 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SolvesNonsymmetricKnownCorrection TangentSolver.SolvesNonsymmetricKnownCorrection; assertion 4개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SolvesNonsymmetricKnownCorrection 유지 원문 검사 body 및 assertion 동일. 838690231b74c1b272bda475dea0234187495f7e8c045ee449f04ae3ac0d1233 838690231b74c1b272bda475dea0234187495f7e8c045ee449f04ae3ac0d1233 ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(rhs, correction).IsOk()) | EXPECT_NEAR(correction[0U], 1.0, 1.0e-14) | EXPECT_NEAR(correction[1U], 2.0, 1.0e-14) ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | ASSERT_TRUE(solver.SolveCorrection(rhs, correction).IsOk()) | EXPECT_NEAR(correction[0U], 1.0, 1.0e-14) | EXPECT_NEAR(correction[1U], 2.0, 1.0e-14) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SolvesTrivialZeroEquationSystem TangentSolver.SolvesTrivialZeroEquationSystem; assertion 3개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.SolvesTrivialZeroEquationSystem 유지 원문 검사 body 및 assertion 동일. 271ea5671ba0adda4eab6af4646dda04cf09d9a77c2f0857c1a1216458a9d1d1 271ea5671ba0adda4eab6af4646dda04cf09d9a77c2f0857c1a1216458a9d1d1 ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | EXPECT_TRUE(solver.SolveCorrection(fesa::Vector{0U}, correction).IsOk()) | EXPECT_EQ(correction.Size(), 0U) ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()) | EXPECT_TRUE(solver.SolveCorrection(fesa::Vector{0U}, correction).IsOk()) | EXPECT_EQ(correction.Size(), 0U) 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.RejectsNonfiniteInputsWithoutModifyingCorrection TangentSolver.RejectsNonfiniteInputsWithoutModifyingCorrection; assertion 6개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.RejectsNonfiniteInputsWithoutModifyingCorrection 유지 원문 검사 body 및 assertion 동일. 11e41d7e1b0f4715dfddd024f947c926155d20ba0b4fa3d6734756afe8603bd6 11e41d7e1b0f4715dfddd024f947c926155d20ba0b4fa3d6734756afe8603bd6 "EXPECT_FALSE(nonfinite_matrix.HasValue()) | EXPECT_EQ(nonfinite_matrix.GetStatus().Diagnostics().front().code, ""nonfinite-sparse-value"") | ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(2U, {2.0, 1.0, 0.0, 3.0})) .IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""nonfinite-solver-rhs"") | EXPECT_DOUBLE_EQ(correction[0U], 17.0) | EXPECT_DOUBLE_EQ(correction[1U], -4.0)" "EXPECT_FALSE(nonfinite_matrix.HasValue()) | EXPECT_EQ(nonfinite_matrix.GetStatus().Diagnostics().front().code, ""nonfinite-sparse-value"") | ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(2U, {2.0, 1.0, 0.0, 3.0})) .IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""nonfinite-solver-rhs"") | EXPECT_DOUBLE_EQ(correction[0U], 17.0) | EXPECT_DOUBLE_EQ(correction[1U], -4.0)" 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.ReportsSingularFactorizationDeterministically TangentSolver.ReportsSingularFactorizationDeterministically; assertion 3개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.ReportsSingularFactorizationDeterministically 유지 원문 검사 body 및 assertion 동일. 54a59242a6753c254e6f1e9b3b87783b30b47329241c5dda5d053a57eae851bc 54a59242a6753c254e6f1e9b3b87783b30b47329241c5dda5d053a57eae851bc "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""pardiso-perturbed-pivot"") | EXPECT_EQ(status.Diagnostics().front().entity_identity, ""phase=22"")" "ASSERT_FALSE(status.IsOk()) | EXPECT_EQ(status.Diagnostics().front().code, ""pardiso-perturbed-pivot"") | EXPECT_EQ(status.Diagnostics().front().entity_identity, ""phase=22"")" 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.RejectsSolveBeforeSuccessfulFactorization TangentSolver.RejectsSolveBeforeSuccessfulFactorization; assertion 3개 tests/unit/solvers/linear/tangent_solver_test.cpp TangentSolver.RejectsSolveBeforeSuccessfulFactorization 유지 원문 검사 body 및 assertion 동일. eb2b17bad95e253fe1e9c3a8aed6f6fbf92e2921643507f4a11862c36c28d0d7 eb2b17bad95e253fe1e9c3a8aed6f6fbf92e2921643507f4a11862c36c28d0d7 "EXPECT_EQ(status.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(correction[0U], 23.0) | EXPECT_DOUBLE_EQ(correction[1U], -9.0)" "EXPECT_EQ(status.Diagnostics().front().code, ""solver-not-factorized"") | EXPECT_DOUBLE_EQ(correction[0U], 23.0) | EXPECT_DOUBLE_EQ(correction[1U], -9.0)" 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/tangent_solver_test.cpp support@1-57 helper/oracle/fixture/include/static assertion 구간: MakeDenseCsr, MakeVector, for, ExpectSolverFailure tests/unit/solvers/linear/tangent_solver_test.cpp file-support 이관 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 437aff9aeafd5c7aad5083cfce86a40114d04c4a326e4968e57fc84802f77710 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric +Refactor tests/unit/solvers/linear/tangent_solver_test.cpp support@131-132 helper/oracle/fixture/include/static assertion 구간: module 선언·상수·자료 tests/unit/solvers/linear/tangent_solver_test.cpp file-support 유지 원문과 최종의 개별 검사 identity 및 assertion은 아래 행과 assertion 열로 대응한다. helper/include 변경은 같은 최종 파일에서 소비한다. 89fe293cbdd849071ed62550d3589122044f6f9a80b0b0bc121731da330966ea 최종 파일 SHA 참조 해당 없음 해당 없음 유지-대체동등성미입증 R-NUMERIC test-cleanup-review.md#r-numeric